-
Notifications
You must be signed in to change notification settings - Fork 0
/
main.go
43 lines (40 loc) · 813 Bytes
/
main.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
package main
import (
"log"
"time"
"github.com/samuelventura/go-modbus"
"github.com/samuelventura/go-serial"
)
//FIXME timeouts
//(cd go-comfile; go run .)
func main() {
mode := &serial.Mode{}
mode.BaudRate = 9600
mode.DataBits = 8
mode.Parity = serial.NoParity
mode.StopBits = serial.OneStopBit
trans, err := serial.NewSerialTransport("/dev/ttyUSB0", mode)
if err != nil {
log.Fatal(err)
}
defer trans.Close()
trans.SetError(true)
err = trans.Discard(200)
if err != nil {
log.Fatal(err)
}
modbus.EnableTrace(true)
master := modbus.NewRtuMaster(trans, 4000)
for {
err = master.WriteDo(1, 4096, true)
if err != nil {
log.Fatal(err)
}
time.Sleep(1 * time.Second)
err = master.WriteDo(1, 4096, false)
if err != nil {
log.Fatal(err)
}
time.Sleep(1 * time.Second)
}
}