我正在尝试使用 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
在过去,我启动了一个会话,然后使用stuff
with \n
for newline 向其发送数据:
screen -d -m -S myscreen /dev/cu.usbserial 9600
screen -S myscreen -X stuff 'MVUP\n'