canbus数据处理代码分析

下面以刹车控制为例进行分析

在**_controller.cc中,

brake_command_102_ = dynamic_cast<Brakecommand102*>(message_manager_->GetMutableProtocolDataById(Brakecommand102::ID));if (brake_command_102_ == nullptr) {AERROR << "Brakecommand102 does not exist in the LsMessageManager!";return ErrorCode::CANBUS_ERROR;

刹车brake_command_102_的数据通过message_manager_获得,进入message_manager_可以看到在message_manager.h文件里有如下代码:

class MessageManager {public:MessageManager() {}virtual ~MessageManager() = default;virtual void Parse(const uint32_t message_id, const uint8_t *data,int32_t length);

在头文件中定义了消息处理 MessageManager()和解析的函数Parse()接口。具体的实现则在对应的.cc文件中实现。

以发送刹车指令为例来分析,Byte是apollo内部定义用来专门处理类似can报文这类传感器的字节数据的。具体的位操作需要结合can报文来处理

void Brake60::set_pedal_p(uint8_t *data, double pedal) {// change from [0-100] to [0.00-1.00]// and a rough mappingpedal /= 100.;pedal = ProtocolData::BoundedValue(0.0, 1.0, pedal);int32_t x = static_cast<int32_t>(pedal / 1.52590218966964e-05);std::uint8_t t = 0;t = static_cast<uint8_t>(x & 0xFF);Byte frame_low(data + 0);frame_low.set_value(t, 0, 8);x >>= 8;t = static_cast<uint8_t>(x & 0xFF);Byte frame_high(data + 1);frame_high.set_value(t, 0, 8);
}

canbus数据处理代码分析相关推荐

  1. apollo自动驾驶进阶学习之:canbus模块代码分析

    文章目录 封面 代码架构 内容结构 封面 apollo自动驾驶:canbus模块代码讲解及测试(1)引言 apollo自动驾驶:canbus模块代码讲解及测试(2)框架讲解 代码架构 但是apollo ...

  2. starGAN原理代码分析

    下载: git clone https://github.com/yunjey/StarGAN.git 1 cd StarGAN/ 1 下载celebA训练数据: bash download.sh 1 ...

  3. python subplot_气象编程 | 一个简单的风数据处理和分析案例(Python版)

    添加新云天气象小编微信或QQ:130188121,及时获取或发布气象升学.就业.会议.征稿及学术动态信息!最新热点文章:行业动态 | 2020中国气象现代化建设科技博览会行业动态 | "远征 ...

  4. r 保留之前曲线_R简单数据处理和分析

    本文为猴子老师数据分析系列课程第3讲:简单数据处理和分析的具体实践. 数据:朝阳医院2016年销售数据.xlsx 业务指标: ■ 月均消费次数 ■ 月均消费金额 ■ 客单价 ■ 消费趋势 R的解决思路 ...

  5. 2017-2018-2 20155228 《网络对抗技术》 实验四:恶意代码分析

    2017-2018-2 20155228 <网络对抗技术> 实验四:恶意代码分析 1. 实践内容 1.1 系统运行监控 使用如计划任务,每隔一分钟记录自己的电脑有哪些程序在联网,连接的外部 ...

  6. Flink EventTime和Watermarks原理结合代码分析(转载+解决+精简记录)

    Apache Flink 框架保证Watermark单调递增,算子接收到一个Watermark时候,框架知道不会再有任何小于该Watermark的时间戳的数据元素到来了,所以Watermark可以看做 ...

  7. 《深入解析sas:数据处理、分析优化与商业应用》一3.5 SAS常用函数

    本节书摘来自华章出版社<深入解析sas:数据处理.分析优化与商业应用>一书中的第3章,第3.5节,作者 夏坤庄 徐唯 潘红莲 林建伟,更多章节内容可以访问云栖社区"华章计算机&q ...

  8. 内核RDMA模块(siw)代码分析

    siw是内核中实现的RDMA设备驱动模块.与其他RDMA设备驱动不同的是,这个模块没有对应的硬件设备,而是通过软件方式模拟了一个使用iWARP协议的RDMA设备,通过内核的socket接口完成tcp报 ...

  9. GraphSAGE NIPS 2017 代码分析(Tensorflow版)

    文章目录 数据集 ppi数据集信息 toy-ppi-G.json 图的信息 toy-ppi-class_map.json toy-ppi-id_map.json toy-ppi-walks.txt t ...

最新文章

  1. QIIME 2用户文档. 14机器学习预测样品元数据分类和回归q2-sample-classifier(2018.11)
  2. OA系统常见的审批流程
  3. [wbia 2.2] 对检索结果进行评估
  4. 4问教你搞定java中的ThreadLocal
  5. [设计模式] - Singleton单例模式
  6. Python的WSGI
  7. ArcGIS学习总结(11)——创建点要素并计算对应经纬度
  8. 【ES】学习2-搜索
  9. python csv生成vcf
  10. 函数连续,区间连续,一致连续,绝对连续,Lipschitz连续
  11. ubuntu系统调节电脑亮度
  12. 第一个blog--常用在线网站
  13. 酷我音乐盒去广告(续)
  14. llvm libLLVMCore源码分析 13 - Other Operators
  15. 一步一步实现中后台管理平台模板-08-登录页和用户信息保存
  16. python转义字符/a---响铃
  17. jetson xavier nx 系统及相关环境配置(cuda,torchvision,torch,tensorflow,opencv)
  18. 服务器防火墙怎么关闭?
  19. pandas 读表格_手把手教你数据分析(1)--Pandas读取Excel信息
  20. 使用 Shell 运算进行进制转换 16进制转10进制

热门文章

  1. 通达信接口编程语言是什么?
  2. 孙玄:斗胆谈一谈,大数据中台战略,究竟应该如何落地?
  3. vue+elementui Table组件splice删除表格总是删除最后一行
  4. jmeter参数传递三种方法
  5. 如何提高Microsoft Store下载速度
  6. Kafka异常问题记录
  7. hp380G10服务器安装centos6.9和显卡驱动
  8. uni-app 系统打印、AirPrint、支持ipad、打印图片 pdf webView文档
  9. “2019·中国云计算和物联网大会”来袭,多个亮点
  10. angular 系列八 ui-router详细介绍及ngRoute工具区别