# OnAir.py 19/05/2016 D.J.Whale # # A set of adaptors to allow device classes to interact with radio interfaces. # At the moment, the main purpose of this abstraction is to prevent the need # for device classes to know specifics about radio technology and focus # on the device aspects only. # # In the future, this will be a useful point in the architecture to add # an intelligent message scheduler, that learns the report patterns of # specific devices, builds a timeslotted schedule, and schedules transmits # into mostly free slots. # # NOTE: This also might include intelligent power level selection based # on RSSI reports from different devices. class OpenThingsAirInterface(): pass # tx, pydict payload and radio params in # OpenThings encode and encrypt, configure radio for FSK transmit, pass repeats # rx, configure radio for FSK receive OpenThings decode and decrypt, # pydict payload and metadata (RSSI etc) out class TwoBitAirInterface(): pass # tx, pydict payload and radio params in # TwoBit encode, configure radio for OOK transmit, pass repeats # rx, configure radio for OOK receive, TwoBit decide # pydict payload and metadata (RSSI etc) out # END