Como enviar o comando serial via Screen através da linha de comando

2

Estou tentando usar um adaptador usb-to-rs232 para enviar um comando serial para um dispositivo conectado à porta rs232. Quando eu faço login na tela usando screen /dev/cu.usbserial 9600 e, em seguida, insiro meu comando de dentro do programa de tela, obtenho a resposta esperada.

O que estou tentando fazer agora é enviar um único comando serial por meio de uma linha de comando, mas não consigo acertar minha sintaxe.

Veja um exemplo do que estou tentando:

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

... onde o MVUP com um retorno de operadora é tudo que eu preciso enviar. Eu não preciso ler uma resposta de volta. O ambiente é o OS X 10.7 e o shell padrão do bash.

    
por johnxreid 02.04.2016 / 15:55

2 respostas

2

É por causa do espaço!

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

mas

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

funciona bem no meu BBB

depois, anexe

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.

Para anexar, você precisa especificar o número

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

ou dar-lhes um nome diferente com -p opção -p0 -1 para não ter o problema, como no exemplo de tela diferente, todos nomeados 0! Isso lhe oferecerá uma maneira simples de anexar

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

...

    
por 02.04.2016 / 16:14
0

No passado, comecei uma sessão e enviei dados para ela usando stuff com \n para newline:

screen -d -m -S myscreen /dev/cu.usbserial 9600
screen -S myscreen -X stuff 'MVUP\n' 
    
por 03.04.2016 / 14:46

Tags