समय प्राप्त करने के लिए मॉडेम पर एटी कमांड को क्या भेजा जाना चाहिए?


11

मैं SIM800E का उपयोग कर रहा हूं । मैं जानना चाहता हूं कि समय प्राप्त करने के लिए एटी कमांड को मॉडेम में क्या भेजा जाना चाहिए? इस मॉडेम में RTC है। लेकिन मुझे इसे सेल टॉवर के माध्यम से स्वचालित रूप से सेट करने की आवश्यकता है। एटी कमांड का उपयोग करने पर अनुरोध किए जाने पर टॉवर मॉडेम को समय भेज सकता है। मैंने कई फोन में देखा है कि हैंड-ऑफ के दौरान समय अपडेट किया जाता है।

मैनुअल इस जानकारी नहीं है।


1
उस हार्डवेयर डिज़ाइन दस्तावेज़ के अनुसार आपको "SIM800E AT कमांड मैनुअल" प्राप्त करना होगा - एक अलग दस्तावेज़।
RedGrittyBrick

फिर अभ्यास में कि कैसे साधारण गैर-मल्टीमीडिया फोन स्थान अपडेट करते हैं?
gpuguy

3
एनआईटीजेड जीएसएम मानकों का एक वैकल्पिक हिस्सा है, जो सभी वाहक द्वारा समर्थित नहीं है और कुछ मिनटों से बेहतर नहीं हो सकता है।
RedGrittyBrick

3
मेरा मानना ​​है कि यह विषय पर है क्योंकि यह एम 2 एम संचार के लिए एक एम्बेडेड जीएसएम मॉड्यूल के उपयोग की चिंता करता है। यह पोस्ट ऑफ़-टॉपिक क्यों है, और निम्नलिखित चार पोस्टों की अनुमति दी गई थी: उदाहरण 1 2 3 4
tcrosley

जवाबों:


7

मैंने निम्नलिखित कमांड का उपयोग किया है:

AT+CCLK?

जो दिनांक और समय लौटाता है, जैसे:

+CCLK: "00/01/12,05:44:53+00" 

तीन अलग-अलग सेल मॉड्यूल का उपयोग करने वाले उत्पादों में सफलतापूर्वक: Enfora, Telit और Sierra। तथ्य यह है कि यह एटी के बाद एक + चरित्र का उपयोग करता है इसका तात्पर्य यह एक सामान्य (मालिकाना के विपरीत) कमांड है, और सभी सेल मॉड्यूल नहीं होने पर अधिक से अधिक उपलब्ध होना चाहिए। (मालिकाना आदेश एटी के बाद एक विक्रेता विशिष्ट चरित्र का उपयोग करते हैं, जैसे एटी $, एटी%, एटी! आदि।)

जैसा कि मैंने एक टिप्पणी में उल्लेख किया है, अगर आपको इस कमांड का उपयोग करके समय नहीं मिल सकता है (उदाहरण के लिए, यह सभी 0 लौटाता है), तो एक और तरीका है नेटवर्क से कनेक्ट करना और एक HTTP कमांड का उपयोग करके सर्वर से समय प्राप्त करना।

For example, the following HTTP request:
HEAD /index.html HTTP/1.1\r\n
Host: www.somehost.com\r\n;
\r\n

जहाँ कुछहोस्ट अपना सर्वर या Google.com आदि है, यह भी मानता है कि index.html साइट का मुख्य पृष्ठ है (Google के लिए मामला नहीं)।

यह एक शीर्ष लेख लौटाएगा:

HTTP/1.x 200 OK  
Transfer-Encoding: (something)  
Date: Fri, 13 Nov 2013 04:36:25 GMT
(lots more stuff)

जहां तक ​​मुझे पता है, सभी सेवरों को अपने हेडर में जीएमटी समय वापस करने के लिए बाध्य किया जाता है।


1
मेरे द्वारा पढ़ा गया कुछ सामान जो सुझाया गया है + CCLK द्वारा लौटाया गया मूल्य ऑन-बोर्ड घड़ी (RTC) से हो सकता है, जीएसएम नेटवर्क (टॉवर) से नहीं।
RedGrittyBrick 21

