本發(fā)明涉及物聯(lián)網(wǎng)、互聯(lián)網(wǎng)技術(shù)領(lǐng)域,尤其涉及一種道路運(yùn)輸車輛衛(wèi)星定位系統(tǒng)終端通訊方法及裝置。
背景技術(shù):
今年來隨著物聯(lián)網(wǎng)、互聯(lián)網(wǎng)技術(shù)的發(fā)展,車聯(lián)網(wǎng)的商用日漸成熟,我國(guó)交通部專門制定了JT/T 808協(xié)議來促進(jìn)有序發(fā)展,不少物聯(lián)網(wǎng)廠商在處理道路運(yùn)輸車輛衛(wèi)星定位系統(tǒng)北斗兼容車載終端與監(jiān)管/監(jiān)控平臺(tái)之間的通信時(shí)選擇使用交通部制定的的JT/T 808-2011通信協(xié)議。每條消息由標(biāo)識(shí)位、消息頭、消息體和校驗(yàn)碼組成,如圖1所示,為現(xiàn)有技術(shù)JT/T 808-2011通信協(xié)議消息結(jié)構(gòu)圖。
標(biāo)識(shí)位采用0x7e表示,若校驗(yàn)碼、消息頭以及消息體中出現(xiàn)0x7e,則要進(jìn)行轉(zhuǎn)義處理,轉(zhuǎn)義規(guī)則定義如下:
0x7e<————>0x7d后緊跟一個(gè)0x02;
0x7d<————>0x7d后緊跟一個(gè)0x01。
轉(zhuǎn)義處理過程如下:
發(fā)送消息時(shí):消息封裝——>計(jì)算并填充校驗(yàn)碼——>轉(zhuǎn)義;
接收消息時(shí):轉(zhuǎn)義還原——>驗(yàn)證校驗(yàn)碼——>解析消息。
示例:發(fā)送一包內(nèi)容為0x30 0x7e 0x08 0x7d 0x55的數(shù)據(jù)包,則經(jīng)過封裝如下:0x7e 0x30 7d 0x02 0x08 0x7d 0x01 0x55 0x7e。
現(xiàn)有技術(shù)當(dāng)收到一個(gè)完整的JT/T 808消息后,整體對(duì)原始字節(jié)數(shù)組進(jìn)行轉(zhuǎn)義生成新的字節(jié)數(shù)據(jù)。遍歷查詢整個(gè)原始字節(jié)數(shù)組的每個(gè)字節(jié),將轉(zhuǎn)義字節(jié)0x7d 0x02還原為0x7e,將轉(zhuǎn)義字節(jié)0x7d 0x01還原為0x7d,重新生成一個(gè)將所有轉(zhuǎn)義字節(jié)還原后的新的字節(jié)數(shù)組,然后將原始字節(jié)數(shù)組廢棄,使用新的字節(jié)數(shù)組進(jìn)行后續(xù)驗(yàn)證及解析。
在實(shí)現(xiàn)本發(fā)明過程中,發(fā)明人發(fā)現(xiàn)現(xiàn)有技術(shù)中至少存在如下問題:現(xiàn)有技術(shù)在轉(zhuǎn)義還原的過程中,生成還原后的數(shù)據(jù)時(shí)需要占用額外的內(nèi)存。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明實(shí)施例提供一種道路運(yùn)輸車輛衛(wèi)星定位系統(tǒng)終端通訊方法及裝置,以減少解析消息過程中占用的內(nèi)存消耗。
一方面,本發(fā)明實(shí)施例提供了一種道路運(yùn)輸車輛衛(wèi)星定位系統(tǒng)終端通訊方法,所述方法包括:
接收一道路運(yùn)輸車輛衛(wèi)星定位系統(tǒng)終端的JT/T 808消息;
從所述JT/T 808消息的原始字節(jié)數(shù)組中讀取校驗(yàn)碼并解析消息;
在從所述JT/T 808消息的原始字節(jié)數(shù)組中讀取校驗(yàn)碼和解析消息的過程中,遇到轉(zhuǎn)義字節(jié)直接轉(zhuǎn)義。
另一方面,本發(fā)明實(shí)施例提供了一種道路運(yùn)輸車輛衛(wèi)星定位系統(tǒng)終端通訊裝置,所述裝置包括:
接收單元,用于接收一道路運(yùn)輸車輛衛(wèi)星定位系統(tǒng)終端的JT/T 808消息;
驗(yàn)證解析單元,用于從所述JT/T 808消息的原始字節(jié)數(shù)組中讀取校驗(yàn)碼并解析消息;
轉(zhuǎn)義單元,用于在從所述JT/T 808消息的原始字節(jié)數(shù)組中讀取校驗(yàn)碼和解析消息的過程中,遇到轉(zhuǎn)義字節(jié)直接轉(zhuǎn)義。
上述技術(shù)方案具有如下有益效果:接收消息后不首先對(duì)原始字節(jié)數(shù)組進(jìn)行整體轉(zhuǎn)義還原,再驗(yàn)證校驗(yàn)碼和解析消息,改成在從原始字節(jié)數(shù)組中讀取校驗(yàn)碼和解析消息的過程中,遇到轉(zhuǎn)義字節(jié)直接轉(zhuǎn)義。不重新生成去除了轉(zhuǎn)義的字節(jié)數(shù)組,減少了解析消息過程中占用的內(nèi)存消耗。
附圖說明
為了更清楚地說明本發(fā)明實(shí)施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對(duì)實(shí)施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡(jiǎn)單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實(shí)施例,對(duì)于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動(dòng)的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
圖1為現(xiàn)有技術(shù)JT/T 808-2011通信協(xié)議消息結(jié)構(gòu)圖;
圖2為本發(fā)明實(shí)施例一種道路運(yùn)輸車輛衛(wèi)星定位系統(tǒng)終端通訊方法流程圖;
圖3為本發(fā)明實(shí)施例一種道路運(yùn)輸車輛衛(wèi)星定位系統(tǒng)終端通訊裝置結(jié)構(gòu)示意圖。
具體實(shí)施方式
下面將結(jié)合本發(fā)明實(shí)施例中的附圖,對(duì)本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例僅僅是本發(fā)明一部分實(shí)施例,而不是全部的實(shí)施例?;诒景l(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒有做出創(chuàng)造性勞動(dòng)前提下所獲得的所有其他實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。
如圖2所示,為本發(fā)明實(shí)施例一種道路運(yùn)輸車輛衛(wèi)星定位系統(tǒng)終端通訊方法流程圖,所述方法包括:
201、接收一道路運(yùn)輸車輛衛(wèi)星定位系統(tǒng)終端的JT/T 808消息;
202、從所述JT/T 808消息的原始字節(jié)數(shù)組中讀取校驗(yàn)碼并解析消息;
203、在從所述JT/T 808消息的原始字節(jié)數(shù)組中讀取校驗(yàn)碼和解析消息的過程中,遇到轉(zhuǎn)義字節(jié)直接轉(zhuǎn)義。
優(yōu)選地,所述轉(zhuǎn)義字節(jié)為0x7d 0x02。
進(jìn)一步地,優(yōu)選地,所述遇到轉(zhuǎn)義字節(jié)直接轉(zhuǎn)義,包括:將轉(zhuǎn)義字節(jié)0x7d0x02還原為0x7e。
優(yōu)選地,所述轉(zhuǎn)義字節(jié)為0x7d 0x01。
進(jìn)一步地,優(yōu)選地,所述遇到轉(zhuǎn)義字節(jié)直接轉(zhuǎn)義,包括:將轉(zhuǎn)義字節(jié)0x7d0x01還原為0x7d。
對(duì)應(yīng)于上述方法實(shí)施例,如圖3所示,為本發(fā)明實(shí)施例一種道路運(yùn)輸車輛衛(wèi)星定位系統(tǒng)終端通訊裝置結(jié)構(gòu)示意圖,所述裝置包括:
接收單元31,用于接收一道路運(yùn)輸車輛衛(wèi)星定位系統(tǒng)終端的JT/T 808消息;
驗(yàn)證解析單元32,用于從所述JT/T 808消息的原始字節(jié)數(shù)組中讀取校驗(yàn)碼并解析消息;
轉(zhuǎn)義單元33,用于在從所述JT/T 808消息的原始字節(jié)數(shù)組中讀取校驗(yàn)碼和解析消息的過程中,遇到轉(zhuǎn)義字節(jié)直接轉(zhuǎn)義。
優(yōu)選地,所述轉(zhuǎn)義字節(jié)為0x7d 0x02。
進(jìn)一步地,優(yōu)選地,所述轉(zhuǎn)義單元33,具體用于將轉(zhuǎn)義字節(jié)0x7d 0x02還原為0x7e。
優(yōu)選地,所述轉(zhuǎn)義字節(jié)為0x7d 0x01。
進(jìn)一步地,優(yōu)選地,所述轉(zhuǎn)義單元33,具體用于將轉(zhuǎn)義字節(jié)0x7d 0x01還原為0x7d。
本發(fā)明實(shí)施例上述技術(shù)方案具有如下有益效果:接收消息后不首先對(duì)原始字節(jié)數(shù)組進(jìn)行整體轉(zhuǎn)義還原,再驗(yàn)證校驗(yàn)碼和解析消息,改成在從原始字節(jié)數(shù)組中讀取校驗(yàn)碼和解析消息的過程中,遇到轉(zhuǎn)義字節(jié)直接轉(zhuǎn)義。不重新生成去除了轉(zhuǎn)義的字節(jié)數(shù)組,減少了解析消息過程中占用的內(nèi)存消耗。
本發(fā)明實(shí)施例減少了解析消息過程中占用的內(nèi)存消耗。
在接收消息后不首先對(duì)原始字節(jié)數(shù)組進(jìn)行整體轉(zhuǎn)義還原,再驗(yàn)證校驗(yàn)碼和解析消息,改成在從原始字節(jié)數(shù)組中讀取校驗(yàn)碼和解析消息的過程中,遇到轉(zhuǎn)義字節(jié)直接轉(zhuǎn)義。不重新生成去除了轉(zhuǎn)義的字節(jié)數(shù)組。
現(xiàn)有技術(shù)的接收消息處理過程:轉(zhuǎn)義還原——>驗(yàn)證校驗(yàn)碼——>解析消息。
本發(fā)明實(shí)施例改進(jìn)的接收消息處理過程:驗(yàn)證校驗(yàn)碼(同時(shí)轉(zhuǎn)義還原)——>解析消息(同時(shí)轉(zhuǎn)義還原)。
改進(jìn)后的核心算法程序如下:
本發(fā)明實(shí)施例上述技術(shù)方案具有如下有益效果:接收消息后不首先對(duì)原始字節(jié)數(shù)組進(jìn)行整體轉(zhuǎn)義還原,再驗(yàn)證校驗(yàn)碼和解析消息,改成在從原始字節(jié)數(shù)組中讀取校驗(yàn)碼和解析消息的過程中,遇到轉(zhuǎn)義字節(jié)直接轉(zhuǎn)義。不重新生成去除了轉(zhuǎn)義的字節(jié)數(shù)組,減少了解析消息過程中占用的內(nèi)存消耗。
應(yīng)該明白,公開的過程中的步驟的特定順序或?qū)哟问鞘纠苑椒ǖ膶?shí)例?;谠O(shè)計(jì)偏好,應(yīng)該理解,過程中的步驟的特定順序或?qū)哟慰梢栽诓幻撾x本公開的保護(hù)范圍的情況下得到重新安排。所附的方法權(quán)利要求以示例性的順序給出了各種步驟的要素,并且不是要限于所述的特定順序或?qū)哟巍?/p>
在上述的詳細(xì)描述中,各種特征一起組合在單個(gè)的實(shí)施方案中,以簡(jiǎn)化本公開。不應(yīng)該將這種公開方法解釋為反映了這樣的意圖,即,所要求保護(hù)的主題的實(shí)施方案需要比清楚地在每個(gè)權(quán)利要求中所陳述的特征更多的特征。相反,如所附的權(quán)利要求書所反映的那樣,本發(fā)明處于比所公開的單個(gè)實(shí)施方案的全部特征少的狀態(tài)。因此,所附的權(quán)利要求書特此清楚地被并入詳細(xì)描述中,其中每項(xiàng)權(quán)利要求獨(dú)自作為本發(fā)明單獨(dú)的優(yōu)選實(shí)施方案。
為使本領(lǐng)域內(nèi)的任何技術(shù)人員能夠?qū)崿F(xiàn)或者使用本發(fā)明,上面對(duì)所公開實(shí)施例進(jìn)行了描述。對(duì)于本領(lǐng)域技術(shù)人員來說;這些實(shí)施例的各種修改方式都是顯而易見的,并且本文定義的一般原理也可以在不脫離本公開的精神和保護(hù)范圍的基礎(chǔ)上適用于其它實(shí)施例。因此,本公開并不限于本文給出的實(shí)施例,而是與本申請(qǐng)公開的原理和新穎性特征的最廣范圍相一致。
上文的描述包括一個(gè)或多個(gè)實(shí)施例的舉例。當(dāng)然,為了描述上述實(shí)施例而描述部件或方法的所有可能的結(jié)合是不可能的,但是本領(lǐng)域普通技術(shù)人員應(yīng)該認(rèn)識(shí)到,各個(gè)實(shí)施例可以做進(jìn)一步的組合和排列。因此,本文中描述的實(shí)施例旨在涵蓋落入所附權(quán)利要求書的保護(hù)范圍內(nèi)的所有這樣的改變、修改和變型。此外,就說明書或權(quán)利要求書中使用的術(shù)語“包含”,該詞的涵蓋方式類似于術(shù)語“包括”,就如同“包括,”在權(quán)利要求中用作銜接詞所解釋的那樣。此外,使用在權(quán)利要求書的說明書中的任何一個(gè)術(shù)語“或者”是要表示“非排它性的或者”。
本領(lǐng)域技術(shù)人員還可以了解到本發(fā)明實(shí)施例列出的各種說明性邏輯塊(illustrative logical block),單元,和步驟可以通過電子硬件、電腦軟件,或兩者的結(jié)合進(jìn)行實(shí)現(xiàn)。為清楚展示硬件和軟件的可替換性(interchangeability),上述的各種說明性部件(illustrative components),單元和步驟已經(jīng)通用地描述了它們的功能。這樣的功能是通過硬件還是軟件來實(shí)現(xiàn)取決于特定的應(yīng)用和整個(gè)系統(tǒng)的設(shè)計(jì)要求。本領(lǐng)域技術(shù)人員可以對(duì)于每種特定的應(yīng)用,可以使用各種方法實(shí)現(xiàn)所述的功能,但這種實(shí)現(xiàn)不應(yīng)被理解為超出本發(fā)明實(shí)施例保護(hù)的范圍。
本發(fā)明實(shí)施例中所描述的各種說明性的邏輯塊,或單元都可以通過通用處理器,數(shù)字信號(hào)處理器,專用集成電路(ASIC),現(xiàn)場(chǎng)可編程門陣列或其它可編程邏輯裝置,離散門或晶體管邏輯,離散硬件部件,或上述任何組合的設(shè)計(jì)來實(shí)現(xiàn)或操作所描述的功能。通用處理器可以為微處理器,可選地,該通用處理器也可以為任何傳統(tǒng)的處理器、控制器、微控制器或狀態(tài)機(jī)。處理器也可以通過計(jì)算裝置的組合來實(shí)現(xiàn),例如數(shù)字信號(hào)處理器和微處理器,多個(gè)微處理器,一個(gè)或多個(gè)微處理器聯(lián)合一個(gè)數(shù)字信號(hào)處理器核,或任何其它類似的配置來實(shí)現(xiàn)。
本發(fā)明實(shí)施例中所描述的方法或算法的步驟可以直接嵌入硬件、處理器執(zhí)行的軟件模塊、或者這兩者的結(jié)合。軟件模塊可以存儲(chǔ)于RAM存儲(chǔ)器、閃存、ROM存儲(chǔ)器、EPROM存儲(chǔ)器、EEPROM存儲(chǔ)器、寄存器、硬盤、可移動(dòng)磁盤、CD-ROM或本領(lǐng)域中其它任意形式的存儲(chǔ)媒介中。示例性地,存儲(chǔ)媒介可以與處理器連接,以使得處理器可以從存儲(chǔ)媒介中讀取信息,并可以向存儲(chǔ)媒介存寫信息??蛇x地,存儲(chǔ)媒介還可以集成到處理器中。處理器和存儲(chǔ)媒介可以設(shè)置于ASIC中,ASIC可以設(shè)置于用戶終端中??蛇x地,處理器和存儲(chǔ)媒介也可以設(shè)置于用戶終端中的不同的部件中。
在一個(gè)或多個(gè)示例性的設(shè)計(jì)中,本發(fā)明實(shí)施例所描述的上述功能可以在硬件、軟件、固件或這三者的任意組合來實(shí)現(xiàn)。如果在軟件中實(shí)現(xiàn),這些功能可以存儲(chǔ)與電腦可讀的媒介上,或以一個(gè)或多個(gè)指令或代碼形式傳輸于電腦可讀的媒介上。電腦可讀媒介包括電腦存儲(chǔ)媒介和便于使得讓電腦程序從一個(gè)地方轉(zhuǎn)移到其它地方的通信媒介。存儲(chǔ)媒介可以是任何通用或特殊電腦可以接入訪問的可用媒體。例如,這樣的電腦可讀媒體可以包括但不限于RAM、ROM、EEPROM、CD-ROM或其它光盤存儲(chǔ)、磁盤存儲(chǔ)或其它磁性存儲(chǔ)裝置,或其它任何可以用于承載或存儲(chǔ)以指令或數(shù)據(jù)結(jié)構(gòu)和其它可被通用或特殊電腦、或通用或特殊處理器讀取形式的程序代碼的媒介。此外,任何連接都可以被適當(dāng)?shù)囟x為電腦可讀媒介,例如,如果軟件是從一個(gè)網(wǎng)站站點(diǎn)、服務(wù)器或其它遠(yuǎn)程資源通過一個(gè)同軸電纜、光纖電纜、雙絞線、數(shù)字用戶線(DSL)或以例如紅外、無線和微波等無線方式傳輸?shù)囊脖话谒x的電腦可讀媒介中。所述的碟片(disk)和磁盤(disc)包括壓縮磁盤、鐳射盤、光盤、DVD、軟盤和藍(lán)光光盤,磁盤通常以磁性復(fù)制數(shù)據(jù),而碟片通常以激光進(jìn)行光學(xué)復(fù)制數(shù)據(jù)。上述的組合也可以包含在電腦可讀媒介中。
以上所述的具體實(shí)施方式,對(duì)本發(fā)明的目的、技術(shù)方案和有益效果進(jìn)行了進(jìn)一步詳細(xì)說明,所應(yīng)理解的是,以上所述僅為本發(fā)明的具體實(shí)施方式而已,并不用于限定本發(fā)明的保護(hù)范圍,凡在本發(fā)明的精神和原則之內(nèi),所做的任何修改、等同替換、改進(jìn)等,均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。