The client provides high-level methods to read various data types from registers. Use modbus.HOLDING_REGISTER or modbus.INPUT_REGISTER to specify the register type.
Available read methods:
ReadRegister(address, regType): Returns a uint16.ReadRegisters(address, count, regType): Returns a []uint16.ReadUint32s(address, count, regType): Returns a []uint32.ReadUint64(address, regType): Returns a uint64.ReadBytes(address, count, regType): Returns a []byte.ReadFloat32s(address, count, regType): Returns a []float32.
// Read a single 16-bit holding register at address 100
reg16, err := client.ReadRegister(100, modbus.HOLDING_REGISTER)
// Read 4 consecutive 16-bit input registers starting at address 100
reg16s, err := client.ReadRegisters(100, 4, modbus.INPUT_REGISTER)
// Read 4 consecutive 16-bit input registers as 2 32-bit integers
reg32s, err := client.ReadUint32s(100, 2, modbus.INPUT_REGISTER)
// Read 4 consecutive 16-bit input registers as a single 64-bit integer
reg64, err := client.ReadUint64(100, modbus.INPUT_REGISTER)
// Read 4 consecutive 16-bit input registers as a slice of bytes
regBs, err := client.ReadBytes(100, 8, modbus.INPUT_REGISTER)
// Read 4 consecutive 16-bit input registers as 2 32-bit floats
fl32s, err := client.ReadFloat32s(100, 2, modbus.INPUT_REGISTER)