1
मैंने उस तरह से वर्णित कमांड को भी पढ़ा है, हालांकि मैं पिछले पांच वर्षों में तीन अलग-अलग सेल मॉड्यूल का उपयोग करके कई अलग-अलग उत्पादों में इसका उपयोग कर रहा हूं, और इसने अमेरिका और यूरोप और एशिया में भी हर जगह काम किया है। उदाहरण के लिए, जर्मनी में कुछ वाहक रहे हैं, जहां यह काम नहीं किया (सभी 0 लौटाए गए); मैंने उनसे संपर्क किया और उन्हें बताया गया कि वे नेटवर्क पर समय अपडेट का समर्थन नहीं करते हैं। इसलिए मैंने एक HTTP 1.1 अनुरोध करने और सर्वर से समय निकालने के लिए कोड लिखा।
tcrosley

1
मुझे लगता है कि HTTP अनुरोध बेहतर लिखा जा सकता है HEAD / HTTP/1.0\r\nHost: example.com\r\n\r\nक्योंकि मुझे लगता /है कि 404 से कम संभावना है और HTTP 1.0 बेहतर रूप से HTTP के हमारे (डिवाइस-वार) अज्ञान का प्रतिनिधित्व करता है। इसके अलावा, अर्धविराम एक टाइपो की तरह दिखता है। इसके अलावा, विनिर्देश द्वारा तिथि GMT / UTC है ( यह भी देखें )।

1
यह उत्तर सूचित कर रहा है लेकिन ऑनबोर्ड आरटीसी बनाम नेटवर्क टाइम समस्या के बारे में एक अद्यतन के योग्य है।

5

सबसे पहले, NITZ को कई नेटवर्कों में खराब समर्थन दिया जाता है (आप कह सकते हैं कि COST-CUTTING)। मैं इस पर बिल्कुल भी भरोसा नहीं करूंगा क्योंकि 1 से 10 नेटवर्क इसका इस्तेमाल करते हैं, खासकर दूर दराज की जगहों पर।

दूसरा + CCLK कमांड मॉडेम के आंतरिक RTC के लिए है। कुछ मोडेम में नेटवर्क से इस घड़ी को अपडेट करने की सुविधा है। इस पर भरोसा करना जोखिम भरा है।

उपरोक्त HTTP अनुरोध अधूरा है अर्थात यह काम नहीं करता है। मुझे पता था कि ऐसा कैसे करना है जब यह काम करेगा तो वापस लौट आएगा।

तथ्य यह है कि यह एटी के बाद एक + चरित्र का उपयोग करता है इसका तात्पर्य यह एक सामान्य (मालिकाना के विपरीत) कमांड है, और सभी सेल मॉड्यूल नहीं होने पर अधिक से अधिक उपलब्ध होना चाहिए। (मालिकाना आदेश एटी के बाद एक विक्रेता विशिष्ट चरित्र का उपयोग करते हैं, जैसे एटी $, एटी%, एटी! आदि।)

यह पूरी तरह से सच नहीं है। मालिकाना मॉडेम कमांड हैं जो एटी + कन्वेंशन का पालन करते हैं। उदाहरण के लिए AT + WOPEN एक मालिकाना सिएरा कमांड है।

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


4

AT + CLTS = 1 (स्थानीय समय स्टाम्प प्राप्त करें) AT & W (कॉन्फ़िगरेशन सहेजें)

मॉडेम बंद करें और मॉडेम चालू करें (नेटवर्क से स्थानीय समय प्राप्त करने के लिए रिबूट)

अगली बार जब मॉडम बूट अप आपको नेटवर्क द्वारा स्थानीय समय प्राप्त करने में सक्षम होना चाहिए और भेजकर पढ़ा जा सकता है

एटी + CCLK?

इसने मेरे लिए काम किया सिम 800 जीएसएम मॉडम का उपयोग करके और अधिक जानकारी के लिए कमांड कमांड विवरण पढ़ें


@ s0nic2k उत्तर की पुष्टि की, यह अपेक्षा के अनुरूप काम नहीं करेगा।
अली'०

3

पुट्टी:

AT+COPS=2

OK

AT+CTZU=1

OK

AT+COPS=0

OK

+CTZU: "15/05/06,17:25:42",-12,0

