Piața are acum multe balize și producătorii lor. În cea mai mare parte, ele sunt destinate determinării localizării în interiorul clădirilor. Există idei interesante din categoria încorporării balizelor în valize, astfel încât la semnalul lor să le caute la aeroport. Dar, având în vedere puterea, seamănă cu o jucărie. Voiam să văd și să pun în aplicare ceva original și util în același timp. Deci, există câteva formalități pe site și în biroul lui Habr, și baliza iBKS în mâinile mele:
Despre faruri scrise foarte mult. De exemplu: "Platforma de baliză Google. Partea 1 "sau" platforma de baliză Google ". Partea 2 ». Nu voi repeta, dar voi spune că ar fi trebuit să utilizeze baliza cu platforma de baliză Google și să lucreze cu el pe API. Realitatea și-a pus punctele deasupra "i", pe care o voi vorbi mai târziu.
Diagrama schematică a lucrării
Figura 1. Schema de organizare a interacțiunii
Aceasta este soluția care mi-a venit în minte și acum să încercăm să o implementăm.
Ne amintește ideea în fier
Aveam o centrală Avaya cu o poartă G250. Aceasta este o blocare veche, retrasă de mult din producție. Dar noul său înlocuitor - G450 / G430 - are de asemenea componentele de care avem nevoie, și anume controlul încuietorii electronice a ușii. În această poartă pentru nevoile birourilor mici se construiește un releu uscat - așa-numitul Adjunct de închidere a contactului (vezi Figura 2).
Figura 2. Gateway-ul Avaya G430
Totul a fost gata, și am continuat. Ca de obicei, realitatea a pus punctele pe "i".
capcane
Pentru a începe, este necesar un beacon să te înregistrezi la Google Beacon Registry. Cea mai ușoară modalitate de a face acest lucru este prin aplicația mobilă Google Beacon Tools, disponibilă atât pe Google Play Market, cât și pe Apple App Store.
Am pornit farul prin scoaterea deconectorului din plastic dintre microcircuit și baterie, instalat Google Beacon Tools și am început să caut baliza. Nu a apărut. Apoi am descărcat instrumentul de configurare iBKS de la producător. Această aplicație este disponibilă și pentru dispozitive Android și iOS. Și - despre un miracol! A apărut farul.
Figura 3. Instrumentul de configurare iBKS
Cu toate acestea, în Google Beacon Tools, el nu a vrut să apară persistent. După terminarea Internetului, am scos că trebuie să intru în modul de editare din Instrumentul de configurare iBKS și să schimb tipul de difuzor. În modul de editare, aplicația a refuzat să intre consecvent, atât pe Android, cât și pe iOS. Introducerea acestui mod a fost posibilă numai după oprirea și repornirea beaconului prin eliminarea bateriei. Totul a fost de aproximativ 30 de secunde, iar baliza a fost blocată din nou. Nu am putut să înțeleg, a fost o caracteristică sau un bug. Nu a fost descris nicăieri. Vezi Figura 4.
Figura 4. Modul de editare iBKS Config Tool
După modificarea modului de publicitate c 1 la 7 (a se vedea figura 5), am văzut în sfârșit baliza din Google Beacon Tools (a se vedea Figura 6). Dar el a refuzat să se înregistreze.
Figura 5. Selectarea modului de publicitate
Figura 6. Instrumentele Google Beacon
Instrumentele Google Beacon pentru înregistrare necesită ca baliza să fie în modul iBeacon sau Eddystone UUID. dar în acest mod, el nu a văzut-o în mod persistent. În același mod de adresă Eddystone, a văzut-o, dar a refuzat să se înregistreze. Comportamentul acestei aplicații pe Android și iOS a fost același, deși aplicația Android a selectat mai întâi proiectul și numai apoi a refuzat înregistrarea acestuia.
Ceea ce a cauzat acest comportament al farului nu a fost posibil să se afle în timpul proiectului. Se pare că farul însuși era problematic. Bineînțeles, aceasta a fost înlocuită, desigur, dar proiectul a fost limitat la un interval de timp și nu a existat timp pentru o nouă călătorie în biroul Habr. Din experimentele cu iBKS Config Tool și Google Beacon Tools a fost clar că emițătorul emite și transmite identificatorul său unic. Prin urmare, sa decis să se facă identificarea balizei pentru standul demonstrativ nu pe atașamentul primit de la Registrul Google Beacons, ci pe identificatorul său. În general, pentru o soluție de prototip, o astfel de înlocuire este destul de adecvată.
Deci, rămâne doar să găsim biblioteca Java, ceea ce ar permite organizației Android să organizeze detectarea identificatorului balizei. Desigur, GitHub și biblioteca Radiusnetwork.com.eddystonedemo au venit la salvare. Această bibliotecă vă permite să vedeți identificatorul de baliză, care este, de asemenea, vizibil prin instrumentul de configurare iBKS. Descrierea este dată aici.
Activitatea a fost organizată (a se vedea figura 7), care avea un buton gri mare. Acest buton a schimbat culoarea, numele și proprietatea Clickable după ce a fost găsit baliza. Ie În timp ce farul nu este găsit, nu se întâmplă nimic atunci când butonul este apăsat. După găsirea balizei, butonul devine roșu și vă permite să apăsați. Când se face clic pe butonul, se va apela adresa URL care duce la aplicația IVR cu transferul IMEI, care o verifică și, dacă reușește, generează un apel SIP la serverul de control electronic al blocării. În cazul pierderii semnalului de baliză (creșterea distanței sau oprirea acestuia), butonul modifică culoarea și proprietatea Clickable înapoi.
Figura 7. Imagini de ecran ale aplicației
Cod și implementare finală
Întregul proiect poate fi găsit pe Github aici. Să ne ocupăm de detalii. Mai jos este funcția numită când se afișează baliza:
Mai jos este funcția de a apela adresa URL pe IVR:
Dezvoltarea aplicațiilor pentru IVR se desfășoară în mediul specializat al Avaya Aura Orchestration Designer și se bazează pe mediul de dezvoltare Eclipse. De fapt, sub fiecare element, codul Java este ascuns. Crearea unei aplicații pentru a simplifica dezvoltarea se realizează în stilul Drag<&>Picătură. Figura 8 este o captură de ecran a ecranului de dezvoltare a aplicațiilor IVR.
Figura 8. Mediul de dezvoltare Avaya Aura Orchestration Designer
Această aplicație are două module principale: Data1 și Outcalling. Imaginile de ecran ale acestor module sunt prezentate în figurile 9 și 10.
Figura 9. Modulul Data1
Figura 10. Modul de dezactivare
Proiectul complet poate fi găsit aici.