test.go 1.0 KB

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