陳騫 黃辰
摘 要:文中設計了一款軟硬件結合的無線答題系統,軟件部分為基于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