口袋实验室的客户端的设计与实现

2021-06-03 06:12东北大学计算机科学与工程学院付嘉乐李大宇
电子世界 2021年9期
关键词:列表口袋客户端

东北大学计算机科学与工程学院 付嘉乐 李大宇 蒋 伟

口袋实验室是将传统的实验仪器微型化、软件化集成到一个小的系统中,其有丰富的软硬件资源,能够提供较为全面的实验学习,符合微实验化的主流趋势。为实现口袋实验室资源的统一管理和数据可视化处理,本文基于QT设计实现了一种通用的口袋实验室客户端,实现通过客户端进行多设备的管理和数据可视化及处理等功能,通过客户端框架可拓展功能,能够提升学习开发效率。

与传统的实验室仪器相比,口袋实验室注重快速配置使用以及易用便携,具有一定通用性,即在满足基本一致的功能上通过便于使用的主机端如PC来管理使用,口袋实验室的设备通过口袋实验室的客户端的使用实现对实验数据的归档管理,而目前对于相似功能设备的客户端完成功能基本为针对单一设备的使用进行管理,对于多个设备的使用管理和数据的归档分类无法完成或者需要多个客户端,满足不了多设备管理的需求。

在本文中设计了一种基于桌面端的口袋实验室客户端应用,通过数据的和UI的分层级结构,可以实时管理与使用下位机口袋实验室设备,充分发挥当前高性能个人计算机在应用上的快速易用的优势。客户端的设计基于开源桌面开发QT,使用C++设计开发客户端的界面与逻辑,数据库可使用SQLite和MySQL分别作为本地的小型化轻量数据管理和可远程的管理渠道来组织调用设备数据。不仅可以跨平台开发与Windows或者Linux乃至Android设备,而且系统具有稳定性通用性的同时能大幅减少开发的周期。

1 系统设计

口袋实验室的客户端(以下简称客户端)的设计主要由兼容硬件接口的软件设计、针对不同设备设计的数据处理算法设计、设备数据的修改以及调用接口设计,以及对应的UI设计,提供用户操作界面。客户端所使用的桌面应用框架为QT,通过C++完成算法的开发,使开发的应用具有更高的效率。

1.1 硬件数据接口

口袋实验室的客户端主要设计使用不同的口袋实验室设备(以下简称设备)接口。口袋实验室设备的硬件数据接口根据使用的需求可以使用不同的接口与传输协议。

对于低数据量低带宽而需要较高兼容性的设备,使用通用异步首发传输器(Universal Asynchronous Receviver/Transmitter,UART)可以满足要求。UART作为一种在电子设备中应用场合广泛的传输方式,应用开发周期短,对器件要求低。在PC端,UART传输仅需要设备具有通用串行总线(Universal Serial Bus,USB),通过具备USB转换UART硬件电路的设备,或者使用USB通信设备类(USB Communication Device Class,USB-CDC)进行虚拟串口传输即可实现。客户端完成功能则需要实现对于UART设备扫描查找,以及对于对应的端口的数据位、传输速率、奇偶校验、停止位、流控制进行配置,对于称重或者其他对于实时刷新要求不高的数据,UART能够满足使用要求。

当前无线技术的应用,使得口袋实验室设备开发无线连接更为常见,客户端的设计也应该满足对于无线设备的使用管理。使用无线连接且具有较高数据传输速率需求的设备,可以通过无线局域网(Wireless Local Area Network,WLAN)进行数据的发送与接收,WLAN比较于其他较为常用的无线通信技术,相比低功耗蓝牙(Bluetooth Low Energy,BLE)或者经典蓝牙,虽然具有更高功耗,但是传输速率远高于BLE,而ZigBee需要专用的设备连接,综合来看WLAN更适用于客户端的开发。通过无线局域网的连接,作为服务端,需要能够配置可开放的端口,供设备的连接。

硬件设备使用WLAN连接可以通过专用的具有WLAN功能的单片机实现,也可以使用具备通信接口的模块进行实现。

在客户端上软件的接口的设计需要满足不同设备的兼容,在设计上需要对于每一个设备使用单独的界面进行选择。其设计方案如图1所示。

1.2 软件架构设计

口袋实验室的客户端的在操作界面上包含主管理界面,连接设备界面,设备添加管理界面,设备列表管理,设备控制界面以及不同设备处理算法部分构成,如图2所示。

图2 软件架构设计

其中主界面为客户端进入之后首先需要显示的界面,包含了设置与选择按钮以及设备管理列表界面。

设备管理列表界面完成显示设备列表功能并能选择控制,通过查询数据库并在Widget上绘图实现显示。

在设备操作界面中,界面的内容通过所选的设备的类型进行判定并显示出对应的界面和功能列表,本系统可以实现多种设备操作界面的显示和操作。同时包含删除设备功能。

添加设备界面模块中,本系统实现了不同通信接口的选择和设备名称的自定义,通过增添数据库表内容进行管理。

1.3 软件界面子模块设计

