郑嘉明,苏凯雄
(福州大学 物理和信息工程学院,福建 福州 350002)
摘要:针对大型工程机械设备智能化的趋势,紧密结合现代化大型工程机械设备的需求现状,基于Android系统设计了一套工程机械手持数据采集分析软件。通过WiFi接收下位机采集的数据,在Android终端以图形文本等多种形式显示数据并将数据保存在本地。该设计旨在为手持式、便携式的工程数据采集终端与数据分析软件的开发提出一种新的解决方案。
关键词:工程机械;手持式;Android;数据采集
中图分类号:TP316文献标识码:ADOI: 10.19358/j.issn.1674-7720.2017.03.029
引用格式:郑嘉明,苏凯雄.基于Android手持数据采集分析软件的设计[J].微型机与应用,2017,36(3):99-102.
0引言
传统工程机械工作状态监控系统,具有体积庞大、价格昂贵、携带不易、操作困难和难以胜任野外恶劣工作场合的特点。因此随着当前科学技术的飞速发展,紧跟当前电子技术发展的形势,开发低成本、高性能的手持便携式工程机械数据采集与分析系统具有重要的意义。本文旨在为手持式、便携式的工程数据采集与终端显示分析软件的设计提供一种新的解决方案[1]。
本文紧密结合现代化的大型工程机械设备的需求现状,以装载机为研究对象,采用模块化和模型视图控制器(ModelViewController,MVC)的设计思想[2],设计了基于Android平台的工程机械手持数据采集分析软件,采用WiFi技术将工程机械的运行状态参数发送到Android手机或者Android平板电脑上,在Android系统上开发一套应用程序将这些信息以文本或者图形的方式呈现给工程机械设备的维护人员。相比于传统的手段,以往的数据采集终端因受系统软件的条件限制,无法实现强大的数据分析处理功能和强大的图形处理功能,本文基于Android系统提供的强大的数据处理能力和图形显示能力[3],实现远程数据的接收、分析、处理和存储,并以多种图形形式将数据呈现给用户。并充分将维护人员的移动终端作为维护工具,不仅操作简单、易于携带而且降低了成本。
1软件的总体设计
本文以装载机为研究对象,设计出一套基于Android系统平台的远程数据采集与终端数据分析软件,提高装载机试验数据采集的精准性和灵活性,方便试验人员的操作以及不同试验项目的资源优化配置。并以此为契机,将其应用于工程机械领域其他工程机械设备。所设计的数据采集与诊断分析软件具有如下特点:
(1)通过WiFi接收下位机上传的数据,最大支持16通道数据采集,可实现压力、温度、流量等多种类型数据的采集与分析,各通道的工作参数可独立配置;
(2)能以波形及文本的方式实现采集结果的基本数据分析;
(3)采用文本文件格式实现采集结果的数据存储。
本文设计的Android应用程序主要实现两个功能:实时数据显示和回放数据显示,具体由8个功能子模块来实现。其中有5个界面显示模块:服务器IP地址设定模块、实时数据显示模块、系统配置文件修改模块、选择回放文件模块和回放数据显示模块。3个后台服务模块:WiFi网络数据接收模块、数据保存与数据加载模块和本地文件操作模块。
软件总体架构以及各个子模块之间的关联如图1所示。
2软件功能子模块的设计与实现
本设计的界面显示功能子模块是基于模型视图控图3实时数据显示模块的MVC架构制器(ModelViewController,MVC)的架构模式进行设计。模型层工作在后台,存储着该应用的基本数据;控制层在模型层与视图层之间运转,是视图与模型对象的联系纽带,管理着模型层与视图层之间的数据传递,同时还被设计为响应由视图层触发的各种事件。视图层工作在前台,提供人机交互、管理屏幕上显示视图的绘制以及响应用户的输入等[4]。
下面对各个界面显示功能子模块的MVC架构和各个后台服务功能子模块的框架进行详细说明。
2.1服务器IP地址设定模块
服务器IP地址设定模块的MVC架构如图2所示。该界面是所有界面中最简单的一个界面,只包含一个Activity的子类LoginActivity。因为该模块较为简单,固不需要模型层。LoginActivity作为控制层,布局文件中的控件TextView、EditText和Button作为视图层。
2.2实时数据显示模块
实时数据显示模块的MVC架构如图3所示。该模块是所有功能子模块中最为复杂的一个。
模型层包含两个自定义类,一个是DateCh类, 其为接收数据的模型类;另一个是SysCh类,其为系统配置文件的模型类。
控制层包含两个类,一个是Activity的子类MainActivity,另一个是Fragment的子类MainFragment。这时的控制层引入Fragment进行应用的UI管理,是为了绕开Android系统对Activity的规则限制。
2.3系统配置文件修改模块
系统配置文件修改模块的MVC架构如图4所示。该模块主要实现查看和修改系统配置文件的功能。系统配置文件主要用于采集终端16个通道所对应的配置信息。
2.4选择回放文件模块
选择回放文件模块的MVC架构如图5所示。该模块主要实现查看回放文件的目录和选择回放文件的功能。数据文件保存在分级式目录,不同时间段接收的数据分别存在不同的文件夹中,文件夹名称为最后一个数据接收的时间。每个文件夹中16个通道采集的数据也分成各自的文本保存。
选择回放文件模块包含两个Activity的子类SelectFloderActivity类和SelectFileActivity类。两个类各自负责一个用户界面。
2.5回放数据显示模块
回放数据显示模块的MVC架构如图6所示。该模块主要实现回放接收数据,以波形的方式显示出来,并能通过触控的方式缩放平移图形。
2.6数据保存和数据加载模块
数据保存与数据加载模块的框架如图7所示。本模块服务于接收数据的保存和系统配置文件信息的保存加载。数据保存的格式是JSON(JavaScript Object Notation)格式,JSON是一种轻量级的数据交换格式,不仅易于机器解析和生成,而且在网络中的传输速度快,同时也易于阅读和编写。JSON格式是如今比较流行的一种数据交换格式。
数据保存与数据加载模块的底层库使用Android SDK内置的标准org.json类包、java.io类包和android.text.format.Time类。java.io类包可以用来通过数据流、序列化和文件系统提供系统输入和输出。org.json类包可以用来创建和解析JSON文件。android.text.format.Time类可以提供以秒为精确度的时间。
2.7WiFi网络数据接收模块
WiFi网络数据接收模块的框架如图8所示。本模块用于连接远程WiFi从下位机接收采集数据,并校验数据。
WiFi网络数据接收模块的底层库使用Android SDK内置的标准java.io类包和java.net.Socket类包。java.io类包可以用来通过数据流、序列化和文件系统提供系统输入和输出。java.net.Socket类包提供了客户端TCP的套接字。
2.8本地文件操作模块
本地文件操作模块的框架如图9所示。本模块主要实现读取文件目录的功能。
本地文件操作模块的底层库使用Android SDK内置的标准java.io.File类包和android.os.Environment类包。java.io.File类包提供了文件读写的功能,android.os.Environment类包提供了访问外部环境变量的功能。
3设计界面与测试结果
(1)服务器IP地址设定界面
打开软件,首先出现的用户界面是服务器IP地址设定界面,输入正确的服务器IP地址和相应的端口号后,点击连接按钮,跳转到实时数据显示界面,否则点击退出按钮,退出软件。
(2)实时数据显示界面
实时数据显示界面如图10,需要多个后台服务模块支持。其中包括需要WiFi网络数据接收模块通过WiFi网络连接上采集终端服务器,接收该终端采集的数据;需要通信协议服务模块通过双方约定的通信协议校验接收数据的正确性;需要数据保存与数据加载模块从本地加载系统配置文件并对接收的数据进行配置;需要数据保存与数据加载模块将数据保存在本地的外部SD卡文件中;最后需要本模块中的图形显示功能将数据以多种形式显示出来。在实时数据显示界面中,也可以选择进入系统配置文件修改界面和选择回放文件界面,或者退出软件。
(3)系统配置文件修改界面
系统配置文件修改界面如图11。数据保存与数据加载模块将系统配置文件加载出来,然后即可进行手动修改。点击保存按钮,通过数据保存与数据加载模块用修改后的系统配置文件覆盖原本的系统配置文件并保存到本地文件中。点击返回按钮,回到实时数据显示界面。
(4)选择回放文件界面
选择回放文件界面如图12。本地文件操作模块将采集数据保存的文件目录读取出来,并以列表的形式进行显示,点击列表项进入回放数据显示模块,或者点击返回,回到实时数据显示界面。
(5)回放数据显示界面
回放数据显示界面如图13。数据保存与数据加载模块将采集数据从本地文件加载出来,以图形的形式进行显示,并且可以通过触控方式更详细地查看采集的数据。点击返回,回到选择回放文件界面。
4结论
本软件设计基于Android系统,实现了通过连接远程WiFi,接收下位机采集的工程机械设备工作状态数据,并将数据以图形、文本等多种形式显示在用户界面,用户可以通过该软件远程控制工程机械设备的启动和停止,接收的数据也可以保存于本地方便以后回放,还可以保存在SD卡上,方便拷贝到其他终端进行查看。本软件目前已应用于大型工程机械设备实时监控系统中,运行状态良好,未出现明显漏洞和问题。
参考文献
[1] 董拴牢, 刘汉光, 陆永能,等. 数据采集分析系统在装载机压力测试中的应用[J]. 工程机械,2006,37(10):60-62.
[2] ZHOU Q, SUN J. Study on an intelligent monitoring application system of construction machinery[C]. Second International Symposium on Knowledge Acquisition & Modeling, 2009:249-252.
[3] 耿东久, 索岳, 陈渝,等. 基于Android手机的远程访问和控制系统[J]. 计算机应用, 2011, 31(2):559-561.
[4] 文松, 王太勇, 张庆华,等. 一种多通道高速数据采集与实时分析系统的研究[C].全国振动技术及工程应用学术会议, 2000:2-3.