1、2023.6电脑编程技巧与维护1概述示波器是一种电子设备,可以通过波形绘制采集数据的波形,或者收集数据应用于各种工程。早期的示波器只能进行数字存储,之后运用微处理器和半导体存储技术,达到了存储波形的目的。经过一个多世纪的发展,示波器的研发让人们看到了更多的机会。如今各类项目都向着信息化发展,人们也需要更加智能且轻便的工具,由此示波器也需要得到进步。近年来,个别电子测量的操作系统的稳定性还不够,有些是应用Windows或Linux两种操作系统,在技术方面成熟度也参差不一。在这种情况下,团队一致商议便使用了Android系统完成开发,从搭建开发平台到程序功能设计,再到程序的整体框架成型,都基于An
2、-droid系统完成。该平台相比其他平台,受众人群更广,有利于增加软件的普及率,此外对数据和波形的处理也都具有稳定性。2软件 UI 设计2.1操作界面Android系统智能移动通信终端经过显示屏幕,将波形等所需要的信息通过人机交互传递给使用者,而使用者通过对屏幕上的操作,例如,终端界面上的按键,通过触控将自己想要进行的操作传递给移动终端。所以一个友好的交互界面,对于一个软件和使用者来说就显得尤为重要。界面总体架构如图1所示。2.2按钮图形软件中的按钮大部分由Button控件组成,虽然Button控件的属性很多,但其使用较为简单。考虑到Android系统自身的Button控件形状方方正正,美化程
3、度较低。为了提高用户的使用体验,也为了让整个界面更加美观,在此对各按钮进行了“圆滑”处理,增加了控件的扁平性。具体处理如下,在drawable文件夹中添加了button.xml这样的样式类文件,再调整好对应的属性,随即对Button属性进行这样一个配置操作:an-droid:back ground=drawable/boutton,主要在样式中增加弧度和颜色,并且用6位十六进制表示法来表示颜色,例如FF0000代表红色、00FF00代表绿色,而对于“圆滑”水平,则用弧度值的大小来体现。2.3菜单嵌套在软件的菜单设计中,大部分参考了数字荧光示波器的结构形态,为了方便观察波形变化,于是波形显示屏的
4、占比就较大,但Android系统的屏幕大小有局限,菜单项也需要一定的空间大小来存放。为处理这一问题,把菜单存储在水平滚动控件嵌套的线性规划中,在这样的前提下,又把功能类似的菜单存储在一起,具体使用了分级菜单的形式进行菜单的分类。这样便解决了菜单数量多、布局混乱的问题,极大地避免了界面看起来杂乱无章。3交互模块设计3.1SurfaceView 组件SurfaceView是一个绘图类,它继承于View类,而在平台中波形绘制就显得尤为重要。因为要经常地刷新基金项目:2022年国家级大学生创新创业训练计划项目(项目编号为202210205020)。作者简介:蒋仕东(2003),男,研究方向为软件设计。
5、基于 Android 系统的掌上微型示波器蒋仕东,韩敬峰,张大明,刘玉钵,尚永昆,徐政(长春师范大学计算机科学与技术学院,长春130031)摘要:大数据时代的到来,各大高校都鼓励并支持学生实际操作,完成理论到实践,知识的输入到输出的过程。在许多实验中,示波器始终是一个必不可少的仪器,但价格偏高,如果学校没有这种设备容易影响学生的创新和科研精神。为了降低实验成本,设计了一款基于 Android 系统的掌上微型示波器,提高学生的实验积极性。关键词:Android 系统;示波器;软件设计图1界面总体架构图测量信息触发电平和波形绘制区域探头衰减比开始/停止极性选择模式选择连接耦合选择电压和时基的调节7
6、6DOI:10.16184/prg.2023.06.0292023.6电脑编程技巧与维护波形,而且刷新时要解决的数据量也较大,用户需要得到实时反馈,依据绘图类组件的3大特征展开研究,被动更新、子线程刷新和双缓存机制,软件避免了画面卡顿、响应慢和绘图时间长的可能。此外,该组件通常和SurfaceHolder两者合作完成绘图,后者接口通常是担任Surface中的监听功能,其原理是通过调用getHolder()接受创建、删除或改变。使用SurfaceView绘制波形,具体流程如下。(1)对SurfaceView类进行自定义,继承并完成SurfaceHolder.Callback接口,对增、删、改3个
7、函数分别完成重写,它们3个函数的功能分别是可以初始化界面、负责销毁工作及具有更改数据的功能。(2)对于打开子线程刷新,需要采取surfaceCreat-ed这个方法。(3)在子线程中编写对应的While循环,达到持续绘制的效果。(4)在While循环中要获取需要的对象,锁定画布进行绘制,就要使用SurfaceHolder对象的lockCanvas方法。(5)绘制完成后取消画布的锁定,回传Canvas对象结束改变,需通过SurfaceHolder对象的lockCanvas函数方法完成。(6)完成整个绘制过程,使用surfaceDestroyed方法中改变while循环的Flag为false。3.
8、2控件实现流程用户对于界面的操作主要是靠控件实现的,不同的控件功能各不相同,它们的功能包括显示文本和图片、加载资源等,这些实现的过程都是基于Android事件处理机制完成的。回调事件机制,可以重写回调方法来触发,从而在重写的过程中团队按照自己的需求,编写更加具有可行性和实用性的事件处理方法。其中,事件的传播不一定按照顺序进行,委托事件比回调事件处理高一级。监听事件处理机制。在这种机制下,可以处理事件、事件源和事件处理器3种对象,同样也可以采用委托机制。同时在布局文件中设置指定的事件处理相应函数,对于特定的对象设置特定的接口,进而更好地完成程序。通过运用以上的两种机制,将软件的控件分为以下几大类
9、。(1)设置二级菜单。(2)通过对话框直接输入或删除信息。例如,测量和设置IP地址按钮。(3)标记或改变参数值。例如,单独标记FFT菜单中的矩形窗;再如“交流”按钮被按下后变成“直流”按钮,进而改变显示。(4)发送命令到硬件。主要通过设置的某个线程发出,例如,连接和断开。3.3手势触控实现在智能手机的普及下,触屏操作成为人机交互的重要手段,主要触控事件类型如表1所示。为用户使用便捷,获得更高的交互效率,设计以下的手势触控流程。(1)关于MotionEvent事件的产生,开始点击手机屏幕时,引发了单点或多点触控、封装手势、弹道球多种动作。(2)捕捉屏幕的触摸监听接口负责监听事件,调用onTouc
10、h()方法返回值判断是否为true,从而获得该对象。(3)监听接口可以提供相应的抽象方法,因为从GestureDetector辨认到手势,给容器添加了单击事件,转发MotionEvent对象给监听接口OnGestureListente。(4)经过识别使用者不同手势做出不同处理,最终通过OnGestureListener获取这个对象。4平台通信设计4.1有线数据通信ETH、PLC、RS-485、USB这些都是有线通信技术,在目前的主流电子设备中,采用最多的连接是USB。USB接口还具有即插即用、数据传输快、支持多种模式等特点,基于以上优势选择USB的有线通信方案。USB的传输方式有4种,基本介绍
11、如下。(1)控制传输,传输精度高,但双向传输的方式会导致传输量较小,控制传输主要用于计算机的主机和USB外设之间的信息传输。(2)同步传输,如果已经确定了带宽及间隔时间,并且单向传输,则其传输速度是确定的。若传输过程中出现错误,则USB会忽略这些错误继续传输,故容错率较高。同步传输常用于网络通话方面,或者传声器、耳机等硬件设备。(3)中断传输,经常定时询问设备是否存在数据传触控事件表示含义ACTION_DOWN表示开始触摸ACTION_UP表示抬起手指ACTION_MOVE表示手指移动ACTION_CANCEL表示手势取消ACTION_POINTER_DOWN表示非主要手指按下ACTION_P
12、OINTER_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)大量传输,没有带宽和
13、时间的约束,因此可以进行大量的数据传输和接收。大量传输适用于扫描仪、打印机这种要求保证传输效率的设备。经过讨论和比较,示波器传输的数据量较大,对精度要求较高,于是选择大量传输这种传输类型。在这种模式下,示波器通过USB传输发送数据,处理由An-droid平台负责。4.2无线数据通信为丰富软件通信方式,给用户多种选择,开发了无线数据通信的方案,这也弥补了有线传输带来的距离限制。市面上的移动设备普遍使用WiFi、蓝牙、NFC、超宽带(UWB)等无线通信方式,几种无线通信的比较如表2所示。为达到传输速度快、距离远且稳定的效果,选用了无线WiFi的通信方案。在指定的WiFi通信方案中,传输的数据量较大
14、,于是采用传输控制(TCP)协议,它允许连接的双方随时可以发送数据,最后使用Socket接口完成发送和接收网络请求。4.3通信数据处理在数据处理中最复杂的便是频谱分析,而示波器的处理器计算能力较弱,如今市场Android系统的智能手机在芯片处理数据方面已经足够强大,对于Android系统的处理采用的是快速傅立叶变换(FFT)算法,为了得到正弦函数和频率之间的关系,这个算法的目的就是将无数个正弦信号叠加在一起,从而达到效果。从数据结构来看,该算法的时间复杂度为O(nlogn),与离散傅里叶变换(DFT)算法对比,其时间复杂度为O(nn),故FFT算法的运算效率明显高得多。5数据存储设计5.1数据
15、存储的意义示波器绘图的过程就是数据产生的流程,然而这种数据往往时效性较长,尤其是在实验过程中,会经常对不同的数据进行记录、比对和分析。于是加入了存储数据的功能,方便提高人们使用软件的效率,丰富软件功能多样性。5.2数据存储实现在数据的存储载体上,首先想到了移动硬盘,它高速存取的特点可以在短时间内对数据进行回收,而且相较于U盘,移动硬盘的故障率也更低、更耐用。但在实现的开始阶段,发现如果使用示波器就需要加入其他的设备进行存储,这样方便携带的特性就大打折扣,因此摒弃了这个方案。于是将载体的目光转移到Android系统本身,具体的实现方法如下。(1)存储。使用openFileOutput()方法,接
16、收两个参数(文件名和运行方式),得到这个对象后就可以将回收的数据存储在指定的目录中。(2)读取。调用FileOutputStream()方法,经过File类来打开系统文件,调取流的读写方法,随即关掉流。(3)删除。调用deleteFile()方法,就可以把不重要或过时的数据进行删除。这样一来,当使用者想再次查看先前的数据时,就能快速地再次打开并展示之前绘制的波形,包含3个特征信息,分别是频率、峰值和占空比。6结语智能设备的电子化、虚拟化是这个时代进步的大趋势,掌上微型示波器基于Android系统,为了解决高校普遍出现的实验器材不足等问题,采用线性布局和分级菜单是在HorizontalScrol
17、lView嵌套中,完成App各种UI设计,经过不断的努力和软件优化,如果要对示波器操作,使用者可以通过控件和触控实现,并且采用USB编写程序和Socket编写程序,完成USB有线通信方案和WiFi无线通信方案,当手机中央处理器(CPU)经过FFT算法对数据进行处理时,它会出现在Android系统的界面上,完成人机交互。该产品方便携带,易上手操作,同时具有资料存储功能,可最大限度地提高学生实验及探究的兴趣。参考文献1黄军.移动终端图像采集与传输系统设计D.呼和浩特:内蒙古大学,2018.2张炯.基于Android系统的虚拟示波器软件设计的研究与开发D.南京:东南大学,2017.3谢建盛,赵杰,符
18、鑫隆,等.基于Android的文件保密管理APP的设计与实现J.电子元器件与信表2几种无线通信的比较(下转第121页)782023.6电脑编程技巧与维护息技术,2021,5(10):172-174.4方振生,任林超,宋玉玲,等.基于单片机的在线示波器实验设计J.电脑知识与技术,2022,18(33):87-89.5王开宇.基于Android平台软件开发方法研究J.信息与电脑,2022,34(19):137-139.6李鸿松.高速高精度虚拟示波器硬件设计与实现D.成都:电子科技大学,2021.部分为调用按键扫描函数获取按键键值;另一部分通过键值进行相应的处理操作,包括切换界面、设置阈值等;(2)
19、进入第2个监测函数,该函数主要通过调用相应的驱动函数获取测量值,并通过蓝牙模块将监测的数据传输到手机端,用户也可以通过手机端发送指令,设备根据用户发送的指令执行对应的处理;(3)进入第3个显示函数,该函数显示监测值及阈值;(4)进入第4个处理函数,该函数主要判断当前土壤湿度是否在设置的范围之内,监测到湿度大于设置的最大值,停止加水,取消声光报警;监测到湿度小于设置的最小值,启动水泵进行加水,且进行声光报警。在上述流程中,增加温湿度测量盒触发约束命令。在系统中,设置了多个规则,当遇到非常规情况时,其他的规则会被触发,共同约束灌溉行为。所以,当光照辐射量达标,但室内温度和湿度不符合灌溉设定条件时,
20、灌溉不会自动启动。在多个命令的协调下,系统会对灌溉时长和周期自行修正,这样文中设计的灌溉系统仍然是精准合理的。通过温湿度测量盒,灌溉策略得到了改善,但要做到精准化,还涉及了基质称和给液回液收集装置来进一步修正。基质称顾名思义是用来称重基质质量的,它记录着相同时间间隔内基质的质量变化。这里涉及到给液、植物消耗量和回液等,通过过程计算系统的周密运算,调整修正第2天的灌溉策略,具有即时性和随机性。基质称的给液回液收集装置,可以对给液和回液进行综合处理。该智能灌溉系统能更直观地看到灌溉量、植物消耗量、排废量,还包括每一次灌溉的排占比。通过此方法提高该系统的灌溉精准度,并且可以检测pH值,双重呵护植物生
21、长。4智能灌溉系统测试对智能灌溉系统进行了一系列的测试。其中,系统的稳定性是非常重要的一项,它决定了一套系统能否真正实现智能化,能否达到大型农场无人化管理的要求。(1)测试硬件的可靠性。硬件设计是决定系统质量好坏的关键所在,与设计能力、使用的元器件是否优质、组装工艺、后续测试是否严格等有着密不可分的关系。中间任何一个环节的不严谨都有可能导致硬件不可靠,进而影响系统的总体质量。因此,对所用元器件设计有非常严格的流程和标准,以确保硬件可靠性。(2)测试系统的控制可靠性。通常所说的控制可靠性是指在允许的工作条件下,设备可以响应控制指令并能实现全部操作目标的概率,概率越高,系统就越稳定。影响控制可靠性
22、的关键是软件设计,程序是否有漏洞。为了软件控制可靠,制定了一套长期测试标准,系统的每个指令都要求测试通过。(3)测试报警系统的监控。在硬件和控制可靠的基础上,智能灌溉系统多加了一道防护,即报警系统。该报警主要涵盖了开关阀失败报警、水压超范围报警和设备低电池电量报警。当发生这些异常情况时,系统会向用户手机发送报警短信,通知用户及时查看解决,以防止无人看管状态下造成不可挽回的损失。5结语设计实现的智能灌溉系统,以远距离无线电等无线网络为通信方式,对应用环境的网络条件没有要求,系统易于扩展。该系统硬件配置灵活,可任意升级、更换被控硬件设备,仅需在云平台接入即可。系统人机界面友好,实现了安卓/iOS手机App、计算机网页、计算机软件等形式,并可灵活下载应用。系统监控中心的抗电磁干扰的能力强,可在强电磁干扰的恶劣环境下继续应用。参考文献1郑杨煜,刘星.基于STM32的实用型家庭智能灌溉系统J.物联网技术,2023,13(1):80-81.2娄松涛.基于无线传感网络技术的灌溉系统智能优化研究J.农机化研究,2023,45(8):231-234.3景洪昌,汪玲彦,詹汉彬,等.基于无线传感器网络的校园绿植灌溉系统设计J.自动化与仪表,2022,37(10):82-86.4张守艳,宗峰.基于物联网技术的水肥一体化智能灌溉系统设计J.电子测试,2022(19):30-32.(上接第78页)121