instruction.go 2.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788
  1. package modbus
  2. import "server/utils"
  3. var (
  4. ReadDeviceId = []byte{0xFE, 0x04, 0x03, 0xEE, 0x00, 0x08, 0x85, 0xB2} //读设备id
  5. ReadDeviceIdAndDOAndDI = []byte{0xFE, 0x04, 0x03, 0xE8, 0x00, 0x14, 0x64, 0x7A} //读设备id、do、di
  6. )
  7. func DeviceLoopSwitch(loop int, state int) (data []byte) {
  8. data = append(data, 0xFE)
  9. data = append(data, 0x05)
  10. data = append(data, 0x00)
  11. data = append(data, byte(loop-1))
  12. if state == 1 {
  13. data = append(data, 0xFF)
  14. } else {
  15. data = append(data, 0x00)
  16. }
  17. data = append(data, 0x00)
  18. crc16 := utils.CRC16(data)
  19. data = append(data, byte(crc16&0xFF))
  20. data = append(data, byte(crc16>>8))
  21. return
  22. }
  23. func DeviceSwitch(number int, state int) (data []byte) {
  24. data = append(data, 0xFE)
  25. data = append(data, 0x0F)
  26. data = append(data, 0x00)
  27. data = append(data, 0x00)
  28. data = append(data, 0x00)
  29. data = append(data, byte(number))
  30. data = append(data, 0x01)
  31. if state == 1 {
  32. data = append(data, 0xFF)
  33. } else {
  34. data = append(data, 0x00)
  35. }
  36. crc16 := utils.CRC16(data)
  37. data = append(data, byte(crc16&0xFF))
  38. data = append(data, byte(crc16>>8))
  39. return
  40. }
  41. func SolarEnergyData() (data []byte) {
  42. data = append(data, 0x11)
  43. data = append(data, 0x03)
  44. data = append(data, 0x00)
  45. data = append(data, 0x04)
  46. data = append(data, 0x00)
  47. data = append(data, 0x1b)
  48. crc16 := utils.CRC16(data)
  49. data = append(data, byte(crc16&0xFF))
  50. data = append(data, byte(crc16>>8))
  51. return
  52. }
  53. // UpdateRegisterAddress 修改寄存器地址
  54. func UpdateRegisterAddress() (data []byte) {
  55. data = append(data, 0x01)
  56. data = append(data, 0x10)
  57. data = append(data, 0x00)
  58. data = append(data, 0x00)
  59. data = append(data, 0x00)
  60. data = append(data, 0x01)
  61. data = append(data, 0x02)
  62. data = append(data, 0x00)
  63. data = append(data, 0x11)
  64. crc16 := utils.CRC16(data)
  65. data = append(data, byte(crc16&0xFF))
  66. data = append(data, byte(crc16>>8))
  67. return
  68. }
  69. func ReadDeviceInfo(number int) (data []byte) {
  70. data = append(data, 0xFE)
  71. data = append(data, 0x01)
  72. data = append(data, 0x00)
  73. data = append(data, 0x00)
  74. data = append(data, 0x00)
  75. data = append(data, byte(number))
  76. crc16 := utils.CRC16(data)
  77. data = append(data, byte(crc16&0xFF))
  78. data = append(data, byte(crc16>>8))
  79. return
  80. }