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

偶然出现emit信号后,3S后才打印下一句代码。

2
回复
6473
查看
[复制链接]
累计签到:1 天
连续签到:1 天
来源: 2020-5-23 17:29:13 显示全部楼层 |阅读模式
1Qter豆
本帖最后由 Since 于 2020-5-24 08:49 编辑

代码是串口接收到数据后的判断。代码如下:            

if(is_send_superwave_signal)               
{                    
    qDebug() << "superwavedata:" <<superwavedata;                    
    emit signal_logic_motor_slow();//减速                    
    is_send_superwave_signal =false;                    
    qDebug() << "is_send_superwave_signal:" <<is_send_superwave_signal;

}
这是主进程的信号和槽函数:   
connect(start_serialportthread, SIGNAL(signal_logic_motor_slow()), start_logicthread, SLOT(slot_logic_motor_slow()),Qt::QueuedConnection);

日志如下:(2020-05-23_09-46-49) Debug: superwavedata: 305
(2020-05-23_09-46-51) Debug: QSemaphore_logic_motor_stop-release
(2020-05-23_09-46-51) Debug: is_send_superwave_signal: false

请问这种情况是什么原因?



回复

使用道具 举报

累计签到:182 天
连续签到:1 天
2020-6-2 16:19:12 显示全部楼层
slot_logic_motor_slow()这个槽执行的语句耗了3s时间吧
回复

使用道具 举报

累计签到:1 天
连续签到:1 天
2020-6-2 21:46:32 显示全部楼层
nxc2018 发表于 2020-6-2 16:19
slot_logic_motor_slow()这个槽执行的语句耗了3s时间吧

不是的,正常情况下很快就执行完了。
如果界面超过大概半个小时没触碰按钮,运行到这一步就会出现这个问题。
如果一直运行或者两次运行时间小于30分钟,都是正常执行的。
很好奇这个问题。
回复

使用道具 举报

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

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