Qt创建者 - RS232通过串口写入快速

时间:2015-10-09 07:31:56

标签: c++ serial-port qt-creator robotics

for(int i = 0; i < receivedACLCommands.count(); i++ )
{
    QByteArray s = receivedACLCommands[i].toLatin1();
    serialport->write(s);
    serialport->waitForBytesWritten(1000);
}

在我的方法中,我有一个包含所有命令的QStringList。这些命令将被发送到PID控制器,该控制器需要在发送新命令之前处理该命令。我用waitForBytesWriten尝试了这个,但这对我不起作用。

*控制器是旧的SCORBOT控制器-a。(与ACL命令一起使用)。

1 个答案:

答案 0 :(得分:0)

是的,waitForBytesWritten()并没有解决这个问题。只有你可以做的其他事情是在等待调用后休眠一段时间,从而给设备一些时间来处理你刚才写的命令。究竟睡多长时间当然是盲目的猜测,它不一定是常数。

首先关注启用握手,通常会经常忽略。 QSerialPort :: setFlowControl()函数。一个体面的设备将使用其RTS信号关闭您的CTS输入(清除发送),当它没有准备好接收任何东西时。 Qt支持CTS / RTS握手,您使用QSerialPort :: HardwareControl