Arduino प्रोग्रामिंग में Serial.readBytesUntil () फ़ंक्शन

Arduino Programinga Mem Serial Readbytesuntil Fanksana



जब Arduino के साथ प्रोग्रामिंग की बात आती है, तो ऐसे कई कार्य हैं जिनका उपयोग आप इनपुट और आउटपुट में हेरफेर करने के लिए कर सकते हैं। एक मुख्य Arduino फ़ंक्शन है सीरियल.रीडबाइट्स तक () , जो आपको एक विशिष्ट वर्ण मिलने तक स्ट्रीम से डेटा पढ़ने की अनुमति देता है। यह फ़ंक्शन सीरियल उपकरणों से डेटा को तब तक पढ़ने में मदद करता है जब तक हमें आवश्यक डेटा नहीं मिल जाता।

यह राइटअप Serial.readBytesUntil() फ़ंक्शन को गहराई से संकलित करता है। हम चर्चा करेंगे कि यह क्या है, यह कैसे काम करता है, और Arduino कोड को कवर करता है जो बताता है कि इसे Arduino कोड में कैसे उपयोग किया जाए।

सीरियल.रीडबाइट्स तक ()

Serial.readBytesUntil () फ़ंक्शन Arduino सीरियल क्लास का एक हिस्सा है। यह फ़ंक्शन स्ट्रीम से डेटा तब तक पढ़ता है जब तक कि उसे कोई विशिष्ट वर्ण या बाइट्स की अधिकतम संख्या नहीं मिल जाती। एक बार अक्षर या बाइट्स की अधिकतम संख्या मिल जाने के बाद, फ़ंक्शन पढ़ना बंद कर देता है और उसके द्वारा पढ़े गए डेटा को वापस कर देता है।







Serial.readBytesUntil() फ़ंक्शन तब समाप्त हो जाता है जब निम्न शर्तें पूरी होती हैं:



  • जब फ़ंक्शन टर्मिनेटर कैरेक्टर का पता लगाता है
  • परिभाषित बफर लंबाई तक पहुँच गया है
  • निर्धारित समय बीत चुका है या टाइम्स आउट हो गया है

यह फ़ंक्शन टर्मिनेटर वर्ण वापस नहीं करता है यह केवल टर्मिनेटर से पहले अंतिम वर्ण तक डेटा लौटाता है। जब इस फ़ंक्शन द्वारा 0 लौटाया जाता है तो इसका मतलब है कि कोई वैध डेटा नहीं मिला है।



वाक्य - विन्यास

Serial.readBytesUntil() फ़ंक्शन में निम्न सिंटैक्स है:





धारावाहिक। readBytesUntil ( चार टर्मिनेटर, चार * बफर, size_t लंबाई ) ;

पैरामीटर

फ़ंक्शन Serial.readBytesUntil () के पैरामीटर निम्नलिखित हैं:

  • टर्मिनेटर चरित्र: वह वर्ण जिस पर फ़ंक्शन पढ़ना बंद कर देगा.
  • बफर: बफर में रीड सीरियल डेटा है अनुमत डेटा प्रकार चार या बाइट की एक सरणी है।
  • लंबाई: पढ़ने के लिए बाइट्स की अधिकतम संख्या। अनुमत डेटा प्रकार है int यहाँ .

वापस करना

बफ़र में रखे गए बाइट्स की संख्या।



टिप्पणियाँ: बदले में डेटा टर्मिनेटर कैरेक्टर को डेटा स्ट्रीम से Serial.readBytesUntil () फ़ंक्शन द्वारा हटा दिया जाता है।

उदाहरण Arduino कोड

निम्नलिखित Arduino कोड के उपयोग की व्याख्या करें सीरियल.रीडबाइट्स तक () समारोह:

खालीपन स्थापित करना ( ) {
धारावाहिक। शुरू ( 9600 ) ; // 9600 के बॉड रेट के साथ सीरियल कनेक्शन को इनिशियलाइज़ करें
}

खालीपन कुंडली ( ) {
बाइट बफर [ 5 ] ; // आने वाले डेटा को स्टोर करने के लिए एक बाइट सरणी को परिभाषित करें
int यहाँ numBytes = धारावाहिक। readBytesUntil ( ' \एन ' , बफ़र, 5 ) ; // सीरियल कनेक्शन से आने वाले डेटा को तब तक पढ़ें जब तक कि एक नई लाइन का सामना न हो जाए

अगर ( numBytes > 0 ) { // जांचें कि क्या कोई बाइट पढ़ा गया था
धारावाहिक। छपाई ( 'प्राप्त चरित्र:' ) ;
धारावाहिक। लिखना ( बफर, numBytes ) ; // प्राप्त डेटा को सीरियल मॉनिटर पर प्रिंट करें
धारावाहिक। println ( ) ;
}
}

सेटअप () फ़ंक्शन में बॉड रेट सीरियल कम्युनिकेशन स्थापित करेगा।

लूप () फ़ंक्शन में, हम पहले एक बाइट सरणी को परिभाषित करते हैं जिसे कहा जाता है 'बफर' . इस सरणी का उपयोग सीरियल कनेक्शन से आने वाले डेटा को पढ़ने के लिए किया जाएगा।

अगला, हम कॉल करते हैं सीरियल.रीडबाइट्स तक () फ़ंक्शन, जो सीरियल कनेक्शन से आने वाले डेटा को तब तक पढ़ता है जब तक कि वह एक न्यूलाइन कैरेक्टर ('\n') से न मिल जाए। अगला तर्क बफ़र की लंबाई है जो एक बार में अधिकतम 5 बाइट डेटा लेगा।

लौटाई गई बाइट को स्टोर किया जाता है 'संख्याबाइट्स' चर। यदि प्राप्त डेटा बफर लंबाई से अधिक है तो डेटा समाप्त कर दिया जाएगा और अगली डेटा स्ट्रीम में भेजा जाएगा।

उत्पादन

निष्कर्ष

सीरियल.रीडबाइट्स तक () Arduino प्रोग्रामिंग में फ़ंक्शन एक सीरियल इनपुट स्ट्रीम से बाइट पढ़ता है जब तक कि एक निर्दिष्ट टर्मिनेटर वर्ण प्राप्त नहीं हो जाता। फ़ंक्शन कुल बाइट पढ़ता है और उन्हें प्रदान किए गए बफर में संग्रहीत करता है। Serial.readBytesUntil() Function से संबंधित अधिक जानकारी प्राप्त करने के लिए लेख पढ़ें।