当前位置: 首页 > news >正文

免费在线网站建设本地网站建设电话

免费在线网站建设,本地网站建设电话,网页建站建设教程,郑州做网站推广电目录 前言一、VectorCANdb下载及安装二、DBC文件的编写1.新建dbc文件2.建立dbc2.1根据CAN协议设置以下的signals2.2设置报文2.3建立报文与信号的关系2.4建立节点 三、编写程序使用UDP通信下发can协议1.查看can口、电脑ip以及端口号2.编写测试程序 前言 最近完成了一个项目下载及安装二、DBC文件的编写1.新建dbc文件2.建立dbc2.1根据CAN协议设置以下的signals2.2设置报文2.3建立报文与信号的关系2.4建立节点 三、编写程序使用UDP通信下发can协议1.查看can口、电脑ip以及端口号2.编写测试程序 前言 最近完成了一个项目给了一个底盘还有底盘的CAN协议来写通底盘。CAN协议之前接触过DBC文件是第一次接触走了不少弯路在此记录一下整个工作的完整流程。 一、VectorCANdb下载及安装 参考链接 CANdb从安装到使用 WIN10下CANdb编辑器的下载和安装 注意要在windows系统下安装 VectorCANdb下载链接https://www.vector.com/cn/zh/download/candb-31-sp3/ 下载完了一直点击nex即可完成安装 二、DBC文件的编写 参考链接 CAN db创建DBC文件学习笔记 关于DBC文件的创建DBC文件系列其一 参考链接里面详细介绍了下面编写DBC文件过程中每个参数的含义 首先给出一份CAN协议 1.新建dbc文件 点击File-Create Database 选择CANTemplate.dbc后点击OK 创建文件名 新建完成后出现 2.建立dbc 2.1根据CAN协议设置以下的signals 点击signals-new Value Type选择UnsignedLength信号字节长度、Factor数据精度、Minimum与Maximum根据表格来填。 注意1.协议中给出的是十六进制数而这边的最大值最小值范围是十进制数。2.协议中第2、3个字节没有定义数据那么就默认为0我们在这边也把这个signal定义一下 2.2设置报文 2.3建立报文与信号的关系 鼠标左键按住设置好的signals拖动到EPS2上面注意顺序要与文件中顺序一致 全都拖好了双击EPS2然后点击Layout如下图所示可以检查一下报文设置是否正确图片上的字节顺序从右至左从上到下依次增大 2.4建立节点 1.建立发送和接受节点 右键点击Network nodes - New 2.将需要发送的报文拖到目标节点下的Tx Messages下面 我上面的例子只编写了一条message其他的message同理。下面图片中我一共编写了四条message就不一一展示了。 3.设置需要接受的报文 双击打开Receive选择Mapped Rx Sig.然后选择Add:all from one message 选择需要接收的报文点击ok 4.检查节点间的收发关系 5.can网络自动检查 没有错误至此DBC文件编写成功 我们可以右键编好的文件使用文本打开查看DBC文件的解析。 DBC文件的解析的参考链接 DBC文件学习 汽车行业DBC文件解析 Python 解析dbc文件 三、编写程序使用UDP通信下发can协议 参考链接ubuntu下使用python进行简单的UDP通信 1.查看can口、电脑ip以及端口号 查看can盒底部默认ip为192.168.4.101下面修改本机ip在同一网段下 接着安装wireshark sudo apt install wireshark然后打开wireshark sudo wireshark显示网络已经通了而且得到了 CAN盒ip192.168.4.101端口号6666 本机ip192.168.4.100端口号8882 2.编写测试程序 编写了一段程序用来测试UDP通讯注意修改ip与端口号 下面的程序使用了cantools库首先安装一下这个库pip3 install cantools使用python3运行该程序python3 xxx.py # -*- coding:UTF-8 -*- import socket import cantools from binascii import hexlifydef main():# 1. 创建socket套接字udp_socket socket.socket(socket.AF_INET, socket.SOCK_DGRAM) # AF_INET表示使用ipv4,默认不变SOCK_DGRAM表示使用UDP通信协议# 2. 绑定端口portlocal_addr (192.168.4.100, 8882) # 本地ip指定端口号7878udp_socket.bind(local_addr) # 绑定端口# 3. 加载dbc文件db cantools.database.load_file(/home/smart_car/DBC_File/text.dbc)# example_message db.get_message_by_name(VCU)# 4. 接受UDP数据包并解析CAN信号值# recv_data udp_socket.recvfrom(1024) # 定义单次最大接收字节数# recv_msg recv_data[0] # 接收的元组形式的数据有两个元素第一个为发送信息# send_addr recv_data[1] # 元组第二个元素为发信息方的ip以及port# print(recv_msg)# can_data db.decode_message(example_message.frame_id, recv_msg) # 解析CAN信号值# print(can_data)# 5. 输入CAN信号的名称和值并发送CAN数据包# 控制方向盘转到100°转速100的指令08 00 00 04 69 20 00 00 04 64 00 64 24data_1 { Work_mode: 32,Stay0: 0, Stay1: 0, Steer_Angle_H: 4, Steer_Angle_L: 100, Angle_alignment: 0, Angular_velocity: 100, Check: 36}while True :# 控制方向盘转到100°转速100的指令08 00 00 04 69 20 00 00 04 64 00 64 24message_move db.encode_message(EPS2, data_1)message_2 bytes([0x08, 0x00, 0x00,0x04, 0x69])message_3 message_2 message_move# print(hexlify(message).decode(ascii))# print(message)udp_socket.sendto(message_3, (192.168.4.101, 6666))if __name__ __main__:main() 解释说明 1.程序作用 上面的程序一部分是接受底盘CAN协议并且利用DBC文件解码另一部分是编写一条指令然后利用DBC文件编码然后用UDP发送给底盘 2.两行代码解释 message_2 bytes([0x08, 0x00, 0x00,0x04, 0x69]) message_3 message_2 message_move加这个的原因是一个标准的CAN协议包含帧信息、帧ID和帧信息而利用db.encode_message()函数进行DBC编码的时候只编码了最后八个字节的帧数据所以将第一到五个字节的信息手动添加进去前五个字节的信息是固定的。
http://www.hkea.cn/news/14362240/

