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  }