閒話少說,直接正題:最近在弄jt809協議的車輛資訊註冊模組,一共也沒幾行**,但是搞了一天半才搞出來,下面就來說下我遇到的問題,如果大家遇到了類似的,可以參考下
首先:按照協議中要求的格式拼接訊息體,其他部分這裡就不贅述了,,我還有篇帖子是講車輛定位資訊上傳的,有興趣的可以去看下,繼續說本次的問題。
上傳車輛註冊資訊的協議要求如下:
車牌號,顏色,自業務型別,就不多說了,
說下這個plateform_id,要求是長度位11的byte陣列,實際上就是你拿乙個字串,直接getbytes(),如果長度不夠11,就直接在前面的位數上填0x00,
如果你是長度為11的字串,那麼直接getbytes()即可,這個平台唯一編碼並不是接入碼,而是類似於你自己平台對這個裝置的唯一id,
producer_id也是一樣的,
重點就terminal_model_type,這是乙個大坑,我就是按照協議中要求的(我還看了兩份協議,這裡都是一樣的)長度為7的byte陣列,但是拼出來的報文就是過不去測試
卡了很久,無意間發現,這個長度描述的有問題,這個欄位的長度應該是20而不是協議中描述的8。
這個用的是20,那麼data_length就不再是49 ,而是61,整個訊息體的長度就不是77而是89
到此我問題就解決了,重點就在於文件中描述的長度和實際使用的長度不一致
真是坑人。。。浪費了我很多時間,以此警示一下