国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于TCP協(xié)議的多媒體教室遠(yuǎn)程管理系統(tǒng)的設(shè)計

2016-10-14 01:05張波
價值工程 2016年5期
關(guān)鍵詞:WEB服務(wù)上位機多媒體教室

張波

摘要:本文主要討論了多媒體教室遠(yuǎn)程管理系統(tǒng)的軟件設(shè)計部分。下位機軟件模塊包括主程序、射頻讀卡子程序和網(wǎng)絡(luò)通信子程序,網(wǎng)絡(luò)通信子程序模塊重點闡述了TCP協(xié)議驅(qū)動層的基本方法和TCP連接建立的三次握手過程;上位機軟件模塊主要是監(jiān)控主程序,重點闡述消息包的處理過程;數(shù)據(jù)接口通過一卡通和教務(wù)的web服務(wù)接口完成數(shù)據(jù)同步。最后,總結(jié)了系統(tǒng)的設(shè)計意義。

Abstract: This article mainly discusses the software design of multimedia classroom remote management system. The software cludes lower machine contains main program, RFID subroutine and network communications subroutine. The network communications subroutine focuses on basic methods of TCP protocol driver layer and the process of TCP's three handshake; the main software of upper monitor is monitor master program. The article particularly explains processing procedure of the message packets; the data interfaces complete data synchronization through the web services provided by campus card system and educational administration system. Finally, the article concludes the system's design significance.

關(guān)鍵詞:多媒體教室;上位機;下位機;TCP協(xié)議;Web服務(wù)

Key words: multimedia classroom;upper monitor;lower machine;TCP protocol;Web services

中圖分類號:G434 文獻(xiàn)標(biāo)識碼:A 文章編號:1006-4311(2016)05-0195-03

0 引言

隨著多媒體教學(xué)的日益普及,各個學(xué)校的多媒體教室數(shù)量在迅速增長。在現(xiàn)有管理人員不變的情況下,如何更加高效的管理多媒體教學(xué)設(shè)備成為學(xué)校迫切需要解決的問題。本論文從技術(shù)的角度給出一種遠(yuǎn)程監(jiān)控管理多媒體教室設(shè)備的方案。

系統(tǒng)硬件是基于Silabs公司的C8051F020單片機進行開發(fā)的,外圍電路主要分為四個模塊:設(shè)備控制模塊、射頻讀卡模塊、網(wǎng)絡(luò)通信模塊和時鐘發(fā)生模塊。射頻讀卡模塊采用Philips公司的MFRC522射頻讀卡芯片,網(wǎng)絡(luò)通信模塊采用Silabs公司的CP2200以太網(wǎng)控制器。硬件接線圖在這里不是重點,本文主要討論系統(tǒng)上位機和下位機軟件設(shè)計部分。

1 下位機軟件設(shè)計

1.1 系統(tǒng)主程序設(shè)計

系統(tǒng)主程序如圖1所示。C8051F020單片機(以下簡稱下位機)在沒有通電的情況下,服務(wù)器(以下簡稱上位機)組態(tài)軟件顯示中控為離線狀態(tài)。當(dāng)下位機上電復(fù)位完成初始化以后,網(wǎng)絡(luò)模塊會以TCP協(xié)議自動連接上位機端口,上位機組態(tài)軟件顯示中控為在線狀態(tài)。在線狀態(tài)下,下位機會循環(huán)判斷是否有IC卡在識別區(qū),如果讀得卡號則推送給上位機進行驗證,如果上位機一直沒有回應(yīng)(超過3秒)則通過查詢本地flash存儲進行驗證。下位機會一直監(jiān)聽上位機的控制指令并完成對周邊多媒體設(shè)備的控制。下位機每15秒種向上位機發(fā)送保持在線狀態(tài)的心跳包,同時每1小時發(fā)送一次下位機flash存儲數(shù)據(jù)表更新的請求包以盡量保持和一卡通賬號數(shù)據(jù)及教務(wù)課表數(shù)據(jù)一致。下位機根據(jù)設(shè)備控制模塊鍵盤電路的中斷請求,讀取鍵值并執(zhí)行。

1.2 射頻讀卡子程序設(shè)計

射頻讀卡子程序如圖2所示。MFRC522初始化完成之后,通過尋卡-防沖撞-選卡三步循環(huán)讀物理卡號,然后將讀取的物理卡號提交至服務(wù)器進行身份驗證。如果在3秒內(nèi)收到服務(wù)器返回的通過驗證命令,系統(tǒng)就直接打開電源輸出,否則就認(rèn)為是網(wǎng)絡(luò)故障或離線狀態(tài),先從時鐘芯片讀取當(dāng)前日期時間段,然后查詢下位機本地flash存儲進行工號驗證。這樣設(shè)計既保證網(wǎng)絡(luò)在線的情況下教師能夠完成刷卡身份驗證,又保證了網(wǎng)絡(luò)故障或離線的情況下教師同樣可以正常使用多媒體設(shè)備。

