Skip to content

Improve linux compatibility - #113

Merged
Ultrawipf merged 3 commits into
masterfrom
fix/serial-robustness
Sep 3, 2026
Merged

Ultrawipf merged 3 commits into
masterfrom
fix/serial-robustness

Conversation

@Ultrawipf

@Ultrawipf Ultrawipf commented Sep 3, 2026 •

Copy link
Copy Markdown
Owner
  • Properly handles the close event on linux which otherwise can leave a process behind due to the tray icon still being active.
  • Improves stability of serial parser and some causes of crashes and timeouts
  • Adds ES translation (Thanks to jaredmraz)

Also adds simple tests for the communication for now to ensure it keeps working...

The receive path had three defects that mostly showed on Linux, where the
event loop drives both reading and writing.

- processMatchedReply removed expired callbacks from the list it was
  iterating, so every second matching callback was skipped and left
  registered. With four handlers on main.id this dropped the timeout
  acknowledge and triggered "Timeout. Please reconnect".
- A ']' arriving before any '[' made the parser break out of its loop
  forever. Every later reply piled up behind it and nothing was dispatched
  again until the port was closed.
- A read boundary inside a multibyte character raised in decode() and the
  whole chunk was discarded, which is what produced those truncated frames.

Also stop opening modal dialogs and doing blocking github requests from
inside the receive path, clear the OS buffers on open, drop the send buffer
on reset and handle QSerialPort errors.
@Ultrawipf
Ultrawipf merged commit 208f6ba into master Sep 3, 2026
3 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant