@@ -82,6 +82,18 @@ func NewSerialMonitor() *SerialMonitor {
82
82
Values : []string {"1" , "1.5" , "2" },
83
83
Selected : "1" ,
84
84
},
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
+ },
85
97
},
86
98
},
87
99
openedPort : false ,
@@ -114,7 +126,17 @@ func (d *SerialMonitor) Configure(parameterName string, value string) error {
114
126
// Apply configuration to port
115
127
var configErr error
116
128
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
+ }
118
140
}
119
141
120
142
// If configuration failed, rollback settings
@@ -133,7 +155,6 @@ func (d *SerialMonitor) Open(boardPort string) (io.ReadWriter, error) {
133
155
serialPort , err := serial .Open (boardPort , d .getMode ())
134
156
if err != nil {
135
157
return nil , err
136
-
137
158
}
138
159
d .openedPort = true
139
160
d .serialPort = serialPort
@@ -184,6 +205,18 @@ func (d *SerialMonitor) getMode() *serial.Mode {
184
205
Parity : parity ,
185
206
DataBits : dataBits ,
186
207
StopBits : stopBits ,
208
+ InitialStatusBits : & serial.ModemOutputBits {
209
+ DTR : d .getDTR (),
210
+ RTS : d .getRTS (),
211
+ },
187
212
}
188
213
return mode
189
214
}
215
+
216
+ func (d * SerialMonitor ) getDTR () bool {
217
+ return d .serialSettings .ConfigurationParameter ["dtr" ].Selected == "On"
218
+ }
219
+
220
+ func (d * SerialMonitor ) getRTS () bool {
221
+ return d .serialSettings .ConfigurationParameter ["rts" ].Selected == "On"
222
+ }
0 commit comments