Linux komut satırından seriden okuma


51

Linux komut satırını kullanarak test etmek istediğiniz seri port aygıtım var.

Stty ve echo'yu seri portlara komutlar göndermek için kullanabiliyorum, ancak cihaz cevap verdiğinde seri porttan ne geldiğini okumak için hiçbir yolum yok. Ben kullanıyorum

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

cihaza bir komut göndermek için. Cihaz çalışır ve 300 ms içinde bir yanıt gönderir. Bu cevabı komut satırını kullanarak konsola nasıl yazdırırım?

Yanıtlar:


56

Çıktıyla aynı. Örnek:

cat /dev/ttyS0

Veya:

cat < /dev/ttyS0

İlk örnek, seri bağlantı noktasını açan ve okuduğu şeyi stdout(konsolunuza) ileten bir uygulamadır . İkincisi, seri bağlantı noktası trafiğini istediğiniz herhangi bir uygulamaya yönlendiren kabuktur; Bu özel uygulama daha sonra sadece stdinkendisine iletir stdout.

Trafiğe daha iyi görünürlük elde etmek için, altıgen bir dökümü tercih edebilirsiniz:

od -x < /dev/ttyS0

veyasocat stdio /dev/ttyS0
pstanton

Çalıştığım bir cihaza komut gönderdim. Komut: echo "1GAINS" | sudo tee / dev / ttyUSB0 .... ve buna cevap olarak aynı mesajı tekrarlayan sonsuz bir akış alıyorum. Herhangi bir fikir? Cihazın kendisi bir kez gönderdiğim komutu geri döndürmeli, ama işte tuhaf bir geri bildirim alıyorum.
kullanıcı391339

Bir seri analizörü kullanarak geri beslemenin "gerçek" olmadığını doğruladım. Cihaz sadece bir defa komutu tekrarlar, ancak yukarıdaki komutları kullanarak terminal çıkışında çılgınca ve sonsuz bir tekrar elde ederim.
kullanıcı391339

İkili verilerle çalışıyor mu?
ransh

@ransh - Cevabın onaltılık döküm kısmına bakın. Sonunda, o belirli ikili veriyi anlayan veya tersine çeviren bir insana veya araca ihtiyacınız olacak.
Jirka Hanika,
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.