def loop(receive_time=1): """Handle receive processing""" radio.receiver(fsk=True) timeout = time.time() + receive_time handled = False while True: if radio.is_receive_waiting(): payload = radio.receive_cbp() now = time.time() try: msg = OpenThings.decode(payload, receive_timestamp=now) hdr = msg["header"] mfr_id = hdr["mfrid"] product_id = hdr["productid"] device_id = hdr["sensorid"] address = (mfr_id, product_id, device_id) registry.fsk_router.incoming_message(address, msg) handled = True except OpenThings.OpenThingsException: print("Can't decode payload:%s" % payload) now = time.time() if now > timeout: break return handled
def loop(receive_time=1): radio.receiver(fsk=True) timeout = time.time() + receive_time handled = False while True: if radio.is_receive_waiting(): payload = radio.receive_cbp() now = time.time() try: msg = OpenThings.decode(payload, receive_timestamp=now) hdr = msg["header"] mfr_id = hdr["mfrid"] product_id = hdr["productid"] device_id = hdr["sensorid"] address = (mfr_id, product_id, device_id) msg_list = msg["recs"] handled = True except OpenThings.OpenThingsException: pass # print("Can't decode payload:%s" % payload) now = time.time() if now > timeout: break # print("handled: {handled}".format(handled=handled)) if handled: return msg_list else: return handled