Android(Linux)实时监测串口数据

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Android(Linux)实时监测串口数据相关的知识,希望对你有一定的参考价值。

    之前在做WinCE车载方案时,曾做过一个小工具TraceMonitor,用于显示WinCE系统上应用程序的调试信息,特别是在实车调试时,用于显示CAN盒与主机之间的串口数据。因为需要抢占市场先机,经常在新车上市前,就得配合CAN解码盒厂商同步调试车机端软件。这时候,TraceMonitor就可能派上大用场。遇到说不清是哪一边的问题时,抓数据一看,就清清楚楚了。有时终端客户的机器出现了原车功能异常的问题,也可以直接运行该工具,实时抓取串口数据提供给我们以分析问题原因。不过该工具需要业务应用程序做特殊处理,不具备通用性,并且是在应用层实现,使用时可能会对性能有影响,但比没有强了。有一次跟GYP一起调试RK3188安卓车载导航,车机端始终收不到数据,硬件工程师说CAN盒肯定会发,纠结半天,最后只能用USB转串口板接出来在电脑上看,数据是有的,但帧格式不对。如果android上也有一个可以实时抓取串口数据的工具就方便多了。

    前文《Android(Linux)线路规程的使用》中已经提到,在调整Android底层串口通讯的框架时使用了线路规程,意外发现可以很方便地在驱动中监测串口收发的数据,再写一个应用配合显示就可以了。说干就干,折腾点小工具,方便自己,也方便别人。

    思路有了,实现并不复杂,先写一个字符驱动bonovo_mon,用于缓存线路规程里发送和接收到的数据,应用程序ComMon则使用FileInputStream读取字符设备数据并显示。为了使用时方便,实现了数据帧过滤、十六进制显示、数据保存、发送保存的数据到指定邮箱等功能,比WinCE下的TraceMonitor强大不少,可以监测通信串口上的所有数据,业务APP无需做任何特殊处理,而且仅在字符驱动bonovo_mon被打开时才向线路规程注册请求缓存数据,所以不运行ComMon时,对系统几乎没有任何影响。

    ComMon的界面及主要功能的使用如下所示。

    技术分享

以上是关于Android(Linux)实时监测串口数据的主要内容,如果未能解决你的问题,请参考以下文章

资产设备研发中,HDSC休眠时串口配置成中断

资产监测设备研发时,串口死机问题如何解决

多任务处理程序架构问题(串口通信指示灯按键响应)

环保监测终端 环保数据采集传输仪

如何监测Linux进程的实时IO读写情况

Android实时监测网络连接状态及网络是否可用,类似微信的功能。