观察,数据走势,提供视觉直观感受。 2.2.1 坐标转换算法
在android端需将实际数据转换为软件界面的相应坐标进行绘制。首先按显示量程及纵坐标最大采样点进行相应的比例变化,然后在按照android系统得窗口坐标系进行相应转化,主要代码如下: 实际电压值转化为屏幕视口纵坐标:private float voltage2waveform(float voltage)
{return (voltage/generaldata.getgdata(). getgrange()+1)*(height/2); }
其中,参数voltage为实际电压值;generaldata.
getgdata().getgrange()为用户选择的显示量程;height为绘图区域的高度。
视口纵坐标转化为窗口纵坐标:
public float testdata(float real_data) {return height-real_data+1; }
其中,参数real_data为视口纵坐标;height为绘图区域的高度。 经过以上两步方法,便可将实际数据值转化为android端屏幕的绘制值。
2.2.2 软件绘图方式浅析
android sdk 提供了两个可操作canvas(画布)的类:view和surfaceview。利用view的ondraw()方法绘制画布。在本软件中程序启动时,即开启绘图线程,当接受到相应数据时,折算后的绘制值将被传入绘图线程,进行实时绘制。 以下为绘制波形所涉及到的部分代码:
public waveformplotthread(surfaceholder surfaceholder, waveformview view)
{ holder = surfaceholder; plot_area = view; }
public void run(){ canvas c;
while(_run){ c = null; try{
c = holder.lockcanvas(null); synchronized (holder) { plot_area.plotpoints(c);} }finally{ if(c!=null){
holder.unlockcanvasandpost(c); } }} }
public void surfacecreated(surfaceholder holder)
{ plot_thread = new waveformplotthread(getholder(),this); plot_thread.setrunning(true); plot_thread.start(); }
其中,plot_thread为waveformplotthread的对象。在绘制区域被创建时便启动该线程,实现实时绘制。本函数使用surfaceview实现绘图,其绘制支持双缓冲区技术,绘制图形的效率更高。使用时,需继承surfaceview的类,并实现surfaceholder.callback接口。
图3 数据实时显示
fig.3 real time display of the data 2.3 数据存储模块
android采用专门为嵌入式产品而设计的轻量级数据库sqlite。本软件端将接收到的数据存储至移动终端的sd卡上。通过sqlitedatabase.openorcreatedatabase方法可以打开已存在的数据库,或创建新的数据库。开启软件时,自动建立data_monitor.db数据库文件,每次接受数据会以接收时间作为表名建表,例如:2012年01月04日23点28分55秒建表,存储周期为30秒,则表名为:_2012_01_04_23_28_55_30。 2.4 查看历史模块
在软件界面,点击“历史”按钮,系统将停止接受硬件传来的数据,并跳转至“回放”界面,在此界面中点击“查看历史”,进入查看历史界面,浏览数据库存储的历史数据文件。点击相应表名,可选择查看或删除该表。查看时可进行数据回放,显示频谱。
图4 查看历史
fig.4 check the record
图5 记录回放 fig.5 record display 3 结论
本文给出了使用移动终端的显示及远程传输功能,与外部硬件配合,能够简单的实现现场数据采集和远程数据监控等功能。移动终端在工业上的应用还处于萌芽期,而利用人手必备的移动终端,配合简单的数据采集硬件设备,达到监控仪表的部分功能,便是移动终端在工业应用上的良好实现方式之一。若建立后台服务器的数据存储,并进行进一步改善和维护,那么将推进工业数据采集步入云端处理的过程。, 参考文献
[1] 刘正,陈强. 基于android的gps应用中的研究与开发[j].中国西部科技,2010,9(32):15-16. liu z, chen q. research and
development based on android’s gps application [j]. science and technology of west china,2010,9(32):15-16. (in chinese) [2] 杨丰盛. android技术内幕[m]. 北京:机械工业出版社,2011,07. yang f s. inside the android [m]. bei jing:machine press,2011,07.
[3] reto meier. professional android2 application development[m]. usa: wrox,2010,231.
[4] 赖超,龙曦,李金霖. 基于android平台的手机后台监听技术[j].电脑知识与技术,2010,6(33):9472-9474. lang c, long x, li j l. mobile backstage monitoring technique based on android [j]. computer knowledge and technology,2010,6(33):9472-9474. (in chinese)