package modbus import "server/utils" var ( ReadDeviceId = []byte{0xFE, 0x04, 0x03, 0xEE, 0x00, 0x08, 0x85, 0xB2} //读设备id ReadDeviceIdAndDOAndDI = []byte{0xFE, 0x04, 0x03, 0xE8, 0x00, 0x14, 0x64, 0x7A} //读设备id、do、di ) func DeviceLoopSwitch(loop int, state int) (data []byte) { data = append(data, 0xFE) data = append(data, 0x05) data = append(data, 0x00) data = append(data, byte(loop-1)) if state == 1 { data = append(data, 0xFF) } else { data = append(data, 0x00) } data = append(data, 0x00) crc16 := utils.CRC16(data) data = append(data, byte(crc16&0xFF)) data = append(data, byte(crc16>>8)) return } func DeviceSwitch(number int, state int) (data []byte) { data = append(data, 0xFE) data = append(data, 0x0F) data = append(data, 0x00) data = append(data, 0x00) data = append(data, 0x00) data = append(data, byte(number)) data = append(data, 0x01) if state == 1 { data = append(data, 0xFF) } else { data = append(data, 0x00) } crc16 := utils.CRC16(data) data = append(data, byte(crc16&0xFF)) data = append(data, byte(crc16>>8)) return } func SolarEnergyData() (data []byte) { data = append(data, 0x01) data = append(data, 0x03) data = append(data, 0x00) data = append(data, 0x04) data = append(data, 0x00) data = append(data, 0x1b) crc16 := utils.CRC16(data) data = append(data, byte(crc16&0xFF)) data = append(data, byte(crc16>>8)) return } // UpdateRegisterAddress 修改寄存器地址 func UpdateRegisterAddress() (data []byte) { data = append(data, 0x01) data = append(data, 0x10) data = append(data, 0x00) data = append(data, 0x00) data = append(data, 0x00) data = append(data, 0x01) data = append(data, 0x02) data = append(data, 0x00) data = append(data, 0x11) crc16 := utils.CRC16(data) data = append(data, byte(crc16&0xFF)) data = append(data, byte(crc16>>8)) return } func ReadDeviceInfo(number int) (data []byte) { data = append(data, 0xFE) data = append(data, 0x01) data = append(data, 0x00) data = append(data, 0x00) data = append(data, 0x00) data = append(data, byte(number)) crc16 := utils.CRC16(data) data = append(data, byte(crc16&0xFF)) data = append(data, byte(crc16>>8)) return }