web-dev-qa-db-fra.com

communication imprimante thermique par port série

J'essaie d'établir une communication de bas niveau avec une imprimante thermique Epson tm-t88iv via Shell, mais je n'arrive pas à le comprendre. Je travaille sur ubuntu 13.10 64 bits avec un Dell Vostro 1510.

Je l'ai connecté via un câble prolifique pl2303 série-usb. lsusb montre:

ben@ben-Vostro1510:~$ lsusb
Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 007 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 006 Device 003: ID 046d:c52b Logitech, Inc. Unifying Receiver
Bus 006 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 005 Device 005: ID 067b:2303 Prolific Technology, Inc. PL2303 Serial Port
Bus 005 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 001 Device 002: ID 0c45:63e0 Microdia Sonix Integrated Webcam
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 004 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 003 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub

dmesg | grep tty montre:

ben@ben-Vostro1510:~$ dmesg | grep tty
[    0.000000] console [tty0] enabled
[    1.488664] tty tty28: hash matches
[  225.882444] cdc_acm 2-4:1.0: ttyACM0: USB ACM device
[ 1478.741395] usb 5-1: pl2303 converter now attached to ttyUSB0
[ 3672.537405] pl2303 ttyUSB0: pl2303 converter now disconnected from ttyUSB0
[ 3679.219805] usb 5-1: pl2303 converter now attached to ttyUSB0
[ 4657.704772] pl2303 ttyUSB0: pl2303 converter now disconnected from ttyUSB0
[ 4699.905633] usb 5-1: pl2303 converter now attached to ttyUSB0
[ 4798.952739] pl2303 ttyUSB0: pl2303 converter now disconnected from ttyUSB0
[ 9930.266470] usb 5-1: pl2303 converter now attached to ttyUSB0

J'ai essayé d'utiliser cutecom pour lui envoyer un code hexadécimal spécifique, mais je ne reçois aucune réponse. J'ai également essayé de faire écho à/dev/ttyUSB0 mais je ne sais pas où lire la réponse. J'ai aussi essayé "Sudo cat/dev/ttyUSB0" mais je ne reçois rien.

aidez-moi s'il vous plaît à résoudre ceci! Merci!

Solution:

Je devais courir

Sudo chmod 777 /dev/ttyUSB0

puis lancez jpnevulator en tant que root

Sudo jpnevulator --tty /dev/ttyUSB0 --read

puis en utilisant un autre en écriture, j’ai écrit la séquence de vérification de l’état 02 AC 00 01 1C 00 00 03 30 30 43 45

et a obtenu la réponse de l'imprimante à l'écran. J'ai maintenant un problème différent avec la somme de contrôle, mais c'est pour le prochain épisode de mon Odyssey dans la programmation de bas niveau.

2
BVJ

Je n'ai aucune idée des imprimantes thermiques, mais c'est comme cela que j'avais l'habitude de tester Arduino ou un modem de téléphone portable.

Par exemple, avec un téléphone Android comme modem:

  1. Lecture du port série (doit être root):

    Sudo su
    cat /dev/ttyACM0
    

    Comme vous pouvez lire quelques lignes au besoin:

    head -n2 /dev/ttyACM0
    
  2. Écrire en série, ouvrir un autre onglet de terminal ou une fenêtre:

    Sudo su
    echo -e "AT" > /dev/ttyACM0
    

    Il affiche OK sur la fenêtre de lecture du port. Vous pouvez également envoyer des données hexadécimales (utilisez l'option -n pour éviter d'envoyer une nouvelle ligne à la fin).

    echo -e -n "\x41\x54\x0a" > /dev/ttyACM0
    

    pareil que:

    echo -e "\x41\x54" > /dev/ttyACM0
    

    Shell affichera l'hex non affiché sous forme de petit carré avec sa valeur écrite à l'intérieur. Essaye ça.

    echo -e "\x13"
    
1
user.dz