लिनक्स में एक मॉडेम में एटी कमांड कैसे भेजें?


14

लिनक्स (उबंटू) में मैं एक मॉडेम पर एटी कमांड भेजने की कोशिश कर रहा हूं /dev/ttyACM0। मैंने इसे करने की कोशिश की:

sudo socat - /dev/ttyACM0

लेकिन जब मैं कुछ भी लिखता हूं तो मुझे इस कमांड को दोहराने वाली एक लाइन मिलती है (मुझे उम्मीद है कि OK)।

जब मैं करता हूं

sudo minicom modem1

यह काम करने लगता है। मैं एक टाइप करता हूं ATऔर एक प्राप्त करता हूं OK। मैं कुछ बकवास टाइप करता हूं, मुझे ए ERROR

ऐसा लगता है कि modem1minicom के लिए किसी तरह मॉडेम का उपयोग करने के लिए कॉन्फ़िगर किया गया है /dev/ttyACM0

मैं एटी कमांड भेजने के लिए सोसाइट का उपयोग कैसे कर सकता हूं? क्या मुझे कुछ कॉन्फ़िगर करने की आवश्यकता है? शायद मैं modem1मिनिकॉम के लिए कॉन्फ़िगरेशन का उपयोग कर सकता हूं (मुझे नहीं पता कि यह कॉन्फ़िगरेशन कैसे खोजना / देखना है)?

अतिरिक्त जानकारी

क्या दी गई socatआज्ञा सही है? क्या मुझे कुछ विकल्पों के साथ खेलना चाहिए? -vविकल्प के साथ मैं निम्नलिखित देखता हूं:

AT
> 2013/10/23 17:10:28.917413  length=3 from=0 to=2
AT
< 2013/10/23 17:10:28.921598  length=3 from=0 to=2
AT
AT
ksjdhfjdgfhjkdfh
> 2013/10/23 17:10:30.244923  length=17 from=3 to=19
ksjdhfjdgfhjkdfh
< 2013/10/23 17:10:30.251383  length=29 from=3 to=31
ksjdhfjdgfhjk\b \bd\b \bf\b \bh\b \b
ksjdhfjdgfhj 

डिवाइस स्वयं निम्नलिखित dmesg आउटपुट के साथ पाया जाता है:

[5983726.808063] usb 2-1: USB disconnect, device number 3
[5983730.800021] usb 2-1: new full-speed USB device number 4 using uhci_hcd
[5983730.920014] usb 2-1: device descriptor read/64, error -71
[5983733.629524] usb 2-1: New USB device found, idVendor=0572, idProduct=1329
[5983733.629533] usb 2-1: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[5983733.629539] usb 2-1: Product: USB Modem
[5983733.629544] usb 2-1: Manufacturer: Conexant
[5983733.629549] usb 2-1: SerialNumber: 24680246
[5983733.632673] cdc_acm 2-1:1.0: ttyACM0: USB ACM device

और ट्टी को इस प्रकार कॉन्फ़िगर किया गया है:

speed 57600 baud; line = 0;
eof = ^A; min = 1; time = 0;
-brkint -icrnl -imaxbel
-opost -onlcr
-isig -icanon -echo -echoe

शायद आप इसे इन TERMIOS विकल्पों के साथ काम करते हुए प्राप्त कर सकते हैं लेकिन मैंने कभी जाँच नहीं की
एलेक्स

इस वेबसाइट के माध्यम से खोजें "सोसाइटी मॉडेम" की तलाश में 5 हिट हैं, देखें कि क्या उनमें से कोई भी सहायक है। मेरे पास इनको आज़माने के लिए कोई सेटअप नहीं है इसलिए मैं वास्तव में इससे आगे मदद नहीं कर सकता। ( Unix.stackexchange.com/search?q=socat+modem )
SLM

संकेत उपयोगी नहीं हैं। मुझे एक वास्तविक बुनियादी समस्या है, क्योंकि समाज को काम करना चाहिए। इसके पहले काम किया था। लेकिन मुझे नहीं पता कि समस्या क्या है। क्या उपरोक्त कमांड सही है, यह मेरा पहला प्रश्न है।
एलेक्स

जवाबों:


10

प्रयत्न socat - /dev/ttyUSB2,crnl

यह सोसाइटी को एक गाड़ी वापसी के साथ-साथ एक लाइन फीड भेजने के लिए कहता है।

स्पष्टता - यह बिजली टाइपराइटरों के काले दिनों में वापस जाती है, जहाँ आपको यह बताना होगा कि गाड़ी को पृष्ठ पर स्थिति 0 पर वापस लाएँ - ergo, a carriage return - साथ ही यह बताने के लिए कि वह कागज को एक पंक्ति में ले जाए। ।


