[問題] readline() 資料中遇到"\n"
新手上路 一直在這個問題點上無法突破
試過我能想到的方法 但是一直在一個輪迴裡面 無法突破
個人專題需要和別的系統溝通
也就是我傳 \x04\x05\xaf.... 這樣的資料格式
透過系統回傳給我的 \x32\x85\xaa..... 來做確認資料有沒有更新
主要我是透過 ser.readline() 將一整個資料讀進來
判斷最後三筆是否為 \0x60\0x00\x86 86為 CRC 驗證碼
在偶然間我發現一個錯誤常發生 也就是 readline()時
回傳的資料裡 \xb4\x83\n 中間出現了 \n 因此
(回傳資料 \x00\x03\xef\x98Pb\x10'\xb4\x83\n)
後面再透過 readline 一次又可以讀到後面的漏掉的資料
(漏掉的資料 \x00\x00\x60\x00\xa2)
因為是偶然發生沒有收到完整的資料狀況
我有點想不透該如何去處理
我個人寫法是
Rx = ser.readline()
Rx2 = binascii.b2a_hex(Rx)
Rx3 = str(Rx2)
Rx4 = hex(Rx3)
check = Rx4[-7:-3:1]
if check = "6000"
print("OK")
至於為什麼這樣寫 一直在轉換型態 是因為每次出現什麼 Error code
我就硬查資料把它轉到不會出現 Error 的狀態
我已經查了也試了不少方法 但是已經搞到我自己都不知道在幹嘛了
希望高手能給我一條繩子一個方向 讓我爬出這個奇怪的坑洞
麻煩高手指點
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 36.231.35.115
※ 文章網址: https://www.ptt.cc/bbs/Python/M.1519222578.A.141.html
推
02/21 22:49,
6年前
, 1F
02/21 22:49, 1F
我其實是想解決根本問題 readline 再 print 顯示出來為 ascii
造成我處理資料上的困惑 而 readline 遇到 \n 就停止
但是我的 \n 是因為 ascii 造成的
我也不知道我問題卡在哪個環節
就一個盲點一直找不到 變得有點語無倫次 QQ
※ 編輯: FamilyMart (36.231.35.115), 02/21/2018 23:22:19
→
02/21 23:19,
6年前
, 2F
02/21 23:19, 2F
→
02/21 23:22,
6年前
, 3F
02/21 23:22, 3F
我了解到 \n 是換行字元 但是實際上不是 是編碼造成的
readline 可以讀到一整個資料
偶爾會遇到接收到的資料 中間編碼自動換成 \n
而造成資料不完整
只要再 readline 一次 就能把後面資料補上
※ 編輯: FamilyMart (36.231.35.115), 02/21/2018 23:27:45
→
02/22 00:25,
6年前
, 4F
02/22 00:25, 4F
→
02/22 00:27,
6年前
, 5F
02/22 00:27, 5F
→
02/22 00:28,
6年前
, 6F
02/22 00:28, 6F
還好我真的是自學的 不然真的會兩條腿也不夠打 XDDD
今天會用 read 試看看 想說對方一次丟出來 應該用 readline
推
02/22 01:08,
6年前
, 7F
02/22 01:08, 7F
→
02/22 01:08,
6年前
, 8F
02/22 01:08, 8F
→
02/22 01:08,
6年前
, 9F
02/22 01:08, 9F
好的 感謝你
→
02/22 01:30,
6年前
, 10F
02/22 01:30, 10F
※ 編輯: FamilyMart (36.231.35.115), 02/22/2018 08:05:30
→
03/03 07:10,
6年前
, 11F
03/03 07:10, 11F
→
03/06 04:41,
6年前
, 12F
03/06 04:41, 12F