BLE ဖွံ့ဖြိုးတိုးတက်မှု- GATT ဆိုတာ ဘာလဲ၊ ဘယ်လိုအလုပ်လုပ်သလဲ။

မာတိကာ

GATT ၏အယူအဆ

BLE နှင့်ပတ်သက်သော ဖွံ့ဖြိုးတိုးတက်မှုကို ဆောင်ရွက်ရန်အတွက် ကျွန်ုပ်တို့တွင် အချို့သော အခြေခံအသိပညာရှိရန် လိုအပ်သည်၊ ၎င်းသည် အလွန်ရိုးရှင်းရပါမည်။

GATT စက်ပစ္စည်းအခန်းကဏ္ဍ-

ပထမဆုံး နားလည်ရမည့်အချက်မှာ ဤအခန်းကဏ္ဍနှစ်ခုကြား ခြားနားမှုသည် ဟာ့ဒ်ဝဲအဆင့်တွင်ရှိပြီး ၎င်းတို့သည် အတွဲလိုက်ပေါ်လာသည့် နှိုင်းရသဘောတရားများဖြစ်သည်-

"Central device"- မိုဘိုင်းလ်ဖုန်း၊ တက်ဘလက်စသည်ဖြင့် စကင်န်ဖတ်ပြီး ချိတ်ဆက်ရန် အသုံးပြုသော ကိရိယာဖြစ်သည်။

"အရံကိရိယာ"- လုပ်ဆောင်ချက်သည် အတော်လေးရိုးရှင်းသည်၊ ပါဝါသုံးစွဲမှုမှာ သေးငယ်ပြီး လက်ပတ်၊ စမတ်သာမိုမီတာ စသည်တို့ကဲ့သို့သော အချက်အလက်များကို ပံ့ပိုးပေးရန်အတွက် ဗဟိုကိရိယာကို ချိတ်ဆက်ထားသည်။

တကယ်တော့၊ အခြေခံအကျဆုံးအဆင့်မှာ၊ ချိတ်ဆက်မှုတစ်ခုထူထောင်ခြင်းလုပ်ငန်းစဉ်မှာ မတူညီတဲ့အခန်းကဏ္ဍတွေကြား ခြားနားမှုဖြစ်သင့်တယ်။ Bluetooth စက်ပစ္စည်းတစ်ခုသည် ၎င်း၏တည်ရှိမှုကို အခြားသူများအား အသိပေးလိုပါက ပြင်ပကမ္ဘာသို့ စဉ်ဆက်မပြတ်ထုတ်လွှင့်ရန် လိုအပ်ကြောင်းနှင့် ချိတ်ဆက်မှုကို တည်ဆောက်နိုင်စေရန် အခြားပါတီမှ အသံလွှင့်ပက်ကေ့ခ်ျကို စကင်န်ဖတ်ကာ စာပြန်ရန် လိုအပ်ကြောင်း ကျွန်ုပ်တို့သိပါသည်။ ဤလုပ်ငန်းစဉ်တွင်၊ ရုပ်သံလွှင့်ခြင်းအတွက် တာဝန်ရှိသော ပုဂ္ဂိုလ်သည် Peripheral ဖြစ်ပြီး၊ Central သည် စကင်န်ဖတ်ရန် တာဝန်ရှိသည်။

နှစ်ခုကြား ချိတ်ဆက်မှု လုပ်ငန်းစဉ်အကြောင်း မှတ်ချက်-

ဗဟိုစက်ပစ္စည်းသည် တစ်ချိန်တည်းတွင် အရံစက်ပစ္စည်းအများအပြားကို ချိတ်ဆက်နိုင်သည်။ အရံကိရိယာကို ချိတ်ဆက်ပြီးသည်နှင့်၊ ၎င်းသည် ချက်ချင်းထုတ်လွှင့်မှုကို ရပ်သွားမည်ဖြစ်ပြီး ချိတ်ဆက်မှုပြတ်တောက်ပြီးနောက် ဆက်လက်ထုတ်လွှင့်မည်ဖြစ်သည်။ စက်တစ်ခုကသာ အချိန်မရွေးချိတ်ဆက်နိုင်ပြီး ချိတ်ဆက်မှုများကို တန်းစီစောင့်ဆိုင်းနိုင်သည်။

GATT protocol ကို

BLE နည်းပညာသည် GATT ကိုအခြေခံ၍ ဆက်သွယ်သည်။ GATT သည် attribute transmission protocol တစ်ခုဖြစ်သည်။ ၎င်းကို attribute transmission အတွက် application layer protocol အဖြစ် မှတ်ယူနိုင်ပါသည်။

၎င်း၏ဖွဲ့စည်းပုံမှာ အလွန်ရိုးရှင်းပါသည်။   

xml အဖြစ် နားလည်နိုင်သည် ။

GATT တစ်ခုစီသည် မတူညီသောလုပ်ဆောင်ချက်များကို လုပ်ဆောင်သည့် ဝန်ဆောင်မှုများဖြင့် ဖွဲ့စည်းထားသည်။

