github.com/simpleiot/simpleiot@v0.18.3/modbus/transport.go (about) 1 package modbus 2 3 import ( 4 "io" 5 ) 6 7 // TransportType defines a modbus transport type 8 type TransportType string 9 10 // define valid transport types 11 const ( 12 TransportTypeTCP TransportType = "tcp" 13 TransportTypeRTU TransportType = "rtu" 14 ) 15 16 // TransportClientServer defines if transport is being used for a client or server 17 type TransportClientServer string 18 19 // define valid client server types 20 const ( 21 TransportClient TransportClientServer = "client" 22 TransportServer TransportClientServer = "server" 23 ) 24 25 // Transport defines an interface that various 26 // transports (RTU, TCP, etc) implement and can 27 // be passed to clients/servers 28 type Transport interface { 29 io.ReadWriteCloser 30 Encode(byte, PDU) ([]byte, error) 31 Decode([]byte) (byte, PDU, error) 32 Type() TransportType 33 }