我正在研究連接OBD2適配器並獲取速度,轉速,節氣門位置等實時數據的應用程序。當我一次讀取一個命令時,它工作正常比如通過發送命令「010C \ r」,我得到當前的RPM。一起發送多個OBD命令並同時獲得響應
我認爲在一個請求中發送多個命令是不可能的。但是在像EngineLink HD,Dashcommand等其他應用程序中,我們發現多個組件在一次更新,就像我們駕駛汽車並檢查RPM,Sped和油門然後他們每1秒更新一次。它看起來像實時數據。
我很驚訝,它怎麼可能?
我們已經添加代碼,如果用戶想要顯示3種成分,則對於每一個組件,則產生一個線程,它處理請求和命令的響應等。因此,在這種情況下,會生成3個線程,我們會得到響應,但是如果我們在3個PID中觀察速度,則需要太多時間,然後在延遲3-4秒後更新速度。
我們還需要鎖定它發送請求的代碼,並得到響應bcoz OBD2適配器處理一次一個請求和響應。
如果我們不鎖碼,然後我們得到的,這可能是由於應用和OBD2適配器之間的socket通信使用公共的共享流無法預料的結果。
但是現在我想一次讀取多個命令。我想知道速度,轉速和節氣門位置等。因此,我想在一個請求中發送上述命令,並且一次獲得響應。
這怎麼可能?有人可以指導我。
您好,我也正在OBD。我是OBD的新手。你能分享你的OBD知識嗎?如何使用wifi連接到OBD設備?如何與OBD通信以執行其命令?請幫我解決這個問題嗎? –
你好,如果你能幫助我創建一個應用程序來讀取使用elm327 wifi模塊的OBD數據,那真的太好了嗎?如果你能聯繫我@ [email protected]會很感激。等待你的答覆。謝謝! –