|Update: I rebooted and now everything works fine.
I'm kind of rubber ducking you all, so bear with me (or skip) and thanks.
It's the wee hours here. I don't know what I changed in my code, but one minute it was working.
The next minute every time I start it it's like the procedure that builds all the windows exits halfway through without creating everything, and then the app doesn't exit. (It appears to, but you have to kill it in TaskMan)
I should pack it in but that leaves me for want of something to do (I woke up recently), and code in a known bad state.
All of this mess is to simply read and write serial ports in win32, but due to a sort of polarity mismatch between the Arduino and Win32 APIs I need to spin a thread to continually fetch data from the COM port. This seems to be what is causing the problem. It's not a race condition though - it's consistent.
I need to do this due to the presence of a
peek() function which peeks the next character in the stream, and an
available() function which returns the # of bytes waiting in the receive buffer. Win32 has no such facilities, so I need to emulate them.
I'm wondering if I can't just cooperatively thread the whole thing. I already have my main application loop where I could poll each com port, but due to separation of the various parts of Winduino I need to expose an uncomfortable amount of serial functionality "publicly" to make that happen.
It kind of makes me want to give up and play fallout, but I really don't want to leave my code in its present state.
Check out my IoT graphics library here:
And my IoT UI/User Experience library here:
modified 30-Sep-23 20:59pm.