Como receber / ler o arquivo bruto enviado usando o Gtkterm através de serial?

0

Eu baixei o Gtkterm em 2 sistemas de desktop, cada um com uma porta serial RS-232. Estou tentando transferir um arquivo .txt simples entre os dois sistemas através de uma das portas seriais disponíveis. Os dois sistemas são conectados em suas respectivas portas RS-232 usando um cabo RS232 de modem nulo.

Selecionei a porta ttyS # apropriada e estou enviando o arquivo em 1 computador. Mas, como leio esse arquivo enviado no outro computador?

    
por jerryh91 20.07.2015 / 22:36

2 respostas

0

Veja o que você precisa fazer:

Se o nome do arquivo for blahblah.txt

Na máquina de envio:

sudo cat blahblah.txt > /dev/ttyS0

No aparelho de recepção:

sudo cat /dev/ttyS0 > blahblah.txt

Não se esqueça do sudo, pois alguns sistemas podem precisar disso.

    
por Daniel 20.07.2015 / 23:35
0

Se você tem um login serial de uma estação de trabalho do Ubuntu (local) para outra máquina do Ubuntu (remoto), você pode enviar um arquivo bruto através do gtkterm com o seguinte:

Primeiro, verifique o md5sum do arquivo para que possamos ter certeza de que o transferimos com sucesso. Se o arquivo que você deseja enviar for binário (contém texto não ASCII), então eu recomendo que você codifique primeiro os dados na base64. Por exemplo

[local]:

user@local:~$ md5sum my_file.bin
9426054eb507e98605d7a6b94189168b  my_file.bin
user@local:~$ base64 my_file.bin > my_file.bin.base64
user@local:~$ gtkterm --port /dev/ttyUSB1 --speed 115200 &

[remoto] :

user@remote:~$ cat > my_file.bin.base64

Agora use o menu gtkterm para "enviar arquivo bruto" e selecione seu arquivo. Você verá cada byte do arquivo ecoado na janela do gtkterm. Quando o arquivo terminar, pressione Ctrl+D na janela gtkterm para enviar um EOF para cat . Você verá um novo prompt de terminal aparecer. Então base64 decodifique o arquivo. Finalmente, é uma boa ideia verificar a integridade dos dados.

[remote]:

user@remote:~$ base64 -d my_file.bin.base64 > my_file.bin
user@remote:~$ md5sum my_file.bin
9426054eb507e98605d7a6b94189168b  my_file.bin

Notas Observe que a transferência de arquivos prosseguirá na velocidade da conexão serial. Você não pode enviar arquivos muito grandes dessa maneira. Além disso (e especialmente se a conexão serial não suporta controle de fluxo), há sempre a possibilidade de alguns bytes ignorados.

* BÔNUS:

Depois de iniciar o cat > my_file.bin.base64 na máquina remota por meio do gtkterm, você poderá ignorar o gtkterm para fazer a transferência de arquivos real. Por exemplo, você pode usar cat ole simples:

[local]:

user@local:~$ cat my_file.bin > /dev/ttyUSB1

Ou se você quiser uma barra de progresso interessante, dê pv a try:

[local]:

user@local:~$ pv my_file.bin | cat > /dev/ttyUSB1

Essa técnica funcionará com outros clientes de terminal serial, incluindo clientes baseados em terminal (por exemplo, creen , minicom , etc).

    
por cheshirekow 22.06.2017 / 22:31