WitSensorHelper.cs 1.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5. using System.Threading.Tasks;
  6. using Wit.SDK.Modular.Sensor.Device;
  7. using Wit.SDK.Modular.Sensor.Modular.ProtocolResolver.Enum;
  8. namespace Wit.SDK.Modular.Sensor.Utils
  9. {
  10. /// <summary>
  11. /// 维特智能传感器帮助类
  12. /// </summary>
  13. public class WitSensorHelper
  14. {
  15. /// <summary>
  16. /// 读寄存器
  17. /// </summary>
  18. /// <param name="reg"></param>
  19. public static void ReadReg(DeviceModel device, WitSensorProtocol sensorPotocol, int reg)
  20. {
  21. byte[] sendBytes = new byte[0];
  22. if (sensorPotocol == WitSensorProtocol.Modbus16Protocol)
  23. {
  24. sendBytes = Modbus16Utils.GetRead(byte.Parse(device.GetAddr()), reg, 4);
  25. }
  26. else
  27. {
  28. sendBytes = new byte[] { 0xff, 0xaa, 0x27, (byte)reg, 0 };
  29. }
  30. device.ReadData(sendBytes);
  31. }
  32. /// <summary>
  33. /// 写寄存器
  34. /// </summary>
  35. /// <param name="reg"></param>
  36. public static void WriteReg(DeviceModel device, WitSensorProtocol sensorPotocol, int reg, ushort value)
  37. {
  38. byte[] sendBytes = new byte[8];
  39. if (sensorPotocol == WitSensorProtocol.Modbus16Protocol)
  40. {
  41. sendBytes = Modbus16Utils.GetWrite(byte.Parse(device.GetAddr()), reg, value);
  42. }
  43. else
  44. {
  45. sendBytes = WitProtocolUtils.GetWrite(reg, value);
  46. }
  47. device.ReadData(sendBytes, 20);
  48. }
  49. }
  50. }