Hi @part_timer!
Ok, so lets gets some details clear first and then to an answer and solution! ![]()
Not long at all, actually. At least one command is replied to per main loop, which on average are at most 1 ms. Therefore, the processing time for commands is pretty low (µs). The transfer rate of the reply is directly linked to the baud rate, of course. For example, a reply of *0QD300\r has 8 characters and would take about ((1/(baud rate / 10)) x 8) s to send, or about ((1 / (115200 / 10)) x 8) = 1.0850694e-5 s => 694.4 µs.
If you want more details on how long the entire process takes (sending, processing, replying), please have a look at this post. I go in details about the protocol and how it is handled and that includes logic analyzer screenshots of actual communication with a PC (USB) through a LSS Adapter Board and a LSS.
As you can read in the topic linked to above, many things can get in the way of obtaining a response. Most likely the size of the data payload and hardware FIFO are most likely responsible for the delays you see (combined with drivers, OS, etc.). On Windows 7 & 10 I’ve routinely seen ~15 ms (or 0.015 s) delays and sometimes up-to ~100 ms, depending on what else is happening simultaneously (and, of course, sometimes much higher but those are quite rare/abnormal).
I hope this info helps. Let me know if you have more questions!
Sincerely,