நுண்ணோக்கியின் கீழ் BLE (ATTы GATTы...)

நுண்ணோக்கியின் கீழ் BLE (ATTы GATTы...)

நுண்ணோக்கியின் கீழ் BLE (ATTы GATTы...)

பகுதி 1, கண்ணோட்டம்

புளூடூத் 4.0க்கான முதல் விவரக்குறிப்பு வெளியிடப்பட்டதில் இருந்து ஏற்கனவே நீண்ட காலம் கடந்துவிட்டது. மேலும், BLE தலைப்பு மிகவும் சுவாரஸ்யமாக இருந்தாலும், அதன் சிக்கலான தன்மை காரணமாக பல டெவலப்பர்களை அது இன்னும் தள்ளி வைக்கிறது. எனது முந்தைய கட்டுரைகளில், நான் முக்கியமாக குறைந்த மட்டமான இணைப்பு அடுக்கு மற்றும் இயற்பியல் அடுக்குகளைப் பார்த்தேன். பண்புக்கூறு நெறிமுறை (ATT) மற்றும் பொது பண்புக்கூறு சுயவிவரம் (GATT) போன்ற சிக்கலான மற்றும் குழப்பமான கருத்துகளை நாடுவதை இது தவிர்க்க அனுமதித்தது. இருப்பினும், எங்கும் செல்ல முடியாது, அவற்றைப் புரிந்து கொள்ளாமல், இணக்கமான சாதனங்களை உருவாக்குவது சாத்தியமில்லை. இன்று இந்த அறிவை உங்களுடன் பகிர்ந்து கொள்ள விரும்புகிறேன். எனது கட்டுரையில் நான் நம்புவேன் பாடநூல் நோர்டிக் வலைத்தளத்திலிருந்து ஆரம்பநிலைக்கு. எனவே ஆரம்பிக்கலாம்.

எல்லாம் ஏன் மிகவும் கடினம்?

என் கருத்துப்படி, ஸ்மார்ட்போன்கள் வழியாக சாதனங்களை நிர்வகிப்பது மிகவும் நம்பிக்கைக்குரிய மற்றும் நீண்டகால தலைப்பு என்பது உடனடியாகத் தெளிவாகியது. எனவே, அதை உடனடியாகவும் அதிகபட்சமாகவும் கட்டமைக்க முடிவு செய்தனர். எனவே பல்வேறு கேஜெட்களின் உற்பத்தியாளர்கள் தங்கள் சொந்த நெறிமுறைகளைக் கொண்டு வரவில்லை, பின்னர் அவை பொருந்தாது. அதனால் சிரமம். ஏற்கனவே முதல் கட்டத்தில், அவர்கள் BLE நெறிமுறையில் சாத்தியமான அனைத்தையும் கசக்க முயன்றனர். அது பின்னர் பயனுள்ளதாக இருக்குமா இல்லையா என்பது முக்கியமல்ல. கூடுதலாக, எதிர்காலத்திற்கான சாதனங்களின் பட்டியலை விரிவாக்குவதற்கான சாத்தியத்தை அவர்கள் வழங்கினர்.

BLE நெறிமுறை வரைபடம் வரையப்பட்டுள்ள படத்தைப் பார்ப்போம். இது பல அடுக்குகளைக் கொண்டுள்ளது. சாதனத்தின் ரேடியோ சேனலுக்கு மிகக் குறைந்த, உடல் அடுக்கு (PHY) பொறுப்பாகும். லிங்க் லேயர்(எல்எல்) அனுப்பப்பட்ட செய்தியில் பைட்டுகளின் முழு வரிசையையும் கொண்டுள்ளது. முந்தைய கட்டுரைகளில் இதை சரியாகப் படித்தோம். ஹோஸ்ட் கன்ட்ரோலர் இன்டர்ஃபேஸ் (HCI) என்பது BLE அடுக்குகள் அல்லது சில்லுகளுக்கு இடையேயான பரிமாற்ற நெறிமுறை ஆகும், இது வெவ்வேறு சில்லுகளில் கன்ட்ரோலர் மற்றும் ஹோஸ்ட் செயல்படுத்தப்பட்டால். லாஜிக்கல் லிங்க் கன்ட்ரோல் மற்றும் அடாப்டேஷன் புரோட்டோகால் (L2CAP) பாக்கெட் உருவாக்கம், ஃப்ரேமிங், பிழை கட்டுப்பாடு மற்றும் பாக்கெட் அசெம்பிளி ஆகியவற்றிற்கு பொறுப்பாகும். பாதுகாப்பு மேலாளர் நெறிமுறை (SMP) பாக்கெட்டுகளை என்க்ரிப்ட் செய்வதற்கு பொறுப்பாகும். பொது அணுகல் சுயவிவரம் (GAP) "யார் யார்" என்பதை தீர்மானிக்க சாதனங்களுக்கு இடையேயான தரவுகளின் ஆரம்ப பரிமாற்றத்திற்கு பொறுப்பாகும். ஸ்கேனிங் மற்றும் விளம்பரமும் இதில் அடங்கும். இந்த கட்டுரையில் நான் நெறிமுறையின் மீதமுள்ள இரண்டு பகுதிகள் மீது கவனம் செலுத்துவேன் - GATT மற்றும் ATT. GATT என்பது ATT இன் மேற்கட்டமைப்பு ஆகும், எனவே அவை நெருக்கமாகப் பின்னிப் பிணைந்துள்ளன.

