.. image:: ../_static/af-logo.svg Airfinder ######### Airfinder is an Application that has been built on and integrated into Conductor's Cloud Services. Airfinder offers a solution to locate *Airfinder Tags* via BLE by listening for :class:`.Location` Beacons, and reporting the closest beacon to the :class:`.AccessPoint`. Which would then relay that data through the :class:`.Gateway` to reach our "Cloud". We call this Symphony Link-to-BLE network, SymBLE. :: SymBLE Networking Map _ (` ). _ ( ). .:(` )`. ) _( '`. :( . ) .=(`( . ) .-- `. ( ) ) (( (..__.:'-' .+( ) ` _` ) ) `. `( ) ) ( . ) ( ) ._ Conductor ) ` __.:' ) ( ( )) `-'.-(` ) ) ) ( ) --' `- __.' :( )) .-' (_.' .') `( ) )) (_ ) ` __.:' --..,___.--,--'`,---..-.--+--.,,-,,..._.--..-._.-a:f--==================== | | WWW/HTTP-> | | ___|__ ___|__ Symphony Gateway ||""|| Virtual LTEm Gateway ||""|| ||__|| ||__|| [ -=.]`) [ -=.]`) Symphony Link -> / | \ | Infrastructure / | \ LTE CAT-M1 -> | / | \ | Access Points /_ |_ _\ | [AP] [AP] [AP]------\---------\ | | | \ \ \ |======================= Location [LB] | [LB] \ [LB] \ | Beacons \ | \ \ \ | SymBLE Endnodes \ | \ \ <-Bluetooth-> \ | Tags |Tag| |Tag| |Supertag| ================== **Infrastructure Device Layer** The infrastructure layer consists of Conductor :ref:`c-devices` that will either send Symphony Link Traffic through the :ref:`Gateway` to Conductor, or the :ref:`ltem` (which can also be referred to as a virtual Access Point) which directs Traffic through the virtual Gateway to Conductor (for the Supertag). These devices use the :ref:`app-tok` for Routing the data of other devices and are referred to as *Transport Tokens*. While these Infrastructure elements are defined and exist within the Conductor library, they are a necessary part of interfacing with SymBLE Endnodes. To get a :class:`.Gateway` object, you can call the same method that you would with and :class:`.ConductorAccount` object :: my_gw = u.get_gateway("$101$0-0-0-dbXXXXXXX") Same goes with the :class:`.LTEmModule` :: my_ltem = u.get_module("$303$0-0-000XXXX-XXXXXXXXX") The SymBLE :ref:`ap` is the only part of the 'infrastructure layer' that is part of the Airfinder Library, as it interacts directly with the SymBLE Endnodes via BLE. The address is also interchangeable in the same way that the SymBLE Endnodes' are. An :class:`.AccessPoint` object can be retrieved with the :meth:`.User.get_access_point` method. :: my_ap = u.get_access_point("C0:00:00:00:XX:XX") my_ap = u.get_access_point("C0000000XXXX") my_ap = u.get_access_point("$301$0-0-0-03000XXXX") **SymBLE Endnodes** SymBLE Endnodes communicate via Bluetooth Low Energy (BLE), to the SymBLE :ref:`ap`. Their :ref:`app-tok` represents their device type. And they are typically addressed by their BLE MAC Address, which can be in the following forms... :: Standard Format: 'XX:XX:XX:XX:XX:XX' Simplified Format: 'XXXXXXXXXXXX' Conductor Format: '$501$0-0-0000XXX-XXXXXXXXX' All Endnodes can be retrieved from the :class:`.User` object using the :meth:`.User.get_node` method, using any of the three, interchangeable formats :: node = u.get_node("XX:XX:XX:XX:XX:XX") node = u.get_node("XXXXXXXXXXXX") node = u.get_node("$501$0-0-0000XXX-XXXXXXXXX") The Airfinder Library will be able to detect the type of Endnode and construct the corresponding Airfinder object for that device. * :class:`.Location` for Location Beacons. * :class:`.Tag` for Standard Tags. * :class:`.Supertag` for Supertags.