forked from goburrow/serial
-
Notifications
You must be signed in to change notification settings - Fork 5
/
serial.go
58 lines (52 loc) · 1.26 KB
/
serial.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
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
/*
Package serial provides a cross-platform serial reader and writer.
*/
package serial
import (
"errors"
"io"
"time"
)
var (
// ErrTimeout is occurred when timing out.
ErrTimeout = errors.New("serial: timeout")
)
// Config is common configuration for serial port.
type Config struct {
// Device path (/dev/ttyS0)
Address string
// Baud rate (default 19200)
BaudRate int
// Data bits: 5, 6, 7 or 8 (default 8)
DataBits int
// Stop bits: 1 or 2 (default 1)
StopBits int
// Parity: N - None, E - Even, O - Odd (default E)
// (The use of no parity requires 2 stop bits.)
Parity string
// Read (Write) timeout.
Timeout time.Duration
// Configuration related to RS485
RS485 RS485Config
}
// platform independent RS485 config. Thie structure is ignored unless Enable is true.
type RS485Config struct {
// Enable RS485 support
Enabled bool
// Delay RTS prior to send
DelayRtsBeforeSend time.Duration
// Delay RTS after send
DelayRtsAfterSend time.Duration
// Set RTS high during send
RtsHighDuringSend bool
// Set RTS high after send
RtsHighAfterSend bool
// Rx during Tx
RxDuringTx bool
}
// Port is the interface for controlling serial port.
type Port io.ReadWriteCloser
// Open opens a serial port.
func Open(c *Config) (Port, error) {
return open(c)
}