நுண்ணோக்கியின் கீழ் BLE (ATTы GATTы...)

கதையை எளிமைப்படுத்த, நான் ஒரு ஒப்புமைக்கு திரும்ப விரும்புகிறேன். நான் எங்கோ கேட்டிருக்கிறேன், ஆதரிக்க விரும்புகிறேன். BLE சாதனத்தை பல அலமாரிகளைக் கொண்ட புத்தக அலமாரியாகக் கருதுங்கள். ஒவ்வொரு அலமாரியும் தனித்தனி தீம். எடுத்துக்காட்டாக, அறிவியல் புனைகதை, கணிதம் மற்றும் கலைக்களஞ்சியங்கள் கொண்ட அலமாரிகள் எங்களிடம் உள்ளன. ஒவ்வொரு அலமாரியிலும் ஒரு குறிப்பிட்ட தலைப்புடன் புத்தகங்கள் உள்ளன. மேலும் சில புத்தகங்களில் குறிப்புகளுடன் கூடிய பேப்பர் புக்மார்க்குகளும் இருக்கும். கூடுதலாக, எங்களிடம் அனைத்து புத்தகங்களின் சிறிய காகித அட்டவணை உள்ளது. உங்களுக்கு நினைவில் இருந்தால், பள்ளி நூலகங்கள் காகித அட்டைகளுடன் ஒரு குறுகிய பெட்டி. இந்த ஒப்புமையுடன், அமைச்சரவை எங்கள் சாதனத்தின் சுயவிவரமாகும். அலமாரிகள் சேவைகள், புத்தகங்கள் பண்புகள் மற்றும் பட்டியல் ஒரு பண்பு அட்டவணை. புத்தகங்களில் உள்ள புக்மார்க்குகள் விளக்கங்களாகும், அதைப் பற்றி மேலும் விரிவாகப் பேசுவேன்.

சாதனங்களை உருவாக்கிய எவருக்கும் பல திட்டங்களில் ஒரே மாதிரியான குறியீடுகள் உள்ளன என்பது தெரியும். உண்மை என்னவென்றால், பல சாதனங்கள் ஒரே மாதிரியான செயல்பாட்டைக் கொண்டுள்ளன. எடுத்துக்காட்டாக, சாதனங்கள் பேட்டரிகளால் இயக்கப்பட்டால், அவற்றின் அளவை சார்ஜ் செய்வதிலும் கண்காணிப்பதிலும் உள்ள சிக்கல் ஒரே மாதிரியாக இருக்கும். சென்சார்களுக்கும் இதுவே செல்கிறது. உண்மையில், நிரலாக்கத்திற்கான ஒரு பொருள் சார்ந்த அணுகுமுறை "பண்புகள் மற்றும் நடத்தைகளை ஒருங்கிணைக்கும் பொருள்களை ஒரு சுய-கட்டுமான தொழிற்சங்கமாக உருவாக்கும் திறனை வழங்குகிறது, அதை மீண்டும் பயன்படுத்தலாம்". என் கருத்துப்படி, BLE இதே அணுகுமுறையை முயற்சித்தது. புளூடூத் சிறப்பு ஆர்வக் குழு (SIG) மூலம் சுயவிவரங்கள் உருவாக்கப்பட்டன. ஒரே சுயவிவரங்களைக் கொண்ட வெவ்வேறு உற்பத்தியாளர்களின் சாதனங்கள் சிரமமின்றி ஒருவருக்கொருவர் வேலை செய்ய வேண்டும். சுயவிவரங்கள், சேவைகள் மற்றும் சிறப்பியல்புகளின் சேவைகளைக் கொண்டிருக்கின்றன, அவை விளக்கத்தால் கூடுதலாக வழங்கப்படுகின்றன. பொதுவாக, இது போல் தோன்றலாம்:

