新聞中心

EEPW首頁 > 手機與無線通信 > 設(shè)計應用 > 基于Windows服務、網(wǎng)絡和串口投影機遠程控制設(shè)計

基于Windows服務、網(wǎng)絡和串口投影機遠程控制設(shè)計

作者: 時間:2009-07-03 來源:網(wǎng)絡 收藏

偵聽到新的連接后,就建立新線程并生成新的Socket對象,原線程繼續(xù)偵聽,新的Socket對象與客戶端的Socket對象建立連接,并接收客戶端發(fā)來的數(shù)據(jù)幀。器端Socket對象收到網(wǎng)絡數(shù)據(jù)幀后,解析出數(shù)據(jù)幀,并讀出號和設(shè)置,根據(jù)串口號初始化本地計算機的 SerialPort串口組件,如波特率、停止位、數(shù)據(jù)長度、握手連接等。以SerialPort組件的Open()方法打開相應的串口;把從網(wǎng)絡數(shù)據(jù)幀解析出的串口數(shù)據(jù),用SerialPort組件的Write()方法發(fā)送出去,以控制的相應動作;然后偵聽正使用的串口資源,并通過 SerialPort組件的異步方式.Read()方法讀入返回的應答信號。等待規(guī)定毫秒時間延時后,讀入串口接收緩存器,如有返回的串口數(shù)據(jù),就把返回的串口數(shù)據(jù)加上IP頭,與TCP封裝成網(wǎng)絡數(shù)據(jù)幀,按接收到的客戶端IP地址發(fā)送出去。如在規(guī)定時間里沒有返回串口數(shù)據(jù),表明外界嵌入式設(shè)備的串口資源有故障,就生成失敗串口數(shù)據(jù)封裝網(wǎng)絡數(shù)據(jù)幀發(fā)回到原先連接的客戶端。最后關(guān)閉正使用的Socket對象和串口資源,原Socket,對象同時繼續(xù)網(wǎng)絡偵聽等待新的客戶端連接。系統(tǒng)關(guān)閉時,控制管理SCM就關(guān)閉網(wǎng)絡與串口的通信程序,從而退出Win-dows系統(tǒng)后臺運行。

2 案例
2.1 “零成本”解決方案
根據(jù)上述的網(wǎng)絡、服務和串口開發(fā)流程,可以使不再使用網(wǎng)絡中控硬件,但具備網(wǎng)絡中控的網(wǎng)絡與串口通信協(xié)議功能,以“零成本”方式實現(xiàn)。如圖3所示的網(wǎng)絡、Windows服務與串口通信應用。

