github.com/stampzilla/stampzilla-go@v2.0.0-rc9+incompatible/nodes/stampzilla-modbus/modbus.go (about) 1 package main 2 3 import ( 4 "time" 5 6 "github.com/goburrow/modbus" 7 ) 8 9 type Modbus struct { 10 client modbus.Client 11 handler *modbus.RTUClientHandler 12 } 13 14 func (m *Modbus) Connect() error { 15 // Modbus RTU/ASCII 16 handler := modbus.NewRTUClientHandler("/dev/ttyUSB0") 17 handler.BaudRate = 9600 18 handler.DataBits = 8 19 handler.Parity = "N" 20 handler.StopBits = 2 21 handler.SlaveId = 1 22 handler.Timeout = 5 * time.Second 23 //handler.Logger = log.New(os.Stdout, "test: ", log.LstdFlags) 24 m.handler = handler 25 if err := handler.Connect(); err != nil { 26 return err 27 } 28 29 m.client = modbus.NewClient(handler) 30 return nil 31 } 32 func (m *Modbus) Close() error { 33 return m.handler.Close() 34 } 35 func (m *Modbus) ReadInputRegister(address uint16) ([]byte, error) { 36 return m.client.ReadInputRegisters(address-1, 1) 37 }