நுண்ணோக்கியின் கீழ் BLE (ATTы GATTы...)

எடுத்துக்காட்டாக, இதய துடிப்பு மானிட்டரின் சுயவிவர வரைபடத்தைக் கவனியுங்கள் (உடற்தகுதி வளையல்). இது இரண்டு சேவைகள் மற்றும் பல பண்புகளைக் கொண்டுள்ளது. அதிலிருந்து சுயவிவர வரிசைமுறை உடனடியாக தெளிவாகிறது. சோதனைச் சாவடியின் சிறப்பியல்பு மொத்த கலோரி செலவின எண்ணிக்கையை பூஜ்ஜியத்திற்கு மீட்டமைக்கிறது.

1. இதயத் துடிப்பு சேவை மூன்று குணாதிசயங்களை உள்ளடக்கியது (0x180D):
    a) கட்டாய இதய துடிப்பு பண்பு (0x2A37)
    b) விருப்ப உடல் சென்சார் நிலை பண்பு (0x2A38)
    c) இதய துடிப்பு கட்டுப்பாட்டு புள்ளியின் நிபந்தனை பண்புகள் (0x2A39)
2. பேட்டரி பராமரிப்பு சேவை (0x180F):
    a) கட்டாய பேட்டரி சார்ஜ் நிலை பண்பு (0x2A19)

UUID,

சுயவிவர உறுப்புகளை (சேவைகள், பண்புகள் மற்றும் விளக்கங்கள்) தனித்துவமாக அணுகுவதற்கு, அவற்றை எப்படியாவது எண்ண வேண்டும். இந்த நோக்கத்திற்காக, யுனிவர்சலி யுனிக் ஐடி (யுயுஐடி) அல்லது யுனிவர்சலி யுனிக் ஐடென்டிஃபையர் போன்ற ஒரு கருத்து அறிமுகப்படுத்தப்பட்டது. ஒவ்வொரு வரியின் அடைப்புக்குறிக்குள் UUID குறிக்கப்படுகிறது. மேலும் இங்கு ஒரு தனிச்சிறப்பு உள்ளது. UUID க்கு, 16 மற்றும் 128 பிட்கள் நீளமுள்ள குறியீட்டைப் பயன்படுத்த முடிவு செய்தோம். ஏன், நீங்கள் கேட்கிறீர்களா? BLE நெறிமுறையில், அனைத்தும் ஆற்றல் சேமிப்பு பற்றியது. எனவே, 16 பிட்களின் பரிமாணம் மிகவும் நியாயமானது. எதிர்காலத்தில் 65 ஆயிரத்துக்கு மேல் உருவாக்கப்பட வாய்ப்பில்லை. தனித்துவமான சேவைகள் மற்றும் பண்புகள். இந்த நேரத்தில், அவை ஏற்கனவே கணக்கிடப்பட்டவை (இது எங்கிருந்து வந்தது என்பதை நினைவில் கொள்க - "அவர் உங்களையும் எண்ணினார்" :-)) எண்ணிடப்பட்ட கூறுகள் சுயவிவரங்கள், சேவைகள், பண்புகள் и விளக்கங்கள் நீங்கள் இணைப்புகளைப் பார்க்கலாம்.

இருப்பினும், இணையத்தில் 4 பைட் ஐபி முகவரிகள் கொண்ட கதை அனைவருக்கும் நினைவிருக்கிறது என்று நினைக்கிறேன். முதலில் அது போதும் என்று நினைத்தோம், ஆனால் இப்போது இன்னும் 6-பைட் முகவரிக்கு மாற முடியாது. இந்த தவறை மீண்டும் செய்யாமல் இருக்கவும், DIYers களின் விளையாட்டுத்தனமான கைகளுக்கு இலவச கட்டுப்பாட்டை வழங்கவும், SIG உடனடியாக 128-பிட் UUIDகளை அறிமுகப்படுத்த முடிவு செய்தது. இது தனிப்பட்ட முறையில் எனக்கு உரிமம் பெறாத 433 மெகா ஹெர்ட்ஸ் இசைக்குழுவை நினைவூட்டுகிறது, இது ரேடியோ சேனலில் இருந்து அனைத்து வகையான குலிபின்களுக்கும் வழங்கப்பட்டது. எங்கள் விஷயத்தில், சேவைகள் மற்றும் பண்புகளின் 128-பிட் அடையாளங்காட்டி வளர்க்கப்பட்டது. இதன் பொருள், எங்கள் சேவைகள் மற்றும் சாதனங்களுக்கு, கிட்டத்தட்ட எந்த 128-பிட் மதிப்பையும் பயன்படுத்தலாம். அதே, அதே UUID கொண்டு வருவதற்கான நிகழ்தகவு பூஜ்ஜியமாக இருக்கும்.