ဝန်ဆောင်မှုတစ်ခုစီသည် မတူညီသောလက္ခဏာများဖြင့် ဖွဲ့စည်းထားသည်။

Characteristic တစ်ခုစီတွင် တန်ဖိုးတစ်ခုနှင့် တစ်ခု သို့မဟုတ် တစ်ခုထက်ပိုသော ဖော်ပြချက်များ ပါဝင်ပါသည်။

ဝန်ဆောင်မှုနှင့် လက္ခဏာရပ်များသည် တဂ်များနှင့် ညီမျှသည် (ဝန်ဆောင်မှုသည် ၎င်း၏ အမျိုးအစားနှင့် တူညီပြီး လက္ခဏာရပ်သည် ၎င်း၏အမည်နှင့် ညီမျှသည်)၊ တန်ဖိုးမှာ အမှန်တကယ် ဒေတာပါရှိပြီး Descriptor သည် ဤတန်ဖိုး၏ ရှင်းလင်းချက်နှင့် ဖော်ပြချက်ဖြစ်သည်။ ဟုတ်ပါတယ်၊ ရှုထောင့်အမျိုးမျိုးကနေ ဖော်ပြပြီး ဖော်ပြနိုင်ပါတယ်။ ဖော်ပြချက်၊ ထို့ကြောင့် ဖော်ပြချက်များစွာ ရှိနိုင်ပါသည်။

ဥပမာ- အသုံးများသော Xiaomi Mi Band သည် BLE စက်ပစ္စည်းဖြစ်ပြီး၊ (ယူဆရသည်) ၎င်းတွင် စက်ပစ္စည်းအချက်အလက်ကို ပံ့ပိုးပေးသည့် ဝန်ဆောင်မှု၊ ခြေလှမ်းများကို ပံ့ပိုးပေးသည့် ဝန်ဆောင်မှုနှင့် နှလုံးခုန်နှုန်းကို သိရှိနိုင်သော ဝန်ဆောင်မှု သုံးခုပါရှိသည်။

စက်ပစ္စည်းအချက်အလက်၏ ဝန်ဆောင်မှုတွင်ပါရှိသော လက္ခဏာများသည် ထုတ်လုပ်သူအချက်အလက်၊ ဟာ့ဒ်ဝဲအချက်အလက်၊ ဗားရှင်းအချက်အလက်၊ စသည်ဖြင့် ပါဝင်သည်။ နှလုံးခုန်နှုန်း ဝန်ဆောင်မှုတွင် နှလုံးခုန်နှုန်း လက္ခဏာ စသည်တို့ ပါ၀င်ပြီး နှလုံးခုန်နှုန်း ဝိသေသတန်ဖိုးသည် အမှန်တကယ် နှလုံးခုန်နှုန်း ဒေတာပါရှိပြီး ဖော်ပြချက်သည် တန်ဖိုးဖြစ်သည်။ တန်ဖိုးယူနစ်၊ ဖော်ပြချက်၊ ခွင့်ပြုချက်စသည်ဖြင့် ဖော်ပြချက်၊

GATT C/S

GATT ၏ ပဏာမနားလည်မှုဖြင့်၊ GATT သည် ပုံမှန် C/S မုဒ်တစ်ခုဖြစ်ကြောင်း ကျွန်ုပ်တို့သိပါသည်။ ၎င်းသည် C/S ဖြစ်သောကြောင့်၊ Server နှင့် client အကြား ပိုင်းခြားရန် လိုအပ်ပါသည်။

"GATT ဆာဗာ" နှင့် "GATT client" ။ အဆိုပါ အခန်းကဏ္ဍနှစ်ခု တည်ရှိသည့် အဆင့်သည် ချိတ်ဆက်မှု ထူထောင်ပြီးနောက်တွင် ဆွေးနွေးမှု အနေအထားအရ ၎င်းတို့ကို ခွဲခြားထားသည်။ ဒေတာကို ကိုင်ဆောင်ထားသည့် ပါတီကို GATT ဆာဗာဟုခေါ်ပြီး ဒေတာရယူသည့်ပါတီကို GATT ကလိုင်းယင့်ဟုခေါ်ကြောင်း နားလည်ရန် လွယ်ကူသည်။

၎င်းသည် ယခင်က ကျွန်ုပ်တို့ဖော်ပြခဲ့သည့် စက်အခန်းကဏ္ဍနှင့် ကွဲပြားသောအဆင့်တွင် အယူအဆတစ်ခုဖြစ်ပြီး ၎င်းကို ပိုင်းခြားရန် လိုအပ်ပါသည်။ ဥပမာတစ်ခုပြရန် ရိုးရှင်းသောဥပမာကိုသုံးကြပါစို့။

