陈骞 黄辰
摘 要:文中设计了一款软硬件结合的无线答题系统,软件部分为基于SpringMVC实现的Web系统,硬件包含接收器,电子答题器等。硬件通过串口与PC上的Web系统通信,实现所需要的系统功能。
关键词:SpringMVC;答题系统;串口通信;Web
中图分类号:TP311 文献标识码:A 文章编号:2095-1302(2017)09-0-03
0 引 言
随着网络和多媒体技术发展逐渐完善,多媒体授课,网络授课在学生的课堂中扮演着越来越重要的角色。分析了目前学校课堂的信息化程度后发现,如果有一种无线答题系统能够方便老师课堂上通过题库选择题目,学生当场通过设备作答,可以大大提高教师和学生之间的沟通互动,使得该系统拥有广阔的市场前景[1]。
本文根据此背景,设计了一种可进行课堂教学评价和师生无线答题的系统,该系统将学生的答题器连接到接收机和计算机软件,由老师控制软件实现互动。
1 系统功能设计
本系统具有题目、人员信息导入,硬件配置,选择题作答,答题结果统计等功能。题目类型分为单选、多选,支持同一题目多次作答,系统会记录每次作答的结果,同时还可实现统计所有题目的作答情况。
教师通过系统出多道选择题(包括单选和多选),软件后台通过接收器下发作答指令,学生作答后提交答案,接收器将学生的作答答案及提交时间上传到后台,由后台软件进行数据处理,可统计出提交答案人数、正确人数、错误人数和正确率等。
2 系统总体架构
本系统涉及的硬件包含接收器,答题器,服务器。服务器充当答题器上位机和软件系统的角色,软件部分为基于Java Web技术实现的Web系统,电子答题器通过2.4 G网络与接收器通信,数据通过接收器透传给服务器,其拥有17个物理按键和1个人机交互显示屏,采用2.4 G免费频段通信,支持远距离考勤最大距离为50 m,支持多终端同时并发120个数。接收器通过USB与多媒体计算机连接,主要收集答题器的数据,汇总后发送给中间件,同时将上层的配置指令等发送给下层答题器。系统逻辑图如图1所示。
图1 系统逻辑图
本系统软件部分在SpringMVC框架的基础上进行开发,SpringMVC是目前Java Web体系中非常流行的MVC框架,软件系统包含View层、Pipe层、Logic层、Data层,其中View层包含了Web端,是“前端”的一部分,实现了用户可观看的软件或网站界面;其他三层均为“服务端”部分,具有向前端传递数据,提供HTTP接口,处理业务逻辑等功能[2]。本系统软件体系结构如图2所示。
图2 软件体系结构图
(1)View层负责实现网站或软件页面展示与前端简单逻辑展示。
(2)Pipe层负责处理数据请求的发送,规定了所有端口基于何种协议与服务器进行交互,以及数据类型的规范,对请求进行安全验证。
(3)Logic层进行整个程序业务逻辑请求的处理,将处理结果通过HTTP接口的形式使用户可通过URL地址调用。Logic层在SpringMVC框架中在具体实现时包括Controller层和Service层。
(4)Data层包括访问数据库或其他数据源等,具体有对数据库中表的查询、修改、删除等功能,供Service层调用。Data层在MyBatis框架中的实现包括Mapper层和POJO层[3]。
本系统选择JSON数据格式+HTTP协议作为系统前端后台的接口方案。在具体实现过程中,利用Jackson框架将后台Java对象转换成JSON对象。在Controller层接口返回Response,经springMVC的@ResponseBody注解封装,通过Jackson转换成JSON字符串,服务器再利用HTTP协议返回给前端AJAX接口调用者。
3 题目作答模块设计
题目作答模块实现了学生通过答题器向系统发送数据,页面实时展示,后台存储相关数据等功能。
为实现上述功能,该模块的Controller层需向View层提供的HTTP接口如图3所示。View层需要向Controller层发送所有请求序列,完成该题目的一次答题活动。
3.1 視图层实现
作答需点击“开始”,通过调用开始答题、开始发送题目、开始接受数据HTTP接口与电子答题器进行交互,循环调用刷新HTTP接口以展示当前投票情况,结束时,调用停止接收数据、结束答题HTTP接口结束与答题器的交互。
3.2 逻辑层实现
HTTP接口实现方法可封装在ChoiceQuestionController类中,开始答题接口首先获得最新的答题次数,并添加新的答题记录,开启答题的硬件指令,接收答题器数据。
实时答题数据接口方法负责开始答题后,动态刷新答题率、答题人数等数据。此接口由前端自动循环调用100 ms刷新间隔,因此逻辑必须精炼,且运行时长越短越好,数据库操作应去除查询冗余字段,获取总人数及当前已作答人数,并计算百分比,以图形形式返回展示。
答题结束的接口方法计算结束作答后的统计数据并作持久化处理。作答结束后,更新本次作答记录,将结束时间添加进去,作为一条完整作答记录存储。所有答案在串口线程运行时已写入Answer表,通过Service层方法得到相关数据,进行统计计算并进行持久化处理。
4 串口通信模块设计
为了实现Java与串口硬件通信,本文采用RXTX项目提供的Java串口通信包API。在此系统中,通信内容包括服务端下发给接收机的指令和答题器通过接收机透传给服务端的数据,可以设计一个SerialPortDataController类来处理相关通信内容。endprint
下发指令部分,设计一个SendCommand方法来处理诸如答题器匹配,白名单开启,清屏,发送开始答题指令等。将指令数据通过COM参数设置的端口号,以指定的波特率发送。具体程序流程如图4所示。
接收答题器数据的部分,由于该过程是持续性的工作,不同于一次性的指令,所以需设计一个线程类SerialThread,采用多线程运行。
(1)开启串口,打开输入流,循环检查输入流中的数据,并进行读取、缓存。
(2)根据线程调用相关信息,确定报文类型(选择,判断),利用checksum函数对数据进行异或差错校验,再分别选择协议解析,将解析出来的数据转换成对象,然后进行数据持久化处理。
作答数据解析流程如图5所示。
5 系统测试
图6展示了当前正在作答的人数以及所占总人数的百分比,且随时可结束作答。
点击“停止”后,显示答题结果,预期只有一个人正确,两人错误,一人未作答,统计结果如图7所示,与预期相符。
6 结 语
本文主要介绍了SpringMVC框架技术在无线答题系统中的应用,围绕核心题目作答功能模块阐述了HTTP接口设计、视图层、逻辑层设计与关键通信技术。设计的系统满足了预期的功能需求,系统能促进教学过程中教师学生的互动,使得老师对学生的成绩管理数据归档有据可依,充分体现了当代课程改革的理念。
参考文献
[1]李强.基于nRF24le1及uC/OS-II操作系統的智能无线答题系统的设计[D].长春:吉林大学,2016.
[2]韩森,邓停东,张占强.SpringMVC+Hibernate框架的应用研究[J].软件导刊,2009(6):44-45.
[3]吴婉楠.基于SpringMVC和MyBatis框架的炒股比赛系统的设计与实现[D].南京:南京大学,2016.
[4]温小清,潘永才,刘海龙,等.基于SSH2的电子监管平台的设计与实现[J].物联网技术,2015,5(1):64-66.
[5]Linux下ARM和CC2530的串口通信[J].物联网技术,2016,6(1):34-36.
[6]翟高粤,魏娜.一种基于MVC框架的校园管理系统的设计[J].计算机时代,2010(8):40-42.
[7]于慧勇,樊丹丹.WebService技术在数据共享中的应用研究[J].电脑编程技巧与维护,2016(24):53-54.
[8]张籍.使用答题器组织有效课堂教学[J].学园:学者的精神家园,2014(18):99-100.endprint