簡體   English   中英

Python .readline()

[英]Python .readline()

首先讓我以我是python的新手作為序言,這里沒有自我。 我從各個站點收集了這段代碼,最終目的是將十六進制代碼輸出到OBD-II芯片並等待響應。 該響應(也為十六進制)將轉換為十進制處理並發送到輸出。 很簡單吧?

好吧,有兩個問題。

其中一個.readline()會刪除響應的第一個字母。

例如,如果我想要“> Elm327”,我將返回“> lm327”。

另一個更大的另一個問題是當我使用.readline()時,如果我在下面使用以下代碼,則只會收到例如發送的請求:

serialport.write("01 0D \r")
speed_hex = serialport.readline().split(' ')
speed = float(int('0x'+speed_hex[6:8], 0 ))
print 'Speed: ', speed, 'km/h'`  

我想讓.readline返回41 0D 15我得到類似E\\r\\r01 0D \\r \\r"

speed_hex = serialport.readline().split(' ')  

這也會返回一個錯誤,但我將為此另行發表文章。

有什么想法嗎? 謝謝

我懷疑您的串行端口設置與主板上的設置不完全匹配,請嘗試在終端上玩,直到您獲得確切的設置,然后再使用這些設置。

注意,您不需要在0x之前轉換十六進制值,可以使用int(s,16),其中s是您的子字符串。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM