您的位置:首页 > 移动开发

一个android汽车试验app的技术memo

2014-03-12 18:20 746 查看
一个android汽车试验app的技术memo

1 系统构成

 这个汽车试验系统中,汽车上有一个设备,可以采集数据,上面运行的可能是某个实时Linux系统,此设备将自己模拟成usb大容量存储设备。

 平板是三星galaxy tab 2,带OTG功能,连接车载试验设备。

 这个app就运行在平板上,发送操作指令,比如启动、加速,并且获取汽车上的实时数据,比如速度加速度。

2 通信协议

 本来可以使用usb命令请求和响应,不过可能是车载设备上RAM有限,转而通过文件作为通信载体,

 PAD和车载设备都可以修改文件,然后都通过轮询去检查文件更新。
 这个后来发现,由于缓存原因,车载设备上的文件修改PAD端不能及时检测,

 后来同事在文件系统的基础上跳过缓存,在c代码中open文件时使用参数O_DIRECT。

 以前就看到资料说MTP协议就有在PC端更新不及时的问题。不过不了解这个车载设备是不是MTP协议。

3 app技术方案

 app端按理说应该用jni做这事,因为有实时性的要求。不过经过调研测试发现java层的文件读写也能满足要求,

 因为最大文件大小大概在100k,经过试验读写时间在100ms以下。

 然后就是车载设备之间的协议是结构体的格式,因为车载设备端是c语言的,

 app端就找了一个叫JavaStruct的开源库,能很好的实现类似c中的struct使用。挺有意思的,不过有时也得像c一样计算各种类型的字节数。

 另外还有画图,就是速度加速度变化图,带刻度尺和线,小同事也是找了个开源的库,用着好像也行,客户不挑。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  android app usb 汽车电子