लिनक्स कमांड लाइन से धारावाहिक से पढ़ना


51

मेरे पास एक सीरियल पोर्ट डिवाइस है जिसे मैं लिनक्स कमांड लाइन का उपयोग करके परीक्षण करना चाहूंगा।

मैं सीरियल पोर्ट पर कमांड भेजने के लिए स्ट्टी और इको का उपयोग करने में सक्षम हूं, लेकिन जब डिवाइस जवाब देता है कि मेरे पास सीरियल पोर्ट से आने वाले पढ़ने का कोई तरीका नहीं है। मै इस्तेमाल कर रहा हूँ

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

डिवाइस को कमांड भेजने के लिए। डिवाइस संचालित होता है और 300 एमएस में प्रतिक्रिया भेजता है। मैं कमांड लाइन का उपयोग करके कंसोल पर उस प्रतिक्रिया को कैसे प्रिंट करूं?

जवाबों:


56

आउटपुट के साथ भी। उदाहरण:

cat /dev/ttyS0

या:

cat < /dev/ttyS0

पहला उदाहरण एक ऐप है जो सीरियल पोर्ट को खोलता है और जो इसे पढ़ता है उसे इसके stdout(आपके कंसोल) से रिले करता है । दूसरा वह सीरियल पोर्ट ट्रैफ़िक का निर्देशन करने वाला शेल है जिसे आप पसंद करते हैं; यह विशेष रूप से एप्लिकेशन तो बस इसके stdinलिए निर्भर करता है stdout

ट्रैफ़िक में बेहतर दृश्यता प्राप्त करने के लिए, आप एक हेक्स डंप पसंद कर सकते हैं:

od -x < /dev/ttyS0

याsocat stdio /dev/ttyS0
पैंसेंटन

मैंने जिस डिवाइस के साथ काम कर रहा हूं, उसे एक कमांड भेजा। कमांड है: इको "1GAINS" | sudo tee / dev / ttyUSB0 .... और जवाब में मुझे एक ही संदेश दोहराने वाली एक अनंत धारा मिल रही है। कोई विचार? डिवाइस को एक बार मेरे द्वारा भेजे गए कमांड को वापस इको करना चाहिए, लेकिन यहां ऐसा है जैसे मुझे अजीब प्रतिक्रिया मिल रही है।
user391339

मैंने सत्यापित किया कि धारावाहिक विश्लेषक का उपयोग करके प्रतिक्रिया "वास्तविक" नहीं है। डिवाइस केवल एक बार वापस कमांड को इको करता है, लेकिन उपरोक्त कमांड का उपयोग करके मुझे टर्मिनल आउटपुट पर एक पागल अंतहीन पुनरावृत्ति मिलती है।
user391339

क्या यह बाइनरी डेटा के साथ काम करता है?
रैनश

@ransh - उत्तर के हेक्स डंप भाग को देखें। आपको अंततः एक मानव या एक उपकरण की आवश्यकता होगी जो समझता है या जो विशेष बाइनरी डेटा इंजीनियर को उलट सकता है।
जिरका हनिका
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.