உண்மையில், குறுகிய 16-பிட் UUIDகள் 128-பிட் மதிப்பிற்கு அவற்றின் நீட்டிப்பைக் கொண்டுள்ளன. விவரக்குறிப்பில், இந்த நீட்டிப்பு புளூடூத் அடிப்படை UUID என்று அழைக்கப்படுகிறது மற்றும் 00000000-0000-1000-8000-00805F9B34FB மதிப்பைக் கொண்டுள்ளது. எடுத்துக்காட்டாக, 16-பிட் பண்புக்கூறு UUID ஆனது 0x1234 மதிப்பைக் கொண்டிருந்தால், அதற்கு சமமான 128-பிட் UUID ஆனது 00001234-0000-1000-8000-00805F9B34FB மதிப்பைக் கொண்டிருக்கும். மேலும் தொடர்புடைய சூத்திரம் கூட கொடுக்கப்பட்டுள்ளது:

                                128_bit_value = 16_bit_value * 2^96 + Bluetooth_Base_UUID

இந்த மேஜிக் எண் எங்கிருந்து வந்தது என்று தெரியவில்லை. வாசகர்களில் யாருக்காவது தெரிந்தால், கருத்துகளில் எழுதவும் (சினோப்டீக் என்ற புனைப்பெயர் கொண்ட பயனர் ஏற்கனவே இதைச் செய்துள்ளார். கருத்துகளைப் பார்க்கவும்). 128-பிட் UUIDகளுடன் வருவதைப் பொறுத்தவரை, கொள்கையளவில் நீங்கள் ஒரு சிறப்புப் பயன்படுத்தலாம் ஜெனரேட்டர் மூலம்உங்களுக்காக யார் செய்வார்கள்.

ATTy GATTy...

உண்மையில், பின்னர் வேடிக்கை தொடங்குகிறது. ATT என்பது கிளையன்ட்-சர்வர் உறவை அடிப்படையாகக் கொண்டது என்பதை உங்களுக்கு நினைவூட்டுகிறேன். இப்போது நாம் சர்வர் சாதனத்தைப் பார்க்கிறோம். இது சென்சார் மதிப்புகள், ஒளி சுவிட்ச் நிலை, இருப்பிடத் தரவு போன்ற தகவல்களைக் கொண்டுள்ளது. இப்போது அனைத்து "எங்கள் அணிவகுப்பில் பங்கேற்பாளர்கள்" எண்ணப்பட்டுள்ளனர், நாம் எப்படியாவது சாதனத்தின் நினைவகத்தில் வைக்க வேண்டும். இதைச் செய்ய, பண்புக்கூறு அட்டவணை எனப்படும் அட்டவணையில் அவற்றை வைக்கிறோம். இதை நன்றாக நினைவில் கொள்ளுங்கள். இது BLE இன் இதயம். இதைத்தான் நாம் மேலும் கருத்தில் கொள்வோம். இப்போது நாம் ஒவ்வொரு வரியையும் ஒரு பண்பு என்று அழைப்போம். இந்த அட்டவணை அடுக்கில் ஆழமாக அமைந்துள்ளது, ஒரு விதியாக, அதற்கு நேரடி அணுகல் இல்லை. நாங்கள் அதை துவக்கி அதை அணுகுகிறோம், ஆனால் உள்ளே என்ன நடக்கிறது என்பது ஏழு முத்திரைகளுக்குப் பின்னால் நமக்கு மறைக்கப்பட்டுள்ளது.