पूरी तरह से काम करता है, उसके बाद आपको परिणाम और स्थान को clk में पार्स करना होगा क्योंकि यह स्वचालित रूप से नहीं होता है। (कम से कम मेरे सिने में)


6
यदि आप यह समझा सकते हैं कि अंग्रेजी में, यह क्या करता है और क्यों यह प्रश्न का हल है तो यह मदद करेगा।
डेविड

@ डेविड बने रहें, हम चैट में अनुवाद पर काम कर रहे हैं।
निक अलेक्सिएव

2
मेरे लिए काम करने वाले SIM800H के लिए वेरिएंट: AT + CTZU = 1 के बजाय AT + CLTS = 1 का उपयोग करें (क्योंकि CTZU समर्थित नहीं है)। तब आपको एक अवांछित संदेश मिलेगा जैसे * PSUTTZ: 2017,1,30,20,17,28, "- 20", 0 जब आप reregister करते हैं
मैट थॉमस

2

AT + CIPGSMLOC कमांड का उपयोग करें। यह SIMCOM मॉड्यूल में अच्छा काम करता है।

इस कमांड को उपयोग करने से पहले आपको GPRS सेवा संलग्न करनी होगी। तो पहले उपयुक्त कमांड अनुक्रम का उपयोग करके जीपीआरएस सेवा संलग्न करें फिर जीएसएम नेटवर्क से दिनांक और समय प्राप्त करने के लिए इस कमांड का उपयोग करें।

जीपीआरएस सेवा संलग्न करने के लिए:

CMD:AT+CGATT=1 CMD:AT+SAPBR=3,1,"Contype","GPRS" CMD:AT+SAPBR=3,1,"APN","" CMD:AT+SAPBR=3,1,"USER","" CMD:AT+SAPBR=3,1,"PWD","" CMD:AT+SAPBR=1,1 CMD:AT+SAPBR=2,1 /* to confirm that GPRS is attached. will show IP if attached */

फिर जीएसएम स्थान कमांड का उपयोग करें:

AT+CIPGSMLOC=1,1

इस कमांड को नेटवर्क से जानकारी प्राप्त करने के लिए काफी समय (कुछ सेकंड) की आवश्यकता है ताकि कमांड निष्पादन फ़ंक्शन को उचित समयबाह्य दे।

यह आदेश BTS स्थान भी लौटाता है जिससे मॉड्यूल जुड़ा हुआ है। तो आप जीएसएम मॉड्यूल के रूप में अच्छी तरह से एक सटीक स्थान प्राप्त कर सकते हैं।

अधिक जानकारी के लिए इस मैनुअल को देखें: (SIM800 के लिए इसी तरह काम करता है)

SIM900_GSM Location AT Command Manual_V1.00

यह भी ध्यान दें कि AT + CLBS कमांड इस कमांड के समान नहीं है। यह कुछ क्षेत्रों में काम नहीं कर सकता है। (मैं इसका इस्तेमाल नहीं कर पाया!)। लेकिन AT + CIPGSMLOC हमेशा काम करता है।


मुझे +CIPGSMLOC: 302<\r><\n> जवाब मिलता है
अली 9०

1
@ Ali80 अपना सिमकार्ड क्रेडिट रिचार्ज करें। यह तब हो सकता है यदि आपके सिमकार्ड में क्रेडिट है लेकिन लंबे समय तक चार्ज नहीं किया गया है। आप एक और सिमकार्ड के साथ भी परीक्षण कर सकते हैं।
एमडीआर

हाँ, मैं इस पद्धति के कार्यों की पुष्टि कर सकता हूं, मेरे सिमकार्ड के पास क्रेडिट था लेकिन कुछ डेटा प्लान सीमित उपयोग के थे।
अली 80

1

RedGrittyBrick ने बताया कि NITZ इसका जवाब है। हालांकि, यह एक संदेश है जो केवल नेटवर्क द्वारा भेजा जाता है, आमतौर पर नेटवर्क में शामिल होने पर। कुछ वाहक इसे भेजते हैं, कुछ नहीं। इसका अनुरोध करने का कोई मानक तरीका नहीं है।


1

यहाँ सेलुलर नेटवर्क समय पाने के लिए AT कमांड अनुक्रम है। यह मेरे UBLOX LEON G-200 GSM मॉड्यूल में काम करता है।

