Unsolved QSerialPort compatibility between 5.2 and 5.10
I have an application that I originally wrote with Qt 5.2 and have recently upgraded to Qt 5.10. I have a requirement to host in RHEL 7.3 and that system is using 5.10. That said my app works fine communicating with the serial device (GPS Receiver) when compiled using 5.2 but with 5.10 the writes are not being received. I am getting this same behavior in both Windows 10 and RHEL. Under Windows, using a Serial Port Sniffer (HDDsoftware), the output messages are being sent but not accepted/processed by the receiver. I have no visibility into the receiver. I am receiving input data without issue. I cannot find any version history for QSerialPort that might lead to a solution. Any suggestions would be appreciated. Thank you.
Under Windows, using a Serial Port Sniffer (HDDsoftware), the output messages are being sent but not accepted/processed by the receiver.
Do I understand correctly, that the data is successfully sent to the GPS Receiver?
Then your problem sounds like a timing issue. Maybe Qt 5.10 is a bit faster and you overrun the GPS Receiver?
If you can share your code we could have a look if anything is suspicious.
Kent-Dorfman last edited by
Anytime someone mentions not receiving serial data the first thing I always ask them is "are you implementing flow control properly?" most kiddies either don't know it exists or don't believe it is necessary.
Another caveat to GPS under linux isthe gpsd...make sure it has been disabled if you are bypassing the service and communicating directly with the GPS unit.
@aha_1980 I don't have any visibility inside the receiver, but I have verified that data is going out and is correct using a laptop running Linux/minicom. I have tried placing tread->msleep to set delays between messages. I will alter the message sending function to send single bytes instead of the 42 byte message that is failing. At this point I'll try anything.
@kent-dorfman Flow control is not implemented on this receiver. GPSD is also not a concern as this receiver does not speak NMEA it conforms to ICD-GPS-153c.