还剩3页未读,继续阅读
文本内容:
二次雷达部分代码走读、准备工作查看二次雷达文件,属于外设设备,在peripherals目录下,二次雷达头文件SSRadar.h,SSRadar.cpp;二次雷达防撞业务,在aods目录下,对应文件是Anticollision,h,Anticollision.cpp
二、程序结构二次雷达数据结构体SSRDatalnfo,这个结构体用来存储雷达接收到的处理后的数据,是根据协议手册编写的;
三、函数检查SSRadar.cpp
1、初始化
2、createIQBoardToSSRBoardCmdTraininfoinfo,stdvector uint8_tcmd10板到二次雷达的命令信息,深六项目没有用到
3、praseSSRToETHCANDatestdvectoruintl6_tdata,SSRDatalnfoinfo二次雷达到CAN板数据传递两个参数,1data是二次雷达can数据,5帧组合数据,根据雷达板到主机can协议,我们主要用到的是第二帧第2,3字节,前车编号;4,5字节,前车距离;等,对应结构体SSRDatalnfo中定义的数据;可以通过协议内容对比查看;数据类型是stdvectoruintl6_t的引用,其中uintl6_t数据类型是C99中定义的,具体定义在/usr/include/stdint,h ISOC
997.18Integer typesstdint.h,typedef unsignedshort intuintl6_t;所以uintl6_t是短整型,而uint8_t是char型;而stdvector〈uintl6_t〉是一个存放短整型数据的容器2info是上面说的结构体类型,存放的结构体信息;函数代码1判断if45!=data,size,通过协议,我们看到5帧数据一共45个字节2赋值,车号,车距,RFID编号,因为是两帧数据合并的凑成的完整信息3行车方向需要判断一下;
4、praseSSRToMVBDatastdvectoruintl6_tdata,SSRDatalnfoinfo二次雷达到MVB数据:传递两个参数,1data是二次雷达MVB板数据,5帧组合数据变量,上面解释了,对应的是不同的协议;2info存放的结构体信息;函数代码1判断if29!=data,size,通过协议,我们看到5帧数据一共29个字节2赋值,车号,车距;3通过传输来的信息,判断二次雷达的工作模式;0-应答模式,1-预警模式4通过传输来的信息,判断雷达预警是否激活;0-否,1-是5通过传输来的信息,判断雷达是否有故障SSRWarnActive;6获取RFID特殊字段;以上是二次雷达部分代码,下面是防撞部分代码Anticollision,cpp应用到了二次雷达头文件#include peripherals/SSradar.hn,头文件”和的区别,头文件书写的顺序,C标准库,C++标准库、其它库的◊头文件、你自己工程的头文件;
1、结构体FrountTrainResult;这种结构体和类的主要区别,
1、继承默认不同,
2、内部成员变量及成员函数默认的访问级别不同;结构体中定义5个变量,包含构造、析构函数;
2、getFrontTrainlnfo SSRDatalnfoinfo;获取二次雷达最新探测结果,info是上面说的结构体类型,存放的结构体信息;赋值传递信息info=m info;
3、updateFrontTrainlnfoSSRDatalnfoinfo;更新探测结果若info存在新数据,更新数据
4、定义锁g_CAnticollisionMtx
5、定义空指针m_plnstance
6、单例函数
7、构造函数
8、析构函数
9、初始化
四、注释:程序注释比较完整
五、私有成员变量static CAnticollision*m_plnstance;JsonValue m_jsnCfg;SSRDatalnfo minfo;static CSSradar*m_plnstance;uintl6t mChannel;
六、关于二次雷达:
1、二次雷达为什么叫做二次雷达?与普通雷达的区别?二次雷达有应答机,可以通过应答机传输信息,是普通雷达的进化;
2、二次雷达是什么样的这样的,车头车尾各装一个,一个探测机,一个应答机;。
个人认证
优秀文档
获得点赞 0