Shouldn't be difficult to handle both situations to actually verify responses. I got frustrated trying to figure out how to properly pass data between threads in python and called it a night.
I'm not sure how, but right now it works letting me call a UI update function from another thread. This is not how I do this on embedded devices...
Assuming a UI is anything like the embedded world, i'd
1) Have a thread for serial handling (I do now). It waits for new lines from the tool then passes them off to a queue
2) Another thread for processing these raw messages from the device. Once processed, it puts the updated/processed message into another queue
3) UI thread gets the message from thread in #2, and can update the UI elements based on new data.
In FreeRTOS or similar RTOSes, you have very convenient queues and sleep functions that can wait for an event to wake the thread. I'm not quite sure what the equivalent process is in python for TKinter. The joys of trying to correct all the layers of "it'll mostly work" thrown into this tool so I could get a sniffing tool thrown together quickly.
I really wanted something platform agnostic since I develop in Linux, Windows and MacOS (M1 and x86). I hate being tied down to an OS
