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

Android App CAN通信测试

 CAN 通信

CAN总线协议(Controller Area Network), 控制器局域网总线,是德国BOSCH(博世)公司研发的一种串行通讯协议总线, 它可以使用双绞线来传输信号,是世界上应用最广泛的现场总线之一

10.1. can fd配置

在使用can之前,需要对can进行配置

注意

野火Android SDK中,如果发现can设备树配置和can驱动跟下面图片对不上,请联系技术支持更新。

../../_images/can_dts.png

 

../../_images/can_drv.png

10.2. CAN硬件连接

CAN模块之间接线:CAN_1H接CAN_2H,CAN_1L接CAN2_L

10.3. can通信测试

在Android系统中,同样可以使用can-utils工具进行测试。不过想要通过adb shell进行can测试,需要在Android SDK中自行移植can-utils。

通信测试

 123456789
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
执行adb
adb shell超级用户权限
su更改测试工具权限
chmod 0777 candump
chmod 0777 cansend查询当前网络设备:
ifconfig -aCAN启动:关闭CAN:ip link set can0 downip link set can1 down设置比特率500KHz:ip link set can0 type can bitrate 500000ip link set can1 type can bitrate 500000打印can0信息:ip -details link show can0ip -details link show can1启动CAN:ip link set can0 upip link set can1 upCAN接收:开启打印,等待接收:candump can0 &CAN发送:发送(标准帧,数据帧,ID:123,date:DEADBEEF):cansend can1 123#DEADBEEF

10.4. Android app can通信测试

在Android系统中,想要实现Android app去实现can通信,首先我们介绍一下Android jni

10.4.1. Android jni

Java Native Interface ,即 Java 本地接口 作用:使得 Java 与本地其他类型语言(如 C、C++ )进行交互。 实际的使用中,Java 需要与本地代码进行交互,因为 Java 项目具备跨平台的特点,所以 Java 与本地代码交互的能力非常弱,采用 JNI 特性,增强 Java 与本地代码交互的能力。

10.4.2. Android app 实现can 通信

以 LubanCat-2IO为例,使用的系统为android 11

连线方式如下:

../../_images/can_1.png

安卓界面整体布局如下:

../../_images/can_screen.png

在点击初始化按钮的时候,会先读取波特率,然后用该波特率去初始化2io的can0 和can1 。同时也会读取文本框的内容来决定canX来进行发送信息。 点击下方的send按钮可以将信息发送出去。同时后台会将can接收到的信息显示到文本框中,运行效果如下

../../_images/can_screen2.png

网盘提取码:hslu。

配套apk地址: can_apk

http://www.xdnf.cn/news/6690.html

相关文章:

  • opencloudos 安装 mosquitto
  • 操作系统|| 虚拟内存页置换算法
  • 遥感图像露天矿区检测数据集VOC+YOLO格式1542张1类别
  • (for 循环) VS (LINQ) 性能比拼 ——c#
  • 【HTML5学习笔记1】html标签(上)
  • javascript和vue的不同
  • 机器学习数据预处理回归预测中标准化和归一化
  • React Flow 节点属性详解:类型、样式与自定义技巧
  • 从技术视角解构 Solana Meme 币生态
  • 校园一卡通安全策略研究调研报告
  • 【配置中心】配置中心该用Nacos还是Apollo
  • 【C++】类与对象
  • python 爬虫框架介绍
  • Day11-苍穹外卖(数据统计篇)
  • 机器学习-特征工程
  • LED点阵屏模块
  • uniapp+vue3页面滚动加载数据
  • 交叉熵损失函数,KL散度, Focal loss
  • 经典启发算法【早期/启发式/HC爬山/SA模拟退火/TS禁忌搜/IA免疫 思想流程举例全】
  • 【生成式AI文本生成实战】从GPT原理到企业级应用开发
  • 【基础】Windows开发设置入门6:Scoop开发者完全指南(AI整理)
  • 如何导出一个python项目中的所有依赖包及其版本信息requirements.txt
  • muduo库EventLoop模块详解
  • 【四川省专升本计算机基础】第二章 计算机软硬件基础(1)
  • 超市营业额数据分析
  • 排序算法之基础排序:冒泡,选择,插入排序详解
  • 工具:shell命令提示符自定义之显示GIT当前分支
  • let、var、const的区别
  • 组件导航 (HMRouter)+flutter项目搭建-混合开发+分栏效果
  • ES(Elasticsearch)的应用与代码示例