Reading and writing the serial port from different threads without
synchronization can trigger "GetOverlappedResult failed / WriteFile
failed - Acesso negado" on Windows with some USB-serial drivers. Add a
lock guarding all access to the Serial object, make the reader loop
non-blocking (in_waiting + short sleep instead of blocking read), and
recover cleanly to a reconnectable UI state on any fatal serial error
instead of leaving the app stuck in a broken "connected" state.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Tkinter desktop app to connect over serial, configure baudrate/output
power, start/stop tag inventory, and display detected EPC tags in a
table with RSSI and read count.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>