| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647 |
- package test
- import (
- "MeterService/core/logger"
- "MeterService/dataStruct"
- "MeterService/service/rtuService"
- "errors"
- "math"
- "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 := uint32(adu[index])<<24 | uint32(adu[index+1])<<16 | uint32(adu[index+2])<<8 | uint32(adu[index+3])
- ua := math.Float32frombits(m)
- logger.Debug("TEST 01采集成功 UA:%v %v", ua, m)
- index += 32
- n := uint32(adu[index])<<24 | uint32(adu[index+1])<<16 | uint32(adu[index+2])<<8 | uint32(adu[index+3])
- ia := math.Float32frombits(n)
- logger.Debug("TEST 01采集成功 IA:%v %v", ia, n)
- }
|