Fórum Root.cz
Hlavní témata => Vývoj => Téma založeno: Wangarad 13. 12. 2020, 19:17:24
-
Zdravim.
Citam si data s USB QR scannera. uplne jednoducho
import serial
s = serial.Serial('COM3')
QR_code_data = ""
while True:
res = s.read_until(b"\x03").decode('utf-8')
QR_code_data = res
QR_code_data = QR_code_data.replace("☻]Q1", "")
print (QR_code_data)
Kde sa snazim odstranit prave ten border ☻]Q1Bohuzial stale mi to vracia ☻]Q1http://www.shortl.online♥ ako to ocesat?
-
Nestacilo by vypsat jen ASCII znaky?
res = s.read_until(b"\x03").decode('ascii','ignore')
print(res)
-
Skusil som vracia to presne ten isty string.
-
Tak nakoniec aj ked nie som 2x happy
import serial
import re
s = serial.Serial('COM3')
QR_code_data = ""
while True:
res = s.read_until(b"\x03").decode('UTF-8')
QR_code_data = res
QR_code_data = re.sub('[^A-Za-z0-9]+', '', QR_code_data)
QR_code_data = QR_code_data [2:] #toto lebo to davalo Q1 ale netusim preco?
print (QR_code_data)
-
Prováděj nahrazování ještě na binárních, nedekódovaných datech. Takhle do toho vstupují různé formy reprezentace unicode stringů a kdo ví, jestli opravdu nahrazuješ to, co si myslíš, že nahrazuješ.
-
Co je to za scanner? Vypadá to, že posílá pakety s dekódovanou zprávou, a tak by měl existovat jednoznačný postup, jak paket deserializovat.
-
Balast je tam možná kvůli špatně nastavenému COM portu. Mělo by to dávat data čistá...
-
No je to symbol resp. Zebra CDC Scanner MIN-D3508. Ovladace standardne od Zebry
-
"\x02" - STX
"]Q1" - Symbology ID (typ dat/kódu)
...
"\x03" - ETX
První problém je v decode. To prostě není text v utf-8. Druhý možná v nahrazování, tj. co ti editor uložil místo toho smajlíku.
Obojí tady už zaznělo, prostě to tak nedělej a dekóduj to podle protokolu.
-
Nemá ten scanner nastavenej nějakej prefix nebo suffix, kterej posílá ke každýmu kódu? Stáhněte si nastavovací příručku a nastavte si to, jak potřebujete...
-
Petr Blahos.
BINGO. Tam bol pes zakopany dakujem!!!