விவரக்குறிப்பிலிருந்து படத்தைப் பார்ப்போம், ஆனால் அதற்கு முன், சொற்களில், அதாவது விளக்கங்களில் அடிக்கடி ஏற்படும் குழப்பங்களுக்கு உடனடியாக கவனத்தை ஈர்க்க விரும்புகிறேன். விவரிப்பவரின் பங்கு பண்பு விளக்கத்தை பூர்த்தி செய்வதாகும். அதன் திறன்களை விரிவாக்க வேண்டிய அவசியம் ஏற்பட்டால், விளக்கங்கள் பயன்படுத்தப்படுகின்றன. அவை பண்புக்கூறுகள் மற்றும் சேவைகள் மற்றும் பண்புகளைப் போலவே, அவை பண்பு அட்டவணையில் அமைந்துள்ளன. கட்டுரையின் இரண்டாம் பகுதியில் அவற்றை விரிவாக ஆராய்வோம். இருப்பினும், சில நேரங்களில் விளக்கங்கள் பண்பு அட்டவணையில் உள்ள வரிசை எண்ணைக் குறிப்பிடுகின்றன. இதை மனதில் கொள்ள வேண்டும். குழப்பத்தைத் தவிர்க்க, இந்த நோக்கங்களுக்காக "பண்புச் சுட்டிக்காட்டி" என்ற வார்த்தையைப் பயன்படுத்துவோம்.
நுண்ணோக்கியின் கீழ் BLE (ATTы GATTы...)

எனவே பண்புக்கூறு என்பது ஒரு தனித்துவமான மதிப்பு, அதனுடன் தொடர்புடைய பின்வரும் பண்புகளைக் கொண்டுள்ளது:
1. பண்புக்கூறு கைப்பிடி என்பது பண்புக்கூறுடன் தொடர்புடைய அட்டவணைக் குறியீடாகும்
2. பண்புக்கூறு வகை என்பது அதன் வகையை விவரிக்கும் UUID ஆகும்
3. பண்புக்கூறு மதிப்பு என்பது பண்புக் குறியீடு மூலம் குறியிடப்பட்ட தரவு
4. பண்புக்கூறு அனுமதிகள் என்பது ஒரு பண்புக்கூறின் ஒரு பகுதியாகும், அனுமதிகள், பண்புக்கூறு நெறிமுறையைப் பயன்படுத்தி படிக்கவோ எழுதவோ முடியாது

இதையெல்லாம் எப்படி புரிந்துகொள்வது? பண்புக்கூறு சுட்டிக்காட்டி, ஒப்பீட்டளவில் பேசினால், எங்கள் அட்டவணையில் அதன் எண்.
இது ஒரு கிளையண்டை படிக்க அல்லது எழுதும் கோரிக்கைகளில் ஒரு பண்புக்கூறைக் குறிப்பிட அனுமதிக்கிறது. 0x0001 முதல் 0xFFFF வரையிலான வரிகளை (பண்புகளை) எண்ணலாம். புத்தக அலமாரியுடன் எங்கள் இணைப்பில், இது காகித அட்டவணையில் உள்ள அட்டை எண். இதேபோல், நூலக அட்டவணையில் உள்ளதைப் போல, எண்ணை அதிகரிக்கும் வரிசையில் அட்டைகள் அமைக்கப்பட்டுள்ளன. ஒவ்வொரு அடுத்தடுத்த வரியின் எண்ணிக்கையும் முந்தையதை விட அதிகமாக இருக்க வேண்டும். நூலகத்தில் உள்ளதைப் போலவே, சில நேரங்களில் சில அட்டைகள் தொலைந்து போவதால், எங்களுடன், வரி எண்ணில் இடைவெளிகள் இருக்கலாம். இது அனுமதிக்கப்படுகிறது. முக்கிய விஷயம் என்னவென்றால், அவை படிப்படியாக செல்கின்றன.

பண்புக்கூறு வகை என்ன பண்புக்கூறு பிரதிபலிக்கிறது என்பதை தீர்மானிக்கிறது. சி மொழியுடன் ஒப்புமை மூலம்,
பூலியன், எண் மாறிகள் மற்றும் சரங்கள் இருக்கும் இடத்தில், அது இங்கே உள்ளது. பண்பு வகை மூலம் நாம் அங்கீகரிக்கிறோம்
நாம் எதைக் கையாளுகிறோம் மற்றும் இந்தப் பண்புடன் எவ்வாறு தொடர்ந்து பணியாற்றலாம். சில குறிப்பிட்ட வகை பண்புகளை கீழே பார்ப்போம். எடுத்துக்காட்டாக, "சேவை அறிவிப்பு" (0x2800), "பண்பு அறிவிப்பு" (0x2803), "விளக்க அறிவிப்பு" (0x2902).