သရုပ်ဖော်ရန် မိုဘိုင်းလ်ဖုန်းနှင့် နာရီတစ်လုံးကို နမူနာယူပါ။ မိုဘိုင်းလ်ဖုန်းနှင့် မိုဘိုင်းလ်ဖုန်းကြား ချိတ်ဆက်မှု မထူထောင်မီ၊ ကျွန်ုပ်တို့သည် နာရီ၏ Bluetooth ကိရိယာကို ရှာဖွေရန် မိုဘိုင်းဖုန်း၏ Bluetooth ရှာဖွေမှု လုပ်ဆောင်ချက်ကို အသုံးပြုပါသည်။ ဤလုပ်ငန်းစဉ်အတွင်း၊ အခြားစက်ပစ္စည်းများသည် ၎င်း၏တည်ရှိမှုကို သိရှိစေရန် နာရီသည် BLE ထုတ်လွှင့်နေသည်မှာ ထင်ရှားသည်။ ၊ ၎င်းသည် ဤလုပ်ငန်းစဉ်တွင် အရံများ၏ အခန်းကဏ္ဍဖြစ်ပြီး မိုဘိုင်းလ်ဖုန်းသည် စကင်ဖတ်ခြင်းလုပ်ငန်းအတွက် တာဝန်ရှိပြီး Center ၏ အခန်းကဏ္ဍကို သဘာဝအတိုင်း လုပ်ဆောင်ပါသည်။ GATT ချိတ်ဆက်မှုနှစ်ခုကို ထူထောင်ပြီးနောက်၊ မိုဘိုင်းလ်ဖုန်းသည် နာရီမှ ခြေလှမ်းအရေအတွက်များကဲ့သို့သော အာရုံခံကိရိယာဒေတာကို ဖတ်ရန် လိုအပ်သည့်အခါ၊ အပြန်အလှန်တုံ့ပြန်မှုဒေတာနှစ်ခုကို နာရီတွင် သိမ်းဆည်းထားသောကြောင့် ယခုအချိန်တွင် နာရီသည် GATT ၏ အခန်းကဏ္ဍဖြစ်သည်။ ဆာဗာဖြစ်ပြီး၊ မိုဘိုင်းလ်ဖုန်းသည် သဘာဝအားဖြင့် GATT သုံးစွဲသူ၊ နာရီသည် မိုဘိုင်းဖုန်းမှ SMS ခေါ်ဆိုမှုများနှင့် အခြားအချက်အလက်များကို ဖတ်လိုသောအခါ၊ ဒေတာ၏အုပ်ထိန်းသူသည် မိုဘိုင်းလ်ဖုန်းဖြစ်လာသည်၊ ထို့ကြောင့် မိုဘိုင်းဖုန်းသည် ယခုအချိန်တွင် ဆာဗာဖြစ်ပြီး နာရီသည် သုံးစွဲသူဖြစ်သည်။

ဝန်ဆောင်မှု/ဝိသေသ

အထက်ဖော်ပြပါ ၎င်းတို့ကို ကျွန်ုပ်တို့ သိရှိနားလည်ထားပြီးဖြစ်ပြီး၊ ထို့နောက် ကျွန်ုပ်တို့တွင် လက်တွေ့ကျသော အချက်အလက်အချို့ရှိသည်။

  1. Characteristic သည် အချက်အလက်၏အသေးဆုံးယုတ္တိယူနစ်ဖြစ်သည်။
  2. တန်ဖိုးနှင့် ဖော်ပြချက်တွင် သိမ်းဆည်းထားသော အချက်အလက်များကို ခွဲခြမ်းစိတ်ဖြာခြင်းအား ဆာဗာအင်ဂျင်နီယာမှ ဆုံးဖြတ်သည်၊ သတ်မှတ်ချက်မရှိပါ။
  3. ဝန်ဆောင်မှု/ဝိသေသလက္ခဏာများသည် ထူးခြားသော UUID ခွဲခြားသတ်မှတ်ခြင်းရှိပြီး၊ UUID တွင် 16-ဘစ်နှင့် 128-ဘစ် နှစ်မျိုးလုံးပါရှိသည်၊ ကျွန်ုပ်တို့နားလည်ထားရန်လိုအပ်သည်မှာ 16-bit UUID ကို Bluetooth အဖွဲ့အစည်းမှ အသိအမှတ်ပြုထားပြီး ဝယ်ယူရန်လိုအပ်သည်မှာ ဘုံအချို့ရှိပါသည်၊ 16-bit UUID.ဥပမာ၊ နှလုံးခုန်နှုန်းဝန်ဆောင်မှု၏ UUID သည် 0X180D ဖြစ်ပြီး၊ ၎င်းသည် 0X00001800-0000-1000-8000-00805f9b34fb ကုဒ်တွင် ဖော်ပြထားပြီး အခြားဘစ်များကို ပုံသေထားသည်။ 128-bit UUID ကို စိတ်ကြိုက်ပြင်ဆင်နိုင်ပါသည်။
  4. GATT ချိတ်ဆက်မှုများသည် သီးသန့်ဖြစ်သည်။

ထိပ်တန်းမှလှိမ့်