def load_entries(limit, offset): debug("Waiting for wifi...") # Wait for WiFi connection while not wifi.sta_if.isconnected(): sleep(0.1) pass debug("Got wifi. Loading data.") data = None try: url = "http://83.137.144.16/api/oneliner" r = requests.get(url, headers={"Host": "defeest.nl"}, host_override="defeest.nl") data = r.text r.close() except Exception as e: set_message("Unexpected error: " + str(e)) sleep(10) deepsleep.reboot() try: entries = [] for entry in data.split('\n'): if entry == "": continue #extension = entry.split(',')[0] name = (entry.split(',')[0]).replace('"', '') entries.append((extension, name)) debug("Loaded " + str(len(entries)) + " entries") return entries except Exception as e: set_message("Parsing error: " + str(e)) sleep(10)
def start_app(app, display=True): if display: ugfx.clear(ugfx.WHITE) ugfx.string(0, 0, "Loading...", "PermanentMarker22", ugfx.BLACK) if app: ugfx.string(0, 25, "Starting " + app + "...", "Roboto_Regular12", ugfx.BLACK) else: ugfx.string(0, 25, "Returning to homescreen...", "Roboto_Regular12", ugfx.BLACK) ugfx.flush(ugfx.LUT_FASTER) esp.rtcmem_write_string(app) deepsleep.reboot()
def vendmate(pressed): if pressed: try: led_array = bytes([255, 0, 0, 100, 255, 0, 0, 100, 255, 0, 0, 100, 255, 0, 0, 100, 255, 0, 0, 100, 255, 0, 0, 100]) badge.leds_enable() badge.leds_send_data(led_array,24) time.sleep(1) badge.leds_disable() badge.vibrator_activate(0xFF) set_message("U WOT MATE?!?!") url = "https://vendingmachineurl.url/api" h = {"Authorization":"Basic <base64 login string>"} data = requests.get(url, headers=h) data.close() set_message("Look at the vending machine") except Exception as e: set_message("Unexpected error: "+str(e)) deepsleep.reboot()
def start_app(app, display = True): if display: easydraw.msg(app, "Loading...", True) term.header(True, "Loading application "+app+"...") esp.rtcmem_write_string(app) deepsleep.reboot()
def start_ota(): term.header(True, "Starting OTA...") esp.rtcmem_write(0,1) esp.rtcmem_write(1,254) deepsleep.reboot()
def start_bpp(duration): print("[BPP] Duration = " + str(duration)) esp.rtcmem_write(0, 2) esp.rtcmem_write(1, 253) deepsleep.reboot()
def start_ota(): esp.rtcmem_write(0, 1) esp.rtcmem_write(1, 254) deepsleep.reboot()
if down_state and not pressed and offset > 1: offset -= 1 draw(load_entries(limit, offset)) down_state = pressed def set_debug(pressed): if not pressed: if debug_enabled: set_message("Debug disabled") badge.nvs_set_str("oneliner", "debug", "False") else: set_message("Debug enabled") badge.nvs_set_str("oneliner", "debug", "True") try: draw(load_entries(limit, offset)) except Exception as e: set_message("Error: " + str(e)) sleep(10) deepsleep.reboot() ugfx.input_attach(ugfx.JOY_UP, up_pressed) ugfx.input_attach(ugfx.JOY_DOWN, down_pressed) ugfx.input_attach(ugfx.BTN_SELECT, lambda pressed: deepsleep.reboot()) ugfx.input_attach(ugfx.BTN_START, set_debug) while True: sleep(0.1)
def reboot(wut): if wut: deepsleep.reboot()
def exit(self, press): if press: deepsleep.reboot()
def reboot(wut): deepsleep.reboot()
def home(pressed): if pressed: deepsleep.reboot()
sta_if.connect("SHA2017-insecure") # while not sta_if.isconnected(): # print("Not connected, waiting...") # sleep(0.2) ##### import io import urequests as requests r = requests.get( 'https://raw.githubusercontent.com/the-louie/sha2017-badge-pager/master/__init__.py' ) f = io.open('/lib/louie-test/__init__.py', 'w') f.write(r.text) f.close() ########## import appglue appglue.start_app("louie-test") ###### import deepsleep deepsleep.reboot()