У меня есть DataLogic Scanner штрих-кода GD4400, подключенный к системе Raspberry Pi/Linux через USB-адаптер CH340. При сканировании штрих -кодов, сканер выводит кодируемые данные вместо простого текста ASCII. < /P>
Аппаратная настройка < /strong>
Datalogic GD4400 Scanner
CH340. (GND) → CH340 GND, PIN 7 (VCC) → 5V < /p>
Что я вижу
Когда я сканирую штрих -код с текстом "x0043fewfx", я получаю этот двоичный вывод вместо простого текста: < /p>
Код: Выделить всё
Received data (length: 11 bytes):
HEX: EA F6 76 96 36 D5 45 CD 3D 95 00
Код: Выделить всё
import serial
import time
import sys
def listen_to_scanner(device_path="/dev/ttyUSB0", baud_rate=9600):
try:
with serial.Serial(
port=device_path,
baudrate=baud_rate,
bytesize=serial.EIGHTBITS,
parity=serial.PARITY_NONE,
stopbits=serial.STOPBITS_ONE,
timeout=0.1,
rtscts=True
) as ser:
print(f"Connected to {device_path} at {baud_rate} baud")
print("Listening for scanner data... (Press Ctrl+C to stop)")
while True:
try:
data = ser.read(64)
if len(data) > 0:
print(f"\nReceived data (length: {len(data)} bytes):")
print(f"HEX: {' '.join([f'{b:02X}' for b in data])}")
try:
ascii_str = data.decode('ascii')
print(f"ASCII: {ascii_str}")
except UnicodeDecodeError:
print("*** Non-ASCII data received ***")
except serial.SerialException as e:
print(f"Serial error: {e}")
break
time.sleep(0.01)
except serial.SerialException as e:
print(f"Error with serial port: {e}")
except KeyboardInterrupt:
print("\nProgram terminated by user")
def main():
listen_to_scanner()
if __name__ == "__main__":
main()
Измененные настройки интерфейса: Я попытался настройка сканера для использования «RS-232 Standard» интерфейс с использованием программирования штрих-кодов, когда я подключаю, и я могу подключаться к мышению. Режим USB HID (клавиатура), он правильно выводит простой ASCII, но мне нужно, чтобы он работал с последовательным соединением CH340.
Скорость передачи: Я подтвердил, что частота бодского обеспечения правильно устанавливается на 9600. /> Не могли бы вы помочь мне, где я делаю неправильно?
мне нужен определенный код декодирования для бренда сканера? < /p>
Подробнее здесь: https://stackoverflow.com/questions/796 ... -interface