專利名稱::一種串口數(shù)據(jù)的傳輸控制方法和裝置的制作方法
技術(shù)領(lǐng)域:
:本發(fā)明涉及網(wǎng)絡(luò)通信技術(shù),特別涉及一種串口數(shù)據(jù)的傳輸控制方法和裝置。
背景技術(shù):
:當(dāng)兩個(gè)終端設(shè)備之間存在一定距離又需要通過(guò)串口進(jìn)行通信時(shí),往往不能夠通過(guò)終端設(shè)備的本地串口來(lái)實(shí)現(xiàn)數(shù)據(jù)通信,而需要在兩個(gè)終端設(shè)備之間設(shè)置串口服務(wù)器,并在終端設(shè)備上安裝串口驅(qū)動(dòng)程序,通過(guò)串口服務(wù)器與串口驅(qū)動(dòng)程序之間的通信來(lái)模擬終端設(shè)備的本地串口。圖1為現(xiàn)有技術(shù)中通過(guò)串口服務(wù)器來(lái)模擬本地串口的示意圖,PC與遠(yuǎn)程的其它設(shè)備之間需要進(jìn)行串口通信時(shí),需要在PC中安裝串口驅(qū)動(dòng)程序,該串口驅(qū)動(dòng)程序通過(guò)與串口服務(wù)器之間的通信來(lái)實(shí)現(xiàn)從串口讀數(shù)據(jù)、將數(shù)據(jù)寫(xiě)入串口以及串口的參數(shù)配置等,從而將串口服務(wù)器的遠(yuǎn)程串口模擬為PC的本地串口,如圖l所示,PC需要對(duì)串口l進(jìn)行操作時(shí),通過(guò)串口驅(qū)動(dòng)程序向串口服務(wù)器發(fā)送攜帶串口l標(biāo)識(shí)的打開(kāi)指令,串口服務(wù)器將串口l設(shè)置為打開(kāi)狀態(tài);PC再通過(guò)串口驅(qū)動(dòng)程序向串口服務(wù)器發(fā)送攜帶串口1標(biāo)識(shí)且包含相應(yīng)操作信息的指令,例如,讀指令、寫(xiě)指令或者參數(shù)設(shè)置指令,串口驅(qū)動(dòng)程序接收到該指令后,根據(jù)指令中包含的操作信息對(duì)串口1執(zhí)行相應(yīng)的操作,例如,接收到攜帶串口l標(biāo)識(shí)的讀指令后,從串口l讀取數(shù)據(jù)并發(fā)送給PC,接收到攜帶串口l標(biāo)識(shí)寫(xiě)指令后,將PC發(fā)送來(lái)的寫(xiě)指令中攜帶數(shù)據(jù)寫(xiě)入串口1。由于在現(xiàn)有技術(shù)的上述方法中,串口服務(wù)器僅被動(dòng)地根據(jù)接收到的指令執(zhí)行相應(yīng)的操作,因此,在由多個(gè)終端和同一個(gè)串口服務(wù)器連接所構(gòu)成的網(wǎng)絡(luò)中,當(dāng)其中一個(gè)終端對(duì)串口數(shù)據(jù)進(jìn)行讀操作或?qū)懖僮鲿r(shí),其它終端則無(wú)法獲知這一行為,然而在實(shí)際情況中,往往需要對(duì)該網(wǎng)絡(luò)中所有的讀操作或?qū)懖僮鬟M(jìn)行監(jiān)視,例如,當(dāng)PC1和PC2與串口服務(wù)器連接來(lái)實(shí)現(xiàn)對(duì)同一臺(tái)攝像機(jī)的控制時(shí),PC1和PC2僅能夠通過(guò)對(duì)串口數(shù)據(jù)的讀操作或?qū)懖僮鲉为?dú)實(shí)現(xiàn)對(duì)攝像機(jī)的控制,而相互之間不能夠監(jiān)視到對(duì)攝像機(jī)進(jìn)行了哪些控制,也就無(wú)法實(shí)現(xiàn)PC1和PC2之間控制的協(xié)同工作。因此,實(shí)現(xiàn)終端能夠監(jiān)視其它終端對(duì)串口數(shù)據(jù)的操作在許多情況下是十分必要的。
發(fā)明內(nèi)容有鑒于此,本發(fā)明提供了一種串口數(shù)據(jù)的傳輸控制方法和裝置,以便于實(shí)現(xiàn)終端能夠監(jiān)視其它終端對(duì)串口數(shù)據(jù)的操作。一種串口數(shù)據(jù)的傳輸控制方法,為串口服務(wù)器的每個(gè)串口創(chuàng)建數(shù)據(jù)發(fā)送列表,串口服務(wù)器啟動(dòng)后,將所有串口設(shè)置為打開(kāi)狀態(tài),并對(duì)所有數(shù)據(jù)操作進(jìn)行偵聽(tīng);該方法包括預(yù)先在第一串口的數(shù)據(jù)發(fā)送列表中創(chuàng)建終端的發(fā)送項(xiàng);或者,串口服務(wù)器接收到所述終端發(fā)送來(lái)的包含第一串口標(biāo)識(shí)的訂閱指令后,在所述第一串口標(biāo)識(shí)所對(duì)應(yīng)的第一串口的數(shù)據(jù)發(fā)送列表中創(chuàng)建所述終端的發(fā)送項(xiàng);一旦偵聽(tīng)到對(duì)所述第一串口進(jìn)行數(shù)據(jù)搡作,則將操作的數(shù)據(jù)送入所述第一串口的數(shù)據(jù)發(fā)送列表中的所有發(fā)送項(xiàng)中,將各發(fā)送項(xiàng)中的數(shù)據(jù)和該數(shù)據(jù)對(duì)應(yīng)的操作信息發(fā)送給各發(fā)送項(xiàng)對(duì)應(yīng)的終端。一種串口數(shù)據(jù)的傳輸控制裝置,該傳輸控制裝置設(shè)置于串口服務(wù)器中,該裝置包括列表存儲(chǔ)單元、主控制單元和套接口;所述列表存儲(chǔ)單元,用于存儲(chǔ)每個(gè)串口的數(shù)據(jù)發(fā)送列表;所述主控制單元,用于在所述串口服務(wù)器啟動(dòng)后,將所有串口設(shè)置為打開(kāi)狀態(tài),并對(duì)所有數(shù)據(jù)操作進(jìn)行偵聽(tīng);預(yù)先在第一串口的數(shù)據(jù)發(fā)送列表中創(chuàng)建終端的發(fā)送項(xiàng),或者,通過(guò)所述套接口接收到所述終端發(fā)送來(lái)的包含第一串口標(biāo)識(shí)的訂閱指令后,在所述第一串口標(biāo)識(shí)所對(duì)應(yīng)的第一串口的數(shù)據(jù)發(fā)送列表中創(chuàng)建所述終端的發(fā)送項(xiàng);一旦偵聽(tīng)到對(duì)所述第一串口進(jìn)行數(shù)據(jù)操作,則將操作的數(shù)據(jù)送入所述第一串口的數(shù)據(jù)發(fā)送列表中的所有發(fā)送項(xiàng)中,將各發(fā)送項(xiàng)中的數(shù)據(jù)和該數(shù)據(jù)對(duì)應(yīng)的搡作信息通過(guò)所述套接口發(fā)送給各發(fā)送項(xiàng)對(duì)應(yīng)的終端。由以上技術(shù)方案可以看出,本發(fā)明提供的方法和裝置中,串口服務(wù)器不再僅僅被動(dòng)地根據(jù)接收到的指令執(zhí)行相應(yīng)的串口操作,而是通過(guò)為每個(gè)串口創(chuàng)建數(shù)據(jù)發(fā)送列表,預(yù)先在串口的數(shù)據(jù)發(fā)送列表中創(chuàng)建終端的發(fā)送項(xiàng),或者,在接收到終端發(fā)送來(lái)的包含串口標(biāo)識(shí)的訂閱指令后,在該串口標(biāo)識(shí)所對(duì)應(yīng)的串口數(shù)據(jù)發(fā)送列表中創(chuàng)建該終端的發(fā)送項(xiàng);一旦偵聽(tīng)到對(duì)該串口進(jìn)行數(shù)據(jù)操作,則將操作的數(shù)據(jù)送入該串口的數(shù)據(jù)發(fā)送列表中的所有發(fā)送項(xiàng)中,將各發(fā)送項(xiàng)中的數(shù)據(jù)和該數(shù)據(jù)對(duì)應(yīng)的操作信息發(fā)送給各發(fā)送項(xiàng)對(duì)應(yīng)的終端。使得訂閱了該串口操作的終端都能夠監(jiān)聽(tīng)到對(duì)該串口進(jìn)行的數(shù)據(jù)操作。圖1為現(xiàn)有技術(shù)中通過(guò)串口服務(wù)器來(lái)模擬本地串口的示意圖;圖2為本發(fā)明實(shí)施例提供的一個(gè)網(wǎng)絡(luò)連接圖示意圖;圖3為本發(fā)明實(shí)施例提供的實(shí)現(xiàn)串口數(shù)據(jù)合并的網(wǎng)絡(luò)連接示意圖;圖4為本發(fā)明實(shí)施例提供的串口數(shù)據(jù)的傳輸控制裝置的結(jié)構(gòu)圖;圖5為本發(fā)明實(shí)施例提供的實(shí)現(xiàn)遠(yuǎn)程數(shù)據(jù)傳輸?shù)木W(wǎng)絡(luò)連接示意圖。具體實(shí)施例方式為了使本發(fā)明的目的、技術(shù)方案和優(yōu)點(diǎn)更加清楚,下面結(jié)合附圖和具體實(shí)施例對(duì)本發(fā)明進(jìn)行詳細(xì)描述。本發(fā)明所提供的方法主要包括為每個(gè)串口創(chuàng)建數(shù)據(jù)發(fā)送列表,串口服務(wù)器啟動(dòng)后,將所有串口設(shè)置為打開(kāi)狀態(tài),并對(duì)所有數(shù)據(jù)操作進(jìn)行偵聽(tīng);預(yù)先在串口的數(shù)據(jù)發(fā)送列表中創(chuàng)建終端的發(fā)送項(xiàng);或者,串口服務(wù)器接收到終端發(fā)送來(lái)的包含串口標(biāo)識(shí)的訂閱指令后,在該串口標(biāo)識(shí)所對(duì)應(yīng)串口的數(shù)據(jù)發(fā)7送列表中創(chuàng)建該終端的發(fā)送項(xiàng);一旦偵聽(tīng)到對(duì)該串口進(jìn)行數(shù)據(jù)操作,則將操作的數(shù)據(jù)送入該串口的數(shù)據(jù)發(fā)送列表中的所有發(fā)送項(xiàng)中,將各發(fā)送項(xiàng)中的數(shù)據(jù)和該數(shù)據(jù)對(duì)應(yīng)的操作信息發(fā)送給各發(fā)送項(xiàng)對(duì)應(yīng)的終端。其中,上述方法可以應(yīng)用于對(duì)串口的讀操作或?qū)懖僮?,?duì)應(yīng)創(chuàng)建的數(shù)據(jù)發(fā)送列表可以分別為讀數(shù)據(jù)發(fā)送列表和寫(xiě)數(shù)據(jù)發(fā)送列表,下面分別以讀操作和寫(xiě)操作為例對(duì)該方法進(jìn)行詳細(xì)描述。首先描述讀操作過(guò)程,以圖2所示的連接關(guān)系為例,假設(shè)要實(shí)現(xiàn)PC1和PC2對(duì)串口1讀取操作的監(jiān)視,其實(shí)現(xiàn)過(guò)程可以如下為串口1和串口2分別創(chuàng)建讀數(shù)據(jù)列表。串口服務(wù)器啟動(dòng)后,將所有串口設(shè)置為打開(kāi)狀態(tài),并對(duì)所有串口l和串口2上的數(shù)據(jù)操作進(jìn)行偵聽(tīng)。在串口服務(wù)器啟動(dòng)之后,PC1和PC2分別向串口服務(wù)器發(fā)送包含串口1標(biāo)識(shí)的讀數(shù)據(jù)訂閱指令,串口服務(wù)器接收到PC1和PC2分別發(fā)送來(lái)的讀數(shù)據(jù)訂閱指令后,在串口1的讀數(shù)據(jù)列表中分別為PC1和PC2創(chuàng)建發(fā)送項(xiàng),創(chuàng)建的該發(fā)送項(xiàng)可以分別對(duì)應(yīng)采用PC1和PC2進(jìn)行標(biāo)識(shí),其創(chuàng)建的發(fā)送項(xiàng)格式可以如表1所示。表1<table>tableseeoriginaldocumentpage8</column></row><table>一旦從串口l讀取到數(shù)據(jù),將該數(shù)據(jù)送入串口1中所有已創(chuàng)建的發(fā)送項(xiàng),即PC1的發(fā)送項(xiàng)和PC2的發(fā)送項(xiàng),然后將讀數(shù)據(jù)發(fā)送列表中所有發(fā)送項(xiàng)中的數(shù)據(jù)分別發(fā)送給對(duì)應(yīng)的終端PC1和PC2,并且隨著所述數(shù)據(jù)發(fā)送的還有讀操作信息,表明對(duì)串口1進(jìn)行的數(shù)據(jù)操作為讀操作。通過(guò)以上過(guò)程,則可以實(shí)現(xiàn)PC1和PC2對(duì)從串口1讀取凄t據(jù)的監(jiān)一見(jiàn)。如果PCl不再需要對(duì)串口l讀取數(shù)據(jù)進(jìn)行監(jiān)視,則可以向串口服務(wù)器發(fā)送攜帶串口1標(biāo)識(shí)的讀數(shù)據(jù)取消指令,則串口服務(wù)器將串口1中PC1的發(fā)送項(xiàng)刪除。下面描述寫(xiě)操作過(guò)程,仍以圖2所示的連接關(guān)系為例,假設(shè)要實(shí)現(xiàn)PC1和PC2對(duì)串口1寫(xiě)入數(shù)據(jù)的監(jiān)碎見(jiàn),其實(shí)現(xiàn)過(guò)程可以如下為串口1和串口2分別創(chuàng)建寫(xiě)數(shù)據(jù)列表。串口服務(wù)器啟動(dòng)后,將所有串口設(shè)置為打開(kāi)狀態(tài),并對(duì)所有串口1和串口2上的數(shù)據(jù)操作進(jìn)行偵聽(tīng)。在串口服務(wù)器啟動(dòng)之后,PC1和PC2分別向串口服務(wù)器發(fā)送包含串口1標(biāo)識(shí)的寫(xiě)數(shù)據(jù)訂閱指令,串口服務(wù)器接收到PC1和PC2分別發(fā)送來(lái)的寫(xiě)數(shù)據(jù)訂閱指令后,在串口1的寫(xiě)數(shù)據(jù)列表中分別為PC1和PC2創(chuàng)建發(fā)送項(xiàng),創(chuàng)建的該發(fā)送項(xiàng)可以分別對(duì)應(yīng)采用PC1和PC2進(jìn)4亍標(biāo)識(shí),串口1和串口2中創(chuàng)建的發(fā)送項(xiàng)格式可以如表2所示。表2訂閱該串口寫(xiě)操作的終端標(biāo)識(shí)寫(xiě)操作的數(shù)據(jù)PC1PC2串口服務(wù)器接收到PC3發(fā)送來(lái)的攜帶串口l標(biāo)識(shí)的寫(xiě)指令后,將該寫(xiě)指令包含的數(shù)據(jù)寫(xiě)入串口l,并將該數(shù)據(jù)送入串口1中所有已創(chuàng)建的發(fā)送項(xiàng),即PC1的發(fā)送項(xiàng)和PC2的發(fā)送項(xiàng),然后將寫(xiě)數(shù)據(jù)發(fā)送列表中所有發(fā)送項(xiàng)中的數(shù)據(jù)分別發(fā)送給對(duì)應(yīng)的終端PC1和PC2,并且,隨著該數(shù)據(jù)一起發(fā)送的還有寫(xiě)操作信息,表明對(duì)串口l進(jìn)行的搡作為寫(xiě)操作。通過(guò)以上過(guò)程,則可以實(shí)現(xiàn)PC1和PC2對(duì)串口1寫(xiě)入數(shù)據(jù)的監(jiān)視。如果PC1不需要再對(duì)串口1的數(shù)據(jù)進(jìn)行寫(xiě)入操作的監(jiān)視,則可以向串口服務(wù)器發(fā)送攜帶串口l標(biāo)識(shí)的寫(xiě)數(shù)據(jù)取消指令,則串口服務(wù)器將串口1中PC1的發(fā)送項(xiàng)刪除。在上述讀操作過(guò)程中,還可以利用讀數(shù)據(jù)發(fā)送列表來(lái)實(shí)現(xiàn)串口之間的數(shù)據(jù)轉(zhuǎn)發(fā)功能。仍以圖2所示結(jié)構(gòu)為例,例如,可以預(yù)先在串口1的讀數(shù)據(jù)發(fā)送列表中創(chuàng)建第二串口的發(fā)送項(xiàng)。當(dāng)從串口l讀入數(shù)據(jù)時(shí),將該數(shù)據(jù)送入串口1的讀數(shù)據(jù)發(fā)送列表的所有發(fā)送項(xiàng)中,在后續(xù)發(fā)送串口1的讀數(shù)據(jù)發(fā)送列表的所有發(fā)送項(xiàng)的數(shù)據(jù)時(shí),將該數(shù)據(jù)也會(huì)被發(fā)送給串口2,即實(shí)現(xiàn)從串口讀取數(shù)據(jù)后寫(xiě)入串口2。并且,訂閱串口1讀操作和串口2寫(xiě)操作的PC能夠監(jiān)視到上述對(duì)串口的操作,例如,在上述過(guò)程中,PC1和PC2能夠監(jiān)視從串口l讀取的數(shù)據(jù),同時(shí)也監(jiān)視到對(duì)串口2寫(xiě)入數(shù)據(jù)。采用該方法可以實(shí)現(xiàn)串口數(shù)據(jù)的合并,如圖3所示,預(yù)先在串口1的讀數(shù)據(jù)發(fā)送列表和串口2的讀數(shù)據(jù)發(fā)送列表中配置了串口3的發(fā)送項(xiàng)后,從串口1和串口2讀取的數(shù)據(jù)都能夠?qū)懭氪?。還可以實(shí)現(xiàn)串口數(shù)據(jù)的分發(fā),例如,預(yù)先在串口1的讀數(shù)據(jù)發(fā)送列表中配置串口2和串口3的發(fā)送項(xiàng),則從串口1讀取數(shù)據(jù)的同時(shí)會(huì)將讀取的數(shù)據(jù)送入串口1的讀數(shù)據(jù)發(fā)送列表中串口2和串口3的發(fā)送項(xiàng),并將該發(fā)送項(xiàng)中的數(shù)據(jù)分別寫(xiě)入串口2和串口3,從而實(shí)現(xiàn)從串口1讀取數(shù)據(jù)分發(fā)到串口2和串口3。另外,在上述讀操作和寫(xiě)操作過(guò)程中,可以將讀數(shù)據(jù)列表或?qū)憯?shù)據(jù)列表中的發(fā)送項(xiàng)類型進(jìn)行區(qū)分,即可以設(shè)置為動(dòng)態(tài)類型和靜態(tài)類型。串口服務(wù)器重啟后,動(dòng)態(tài)類型的發(fā)送項(xiàng)將不存在,而靜態(tài)類型的發(fā)送項(xiàng)被保留。例如,可以將IP地址固定的終端創(chuàng)建的發(fā)送項(xiàng)設(shè)置為靜態(tài)類型,則串口服務(wù)器在重啟后,可以繼續(xù)發(fā)送靜態(tài)類型的發(fā)送項(xiàng)中的數(shù)據(jù),以此保證該終端對(duì)串口數(shù)據(jù)操作的監(jiān)視功能,也可以將預(yù)先配置在讀數(shù)據(jù)列表或?qū)憯?shù)據(jù)列表中的發(fā)送項(xiàng)設(shè)置為靜態(tài)類型;可以將IP地址不固定的終端創(chuàng)建的發(fā)送項(xiàng)設(shè)置為動(dòng)態(tài)類型,動(dòng)態(tài)類型的發(fā)送項(xiàng)需要依靠終端發(fā)送的心跳報(bào)文來(lái)維持,即終端以固定的時(shí)間間隔向串口服務(wù)器發(fā)送心跳報(bào)文,如果串口服務(wù)器在預(yù)設(shè)的時(shí)間間隔內(nèi)沒(méi)有接收到該終端發(fā)送的心跳報(bào)文,則將該終端的動(dòng)態(tài)發(fā)送項(xiàng)刪除,這樣可以在終端發(fā)生故障或者IP地址動(dòng)蕩時(shí),停止該終端的發(fā)送項(xiàng)中數(shù)據(jù)的繼續(xù)發(fā)送,從而減少網(wǎng)絡(luò)中的垃圾數(shù)據(jù)和不可回收的發(fā)送項(xiàng)。對(duì)于串口的參數(shù)配置和查詢等操作仍可以采用現(xiàn)有技術(shù)中的方式,即終端向串口服務(wù)器發(fā)送包含參數(shù)配置信息的指令,串口服務(wù)器利用該指令中的參數(shù)配置信息對(duì)串口進(jìn)行配置,其中,配置信息可以是串口的波特率信息、校驗(yàn)類型信息、數(shù)據(jù)位信息或停止位信息等;終端向串口發(fā)送包含查詢信息的指令,串口服務(wù)器利用該指令中的查詢信息對(duì)串口狀態(tài)進(jìn)行查詢,并返回給終端。以上是對(duì)本發(fā)明所提供方法進(jìn)行的描述,下面對(duì)本發(fā)明所提供的裝置進(jìn)行詳細(xì)描述。圖4為本發(fā)明實(shí)施例提供的串口數(shù)據(jù)的傳輸控制裝置的結(jié)構(gòu)圖,該裝置設(shè)置于串口服務(wù)器中,如圖4所示,該裝置可以包括列表存儲(chǔ)單元401、套接口402和主控制單元403。列表存儲(chǔ)單元401,用于存儲(chǔ)每個(gè)串口的數(shù)據(jù)發(fā)送列表。主控制單元403,用于在串口服務(wù)器啟動(dòng)后,將所有串口設(shè)置為打開(kāi)狀態(tài),并對(duì)所有數(shù)據(jù)操作進(jìn)行偵聽(tīng);預(yù)先在第一串口的數(shù)據(jù)發(fā)送列表中創(chuàng)建終端的發(fā)送項(xiàng),或者,通過(guò)套接口402接收到終端發(fā)送來(lái)的包含第一串口標(biāo)識(shí)的訂閱指令后,在第一串口標(biāo)識(shí)所對(duì)應(yīng)的第一串口的數(shù)據(jù)發(fā)送列表中創(chuàng)建該終端的發(fā)送項(xiàng);一旦偵聽(tīng)到對(duì)第一串口進(jìn)行數(shù)據(jù)操作,則將操作的數(shù)據(jù)送入第一串口的數(shù)據(jù)發(fā)送列表中的所有發(fā)送項(xiàng)中,將各發(fā)送項(xiàng)中的數(shù)據(jù)和該數(shù)據(jù)對(duì)應(yīng)的操作信息通過(guò)套接口402發(fā)送給各發(fā)送項(xiàng)對(duì)應(yīng)的終端。根據(jù)終端的讀操作需求和寫(xiě)操作需求的不同,可以存在以下兩種情況或者其組合其一、列表存儲(chǔ)單元401存儲(chǔ)的數(shù)據(jù)發(fā)送列表為讀數(shù)據(jù)發(fā)送列表。主控制單元403,通過(guò)套接口402接收到終端發(fā)送來(lái)的包含第一串口標(biāo)識(shí)的讀數(shù)據(jù)訂閱指令后,在第一串口的讀數(shù)據(jù)發(fā)送列表中創(chuàng)建終端的發(fā)送項(xiàng);一旦偵聽(tīng)到從第一串口讀取到數(shù)據(jù),則將從第一串口讀取的數(shù)據(jù)送入第一串口的讀數(shù)據(jù)發(fā)送列表中的所有發(fā)送項(xiàng)中,通過(guò)套接口402將第一串口的讀數(shù)據(jù)發(fā)送列表中各發(fā)送項(xiàng)中的數(shù)據(jù)和讀操作信息發(fā)送給各發(fā)送項(xiàng)對(duì)應(yīng)的終端。其二、列表存儲(chǔ)單元401存儲(chǔ)的數(shù)據(jù)發(fā)送列表為寫(xiě)數(shù)據(jù)發(fā)送列表。主控制單元403,通過(guò)套接口402接收到終端發(fā)送來(lái)的包含第一串口標(biāo)識(shí)的寫(xiě)數(shù)據(jù)訂閱指令后,在第一串口的寫(xiě)數(shù)據(jù)發(fā)送列表中創(chuàng)建終端的發(fā)送項(xiàng);一旦偵聽(tīng)到對(duì)第一串口寫(xiě)入數(shù)據(jù),則將述第一串口寫(xiě)入的數(shù)據(jù)送入第一串口的寫(xiě)數(shù)據(jù)發(fā)送列表中的所有發(fā)送項(xiàng)中,通過(guò)套接口402將第一串口的寫(xiě)數(shù)據(jù)發(fā)送列表中各發(fā)送項(xiàng)中的數(shù)據(jù)和寫(xiě)操作信息發(fā)送給各發(fā)送項(xiàng)對(duì)應(yīng)的終端。在以上兩種情況的基礎(chǔ)上,主控制單元403,還可以用于在串口服務(wù)器重啟后保留列表存儲(chǔ)單元401中所有靜態(tài)類型的發(fā)送項(xiàng),不保留列表存儲(chǔ)單元401中所有動(dòng)態(tài)類型的發(fā)送項(xiàng)。另外,該裝置還可以包括超時(shí)4全測(cè)單元404,用于4全測(cè)當(dāng)前距離主控制單元403最近一次接收到該終端的心跳報(bào)文的時(shí)間。主控制單元403,還用于在超時(shí)檢測(cè)單元4044全測(cè)到的時(shí)間超過(guò)預(yù)設(shè)的時(shí)間閾值時(shí),刪除列表存儲(chǔ)單元401中所有該終端的動(dòng)態(tài)類型的發(fā)送項(xiàng)。主控制單元403,還可以用于在對(duì)第一串口寫(xiě)入數(shù)據(jù)之前,將要寫(xiě)入第一串口的數(shù)據(jù)轉(zhuǎn)換為該數(shù)據(jù)的目的設(shè)備所支持的協(xié)議類型數(shù)據(jù)。通常終端在向串口寫(xiě)入數(shù)據(jù)時(shí),可以根據(jù)目的設(shè)備所使用的協(xié)議類型在數(shù)據(jù)中攜帶該協(xié)議類型的命令字,串口服務(wù)器的主控單元503可以根據(jù)該數(shù)據(jù)中攜帶的命令字將要寫(xiě)入串口的數(shù)據(jù)轉(zhuǎn)換為該數(shù)據(jù)的目的設(shè)備所支持的協(xié)議類型數(shù)據(jù)。由以上描述可以看出,本發(fā)明實(shí)施例提供的方法和裝置可以具有以下優(yōu)點(diǎn)1)本發(fā)明提供的方法和裝置中,串口服務(wù)器不再僅僅被動(dòng)地根據(jù)接收到的指令執(zhí)行相應(yīng)的串口操作,而是通過(guò)為每個(gè)串口創(chuàng)建數(shù)據(jù)發(fā)送列表,預(yù)先在串口的數(shù)據(jù)發(fā)送列表中創(chuàng)建終端的發(fā)送項(xiàng),或者,在接收到終端發(fā)送來(lái)的包含串口標(biāo)識(shí)的訂閱指令后,在該串口標(biāo)識(shí)所對(duì)應(yīng)的串口數(shù)據(jù)發(fā)送列表中創(chuàng)建該終端的發(fā)送項(xiàng);一旦偵聽(tīng)到對(duì)該串口進(jìn)行數(shù)據(jù)操作,則將操作的數(shù)據(jù)送入該串口的數(shù)據(jù)發(fā)送列表中的所有發(fā)送項(xiàng)中,將各發(fā)送項(xiàng)中的數(shù)據(jù)和該數(shù)據(jù)對(duì)應(yīng)的搡作信息發(fā)送給各發(fā)送項(xiàng)對(duì)應(yīng)的終端。使得訂閱了該串口操作的終端都能夠監(jiān)聽(tīng)到對(duì)該串口進(jìn)行的數(shù)據(jù)操作。2)本發(fā)明實(shí)施例中提供的方法中可以通過(guò)在一個(gè)串口的讀數(shù)據(jù)發(fā)送列12式,實(shí)現(xiàn)不同串口之間的數(shù)據(jù)分發(fā)和合并。3)通過(guò)對(duì)發(fā)送項(xiàng)類型進(jìn)行的區(qū)分,即可以保證靜態(tài)類型發(fā)送項(xiàng)對(duì)應(yīng)終少網(wǎng)絡(luò)中的垃圾數(shù)據(jù)和不可回收的發(fā)送項(xiàng)。4)在對(duì)串口寫(xiě)入數(shù)據(jù)之前增加了協(xié)議轉(zhuǎn)換功能,使得終端能夠?qū)κ褂貌煌瑓f(xié)議類型的其它設(shè)備進(jìn)行控制,具有碼轉(zhuǎn)換器的功能。5)在進(jìn)行遠(yuǎn)程數(shù)據(jù)傳輸時(shí),能夠?qū)崿F(xiàn)透明的數(shù)據(jù)傳輸通道。如圖5所示,控制設(shè)備和被控設(shè)備需要進(jìn)行遠(yuǎn)程數(shù)據(jù)傳輸時(shí),可以采用圖5所示的連接架構(gòu),在串口服務(wù)器1的串口1的讀數(shù)據(jù)發(fā)送列表中預(yù)先創(chuàng)建串口服務(wù)器2的端口l的發(fā)送項(xiàng),并在串口服務(wù)器2上配置從端口l接收到的數(shù)據(jù)寫(xiě)入串口2??刂圃O(shè)備向被控設(shè)備發(fā)送數(shù)據(jù)時(shí),串口服務(wù)器1將從串口1讀取到的數(shù)據(jù)送入串口服務(wù)器2的端口1的發(fā)送項(xiàng)中,然后將該數(shù)據(jù)從發(fā)送項(xiàng)發(fā)送到串口服務(wù)器2的端口1,串口服務(wù)器2再根據(jù)配置將該數(shù)據(jù)寫(xiě)入串口2,便可以實(shí)現(xiàn)將該數(shù)據(jù)發(fā)送至被控設(shè)備;從被控設(shè)備發(fā)送至控制設(shè)備的過(guò)程類似,從而實(shí)現(xiàn)了控制設(shè)備和被控設(shè)備之間的透明數(shù)據(jù)傳輸通道,例如,上述的控制設(shè)備可以為鍵盤,被控設(shè)備可以為攝像機(jī)。以上所述僅為本發(fā)明的較佳實(shí)施例而已,并不用以限制本發(fā)明,凡在本發(fā)明的精神和原則之內(nèi),所做的任何修改、等同替換、改進(jìn)等,均應(yīng)包含在本發(fā)明保護(hù)的范圍之內(nèi)。1權(quán)利要求1、一種串口數(shù)據(jù)的傳輸控制方法,其特征在于,為串口服務(wù)器的每個(gè)串口創(chuàng)建數(shù)據(jù)發(fā)送列表,串口服務(wù)器啟動(dòng)后,將所有串口設(shè)置為打開(kāi)狀態(tài),并對(duì)所有數(shù)據(jù)操作進(jìn)行偵聽(tīng);該方法包括預(yù)先在第一串口的數(shù)據(jù)發(fā)送列表中創(chuàng)建終端的發(fā)送項(xiàng);或者,串口服務(wù)器接收到所述終端發(fā)送來(lái)的包含第一串口標(biāo)識(shí)的訂閱指令后,在所述第一串口標(biāo)識(shí)所對(duì)應(yīng)的第一串口的數(shù)據(jù)發(fā)送列表中創(chuàng)建所述終端的發(fā)送項(xiàng);一旦偵聽(tīng)到對(duì)所述第一串口進(jìn)行數(shù)據(jù)操作,則將操作的數(shù)據(jù)送入所述第一串口的數(shù)據(jù)發(fā)送列表中的所有發(fā)送項(xiàng)中,將各發(fā)送項(xiàng)中的數(shù)據(jù)和該數(shù)據(jù)對(duì)應(yīng)的操作信息發(fā)送給各發(fā)送項(xiàng)對(duì)應(yīng)的終端。2、根據(jù)權(quán)利要求1所述的方法,其特征在于,所述數(shù)據(jù)發(fā)送列表為讀數(shù)據(jù)發(fā)送列表,所述訂閱指令為讀數(shù)據(jù)訂閱指令;或者,所述數(shù)據(jù)發(fā)送列表為寫(xiě)數(shù)據(jù)發(fā)送列表,所述訂閱指令為寫(xiě)數(shù)據(jù)訂閱指令。3、根據(jù)權(quán)利要求2所述的方法,其特征在于,一旦偵聽(tīng)到從所述第一串口讀取到數(shù)據(jù),則將從所述第一串口讀取的數(shù)據(jù)送入所述第一串口的讀數(shù)據(jù)發(fā)送列表中的所有發(fā)送項(xiàng)中,將所述第一串口的讀數(shù)據(jù)發(fā)送列表中各發(fā)送項(xiàng)中的數(shù)據(jù)和讀操作信息發(fā)送給各發(fā)送項(xiàng)對(duì)應(yīng)的終端;一旦偵聽(tīng)到對(duì)所述第一串口寫(xiě)入數(shù)據(jù),則將對(duì)所述第一串口寫(xiě)入的數(shù)據(jù)送入所述第一串口的寫(xiě)數(shù)據(jù)發(fā)送列表中的所有發(fā)送項(xiàng)中,將所述第一串口的寫(xiě)數(shù)據(jù)發(fā)送列表中各發(fā)送項(xiàng)中的數(shù)據(jù)和寫(xiě)操作信息發(fā)送給各發(fā)送項(xiàng)對(duì)應(yīng)的終端。4、根據(jù)權(quán)利要求2所述的方法,其特征在于,該方法還包括預(yù)先在第一串口的讀數(shù)據(jù)發(fā)送列表中創(chuàng)建第二串口的發(fā)送項(xiàng);一旦偵聽(tīng)到從所述第一串口讀取到數(shù)據(jù),則在所述將操作的數(shù)據(jù)送入所述第一串口的數(shù)據(jù)發(fā)送列表中的所有發(fā)送項(xiàng)中之后,還包括將所述第一串口的讀數(shù)據(jù)發(fā)送列表中第二串口的發(fā)送項(xiàng)中的數(shù)據(jù)寫(xiě)入所述第二串口。5、根據(jù)權(quán)利要求1至4任一權(quán)項(xiàng)所述的方法,其特征在于,所述發(fā)送項(xiàng)的類型為動(dòng)態(tài)類型或靜態(tài)類型;其中,動(dòng)態(tài)類型的發(fā)送項(xiàng)在所述串口服務(wù)器重啟后不存在,靜態(tài)類型的發(fā)送項(xiàng)在所述串口服務(wù)器重啟后仍保留。6、根據(jù)權(quán)利要求5所述的方法,其特征在于,該方法還包括所述終端以固定的時(shí)間間隔向所述串口服務(wù)器發(fā)送心跳報(bào)文,所述串口服務(wù)器在預(yù)設(shè)的時(shí)間間隔內(nèi)沒(méi)有接收到所述心跳報(bào)文,則刪除所有所述終端的動(dòng)態(tài)類型的發(fā)送項(xiàng)。7、根據(jù)權(quán)利要求3所述的方法,其特征在于,在對(duì)所述第一串口寫(xiě)入數(shù)據(jù)之前,所述串口服務(wù)器將要寫(xiě)入所述第一串口的數(shù)據(jù)轉(zhuǎn)換為該數(shù)據(jù)的目的設(shè)備所支持的協(xié)議類型數(shù)據(jù)。8、一種串口數(shù)據(jù)的傳輸控制裝置,其特征在于,該傳輸控制裝置設(shè)置于串口服務(wù)器中,該裝置包括列表存儲(chǔ)單元、主控制單元和套接口;所述列表存儲(chǔ)單元,用于存儲(chǔ)每個(gè)串口的數(shù)據(jù)發(fā)送列表;所述主控制單元,用于在所述串口服務(wù)器啟動(dòng)后,將所有串口設(shè)置為打開(kāi)狀態(tài),并對(duì)所有數(shù)據(jù)操作進(jìn)行偵聽(tīng);預(yù)先在第一串口的數(shù)據(jù)發(fā)送列表中創(chuàng)建終端的發(fā)送項(xiàng),或者,通過(guò)所述套接口接收到所述終端發(fā)送來(lái)的包含第一串口標(biāo)識(shí)的訂閱指令后,在所述第一串口標(biāo)識(shí)所對(duì)應(yīng)的第一串口的數(shù)據(jù)發(fā)送列表中創(chuàng)建所述終端的發(fā)送項(xiàng);一旦偵聽(tīng)到對(duì)所述第一串口進(jìn)行數(shù)據(jù)操作,則將操作的數(shù)據(jù)送入所述第一串口的數(shù)據(jù)發(fā)送列表中的所有發(fā)送項(xiàng)中,將各發(fā)送項(xiàng)中的數(shù)據(jù)和該數(shù)據(jù)對(duì)應(yīng)的操作信息通過(guò)所述套接口發(fā)送給各發(fā)送項(xiàng)對(duì)應(yīng)的終端。9、根據(jù)權(quán)利要求8所述的裝置,其特征在于,所述列表存儲(chǔ)單元存儲(chǔ)的數(shù)據(jù)發(fā)送列表為讀數(shù)據(jù)發(fā)送列表;所述主控制單元,通過(guò)所述套接口接收到終端發(fā)送來(lái)的包含第一串口標(biāo)識(shí)的讀數(shù)據(jù)訂閱指令后,在所述第一串口的讀數(shù)據(jù)發(fā)送列表中創(chuàng)建所述終端的發(fā)送項(xiàng);一旦偵聽(tīng)到從所述第一串口讀取到數(shù)據(jù),則將從所述第一串口讀取的數(shù)據(jù)送入所述第一串口的讀數(shù)據(jù)發(fā)送列表中的所有發(fā)送項(xiàng)中,通過(guò)所述套接口將所述第一串口的讀數(shù)據(jù)發(fā)送列表中各發(fā)送項(xiàng)中的數(shù)據(jù)和讀操作信息發(fā)送給各發(fā)送項(xiàng)對(duì)應(yīng)的終端。10、根據(jù)權(quán)利要求8所述的裝置,其特征在于,所述列表存儲(chǔ)單元存儲(chǔ)的數(shù)據(jù)發(fā)送列表為寫(xiě)數(shù)據(jù)發(fā)送列表;所述主控制單元,通過(guò)所述套接口接收到終端發(fā)送來(lái)的包含第一串口標(biāo)識(shí)的寫(xiě)數(shù)據(jù)訂閱指令后,在所述第一串口的寫(xiě)數(shù)據(jù)發(fā)送列表中創(chuàng)建所述終端的發(fā)送項(xiàng);一旦偵聽(tīng)到對(duì)所述第一串口寫(xiě)入數(shù)據(jù),則將對(duì)所述第一串口寫(xiě)入的數(shù)據(jù)送入所述第一串口的寫(xiě)數(shù)據(jù)發(fā)送列表中的所有發(fā)送項(xiàng)中,通過(guò)所述套接口將所述第一串口的寫(xiě)數(shù)據(jù)發(fā)送列表中各發(fā)送項(xiàng)中的數(shù)據(jù)和寫(xiě)操作信息發(fā)送給各發(fā)送項(xiàng)》于應(yīng)的纟冬端。11、根據(jù)權(quán)利要求8、9或10所述的裝置,其特征在于,所述主控制單元,還用于在所述串口服務(wù)器重啟后保留所述列表存儲(chǔ)單元中所有靜態(tài)類型的發(fā)送項(xiàng),不保留所述列表存儲(chǔ)單元中所有動(dòng)態(tài)類型的發(fā)送項(xiàng)。12、根據(jù)權(quán)利要求11所述的裝置,其特征在于,該裝置還包括超時(shí)檢測(cè)單元,用于檢測(cè)當(dāng)前距離所述主控制單元最近一次接收到所述終端的心跳報(bào)文的時(shí)間;所述主控制單元,還用于在所述超時(shí)檢測(cè)單元檢測(cè)到的時(shí)間超過(guò)預(yù)設(shè)的時(shí)間闊值時(shí),刪除所述列表存儲(chǔ)單元中所有所述終端的動(dòng)態(tài)類型的發(fā)送項(xiàng)。13、根據(jù)權(quán)利要求8、9或10所述的裝置,其特征在于,所述主控制單元,還用于在對(duì)所述第一串口寫(xiě)入數(shù)據(jù)之前,將要寫(xiě)入所述第一串口的數(shù)據(jù)轉(zhuǎn)換為該數(shù)據(jù)的目的設(shè)備所支持的協(xié)議類型數(shù)據(jù)。全文摘要本發(fā)明提供了一種串口數(shù)據(jù)的傳輸控制方法和裝置,為每個(gè)串口創(chuàng)建數(shù)據(jù)發(fā)送列表,串口服務(wù)器啟動(dòng)后,將所有串口設(shè)置為打開(kāi)狀態(tài),并對(duì)所有數(shù)據(jù)操作進(jìn)行偵聽(tīng);該方法包括預(yù)先在串口的數(shù)據(jù)發(fā)送列表中創(chuàng)建終端的發(fā)送項(xiàng);或者,串口服務(wù)器接收到終端發(fā)送來(lái)的包含串口標(biāo)識(shí)的訂閱指令后,在所述串口標(biāo)識(shí)所對(duì)應(yīng)的串口的數(shù)據(jù)發(fā)送列表中創(chuàng)建所述終端的發(fā)送項(xiàng);一旦偵聽(tīng)到對(duì)所述串口進(jìn)行數(shù)據(jù)操作,則將操作的數(shù)據(jù)送入所述串口的數(shù)據(jù)發(fā)送列表中的所有發(fā)送項(xiàng)中,將各發(fā)送項(xiàng)中的數(shù)據(jù)和該數(shù)據(jù)對(duì)應(yīng)的操作信息發(fā)送給各發(fā)送項(xiàng)對(duì)應(yīng)的終端。使得訂閱了該串口操作的終端都能夠監(jiān)聽(tīng)到對(duì)該串口進(jìn)行的數(shù)據(jù)操作。文檔編號(hào)H04L29/02GK101465839SQ200810225039公開(kāi)日2009年6月24日申請(qǐng)日期2008年10月24日優(yōu)先權(quán)日2008年10月24日發(fā)明者姚志宏,健申,肖可偉申請(qǐng)人:北京蛙視通信技術(shù)有限責(zé)任公司