|
|
@@ -0,0 +1,46 @@
|
|
|
+package test
|
|
|
+
|
|
|
+import (
|
|
|
+ "MeterService/core/logger"
|
|
|
+ "MeterService/dataStruct"
|
|
|
+ "MeterService/service/rtuService"
|
|
|
+ "errors"
|
|
|
+ "reflect"
|
|
|
+ "runtime"
|
|
|
+)
|
|
|
+
|
|
|
+var (
|
|
|
+ testMeter = []dataStruct.ParsingDataConfig{
|
|
|
+ {Origin: 0x00, Amount: 20, Method: test001},
|
|
|
+ }
|
|
|
+)
|
|
|
+
|
|
|
+func CollectTest(w rtuService.RtuNetPgr, ref *dataStruct.MeterRef) (*dataStruct.CollectData, error) {
|
|
|
+ colData := &dataStruct.CollectData{
|
|
|
+ MeterRef: ref,
|
|
|
+ }
|
|
|
+ for _, v := range testMeter {
|
|
|
+ if adu, err := w.GetHoldingRegs(v.Origin, v.Amount); err != nil {
|
|
|
+ logger.Error("TEST 采集失败[%s] ERROR:%v", runtime.FuncForPC(reflect.ValueOf(v.Method).Pointer()).Name(), err)
|
|
|
+ return colData, err
|
|
|
+ } else {
|
|
|
+ logger.Debug("TEST ======》ADU:%v", adu)
|
|
|
+ v.Method(adu, colData)
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return colData, errors.New("TEST")
|
|
|
+}
|
|
|
+
|
|
|
+func test001(adu []byte, s *dataStruct.CollectData) {
|
|
|
+ var (
|
|
|
+ index = 0
|
|
|
+ m int16
|
|
|
+ )
|
|
|
+ m = int16(uint16(adu[index])<<8 | uint16(adu[index+1]))
|
|
|
+ s.Ua = float32(m)
|
|
|
+ index += 16
|
|
|
+ s.Ia = float32(m)
|
|
|
+ logger.Debug("TEST 采集成功 DATA:%v %v", s.Ua, s.Ia)
|
|
|
+}
|
|
|
+
|
|
|
+//
|