jl-iot/protocol/modbus/api.go

51 lines
1.7 KiB
Go
Raw Permalink Normal View History

package modbus
type Endianness int32
const (
BigEndian Endianness = 0
LittleEndian Endianness = 1
)
// 在modbus协议中主机正常是客户端
type MasterClient interface {
// 启动
Start() error
// 停止
Stop() error
// 关闭,销毁
Close() error
// 是否连接
IsConnected() bool
2023-12-08 18:08:15 +08:00
// 设置从机id
SetUnitId(id uint8) error
// 设置字节序
SetEndianness(endianness Endianness) error
// 读线圈,位操作,功能码为0x01
ReadCoil(addr uint16, quantity uint16) ([]bool, error)
// 读一个线圈
ReadCoilBit(addr uint16) (bool, error)
// 读离散输入,位操作功能码为0x02
ReadDiscreteInput(addr uint16, quantity uint16) ([]bool, error)
// 读保持寄存器,字节操作功能码为0x03
ReadHoldingRegister(addr uint16, quantity uint16) ([]uint16, error)
2023-12-08 18:08:15 +08:00
// 读多个保持寄存器,字节数组
ReadHoldingRegisterBytes(addr uint16, quantity uint16) ([]byte, error)
// 读一个保持寄存器
ReadHoldingRegisterUint16(addr uint16) (uint16, error)
// 读输入寄存器,字节操作功能码为0x04
ReadInputRegister(addr uint16, quantity uint16) ([]uint16, error)
2023-12-08 18:08:15 +08:00
// 读多个输入寄存器,字节数组
ReadInputRegisterBytes(addr uint16, quantity uint16) ([]byte, error)
// 写单个线圈,功能码为0x05
WriteCoil(addr uint16, value bool) error
// 写多个线圈,功能码为0x0F
WriteCoils(addr uint16, values []bool) error
// 写单个保持寄存器,功能码为0x06
WriteRegister(addr uint16, value uint16) error
// 写多个保持寄存器,功能码为0x10
WriteRegisters(addr uint16, values []uint16) error
2023-12-08 18:08:15 +08:00
// 写多个保持寄存器,字节数组
WriteRegisterBytes(addr uint16, values []byte) error
}