GSM_Send_Modem_Command("AT+COPS=2\r\n");//de register
GSM_Send_Modem_Command("AT+CTZU=1\r\n");//automatic time zone update is enabled
GSM_Send_Modem_Command("AT+COPS=0\r\n");// register to network
GSM_Send_Modem_Command("AT+CCLK?\r\n");// gets the clock of the MT

1

पहले यह दो कमांड
AT + CLTS = 1; & W भेजें

AT + CFUN = 1,1 और AT + CLTS से अधिक है? जांचें कि क्या आपको यह उत्तर + क्लेट्स: 1 मिलता है
और इस आदेश को AT + CCLK भेजने के बजाय?


EE.SE में आपका स्वागत है। अपनी पोस्टों में कोड स्निपेट्स के आसपास दो बैक-टिक्स (``) का उपयोग {}करें या अन्य उत्तरों की तरह कोड के ब्लॉक के लिए एडिटर टूलबार पर बटन का उपयोग करें। यह एक ग्रे बैकग्राउंड और निश्चित चौड़ाई का फॉन्ट देगा जिससे यह देखना आसान होगा कि आपका कोड कहां से शुरू होता है और कहां खत्म होता है।
ट्रांजिस्टर

0

जब मैंने आंतरिक आरटीसी को पढ़ना चाहा है, तब मैंने एनआईएसजेड का सफलतापूर्वक उपयोग किया है। नेटवर्क से मॉडेम RTC सेट होने से पहले एक या दो मिनट लग सकते हैं। यह इंगित करने के लिए एक झंडा बनाए रखने के लायक है कि क्या समय वास्तव में वैध है।


0

मैंने U-Blox LTE के लिए एक फर्मवेयर विकसित किया। क्या मैंने AT + CCLK का उपयोग किया है? मॉडेम से वर्तमान स्थानीय समय प्राप्त करने के लिए।

यह निम्नलिखित प्रारूप में एक समय देता है। ऐसा नहीं है कि यह एक सिंक्रनाइज़ कमांड है।

+CCLK: "00/01/01,05:44:53+00" (might get unsynchronized time if the modem time is not sync with the system time)

तो नेटवर्क के साथ समय को सिंक करने के लिए, पंजीकरण से पहले निम्नलिखित एटी कमांड भेजा गया था

AT+CTZU=1\r\n

तो मेरा आदेश अनुक्रम है:

AT+CTZU=1\r\n
AT+CREG=1\r\n (to subscribe for the network registration updates)
AT+CCLK?\r\n (The Time Zone information is provided after the network registration, if the network supports the time
zone information)

अतिरिक्त तर्क यह सुनिश्चित करने के लिए कि इसका सही समय है:

यह 70/01/01 या 00/01/01 के खिलाफ तारीख की जांच करता है (हमारे मामले में, वे समय हैं जो हमें प्राप्त होते हैं यदि मॉडेम में एक अमान्य खाता है)। और अगर यह अमान्य है तो यह समय-समय पर हर 1 मिनट में कोशिश करता है जब तक कि यह एक सही समय न हो जाए। कुछ रिट्रीट के बाद CCLK भेजना बंद कर देता है? और अन्य समय स्रोतों पर भरोसा करते हैं।

नोट: NITZ अभी तक देशों के सीमित सेट में समर्थित है ( https://en.wikipedia.org/wiki/NITZ )

इसलिए समय का अद्यतन करने का सबसे अच्छा तरीका है यदि यह उस देश में समर्थित नहीं है।

मेरे मामले में हमारे पास GPS मॉड्यूल है इसलिए मुझे GNSS डेटा के माध्यम से समय अपडेट प्राप्त होता है।

इसके अतिरिक्त, जो यहां प्रासंगिक नहीं है, लेकिन समय सिंक्रनाइज़ेशन के लिए उपयोगी माना जाता है।

हम सिस्टम समय (मैन्युअल कमांड सक्षम) को अपडेट करने के लिए क्रोनी डेमॉन चलाते हैं। इसलिए दोनों समय अपडेट प्राप्त किए जाते हैं और क्रॉनी सही समय तय करता है और सिस्टम समय अपडेट करता है।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.