My guess is that it would be better to leave the time sensitive read
thread to do the fast reads and immediate calculations and leave writing
to the device screen in a separate thread (even main thread), with a
lower update frequency!
Yes, that was what I was attempting to describe.. but I can't write to the usb
device if the read thread happens to be in the middle of a read... so how do I
pause the read thread at the correct time so it's not partially in the middle
of reading a packet, and I can't read again until I'm done writing. I figure I
can just check for some period of time of idle handwheel input before I stop
the read thread and do the write then start the read thread again, because only
the handwheel produces such a large stream of data.. but still I’m not sure how
to make sure I stop it at the correct time.
I do not get why should you stop the read thread, when that is the
actual advantage of having multiple threads. While the read thread is
busily reading input in a buffer/queue/what have you, you are free
within limits) to do whatever you need to do (e.g., output to LCD
display, do calculations) in the other threads, including the main
thread, after which, you can get back to consuming and processing the
(hopefully only slightly larger now) data from the read thread
buffer/queue. After you figured writing to the LCD screen you could try
writing random data to it while reading and processing handwheel and
button input *at the same time*. Hope this makes sense.
_______________________________________________________
_______________________________________________
fpc-pascal maillist - fpc-pascal@lists.freepascal.org
https://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-pascal