ஒரு பண்புக்கூறின் மதிப்பு அதன் உண்மையான பொருள், tautology மன்னிக்க. பண்புக்கூறு வகை ஒரு சரமாக இருந்தால், பண்புக்கூறு மதிப்பு, எடுத்துக்காட்டாக, “ஹலோ வேர்ல்ட் !!!” ஸ்லோகனாக இருக்கலாம். பண்புக்கூறு வகை "சேவை அறிவிப்பு" என்றால், அதன் மதிப்பு சேவையே ஆகும். சில சமயங்களில் இது பிற பண்புக்கூறுகள் மற்றும் அவற்றின் பண்புகளை எங்கே கண்டுபிடிப்பது என்பது பற்றிய தகவலாகும்.

பண்புக்கூறு அனுமதிகள், படிக்க அல்லது எழுத அணுகல் அனுமதிக்கப்பட்டுள்ளதா என்பதைப் புரிந்து கொள்ள சர்வர் அனுமதிக்கிறது.
இந்த அனுமதிகள் பண்புக்கூறு மதிப்புக்கு மட்டுமே பொருந்தும், சுட்டி, வகை அல்லது அனுமதி புலத்திற்கு அல்ல. அந்த. பண்புக்கூறு பதிவு அனுமதிக்கப்பட்டால், நாம் மாற்றலாம், எடுத்துக்காட்டாக, "ஹலோ வேர்ல்ட் !!!" "காலை வணக்கம்" என்ற வரிக்கு. ஆனால் புதிய வரியை எழுதுவதைத் தடைசெய்யவோ அல்லது பண்புக்கூறு வகையை மாற்றவோ மற்றும் வரியை "சேவை அறிவிப்பு" என்று குறிப்பிடவோ முடியாது. ஒரு கிளையன்ட் ஒரு சர்வரைத் தொடர்பு கொள்ளும்போது, ​​கிளையன்ட் அதன் பண்புகளைக் கோருகிறது. சேவையகம் என்ன வழங்க முடியும் என்பதை வாடிக்கையாளர் அறிய இது அனுமதிக்கிறது. மதிப்புகளைப் படிக்கவும் எழுதவும் தேவையில்லை என்றாலும்.

அது எப்படி இருக்கும்

ஒரு பண்பு அட்டவணையில் உள்ள பண்புக்கூறுகளை ஒரு குறிப்பிட்ட மற்றும் தர்க்க ரீதியில் ஒன்றாக இணைப்பதே GATT இன் கருத்து. கீழே உள்ள இதய துடிப்பு விவரக்குறிப்பைக் கூர்ந்து கவனிப்போம். இந்த அட்டவணையின் இடதுபுற நெடுவரிசை விருப்பமானது. இந்த வரி (பண்பு) என்ன என்பதை இது எளிமையாக நமக்கு விவரிக்கிறது. மற்ற அனைத்து நெடுவரிசைகளும் ஏற்கனவே எங்களுக்கு நன்கு தெரிந்தவை.

நுண்ணோக்கியின் கீழ் BLE (ATTы GATTы...)

ஒவ்வொரு குழுவின் மேலேயும் எங்களிடம் எப்போதும் ஒரு சேவை அறிவிப்பு பண்பு இருக்கும். அதன் வகை எப்போதும் 0x2800 ஆகும், மேலும் சுட்டிக்காட்டி அட்டவணையில் ஏற்கனவே எத்தனை பண்புக்கூறுகள் உள்ளன என்பதைப் பொறுத்தது. எந்த அங்கீகாரமும் அங்கீகாரமும் இல்லாமல், அதன் அனுமதிகள் எப்போதும் படிக்க மட்டுமே இருக்கும். இந்த கருத்துகளைப் பற்றி சிறிது நேரம் கழித்து பேசுவோம். மதிப்பு என்பது சேவை என்ன என்பதைக் கண்டறியும் மற்றொரு UUID ஆகும். அட்டவணையில், மதிப்பு 0x180D ஆகும், இது புளூடூத் SIG ஆல் இதய துடிப்பு சேவையாக வரையறுக்கப்படுகிறது.