1.3 網(wǎng)絡(luò)通信子程序設(shè)計

網(wǎng)絡(luò)通信模塊軟件主要包括模塊初始化程序、CP2200驅(qū)動程序以及嵌入式TCP/IP協(xié)議棧三部分,其中CP2200驅(qū)動程序主要完成接收網(wǎng)絡(luò)數(shù)據(jù)以及向網(wǎng)絡(luò)發(fā)送數(shù)據(jù)的工作。由于嵌入式Internet系統(tǒng)軟硬件資源有限并且通常功能需求較少,因此在構(gòu)造嵌入式TCP/IP協(xié)議棧的時候可以對TCP/IP協(xié)議進行裁剪。本系統(tǒng)設(shè)計的嵌入式TCP/IP協(xié)議棧只選取了三項協(xié)議:ARP、IP和TCP,以下將重點闡述下位機的TCP模塊。

TCP(傳輸控制協(xié)議)是建立在IP協(xié)議之上的運輸層協(xié)議。由于加入端口(port)的功能,實現(xiàn)了傳輸通道的復(fù)用和分用功能。TCP數(shù)據(jù)報首部為20~60字節(jié),是一種面向連接的,能提供可靠數(shù)據(jù)傳輸?shù)姆?wù)。TCP協(xié)議功能主要由TCP初始化函數(shù)init_tcp()、TCP保活函數(shù)tcp_inactivity()、TCP發(fā)送函數(shù)tcp_send()、TCP接收函數(shù)tcp_rcve()和TCP重傳函數(shù)tcp_retransmit()實現(xiàn)。

在和上位機建立tcp連接時,需要進行三次握手才能完成,如圖3所示。第一次握手下位機發(fā)送請求包,之后下位機將收到上位機的應(yīng)答兼請求包并回發(fā)應(yīng)答包開始第二次握手,上位機收到下位機的應(yīng)答包之后再回發(fā)應(yīng)答包進行第三次握手,此后雙方的tcp連接建立完成。在連接已經(jīng)建立的狀態(tài)下,下位機在收到一個tcp包時,先將對應(yīng)連接對象的上位機請求號增加接收數(shù)據(jù)的長度,并且將下位機請求號和上位機應(yīng)答號都置為tcp包應(yīng)答號,然后再發(fā)應(yīng)答包。上位機的應(yīng)答號必須和下位機的請求號保持一致,如果應(yīng)答號小于請求號則表明下位機沒有收到上位機的應(yīng)答包,下位機重發(fā)緩存的數(shù)據(jù)包,如果重發(fā)兩次仍然是應(yīng)答號小于請求號則直接關(guān)閉該連接。如果是應(yīng)答號大于請求號則直接關(guān)閉該連接。重發(fā)的管理過程是通過tcp_retransmit()函數(shù)實現(xiàn)的。Tcp連接的關(guān)閉是通過四次揮手的過程完成的,如圖四所示,這里就不贅述具體過程了。

本系統(tǒng)之所以選擇tcp協(xié)議而不是網(wǎng)絡(luò)開銷相對較低的udp協(xié)議,主要是因為tcp協(xié)議能夠很容易的跨越各種網(wǎng)關(guān)和防火墻進行通信并且穩(wěn)定性和可靠性更好,如果考慮后期再加入遠(yuǎn)程系統(tǒng)維護功能模塊則無疑選用tcp協(xié)議更加合適。至于增加的一點網(wǎng)絡(luò)開銷,在校園網(wǎng)網(wǎng)絡(luò)設(shè)備端口和帶寬向千兆位甚至更高位發(fā)展的今天,完全可以忽略掉了。

2 上位機軟件設(shè)計

2.1 監(jiān)控主程序的設(shè)計

