2012-08-28 12 views
6

के तहत आदेश Microcom को लिनक्स कमांड microcom एक धारावाहिक मॉडेम के साथ संवाद करने के लिए मौजूद है आदेश:पुन: निर्देशित एटी <code>BusyBox</code><a href="http://en.wikipedia.org/wiki/BusyBox">command</a> में लिनक्स

BusyBox v1.13.2 (2012-05-10 17:13:08 CEST) multi-call binary 

Usage: microcom [-d DELAY] [-t TIMEOUT] [-s SPEED] [-X] TTY 

Copy bytes for stdin to TTY and from TTY to stdout 

Options:  
     -d Wait up to DELAY ms for TTY output before sending every next byte to it 
     -t Exit if both stdin and TTY are silent for TIMEOUT ms 
     -s Set serial line to SPEED 
     -X Disable special meaning of NUL and Ctrl-X from stdin 
इसके बजाय stdin का उपयोग कर टाइप करने के लिए एटी कमांड मैं उन्हें insise रखना चाहते हैं की

एक पाठ फ़ाइल और उपरोक्त आदेश के लिए stdin के रूप में उस फ़ाइल की सामग्री को पुनर्निर्देशित करें। उदाहरण के लिए, मैं एक फ़ाइल

/tmp/at.txt 

एटी कमांड AT, जो आमतौर पर एक OK साथ TTY से इसकी पुष्टि हो जाता है के साथ की है।

microcom -t 3000 -X /dev/ttyS5         
at 
OK 

जिसमें स्ट्रिंग at कीबोर्ड पर सीधे दर्ज किया गया था: stdin के साथ एक मानक सत्र की तरह दिखता है। फ़ाइल /tmp/at.txt की सामग्री का उपयोग करने के लिए (केवल 'at \ n') शामिल है। यह करने के लिए,। मैं निम्नलिखित रूपों की कोशिश की है:

microcom -t 3000 -X /dev/ttyS5 < /tmp/at.txt 
microcom -t 3000 /dev/ttyS5 < /tmp/at.txt 
cat /tmp/at.txt | microcom -t 3000 /dev/ttyS5 
tail -f /tmp/at.txt | microcom -t 3000 /dev/ttyS5 
cat /tmp/at.txt | microcom -t 3000 /dev/ttyS5 -X 
tail -f /tmp/at.txt | microcom -t 3000 /dev/ttyS5 -X 

और उनमें से कोई काम किया, उन आदेशों की अर्थात कोई भी स्क्रीन पर पाठ 'ठीक है' वापसी से किया था। इसलिए मैं निष्कर्ष निकालता हूं कि फ़ाइल /tmp/at.txt की सामग्री को microcom आदेश के लिए stdin के रूप में पुनर्निर्देशित करने में कुछ समस्या है। हो सकता है कि अंत-ऑफ़-लाइन का अर्थ कैसे दिया जाए या अंत-फ़ाइल का अर्थ हो। अगर किसी के पास कुछ विचार है, तो मैं कुछ मदद की सराहना करता हूं।

धन्यवाद,

एलेक्स

+0

क्या खोल प्रयोग कर रहे हैं काम नहीं करता है? – tMC

उत्तर

5

इम SliTaz 4.0 & तहत बिजीबॉक्स v1.18.4 में MICROCOM चल मैं इस समस्या & दोहराया गया तो इसे हल। यदि आप इस स्तर पर कीबोर्ड इनपुट का अनुकरण करने जा रहे हैं तो प्रत्येक पंक्ति के बाद टेकफाइल को पूर्ण सीआरएलएफ होना चाहिए क्योंकि कुंजीपटल कुंजी एक^एम (0x0D) को प्रसारित करती है। अधिकांश ASCII संपादकों द्वारा लिखित लिनक्स मानक 0x0A पर्याप्त नहीं है।

वहाँ यह करने के लिए कई तरीके हैं, लेकिन मैं अभी बनाया हर पंक्ति के अंत में एक अतिरिक्त बाइट के साथ takefile तो एक 0x0D को बाइट जैप ncurses-hexedit कार्यक्रम का इस्तेमाल किया। मैंने उपरोक्त आदेशों का परीक्षण किया & ऐसी फ़ाइल से लिया गया इनपुट के साथ एक ठीक प्रतिक्रिया मिली।

उम्मीद है कि इससे मदद मिलती है।

5

आप आदेशों एटी अंत विशेष वर्ण साथ \ r जरूरत

echo "AT+CIMI\r" | microcom -t 2000 /dev/ttyS5 

साथ \ N यह

Grettings

+0

यदि व्यस्त बॉक्स के बगल में आप एक वास्तविक खोल का उपयोग करते हैं, जैसे कि बैश, ई-ए-ए-फ्लैग को इको करने के लिए निर्दिष्ट न करें: 'echo -ne "AT + CSQ \ r \ n" | microcom -X -t 1000/dev/modem_at1' –

संबंधित मुद्दे