買一套現成的車隊系統,通常只能用廠商指定的車機。我們為永汎開發的車隊平台選擇自建車機資料接收伺服器,同時串接了兩種車機:JT808 協定車機,以及會把軌跡回傳給主管機關的環保車機。這篇整理串接時最容易踩到的細節。

為什麼要自建接收伺服器

車機本身只負責定時把位置傳出去,傳到哪裡、怎麼解讀,要由伺服器決定。自建接收伺服器的好處是:不同廠牌、不同協定的車機,都能整理成同一種格式,進到同一套地圖、派工和報表裡;換車機或加新協定時,前面的系統不用改。

JT808:封包格式要先處理好

JT/T 808 是很常見的車機通訊協定。解析資料之前,有三件事一定要做對,否則會出現「大部分封包正常、偶爾解不出來」這種很難查的問題。

1. 標識位與跳脫

每個封包的開頭和結尾都是 0x7e。如果封包內容(訊息頭、訊息體、校驗碼)裡剛好也出現 0x7e,就必須跳脫,不然會被誤判成封包結束:

處理順序很重要:

例如內容是 0x30 0x7e 0x08 0x7d 0x55,送出去會變成 0x7e 0x30 0x7d 0x02 0x08 0x7d 0x01 0x55 0x7e。

2. 校驗碼

校驗碼佔一個位元組,算法是從訊息頭開始,逐一和下一個位元組做 XOR,一直算到校驗碼前一個位元組為止。要記得是在還原跳脫之後才驗證。

3. 每個訊息都要回應

JT808 規定所有封包都要有回應。如果某個指令有指定專用的回應訊息,就用專用的;沒有的話,平台用通用回應 0x8001,車機用通用回應 0x0001。平台如果漏回,有些車機會一直重送同一筆資料。

另外,訊息屬性裡的第 10 到 12 位元是加密標識:三個位元都是 0 代表沒有加密,第 10 位元為 1 代表訊息體用 RSA 加密。接收端要先看這幾個位元,再決定怎麼解析。

環保車機:回應格式和設定方式

有些車輛依規定要裝環保車機,把軌跡回傳給主管機關。我們串接的這款環保車機用的是文字格式的協定。

伺服器要回什麼

車機送出軌跡資料後,伺服器要回應:

$,<車機編號><日期時間>,#

日期時間的格式是年月日時分秒(14 碼)。如果資料裡含有條碼,還要多回一行:

$,<車機編號>,<條碼內容>,<日期時間>,#

設定指令

車機可以透過 RS-232 終端機設定(38400 bps、8 個資料位元、無同位元、1 個停止位元)。常用的指令:

行動網路的 APN 則是透過簡訊設定,格式是 $gprs,<APN>,,。這裡有個坑:做法是先用原本能連線的 SIM 卡連上伺服器,傳簡訊改 APN,再換成新的 SIM 卡。如果新卡測試失敗,就改不回去了,所以換卡前一定要先確認新卡的 APN 正確。

看燈號判斷問題

常見狀況:電源燈熄滅或閃爍,先檢查主電源線(紅色);電源和 GPS 都恆亮,代表還沒定位,檢查 GPS 天線有沒有鎖緊;GSM 四秒快閃一次、狀態燈一直恆亮,代表連不上伺服器,可以重新插拔電源。

接線

接線時最重要的是:1 號紅線接電瓶正極、2 號黑線接負極(搭鐵)、6 號橘線接 ACC(電門開關)、8 號綠線接 SOS 緊急按鈕,其餘是數位輸入/輸出和類比輸入,依需求使用。

把資料拋轉給主管機關

環保車機的軌跡除了顯示在我們的平台上,也要依規定拋轉到主管機關。我們在接收伺服器這一層處理,讓業者用同一套系統,同時滿足日常營運和法規需求,不必另外維護一套。

給要自建接收伺服器的人:先把封包跳脫、校驗碼和通用回應做對,再談功能。這三件事做錯,問題通常不會馬上出現,而是在車機變多、資料量變大之後才偶爾冒出來,那時候最難查。

如果你手上的車機要接到自己的系統,或想評估其他廠牌車機能不能串,歡迎跟我們聊聊。也可以參考車隊 GPS/影像管理系統。

跟我們聊聊