之前在做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)实时监控串口数据的更多相关文章

  1. linux实时监控并实时备份数据(rsync)

    目录 一:rsync实时监控备份流程 1.安装rsync(服务端 与 客服端)守护进程模式 2.修改配置文件(服务端) 3.解析配置内容 4.创建系统用户 5.创建密码文件 6.授权(必须授权为600 ...

  2. linux 实时监控网速脚本(转)

    #!/bin/bash ethn=$ while true do RX_pre=$(cat /proc/net/dev | grep $ethn | sed 's/:/ /g' | awk '{pri ...

  3. Spark+Kafka实时监控Oracle数据预警

    目标: 监控Oracle某张记录表,有新增数据则获取表数据,并推送到微信企业. 流程: Kafka实时监控Oracle指定表,获取该表操作信息(日志),使用Spark Structured Strea ...

  4. html 实时监控发送数据

    我们都知道ajax可以做异步提交,可以从一个文件里得到返回的数据,如此便能够实时的得到数据,实时刷新页面,如下代码 setInterval(function(){ $.ajax({ url:'demo ...

  5. Qt 实时读串口数据,并将读到的数据从网口发送出去

    需求: 1. 要试试从串口读取数据 2. 将读到的数据从网口发送出去 3.开机启动 4. 没有界面 第一部分 配置Qt Pro文件  需要Qt += serialport network 第二部分 - ...

  6. Java实现Android,iOS设备实时监控

    Java实现Android设备实时监控 设计思路: 第一,启动一个实时截图线程,负责实时截取Android设备屏幕,保存到本地路径. 第二,在JSP页面,定义一个img对象,实时更换img对象的src ...

  7. 性能测试 基于Python结合InfluxDB及Grafana图表实时监控Android系统和应用进程

    基于Python结合InfluxDB及Grafana图表实时监控Android系统和应用进程   By: 授客 QQ:1033553122     1. 测试环境 2. 实现功能 3. 使用前提 4. ...

  8. 性能测试 基于Python结合InfluxDB及Grafana图表实时采集Linux多主机性能数据

    基于Python结合InfluxDB及Grafana图表实时采集Linux多主机性能数据   by:授客 QQ:1033553122 实现功能 测试环境 环境搭建 使用前提 使用方法 运行程序 效果展 ...

  9. 服务器性能测试实时监控Linux命令

    实时监控 top -h : 查看帮助 -p : 监控指定进程,当监控多个进程时,进程ID以逗号隔开,这个选项只能在命令行下使用 top 任务区命令 M: 按内存使用率排序(大写) P:按CPU使用率排 ...

随机推荐

  1. System.Diagnostics.Process.Start的妙用

    我们经常会遇到在Winform或是WPF中点击链接或按钮打开某个指定的网址, 或者是需要打开电脑中某个指定的硬盘分区及文件夹, 甚至是"控制面板"相关的东西, 那么如何做呢? 答案 ...

  2. nodejs 返回html页面--使用 ejs 模板

    nodejs 可以直接在返回中使用html标签,例如下面的格式,返回 hello world 将会使用 h1 字体. app.get('/html',function(req,res){ res.st ...

  3. border:0与border:none区别与联系

    联系:前台效果均实现了无边框 区别: 要解释区别,首先得先介绍一下border这个属性. border是一个简写属性.可以设置如下属性 border-width border-style border ...

  4. IOS 2D游戏开发框架 SpriteKit-->续(完善角色功能)

    一.说明       今天给角色精灵增加了子弹发射功能,增加了子弹与敌对精灵的碰撞检测,当角色精灵子弹与敌对精灵碰撞后,它们都会从屏幕上消失. 二.场景层SKScene的修改 1. 在初始化场景层的方 ...

  5. [注意]SerialPort操作PCI-1621D多串口卡,出现异常"参数不正确"

    开发LED大屏显示.40-20mA模拟量输出的时候,经常要与串口打交道.但是Windows自带的SerialPort串口操作组件貌似兼容性 不是太好,或是SerialPort本身有BUG,在操作PCI ...

  6. java web学习总结(六) -------------------servlet开发(二)

    一.ServletConfig讲解 1.1.配置Servlet初始化参数 在Servlet的配置文件web.xml中,可以使用一个或多个<init-param>标签为servlet配置一些 ...

  7. yum使用点滴

    yum下载依赖rpm包 先安装一个yum-downloadonly 1 yum install yum-downloadonly完成安装后,yum –help在最后就提示两个命令参数,分别是: Plu ...

  8. 委托的N种写法,你喜欢哪种?

    一.委托调用方式 1. 最原始版本: delegate string PlusStringHandle(string x, string y); class Program { static void ...

  9. Objective-C 快速入门--基础(四)

    1.什么是Block? ① 块语法,本质上是匿名函数(没有名称的函数): ② Block是OC中的一种数据类型,在iOS开发中被广泛使用: ③ ^是Block的特有标记: ④ Block的实现代码包含 ...

  10. iOS中,在类的源文件(.m)中,@interface部分的作用?

      此@interface部分为类扩展(extension). 其被设计出来就是为了解决两个问题的 其一,定义类私有方法的地方. 其二,实现public readonly,private readwr ...