Versions in this module Expand all Collapse all v0 v0.0.1 Dec 19, 2023 Changes in this version + const AddressBroadCast + const AddressMax + const AddressMin + const DefaultConnectTimeout + const DefaultKeepAliveInterval + const DefaultReconnectInterval + const ExceptionCodeAcknowledge + const ExceptionCodeGatewayPathUnavailable + const ExceptionCodeGatewayTargetDeviceFailedToRespond + const ExceptionCodeIllegalDataAddress + const ExceptionCodeIllegalDataValue + const ExceptionCodeIllegalFunction + const ExceptionCodeMemoryParityError + const ExceptionCodeNegativeAcknowledge + const ExceptionCodeServerDeviceBusy + const ExceptionCodeServerDeviceFailure + const FuncCodeMaskWriteRegister + const FuncCodeOtherReportSlaveID + const FuncCodeReadCoils + const FuncCodeReadDiscreteInputs + const FuncCodeReadFIFOQueue + const FuncCodeReadHoldingRegisters + const FuncCodeReadInputRegisters + const FuncCodeReadWriteMultipleRegisters + const FuncCodeWriteMultipleCoils + const FuncCodeWriteMultipleRegisters + const FuncCodeWriteSingleCoil + const FuncCodeWriteSingleRegister + const FuncMaskWriteMinSize + const FuncReadMinSize + const FuncReadWriteMinSize + const FuncWriteMinSize + const FuncWriteMultiMinSize + const ReadBitsQuantityMax + const ReadBitsQuantityMin + const ReadRegQuantityMax + const ReadRegQuantityMin + const ReadWriteOnReadRegQuantityMax + const ReadWriteOnReadRegQuantityMin + const ReadWriteOnWriteRegQuantityMax + const ReadWriteOnWriteRegQuantityMin + const SerialDefaultTimeout + const TCPDefaultAutoReconnect + const TCPDefaultReadTimeout + const TCPDefaultTimeout + const TCPDefaultWriteTimeout + const WriteBitsQuantityMax + const WriteBitsQuantityMin + const WriteRegQuantityMax + const WriteRegQuantityMin + func CRC16(bs []byte) uint16 + type ASCIIClientProvider struct + func NewASCIIClientProvider(opts ...ClientProviderOption) *ASCIIClientProvider + func (sf *ASCIIClientProvider) Close() (err error) + func (sf *ASCIIClientProvider) Connect() (err error) + func (sf *ASCIIClientProvider) IsConnected() (b bool) + func (sf *ASCIIClientProvider) LogMode(enable bool) + func (sf *ASCIIClientProvider) Send(slaveID byte, request ProtocolDataUnit) (ProtocolDataUnit, error) + func (sf *ASCIIClientProvider) SendPdu(slaveID byte, pduRequest []byte) ([]byte, error) + func (sf *ASCIIClientProvider) SendRawFrame(aduRequest []byte) (aduResponse []byte, err error) + func (sf ASCIIClientProvider) Debugf(format string, v ...interface{}) + func (sf ASCIIClientProvider) Errorf(format string, v ...interface{}) + type Client interface + MaskWriteRegister func(slaveID byte, address, andMask, orMask uint16) error + ReadCoils func(slaveID byte, address, quantity uint16) (results []byte, err error) + ReadDiscreteInputs func(slaveID byte, address, quantity uint16) (results []byte, err error) + ReadFIFOQueue func(slaveID byte, address uint16) (results []byte, err error) + ReadHoldingRegisters func(slaveID byte, address, quantity uint16) (results []uint16, err error) + ReadHoldingRegistersBytes func(slaveID byte, address, quantity uint16) (results []byte, err error) + ReadInputRegisters func(slaveID byte, address, quantity uint16) (results []uint16, err error) + ReadInputRegistersBytes func(slaveID byte, address, quantity uint16) (results []byte, err error) + ReadWriteMultipleRegisters func(slaveID byte, readAddress, readQuantity, writeAddress, writeQuantity uint16, ...) (results []uint16, err error) + ReadWriteMultipleRegistersBytes func(slaveID byte, readAddress, readQuantity, writeAddress, writeQuantity uint16, ...) (results []byte, err error) + WriteMultipleCoils func(slaveID byte, address, quantity uint16, value []byte) error + WriteMultipleRegisters func(slaveID byte, address, quantity uint16, value []uint16) error + WriteMultipleRegistersBytes func(slaveID byte, address, quantity uint16, value []byte) error + WriteSingleCoil func(slaveID byte, address uint16, isOn bool) error + WriteSingleRegister func(slaveID byte, address, value uint16) error + func NewClient(p ClientProvider, opts ...Option) Client + type ClientProvider interface + Close func() error + Connect func() error + IsConnected func() bool + LogMode func(enable bool) + Send func(slaveID byte, request ProtocolDataUnit) (ProtocolDataUnit, error) + SendPdu func(slaveID byte, pduRequest []byte) (pduResponse []byte, err error) + SendRawFrame func(aduRequest []byte) (aduResponse []byte, err error) + type ClientProviderOption func(ClientProvider) + func WithEnableLogger() ClientProviderOption + func WithLogProvider(provider LogProvider) ClientProviderOption + func WithSerialConfig(config serial.Config) ClientProviderOption + func WithTCPTimeout(t time.Duration) ClientProviderOption + type ExceptionError struct + ExceptionCode byte + func (e *ExceptionError) Error() string + type FunctionHandler func(reg *NodeRegister, data []byte) ([]byte, error) + type LRC struct + func (sf *LRC) Push(data ...byte) *LRC + func (sf *LRC) Reset() *LRC + func (sf *LRC) Value() byte + type LogProvider interface + Debugf func(format string, v ...interface{}) + Errorf func(format string, v ...interface{}) + type NodeRegister struct + func NewNodeRegister(slaveID byte, ...) *NodeRegister + func (sf *NodeRegister) CoilsAddrParam() (start, quantity uint16) + func (sf *NodeRegister) DiscreteParam() (start, quantity uint16) + func (sf *NodeRegister) HoldingAddrParam() (start, quantity uint16) + func (sf *NodeRegister) InputAddrParam() (start, quantity uint16) + func (sf *NodeRegister) MaskWriteHolding(address, andMask, orMask uint16) error + func (sf *NodeRegister) ReadCoils(address, quality uint16) ([]byte, error) + func (sf *NodeRegister) ReadDiscretes(address, quality uint16) ([]byte, error) + func (sf *NodeRegister) ReadHoldings(address, quality uint16) ([]uint16, error) + func (sf *NodeRegister) ReadHoldingsBytes(address, quality uint16) ([]byte, error) + func (sf *NodeRegister) ReadInputs(address, quality uint16) ([]uint16, error) + func (sf *NodeRegister) ReadInputsBytes(address, quality uint16) ([]byte, error) + func (sf *NodeRegister) ReadSingleCoil(address uint16) (bool, error) + func (sf *NodeRegister) ReadSingleDiscrete(address uint16) (bool, error) + func (sf *NodeRegister) SetSlaveID(id byte) *NodeRegister + func (sf *NodeRegister) SlaveID() byte + func (sf *NodeRegister) WriteCoils(address, quality uint16, valBuf []byte) error + func (sf *NodeRegister) WriteDiscretes(address, quality uint16, valBuf []byte) error + func (sf *NodeRegister) WriteHoldings(address uint16, valBuf []uint16) error + func (sf *NodeRegister) WriteHoldingsBytes(address, quality uint16, valBuf []byte) error + func (sf *NodeRegister) WriteInputs(address uint16, valBuf []uint16) error + func (sf *NodeRegister) WriteInputsBytes(address, quality uint16, regBuf []byte) error + func (sf *NodeRegister) WriteSingleCoil(address uint16, val bool) error + func (sf *NodeRegister) WriteSingleDiscrete(address uint16, val bool) error + type OnConnectHandler func(c *TCPServerSpecial) error + type OnConnectionLostHandler func(c *TCPServerSpecial) + type OnKeepAliveHandler func(c *TCPServerSpecial) + type Option func(c *client) + func WithAddressMax(v byte) Option + func WithAddressMin(v byte) Option + type ProtocolDataUnit struct + Data []byte + FuncCode byte + type RTUClientProvider struct + func NewRTUClientProvider(opts ...ClientProviderOption) *RTUClientProvider + func (sf *RTUClientProvider) Close() (err error) + func (sf *RTUClientProvider) Connect() (err error) + func (sf *RTUClientProvider) IsConnected() (b bool) + func (sf *RTUClientProvider) LogMode(enable bool) + func (sf *RTUClientProvider) Send(slaveID byte, request ProtocolDataUnit) (ProtocolDataUnit, error) + func (sf *RTUClientProvider) SendPdu(slaveID byte, pduRequest []byte) ([]byte, error) + func (sf *RTUClientProvider) SendRawFrame(aduRequest []byte) (aduResponse []byte, err error) + func (sf RTUClientProvider) Debugf(format string, v ...interface{}) + func (sf RTUClientProvider) Errorf(format string, v ...interface{}) + type ServerSession struct + func (sf *ServerSession) LogMode(enable bool) + func (sf ServerSession) AddNodes(nodes ...*NodeRegister) + func (sf ServerSession) Debugf(format string, v ...interface{}) + func (sf ServerSession) DeleteAllNode() + func (sf ServerSession) DeleteNode(slaveID byte) + func (sf ServerSession) Errorf(format string, v ...interface{}) + func (sf ServerSession) GetNode(slaveID byte) (*NodeRegister, error) + func (sf ServerSession) GetNodeList() []*NodeRegister + func (sf ServerSession) Range(f func(slaveID byte, node *NodeRegister) bool) + func (sf ServerSession) RegisterFunctionHandler(funcCode uint8, function FunctionHandler) + type TCPClientProvider struct + func NewTCPClientProvider(address string, opts ...ClientProviderOption) *TCPClientProvider + func (sf *TCPClientProvider) Close() (err error) + func (sf *TCPClientProvider) Connect() error + func (sf *TCPClientProvider) IsConnected() bool + func (sf *TCPClientProvider) LogMode(enable bool) + func (sf *TCPClientProvider) Send(slaveID byte, request ProtocolDataUnit) (ProtocolDataUnit, error) + func (sf *TCPClientProvider) SendPdu(slaveID byte, pduRequest []byte) ([]byte, error) + func (sf *TCPClientProvider) SendRawFrame(aduRequest []byte) (aduResponse []byte, err error) + func (sf TCPClientProvider) Debugf(format string, v ...interface{}) + func (sf TCPClientProvider) Errorf(format string, v ...interface{}) + type TCPServer struct + func NewTCPServer() *TCPServer + func (sf *TCPServer) Close() error + func (sf *TCPServer) ListenAndServe(addr string) error + func (sf *TCPServer) LogMode(enable bool) + func (sf *TCPServer) SetReadTimeout(t time.Duration) *TCPServer + func (sf *TCPServer) SetWriteTimeout(t time.Duration) *TCPServer + func (sf TCPServer) AddNodes(nodes ...*NodeRegister) + func (sf TCPServer) Debugf(format string, v ...interface{}) + func (sf TCPServer) DeleteAllNode() + func (sf TCPServer) DeleteNode(slaveID byte) + func (sf TCPServer) Errorf(format string, v ...interface{}) + func (sf TCPServer) GetNode(slaveID byte) (*NodeRegister, error) + func (sf TCPServer) GetNodeList() []*NodeRegister + func (sf TCPServer) Range(f func(slaveID byte, node *NodeRegister) bool) + func (sf TCPServer) RegisterFunctionHandler(funcCode uint8, function FunctionHandler) + type TCPServerSpecial struct + TLSConfig *tls.Config + func NewTCPServerSpecial() *TCPServerSpecial + func (sf *TCPServerSpecial) AddRemoteServer(server string) error + func (sf *TCPServerSpecial) Close() error + func (sf *TCPServerSpecial) EnableAutoReconnect(b bool) *TCPServerSpecial + func (sf *TCPServerSpecial) IsClosed() bool + func (sf *TCPServerSpecial) IsConnected() bool + func (sf *TCPServerSpecial) LogMode(enable bool) + func (sf *TCPServerSpecial) SetConnectTimeout(t time.Duration) *TCPServerSpecial + func (sf *TCPServerSpecial) SetConnectionLostHandler(f OnConnectionLostHandler) *TCPServerSpecial + func (sf *TCPServerSpecial) SetKeepAlive(enable bool, t time.Duration, f OnKeepAliveHandler) *TCPServerSpecial + func (sf *TCPServerSpecial) SetOnConnectHandler(f OnConnectHandler) *TCPServerSpecial + func (sf *TCPServerSpecial) SetReadTimeout(t time.Duration) *TCPServerSpecial + func (sf *TCPServerSpecial) SetReconnectInterval(t time.Duration) *TCPServerSpecial + func (sf *TCPServerSpecial) SetTLSConfig(t *tls.Config) *TCPServerSpecial + func (sf *TCPServerSpecial) SetWriteTimeout(t time.Duration) *TCPServerSpecial + func (sf *TCPServerSpecial) Start() error + func (sf *TCPServerSpecial) UnderlyingConn() net.Conn + func (sf TCPServerSpecial) AddNodes(nodes ...*NodeRegister) + func (sf TCPServerSpecial) Debugf(format string, v ...interface{}) + func (sf TCPServerSpecial) DeleteAllNode() + func (sf TCPServerSpecial) DeleteNode(slaveID byte) + func (sf TCPServerSpecial) Errorf(format string, v ...interface{}) + func (sf TCPServerSpecial) GetNode(slaveID byte) (*NodeRegister, error) + func (sf TCPServerSpecial) GetNodeList() []*NodeRegister + func (sf TCPServerSpecial) Range(f func(slaveID byte, node *NodeRegister) bool) + func (sf TCPServerSpecial) RegisterFunctionHandler(funcCode uint8, function FunctionHandler)