membaca dari serial dari baris perintah linux

51

Saya memiliki perangkat port serial yang ingin saya uji menggunakan linux command line.

Saya dapat menggunakan stty dan gema untuk mengirim perintah ke port serial, tetapi ketika perangkat merespons saya tidak bisa membaca apa yang datang dari port serial. saya menggunakan

stty -F /dev/ttyS0 speed 9600 cs8 -cstopb -parenb && echo -n ^R^B > /dev/ttyS0

untuk mengirim perintah ke perangkat. Perangkat beroperasi dan mengirim respons kembali dalam 300 ms. Bagaimana cara mencetak respons itu ke konsol menggunakan baris perintah?

erin c
sumber

Jawaban:

56

Sama seperti dengan output. Contoh:

cat /dev/ttyS0

Atau:

cat < /dev/ttyS0

Contoh pertama adalah aplikasi yang membuka port serial dan me-relay apa yang dibaca dari itu ke stdoutkonsol Anda. Yang kedua adalah shell yang mengarahkan lalu lintas port serial ke aplikasi apa pun yang Anda suka; aplikasi khusus ini kemudian hanya me-relay-nya stdinke-nya stdout.

Untuk mendapatkan visibilitas yang lebih baik ke lalu lintas, Anda mungkin lebih suka dump hex:

od -x < /dev/ttyS0
Jirka Hanika
sumber
atausocat stdio /dev/ttyS0
pstanton
Saya mengirim perintah ke perangkat yang bekerja dengan saya. Perintahnya adalah: echo "1GAINS" | sudo tee / dev / ttyUSB0 .... dan sebagai tanggapan saya mendapatkan aliran yang tak terbatas mengulangi pesan yang sama. Ada ide? Perangkat itu sendiri harus mengulangi perintah yang saya kirim sekali, tapi di sini rasanya saya mendapat umpan balik yang aneh.
user391339
Saya memverifikasi bahwa umpan baliknya tidak "nyata" menggunakan penganalisis serial. Perangkat hanya mengulang perintah sekali, tetapi menggunakan perintah di atas saya mendapatkan pengulangan yang tak ada habisnya pada output terminal.
user391339
Apakah ini berfungsi dengan data biner?
ransh
@ transh - Lihat bagian dump hex jawaban. Anda pada akhirnya akan membutuhkan manusia atau alat yang mengerti atau yang dapat merekayasa balik data biner tertentu.
Jirka Hanika