コマンドラインを介して画面を介してシリアルコマンドを送信する方法

コマンドラインを介して画面を介してシリアルコマンドを送信する方法

USB-RS232アダプタを使用してRS232ポートに接続されているデバイスにシリアルコマンドを送信しようとしています。ログイン画面を使用してscreen /dev/cu.usbserial 9600画面プログラムでコマンドを入力すると、期待どおりの応答が得られます。

今やることは、コマンドラインを介して単一のシリアルコマンドを送信しますが、構文を正しく取得できないことです。

私が試しているものの例は次のとおりです。

screen -dmS -p 0 /dev/cu.usbserial 9600 "MVUP"

...送信する必要があるのは運送業者の返品とともにMVUPだけです。返信を読む必要はありません。環境はOS X 10.7で、デフォルトのbashシェルを使用します。

答え1

まさに空間のせいです!

screen -dmS -p 0 /dev/cu.usbserial 9600 "MVUP"

しかし、

screen -dmS -p0 /dev/cu.usbserial 9600 "MVUP"

私のBBBでうまくいきます。

その後、追加

screen -rmS -p0 /dev/cu.usbserial 9600 "MVUP"



aurelien@snowball:~$ sudo screen -rmS -p0 /dev/ttyUSB0 115200
[remote detached from 2845.-p0]
aurelien@snowball:~$ sudo screen -dmS -p0 /dev/ttyUSB0 115200
aurelien@snowball:~$ sudo screen -rmS -p0 /dev/ttyUSB0 115200
There are several suitable screens on:
        2861.-p0        (04/02/2016 04:10:25 PM)        (Detached)
        2845.-p0        (04/02/2016 04:10:07 PM)        (Detached)
Type "screen [-d] -r [pid.]tty.host" to resume one of them.
aurelien@snowball:~$ sudo screen -dmS -p0 /dev/ttyUSB0 115200
aurelien@snowball:~$ sudo screen -rmS -p0 /dev/ttyUSB0 115200
There are several suitable screens on:
        2971.-p0        (04/02/2016 04:13:09 PM)        (Detached)
        2861.-p0        (04/02/2016 04:10:25 PM)        (Detached)
        2845.-p0        (04/02/2016 04:10:07 PM)        (Detached)
Type "screen [-d] -r [pid.]tty.host" to resume one of them.

追加するには番号を指定する必要があります。

sudo screen -rmS **2845** -p0 /dev/ttyUSB0 115200

または、-pオプション-p0 -1を使用して異なる名前を指定すると、例では、異なる画面の名前をすべて0に指定するのに苦労する必要はありません。これにより簡単に再接続できます。

sudo screen -dmS -p0 /dev/ttyUSB0 115200
sudo screen -rmS -p0 /dev/ttyUSB0 115200

sudo screen -dmS -p1 /dev/ttyUSB0 115200
sudo screen -rmS -p1 /dev/ttyUSB0 115200

sudo screen -dmS -p2 /dev/ttyUSB0 115200
sudo screen -rmS -p2 /dev/ttyUSB0 115200

...

答え2

以前はセッションを開始し、stuffwithを使用して新しい行\nにデータを送信しました。

screen -d -m -S myscreen /dev/cu.usbserial 9600
screen -S myscreen -X stuff 'MVUP\n' 

関連情報