如何通过命令行通过Screen发送串行命令

如何通过命令行通过Screen发送串行命令

我正在尝试使用 USB 转 RS232 适配器将串行命令发送到连接到 RS232 端口的设备。当我使用登录屏幕screen /dev/cu.usbserial 9600,然后从屏幕程序中输入命令时,我得到了预期的响应。

我现在想做的是通过命令行发送单个串行命令,但无法使我的语法完全正确。

这是我正在尝试的示例:

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

...我需要发送的只是带有运营商退货的 MVUP。我不需要读回复。环境是 OS X 10.7 并使用默认的 bash shell。

答案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 \nfor newline 向其发送数据:

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

相关内容