综合技术
直播中

徐振方

7年用户 150经验值
私信 关注
[问答]

为何四轴遥控器目的地不同的数据帧要使用同一个队列?

正在研读原子四轴遥控器的代码。遥控器固件V1.2.1
任务commanderTask中,遥控器控制四轴的姿态命令帧存入队列txQueue中,遥控器向上位机发送的数据帧也存入队列txQueue中。
任务radiolinkTask中,并没有判断txQueue数据帧的目的地,而是直接发送(问题1:为何要直接发送,而不是判断帧头的目的地)。
问题:
为何目的地不同的数据帧要使用同一个队列?

回帖(5)

洪子云

2019-7-18 10:16:02
好的,谢谢~
举报

马丹丹

2019-7-18 10:33:56
还有疑问,想请教。
但是,任务u***linkTxTask中,仍然使用txQueue这个队列。
也就是说,txQueue中的帧还会通过遥控器的u***发送到上位机。我的理解正确吗?
我终于知道了,
radiolink.c中定义了static xQueueHandle  txQueue;
u***link.c中定义了static xQueueHandle  txQueue;
虽然这两个队列的名字是一样的,但是是在不同的c文件中的static。故,是两个不同的队列。
举报

黄伟

2019-7-18 10:48:08
是的,这就static强大之处。
举报

李顺正

2019-7-18 11:02:14
真厉害啊,受教了!
不过我没有看明白,这个好像没有传输给上位机吧,radiolinkTask是把ATKP格式数据包发送给四轴,四轴返回一个数据包,好像没有和上位机通信吧?
和上位机通信的应该是遥控器通过USB的啊,表示不太明白
举报

更多回帖

发帖
×
20
完善资料,
赚取积分