test.go 1.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  1. package test
  2. import (
  3. "MeterService/core/logger"
  4. "MeterService/dataStruct"
  5. "MeterService/service/rtuService"
  6. "errors"
  7. "math"
  8. "reflect"
  9. "runtime"
  10. )
  11. var (
  12. testMeter = []dataStruct.ParsingDataConfig{
  13. {Origin: 0x00, Amount: 20, Method: test001},
  14. }
  15. )
  16. func CollectTest(w rtuService.RtuNetPgr, ref *dataStruct.MeterRef) (*dataStruct.CollectData, error) {
  17. colData := &dataStruct.CollectData{
  18. MeterRef: ref,
  19. }
  20. for _, v := range testMeter {
  21. if adu, err := w.GetHoldingRegs(v.Origin, v.Amount); err != nil {
  22. logger.Error("TEST 采集失败[%s] ERROR:%v", runtime.FuncForPC(reflect.ValueOf(v.Method).Pointer()).Name(), err)
  23. return colData, err
  24. } else {
  25. logger.Debug("TEST ======》ADU:%v", adu)
  26. v.Method(adu, colData)
  27. }
  28. }
  29. return colData, errors.New("TEST")
  30. }
  31. func test001(adu []byte, s *dataStruct.CollectData) {
  32. var (
  33. index = 0
  34. )
  35. m := uint32(adu[index])<<24 | uint32(adu[index+1])<<16 | uint32(adu[index+2])<<8 | uint32(adu[index+3])
  36. ua := math.Float32frombits(m)
  37. logger.Debug("TEST 01采集成功 UA:%v %v", ua, m)
  38. index += 32
  39. n := uint32(adu[index])<<24 | uint32(adu[index+1])<<16 | uint32(adu[index+2])<<8 | uint32(adu[index+3])
  40. ia := math.Float32frombits(n)
  41. logger.Debug("TEST 01采集成功 IA:%v %v", ia, n)
  42. }