web-dev-qa-db-ja.com

シリアルポートサーマルプリンター通信

シェルを介してEpson tm-t88ivサーマルプリンターとの低レベル通信を確立しようとしていますが、理解できません。私は、Dell vostro 1510でubuntu 13.10 64ビットに取り組んでいます。

多用のシリアルUSB pl2303ケーブルで接続しています。 lsusbは以下を示します。

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ショー:

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

Cutecomを使用して特定の16進コードを送信しようとしましたが、応答がありません。/dev/ttyUSB0へのエコーも試みましたが、どこから応答を読むべきかわかりません。 「sudo cat/dev/ttyUSB0」も試しましたが、何も得られません。

これを解決するのを手伝ってください!ありがとう!

解決策:

走らなければならなかった

Sudo chmod 777 /dev/ttyUSB0

そして、ルートとしてjpnevulatorを実行します

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

そして、書き込みモードで別のものを使用して、ステータスチェックシーケンス02 AC 00 01 1C 00 00 03 30 30 43 45を書きました

画面にプリンターの応答が表示されます。私は今、チェックサムに関して別の問題を抱えていますが、それは低レベルプログラミングへの私のオデッセイの次のエピソードのためのものです。

2
BVJ

サーマルプリンターについてはわかりませんが、Arduinoまたは携帯電話のモデムをテストするために使用した方法です。

例として、Android電話をモデムとして使用する場合:

  1. シリアルポートの読み取り(ルートである必要があります):

    Sudo su
    cat /dev/ttyACM0
    

    必要に応じてほんの数行を読むことができるので:

    head -n2 /dev/ttyACM0
    
  2. シリアルを作成し、他の端末タブまたはウィンドウを開きます。

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

    ポートウィンドウの読み取り時にOKと表示されます。16進データを送信することもできます(最後に新しい行を送信しないようにするには、-nオプションを使用します)

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

    と同じ:

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

    シェルは、表示されていないヘックスを、その値が内部に書き込まれた小さな正方形として表示します。これを試して。

    echo -e "\x13"
    
1
user.dz