監(jiān)控主程序如圖5所示,主窗口加載以后便創(chuàng)建用于服務(wù)端偵聽的主socket、處理接入的子線程和管理子線程。其中處理接入的子線程負(fù)責(zé)客戶端socket的接入處理,當(dāng)有遠(yuǎn)端連接時,首先創(chuàng)建新的連接對象和新的連接socket,并進行關(guān)聯(lián),然后創(chuàng)建新的連接子線程并進行關(guān)聯(lián),最后將連接對象加入客戶端集合對象中;管理子線程主要負(fù)責(zé)離線連接對象的清理、自動恢復(fù)和刪除選中的客戶端socket、讀取后臺數(shù)據(jù)庫狀態(tài)并更新樹形列表和查詢數(shù)據(jù)庫顯示當(dāng)前教室狀態(tài)。它首先循環(huán)遍歷客戶端集合對象結(jié)構(gòu)中的每一個連接對象,然后將超時的對象剔除,超時的判斷根據(jù)是連接對象的刷新時間與當(dāng)前時間間隔超過20秒,剔除之前應(yīng)關(guān)閉對應(yīng)的遠(yuǎn)端socket和連接子線程并且更改其狀態(tài)為離線,之后將后臺數(shù)據(jù)庫教室節(jié)點中控狀態(tài)設(shè)置為離線。下面的讀取后臺數(shù)據(jù)庫狀態(tài)并更新樹形列表就根據(jù)所遍歷節(jié)點的ip地址查詢數(shù)據(jù)庫中中控的狀態(tài)值,根據(jù)中控狀態(tài)值,為0設(shè)置節(jié)點關(guān)閉,為1設(shè)置節(jié)點打開,為2設(shè)置離線并從客戶端集合結(jié)構(gòu)中剔除。最后一步,查詢數(shù)據(jù)庫顯示當(dāng)前教室狀態(tài),就是根據(jù)當(dāng)前選擇教室號從數(shù)據(jù)庫中查詢中控狀態(tài)值、投影機狀態(tài)值、主機狀態(tài)值和投影燈泡時間,然后根據(jù)這些值去更新右側(cè)下方的標(biāo)簽。這里需要注意的是為了避免子線程間使用同一數(shù)據(jù)連接對象對數(shù)據(jù)庫操作發(fā)生意外沖突,建議每個子線程用不同的數(shù)據(jù)庫連接對象操作數(shù)據(jù)庫,單個方法過程的數(shù)據(jù)操作只需要打開關(guān)閉數(shù)據(jù)庫一次即可,這樣可以提升數(shù)據(jù)庫讀寫效率。

監(jiān)控程序處理各種類型的消息包是由單獨啟動一個連接子線程進行的,當(dāng)收到有效數(shù)據(jù)包時首先記錄時間戳,后面管理子線程會根據(jù)這個時間戳判斷下位機是否離線。然后判斷是否刷卡消息包,如果是則根據(jù)物理卡號查詢一卡通表工號,再根據(jù)當(dāng)前時間段查詢教室課表工號,將這兩個工號比較,如果相同則向下位機返回打開命令并更新后臺教室狀態(tài)數(shù)據(jù)表為打開,如果不同就不做操作直接返回;如果不是刷卡消息包就判斷是否激活消息包,如果是激活消息并且是第一次激活則修改后臺教室狀態(tài)為關(guān)閉狀態(tài);如果既不是刷卡消息又不是激活消息則判斷是否為響應(yīng)消息包,如果是響應(yīng)消息包則根據(jù)響應(yīng)的操作修改后臺教室狀態(tài)數(shù)據(jù)表;如果以上都不是就判斷是否為數(shù)據(jù)更新請求消息包,如果是則查詢對應(yīng)教室號的課表數(shù)據(jù)和一卡通數(shù)據(jù)然后發(fā)送給下位機。

2.2 數(shù)據(jù)接口的設(shè)計

系統(tǒng)數(shù)據(jù)接口包括一卡通接口和教務(wù)接口兩部分。一卡通接口是調(diào)用一卡通的web service接口,從一卡通原始數(shù)據(jù)表抽取工號、卡號和姓名三個字段,然后經(jīng)過數(shù)據(jù)格式轉(zhuǎn)換存儲到本地的數(shù)據(jù)表yikatong當(dāng)中供使用;教務(wù)接口是調(diào)用教務(wù)系統(tǒng)的web service接口,從教務(wù)系統(tǒng)原始數(shù)據(jù)表抽取課程名稱、教師姓名、上課時間(含周次和節(jié)次,分號間隔)、上課地點(和上課時間對應(yīng),分號間隔)四個字段,然后經(jīng)過格式轉(zhuǎn)換存儲到本地的數(shù)據(jù)表jiaowu中供使用。