சேவையின் அறிவிப்பைத் தொடர்ந்து, சிறப்பியல்பு அறிவிப்பு வருகிறது. இது ஒரு சேவை அறிவிப்பைப் போன்றது. அதன் UUID எப்பொழுதும் 0x2803 ஆகும், மேலும் அதன் அனுமதிகள் எந்த அங்கீகாரமும் அல்லது அங்கீகாரமும் இல்லாமல் எப்போதும் படிக்க மட்டுமே இருக்கும். சில தரவுகளை உள்ளடக்கிய பண்புக்கூறு மதிப்பு புலத்தைப் பார்ப்போம். இது எப்போதும் ஒரு சுட்டி, UUID மற்றும் பண்புகளின் தொகுப்பைக் கொண்டிருக்கும். இந்த மூன்று கூறுகளும் பண்பு மதிப்பின் அடுத்தடுத்த அறிவிப்பை விவரிக்கின்றன. சுட்டி இயற்கையாகவே பண்பு அட்டவணையில் பண்பு மதிப்பு அறிவிப்பின் இருப்பிடத்தைக் குறிக்கிறது. UUID எந்த வகையான தகவல் அல்லது மதிப்பை நாம் எதிர்பார்க்கலாம் என்பதை விவரிக்கிறது. எடுத்துக்காட்டாக, வெப்பநிலை மதிப்பு, ஒளி சுவிட்சின் நிலை அல்லது வேறு சில தன்னிச்சையான மதிப்பு. இறுதியாக பண்புகள், பண்பு மதிப்பு எவ்வாறு தொடர்பு கொள்ளலாம் என்பதை விவரிக்கிறது.

இங்கே நமக்கு இன்னொரு ஆபத்து காத்திருக்கிறது. இது பண்பு அனுமதிகள் மற்றும் பண்பு பண்புகளுடன் தொடர்புடையது. விவரக்குறிப்பிலிருந்து பிட் புல பண்புகளின் படத்தைப் பார்ப்போம்.

நுண்ணோக்கியின் கீழ் BLE (ATTы GATTы...)

நீங்கள் பார்க்க முடியும் என, இங்கு படிக்க மற்றும் எழுதும் திறன்களை வழங்கும் புலங்களும் உள்ளன. பண்புக்கூறு மற்றும் சொத்துக்கான அனுமதிகளைப் படிக்க/எழுதுவதற்கான அனுமதிகளை ஏன் பெற்றுள்ளோம் என்று நீங்கள் யோசித்துக்கொண்டிருக்கலாம்
பண்பு மதிப்புக்காக படிக்க/எழுதவா? அவர்கள் எப்போதும் ஒரே மாதிரியாக இருக்க வேண்டாமா? உண்மை என்னவென்றால், சிறப்பியல்பு மதிப்புக்கான பண்புகள் உண்மையில் GATT மற்றும் பயன்பாட்டு அடுக்குகளில் பயன்படுத்தப்படும் கிளையண்டிற்கான பரிந்துரைகள் மட்டுமே. இவை வாடிக்கையாளர்களின் சிறப்பியல்பு அறிவிப்பு பண்புக்கூறிலிருந்து என்ன எதிர்பார்க்கலாம் என்பதற்கான குறிப்புகள். இதை இன்னும் விரிவாகப் பார்ப்போம். ஒரு பண்புக்கூறுக்கு என்ன வகையான அனுமதிகள் உள்ளன?

1. அணுகல் அனுமதிகள்:
     - படித்தல்
     - பதிவு
     - எழுத படிக்க
2. அங்கீகார அனுமதி:
     - அங்கீகாரம் தேவை
     - அங்கீகாரம் தேவையில்லை
3. அங்கீகார அனுமதி:
     - அங்கீகாரம் தேவை
     - அங்கீகாரம் தேவையில்லை

பண்புக்கூறு தீர்மானம் மற்றும் சிறப்பியல்பு பண்புகளுக்கு இடையிலான முக்கிய வேறுபாடு என்னவென்றால், முந்தையது சேவையகங்களுக்கும், பிந்தையது வாடிக்கையாளர்களுக்கும் பொருந்தும். சிறப்பியல்பு மதிப்பைப் படிக்க சேவையகம் அனுமதிக்கப்படலாம், ஆனால் அங்கீகாரம் அல்லது அங்கீகாரம் தேவைப்படலாம். எனவே, வாடிக்கையாளர் குணாதிசயத்தின் பண்புகளைக் கோரும்போது, ​​​​வாசிப்பு அனுமதிக்கப்படுவதைப் பெறுவோம். ஆனால் படிக்க முயலும்போது ஒரு பிழை ஏற்படுகிறது. எனவே, சொத்துக்களை விட அனுமதிகளின் முன்னுரிமை பற்றி நாம் பாதுகாப்பாக பேசலாம். கிளையன்ட் தரப்பில், ஒரு பண்புக்கூறுக்கு என்ன அனுமதிகள் உள்ளன என்பதைப் பற்றிய அறிவை எங்களால் பெற முடியாது.

