()
| 358 | } |
| 359 | |
| 360 | func getSerialSettings() (SerialSettings, error) { |
| 361 | switch defaultMode.StopBits { |
| 362 | case serial.OneStopBit: |
| 363 | serialConfig.StopBits = "1" |
| 364 | case serial.OnePointFiveStopBits: |
| 365 | serialConfig.StopBits = "1.5" |
| 366 | case serial.TwoStopBits: |
| 367 | serialConfig.StopBits = "2" |
| 368 | } |
| 369 | |
| 370 | switch defaultMode.Parity { |
| 371 | case serial.NoParity: |
| 372 | serialConfig.Parity = "none" |
| 373 | case serial.OddParity: |
| 374 | serialConfig.Parity = "odd" |
| 375 | case serial.EvenParity: |
| 376 | serialConfig.Parity = "even" |
| 377 | case serial.MarkParity: |
| 378 | serialConfig.Parity = "mark" |
| 379 | case serial.SpaceParity: |
| 380 | serialConfig.Parity = "space" |
| 381 | } |
| 382 | |
| 383 | file, err := os.Open(serialSettingsPath) |
| 384 | if err != nil { |
| 385 | logger.Info().Msg("SerialSettings file doesn't exist, using default") |
| 386 | return serialConfig, err |
| 387 | } |
| 388 | defer file.Close() |
| 389 | |
| 390 | // load and merge the default config with the user config |
| 391 | var loadedConfig SerialSettings |
| 392 | if err := json.NewDecoder(file).Decode(&loadedConfig); err != nil { |
| 393 | logger.Warn().Err(err).Msg("SerialSettings file JSON parsing failed") |
| 394 | return serialConfig, nil |
| 395 | } |
| 396 | |
| 397 | serialConfig = loadedConfig // Update global config |
| 398 | |
| 399 | // Apply settings to serial port, when opening the extension |
| 400 | var stopBits serial.StopBits |
| 401 | switch serialConfig.StopBits { |
| 402 | case "1": |
| 403 | stopBits = serial.OneStopBit |
| 404 | case "1.5": |
| 405 | stopBits = serial.OnePointFiveStopBits |
| 406 | case "2": |
| 407 | stopBits = serial.TwoStopBits |
| 408 | } |
| 409 | |
| 410 | var parity serial.Parity |
| 411 | switch serialConfig.Parity { |
| 412 | case "none": |
| 413 | parity = serial.NoParity |
| 414 | case "odd": |
| 415 | parity = serial.OddParity |
| 416 | case "even": |
| 417 | parity = serial.EvenParity |
no test coverage detected