數(shù)據(jù)接口處理當(dāng)中的難點在于數(shù)據(jù)結(jié)構(gòu)和格式的轉(zhuǎn)換。例如原始一卡通表中的卡號為十進制的字符串類型varchar(10),可變長度,最長為10,而系統(tǒng)需要的是4個字節(jié)十六進制表示的卡號,可以先將獲取的字符串轉(zhuǎn)換成32位無符號整形,然后將32位無符號整形轉(zhuǎn)換成字節(jié)數(shù)組,最后將字節(jié)數(shù)組作為參數(shù)插入數(shù)據(jù)庫卡號字段。再例如原始一卡通表中的工號是可變長度字符串類型varchar(10),而系統(tǒng)需要的工號是固定長度10 char(10),這里只要將原始工號長度不滿10的左邊填充0就可以了。而教務(wù)表的整個數(shù)據(jù)組織結(jié)構(gòu)都和系統(tǒng)不一樣,需要按照工號、教室號、時間段、周次組織數(shù)據(jù),這樣就先要從一卡通根據(jù)姓名查得工號,然后將上課時間,上課地點按照分號對應(yīng)拆解開,在上課時間里面再按周次拆解,經(jīng)過層層循環(huán)拆解最終形成系統(tǒng)的數(shù)據(jù)結(jié)構(gòu)。上課時間段目前是按照每天5段(1-2,3-4,5-6,7-8,9-10),每周7天一個循環(huán),也就是一共35段計算,周次以實際教學(xué)計劃為準(zhǔn)。

為了保證數(shù)據(jù)接口的安全調(diào)用,所有的web service調(diào)用必須集成網(wǎng)站的windows身份驗證,只有指定的開發(fā)者才能夠調(diào)用,使用NetworkCredential類便可以安全調(diào)用集成windows身份驗證的web service服務(wù)。數(shù)據(jù)接口的調(diào)用方式除了以手動點擊按鈕的方式啟動外,也可以定時調(diào)用,為了不影響校園網(wǎng)絡(luò)的運行可以在夜間進行大數(shù)據(jù)量的同步,教務(wù)臨時排課盡量提前一天完成,這樣夜間完成同步第二天便是最新的同步數(shù)據(jù)。

3 結(jié)束語

通過本系統(tǒng),一方面能夠讓管理人員在控制室遠(yuǎn)程監(jiān)控和管理教室設(shè)備,對于發(fā)生故障的設(shè)備能夠在第一時間給予維修,提高了設(shè)備的運行效率,減少了設(shè)備維護人員的工作量。據(jù)統(tǒng)計,使用該管理系統(tǒng)以后,設(shè)備維修的平均響應(yīng)時間縮短75%,教室設(shè)備的平均故障率降低53%,設(shè)備管理人員的維護工作量減少了68%,師生對于多媒體教室的使用滿意度大幅度提升。另一方面教師不用領(lǐng)取專門的講臺門禁卡,可以直接用校園卡刷卡使用多媒體教室,更加方便而且利于統(tǒng)一管理。

參考文獻(xiàn):

[1]李慶.基于嵌入式TCP/IP技術(shù)的網(wǎng)絡(luò)型多媒體中控器設(shè)計[J].陜西科技大學(xué)學(xué)報,2010.

[2]位永輝,劉篤仁.基于MF RC500的非接觸式IC卡讀寫器設(shè)計[J].電子元器件應(yīng)用,2007.

[3]肖俊武,許愛秋,魯俊偉.利用C8051F020的SMBus實現(xiàn)時鐘/日歷芯片讀取[J].電子元器件應(yīng)用,2006.

猜你喜歡
WEB服務(wù)上位機多媒體教室
基于Web服務(wù)的SPSS與.NET系統(tǒng)集成開發(fā)
基于線性回歸的航班延誤預(yù)測研究與系統(tǒng)開發(fā)
論網(wǎng)絡(luò)通信技術(shù)
基于云桌面的多媒體培訓(xùn)教室的安全性保障
構(gòu)建高職院校開放式多媒體教室管理新模式
基于云的短波發(fā)射機機房中央空調(diào)自動控制系統(tǒng)的設(shè)計與實現(xiàn)
淺析以人為核心的高校多媒體教室管理與維護
教學(xué)工作量管理系統(tǒng)的設(shè)計與實現(xiàn)
高校多媒體教室設(shè)備選型和布局
一種基于SOA的web異構(gòu)數(shù)據(jù)集成方法研究
津市市| 湖州市| 织金县| 奎屯市| 保山市| 博爱县| 论坛| 泾川县| 福安市| 清镇市| 嘉兴市| 郴州市| 昌都县| 阿荣旗| 广平县| 杭锦后旗| 韶关市| 个旧市| 沙坪坝区| 玉溪市| 吴川市| 临沭县| 邳州市| 常熟市| 长子县| 昌吉市| 吴川市| 乌兰察布市| 绥中县| 鹤山市| 伊吾县| 岱山县| 碌曲县| 闸北区| 綦江县| 陵水| 建宁县| 江油市| 桂东县| 鄂州市| 日照市|