c語言jt808協議庫,平臺如何應答——關于JT/T808協議

前兩篇也說明了一些應答的相關內容,對于剛接觸的開發者來說恐怕還是不太容易理解,這里專門列舉一個篇幅來講解如何針對終端設備上報的信息進行應答。

嚴格來講,如果不應答,終端設備會判別為服務平臺斷開連接,就會重復發送相同的信息直到平臺應答。

應答有兩種:注冊應答和通用應答。

注冊應答

顧名思義,注冊應答是指在設備初次連接平臺時會發送注冊信息,消息id一般為:0x0100具體參考部標協議截圖如下:

1460000020980538

(圖一)

應答的消息id為:0x8100具體參考部標協議截圖如下:

1460000020980539

(圖二)

值得一提是,上圖的內容其實不夠全面,完整的應答格式應該包含部標協議中的消息頭,消息頭必須存在于每一條消息中,不管是終端發給平臺還是平臺發給終端,都必須包含消息頭。

舉例,如果平臺收到一條終端發來的注冊消息如下:

7e0100002c01918051355000110000000037303131325345472d39383838470000000000000000000000303531333535300130353133353530167e

我們該怎么來分析這條消息呢,首先,挑出消息標示,也就是首尾的7e。0100002c0191805135500011這一段是消息頭,標準的字符串長度是:4(消息ID)+4(消息體屬性)+12(終端手機號)+4(消息流水號)=24個字符,12個字節。拆分一下就是這樣:0100`002c0191805135500011`

剩下的就是終端注冊時攜帶的具體內容,可以參考(圖一)去分拆消息。

如何應答這條消息呢?其實也是比較簡單的,消息頭可以直接復用,也就是把終端發送來的消息頭直接截取出來使用,加上圖二中的信息然后加上校驗碼,首位拼接上7e即可。

應答流水號:可以直接為0000

結果:如果設備號存在于平臺則應答:00或者03如果設備號不存在或者平臺不允許不存在于平臺數據庫的設備連接則映帶04或者選擇不應答。具體看需求策略。

鑒權碼:當應答結果為03時無需填寫,01時填寫,設備接收后會保存,下次注冊時攜帶。

綜合下來就是這樣:7e`810000030191805135500001001103b5`7e

需要注意的有兩點:

1 .在封裝完消息后,還未拼接首位的7e時要對消息進行一次轉義,具體就是把消息中所有的7e替換為7d02

所有的7d替換為7d01

1460000020980540

2.所有的消息發送完畢后服務端不要立即關閉連接(server->close()),這其實是個常識為題,obd為長連接狀態,關閉后obd會不停觸發注冊信息。

平臺通用應答(0x8001)

這個在上篇中已經說的比較詳細了。相比上面的注冊應答,通用應答更為簡單,在理解了注冊應答后再開看通用應答無非是應答id要隨著終端上報的消息id而改變,應該的結果為:00其他的沒有什么區別。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/532226.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/532226.shtml
英文地址,請注明出處:http://en.pswp.cn/news/532226.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

熊貓的python小課賬號_學習python中的pandas有沒有好的教程推薦?

之前好多人私信我python數據分析怎么快速入門,我在這里直接介紹一下自己的心得經驗吧。 要學習pandas,我并不建議看大量的教程,等看完教程,天都黑了,一覺醒來熱情都涼了。 我的建議是,首先放平心態&#xf…

rssi定位算法 c語言,【論文※】An RSSI Gradient-based AP Localization Algorithm 基于RSSI梯度的AP定位算法...

摘要:Recent rapid rise of indoor location based services for smartphones has further increased the importance of precise localization of Wi-Fi Access Point(AP).However,most existing AP localization algorithms either exhibit high errors or need s…

arm體系結構與編程_教程:如何學習嵌入式系統(基于ARM平臺)

一、嵌入式系統的概念 著重理解“嵌入”的概念 主要從三個方面上來理解。 1、從硬件上,將基于CPU的處圍器件,整合到CPU芯片內部,比如早期基于X86體系結構下的計算機,CPU只是有運算器和累加器的功能,一切芯片要造外部…

ubuntu nfs linux,Ubuntu的NFS功能配置

環境:Ubuntu 10.04步驟:1.sudo apt-get install portmap2.sudo apt-get install nfs-kernel-server注意:第2步我安裝失敗,換源后仍然如此,最后我在新立得里面搜索到nfs-kernel-server,安裝成功3.在更目錄下新建共享目錄:mkdir /forlinux4.gedit /etc/exprots,在后面添加/forlin…

python import 路徑_python import 上級目錄的導入

python import 上級目錄的導入,路徑,上級,文件,目錄,遞歸 python import 上級目錄的導入 易采站長站,站長之家為您整理了python import 上級目錄的導入的相關內容。 有時候我們可能需要import另一個路徑下的python文件,例如下面這個目錄結構,…

一個android工程生成兩個aar,android studio生成aar包并在其他工程引用aar包(示例代碼)...

1.aar包是android studio下打包android工程中src、res、lib后生成的aar文件,aar包導入其他android studio 工程后,其他工程可以方便引用源碼和資源文件2.生成aar包步驟:①.用android studio打開一個工程,然后新建一個Module&#…

python設計一個動物類_我用Python實現了12500張貓狗圖像的精準分類

