温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,汇文网负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。
网站客服:3074922707
基于
Android
系统
掌上
微型
示波器
蒋仕东
2023.6电脑编程技巧与维护1概述示波器是一种电子设备,可以通过波形绘制采集数据的波形,或者收集数据应用于各种工程。早期的示波器只能进行数字存储,之后运用微处理器和半导体存储技术,达到了存储波形的目的。经过一个多世纪的发展,示波器的研发让人们看到了更多的机会。如今各类项目都向着信息化发展,人们也需要更加智能且轻便的工具,由此示波器也需要得到进步。近年来,个别电子测量的操作系统的稳定性还不够,有些是应用Windows或Linux两种操作系统,在技术方面成熟度也参差不一。在这种情况下,团队一致商议便使用了Android系统完成开发,从搭建开发平台到程序功能设计,再到程序的整体框架成型,都基于An-droid系统完成。该平台相比其他平台,受众人群更广,有利于增加软件的普及率,此外对数据和波形的处理也都具有稳定性。2软件 UI 设计2.1操作界面Android系统智能移动通信终端经过显示屏幕,将波形等所需要的信息通过人机交互传递给使用者,而使用者通过对屏幕上的操作,例如,终端界面上的按键,通过触控将自己想要进行的操作传递给移动终端。所以一个友好的交互界面,对于一个软件和使用者来说就显得尤为重要。界面总体架构如图1所示。2.2按钮图形软件中的按钮大部分由Button控件组成,虽然Button控件的属性很多,但其使用较为简单。考虑到Android系统自身的Button控件形状方方正正,美化程度较低。为了提高用户的使用体验,也为了让整个界面更加美观,在此对各按钮进行了“圆滑”处理,增加了控件的扁平性。具体处理如下,在drawable文件夹中添加了button.xml这样的样式类文件,再调整好对应的属性,随即对Button属性进行这样一个配置操作:an-droid:back ground=drawable/boutton,主要在样式中增加弧度和颜色,并且用6位十六进制表示法来表示颜色,例如FF0000代表红色、00FF00代表绿色,而对于“圆滑”水平,则用弧度值的大小来体现。2.3菜单嵌套在软件的菜单设计中,大部分参考了数字荧光示波器的结构形态,为了方便观察波形变化,于是波形显示屏的占比就较大,但Android系统的屏幕大小有局限,菜单项也需要一定的空间大小来存放。为处理这一问题,把菜单存储在水平滚动控件嵌套的线性规划中,在这样的前提下,又把功能类似的菜单存储在一起,具体使用了分级菜单的形式进行菜单的分类。这样便解决了菜单数量多、布局混乱的问题,极大地避免了界面看起来杂乱无章。3交互模块设计3.1SurfaceView 组件SurfaceView是一个绘图类,它继承于View类,而在平台中波形绘制就显得尤为重要。因为要经常地刷新基金项目:2022年国家级大学生创新创业训练计划项目(项目编号为202210205020)。作者简介:蒋仕东(2003),男,研究方向为软件设计。基于 Android 系统的掌上微型示波器蒋仕东,韩敬峰,张大明,刘玉钵,尚永昆,徐政(长春师范大学计算机科学与技术学院,长春130031)摘要:大数据时代的到来,各大高校都鼓励并支持学生实际操作,完成理论到实践,知识的输入到输出的过程。在许多实验中,示波器始终是一个必不可少的仪器,但价格偏高,如果学校没有这种设备容易影响学生的创新和科研精神。为了降低实验成本,设计了一款基于 Android 系统的掌上微型示波器,提高学生的实验积极性。关键词:Android 系统;示波器;软件设计图1界面总体架构图测量信息触发电平和波形绘制区域探头衰减比开始/停止极性选择模式选择连接耦合选择电压和时基的调节76DOI:10.16184/prg.2023.06.0292023.6电脑编程技巧与维护波形,而且刷新时要解决的数据量也较大,用户需要得到实时反馈,依据绘图类组件的3大特征展开研究,被动更新、子线程刷新和双缓存机制,软件避免了画面卡顿、响应慢和绘图时间长的可能。此外,该组件通常和SurfaceHolder两者合作完成绘图,后者接口通常是担任Surface中的监听功能,其原理是通过调用getHolder()接受创建、删除或改变。使用SurfaceView绘制波形,具体流程如下。(1)对SurfaceView类进行自定义,继承并完成SurfaceHolder.Callback接口,对增、删、改3个函数分别完成重写,它们3个函数的功能分别是可以初始化界面、负责销毁工作及具有更改数据的功能。(2)对于打开子线程刷新,需要采取surfaceCreat-ed这个方法。(3)在子线程中编写对应的While循环,达到持续绘制的效果。(4)在While循环中要获取需要的对象,锁定画布进行绘制,就要使用SurfaceHolder对象的lockCanvas方法。(5)绘制完成后取消画布的锁定,回传Canvas对象结束改变,需通过SurfaceHolder对象的lockCanvas函数方法完成。(6)完成整个绘制过程,使用surfaceDestroyed方法中改变while循环的Flag为false。3.2控件实现流程用户对于界面的操作主要是靠控件实现的,不同的控件功能各不相同,它们的功能包括显示文本和图片、加载资源等,这些实现的过程都是基于Android事件处理机制完成的。回调事件机制,可以重写回调方法来触发,从而在重写的过程中团队按照自己的需求,编写更加具有可行性和实用性的事件处理方法。其中,事件的传播不一定按照顺序进行,委托事件比回调事件处理高一级。监听事件处理机制。在这种机制下,可以处理事件、事件源和事件处理器3种对象,同样也可以采用委托机制。同时在布局文件中设置指定的事件处理相应函数,对于特定的对象设置特定的接口,进而更好地完成程序。通过运用以上的两种机制,将软件的控件分为以下几大类。(1)设置二级菜单。(2)通过对话框直接输入或删除信息。例如,测量和设置IP地址按钮。(3)标记或改变参数值。例如,单独标记FFT菜单中的矩形窗;再如“交流”按钮被按下后变成“直流”按钮,进而改变显示。(4)发送命令到硬件。主要通过设置的某个线程发出,例如,连接和断开。3.3手势触控实现在智能手机的普及下,触屏操作成为人机交互的重要手段,主要触控事件类型如表1所示。为用户使用便捷,获得更高的交互效率,设计以下的手势触控流程。(1)关于MotionEvent事件的产生,开始点击手机屏幕时,引发了单点或多点触控、封装手势、弹道球多种动作。(2)捕捉屏幕的触摸监听接口负责监听事件,调用onTouch()方法返回值判断是否为true,从而获得该对象。(3)监听接口可以提供相应的抽象方法,因为从GestureDetector辨认到手势,给容器添加了单击事件,转发MotionEvent对象给监听接口OnGestureListente。(4)经过识别使用者不同手势做出不同处理,最终通过OnGestureListener获取这个对象。4平台通信设计4.1有线数据通信ETH、PLC、RS-485、USB这些都是有线通信技术,在目前的主流电子设备中,采用最多的连接是USB。USB接口还具有即插即用、数据传输快、支持多种模式等特点,基于以上优势选择USB的有线通信方案。USB的传输方式有4种,基本介绍如下。(1)控制传输,传输精度高,但双向传输的方式会导致传输量较小,控制传输主要用于计算机的主机和USB外设之间的信息传输。(2)同步传输,如果已经确定了带宽及间隔时间,并且单向传输,则其传输速度是确定的。若传输过程中出现错误,则USB会忽略这些错误继续传输,故容错率较高。同步传输常用于网络通话方面,或者传声器、耳机等硬件设备。(3)中断传输,经常定时询问设备是否存在数据传触控事件表示含义ACTION_DOWN表示开始触摸ACTION_UP表示抬起手指ACTION_MOVE表示手指移动ACTION_CANCEL表示手势取消ACTION_POINTER_DOWN表示非主要手指按下ACTION_POINTER_UP表示非主要手指抬起表1主要触控事件类型772023.6电脑编程技巧与维护通信方式 频率/GHz传输速率(Mbit/s)最大功耗/mW传输方式 连接数量 通信距离/mWiFi2.45.2654100mW点到多点50100蓝牙2.4131100mW点到多点710100UWB3.110.6534801mW以下点到多点810DECT1.881.91.152100mW以下 点对多点1250300RFID5.80.212不需供电点对点2小于10输,端点模式器的不同会导致它的询问频率也不同,但总体传输量还是很少。中断传输一般应用于鼠标和操纵杆这类分散数据传输设备。(4)大量传输,没有带宽和时间的约束,因此可以进行大量的数据传输和接收。大量传输适用于扫描仪、打印机这种要求保证传输效率的设备。经过讨论和比较,示波器传输的数据量较大,对精度要求较高,于是选择大量传输这种传输类型。在这种模式下,示波器通过USB传输发送数据,处理由An-droid平台负责。4.2无线数据通信为丰富软件通信方式,给用户多种选择,开发了无线数据通信的方案,这也弥补了有线传输带来的距离限制。市面上的移动设备普遍使用WiFi、蓝牙、NFC、超宽带(UWB)等无线通信方式,几种无线通信的比较如表2所示。为达到传输速度快、距离远且稳定的效果,选用了无线WiFi的通信方案。在指定的WiFi通信方案中,传输的数据量较大,于是采用传输控制(TCP)协议,它允许连接的双方随时可以发送数据,最后使用Socket接口完成发送和接收网络请求。4.3通信数据处理在数据处理中最复杂的便是频谱分析,而示波器的处理器计算能力较弱,如今市场Android系统的智能手机在芯片处理数据方面已经足够强大,对于Android系统的处理采用的是快速傅立叶变换(FFT)算法,为了得到正弦函数和频率之间的关系,这个算法的目的就是将无数个正弦信号叠加在一起,从而达到效果。从数据结构来看,该算法的时间复杂度为O(nlogn),与离散傅里叶变换(DFT)算法对比,其时间复杂度为O(nn),故FFT算法的运算效率明显高得多。5数据存储设计5.1数据存储的意义示波器绘图的过程就是数据产生的流程,然而这种数据往往时效性较长,尤其是在实验过程中,会经常对不同的数据进行记录、比对和分析。于是加入了存储数据的功能,方便提高人们使用软件的效率,丰富软件功能多样性。5.2数据存储实现在数据的存储载体上,首先想到了移动硬盘,它高速存取的特点可以在短时间内对数据进行回收,而且相较于U盘,移动硬盘的故障率也更低、更耐用。但在实现的开始阶段,发现如果使用示波器就需要加入其他的设备进行存储,这样方便携带的特性就大打折扣,因此摒弃了这个方案。于是将载体的目光转移到Android系统本身,具体的实现方法如下。(1)存储。使用openFileOutput()方法,接收两个参数(文件名和运行方式),得到这个对象后就可以将回收的数据存储在指定的目录中。(2)读取。调用FileOutputStream()方法,经过File类来打开系统文件,调取流的读写方法,随即关掉流。(3)删除。调用deleteFile()方法,就可以把不重要或过时的数据进行删除。这样一来,当使用者想再次查看先前的数据时,就能快速地再次打开并展示之前绘制的波形,包含3个特征信息,分别是频率、峰值和占空比。6结语智能设备的电子化、虚拟化是这个时代进步的大趋势,掌上微型示波器基于Android系统,为了解决高校普遍出现的实验器材不足等问题,采用线性布局和分级菜单是在HorizontalScrollView嵌套中,完成App各种UI设计,经过不断的努力和软件优化,如果要对示波器操作,使用者可以通过控件和触控实现,并且采用USB编写程序和Socket编写程序,完成USB有线通信方案和WiFi无线通信方案,当手机中央处理器(CPU)经过FFT算法对数据进行处理时,它会出现在Android系统的界面上,完成人机交互。该产品方便携带,易上手操作,同时具有资料存储功能,可最大限度地提高学生实验及探究