Documentation
¶
Index ¶
- Constants
- Variables
- func DefaultSerialConfig() serial.Config
- func FuncCodeText(code int) string
- type Context
- type HandlerFunc
- type Packager
- type ProtocolMessage
- type RTUServerHandler
- func (r *RTUServerHandler) CheckSum(bs []byte) bool
- func (r *RTUServerHandler) Close() error
- func (r *RTUServerHandler) Connect() error
- func (r *RTUServerHandler) Decode(bs []byte) (message ProtocolMessage, err error)
- func (r *RTUServerHandler) Encode(message ProtocolMessage) (bs []byte, err error)
- func (r *RTUServerHandler) HandleFunc(handler func(message *ProtocolMessage))
- func (r *RTUServerHandler) Listen() error
- func (r *RTUServerHandler) Read(p []byte) (n int, err error)
- func (r *RTUServerHandler) Send(message *ProtocolMessage) error
- func (r *RTUServerHandler) Write(p []byte) (n int, err error)
- type ServerHandler
- type Slave
- type Transporter
Constants ¶
View Source
const ( FuncCodeReadCoils = 1 FuncCodeReadDiscreteInputs = 2 FuncCodeReadHoldingRegisters = 3 FuncCodeReadInputRegisters = 4 FuncCodeWriteSingleCoil = 5 FuncCodeWriteSingleRegister = 6 FuncCodeWriteMultipleCoils = 15 FuncCodeWriteMultipleRegisters = 16 FuncCodeReadWriteMultipleRegisters = 23 FuncCodeMaskWriteRegister = 22 FuncCodeReadFIFOQueue = 24 )
View Source
const ( ParityNone = "N" ParityOdd = "O" ParityEven = "E" // default )
View Source
const ( BaudRate300 = 300 BaudRate600 = 600 BaudRate1200 = 1200 BaudRate2400 = 2400 BaudRate4800 = 4800 BaudRate9600 = 9600 // default BaudRate14400 = 14400 BaudRate19200 = 19200 BaudRate38400 = 38400 BaudRate56000 = 56000 BaudRate57600 = 57600 BaudRate115200 = 115200 BaudRate128000 = 128000 BaudRate153600 = 153600 BaudRate230400 = 230400 BaudRate256000 = 256000 BaudRate460800 = 460800 BaudRate921600 = 921600 )
View Source
const ( DataBits5 = 5 DataBits6 = 6 DataBits7 = 7 DataBits8 = 8 // default )
View Source
const ( StopBits1 = 1 // default StopBits2 = 2 )
Variables ¶
View Source
var ( ErrIllegalFunction = errors.New("illegal function") ErrIllegalDataAddress = errors.New("illegal data address") )
Functions ¶
func DefaultSerialConfig ¶
func FuncCodeText ¶
FuncCodeText returns the text representation of a Modbus function code.
Types ¶
type Context ¶
type Context struct {
ProtocolMessage *ProtocolMessage
Coils *coilStorage
DiscreteInputs *coilStorage
HoldingRegisters *registerStorage
InputRegisters *registerStorage
// contains filtered or unexported fields
}
func (*Context) GetBoolSlice ¶
func (*Context) GetUint16Slice ¶
type HandlerFunc ¶
type HandlerFunc func(c *Context)
type Packager ¶
type Packager interface {
Encode(message ProtocolMessage) (bs []byte, err error)
Decode(bs []byte) (message ProtocolMessage, err error)
}
type ProtocolMessage ¶
type ProtocolMessage struct {
TransactionIdentifier uint16 `json:"transactionIdentifier"` // tcp: transaction identifier
ProtocolIdentifier uint16 `json:"protocolIdentifier"` // tcp: protocol identifier
Length uint16 `json:"length"` // tcp: length of the following data
UnitIdentifier byte `json:"unitIdentifier"` // tcp: unit identifier
SlaveId byte `json:"slaveId"` // slave address
FunctionCode byte `json:"functionCode"` // function code
Address uint16 `json:"address"` // start address
Quantity uint16 `json:"quantity"` // quantity
ValueLength byte `json:"valueLength"` // value length
Values []byte `json:"values"` // value bytes
ErrorCode byte `json:"errorCode"` // error code
// contains filtered or unexported fields
}
type RTUServerHandler ¶
type RTUServerHandler struct {
// contains filtered or unexported fields
}
func NewRTUServerHandler ¶
func NewRTUServerHandler(config *serial.Config) *RTUServerHandler
func (*RTUServerHandler) Close ¶
func (r *RTUServerHandler) Close() error
func (*RTUServerHandler) Decode ¶
func (r *RTUServerHandler) Decode(bs []byte) (message ProtocolMessage, err error)
func (*RTUServerHandler) Encode ¶
func (r *RTUServerHandler) Encode(message ProtocolMessage) (bs []byte, err error)
func (*RTUServerHandler) HandleFunc ¶
func (r *RTUServerHandler) HandleFunc(handler func(message *ProtocolMessage))
func (*RTUServerHandler) Listen ¶
func (r *RTUServerHandler) Listen() error
func (*RTUServerHandler) Send ¶
func (r *RTUServerHandler) Send(message *ProtocolMessage) error
type ServerHandler ¶
type ServerHandler interface {
Listen() error
Close() error
HandleFunc(func(message *ProtocolMessage))
Send(message *ProtocolMessage) error
}
type Slave ¶
type Slave struct {
// contains filtered or unexported fields
}
func NewSlave ¶
func NewSlave(handler ServerHandler) *Slave
func (*Slave) HandleFuncCode ¶
func (s *Slave) HandleFuncCode(code int, f HandlerFunc)
type Transporter ¶
type Transporter interface {
io.ReadWriter
Connect() error
Close() error
}
Click to show internal directories.
Click to hide internal directories.