整個項目系統(tǒng)中有4個信號源:計算機數(shù)據(jù)信號、便攜機數(shù)據(jù)信號、影碟機視頻信號、錄像機視頻信號,全部由投影機實現(xiàn)信號切換。控制投影機開機關(guān)機及信號源切換控制,由其串口與計算機的串口一連接。根據(jù)投影機不同的串口設(shè)置,客戶端發(fā)送的串口數(shù)據(jù)幀設(shè)置與計算機、投影機的串口設(shè)置相一致。計算機的串口二與電動屏幕的串口連接(電動屏幕通過一個小型AVR單片機控制的兩個繼電器來實現(xiàn)電動屏幕的升、降和停止,AVR單片機有一個全雙工串口),同樣串口數(shù)據(jù)幀設(shè)置也與電動屏幕的串口設(shè)置相一致??蛻舳艘跃W(wǎng)絡套接字Socket對象發(fā)送或接收網(wǎng)絡數(shù)據(jù)幀,根據(jù)遠程投影機或電動屏幕的串口設(shè)置發(fā)送串口號和相應串口設(shè)置,并由若干串口控制數(shù)據(jù)代碼組成符合規(guī)定的串口數(shù)據(jù)幀,再按TCP/IP協(xié)議組成網(wǎng)絡數(shù)據(jù)幀,實現(xiàn)網(wǎng)絡、Windows服務和串口的投影機遠程控制。
2.2 投影機遠程冷啟動開機和延時關(guān)機
在沒有網(wǎng)絡中控的情況下,如果要實現(xiàn)投影機的遠程冷啟動開機和延時關(guān)機控制。首先要實現(xiàn)對投影機所連接的計算機進行遠程冷啟動開機(喚醒功能),并能通過計算機的串口資源控制投影機的冷啟動開機和延時關(guān)機。計算機的硬件如主板、網(wǎng)卡等都要符合網(wǎng)絡開機喚醒功能設(shè)置;計算機的軟件采用開機后即可自動運行的Windows服務,以實現(xiàn)網(wǎng)絡與串口的數(shù)據(jù)協(xié)議轉(zhuǎn)換。
在主控客戶端確定需要喚醒遠程投影機所連接計算機時,客戶端通過Socket廣播發(fā)送相應含有網(wǎng)絡喚醒數(shù)據(jù)幀的數(shù)據(jù)包給網(wǎng)絡中的計算機。當需要喚醒的計算機控制芯片發(fā)現(xiàn)數(shù)據(jù)包內(nèi)包含本網(wǎng)卡的媒體訪問控制(Media Access Control,MAC)地址信息的網(wǎng)絡喚醒數(shù)據(jù)幀后,就立刻通過網(wǎng)絡喚醒(Wake on Lan,WoL)連接線向計算機發(fā)出開機信號,通知主板開機。在網(wǎng)絡中,當計算機處于關(guān)機狀態(tài)時,IP地址和計算機名字都不能識別機器的身份,惟一能識別其身份的只有它所帶網(wǎng)卡的物理地址,即MAC地址。每塊網(wǎng)卡的地址是惟一的,也就是說網(wǎng)卡的MAc地址可以用來惟一地標識網(wǎng)絡上的某臺計算機。
網(wǎng)絡喚醒數(shù)據(jù)幀的格式為連續(xù)6 B的FF和連續(xù)重復16次的MAC地址。若要喚醒電腦網(wǎng)卡的MAC地址00-DF-IE-32-E7-CD,則其對應的網(wǎng)絡喚醒數(shù)據(jù)幀如圖4所示。

對于實現(xiàn)投影機的遠程關(guān)機,客戶端只需被控計算機的管理員賬號和密碼,就能控制或者進入被控計算機的操作系統(tǒng)。其實現(xiàn)原理是視窗管理規(guī)范 (WindowsManagement Instrumentation,WMI)。通過WMI為客戶端用戶提供通用訪問管理信息,設(shè)置客戶端在其本地計算機讀?。瘜懭耄瘓?zhí)行的權(quán)限,也包括關(guān)機設(shè)置。當客戶端發(fā)出遠程關(guān)機命令時,被控計算機通過WMI確認客戶端用戶使用權(quán)限,使用上面所述的Windows服務,實現(xiàn)網(wǎng)絡數(shù)據(jù)幀到串口數(shù)據(jù)幀的協(xié)議轉(zhuǎn)換,并通過計算機串口向投影機發(fā)送延時關(guān)機信號。投影機延時關(guān)機完成后,根據(jù)客戶端的要求,被控計算機也可隨即關(guān)閉Windows服務,并自動關(guān)機,最后整個系統(tǒng)進入遠程冷啟動開機的功能。

3 結(jié) 語
利用網(wǎng)絡、Windows服務和串口的數(shù)據(jù)通信技術(shù),通過計算機作為中介,實現(xiàn)了對投影機遠程冷啟動開機和延時關(guān)機;并使用計算機網(wǎng)絡套接字 Socket和SeriallPort串口控件,完成了在無網(wǎng)絡中控硬件支持的情況下,利用本地計算機網(wǎng)絡資源和串口資源,以及投影機本身信號源切換資源,實現(xiàn)對投影機的“零成本”遠程控制。同時基于網(wǎng)絡、Windows服務和串口的數(shù)據(jù)通信有更多的用途,在只有計算機而又要實現(xiàn)對被控設(shè)備進行網(wǎng)絡遠程控制時,就要應用到這種技術(shù)。


上一頁 1 2 下一頁

評論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