இந்த எழுதுதல் Serial.readBytesUntil() செயல்பாட்டை ஆழமாக தொகுக்கிறது. அது என்ன, அது எப்படி வேலை செய்கிறது, Arduino குறியீட்டில் அதை எவ்வாறு பயன்படுத்துவது என்பதை விளக்கும் Arduino குறியீட்டை நாங்கள் விவாதிப்போம்.
Serial.readBytesUntil()
Serial.readBytesUntil() செயல்பாடு Arduino சீரியல் வகுப்பின் ஒரு பகுதியாகும். இந்தச் செயல்பாடு ஒரு குறிப்பிட்ட எழுத்து அல்லது அதிகபட்ச பைட்டுகளைக் கண்டுபிடிக்கும் வரை ஸ்ட்ரீமிலிருந்து தரவைப் படிக்கும். எழுத்து அல்லது அதிகபட்ச எண்ணிக்கையிலான பைட்டுகள் கண்டறியப்பட்டதும், செயல்பாடு படிப்பதை நிறுத்திவிட்டு, அது படித்த தரவை வழங்கும்.
பின்வரும் நிபந்தனைகளை சந்திக்கும் போதெல்லாம் Serial.readBytesUntil() செயல்பாடு முடிவடைகிறது:
- செயல்பாடு ஒரு டெர்மினேட்டர் தன்மையைக் கண்டறியும் போது
- வரையறுக்கப்பட்ட இடையக நீளம் அடைந்தது
- நிர்ணயிக்கப்பட்ட நேரம் கடந்துவிட்டது அல்லது நேரம் முடிந்துவிட்டது
இந்தச் செயல்பாடு டெர்மினேட்டர் எழுத்தை வழங்காது, டெர்மினேட்டருக்கு முந்தைய கடைசி எழுத்து வரை மட்டுமே தரவை வழங்கும். இந்தச் செயல்பாட்டின் மூலம் 0 திரும்பப் பெறப்பட்டால், சரியான தரவு எதுவும் கிடைக்கவில்லை என்று அர்த்தம்.
தொடரியல்
Serial.readBytesUntil() செயல்பாடு பின்வரும் தொடரியல் உள்ளது:
தொடர். படிக்க பைட்டுகள் வரை ( கரி டெர்மினேட்டர், கரி * தாங்கல், அளவு_டி நீளம் ) ;
அளவுருக்கள்
Serial.readBytesUntil() செயல்பாட்டின் அளவுருக்கள் பின்வருமாறு:
- டெர்மினேட்டர் பாத்திரம்: செயல்பாடு வாசிப்பை நிறுத்தும் எழுத்து.
- தாங்கல்: பஃபரில் படிக்கும் தொடர் தரவு அனுமதிக்கப்பட்ட தரவு வகை என்பது சார் அல்லது பைட்டின் வரிசையாகும்.
- நீளம்: படிக்க வேண்டிய பைட்டுகளின் அதிகபட்ச எண்ணிக்கை. அனுமதிக்கப்பட்ட தரவு வகை முழு எண்ணாக .
திரும்பு
பஃப்பரில் வைக்கப்பட்டுள்ள பைட்டுகளின் எண்ணிக்கை.
குறிப்புகள்: பதில் தரவில், டேட்டா ஸ்ட்ரீமில் இருந்து Serial.readBytesUntil() செயல்பாட்டின் மூலம் டெர்மினேட்டர் எழுத்து நிராகரிக்கப்படுகிறது.
உதாரணம் Arduino குறியீடு
பின்வரும் Arduino குறியீட்டின் பயன்பாட்டை விளக்குகிறது Serial.readBytesUntil() செயல்பாடு:
வெற்றிடமானது அமைவு ( ) {தொடர். தொடங்கும் ( 9600 ) ; // 9600 பாட் வீதத்துடன் தொடர் இணைப்பைத் தொடங்கவும்
}
வெற்றிடமானது வளைய ( ) {
பைட் தாங்கல் [ 5 ] ; // உள்வரும் தரவைச் சேமிக்க பைட் வரிசையை வரையறுக்கவும்
முழு எண்ணாக எண் பைட்டுகள் = தொடர். படிக்க பைட்டுகள் வரை ( ' \n ' , தாங்கல், 5 ) ; // ஒரு புதிய வரி எழுத்து வரும் வரை தொடர் இணைப்பிலிருந்து உள்வரும் தரவைப் படிக்கவும்
என்றால் ( எண் பைட்டுகள் > 0 ) { // ஏதேனும் பைட்டுகள் வாசிக்கப்பட்டதா எனச் சரிபார்க்கவும்
தொடர். அச்சு ( 'பெற்ற பாத்திரம்:' ) ;
தொடர். எழுது ( தாங்கல், எண் பைட்டுகள் ) ; // பெறப்பட்ட தரவை தொடர் மானிட்டரில் அச்சிடவும்
தொடர். println ( ) ;
}
}
அமைவு() செயல்பாட்டில் பாட் வீதம் தொடர் தொடர்பை நிறுவும்.
லூப்() செயல்பாட்டில், முதலில் பைட் வரிசையை வரையறுக்கிறோம் 'தடுப்பு' . தொடர் இணைப்பிலிருந்து படிக்கப்படும் உள்வரும் தரவைச் சேமிக்க இந்த வரிசை பயன்படுத்தப்படும்.
அடுத்து, நாம் அழைக்கிறோம் Serial.readBytesUntil() செயல்பாடு, இது ஒரு புதிய வரி எழுத்தை ('\n') சந்திக்கும் வரை தொடர் இணைப்பிலிருந்து உள்வரும் தரவைப் படிக்கிறது. அடுத்த வாதம் இடையகத்தின் நீளம் ஆகும், இது ஒரு நேரத்தில் அதிகபட்சமாக 5 பைட்டுகள் தரவை எடுக்கும்.
திரும்பிய பைட் இதில் சேமிக்கப்படுகிறது 'நம்பைட்ஸ்' மாறி. பெறப்பட்ட தரவு இடையக நீளத்தை விட அதிகமாக இருந்தால், தரவு நிறுத்தப்பட்டு அடுத்த தரவு ஸ்ட்ரீமில் அனுப்பப்படும்.
வெளியீடு
முடிவுரை
தி Serial.readBytesUntil() Arduino நிரலாக்கத்தில் செயல்பாடு ஒரு குறிப்பிட்ட டெர்மினேட்டர் எழுத்து பெறும் வரை தொடர் உள்ளீட்டு ஸ்ட்ரீமில் இருந்து பைட்டுகளைப் படிக்கிறது. செயல்பாடு மொத்த பைட்டுகளை படிக்க கொடுக்கிறது மற்றும் வழங்கப்பட்ட இடையகத்தில் அவற்றை சேமிக்கிறது. Serial.readBytesUntil() செயல்பாடு தொடர்பான கூடுதல் தகவல்களைப் பெற கட்டுரையைப் படிக்கவும்.