專利名稱:在服務(wù)器上收發(fā)車載終端多種協(xié)議數(shù)據(jù)的方法及裝置的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及汽車電子領(lǐng)域,更具體地說,涉及一種在服務(wù)器上收發(fā)車載終端多種協(xié)議數(shù)據(jù)的方法及裝置。
背景技術(shù):
現(xiàn)在的汽車上裝載了許多的電子終端(或設(shè)備),這些終端通常用于取得汽車上各部分工作的狀態(tài)并在恰當(dāng)?shù)臅r(shí)候?qū)⑦@些狀態(tài)數(shù)據(jù)存儲(chǔ)并發(fā)送到后臺(tái)的服務(wù)器,以便于管理人員(通常是車隊(duì)或運(yùn)輸公司)監(jiān)測車輛的運(yùn)行情況。但是,這些安裝在車輛上的終端所采用的通信協(xié)議可能并不相同,也就是說,這些終端可能使用不同的協(xié)議進(jìn)行通信。這使得后臺(tái)服務(wù)器在接收這些終端的數(shù)據(jù)或?qū)?shù)據(jù)或指令發(fā)送到這些終端時(shí),可能需要占用多個(gè)傳輸通道或出現(xiàn)不能識(shí)別的問題。為了解決上述問題,在現(xiàn)有技術(shù)中,改進(jìn)的方法是設(shè)置所有的終端都發(fā)出同樣的傳輸協(xié)議的數(shù)據(jù),所有的終端也只接受這樣的格式的數(shù)據(jù)或指令。這種方法使得對(duì)終端的要求變得較高,增加了終端的成本,減少了終端的選擇余地。發(fā)明內(nèi)容
本發(fā)明要解決的技術(shù)問題在于,針對(duì)現(xiàn)有技術(shù)的上述終端的要求較高、成本較高的缺陷,提供一種對(duì)終端的要求較低、成本較低的在服務(wù)器上收發(fā)車載終端多種協(xié)議數(shù)據(jù)的方法及裝置。
本發(fā)明解決其技術(shù)問題所采用的技術(shù)方案是構(gòu)造一種在服務(wù)器上收發(fā)多種協(xié)議數(shù)據(jù)的方法,包括如下步驟A)接收終端設(shè)備發(fā)送的數(shù)據(jù)或檢查準(zhǔn)備發(fā)往終端設(shè)備的數(shù)據(jù),并取得其中的終端編號(hào) fn息;B)依據(jù)所述終端編號(hào),查找該終端在所述服務(wù)器上事先注冊(cè)的、其使用的協(xié)議信息;C)按照查找到的協(xié)議信息,將所述接收到的數(shù)據(jù)由所述終端使用的協(xié)議格式轉(zhuǎn)換為所述第一協(xié)議格式或?qū)⑺霭l(fā)往所述終端設(shè)備的數(shù)據(jù)由第一協(xié)議格式轉(zhuǎn)換為所述終端使用的協(xié)議格式;D)緩存所述已經(jīng)轉(zhuǎn)換的數(shù)據(jù),供所述服務(wù)器使用。
在本發(fā)明所述的在服務(wù)器上收發(fā)多種協(xié)議數(shù)據(jù)的方法,所述步驟A)進(jìn)一步包括 Al)判斷接收到的數(shù)據(jù)或準(zhǔn)備發(fā)送到所述終端設(shè)備的數(shù)據(jù)是否合法,如是,執(zhí)行下一步驟;否則,返回出錯(cuò)信息;A2)解析所述數(shù)據(jù),取得所述終端編號(hào)信息。
在本發(fā)明所述的在服務(wù)器上收發(fā)多種協(xié)議數(shù)據(jù)的方法,所述步驟Al)中使用正則表達(dá)式判斷所述數(shù)據(jù)是否合法。
在本發(fā)明所述的在服務(wù)器上收發(fā)多種協(xié)議數(shù)據(jù)的方法,所述正則表達(dá)式通過查找所述發(fā)送數(shù)據(jù)的終端設(shè)備或準(zhǔn)備將數(shù)據(jù)發(fā)送到的終端設(shè)備是否事先在所述服務(wù)器中注冊(cè)及注冊(cè)名稱是否相同判斷所述數(shù)據(jù)是否合法。
在本發(fā)明所述的在服務(wù)器上收發(fā)多種協(xié)議數(shù)據(jù)的方法,所述步驟B)進(jìn)一步包括如下步驟Bi)查找并取得所述終端設(shè)備使用的協(xié)議;B2)調(diào)用所述協(xié)議格式數(shù)據(jù)轉(zhuǎn)換為第一協(xié)議格式數(shù)據(jù)的協(xié)議轉(zhuǎn)換接口 ; B3)將所述數(shù)據(jù)轉(zhuǎn)換為第一協(xié)議格式或所述終端設(shè)備使用協(xié)議的格式。
在本發(fā)明所述的在服務(wù)器上收發(fā)多種協(xié)議數(shù)據(jù)的方法,所述第一協(xié)議的數(shù)據(jù)格式包括連續(xù)排列的包頭、包長、命令字、數(shù)據(jù)內(nèi)容及校驗(yàn)位,所述每個(gè)第一協(xié)議格式的數(shù)據(jù)包為等長數(shù)據(jù)包。
本發(fā)明還涉及一種實(shí)現(xiàn)上述方法的裝置,包括終端編號(hào)取得模塊用于接收終端設(shè)備發(fā)送的數(shù)據(jù)或檢查準(zhǔn)備發(fā)往終端設(shè)備的數(shù)據(jù), 并取得其中的終端編號(hào)信息;終端使用協(xié)議查找模塊用于依據(jù)所述終端編號(hào),查找該終端在所述服務(wù)器上事先注冊(cè)的、其使用的協(xié)議信息;數(shù)據(jù)格式轉(zhuǎn)換模塊用于按照查找到的協(xié)議信息,將所述接收到的數(shù)據(jù)由所述終端使用的協(xié)議格式轉(zhuǎn)換為所述第一協(xié)議格式或?qū)⑺霭l(fā)往所述終端設(shè)備的數(shù)據(jù)由第一協(xié)議格式轉(zhuǎn)換為所述終端使用的協(xié)議格式;數(shù)據(jù)使用模塊用于緩存所述已經(jīng)轉(zhuǎn)換的數(shù)據(jù),供所述服務(wù)器使用。
在本發(fā)明所述的裝置中,所述終端編號(hào)取得模塊進(jìn)一步包括數(shù)據(jù)合法判斷單元用于判斷接收到的數(shù)據(jù)或準(zhǔn)備發(fā)送到所述終端設(shè)備的數(shù)據(jù)是否合法;所述數(shù)據(jù)合法判斷單元通過正則表達(dá)式判斷所述數(shù)據(jù)是否合法; 終端編號(hào)取得單元用于解析所述數(shù)據(jù),取得所述終端編號(hào)信息。
在本發(fā)明所述的裝置中,所述數(shù)據(jù)格式轉(zhuǎn)換模塊進(jìn)一步包括 終端協(xié)議查找單元用于查找并取得所述終端設(shè)備使用的協(xié)議;協(xié)議轉(zhuǎn)換接口調(diào)用單元用于調(diào)用所述協(xié)議格式數(shù)據(jù)轉(zhuǎn)換為第一協(xié)議格式數(shù)據(jù)的協(xié)議轉(zhuǎn)換接口 ;轉(zhuǎn)換單元用于將所述數(shù)據(jù)轉(zhuǎn)換為第一協(xié)議格式或所述終端設(shè)備使用協(xié)議的格式。
在本發(fā)明所述的裝置中,所述轉(zhuǎn)換單元將終端發(fā)送的數(shù)據(jù)轉(zhuǎn)換為包括連續(xù)排列的包頭、包長、命令字、數(shù)據(jù)內(nèi)容及校驗(yàn)位的、等長的第一協(xié)議格式數(shù)據(jù)包。
實(shí)施本發(fā)明的在服務(wù)器上收發(fā)車載終端多種協(xié)議數(shù)據(jù)的方法及裝置,具有以下有益效果由于對(duì)終端發(fā)出或接收數(shù)據(jù)或指令的協(xié)議并沒有要求,相反,只是在服務(wù)器端對(duì)發(fā)送或接收的數(shù)據(jù)的協(xié)議格式進(jìn)行變換;同時(shí),服務(wù)器端還對(duì)數(shù)據(jù)是否合法進(jìn)行了判斷。因此,對(duì)于整個(gè)系統(tǒng)而言,其對(duì)終端的要求較低、整個(gè)系統(tǒng)的成本較低。
圖1是本發(fā)明在服務(wù)器上收發(fā)車載終端多種協(xié)議數(shù)據(jù)的方法及裝置實(shí)施例中方法的流程圖;圖2是所述實(shí)施例中服務(wù)器接收終端發(fā)送的數(shù)據(jù)的方法流程圖; 圖3是所述實(shí)施例中服務(wù)器發(fā)送數(shù)據(jù)到終端的方法流程圖; 圖4是所述實(shí)施例中裝置的結(jié)構(gòu)示意圖。具體實(shí)施例方式下面將結(jié)合附圖對(duì)本發(fā)明實(shí)施例作進(jìn)一步說明。如圖1所示,在本發(fā)明在服務(wù)器上收發(fā)車載終端多種協(xié)議數(shù)據(jù)的方法及裝置實(shí)施例中,其在服務(wù)器上收發(fā)車載終端多種協(xié)議數(shù)據(jù)的方法包括如下步驟
步驟Sll由接收的數(shù)據(jù)或準(zhǔn)備發(fā)送到終端的數(shù)據(jù)中取得該終端的編號(hào)在本實(shí)施例中,多個(gè)安裝在汽車上的終端設(shè)備(可能安裝在一臺(tái)或多臺(tái)汽車上)通過網(wǎng)絡(luò)(通常是無線網(wǎng)絡(luò))與一臺(tái)服務(wù)器連接,而這臺(tái)服務(wù)器又可以通過網(wǎng)絡(luò)與其他服務(wù)器連接;終端設(shè)備上的數(shù)據(jù)都是先發(fā)送到這臺(tái)服務(wù)器,然后視需要在轉(zhuǎn)發(fā)到其他服務(wù)器上或就在該服務(wù)器上處理、存儲(chǔ)等等;同樣地,其他服務(wù)器對(duì)終端設(shè)備發(fā)送的數(shù)據(jù)或指令也是先發(fā)送到這臺(tái)服務(wù)器上,再通過該臺(tái)服務(wù)器轉(zhuǎn)發(fā)到各終端設(shè)備上的。在各終端設(shè)備上,數(shù)據(jù)還是以該終端設(shè)備本身所使用的協(xié)議格式存在;而在上述服務(wù)器上,數(shù)據(jù)的處理及與其他服務(wù)器所進(jìn)行的數(shù)據(jù)交互,這些數(shù)據(jù)都是以第一協(xié)議的格式存在的。所以,在服務(wù)器接收到終端設(shè)備發(fā)送的數(shù)據(jù)后或發(fā)送數(shù)據(jù)或指令到終端設(shè)備之前,都需要對(duì)數(shù)據(jù)進(jìn)行格式轉(zhuǎn)換。對(duì)于服務(wù)器而言,接收時(shí)需要將數(shù)據(jù)由終端設(shè)備使用的格式轉(zhuǎn)換為第一協(xié)議格式,而發(fā)送視需要將數(shù)據(jù)或指令由第一協(xié)議格式轉(zhuǎn)換為終端設(shè)備使用的協(xié)議格式。在本步驟中,就是由這些接收或發(fā)送的數(shù)據(jù)中取得發(fā)送這些數(shù)據(jù)的終端設(shè)備或準(zhǔn)備將這些數(shù)據(jù)或指令發(fā)送到的終端設(shè)備的編號(hào)。終端設(shè)備編號(hào)存在于這些數(shù)據(jù)之中,本步驟的內(nèi)容就是將其取出。實(shí)際上,在每個(gè)終端設(shè)備與服務(wù)器初次連接時(shí),都會(huì)在服務(wù)器上進(jìn)行注冊(cè),由服務(wù)器分配設(shè)備編號(hào),同時(shí),服務(wù)器也會(huì)將注冊(cè)的內(nèi)容存儲(chǔ)起來。這些內(nèi)容包括終端設(shè)備編號(hào)、終端設(shè)備名稱、設(shè)備位置以及該終端設(shè)備使用的協(xié)議名稱等等。在本實(shí)施例中,本步驟可以進(jìn)一步細(xì)分為判斷接收到的數(shù)據(jù)或準(zhǔn)備發(fā)送到所述終端設(shè)備的數(shù)據(jù)是否合法,如是,執(zhí)行下一步驟;否則,返回出錯(cuò)信息; 如果數(shù)據(jù)合法,則解析所述數(shù)據(jù),取得所述終端編號(hào)信息。在本實(shí)施例中,使用正則表達(dá)式判斷數(shù)據(jù)是否合法。正則表達(dá)式通過查找所述發(fā)送數(shù)據(jù)的終端設(shè)備或準(zhǔn)備將數(shù)據(jù)發(fā)送到的終端設(shè)備是否事先在所述服務(wù)器中注冊(cè)及注冊(cè)名稱是否相同判斷所述數(shù)據(jù)是否合法。上述正則表達(dá)式在判斷中的運(yùn)用,使得上述判斷過程變得更為方便及快捷,可以節(jié)省查詢時(shí)間及系統(tǒng)的資源。步驟S12按照上述終端的編號(hào),查找該終端使用的協(xié)議類型在本步驟中,按照上述步驟中取得的終端設(shè)備編號(hào),查找其對(duì)應(yīng)的終端設(shè)備使用的協(xié)議名稱,進(jìn)而得到其協(xié)議類型。如果在本步驟中沒有查找的該編號(hào)的終端設(shè)備,則認(rèn)為該終端設(shè)備未在服務(wù)器注冊(cè),是非法設(shè)備,其數(shù)據(jù)也是非法數(shù)據(jù),服務(wù)器將會(huì)返回出錯(cuò)信息并退出;如果查找到該設(shè)備編號(hào)及其對(duì)應(yīng)的協(xié)議,則執(zhí)行下一步驟。在本實(shí)施例中,本步驟同樣可以被細(xì)分為三個(gè)步驟,分別是查找并取得終端設(shè)備使用的協(xié)議;調(diào)用將數(shù)據(jù)由終端設(shè)備使用協(xié)議的格式轉(zhuǎn)換為第一協(xié)議格式或由第一協(xié)議格式轉(zhuǎn)換為終端設(shè)備使用協(xié)議格式的協(xié)議轉(zhuǎn)換接口 ;將數(shù)據(jù)轉(zhuǎn)換為第一協(xié)議格式或終端設(shè)備使用協(xié)議的格式。步驟S13將上述數(shù)據(jù)由終端使用的協(xié)議格式轉(zhuǎn)換為第一協(xié)議格式或由第一協(xié)議格式轉(zhuǎn)換為終端使用的協(xié)議格式在本步驟中,進(jìn)行查找到的協(xié)議格式和第一協(xié)議格式的轉(zhuǎn)換。在上述服務(wù)器接收終端設(shè)備發(fā)送的數(shù)據(jù)時(shí),是將數(shù)據(jù)由終端設(shè)備使用的協(xié)議格式轉(zhuǎn)換為第一協(xié)議格式;而在服務(wù)器將其產(chǎn)生的或由別的服務(wù)器產(chǎn)生的數(shù)據(jù)或指令發(fā)送到某一終端設(shè)備時(shí),時(shí)間數(shù)據(jù)或指令由第一協(xié)議格式轉(zhuǎn)換為該終端設(shè)備所使用的協(xié)議格式。在本實(shí)施例中,這些動(dòng)作是通過調(diào)用對(duì)應(yīng)的協(xié)議轉(zhuǎn)換接口(或模塊)來實(shí)現(xiàn)的。步驟S14存儲(chǔ)轉(zhuǎn)換格式后的數(shù)據(jù),供服務(wù)器使用在本步驟中,將轉(zhuǎn)換后的數(shù)據(jù)或指令存儲(chǔ),通常是存儲(chǔ)在緩沖存儲(chǔ)器中,以便于服務(wù)器對(duì)其進(jìn)行進(jìn)一步的處理或?qū)⑵浒l(fā)送到終端設(shè)備。值得一提的是,在本實(shí)施例中,上述第一協(xié)議是將數(shù)據(jù)轉(zhuǎn)換為數(shù)據(jù)包,該數(shù)據(jù)包的數(shù)據(jù)格式包括連續(xù)排列的包頭、包長、命令字、數(shù)據(jù)內(nèi)容及校驗(yàn)位,每個(gè)第一協(xié)議格式的數(shù)據(jù)包為等長數(shù)據(jù)包。在本實(shí)施例中,具體來講,對(duì)于服務(wù)器而言,無非是接收安裝在汽車上的終端設(shè)備發(fā)送來的數(shù)據(jù)并使用這些數(shù)據(jù)(包括在服務(wù)器上使用和將該數(shù)據(jù)傳輸?shù)脚c該服務(wù)器連接的其他服務(wù)器上)和將服務(wù)器(包括該服務(wù)器或其他服務(wù)器)對(duì)某個(gè)終端發(fā)出的數(shù)據(jù)或指令發(fā)送到終端。這兩種情況在本實(shí)施例中基本上是相似的,但是也有一些細(xì)節(jié)上的不同。為此, 在本實(shí)施例中,將上述兩種情況分別描述。圖2是服務(wù)器接收終端發(fā)送的數(shù)據(jù)時(shí)的方法流程圖。在圖2中,該在服務(wù)器上收發(fā)車載終端多種協(xié)議數(shù)據(jù)的方法包括如下步驟
步驟S201接收終端發(fā)送的數(shù)據(jù)在本步驟中,終端設(shè)備向服務(wù)器發(fā)送數(shù)據(jù),而服務(wù)器接收這些數(shù)據(jù);在本實(shí)施例中,終端設(shè)備通過TCP通道或UDP通道向服務(wù)器發(fā)送請(qǐng)求及數(shù)據(jù)的。步驟S202查找數(shù)據(jù)對(duì)應(yīng)的終端編號(hào)在本步驟中,服務(wù)器在接收到的數(shù)據(jù)中查找發(fā)送這些數(shù)據(jù)的終端編號(hào)。如上所述,這些編號(hào)是終端設(shè)備初次與服務(wù)器連接并在服務(wù)器上注冊(cè)時(shí),由服務(wù)器分配的;終端設(shè)備的編號(hào)被通知到該終端并存儲(chǔ)在服務(wù)器內(nèi)。當(dāng)終端設(shè)備向服務(wù)器發(fā)送數(shù)據(jù)時(shí),在其發(fā)送的數(shù)據(jù)中包含有該編號(hào)的信息。本步驟中服務(wù)器取出上述數(shù)據(jù)中的編號(hào)信息。在本步驟中,如果沒有查找到上述編號(hào),則判斷發(fā)送數(shù)據(jù)的終端設(shè)備是非法連接的,其數(shù)據(jù)是非法數(shù)據(jù),所以,跳轉(zhuǎn)到步驟S210,服務(wù)器關(guān)閉與該終端設(shè)備連接的TCP或UDP通道并退出本次處理;如果查找到該終端設(shè)備的編號(hào),則說明該終端是合法的,其數(shù)據(jù)也是合法的,執(zhí)行下一步驟。步驟S203調(diào)用對(duì)應(yīng)的協(xié)議轉(zhuǎn)換接口轉(zhuǎn)換為第一協(xié)議格式由于在上述步驟中已經(jīng)查找到發(fā)送來數(shù)據(jù)的終端使用的協(xié)議,也就是說,已經(jīng)知道了當(dāng)前接收到的數(shù)據(jù)所使用的協(xié)議,而終端發(fā)送來的數(shù)據(jù)在服務(wù)器中進(jìn)行處理時(shí),需要使用第一協(xié)議格式。所以,在本步驟中,調(diào)用對(duì)應(yīng)的協(xié)議轉(zhuǎn)換接口,將上述接收的數(shù)據(jù)由終端設(shè)備使用的協(xié)議格式轉(zhuǎn)換為第一協(xié)議格式。這里所講的對(duì)應(yīng)的協(xié)議轉(zhuǎn)換接口實(shí)際上就是指由終端使用的協(xié)議格式轉(zhuǎn)換為第一協(xié)議格式的協(xié)議轉(zhuǎn)換接口。值得一提的是,在服務(wù)器上存在多個(gè)這樣的協(xié)議轉(zhuǎn)換接口,這些協(xié)議轉(zhuǎn)換接口分別將不同的協(xié)議格式數(shù)據(jù)轉(zhuǎn)換為第一協(xié)議格式。在查找到終端設(shè)備的編號(hào)并找到其協(xié)議時(shí),服務(wù)器將該協(xié)議格式轉(zhuǎn)換為第一協(xié)議格式的協(xié)議轉(zhuǎn)換接口調(diào)出,用于轉(zhuǎn)換當(dāng)前接收到的數(shù)據(jù)。步驟S204轉(zhuǎn)換后的第一協(xié)議數(shù)據(jù)寫入接收數(shù)據(jù)緩沖在本步驟中,將上述步驟中已經(jīng)轉(zhuǎn)換過的、成為第一協(xié)議格式的數(shù)據(jù)寫入接收數(shù)據(jù)緩沖,以備后面的步驟使用。步驟S205數(shù)據(jù)發(fā)送線程在本步驟中,服務(wù)器接受指令或其他服務(wù)器傳輸來的請(qǐng)求,將上述數(shù)據(jù)發(fā)送到其他服務(wù)器或其他應(yīng)用中,為此,服務(wù)器產(chǎn)生一個(gè)數(shù)據(jù)發(fā)送線程,將上述轉(zhuǎn)換后的數(shù)據(jù)發(fā)送出去。步驟S206服務(wù)器通訊發(fā)送數(shù)據(jù)在本步驟中,服務(wù)器實(shí)行上述數(shù)據(jù)發(fā)送線程,發(fā)送上述轉(zhuǎn)換后的數(shù)據(jù)。步驟S207消息發(fā)送是否成功?如是,執(zhí)行步驟S109 ;否則執(zhí)行步驟S108 在TCP 通訊中,如果對(duì)方接收到數(shù)據(jù),將會(huì)發(fā)送一個(gè)確認(rèn)信號(hào),接收到該確認(rèn)信號(hào)后,認(rèn)為數(shù)據(jù)(也就是消息)已發(fā)送成功,跳轉(zhuǎn)到步驟S209 ;否則,認(rèn)為數(shù)據(jù)沒有成功發(fā)送,執(zhí)行步驟S208.
步驟S208置入發(fā)送緩沖區(qū)等待下次發(fā)送在本步驟中,由于數(shù)據(jù)并沒有成功地傳輸?shù)桨l(fā)出請(qǐng)求的設(shè)備,所以,將轉(zhuǎn)換后的數(shù)據(jù)存入服務(wù)器的發(fā)送緩沖區(qū),等待下一次的發(fā)送。步驟S209結(jié)束在本步驟中,由于已經(jīng)發(fā)送了數(shù)據(jù),退出本次數(shù)據(jù)接收及傳輸, 并返回。步驟S210關(guān)閉此終端設(shè)備對(duì)應(yīng)的TCP (或UDP)連接并返回本步驟實(shí)際上是在步驟S202中發(fā)現(xiàn)數(shù)據(jù)時(shí)非法數(shù)據(jù)時(shí)執(zhí)行的,當(dāng)數(shù)據(jù)時(shí)非法數(shù)據(jù)時(shí),意味著該發(fā)送數(shù)據(jù)的終端設(shè)備也是非法的、沒有在服務(wù)器上注冊(cè)的,這樣的終端設(shè)備不能連接在服務(wù)器上,為此, 服務(wù)器關(guān)閉與該終端設(shè)備連接的TCP或UDP通道,退出本次連接,并返回。圖3是服務(wù)器發(fā)送數(shù)據(jù)或指令到相應(yīng)終端的方法流程圖。在圖3中,該在服務(wù)器上收發(fā)車載終端多種協(xié)議數(shù)據(jù)的方法包括如下步驟
步驟S301接收服務(wù)器消息在本步驟中,服務(wù)器接收消息,該消息可能是該服務(wù)器上不同的應(yīng)用發(fā)送來的,也可以是不同的服務(wù)器發(fā)送來的;消息中包括了要傳輸?shù)臄?shù)據(jù)以及要傳輸?shù)降慕K端設(shè)備編號(hào)。除了信源不同外,在本步驟中與步驟S201不同的是數(shù)據(jù)格式, 在本步驟中,這些數(shù)據(jù)格式是第一協(xié)議的數(shù)據(jù)格式,這是由于數(shù)據(jù)并不是來自終端設(shè)備,而是來自于服務(wù)器。步驟S302查詢對(duì)應(yīng)的終端設(shè)備編號(hào)在本步驟中,服務(wù)器在接收到的數(shù)據(jù)中查找這些數(shù)據(jù)目的終端(即數(shù)據(jù)要傳輸?shù)降慕K端)的終端編號(hào)。如上所述,這些編號(hào)是終端設(shè)備初次與服務(wù)器連接并在服務(wù)器上注冊(cè)時(shí),由服務(wù)器分配的;終端設(shè)備的編號(hào)被通知到該終端并存儲(chǔ)在服務(wù)器內(nèi)。本步驟中服務(wù)器取出上述數(shù)據(jù)中的目的終端的編號(hào)信息。如果沒有查找到上述編號(hào),則判斷數(shù)據(jù)的目的終端設(shè)備是非法連接的,其數(shù)據(jù)是非法數(shù)據(jù),所以, 跳轉(zhuǎn)到步驟S312,回復(fù)服務(wù)器發(fā)送數(shù)據(jù)失??;如果查找到該終端設(shè)備的編號(hào),則說明該終端是合法的,其數(shù)據(jù)也是合法的,執(zhí)行下一步驟。步驟S303查詢終端設(shè)備對(duì)應(yīng)的協(xié)議在本步驟中,按照目的終端的編號(hào),在服務(wù)器上查找到該終端使用的協(xié)議。步驟S304調(diào)用對(duì)應(yīng)的協(xié)議轉(zhuǎn)換接口對(duì)數(shù)據(jù)進(jìn)行轉(zhuǎn)換在本步驟中,基本與步驟 S203相似,不同之處是本步驟中的協(xié)議轉(zhuǎn)換接口是步驟S203中的協(xié)議轉(zhuǎn)換接口的逆變換, 在步驟S203中是將不同協(xié)議格式的數(shù)據(jù)轉(zhuǎn)換為第一協(xié)議格式的數(shù)據(jù);而在本實(shí)施中,是將第一協(xié)議格式的數(shù)據(jù)轉(zhuǎn)換為不同協(xié)議(當(dāng)然是與目的終端使用的協(xié)議一致)的數(shù)據(jù)。步驟S305查詢?cè)O(shè)備對(duì)應(yīng)的TCP通道在本步驟中,服務(wù)器查找與上述目的終端的 TCP連接,如果能夠找到,則執(zhí)行步驟S306 ;否則,跳轉(zhuǎn)到步驟S312。步驟S306轉(zhuǎn)換后的數(shù)據(jù)寫入發(fā)送數(shù)據(jù)緩沖在本步驟中,將上述步驟中已經(jīng)轉(zhuǎn)換過的、成為目的終端所使用協(xié)議格式的數(shù)據(jù)寫入接收數(shù)據(jù)緩沖,以備后面的步驟使用。步驟S307數(shù)據(jù)發(fā)送線程在本步驟中,服務(wù)器接受指令或其他服務(wù)器傳輸來的請(qǐng)求,開始將上述數(shù)據(jù)發(fā)送到目的終端,為此,服務(wù)器產(chǎn)生一個(gè)數(shù)據(jù)發(fā)送線程,將上述轉(zhuǎn)換后的數(shù)據(jù)發(fā)送出去。步驟S308調(diào)用設(shè)備對(duì)應(yīng)TCP 模塊在本步驟中,服務(wù)器實(shí)行上述數(shù)據(jù)發(fā)送線程,調(diào)用設(shè)備對(duì)應(yīng)TCP模塊對(duì)上述目的終端發(fā)送上述轉(zhuǎn)換后的數(shù)據(jù)。步驟S309消息發(fā)送是否成功?如是,執(zhí)行步驟S311 ;否則,執(zhí)行步驟S310 在 TCP通訊中,如果對(duì)方接收到數(shù)據(jù),將會(huì)發(fā)送一個(gè)確認(rèn)信號(hào),接收到該確認(rèn)信號(hào)后,認(rèn)為數(shù)據(jù) (也就是消息)已發(fā)送成功,執(zhí)行步驟S311 ;否則,認(rèn)為數(shù)據(jù)沒有成功發(fā)送,執(zhí)行步驟S310。步驟S310置入發(fā)送緩沖區(qū)等待下次發(fā)送在本步驟中,由于數(shù)據(jù)并沒有成功地傳輸?shù)侥康慕K端,所以,將轉(zhuǎn)換后的數(shù)據(jù)存入服務(wù)器的發(fā)送緩沖區(qū),等待下一次的發(fā)送。步驟S311結(jié)束在本步驟中,由于已經(jīng)發(fā)送了數(shù)據(jù),退出本次數(shù)據(jù)接收及傳輸, 并返回。步驟S312回復(fù)服務(wù)器發(fā)送消息失敗在本在步驟中,返回
在本實(shí)施例中,還涉及一種實(shí)現(xiàn)上述方法的裝置,其結(jié)構(gòu)如圖4所示。在圖4中,該裝置包括終端編號(hào)取得模塊41、終端使用協(xié)議查找模塊42、數(shù)據(jù)格式轉(zhuǎn)換模塊43和數(shù)據(jù)使用模塊44 ;其中終端編號(hào)取得模塊41用于接收終端設(shè)備發(fā)送的數(shù)據(jù)或檢查準(zhǔn)備發(fā)往終端設(shè)備的數(shù)據(jù),并取得其中的終端編號(hào)信息;終端使用協(xié)議查找模塊42用于依據(jù)所述終端編號(hào), 查找該終端在所述服務(wù)器上事先注冊(cè)的、其使用的協(xié)議信息;數(shù)據(jù)格式轉(zhuǎn)換模塊43用于按照查找到的協(xié)議信息,將所述接收到的數(shù)據(jù)由所述終端使用的協(xié)議格式轉(zhuǎn)換為所述第一協(xié)議格式或?qū)⑺霭l(fā)往所述終端設(shè)備的數(shù)據(jù)由第一協(xié)議格式轉(zhuǎn)換為所述終端使用的協(xié)議格式;數(shù)據(jù)使用模塊44用于緩存所述已經(jīng)轉(zhuǎn)換的數(shù)據(jù),供所述服務(wù)器使用。在本實(shí)施例中,終端編號(hào)取得模塊41進(jìn)一步包括數(shù)據(jù)合法判斷單元411用于判斷接收到的數(shù)據(jù)或準(zhǔn)備發(fā)送到所述終端設(shè)備的數(shù)據(jù)是否合法;而數(shù)據(jù)合法判斷單元411通過正則表達(dá)式判斷接收到的或?qū)⒁l(fā)送的數(shù)據(jù)是否合法;終端編號(hào)取得單元412用于解析上述數(shù)據(jù),取得發(fā)送數(shù)據(jù)或接收數(shù)據(jù)的終端編號(hào)信息。而數(shù)據(jù)格式轉(zhuǎn)換模塊43進(jìn)一步包括終端協(xié)議查找單元431用于查找并取得所述終端設(shè)備使用的協(xié)議;協(xié)議轉(zhuǎn)換接口調(diào)用單元432用于調(diào)用所述協(xié)議格式數(shù)據(jù)轉(zhuǎn)換為第一協(xié)議格式數(shù)據(jù)的協(xié)議轉(zhuǎn)換接口 ;轉(zhuǎn)換單元433用于將所述數(shù)據(jù)轉(zhuǎn)換為第一協(xié)議格式或所述終端設(shè)備使用協(xié)議的格式。第一協(xié)議格式是連續(xù)排列的包頭、包長、命令字、數(shù)據(jù)內(nèi)容及校驗(yàn)位的、等長的數(shù)據(jù)包。以上所述實(shí)施例僅表達(dá)了本發(fā)明的幾種實(shí)施方式,其描述較為具體和詳細(xì),但并不能因此而理解為對(duì)本發(fā)明專利范圍的限制。應(yīng)當(dāng)指出的是,對(duì)于本領(lǐng)域的普通技術(shù)人員來說,在不脫離本發(fā)明構(gòu)思的前提下,還可以做出若干變形和改進(jìn),這些都屬于本發(fā)明的保護(hù)范圍。因此,本發(fā)明專利的保護(hù)范圍應(yīng)以所附權(quán)利要求為準(zhǔn)。
權(quán)利要求
1.一種在服務(wù)器上收發(fā)多種協(xié)議數(shù)據(jù)的方法,其特征在于,包括如下步驟A)接收終端設(shè)備發(fā)送的數(shù)據(jù)或檢查準(zhǔn)備發(fā)往終端設(shè)備的數(shù)據(jù),并取得其中的終端編號(hào) fn息;B)依據(jù)所述終端編號(hào),查找該終端在所述服務(wù)器上事先注冊(cè)的、其使用的協(xié)議信息;C)按照查找到的協(xié)議信息,將所述接收到的數(shù)據(jù)由所述終端使用的協(xié)議格式轉(zhuǎn)換為所述第一協(xié)議格式或?qū)⑺霭l(fā)往所述終端設(shè)備的數(shù)據(jù)由第一協(xié)議格式轉(zhuǎn)換為所述終端使用的協(xié)議格式;D)緩存所述已經(jīng)轉(zhuǎn)換的數(shù)據(jù),供所述服務(wù)器使用。
2.根據(jù)權(quán)利要求1所述的在服務(wù)器上收發(fā)多種協(xié)議數(shù)據(jù)的方法,其特征在于,所述步驟A)進(jìn)一步包括Al)判斷接收到的數(shù)據(jù)或準(zhǔn)備發(fā)送到所述終端設(shè)備的數(shù)據(jù)是否合法,如是,執(zhí)行下一步驟;否則,返回出錯(cuò)信息;A2)解析所述數(shù)據(jù),取得所述終端編號(hào)信息。
3.根據(jù)權(quán)利要求2所述的在服務(wù)器上收發(fā)多種協(xié)議數(shù)據(jù)的方法,其特征在于,所述步驟Al)中使用正則表達(dá)式判斷所述數(shù)據(jù)是否合法。
4.根據(jù)權(quán)利要求3所述的在服務(wù)器上收發(fā)多種協(xié)議數(shù)據(jù)的方法,其特征在于,所述正則表達(dá)式通過查找所述發(fā)送數(shù)據(jù)的終端設(shè)備或準(zhǔn)備將數(shù)據(jù)發(fā)送到的終端設(shè)備是否事先在所述服務(wù)器中注冊(cè)及注冊(cè)名稱是否相同判斷所述數(shù)據(jù)是否合法。
5.根據(jù)權(quán)利要求4所述的在服務(wù)器上收發(fā)多種協(xié)議數(shù)據(jù)的方法,其特征在于,所述步驟B)進(jìn)一步包括如下步驟Bi)查找并取得所述終端設(shè)備使用的協(xié)議;B2)調(diào)用所述協(xié)議格式數(shù)據(jù)轉(zhuǎn)換為第一協(xié)議格式數(shù)據(jù)的協(xié)議轉(zhuǎn)換接口 ;B3)將所述數(shù)據(jù)轉(zhuǎn)換為第一協(xié)議格式或所述終端設(shè)備使用協(xié)議的格式。
6.根據(jù)權(quán)利要求5所述的在服務(wù)器上收發(fā)多種協(xié)議數(shù)據(jù)的方法,其特征在于,所述第一協(xié)議的數(shù)據(jù)格式包括連續(xù)排列的包頭、包長、命令字、數(shù)據(jù)內(nèi)容及校驗(yàn)位,所述每個(gè)第一協(xié)議格式的數(shù)據(jù)包為等長數(shù)據(jù)包。
7.一種實(shí)現(xiàn)如權(quán)利要求1所述在服務(wù)器上收發(fā)多種協(xié)議數(shù)據(jù)的方法的裝置,其特征在于,包括終端編號(hào)取得模塊用于接收終端設(shè)備發(fā)送的數(shù)據(jù)或檢查準(zhǔn)備發(fā)往終端設(shè)備的數(shù)據(jù), 并取得其中的終端編號(hào)信息;終端使用協(xié)議查找模塊用于依據(jù)所述終端編號(hào),查找該終端在所述服務(wù)器上事先注冊(cè)的、其使用的協(xié)議信息;數(shù)據(jù)格式轉(zhuǎn)換模塊用于按照查找到的協(xié)議信息,將所述接收到的數(shù)據(jù)由所述終端使用的協(xié)議格式轉(zhuǎn)換為所述第一協(xié)議格式或?qū)⑺霭l(fā)往所述終端設(shè)備的數(shù)據(jù)由第一協(xié)議格式轉(zhuǎn)換為所述終端使用的協(xié)議格式;數(shù)據(jù)使用模塊用于緩存所述已經(jīng)轉(zhuǎn)換的數(shù)據(jù),供所述服務(wù)器使用。
8.根據(jù)權(quán)利要求7所述的裝置,其特征在于,所述終端編號(hào)取得模塊進(jìn)一步包括數(shù)據(jù)合法判斷單元用于判斷接收到的數(shù)據(jù)或準(zhǔn)備發(fā)送到所述終端設(shè)備的數(shù)據(jù)是否合法;所述數(shù)據(jù)合法判斷單元通過正則表達(dá)式判斷所述數(shù)據(jù)是否合法;終端編號(hào)取得單元用于解析所述數(shù)據(jù),取得所述終端編號(hào)信息。
9.根據(jù)權(quán)利要求8所述的裝置,其特征在于,所述數(shù)據(jù)格式轉(zhuǎn)換模塊進(jìn)一步包括 終端協(xié)議查找單元用于查找并取得所述終端設(shè)備使用的協(xié)議;協(xié)議轉(zhuǎn)換接口調(diào)用單元用于調(diào)用所述協(xié)議格式數(shù)據(jù)轉(zhuǎn)換為第一協(xié)議格式數(shù)據(jù)的協(xié)議轉(zhuǎn)換接口 ;轉(zhuǎn)換單元用于將所述數(shù)據(jù)轉(zhuǎn)換為第一協(xié)議格式或所述終端設(shè)備使用協(xié)議的格式。
10.根據(jù)權(quán)利要求9所述的裝置,其特征在于,所述轉(zhuǎn)換單元將終端發(fā)送的數(shù)據(jù)轉(zhuǎn)換為包括連續(xù)排列的包頭、包長、命令字、數(shù)據(jù)內(nèi)容及校驗(yàn)位的、等長的第一協(xié)議格式數(shù)據(jù)包。
全文摘要
本發(fā)明涉及一種在服務(wù)器上收發(fā)多種協(xié)議數(shù)據(jù)的方法,包括如下步驟接收終端設(shè)備發(fā)送的數(shù)據(jù)或檢查準(zhǔn)備發(fā)往終端設(shè)備的數(shù)據(jù),并取得其中的終端編號(hào)信息;依據(jù)所述終端編號(hào),查找該終端在所述服務(wù)器上事先注冊(cè)的、其使用的協(xié)議信息;按照查找到的協(xié)議信息,將所述接收到的數(shù)據(jù)由所述終端使用的協(xié)議格式轉(zhuǎn)換為所述第一協(xié)議格式或?qū)⑺霭l(fā)往所述終端設(shè)備的數(shù)據(jù)由第一協(xié)議格式轉(zhuǎn)換為所述終端使用的協(xié)議格式;緩存所述已經(jīng)轉(zhuǎn)換的數(shù)據(jù),供所述服務(wù)器使用。本發(fā)明還涉及一種實(shí)現(xiàn)上述方法的裝置。實(shí)施本發(fā)明的在服務(wù)器上收發(fā)車載終端多種協(xié)議數(shù)據(jù)的方法及裝置,具有以下有益效果對(duì)終端的要求較低、整個(gè)系統(tǒng)的成本較低。
文檔編號(hào)H04L29/08GK102546827SQ20121004407
公開日2012年7月4日 申請(qǐng)日期2012年2月24日 優(yōu)先權(quán)日2012年2月24日
發(fā)明者尹太濤, 韓云龍 申請(qǐng)人:深圳市長宇電器有限公司