Devices
Access Point
The Airfinder AccessPoint acts as the BLE Gateway to Symphony Link
traffic, the ultimately ends up to Conductor through the Gateway. The
AccessPoint can also act as a Location Beacon when configured to do so.
Retrieving an AccessPoint object is really easy with the
User.get_access_point() method, and supports all address schemes
my_ap = u.get_access_point("C0:00:00:00:XX:XX")
The Access Point is a child class of the Module, and comes with all the
same functionality. Some of the added functionality can be seen through the
configuration of the AccessPoint.
To send and request these configurations, the methods construct a Symphony Link
DownlinkMessage with the formatted data to perform the request. The
optional arguments in the methods are identical to those in
Module.send_message() and will construct a DownlinkMessage the
same. Please reference Downlink Mechanisms for more!
Location Beacon Operation
There are two AP Operation Modes, Connectable and Reference. When acting as a “Reference”/location beacon, the Access Point does only that. To determine the AP Type of the Access Point can be done as so
my_ap.ap_type
> AccessPoint.APType.Connectable
conf_dl = my.ap.set_ap_type(AccessPoint.APType.Reference)
conf_dl.wait_for_success()
In Addition, Location Groups and Weights can also be set for Access Points in this mode of operation.
# Location Weights
my_ap.location_weight
> 0
conf_dl = my_ap.set_location_weight(3)
conf_dl.wait_for_success()
# Location Groups
my_ap.location_group
> 0
conf_dl = my_ap.set_location_group(5)
conf_dl.wait_for_success()
Then, the schedule can be defined with the Schedule object, same as the
Location Beacon.
Power Adjustment
Advertising Rate
Time Sync Rate
Duty Cycle
Status
Location Beacon
Location Beacons are installed around a Site, Area
and Zone. These beacons must be installed in known areas and
provisioned - using the UI will give the best visual representation of this.
While installed, the beacons will advertise their address for the Standard Tag to report to the Cloud. These devices also communicate directly through the SymBLE Access Point.
To get a location beacon node, use the User.get_node() method…
lb = user.get_node(xx:xx:xx:xx:xx:xx)
Which will construct the Location object for Location Beacon devices.
To configure the behavior of the Location Beacon, the following fields are modifiable…
Advertising Enable
Enables or Disables the device as a Location Beacon. To view this value
lb.adv_en
> True
Advertising Schedule
The Advertising Schedule of the Location Beacon controls when the Location Beacon
has its advertisements enabled. To easily modify this advertisement
schedule, the Schedule is available.
To see the advertising schedule of a location beacon, simply
schedule = lb.schedule
and the default location beacon schedule looks like this
schedule.show_grid()
| Sunday | Monday | Tuesday | Wednesday | Thursday | Friday | Saturday |
====================================================================================================
Hour 0 | True | True | True | True | True | True | True |
Hour 1 | True | True | True | True | True | True | True |
Hour 2 | True | True | True | True | True | True | True |
Hour 3 | True | True | True | True | True | True | True |
Hour 4 | True | True | True | True | True | True | True |
Hour 5 | True | True | True | True | True | True | True |
Hour 6 | True | True | True | True | True | True | True |
Hour 7 | True | True | True | True | True | True | True |
Hour 8 | True | True | True | True | True | True | True |
Hour 9 | True | True | True | True | True | True | True |
Hour 10 | True | True | True | True | True | True | True |
Hour 11 | True | True | True | True | True | True | True |
Hour 12 | True | True | True | True | True | True | True |
Hour 13 | True | True | True | True | True | True | True |
Hour 14 | True | True | True | True | True | True | True |
Hour 15 | True | True | True | True | True | True | True |
Hour 16 | True | True | True | True | True | True | True |
Hour 17 | True | True | True | True | True | True | True |
Hour 18 | True | True | True | True | True | True | True |
Hour 19 | True | True | True | True | True | True | True |
Hour 20 | True | True | True | True | True | True | True |
Hour 21 | True | True | True | True | True | True | True |
Hour 22 | True | True | True | True | True | True | True |
Hour 23 | True | True | True | True | True | True | True |
To modify this schedule, you can either set a specific hour to a certain value for each
day with Schedule.set_hour_per_day(). In this example, 03:00 AM UTC is set to
not advertise
schedule.set_hour_per_day(3, False)
schedule.show_grid()
| Sunday | Monday | Tuesday | Wednesday | Thursday | Friday | Saturday |
====================================================================================================
Hour 0 | True | True | True | True | True | True | True |
Hour 1 | True | True | True | True | True | True | True |
Hour 2 | True | True | True | True | True | True | True |
Hour 3 | False | False | False | False | False | False | False |
Hour 4 | True | True | True | True | True | True | True |
Hour 5 | True | True | True | True | True | True | True |
Hour 6 | True | True | True | True | True | True | True |
Hour 7 | True | True | True | True | True | True | True |
Hour 8 | True | True | True | True | True | True | True |
Hour 9 | True | True | True | True | True | True | True |
Hour 10 | True | True | True | True | True | True | True |
Hour 11 | True | True | True | True | True | True | True |
Hour 12 | True | True | True | True | True | True | True |
Hour 13 | True | True | True | True | True | True | True |
Hour 14 | True | True | True | True | True | True | True |
Hour 15 | True | True | True | True | True | True | True |
Hour 16 | True | True | True | True | True | True | True |
Hour 17 | True | True | True | True | True | True | True |
Hour 18 | True | True | True | True | True | True | True |
Hour 19 | True | True | True | True | True | True | True |
Hour 20 | True | True | True | True | True | True | True |
Hour 21 | True | True | True | True | True | True | True |
Hour 22 | True | True | True | True | True | True | True |
Hour 23 | True | True | True | True | True | True | True |
Then, to set a single value for an entire day, the Schedule.set_day() will help. The next example
completely disabled advertisements on Wednesday.
schedule.set_day(schedule.Day.WEDNESDAY, False)
schedule.show_grid()
| Sunday | Monday | Tuesday | Wednesday | Thursday | Friday | Saturday |
====================================================================================================
Hour 0 | True | True | True | False | True | True | True |
Hour 1 | True | True | True | False | True | True | True |
Hour 2 | True | True | True | False | True | True | True |
Hour 3 | False | False | False | False | False | False | False |
Hour 4 | True | True | True | False | True | True | True |
Hour 5 | True | True | True | False | True | True | True |
Hour 6 | True | True | True | False | True | True | True |
Hour 7 | True | True | True | False | True | True | True |
Hour 8 | True | True | True | False | True | True | True |
Hour 9 | True | True | True | False | True | True | True |
Hour 10 | True | True | True | False | True | True | True |
Hour 11 | True | True | True | False | True | True | True |
Hour 12 | True | True | True | False | True | True | True |
Hour 13 | True | True | True | False | True | True | True |
Hour 14 | True | True | True | False | True | True | True |
Hour 15 | True | True | True | False | True | True | True |
Hour 16 | True | True | True | False | True | True | True |
Hour 17 | True | True | True | False | True | True | True |
Hour 18 | True | True | True | False | True | True | True |
Hour 19 | True | True | True | False | True | True | True |
Hour 20 | True | True | True | False | True | True | True |
Hour 21 | True | True | True | False | True | True | True |
Hour 22 | True | True | True | False | True | True | True |
Hour 23 | True | True | True | False | True | True | True |
Then to just set one specific hour on one specific day, you can use the Schedule.set_hour() method.
This example disables location beacons on Sunday at 2:00 PM UTC
schedule.set_hour(schedule.Day.SUNDAY, 14, False)
schedule.show_grid()
| Sunday | Monday | Tuesday | Wednesday | Thursday | Friday | Saturday |
====================================================================================================
Hour 0 | True | True | True | False | True | True | True |
Hour 1 | True | True | True | False | True | True | True |
Hour 2 | True | True | True | False | True | True | True |
Hour 3 | False | False | False | False | False | False | False |
Hour 4 | True | True | True | False | True | True | True |
Hour 5 | True | True | True | False | True | True | True |
Hour 6 | True | True | True | False | True | True | True |
Hour 7 | True | True | True | False | True | True | True |
Hour 8 | True | True | True | False | True | True | True |
Hour 9 | True | True | True | False | True | True | True |
Hour 10 | True | True | True | False | True | True | True |
Hour 11 | True | True | True | False | True | True | True |
Hour 12 | True | True | True | False | True | True | True |
Hour 13 | True | True | True | False | True | True | True |
Hour 14 | False | True | True | False | True | True | True |
Hour 15 | True | True | True | False | True | True | True |
Hour 16 | True | True | True | False | True | True | True |
Hour 17 | True | True | True | False | True | True | True |
Hour 18 | True | True | True | False | True | True | True |
Hour 19 | True | True | True | False | True | True | True |
Hour 20 | True | True | True | False | True | True | True |
Hour 21 | True | True | True | False | True | True | True |
Hour 22 | True | True | True | False | True | True | True |
Hour 23 | True | True | True | False | True | True | True |
RSSI Adjustment
A signed 8-bit integer, that is used to adjust the RSSI readings of the Location Beacon.
Location Weight
A field to add bias to or from a certain Location Beacon.
Location Group
A field used to associate multiple Location Beacon devices together, to add bias given the installation point of the device.
Transmit Power
A signed 8-bit integer, that sets the Transmit Power of the Location Beacon.
Standard Tag
TODO
Supertag
TODO