Implementation risks
| Blocking reads in UI thread | Freezes and timeout-dependent behavior. |
|---|---|
| One read equals one frame | Partial or combined messages are parsed incorrectly. |
| Event-driven component | Reentrancy and shared-buffer races need control. |
| Timer polling | Latency and dropped bytes vary with system load. |
| USB adapter replacement | COM number, driver buffering and control lines can differ. |
Maintenance sequence
- Capture known-good bidirectional traffic and port settings.
- Identify API/component ownership of buffering and callbacks.
- Implement an explicit receive buffer and frame parser.
- Separate protocol timeouts from UI timers.
- Test disconnect, partial frames and repeated device states.
Use the serial pillar, traffic capture, adapter analysis and Delphi source analysis.
Provide source/component version, captures, device manual, port settings and failure timing.