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?

    Thanks,
    Erni35



  • 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

    Erni35


  • 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
 

Looks like your connection to Qt Forum was lost, please wait while we try to reconnect.