相关文章:

  • 无锡网站关键词优化软件咨询活动策划书
  • 网站设计与系统的区别wordpress catchy
  • 公司网站建设的策划方案网站建设工作下步打算
  • 医疗机械网站怎么做宁波优化网站厂家
  • 网站建设mrd文档模板网站 文件夹 上传
  • 深圳响应式网站开发网站验证码插件
  • 东莞网站设计企业便宜的seo网站优化排名
  • 企业网站建设进度东莞网站建设优化推广
  • 创建手机网站免费昆明网站制作的教程
  • 东营建站公司seo教程网站优化
  • 西宁网站制作哪家公司好全国疾病监测系统
  • 网站获取信息中山营销网站建设
  • 网站建设国家和行业标准移动互联网开发的发展历史
  • Wordpress网站仿站杭州网站建设及推广
  • 如何在百度里做推广网站wordpress演示数据下载
  • 丹江口网站制作图片制作视频的app
  • 详细描述建设一个网站的具体步骤所谓网页制作三剑客不包括
  • 国内永久免费域名申请网站php做网站视频
  • 做网站从何开始公司注册资金实缴新政策出台2024
  • 百度基木鱼建站郑州最好的男科医院是什么医院
  • 郑州建站推广公司求一个做美食视频的网站
  • 绍兴网站建设哪家专业建立网站目录的时候
  • 爱站网注册人查询模板网站怎么做才美观
  • 城乡和住房建设部网站营销宣传方式有哪些
  • 上海做网站开发的公司有哪些哈尔滨信息网招聘
  • 泰安网站建设找工作网站建设挣钱吗
  • 网站开发联系方式北海市网站建设
  • 污网站公司网站中山网站免费制作
  • 自适应网站的图做多大 怎么切莱芜信息平台
  • 广州网站模板建站公司网站开发费用入什么科目