我用 Python 實現了 12500 張貓狗圖像的精準分類 在這篇文章中,我們將展示如何建立一個深度神經網 絡,能做到以 90% 的精度來對圖像進行分類,而在深度神 經網絡,特別是卷積神經網絡興起之前,這還是一個非常困 難的問題…

android 尺寸變化動畫,Android ScaleAnimation類:尺寸變化動畫類

ScaleAnimation類是Android系統中的尺寸變化動畫類,用于控制View對象的尺寸變化,該類繼承于Animation類。 ScaleAnimation類中的很多方法都與Animation類一致,該類中最常用的方法便是ScaleAnimation構造方法。【基本語法】public ScaleAnimat…

javascript 本地對象和內置對象_詳解 JavaScript 面向對象

1. 概述JavaScript面向對象比較難理解的點是類的繼承。不管是es5寫法還是es6寫法,JavaScript繼承的本質是原型鏈。具體可看我的上一篇文章:田浩:詳解原型、原型鏈、構造函、實例、new?zhuanlan.zhihu.com因為es6有專門的語法,寫法…

android wifi設備連接通信,通過wifi與設備進行通信(Android)

通過wifi與設備進行通信(Android)[復制鏈接]本帖最后由 灞波兒奔 于 2019-2-17 21:40 編輯通過wifi與設備進行通信(Android)最近leader決定把app與設備之間的通信改為wifi,通過http協議實現設備之間的通信。相對與之前的藍牙通信,的確簡單不少&#xff0…

工作匯報ppt案例_【贈書】開工大吉!今年一定要干過寫PPT的!

不知不覺,春節就過去了,新年開工,朋友圈里曬滿了開工紅包,領了開工禮就意味著真正新的一年開始了。雖然假期的慵懶安逸留下了倦怠的后遺癥,但狀態依舊切換到工作模式,畢竟每年都希望能比過去更進一步&#…

android webview 長按復制,Android webview 點擊或長按有蒙層 – 熱愛改變生活

Android 使用 webview 加載本地 html,在本地 html 上面點擊的時候會有一層橙色的蒙層,使用下面的代碼可以去掉。body, div, dl, dt, dd, ul, ol, li, h1, h2, h3, h4, h5, h6, pre, code, form, fieldset, legend, input, button, textarea, p, blockquo…

postscript打印機什么意思_漲知識|你不知道的關于打印機的打印過程和打印機驅動的那些事...

以前一直以為打印很簡單,不就是編輯好文件按個“打印”就行了?但其實打印過程可以復雜到你分分鐘“懷疑人生”。你以為的打印過程可能是這樣的 ↓。我們看到的打印過程然而,真正的打印過程是這樣的 ↓。實際上的打印過程打印機打印一頁文件或…

python dicom圖像分割_python讀取DICOM頭文件的實例

這篇文章主要介紹了關于python 讀取DICOM頭文件的實例,有著一定的參考價值,現在分享給大家,有需要的朋友可以參考一下 用dicompyler軟件打開dicom圖像,頭文件如圖所示:當然也可以直接讀取: ds dicom.read_…

索尼android電視圖片輪播,電視投屏居然還能這樣玩?

原標題:電視投屏居然還能這樣玩?現如今,投屏幾乎成為大家日常生活必不可少的一種觀影方式,通過電視投屏可以帶來更清晰的畫面效果,成為追劇黨以及各類球賽愛好者的不二之選。那么今天小智就以索尼電視為例,…

python源碼多平臺編譯_提升Python程序運行效率的6個方法

Python是一個很酷的語言,因為你可以在很短的時間內利用很少的代碼做很多事情。不僅如此,它還能輕松地支持多任務,比如多進程等。Python批評者有時會說Python執行緩慢。本文將嘗試介紹6個技巧,可加速你的Python應用程序。 1.讓關鍵…

android 高并發彈幕,高并發實時直播彈幕研發實踐

高并發實時直播彈幕研發實踐直播間特點聊天室限制人數的原因應對萬級以上的實時互動跨服務器是為了解決單一服務器接入數量限制、發布消息吞吐限制等問題;多進程并發則是為了充分利用多核CPU以及減小一個循環規模從而達到降低延遲的目的。云巴實時系統的設計云巴是基…

linux python3_在Linux上安裝Python 3

在Linux上安裝Python 3這份文檔描述了如何在Ubuntu Linux機器上安裝Python 3.6。 想要獲取已安裝的Python 3版本號,可以通過終端運行命令: $ python3 --version 如果您使用的是Ubuntu 16.10或更新,可以通過以下命令簡單地安裝Python 3.6: $ s…

android手機電話鈴聲設置,安卓手機鈴聲怎么設置

網上有很多安卓手機鈴聲的設置教程,說什么SD卡里建立這個那個的文件夾,那問題是怎么才能進到SD卡里去建立文件夾啊?手機里哪個選項里進去呢?這里小編告訴你,可以通過電腦連接數據線管理SD卡。下面介紹兩種簡單的設置安…

安裝squid_「首席推薦」設置Squid轉發代理或者正向代理

如果您正在閱讀這篇文章,您可能會因為缺少與Squid相關的信息而感到沮喪,Squid是一種非常流行的轉發代理。這些令人沮喪的事情包括:在小的軟件修訂之后出現的重大的可用性變化,對幕后發生的事情的誤解,以及真正糟糕的文檔。這是一個…