MCPcopy Create free account
hub / github.com/distributed/sers / GetMode

Method GetMode

sers_termios.go:184–229  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

182}
183
184func (bp *baseport) GetMode() (mode Mode, err error) {
185 var tio *C.struct_termios
186 tio, err = bp.getattr()
187 if err != nil {
188 return
189 }
190
191 tioCharSize := tio.c_cflag & C.CSIZE
192 switch tioCharSize {
193 case C.CS5:
194 mode.DataBits = 5
195 case C.CS6:
196 mode.DataBits = 6
197 case C.CS7:
198 mode.DataBits = 7
199 case C.CS8:
200 mode.DataBits = 8
201 default:
202 err = fmt.Errorf("unknown character size field (%#08x) in termios", tioCharSize)
203 }
204
205 mode.Stopbits = 1
206 if tio.c_cflag&C.CSTOPB != 0 {
207 mode.Stopbits = 2
208 }
209
210 mode.Parity = N
211 switch tio.c_cflag & (C.PARENB | C.PARODD) {
212 case C.PARENB | C.PARODD:
213 mode.Parity = O
214 case C.PARENB:
215 mode.Parity = E
216 }
217
218 mode.Handshake = NO_HANDSHAKE
219 if tio.c_cflag&C.CRTSCTS != 0 {
220 mode.Handshake = RTSCTS_HANDSHAKE
221 }
222
223 mode.Baudrate, err = bp.getBaudrate()
224 if err != nil {
225 return
226 }
227
228 return
229}
230
231func (bp *baseport) SetReadParams(minread int, timeout float64) error {
232 inttimeout := int(timeout * 10)

Callers

nothing calls this directly

Calls 2

getattrMethod · 0.95
getBaudrateMethod · 0.95

Tested by

no test coverage detected