5

लिनक्स में एक मॉडेम में एटी कमांड भेजने का सबसे अच्छा तरीका प्रोग्राम एटइनआउट का उपयोग करना है जो कमांड लाइन से मॉडेम में एटी कमांड भेजने का एकमात्र उद्देश्य है।

आप इसका उपयोग यह जांचने के लिए कर सकते हैं कि मॉडेम उठ रहा है या नहीं , फोन बुक का बैकअप बनाएं:

$ atinout - /dev/ttyACM0 ten_first_phonebook_entries.txt <<EOF
at+cscs="UTF-8"
at+cpbs="SM"; +cpbr=1,10
at+cpbs="ME"; +cpbr=1,10
EOF
$

या किसी भी अन्य चीजों के लिए आप एटी कमांड का उपयोग करते हैं।


4

मैं इस क्रोमियम प्रोजेक्ट पोस्ट पर आया था जो दिखाता है कि आप क्या चाहते हैं। इसका शीर्षक है: सेलुलर मॉडेम को डीबग करना

उस पृष्ठ से अंश

एटी कमांड सेट के साथ एक मॉडेम के साथ सीधे संचार

अधिकांश मोडेम एटी कमांड का समर्थन करते हैं जो सूचना के लिए मॉडेम और क्वेरी को नियंत्रित करते हैं। डेवलपर मोड सक्षम के साथ क्रोमियम OS डिवाइस पर, आप मॉडेम के साथ संचार करने के लिए सोसाइट कमांड का उपयोग कर सकते हैं। आपको स्थापित परीक्षण छवि के साथ क्रोमियम OS डिवाइस की आवश्यकता है (या यदि आप देव सर्वर से परिचित हैं तो आप gmerge socat का उपयोग कर सकते हैं)। उदाहरण के लिए:

  • Crosh शेल दर्ज करने के लिए CTRL + ALT + T टाइप करें।
  • बैश शेल दर्ज करने के लिए शेल टाइप करें।
  • आपको कौन से USB डिवाइस का उपयोग करना है: ls / dev / ttyACM * / dev / ttyUSB *
  • मॉडेम प्रबंधक बंद करें यदि यह चल रहा है: sudo बंद मॉडेमैनजर
  • मॉडेम के साथ संचार करने के लिए sudo socat - / dev / ttyACM1, crnl या sudo socat - / dev / ttyUSB0 टाइप करें।
  • सुनिश्चित करें कि मॉडेम कमांड के साथ सक्षम है: "AT + CFUN = 1"

उदाहरण के लिए:

    crosh> shell
    chronos@localhost ~ $ sudo stop modemmanager
    chronos@localhost ~ $ ls /dev/ttyACM* /dev/ttyUSB*
    /dev/ttyUSB0 /dev/ttyUSB1 /dev/ttyUSB2
    chronos@localhost ~ $ socat - /dev/ttyUSB1
    ATZ
    OK
    AT+CFUN=1
    OK
    ATI
    Manufacturer: Qualcomm Incorporated
    Model: ......
    Revision:....
    ESN: 0x80d...
    +GCAP: +CIS707A, ....

    chronos@localhost ~ $ 

मॉडेम के आधार पर, आप विभिन्न एटी कमांड्स, जैसे "एटी + सीजीएमआई", "एटी + सीजीएसएन", आदि की कोशिश कर सकते हैं।


1
कोई एटी कमांड बिल्कुल काम नहीं कर रहा है! यह मेरी समस्या है! क्या मुझे कुछ कॉन्फ़िगर करने की आवश्यकता है? क्या कमोड लाइन ठीक है? क्या मैं कुछ बड़ी गलती करता हूं?
एलेक्स

@ एलेक्स - जैसा कि मैंने कहा कि मेरे पास इस हार्डवेयर का कोई विकल्प नहीं है, इसलिए इस तरह की जानकारी प्रदान करने से परे आपकी सहायता करना मुश्किल है। आपको इसे डीबग करना होगा। मैं प्रश्न में उपकरणों को चलाने की कोशिश करूँगा और यह देखूंगा कि क्या वे त्रिशंकु स्थिति में हैं, dmesgजानकारी के लिए लॉग में देखें। क्षमा करें, मैं इससे अधिक आपकी सहायता नहीं कर सकता।
SLM

1
क्या आप केवल "AT + DONTREMEMBERZMODEM"> / देव / मॉडेमेटी की प्रतिध्वनि नहीं कर सकते?
1
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.