|
1Qter豆
现在自己想做一个上位机,主要为了给设备进行IAP,是通过USB-CAN与我的设备进行通信,现在一个问题就是,当上位机给设备发送数据之后,设备会返回一些数据,但是这时间不确定,我是想用超时来判断设备是否返回了数据,目前的方法是每次数据发送完成之后,调用该函数QTimer::singleShot(TimeOut, this, &MainWindow::Time_update);在槽函数Time_update将一个全局变量置一,然后来判断该变量是否为一来实现超时处理,具体代码如下: QTimer::singleShot(TimeOut, this, &MainWindow::Time_update); if(timeout_flag == 1)//判断全局变量是否置一 { timeout_flag = 0; read_num =VCI_GetReceiveNum(4,DevIndex,CANIndex); } else { read_num = 0; }//槽函数void MainWindow::Time_update(){ timeout_flag = 1;}现在有一个问题就是这儿: QTimer::singleShot(TimeOut, this, &MainWindow::Time_update);//TimeOut给的是10, if(timeout_flag == 1)//判断全局变量是否置一这样来判断容易出问题,有没有其他的方式实现超时处理.
|
|