Android連接OBDII讀取vin

VIN

是英文Vehicle Identification Number(車輛識別碼)的縮寫芭届。因為SAE標準規(guī)定:VIN碼由17位字符組成图呢,所以俗稱十七位碼褐桌。它包含了車輛的生產(chǎn)廠家照雁、年代秋泄、車型、車身型式及代碼夭拌、發(fā)動機代> 碼及組裝地點等信息呀洲。正確解讀VIN碼,對于我們正確地識別車型啼止,以致進行正確地診斷和維修都是十分重要的。

OBDII

OBDII(the Second On—Board Diagnostics), 兵罢,美國汽車工程師協(xié)會(SAE献烦,Society of Automotive Engineers)1988年制定了OBD-II標準。OBDII實行標準的檢測程序卖词,并且具有嚴格的排放針對>》> 性巩那,用于實時監(jiān)測汽車尾氣排放情況。

源碼分析用到的開源項目:

android-obd-reader

AutoApp

obd-java-api

工具:obd2開發(fā)板一套此蜈,這個使用到的開發(fā)板


IMG_20170731_142417.jpg

整個硬件連接比較簡單即横,間標準的elm327連接到開發(fā)版,打開手機藍牙配對裆赵,密碼1234东囚,用調(diào)試工具即可在android上和obd設(shè)備進行通信

比較郁悶的是連接手機后讀取到的vin竟然是亂碼!

超級截屏_20170727_155113.png

我想新的開發(fā)版战授,不應該有問題吧页藻,于是,斷點進入源碼進行調(diào)試植兰,發(fā)現(xiàn)原始的16進制數(shù)據(jù)無法正常解析:


image_15011445648281738975251.jpg

進入類庫obd-java-api的源碼可以看到默認構(gòu)造器調(diào)用了父類的構(gòu)造器份帐,并傳入09 02的字符串,這個是obd2的協(xié)議指令楣导,用于獲取車輛vin碼

 public VinCommand() {
        super("09 02");
    }

VinCommand這個類負責解析vin废境,具體方法如下

  @Override
    protected void performCalculations() {
        final String result = getResult();
        String workingData;
        if (result.contains(":")) {//CAN(ISO-15765) protocol.
            workingData = result.replaceAll(".:", "").substring(9);//9 is xxx490201, xxx is bytes of information to follow.
            Matcher m = Pattern.compile("[^a-z0-9 ]", Pattern.CASE_INSENSITIVE).matcher(convertHexToString(workingData));
            if(m.find()) workingData = result.replaceAll("0:49", "").replaceAll(".:", "");
        } else {//ISO9141-2, KWP2000 Fast and KWP2000 5Kbps (ISO15031) protocols.
            workingData = result.replaceAll("49020.", "");
        }
        vin = convertHexToString(workingData).replaceAll("[\u0000-\u001f]", "");
    }

我選的是ISO-15765協(xié)議,按說其返回的字符串應該包含有":",但卻沒有,這不得不讓我懷疑是開發(fā)版的問題噩凹,我又用AutoApp輸入09 02指令返回的原始數(shù)據(jù)一樣巴元,當然無法被正常解析。

超級截屏_20170728_171135.png

在和廠商溝通后確實可能是開發(fā)版的問題栓始,好吧务冕,只有先退貨了

參考:
百度百科
百度文庫

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市幻赚,隨后出現(xiàn)的幾起案子禀忆,更是在濱河造成了極大的恐慌,老刑警劉巖落恼,帶你破解...
    沈念sama閱讀 217,509評論 6 504
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件箩退,死亡現(xiàn)場離奇詭異,居然都是意外死亡佳谦,警方通過查閱死者的電腦和手機戴涝,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,806評論 3 394
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來钻蔑,“玉大人啥刻,你說我怎么就攤上這事∵湫Γ” “怎么了可帽?”我有些...
    開封第一講書人閱讀 163,875評論 0 354
  • 文/不壞的土叔 我叫張陵,是天一觀的道長窗怒。 經(jīng)常有香客問我映跟,道長,這世上最難降的妖魔是什么扬虚? 我笑而不...
    開封第一講書人閱讀 58,441評論 1 293
  • 正文 為了忘掉前任努隙,我火速辦了婚禮,結(jié)果婚禮上辜昵,老公的妹妹穿的比我還像新娘荸镊。我一直安慰自己,他們只是感情好路鹰,可當我...
    茶點故事閱讀 67,488評論 6 392
  • 文/花漫 我一把揭開白布贷洲。 她就那樣靜靜地躺著,像睡著了一般晋柱。 火紅的嫁衣襯著肌膚如雪优构。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,365評論 1 302
  • 那天雁竞,我揣著相機與錄音钦椭,去河邊找鬼拧额。 笑死,一個胖子當著我的面吹牛彪腔,可吹牛的內(nèi)容都是我干的侥锦。 我是一名探鬼主播,決...
    沈念sama閱讀 40,190評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼德挣,長吁一口氣:“原來是場噩夢啊……” “哼恭垦!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起格嗅,我...
    開封第一講書人閱讀 39,062評論 0 276
  • 序言:老撾萬榮一對情侶失蹤番挺,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后屯掖,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體玄柏,經(jīng)...
    沈念sama閱讀 45,500評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,706評論 3 335
  • 正文 我和宋清朗相戀三年贴铜,在試婚紗的時候發(fā)現(xiàn)自己被綠了粪摘。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 39,834評論 1 347
  • 序言:一個原本活蹦亂跳的男人離奇死亡绍坝,死狀恐怖徘意,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情轩褐,我是刑警寧澤映砖,帶...
    沈念sama閱讀 35,559評論 5 345
  • 正文 年R本政府宣布,位于F島的核電站灾挨,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏竹宋。R本人自食惡果不足惜劳澄,卻給世界環(huán)境...
    茶點故事閱讀 41,167評論 3 328
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望蜈七。 院中可真熱鬧秒拔,春花似錦、人聲如沸飒硅。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,779評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽三娩。三九已至庵芭,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間雀监,已是汗流浹背双吆。 一陣腳步聲響...
    開封第一講書人閱讀 32,912評論 1 269
  • 我被黑心中介騙來泰國打工眨唬, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人好乐。 一個月前我還...
    沈念sama閱讀 47,958評論 2 370
  • 正文 我出身青樓匾竿,卻偏偏與公主長得像,于是被迫代替她去往敵國和親蔚万。 傳聞我的和親對象是個殘疾皇子岭妖,可洞房花燭夜當晚...
    茶點故事閱讀 44,779評論 2 354

推薦閱讀更多精彩內(nèi)容