Important: Please read the Qt Code of Conduct -

QtSerialPort sending data

  • Hi and hello,

    short problem. I try to send 3 commands with QtSerialPort to a device. If I send them in 3 different routines triggered by 3 buttons it works perfect. If I call these 3 routines from one additional routine it fails. The fourth routine includes the correct timing (sleep(2000)) on a windows system. A port sniffer shows the right commands, a break of 2000 ms from the first one to the second, but the third one comes together with the second one.
    button1-click -> command1
    button2-click -> command2
    button3-click -> command3
    the other way
    button4-click -> command1 -> sleep(2000)->command2->sleep(2000)->command3
    Why there is no break between command2 and command3 in the second way?


  • Qt Champions 2020

    Please do not use sleep() call, because it is freeze event-loop.
    Instead use QTimer with command interval 2000 msec to send.

  • OK.
    But then I have to use signal - slot more...
    My little problem I solved this way. Now I wait for the response from the first command in a signal - slot loop, and it helps


  • Moderators

    IMHO, if you're going to use Qt, then you really need to lose the idea that using signals and slots are bad or cumbersome or something to avoid having to use. They're a fundamental part of the tool kit.

  • I know. And now, with using these tools it loks pretty good. And it works! Thanks you.

Log in to reply