Skip to content

Commit 857f00d

Browse files
committed
Added RTS/DTR configuration values
1 parent d899c5e commit 857f00d

File tree

1 file changed

+33
-2
lines changed

1 file changed

+33
-2
lines changed

Diff for: main.go

+33-2
Original file line numberDiff line numberDiff line change
@@ -82,6 +82,18 @@ func NewSerialMonitor() *SerialMonitor {
8282
Values: []string{"1", "1.5", "2"},
8383
Selected: "1",
8484
},
85+
"rts": {
86+
Label: "RTS",
87+
Type: "enum",
88+
Values: []string{"On", "Off"},
89+
Selected: "On",
90+
},
91+
"dtr": {
92+
Label: "DTR",
93+
Type: "enum",
94+
Values: []string{"On", "Off"},
95+
Selected: "On",
96+
},
8597
},
8698
},
8799
openedPort: false,
@@ -114,7 +126,17 @@ func (d *SerialMonitor) Configure(parameterName string, value string) error {
114126
// Apply configuration to port
115127
var configErr error
116128
if d.openedPort {
117-
configErr = d.serialPort.SetMode(d.getMode())
129+
switch parameterName {
130+
case "baudrate", "parity", "bits", "stop_bits":
131+
configErr = d.serialPort.SetMode(d.getMode())
132+
case "dtr":
133+
configErr = d.serialPort.SetDTR(d.getDTR())
134+
case "rts":
135+
configErr = d.serialPort.SetRTS(d.getRTS())
136+
default:
137+
// Should never happen
138+
panic("Invalid parameter: " + parameterName)
139+
}
118140
}
119141

120142
// If configuration failed, rollback settings
@@ -133,8 +155,9 @@ func (d *SerialMonitor) Open(boardPort string) (io.ReadWriter, error) {
133155
serialPort, err := serial.Open(boardPort, d.getMode())
134156
if err != nil {
135157
return nil, err
136-
137158
}
159+
_ = serialPort.SetDTR(d.getDTR())
160+
_ = serialPort.SetRTS(d.getRTS())
138161
d.openedPort = true
139162
d.serialPort = serialPort
140163
return d.serialPort, nil
@@ -187,3 +210,11 @@ func (d *SerialMonitor) getMode() *serial.Mode {
187210
}
188211
return mode
189212
}
213+
214+
func (d *SerialMonitor) getDTR() bool {
215+
return d.serialSettings.ConfigurationParameter["dtr"].Selected == "On"
216+
}
217+
218+
func (d *SerialMonitor) getRTS() bool {
219+
return d.serialSettings.ConfigurationParameter["rts"].Selected == "On"
220+
}

0 commit comments

Comments
 (0)