找回密码
 立即注册
收起左侧

何如增加信号和槽

2
回复
5190
查看
[复制链接]
累计签到:4 天
连续签到:1 天
来源: 2014-5-23 09:58:18 显示全部楼层 |阅读模式

马上注册,查看详细内容!注册请先查看:注册须知

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
简单说下项目,发出采集命令后会接收到返回的数据,解析后将直接发出采集下一个传感器的命令,所有的传感器编号存在vector,但是有一个问题就是万一某一个传感器坏了,没有返回数据,那么包括这个传感器在内的传感器将不会再有数据写入,其实之后的传感器是能工作的,因此想修改下结构。发出采集命令后能发射一个信号开始计时,超过十秒没回来数据就采集下下条。这个代码怎么写啊??好吧,直接问代码怎么写,确实有点俗。但是十秒之内回来数据,正常工作就好。
  1. void QTcpSocketThread::procHartSensorPkg()
  2. {

  3.     QSensor* sensor = sensorsVector.at(currentQueryIndx);

  4. 。。。。。//解析省略
  5. currentQueryIndx += 1;
  6. sendQuerySensorValueCmd();//采集下一个传感器数据
  7. }


复制代码
回复

使用道具 举报

累计签到:1568 天
连续签到:1 天
2014-5-26 20:42:59 显示全部楼层
使用定时器来完成啊。

点评

具体咋弄 我写了很多次 都没成功这么写不行的  详情 回复 发表于 2014-5-27 08:59
回复 支持 反对

使用道具 举报

累计签到:4 天
连续签到:1 天
2014-5-27 08:59:06 显示全部楼层
yafeilinux 发表于 2014-5-26 20:42
使用定时器来完成啊。

具体咋弄  我写了很多次  都没成功
  1. void QTcpSocketThread::sendQueryValueCmd()//
  2. {
  3.     if(qureyReady)
  4.     {
  5.         QSensor* sensor = sensorsVector.at( currentQueryIndx );
  6.         sensor->queryValueCmd(cmdBuffer);
  7.         tcpSocket->write( cmdBuffer );
  8.     }
  9.     timer=new QTimer();
  10.     timer->start(3000);
  11.     timer->moveToThread(this);
  12.     connect(timer,SIGNAL(timeout()),this,SLOT(sendQueryNextSensorValueCmd()),Qt::DirectConnection);
  13. }
复制代码
这么写不行的
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

公告
可以关注我们的微信公众号yafeilinux_friends获取最新动态,或者加入QQ会员群进行交流:190741849、186601429(已满) 我知道了