விளக்கமளிப்பவர்

எங்கள் அட்டவணைக்குத் திரும்புவோம். ஒரு குணாதிசயத்தின் மதிப்பை அறிவித்த பிறகு, பின்வரும் பண்புக்கூறு அறிவிப்புகள் சாத்தியமாகும்:
1. குணாதிசயங்களின் புதிய அறிவிப்பு (ஒரு சேவையில் பல குணாதிசயங்கள் இருக்கலாம்)
2. புதிய சேவை அறிவிப்பு (அட்டவணையில் பல இருக்கலாம்)
3. ஒரு கைப்பிடியை அறிவித்தல்

இதய துடிப்பு அளவீட்டு குணாதிசயத்தின் விஷயத்தில், எங்கள் அட்டவணையில், சிறப்பியல்பு மதிப்பின் அறிவிப்பு விவரிப்பாளரின் அறிவிப்புடன் சேர்ந்துள்ளது. விவரிப்பான் என்பது ஒரு பண்பு பற்றிய கூடுதல் தகவல்களைக் கொண்ட ஒரு பண்பு ஆகும். பல வகையான விளக்கங்கள் உள்ளன. இந்த கட்டுரையின் இரண்டாம் பகுதியில் அவற்றைப் பற்றி விரிவாகப் பேசுவோம். இப்போதைக்கு, கிளையண்ட் சிறப்பியல்பு உள்ளமைவு விளக்கத்தை (CCCD) மட்டுமே தொடுவோம். இது 0x2902 க்கு சமமான UUID ஐக் கொண்டுள்ளது. இந்த டிஸ்கிரிப்டரைப் பயன்படுத்தி, கிளையன்ட் சர்வரில் அறிகுறி அல்லது அறிவிப்பை இயக்கும் திறனைக் கொண்டுள்ளார். அவற்றுக்கிடையேயான வேறுபாடு சிறியது, ஆனால் இன்னும் உள்ளது. அறிவிப்பிற்கு வாடிக்கையாளரிடமிருந்து ரசீதை உறுதிப்படுத்த தேவையில்லை. இது GATT மட்டத்தில் நிகழ்ந்தாலும், பயன்பாட்டு நிலையை அடையவில்லை என்றாலும், குறிப்பிற்கு இது தேவைப்படுகிறது. ஏன், நீங்கள் கேட்கிறீர்களா? ஐயோ, இது எனக்குத் தெரியாது. நோர்டிக் வல்லுநர்கள் அறிவிப்புகளைப் பயன்படுத்த பரிந்துரைக்கிறார்கள் என்று சொல்கிறேன். மேலும், தொகுப்பின் ஒருமைப்பாட்டை சரிபார்ப்பது (CRC ஐப் பயன்படுத்தி) இரண்டு நிகழ்வுகளிலும் நிகழ்கிறது.

முடிவுக்கு

கட்டுரையின் முடிவில் நான் இதைச் சொல்ல விரும்புகிறேன். கடைசி அட்டவணை சற்று குழப்பமாக உள்ளது. இருப்பினும், அது கொடுக்கப்பட்டதால் நான் அதைத் தேர்ந்தெடுத்தேன் கட்டுரை, நான் நம்பியிருக்கிறேன். எனது கட்டுரையின் இரண்டாம் பகுதியில், புளூடூத் 4.0 விவரக்குறிப்பை ஆழமாக ஆராய விரும்புகிறேன். இன்னும் சரியான வரைபடங்கள் மற்றும் வரைபடங்கள் எங்களுக்கு அங்கே காத்திருக்கின்றன. மூன்றாவது பகுதியில், கேஜெட்களில் ஒன்றிலிருந்து வயர்ஷார்க் நிரலைப் பயன்படுத்தி பெறப்பட்ட பதிவை அலச விரும்புகிறேன் மற்றும் நாங்கள் படிக்கும் அனைத்து கோட்பாட்டையும் "நேரலை" பார்க்க விரும்புகிறேன்.

குழும நிறுவனங்களின் பணியாளர் "சீசர் செயற்கைக்கோள்"
Pecherskikh Vladimir

ஆதாரம்: www.habr.com

கருத்தைச் சேர்