For testing here I have used a Windows 7 64-bit PC, a Linux Mint 64-bit PC and a Windows 10 32-bit virtual machine. On every one of these machines, I can send the upload to the radio at full speed.
You mean without these delays in the code, right?
I assume that the upload takes at least double the time with these in place, correct?
I have attached the serial port capture that I made using Windows 7 and my RT23. Does it provide a clue as to how I can resolve this.
I'm not sure what program that came from, but it doesn't have the extra information that portmon gives us about how the serial port was opened. However, from the look of that, I would assume that the software is writing the whole block in one go, not doing byte-at-a-time.
I know about Retevis, but if this can be resolved in a reasonable amount of time, I would rather delay adding this go CHIRP. I just need to assistance/advice on how to proceed.
Given our relationship with Retevis, maybe we can get some information from them about any restrictions the radios may have in terms of digesting the data stream?
Have you tried doing something like writing 8 bytes at a time, with a sleep in between or something like that?
I will give this a try.
I think that's a good first step. If we can knock it down to a delay every N bytes that'll be a huge improvement.
--Dan