Are there general considerations that I should ponder from the beginning?

Before coding your first beacon, you may want to begin with the end in mind.  

Generally, very!

In the meantime here’s what you can consider for each Beacon.

The first exposure to the beacon will read the VLM (Virtual LandMark) record.  This is to identify to the traveler “where am I”.   Consider this the parent record.

This will be followed by:

  1. The reading of the heading record.  Consider this the child record.

    This record read will be based on a) the compass heading range described in the dataset and b) the actual compass heading on the device.   There are two messages available “EN”, always read and “EN2” which is read when the devices is at rest (user is not currently walking) or on demand (by shaking the device, all records associated with the current beacon are read sequentially)
  2. The “TYPE” of information being conveyed.  For is user in a corridor, at an entrance, at a stairs up, stairs down, at an elevator.   Each “TYPE” will play a preceding sound unique to the TYPE.

Compass Rose

Compass Rose

3. The compass HEADING (compass range value) that will be used to define the response based on the compass reading on the device.   For example, if you are facing 30 degrees, and we described a HEADING of either 0 (to indicate north +/- 45 degrees) or a range of 315-45 (the equivalent) the result would read the record associated with this beacon and within the range provided.   If, by turning the device, when within the same beacon cloud, the new compass reading enters a new HEADING range, the associated record will be read (intentionally clipping the reading of the first, as required).