前面的工作做完后只能保证能够在linux下使用,在Android下使用还是不行的,还需要做下面的步骤:
这里有三个文件夹can、libhardware、realarmTest,can文件夹放的是运行can需要的工具包括can脚本、ip工具(如果Android系统里没有这个工具,需要拷贝该工具到/system/xbin目录下,注意linux系统下busybox带的ip工具不可用)等;libhardware 该目录存放的是can在Android系统中jni层的源码,我们放在Android的路径为/devices/nexell/realarm/,具体的参与编译请参考我们的源码;realarmTest则为我们提供的对can、串口、485总线、LED的测试app,存放路径为/packages/app。
下面只对怎么实现can总线的操作做说明。
1.把can目录下的can.sh文件拷贝到Android系统目录的/system/bin目录下,成功的情况如下图所示:
具体实现的方法是:把can整个目录拷贝到/device/nexell/realarm目录下:
修改/device/nexell/realarm目录下的device.mk文件,增加下面的代码:
2.添加can的jni层
同上面一样把libhardware文件拷贝到/device/nexell/realarm目录下,并在device.mk文件中增加下面的代码:
3.apk应用的生成
这个只需要把realarmTest整个文件放到/packages/app目录下就可以了,无需做任何其他修改。
上面完成后,还需要对Android启动时的配置做修改,添加can波特率修改的服务
修改/device/nexell/realarm目录下init.realarm.rc这个文件,在最后添加下面的代码:
##############################**CAN**####################################
chmod 0777/system/bin/can.sh
service can/system/bin/can.sh
oneshot
onproperty:net.can.change=yes
restart can
#########################################################################
所有步骤完成后,can应该就可以正常通信了。
波特率的修改,可以在进入can应用时,使用设置修改之。