diff --git a/preload/apps/exnostat/__init__.py b/preload/apps/exnostat/__init__.py index 9f41c91ae6e559d624852ca8e0ec02a1738be091..5ad9afc1755f2c0c692d16bbed4b0a2ae7b2e2e3 100644 --- a/preload/apps/exnostat/__init__.py +++ b/preload/apps/exnostat/__init__.py @@ -6,6 +6,7 @@ import display import color import buttons import leds +import config DM_ADV_TYPE_FLAGS = 0x01 DM_ADV_TYPE_16_UUID = 0x03 @@ -19,8 +20,8 @@ MODE_ON_RX = 2 MODE_BOTH = 3 seen = {} -vib_mode = MODE_OFF -led_mode = MODE_OFF +vib_mode = MODE_BOTH +led_mode = MODE_BOTH def parse_advertisement_data(data): @@ -100,12 +101,13 @@ def process_scan_report(scan_report): def ble_callback(_): event = sys_ble.get_event() - prune() - while True: - scan_report = sys_ble.get_scan_report() - if scan_report == None: - return - process_scan_report(scan_report) + if event == sys_ble.EVENT_SCAN_REPORT: + while True: + scan_report = sys_ble.get_scan_report() + if scan_report == None: + break + process_scan_report(scan_report) + prune() def show_stats(): @@ -139,7 +141,6 @@ def show_stats(): disp.update() -t0 = time.time() last_rx_time = 0 disp = display.open() v_old = 0 @@ -148,6 +149,15 @@ pause = 1 interrupt.set_callback(interrupt.BLE, ble_callback) interrupt.enable_callback(interrupt.BLE) +try: + vib_mode = int(config.get_string("exno_vib_mode")) +except: + pass + +try: + led_mode = int(config.get_string("exno_led_mode")) +except: + pass disp.clear() disp.print(" Exp Notif", posy=0, fg=color.WHITE) @@ -158,6 +168,7 @@ disp.update() time.sleep(3) +t0 = time.time() sys_ble.scan_start() while True: @@ -182,8 +193,9 @@ while True: elif vib_mode == MODE_BOTH: vib_mode = MODE_OFF disp.print("Vib off", posy=40, fg=color.WHITE) - disp.update() + + config.set_string("exno_vib_mode", str(vib_mode)) pause = 20 if v & buttons.BOTTOM_LEFT: @@ -203,8 +215,9 @@ while True: elif led_mode == MODE_BOTH: led_mode = MODE_OFF disp.print("LED off", posy=40, fg=color.WHITE) - disp.update() + + config.set_string("exno_led_mode", str(led_mode)) pause = 20 pause -= 1