程序采用单窗口多子界面的设计,通过切换子界面来显示不同的程序模块,实现对于低性能设备的兼容。其中,设备管理列表首先初始化数据库管理程序,打开本地数据库文件。在本地化的客户端设计上,使用轻量级数据库SQLite实现对于设备数据的管理,设备列表管理模块通过查询数据库内device表内的数据得到设备数量以及对应的设备编号设备名称以及设备类型,并将设备列表显示在界面上,实现可视化选择设备使用,如图3所示。设备列表管理模块提供添加设备功能,功能通过按钮实现子界面,即设备添加界面的跳转。

图3 设备列表管理界面图

设备添加界面首先初始化数据库的管理,然后检索数据目录下是否存在程序的指定数据库文件。界面上,通过文本框和选择框,实现手动输入设备的类型和自定义的设备名称,在功能上提供默认的设备名称自动排序填充以及对于重名设备的提示。完成输入之后,在数据库文件内建立device表,已经存在则不重复,并保存在可视化界面上保存的所添加的设别的信息。

设备控制模块可以通过鼠标的点击进入对应的设备,点击之后需要判断使用的设备,显示对应的界面,并完成对应算法的加载。其流程如图4所示。

主界面中提供的当前界面按钮通过记录当前使用的设备ID来切换到对应的设备控制界面,设置界面提供对数据库的清空功能。

2 设备驱动程序设计

客户端作为设备的框架,针对不同的设备需要设计不同的驱动程序供设备使用。通过添加设备对应的程序,调用硬件数据接口进行数据传输,能够较快实现多种设备的兼容设计和拓展,通过判断不同的设备显示对应的界面和数据处理可以实现多种设备的使用,在客户端的设计中预置了组合秤和示波器的设备驱动模块。客户端实现了可以调用组合秤和示波器,并且可以管理多个不同设备。

图4 设备控制界面加载流程框图

图5 组合秤算法原理框图

2.1 针对组合秤的软件设计

本系统设计了组合秤的客户端控制界面。在界面上,需要显示出组合秤的秤头数据,同时设计开始按钮。需要记录历史数据并可以完成导出。完成功能可以将历史数据按照秤头数顺序记录在文本文件中,方便进行查看。在组合秤客户端的算法设计上,需要通过数据接口获取秤头数据,以使用的八个秤头的组合秤为例,需要比较从中挑选一个到八个数据的组合完成最佳组合的选择,完成选择之后通过与客户端连接的接口实现对设备的控制。以完成三个数据的组合为例,其算法框图如图5所示。

图6 示波器客户端操作算法流程

2.2 针对示波器的软件设计

系统设计了不同设备的切换,可以选择使用示波器设备。通过QT的Painter,可以实现在界面上的绘图,对于下位机设备的数据,接收到数据之后进行显示和计算。在示波器应用中,客户端首先需要同步设备的信心配置以便后期的计算。界面上留出虚拟旋转按钮可以调整下位机设备的垂直和水平,客户端的设置之后通过数据接口同步到下位机设备。其流程如图6所示。

3 系统测试验证

本系统需要完成口袋实验室客户端的功能,需要测试其正常功能。

3.1 设备的添加和控制界面的打开

首先在客户端的设备列表管理界面点添加按钮,完成设备信心的填写和选择后点击OK,可以看到在数据目录下已经建立了一个后缀为.db的文件。使用SQLiteStudio打开该文件,可以看到表已经建立,可以查看device表内数据内容,如图7所示。

在设备列表界面,任意点击已经添加的设备,检查控制界面是否为对应设备的界面。测试结果表明,设备的添加和设备对应的控制界面的启用可靠。

3.2 客户端设备功能使用测试

在现有的设备基础上,通过添加设备功能分别添加示波器和组合秤设备,分别选用串口和WLAN通信。

图7 数据库内容测试

图8 设备一功能测试

通过检查数据是否正常接收以及是否为正确数据来检验程序能够完整无误接收数据。设备测试图如图8所示。

通过与实际数据的对比,结果表明客户端完成了数据接收和处理的功能。

结论:本文设计实现了通用的口袋实验室客户端,并对现有的设备完成了多次测试,测试结果满足设计要求。客户端子模块能实现处理通过UART、WLAN传输的实验数据,能够节省成本,且方便实时的得到数据处理的结果,提升了实验效率。多设备的分类管理以及通过本地数据存储实验数据,保证数据备份和后续回看对比。同时系统兼容Window、Linux甚至Android手机端,可以实现跨平台的开发,且具有很好的稳定性。为后续口袋实验室整体的进一步完善提供了很好的参考。

猜你喜欢
列表口袋客户端
学习运用列表法
浪漫口袋
扩列吧
如何看待传统媒体新闻客户端的“断舍离”?
神秘烟口袋
借口袋
县级台在突发事件报道中如何应用手机客户端
孵化垂直频道:新闻客户端新策略
会喝酒的大口袋
列表画树状图各有所长