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) } //