-
Notifications
You must be signed in to change notification settings - Fork 1
/
serial_bugst.go
52 lines (46 loc) · 1.22 KB
/
serial_bugst.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
package coap
import "github.com/lobaro/go-serial"
func serialStopBits(bits StopBits) serial.StopBits {
switch bits {
case Stop1:
return serial.OneStopBit
case Stop1Half:
return serial.OnePointFiveStopBits
case Stop2:
return serial.TwoStopBits
}
log.Warnf("Unknown stop bit option %v, using default: OneStopBit", bits)
return serial.OneStopBit
}
func serialParity(parity Parity) serial.Parity {
switch parity {
case ParityNone:
return serial.NoParity
case ParityOdd:
return serial.OddParity
case ParityEven:
return serial.EvenParity
case ParityMark:
return serial.MarkParity
case ParitySpace:
return serial.SpaceParity
}
log.Warnf("Unknown parity option %v, using default: NoParity", parity)
return serial.NoParity
}
func (c *UartParams) toBugstSerialMode() *serial.Mode {
return &serial.Mode{
BaudRate: c.Baud,
Parity: serialParity(c.Parity),
StopBits: serialStopBits(c.StopBits),
DataBits: c.DataBits,
InitialDTR: c.InitialDTR, //true,
InitialRTS: c.InitialRTS, // false,
}
}
func getPortsList() ([]string, error) {
return serial.GetPortsList()
}
func serialOpen(portName string, params UartParams) (SerialPort, error) {
return serial.Open(portName, params.toBugstSerialMode())
}