环境是,nuc972 arm板,qt5.6,socketcan数据收发。
先是主线程里通过can发送数据,对方设备收到数据后返回,接收线程里很快就收到数据。从时间看,can发送数据后,1秒就收到对方返回的数据。然后将数据作为信号的参数,发送信号。数据是个can_frame结构体变量,好像是13字节。
主线程里对应的槽函数,大概19秒后才触发,有时候好像是11秒。为什么会这么慢呢?
:/mnt# ./cantest3
nuc970-can1 nuc970-can1 can1: setting BTR=1b13 BRPE=0000
main thread socketid is 4
can recv thread is begin.
"[1970-01-01 04:34:07]"
socketcan write ok: 9b60f5f4, 00, 10, 03, 00, d4, c3, b2, a1
"[1970-01-01 04:34:08]"
recv thread received: 9b00f4f5, 08, 03, 10, 05, 00, 82, 00, 00, 00
main thread recv signal.
"[1970-01-01 04:34:27]"
device online
---------------------------------
晕死,主线程里加了个sleep(20),阻塞在这里了。
版主看到的话,麻烦删了这个帖子吧。
最近编辑记录 Gentlepig (2023-03-07 15:41:47)
离线