1.问题现象
当接管后关闭小脑,然后遥控接管,驾驶舱再接管没有发送任何小脑指令,小脑是关闭状态。正确的现象应该是重新接管后,车的小脑功能是默认自动打开的。
2.分析
第一次接管后发送小脑关闭指令requestAeb=1,这个时候再退出接管,requestAeb值还是为1,当第二次接管时候舱端没有发送任何指令,但是vehicle的内部requestAeb=1,会不断地发送给底盘车辆20ms一次,所以会造成小脑关闭状态。
3解决方案
让requestAeb在退出接管后清零requestAeb=0;CAN协议requestAeb=0为打开小脑,requestAeb=1关闭小脑。这样在下次接管时候就会发送requestAeb=0的值。
4难点
给底盘发送数据是一个线程,只要处于接管发送的任何指令都是有效的。requestAeb只有两种状态0/1。所以关闭小脑后自动给把requestAeb=0恢复过来。