def pm_task(): ''' The power management task [internal function] ''' global requestedStandbyTime global timeout global disabled if disabled: return timeout idleTime = virtualtimers.idle_time() usbStayAwake = False try: import voltages usbStayAwake = voltages.usb() > 2500 and machine.nvs_get_u8( 'system', 'usb_stay_awake') except: pass if idleTime > 30000 and (not usbStayAwake): global onSleepCallback if not onSleepCallback == None: print("[Power management] Running onSleepCallback...") try: onSleepCallback(idleTime) except BaseException as e: print("[ERROR] An error occurred in the on sleep callback.") sys.print_exception(e) system.sleep(idleTime, False) return timeout
buttons.attach(buttons.BTN_A, toggleLeds) def draw(vbatt, vusb): display.drawFill(0x000000) display.drawText(0, 0, "Battery") display.drawText(0, 15, "USB") display.drawText(50, 0, str(vbatt) + "v") display.drawText(50, 15, str(vusb) + "v") dataPoints.pop(0) dataPoints.append(round(vbatt * 8)) for i in range(64): display.drawPixel(i, display.height() - 1 - dataPoints[i], 0xFFFFFF) dataPoints2.pop(0) dataPoints2.append(round(vusb * 8)) for i in range(64): display.drawPixel(64 + i, display.height() - 1 - dataPoints2[i], 0xFFFFFF) display.flush() while True: vbatt = voltages.battery() / 1000.0 vusb = voltages.usb() / 1000.0 draw(vbatt, vusb) time.sleep(0.1)
def usb_attached(): try: import voltages return voltages.usb() > 4500 except: return False