英创信息技术ESM6802 Android版支持双CAN通信简介

网友投稿 370 2022-11-16

英创信息技术ESM6802 Android版支持双CAN通信简介

CAN接口的工作思路大致如下图所示:

图1Android CAN应用流程介绍

CanControl类的四个native函数简单介绍如下:

public class CanControl {

static {

System.loadLibrary("CanControl");

}

/**

* 打开CAN接口 ifname,波特率设置为baud,设置CAN socket,只接收id & filtermask == filterid的CAN帧

* @param baud 波特率, 1000000,800000,500000,250000,125000,100000,60000,50000,20000,10000

* @param filterid 过滤ID,大于-1有效

* @param filtermask 过滤掩码

* @return 失败返回-1; 成功返回CAN socket描述符

*/

public native static int native_canOpen(String ifname, String baud,int filterid, int filtermask);

/**

*从can socket读取一帧数据,内部使用select阻塞监听可读操作,并设置超时时间

* @param fd can socket文件描述符

* @param frame 读取到数据帧

* @param sec 超时时间,单位s

* @return 失败返回-1;成功返回帧数据长度

*/

public native static int native_canRead(int fd, CanFrame frame, int sec);

/**

* 向can socket写函数

* @param fd can socket文件描述符

* @param data 写数据数组

* @param id 数据组成can帧的id号

* @return 失败返回-1;成功返回写的byte长度

*/

public native static int native_canWrite(int fd, byte[] data, int id);

/**

* 关闭can socket

* @param fd can socket文件描述符

* @return 失败返回-1;成功返回0

*/

public native static int native_canClose(int fd);

}

英创使用libCanControl.so封装的CanControl操作类,编写了一个简单的CAN通信测试APP:TestCanJni,支持标准帧/扩展帧、 HEX显示/发送,可设置一个过滤器。感兴趣的客户可以向英创工程师具体咨询。

图3CAN测试APP运行界面

图4支持HEX发送/显示

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:HBase的集群启动和停止操作
下一篇:Kotlin与Java的区别详解
相关文章

 发表评论

暂时没有评论,来抢沙发吧~