{"id":84024,"date":"2020-06-04T19:42:32","date_gmt":"2020-06-04T17:42:32","guid":{"rendered":"https:\/\/prohoster.info\/blog\/administrirovanie\/ble-pod-mikroskopom-atty-gatty"},"modified":"2020-06-04T19:42:32","modified_gmt":"2020-06-04T17:42:32","slug":"ble-pod-mikroskopom-atty-gatty","status":"publish","type":"post","link":"https:\/\/prohoster.info\/sq\/blog\/administrirovanie\/ble-pod-mikroskopom-atty-gatty","title":{"rendered":"BLE n\u00ebn mikroskop (ATT-t\u00eb GATT-t\u00eb&#8230;)","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p><img decoding=\"async\" alt=\"BLE n\u00ebn mikroskop (ATT-t\u00eb GATT-t\u00eb...)\" src=\"\/wp-content\/uploads\/2020\/06\/d8587bf897b27457b354549b99399bcc.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<h2>BLE n\u00ebn mikroskop (ATT-t\u00eb GATT-t\u00eb&#8230;)<\/h2>\n<p> <b>Pjesa 1, shqyrtim<\/b><\/p>\n<p>Ka kaluar nj\u00eb koh\u00eb e konsiderueshme q\u00eb kur doli specifikimi i par\u00eb p\u00ebr Bluetooth 4.0. Edhe pse tema BLE \u00ebsht\u00eb shum\u00eb interesante, ajo vazhdon t\u00eb largoj\u00eb shum\u00eb zhvillues p\u00ebr shkak t\u00eb kompleksitetit t\u00eb saj. N\u00eb artikujt e mi t\u00eb m\u00ebparsh\u00ebm kam trajtuar kryesisht nivelin m\u00eb t\u00eb ul\u00ebt, Link Layer dhe Physical Layer. Kjo m\u00eb lejon t\u00eb shmang konceptet e nd\u00ebrlikuara si protokolli i atributeve (ATT) dhe profili i p\u00ebrbashk\u00ebt t\u00eb atributeve (GATT). Megjithat\u00eb, nuk ka ku t\u00eb iket; pa i kuptuar ata, \u00ebsht\u00eb e pamundur t\u00eb zhvillohen pajisje t\u00eb kompatibilshme. Sot do t\u00eb doja t\u00eb ndaja me ju k\u00ebto njohuri. N\u00eb artikullin tim do t\u00eb mb\u00ebshtetem n\u00eb <noindex><a rel=\"nofollow\" href=\"https:\/\/devzone.nordicsemi.com\/nordic\/short-range-guides\/b\/bluetooth-low-energy\/posts\/ble-characteristics-a-beginners-tutorial\">manuali<\/a><\/noindex> p\u00ebr fillestar\u00ebt nga sajtit Nordic. Prandaj, le t\u00eb fillojm\u00eb.<br \/>\n<noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><\/p>\n<h3>Pse gjith\u00e7ka \u00ebsht\u00eb kaq e nd\u00ebrlikuar?<\/h3>\n<p>\nN\u00eb mendimin tim, ishte e qart\u00eb q\u00eb menaxhimi i pajisjeve p\u00ebrmes smartphone-ve \u00ebsht\u00eb nj\u00eb tem\u00eb me perspektiv\u00eb dhe afatgjat\u00eb. Prandaj, ata vendos\u00ebn ta strukturojn\u00eb at\u00eb menj\u00ebher\u00eb dhe deri n\u00eb maksimum. N\u00eb m\u00ebnyr\u00eb q\u00eb prodhuesit e pajisjeve t\u00eb mos shpikin protokolle t\u00eb ndryshme q\u00eb m\u00eb pas do t\u00eb ishin jo t\u00eb kompatib\u00ebl. K\u00ebtu q\u00ebndron kompleksiteti. Q\u00eb n\u00eb faz\u00ebn e par\u00eb, protokolli BLE u p\u00ebrpoq t\u00eb p\u00ebrfshij\u00eb gjith\u00e7ka q\u00eb mund t\u00eb ishte e mundur. Dhe nuk ka r\u00ebnd\u00ebsi n\u00ebse do t\u00eb nevojitet m\u00eb von\u00eb apo jo. P\u00ebr m\u00eb tep\u00ebr, u parashikua mund\u00ebsia e zgjerimit t\u00eb list\u00ebs s\u00eb pajisjeve p\u00ebr t\u00eb ardhmen.<\/p>\n<p>Le t\u00eb shohim nj\u00eb imazh ku \u00ebsht\u00eb paraqitur skema e protokollit BLE. Ai p\u00ebrb\u00ebhet nga disa nivele. Niveli m\u00eb i ul\u00ebt, niveli fizik (PHY), p\u00ebrgjigjet p\u00ebr kanalin radio t\u00eb pajisjes. Link Layer (LL) p\u00ebrmban t\u00eb gjith\u00eb sekuencat e byte n\u00eb mesazhin e d\u00ebrguar. N\u00eb artikujt e m\u00ebparsh\u00ebm e kemi studiuar pik\u00ebrisht at\u00eb. Host Controller Interface (HCI) \u00ebsht\u00eb protokolli i komunikimit midis niveleve ose \u00e7ipave BLE, n\u00ebse Controller dhe Host jan\u00eb t\u00eb realizuar n\u00eb \u00e7ipa t\u00eb ndrysh\u00ebm. P\u00ebr formimin e pakove, ndarjen n\u00eb kadra, kontrollin e gabimeve dhe grumbullimin e pakove p\u00ebrgjigjet Logical Link Control and Adaptation Protocol (L2CAP). P\u00ebr enkriptimin e pakove \u00ebsht\u00eb p\u00ebrgjegj\u00ebs Security Manager Protocol (SMP). Profili i aksesit t\u00eb p\u00ebrgjithsh\u00ebm (GAP) p\u00ebrgjigjet p\u00ebr shk\u00ebmbimin fillestar t\u00eb t\u00eb dh\u00ebnave midis pajisjeve, p\u00ebr t\u00eb p\u00ebrcaktuar \"Kush \u00ebsht\u00eb kush\". Ai gjithashtu p\u00ebrfshin shqyrtimin dhe reklamimin. N\u00eb k\u00ebt\u00eb artikull do t\u00eb ndalem n\u00eb dy pjes\u00ebt e mbetura t\u00eb protokollit \u2014 GATT dhe ATT. GATT \u00ebsht\u00eb nj\u00eb shtres\u00eb mbi ATT, prandaj ato jan\u00eb shum\u00eb t\u00eb nd\u00ebrthurura.<\/p>\n<p><img decoding=\"async\" alt=\"BLE n\u00ebn mikroskop (ATT-t\u00eb GATT-t\u00eb...)\" src=\"\/wp-content\/uploads\/2020\/06\/8060076152cfe3ae648eca362889e571.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nP\u00ebr ta thjeshtuar rr\u00ebfimin, do t\u00eb doja t\u00eb p\u00ebrdorja nj\u00eb analogji. E kam d\u00ebgjuar diku dhe do t\u00eb doja ta mb\u00ebshtes. Imagjinoni nj\u00eb pajisje BLE si nj\u00eb bibliotek\u00eb me disa rafte. \u00c7do rafte \u00ebsht\u00eb nj\u00eb tem\u00eb e ve\u00e7ant\u00eb. P\u00ebr shembull, kemi rafte me fantazi, matematik\u00eb, enciklopedi. N\u00eb \u00e7do rafte ka libra q\u00eb tregojn\u00eb tem\u00ebn p\u00ebrkat\u00ebse. Disa libra madje kan\u00eb edhe sh\u00ebnime me cop\u00ebza letre. Gjithashtu, kemi nj\u00eb katalog t\u00eb vog\u00ebl t\u00eb gjitha librave. N\u00ebse e kujtoni bibliotekat e shkoll\u00ebs \u2014 \u00ebsht\u00eb nj\u00eb kuti e ngusht\u00eb me karta letre. N\u00eb k\u00ebt\u00eb analogji, biblioteka \u00ebsht\u00eb profili i pajisjes son\u00eb. Rafte jan\u00eb sh\u00ebrbimet, librat jan\u00eb karakteristikat, dhe katalogu \u00ebsht\u00eb tabela e atributeve. Sh\u00ebnimet n\u00eb libra jan\u00eb deskriptoret, p\u00ebr t\u00eb cilat do t\u00eb flas m\u00eb von\u00eb m\u00eb n\u00eb detaje.<\/p>\n<p>T\u00eb gjith\u00eb ata q\u00eb kan\u00eb zhvilluar pajisje e din\u00eb se n\u00eb shum\u00eb projekte ka pjes\u00eb kodesh t\u00eb ngjashme. Arsyeja \u00ebsht\u00eb se shum\u00eb pajisje kan\u00eb funksionalitete t\u00eb ngjashme. P\u00ebr shembull, n\u00ebse pajisjet punojn\u00eb me bateri, problemi i karikimit dhe kontrollit t\u00eb nivelit t\u00eb tyre do t\u00eb jet\u00eb i nj\u00ebjt\u00eb. E nj\u00ebjta gj\u00eb vlen edhe p\u00ebr sensor\u00ebt. N\u00eb fakt, qasja objekt-orientuese n\u00eb programim <i>\u201csiguron mund\u00ebsin\u00eb p\u00ebr t\u00eb krijuar objekte q\u00eb lidhin pron\u00ebsi dhe sjellje n\u00eb nj\u00eb aleanc\u00eb t\u00eb pavarur, e cila pastaj mund t\u00eb p\u00ebrdoret shum\u00eb her\u00eb\u201d<\/i>. N\u00eb mendimin tim, n\u00eb BLE \u00ebsht\u00eb b\u00ebr\u00eb nj\u00eb p\u00ebrpjekje p\u00ebr nj\u00eb qasje t\u00eb ngjashme. Grupi Bluetooth Special Interest Group (SIG) ka zhvilluar profile. Pajisjet nga prodhues t\u00eb ndrysh\u00ebm, q\u00eb kan\u00eb profile t\u00eb nj\u00ebjta, duhet t\u00eb punojn\u00eb pa v\u00ebshtir\u00ebsi me nj\u00ebra-tjetr\u00ebn. Profilet p\u00ebrb\u00ebhen nga sh\u00ebrbime, dhe sh\u00ebrbimet nga karakteristika, t\u00eb shtuar me deskriptoret. N\u00eb raste t\u00eb p\u00ebrgjithshme, kjo mund t\u00eb duket k\u00ebshtu:<\/p>\n<p><img decoding=\"async\" alt=\"BLE n\u00ebn mikroskop (ATT-t\u00eb GATT-t\u00eb...)\" src=\"\/wp-content\/uploads\/2020\/06\/34cbbeee142d40e56dff7626ef752d42.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nP\u00ebr shembull, le t\u00eb shqyrtojm\u00eb skem\u00ebn e profilit t\u00eb monitorit t\u00eb pulsit (banda e fitnessit). Ai p\u00ebrb\u00ebhet nga dy sh\u00ebrbime dhe disa karakteristika. Nga ky skem\u00eb menj\u00ebher\u00eb kuptohet hierarkia e profilit. Karakteristika e pik\u00ebs s\u00eb kontrollit reseton num\u00ebrimin e p\u00ebrgjithsh\u00ebm t\u00eb shpenzimeve t\u00eb kalorive n\u00eb zero. <\/p>\n<p>1. Sh\u00ebrbimi i ritmit t\u00eb zemr\u00ebs p\u00ebrfshin tre karakteristika (0x180D):<br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;a) Karakteristika e detyrueshme e rrahjeve t\u00eb zemr\u00ebs (0x2A37)<br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;b) Karakteristika opsionale e pozicionit t\u00eb sensorit t\u00eb trupit (0x2A38)<br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;c) Karakteristika kushtore e pik\u00ebs s\u00eb kontrollit t\u00eb ritmit t\u00eb zemr\u00ebs (0x2A39)<br \/>\n2. Sh\u00ebrbimi i mir\u00ebmbajtjes s\u00eb bateris\u00eb (0x180F):<br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;a) Karakteristika e detyrueshme e nivelit t\u00eb ngarkes\u00ebs s\u00eb bateris\u00eb (0x2A19)<\/p>\n<h3>UUID<\/h3>\n<p>\nP\u00ebr t\u00eb qen\u00eb n\u00eb gjendje t\u00eb referohemi qart\u00eb n\u00eb elementet e profilit (sh\u00ebrbimeve, karakteristikave dhe descriptor\u00ebve), ne duhet t'i num\u00ebrojm\u00eb ato somehow. P\u00ebr k\u00ebt\u00eb q\u00ebllim, \u00ebsht\u00eb futur koncepti i Universally Unique ID (UUID) ose Identifikuesi Universalis Unik. N\u00eb kllapa t\u00eb secil\u00ebs rresht \u00ebsht\u00eb pik\u00ebrisht UUID. Ka nj\u00eb ve\u00e7ori k\u00ebtu. P\u00ebr UUID \u00ebsht\u00eb vendosur t\u00eb p\u00ebrdoret nj\u00eb kod me gjat\u00ebsi 16 dhe 128 bit. Pse, do t\u00eb pyesni? N\u00eb protokollin BLE, gjith\u00e7ka \u00ebsht\u00eb n\u00ebn kontrollin e ruajtjes s\u00eb energjis\u00eb. Prandaj, dimensioni prej 16 bit \u00ebsht\u00eb mjaft i arsyesh\u00ebm. Ka pak shanse q\u00eb n\u00eb t\u00eb ardhmen e af\u00ebrt t\u00eb krijohen m\u00eb shum\u00eb se 65 mij\u00eb sh\u00ebrbime dhe karakteristika unike. Aktualisht, gjith\u00e7ka q\u00eb mund\u00ebn, tashm\u00eb e kan\u00eb llogaritur (kini parasysh se nga erdhi kjo - \"ai ju numeronte edhe ju\" :-)) Element\u00ebt e num\u00ebruar <noindex><a rel=\"nofollow\" href=\"https:\/\/www.bluetooth.com\/specifications\/gatt\/\">profil\u00ebve<\/a><\/noindex>, <noindex><a rel=\"nofollow\" href=\"https:\/\/www.bluetooth.com\/specifications\/gatt\/services\/\">sh\u00ebrbimeve<\/a><\/noindex>, <noindex><a rel=\"nofollow\" href=\"https:\/\/www.bluetooth.com\/specifications\/gatt\/characteristics\/\">karakteristikave<\/a><\/noindex> dhe <noindex><a rel=\"nofollow\" href=\"https:\/\/www.bluetooth.com\/specifications\/gatt\/descriptors\/\">descriptor\u00ebve<\/a><\/noindex> mund t'i shihni n\u00eb lidhjet e m\u00ebsip\u00ebrme.<\/p>\n<p>Megjithat\u00eb, mendoj se t\u00eb gjith\u00eb e mbajn\u00eb mend historin\u00eb me 4 bajt\u00ebt e adres\u00ebs IP n\u00eb internet. Fillimisht mendohej se mjaftonte, por tani nuk kalojm\u00eb n\u00eb adres\u00ebn 6-bajt\u00ebshe. Q\u00eb t\u00eb mos p\u00ebrs\u00ebrisim k\u00ebt\u00eb gabim dhe t'u japim hap\u00ebsir\u00eb duarve t\u00eb ren\u00eb t'ua japin, SIG vendosi t\u00eb fut\u00eb edhe UUID me 128 bit. M\u00eb kujton k\u00ebt\u00eb nj\u00eb band\u00eb t\u00eb paligjshme prej 433MHz, e cila iu dha dor\u00eb disa Kuli b\u00ebjsh nga kanali radio. N\u00eb rastin ton\u00eb, u dha n\u00eb dor\u00eb identifikuesi 128 bit t\u00eb sh\u00ebrbimeve dhe karakteristikave. Kjo do t\u00eb thot\u00eb q\u00eb p\u00ebr sh\u00ebrbimet dhe pajisjet tona, mund t\u00eb p\u00ebrdorim \u00e7far\u00ebdo vler\u00eb 128 bit. S\u00ebrish, probabiliteti i shpikjes s\u00eb UUID identike \u00ebsht\u00eb pran\u00eb zeros.<\/p>\n<p>N\u00eb t\u00eb v\u00ebrtet\u00eb, UUID t\u00eb shkurt\u00ebr 16 bit kan\u00eb nj\u00eb zgjerim n\u00eb vler\u00ebn 128 bit. N\u00eb spesifikim, ky zgjerim quhet Bluetooth Base UUID dhe ka vler\u00ebn 00000000-0000-1000-8000-00805F9B34FB. N\u00ebse, p\u00ebr shembull, UUID 16 bit i atributit ka vler\u00ebn 0x1234, UUID 128 bit ekuivalente do t\u00eb ket\u00eb vler\u00ebn 00001234-0000-1000-8000-00805F9B34FB. Dhe madje ka nj\u00eb formul\u00eb p\u00ebrkat\u00ebse:<\/p>\n<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;128_bit_value = 16_bit_value * 2^96 + Bluetooth_Base_UUID<\/p>\n<p>Nga ka ardhur ky num\u00ebr magjik, nuk e di. N\u00ebse ndonj\u00eb prej lexuesve e di \u2014 le t\u00eb shkruaj\u00eb n\u00eb komentet (P\u00ebrdoruesi me pseudonimin Sinopteek e ka b\u00ebr\u00eb k\u00ebt\u00eb. Shihni komentet). Sa i p\u00ebrket shpikjes s\u00eb UUID 128 bit, n\u00eb parim mund t\u00eb p\u00ebrdorim nj\u00eb <noindex><a rel=\"nofollow\" href=\"https:\/\/www.famkruithof.net\/uuid\/uuidgen\">gjenerator.<\/a><\/noindex>, i cili do ta b\u00ebj\u00eb k\u00ebt\u00eb p\u00ebr ju.<\/p>\n<h3>ATT-t\u00eb GATT-t\u00eb\u2026<\/h3>\n<p>\n N\u00eb fakt, aty fillon e gjitha q\u00eb \u00ebsht\u00eb interesante. Dua t\u00eb kujtoj se ATT bazohet n\u00eb nj\u00eb marr\u00ebdh\u00ebnie klient-server. Tani po shqyrtojm\u00eb pajisjen e serverit. Ai p\u00ebrmban informacione t\u00eb tilla si vlerat e sensor\u00ebve, gjendjen e ndri\u00e7uesve, t\u00eb dh\u00ebnat p\u00ebr vendndodhjen, etj. Tani, kur t\u00eb gjith\u00eb \"pjes\u00ebmarr\u00ebsit e parad\u00ebs son\u00eb\" jan\u00eb num\u00ebruar, duhet t'i vendosim ata ndonj\u00ebher\u00eb n\u00eb memorien e pajisjes. P\u00ebr k\u00ebt\u00eb, i vendosim n\u00eb nj\u00eb tabel\u00eb, e quajtur tabela e atributeve. Mbani mend k\u00ebt\u00eb mir\u00eb. Ky \u00ebsht\u00eb zemra e BLE. K\u00ebt\u00eb do ta shqyrtojm\u00eb m\u00eb tutje. Tani \u00e7do rresht do ta quajm\u00eb atribut. Kjo tabel\u00eb \u00ebsht\u00eb n\u00eb thell\u00ebsi t\u00eb stack-ut dhe, si rregull, nuk kemi qasje t\u00eb drejtp\u00ebrdrejt\u00eb tek ajo. Ne e inicializojm\u00eb dhe i referohemi asaj, por \u00e7far\u00eb ndodh brenda saj \u00ebsht\u00eb e fshehur nga ne pas shtat\u00eb vulave. <\/p>\n<p>Le t\u00eb shqyrtojm\u00eb imazhin nga specifikimi, por para k\u00ebsaj, dua t\u00eb t\u00ebrheq v\u00ebmendjen mbi ngatht\u00ebsin\u00eb e zakonshme n\u00eb terma, sidomos n\u00eb deskriptor\u00eb. Rohla e deskriptorit \u00ebsht\u00eb t\u00eb plot\u00ebsoj\u00eb p\u00ebrshkrimin e karakteristikave. Kur \u00ebsht\u00eb e nevojshme t\u00eb zgjeroni mund\u00ebsit\u00eb e saj, at\u00ebher\u00eb p\u00ebrdoren deskriptor\u00eb. Ata gjithashtu jan\u00eb atribute, dhe ashtu si sh\u00ebrbimet dhe karakteristikat, jan\u00eb t\u00eb pozicionuar n\u00eb tabel\u00ebn e atributeve. Do t'i shqyrtojm\u00eb ato n\u00eb pjes\u00ebn e dyt\u00eb t\u00eb artikullit. Megjithat\u00eb, ndonj\u00ebher\u00eb deskriptor\u00ebt quhen numri i rreshtit n\u00eb tabel\u00ebn e atributeve. Kjo duhet t\u00eb mbahet mend. Ne, p\u00ebr t\u00eb mos u ngat\u00ebrruar, do t\u00eb p\u00ebrdorim termin \"tregues atribute\" p\u00ebr k\u00ebto q\u00ebllime.<br \/>\n<img decoding=\"async\" alt=\"BLE n\u00ebn mikroskop (ATT-t\u00eb GATT-t\u00eb...)\" src=\"\/wp-content\/uploads\/2020\/06\/6df836477b153c396bdba9068129bb6f.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nPra, atributi \u00ebsht\u00eb nj\u00eb vler\u00eb diskrete, e cila ka k\u00ebto pron\u00ebsi t\u00eb lidhura me t\u00eb:<br \/>\n1. Treguesi i atributit (Attribute Handle) \u2014 \u00ebsht\u00eb indeksi n\u00eb tabel\u00eb, q\u00eb i p\u00ebrshtatet atributit <br \/>\n2. Lloji i atributit (Attribute Type) \u2014 \u00ebsht\u00eb UUID q\u00eb p\u00ebrshkruan llojin e tij <br \/>\n3. Vlera e atributit (Attribute Value) \u2014 jan\u00eb t\u00eb dh\u00ebnat e indeksuara nga treguesi i atributit <br \/>\n4. Lejet e atributeve (Attribute Permissions) \u2014 \u00ebsht\u00eb pjesa e atributit, lejet q\u00eb nuk&nbsp;&nbsp;&nbsp;&nbsp; mund t\u00eb lexohen ose shkruhen duke p\u00ebrdorur protokollin e atributeve<\/p>\n<p>Si ta kuptojm\u00eb t\u00eb gjith\u00eb k\u00ebt\u00eb? Treguesi i atributit \u00ebsht\u00eb, p\u00ebr t\u00eb th\u00ebn\u00eb, numri i tij n\u00eb tabel\u00ebn ton\u00eb.<br \/>\nAi lejon klienti t\u00eb referohet n\u00eb atribut n\u00eb k\u00ebrkesat e leximit ose shkruajtjes. Ne mund t\u00eb num\u00ebrojm\u00eb rreshtat tan\u00eb (atributet) nga 0x0001 n\u00eb 0xFFFF. N\u00eb asociacionin ton\u00eb me nj\u00eb bibliotek\u00eb, kjo \u00ebsht\u00eb numri i kartel\u00ebs n\u00eb katalogun e let\u00eb. Po ashtu, si n\u00eb katalogun e bibliotek\u00ebs, kartelat vendosen sipas rritjes s\u00eb numrit. Numri i \u00e7do rreshti t\u00eb ardhsh\u00ebm duhet t\u00eb jet\u00eb m\u00eb i madh se i m\u00ebparshmi. Si n\u00eb bibliotek\u00eb, ndonj\u00ebher\u00eb humbin disa kartela, ashtu edhe tek ne - n\u00eb num\u00ebrimin e rreshtave mund t\u00eb ket\u00eb boshll\u00ebqe. Kjo \u00ebsht\u00eb e pranueshme. E r\u00ebnd\u00ebsishme \u00ebsht\u00eb q\u00eb ato t\u00eb shkojn\u00eb n\u00eb m\u00ebnyr\u00eb rrit\u00ebse.<\/p>\n<p>Lloji i atributit p\u00ebrcakton se \u00e7far\u00eb p\u00ebrfaq\u00ebson ky atribut. N\u00eb analogji me gjuh\u00ebn C,<br \/>\nku ka variabla boolean, num\u00ebrues dhe vargje, ashtu ndodhi edhe k\u00ebtu. Nga lloji i atributit ne m\u00ebsojm\u00eb <br \/>\nse me \u00e7far\u00eb kemi t\u00eb b\u00ebjm\u00eb dhe si t\u00eb vazhdojm\u00eb m\u00eb tej me k\u00ebt\u00eb atribut. M\u00eb posht\u00eb do t\u00eb shqyrtojm\u00eb disa lloje specifike atributesh. P\u00ebr shembull \"deklarata e sh\u00ebrbimit\" (0x2800), \"deklarata e karakteristikave\" (0x2803), \"deklarata e deskriptorit\" (0x2902).<\/p>\n<p>Vlera e atributit \u00ebsht\u00eb vet\u00eb vlera e tij, falni p\u00ebr tautologji. N\u00ebse lloji i atributit \u00ebsht\u00eb varg, at\u00ebher\u00eb vlera e atributit mund t\u00eb jet\u00eb p\u00ebr shembull slogan \"Hello World !!!\". N\u00ebse lloji i atributit \u00ebsht\u00eb \"deklarata e sh\u00ebrbimit\", at\u00ebher\u00eb vlera e tij \u00ebsht\u00eb vet\u00eb sh\u00ebrbimi. Dhe ndonj\u00ebher\u00eb kjo \u00ebsht\u00eb informata se ku t\u00eb gjejm\u00eb atributet e tjera dhe pron\u00ebsit\u00eb e tyre.<\/p>\n<p>Lejet e atribut\u00ebve i lejojn\u00eb serverit t\u00eb kuptoj\u00eb n\u00ebse lejohet akses p\u00ebr lexim ose shkruajtje. <br \/>\nVini re se k\u00ebto leje zbatohen vet\u00ebm mbi vler\u00ebn e atributit, dhe jo mbi treguesin, llojin dhe vet\u00eb fush\u00ebn e lejeve. Pra, n\u00ebse lejohet shkruajtja e atributit, at\u00ebher\u00eb ne mund ta ndryshojm\u00eb, p\u00ebr shembull, rreshtin \"Hello World !!!\" n\u00eb rreshtin \"Good morning\". Por nuk mund t\u00eb ndalojm\u00eb shkruajtjen e nj\u00eb rreshti t\u00eb ri ose, t\u00eb ndryshojm\u00eb llojin e atributit dhe t\u00eb sh\u00ebnojm\u00eb rreshtin si \"deklarat\u00eb sh\u00ebrbimi\". Kur klienti i drejtohet serverit, ai k\u00ebrkon atributet e tij. Kjo i lejon klientit t\u00eb kuptoj\u00eb se \u00e7far\u00eb mund t\u00eb ofroj\u00eb serveri. Megjithat\u00eb, nuk \u00ebsht\u00eb e detyrueshme t\u00eb lexoni dhe shkruani vlerat.<\/p>\n<h3>Si duket kjo<\/h3>\n<p>\nKoncepcioni GATT \u00ebsht\u00eb grumbullimi i atributeve n\u00eb nj\u00eb tabel\u00eb atribute n\u00eb nj\u00eb rend shum\u00eb specifik dhe logjik. Le t\u00eb shqyrtojm\u00eb m\u00eb af\u00ebr profilin e frekuenc\u00ebs s\u00eb rrahjeve t\u00eb zemr\u00ebs, t\u00eb dh\u00ebn\u00eb m\u00eb posht\u00eb. Kolona m\u00eb e majt\u00eb e k\u00ebsaj tabele \u00ebsht\u00eb jo e detyrueshme. Ajo thjesht na p\u00ebrshkruan se \u00e7far\u00eb \u00ebsht\u00eb ky rresht (atribut). T\u00eb gjitha kolonat e tjera na jan\u00eb tashm\u00eb t\u00eb njohura.<\/p>\n<p><img decoding=\"async\" alt=\"BLE n\u00ebn mikroskop (ATT-t\u00eb GATT-t\u00eb...)\" src=\"\/wp-content\/uploads\/2020\/06\/110813482dacb0f19cb49e735f4a9e34.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nN\u00eb krye t\u00eb \u00e7do grupi, gjithmon\u00eb kemi atributin e shpalljes s\u00eb sh\u00ebrbimit. Lloji i tij gjithmon\u00eb \u00ebsht\u00eb 0x2800 dhe treguesi varet nga sa atribute tashm\u00eb jan\u00eb t\u00eb pranishme n\u00eb tabel\u00eb. Rregullat e tij gjithmon\u00eb jan\u00eb t\u00eb disponueshme vet\u00ebm p\u00ebr lexim, pa verifikim autenticiteti ose autorizimi. p\u00ebr k\u00ebto koncepte do t\u00eb flasim m\u00eb von\u00eb. Vlera \u2014 \u00ebsht\u00eb nj\u00eb UUID tjet\u00ebr, q\u00eb p\u00ebrcakton se \u00e7far\u00eb lloj sh\u00ebrbimi \u00ebsht\u00eb. N\u00eb Tabel\u00eb, vlera \u00ebsht\u00eb 0x180D, e cila p\u00ebrcaktohet nga Bluetooth SIG si sh\u00ebrbimi i frekuenc\u00ebs s\u00eb rrahjeve t\u00eb zemr\u00ebs. <\/p>\n<p>Pas shpalljes s\u00eb sh\u00ebrbimit, ndjek shpallja e karakteristik\u00ebs. Nga forma, ajo \u00ebsht\u00eb e ngjashme me shpalljen e sh\u00ebrbimit. UUID i saj gjithmon\u00eb ka vler\u00ebn 0x2803, dhe rregullat gjithashtu jan\u00eb gjithmon\u00eb t\u00eb disponueshme vet\u00ebm p\u00ebr lexim, pa verifikim autenticiteti ose autorizimi. Le ta shohim fush\u00ebn e Vler\u00ebs s\u00eb Atributit, e cila p\u00ebrfshin disa t\u00eb dh\u00ebna. Ajo gjithmon\u00eb p\u00ebrmban nj\u00eb tregues, UUID dhe nj\u00eb grup pronash. K\u00ebto tre elemente p\u00ebrshkruajn\u00eb shpalljen e vler\u00ebs s\u00eb karakteristik\u00ebs q\u00eb do t\u00eb vij\u00eb. Treguesi natyrisht tregon vendin e shpalljes s\u00eb vler\u00ebs s\u00eb karakteristik\u00ebs n\u00eb tabel\u00ebn e atributeve. UUID p\u00ebrshkruan se \u00e7far\u00eb lloj informacioni ose vlere mund t\u00eb presim. P\u00ebr shembull, vlera e temperatur\u00ebs, gjendja e ndri\u00e7uesit t\u00eb drit\u00ebs ose ndonj\u00eb vler\u00eb tjet\u00ebr rast\u00ebsore. Dhe s\u00eb fundi, pronat q\u00eb p\u00ebrshkruajn\u00eb si mund t\u00eb nd\u00ebrveprojm\u00eb me vler\u00ebn karakteristike. <\/p>\n<p>K\u00ebtu na pret nj\u00eb tjet\u00ebr penges\u00eb. Ajo \u00ebsht\u00eb e lidhur me rregullat e atributeve dhe pronat e karakteristikave. Le ta shohim imazhin e pronave t\u00eb fush\u00ebs bit nga specifikimi.<\/p>\n<p><img decoding=\"async\" alt=\"BLE n\u00ebn mikroskop (ATT-t\u00eb GATT-t\u00eb...)\" src=\"\/wp-content\/uploads\/2020\/06\/7397f7f69e573ae3084cbacdcd318829.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nSi\u00e7 e shihni, k\u00ebtu gjithashtu ka fusha q\u00eb ofrojn\u00eb mund\u00ebsi leximi dhe shkrimi. Mund t\u00eb pyesni veten, pse kemi rregulla p\u00ebr lexim\/shkrim p\u00ebr atributin dhe pron\u00ebn. <br \/>\nlexh\/fiksimi p\u00ebr vler\u00ebn e karakteristik\u00ebs? A nuk duhet t\u00eb jen\u00eb ato gjithmon\u00eb t\u00eb nj\u00ebjta? E v\u00ebrteta \u00ebsht\u00eb se vlerat p\u00ebr karakteristik\u00ebn, n\u00eb fakt jan\u00eb vet\u00ebm rekomandime p\u00ebr klientin, q\u00eb p\u00ebrdoren n\u00eb GATT dhe shtresat aplikative. K\u00ebto jan\u00eb vet\u00ebm sugjerime p\u00ebr at\u00eb q\u00eb klienti mund t\u00eb pres\u00eb nga atributi i shpalljes s\u00eb karakteristik\u00ebs. Le t\u00eb zb\u00ebrthejm\u00eb k\u00ebt\u00eb m\u00eb n\u00eb detaje. Cilat jan\u00eb llojet e lejeve q\u00eb ka atributi? <\/p>\n<p>1. Lejet e aksesit:<br \/>\n&nbsp;&nbsp;&nbsp;&nbsp; \u2014 lexim<br \/>\n&nbsp;&nbsp;&nbsp;&nbsp; \u2014 shkrim<br \/>\n&nbsp;&nbsp;&nbsp;&nbsp; \u2014 lexim dhe shkrim<br \/>\n2. Leja e autentifikimit:<br \/>\n&nbsp;&nbsp;&nbsp;&nbsp; \u2014 autentifikimi k\u00ebrkohet<br \/>\n&nbsp;&nbsp;&nbsp;&nbsp; \u2014 autentifikimi nuk k\u00ebrkohet<br \/>\n3. Leja e autorizimit:<br \/>\n&nbsp;&nbsp;&nbsp;&nbsp; \u2014 autorizimi k\u00ebrkohet<br \/>\n&nbsp;&nbsp;&nbsp;&nbsp; \u2014 autorizimi nuk k\u00ebrkohet<\/p>\n<p>Dallimi kryesor midis lejeve t\u00eb atribueteve dhe pronave t\u00eb karakteristikave \u00ebsht\u00eb se t\u00eb parat i p\u00ebrkasin server\u00ebve, nd\u00ebrsa t\u00eb dyjat i p\u00ebrkasin klient\u00ebve. Nj\u00eb server mund t\u00eb ket\u00eb leje p\u00ebr t\u00eb lexuar vler\u00ebn e karakteristik\u00ebs, por mund t\u00eb ket\u00eb k\u00ebrkes\u00eb p\u00ebr autentifikim ose autorizim. Prandaj, kur klienti k\u00ebrkon pronat e karakteristik\u00ebs, ne do t\u00eb marrim q\u00eb leximi \u00ebsht\u00eb i lejuar. Por kur p\u00ebrpiqemi t\u00eb lexojm\u00eb, do t\u00eb marrim nj\u00eb gabim. Prandaj, mund t\u00eb themi me siguri se lejet kan\u00eb prioritet mbi pronat. T\u00eb dh\u00ebnat n\u00eb lidhje me lejet e atributit, ne si klient\u00eb, nuk mund t'i marrim.<\/p>\n<h3>Dskritor<\/h3>\n<p>\nLe t\u00eb kthehemi n\u00eb tabel\u00ebn ton\u00eb. Pas shpalljes s\u00eb vler\u00ebs s\u00eb karakteristik\u00ebs, jan\u00eb t\u00eb mundshme shpallje t\u00eb tjera t\u00eb atributeve: <br \/>\n1. Nj\u00eb shpallje e re e karakteristik\u00ebs (n\u00eb sh\u00ebrbim mund t\u00eb ket\u00eb shum\u00eb karakteristika)<br \/>\n2. Nj\u00eb shpallje e re e sh\u00ebrbimit (n\u00eb tabel\u00eb mund t\u00eb ket\u00eb shum\u00eb prej tyre)<br \/>\n3. Shpallja e dskritorit <\/p>\n<p>N\u00eb rastin e karakteristik\u00ebs s\u00eb mas\u00ebs s\u00eb frekuenc\u00ebs s\u00eb ritmit t\u00eb zemr\u00ebs, n\u00eb tabel\u00ebn ton\u00eb, shpallja e vler\u00ebs s\u00eb karakteristik\u00ebs shoq\u00ebrohet me shpalljen e deskriptorit. Deskriptorja \u00ebsht\u00eb nj\u00eb atribut me informacion shtes\u00eb rreth karakteristik\u00ebs. Ka disa lloje deskriptor\u00ebsh. Ne do t\u00eb flasim p\u00ebr to n\u00eb pjes\u00ebn e dyt\u00eb t\u00eb k\u00ebtij artikulli. Tani, do t\u00eb trajtojm\u00eb vet\u00ebm deskriptorin e konfiguracionit t\u00eb karakteristikave t\u00eb klientit (Client Characteristic Configuration Descriptor - CCCD). Ai ka nj\u00eb UUID t\u00eb barabart\u00eb me 0x2902. Me an\u00eb t\u00eb k\u00ebtij deskriptorit, klienti ka mund\u00ebsin\u00eb t\u00eb aktivizoj\u00eb n\u00eb server njoftimin ose indikimin. Diferenca mes tyre \u00ebsht\u00eb e vog\u00ebl, por gjithsesi ekziston. Njoftimi nuk k\u00ebrkon konfirmimin e marrjes nga ana e klientit. Nd\u00ebrsa, indikimi e k\u00ebrkon k\u00ebt\u00eb, megjith\u00ebse ndodh n\u00eb nivelin GATT, pa arritur n\u00eb nivelin e aplikacionit. Pse k\u00ebshtu, mund t\u00eb pyesni? M\u00eb vjen keq, kjo nuk m\u00eb \u00ebsht\u00eb e njohur. Thjesht do t\u00eb them se specialist\u00ebt e Nordic rekomandojn\u00eb p\u00ebrdorimin e njoftimit. Aq m\u00eb tep\u00ebr q\u00eb kontrolli i integritetit t\u00eb paket\u00ebs (me an\u00eb t\u00eb CRC) ndodh n\u00eb t\u00eb dy rastet.<\/p>\n<h3>P\u00ebrfundim<\/h3>\n<p>\nN\u00eb fund t\u00eb artikullit, do t\u00eb doja t\u00eb thoja k\u00ebt\u00eb. Tabela e fundit \u00ebsht\u00eb pak e komplikuar. Megjithat\u00eb, un\u00eb u ndala te ajo p\u00ebr shkak se ajo jepet n\u00eb <noindex><a rel=\"nofollow\" href=\"https:\/\/devzone.nordicsemi.com\/nordic\/short-range-guides\/b\/bluetooth-low-energy\/posts\/ble-characteristics-a-beginners-tutorial\">artikulli yn\u00eb<\/a><\/noindex>, n\u00eb t\u00eb cil\u00ebn mb\u00ebshtetem. N\u00eb pjes\u00ebn e dyt\u00eb t\u00eb artikullit tim, kam nd\u00ebrmend t\u00eb thellohem n\u00eb specifikimin BlueTooth 4.0. Aty na presin skemat dhe ilustrimet m\u00eb t\u00eb sakta. N\u00eb pjes\u00ebn e tret\u00eb, do t\u00eb doja t\u00eb shqyrtoj logun e marr\u00eb me an\u00eb t\u00eb programit Wireshark nga nj\u00eb nga pajisjet dhe t\u00eb shoh \u201cn\u00eb t\u00eb drejtp\u00ebrdrejt\u00eb\u201d t\u00eb gjith\u00eb at\u00eb teori q\u00eb po studiojm\u00eb bashk\u00eb.<\/p>\n<p>Punonj\u00ebsi i Grupit t\u00eb Kompanive <noindex><a rel=\"nofollow\" href=\"https:\/\/www.csat.ru\/\">\u00abCezar Satellite\u00bb<\/a><\/noindex><br \/>\nPecherskiy Vladimir<br \/>\n<br \/>Burimi: <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/post\/505078\/\">habr.com<\/a> <\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>BLE \u043f\u043e\u0434 \u043c\u0438\u043a\u0440\u043e\u0441\u043a\u043e\u043f\u043e\u043c (ATT\u044b GATT\u044b&#8230;) \u0427\u0430\u0441\u0442\u044c 1, \u043e\u0431\u0437\u043e\u0440\u043d\u0430\u044f \u0423\u0436\u0435 \u043f\u0440\u043e\u0448\u043b\u043e \u0434\u043e\u0432\u043e\u043b\u044c\u043d\u043e \u0431\u043e\u043b\u044c\u0448\u043e\u0435 \u0432\u0440\u0435\u043c\u044f, \u0441 \u0442\u0435\u0445 \u043f\u043e\u0440, \u043a\u043e\u0433\u0434\u0430 \u0432\u044b\u0448\u043b\u0430 \u043f\u0435\u0440\u0432\u0430\u044f \u0441\u043f\u0435\u0446\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u044f \u043d\u0430 Bluetooth 4.0. \u0418, \u0445\u043e\u0442\u044f \u0442\u0435\u043c\u0430 BLE \u043e\u0447\u0435\u043d\u044c \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u0430, \u043e\u043d\u0430 \u0434\u043e \u0441\u0438\u0445 \u043f\u043e\u0440 \u043e\u0442\u0442\u0430\u043b\u043a\u0438\u0432\u0430\u0435\u0442 \u043c\u043d\u043e\u0433\u0438\u0445 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u043e\u0432, \u0438\u0437-\u0437\u0430 \u0441\u0432\u043e\u0435\u0439 \u0441\u043b\u043e\u0436\u043d\u043e\u0441\u0442\u0438. \u0412 \u0441\u0432\u043e\u0438\u0445 \u043f\u0440\u0435\u0434\u044b\u0434\u0443\u0449\u0438\u0445 \u0441\u0442\u0430\u0442\u044c\u044f\u0445 \u044f \u0440\u0430\u0441\u0441\u043c\u0430\u0442\u0440\u0438\u0432\u0430\u043b \u0432 \u043e\u0441\u043d\u043e\u0432\u043d\u043e\u043c \u0441\u0430\u043c\u044b\u0439 \u043d\u0438\u0436\u043d\u0438\u0439 \u0443\u0440\u043e\u0432\u0435\u043d\u044c Link Layer \u0438 Physical Layer. [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":84025,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[688],"tags":[],"class_list":["post-84024","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-administrirovanie"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.2 - aioseo.com -->\n\t<meta name=\"description\" content=\"BLE \u043f\u043e\u0434 \u043c\u0438\u043a\u0440\u043e\u0441\u043a\u043e\u043f\u043e\u043c (ATT\u044b GATT\u044b...) \u0427\u0430\u0441\u0442\u044c 1.\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"Yuri Gagarin\"\/>\n\t<link rel=\"canonical\" href=\"https:\/\/prohoster.info\/sq\/blog\/administrirovanie\/ble-pod-mikroskopom-atty-gatty\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.2\" \/>\n\t\t<meta property=\"og:locale\" content=\"sq_AL\" \/>\n\t\t<meta property=\"og:site_name\" content=\"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"\ud83e\udd47BLE \u043f\u043e\u0434 \u043c\u0438\u043a\u0440\u043e\u0441\u043a\u043e\u043f\u043e\u043c (ATT\u044b GATT\u044b\u2026) | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"BLE \u043f\u043e\u0434 \u043c\u0438\u043a\u0440\u043e\u0441\u043a\u043e\u043f\u043e\u043c (ATT\u044b GATT\u044b...) \u0427\u0430\u0441\u0442\u044c 1.\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/sq\/blog\/administrirovanie\/ble-pod-mikroskopom-atty-gatty\" \/>\n\t\t<meta property=\"og:image\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:secure_url\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:width\" content=\"350\" \/>\n\t\t<meta property=\"og:image:height\" content=\"350\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2020-06-04T17:42:32+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2020-06-04T17:42:32+00:00\" \/>\n\t\t<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<meta property=\"article:author\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"\ud83e\udd47BLE n\u00ebn mikroskop (ATT-t\u00eb GATT-t\u00eb\u2026) | ProHoster","description":"BLE n\u00ebn mikroskop (ATT t\u00eb GATT) ... Pjesa 1.","canonical_url":"https:\/\/prohoster.info\/sq\/blog\/administrirovanie\/ble-pod-mikroskopom-atty-gatty","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"sq_AL","og:site_name":"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b","og:type":"article","og:title":"\ud83e\udd47BLE \u043f\u043e\u0434 \u043c\u0438\u043a\u0440\u043e\u0441\u043a\u043e\u043f\u043e\u043c (ATT\u044b GATT\u044b\u2026) | ProHoster","og:description":"BLE \u043f\u043e\u0434 \u043c\u0438\u043a\u0440\u043e\u0441\u043a\u043e\u043f\u043e\u043c (ATT\u044b GATT\u044b...) \u0427\u0430\u0441\u0442\u044c 1.","og:url":"https:\/\/prohoster.info\/sq\/blog\/administrirovanie\/ble-pod-mikroskopom-atty-gatty","og:image":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:secure_url":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:width":350,"og:image:height":350,"article:published_time":"2020-06-04T17:42:32+00:00","article:modified_time":"2020-06-04T17:42:32+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"84024","title":null,"description":null,"keywords":null,"keyphrases":null,"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":null,"og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"","isEnabled":true},"graphs":[]},"schema_type":null,"schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":null,"robots_max_videopreview":null,"robots_max_imagepreview":"large","priority":null,"frequency":null,"local_seo":null,"seo_analyzer_scan_date":null,"breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2021-02-28 15:06:38","updated":"2022-09-28 11:11:59","focus_keyword":null,"additional_keywords":null,"truseo_locale":null},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/posts\/84024","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/comments?post=84024"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/posts\/84024\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/media\/84025"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/media?parent=84024"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/categories?post=84024"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/tags?post=84024"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}