Skip to content
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
51 changes: 51 additions & 0 deletions adafruit_magtag/magtag.py
Original file line number Diff line number Diff line change
Expand Up @@ -92,6 +92,13 @@ def __init__(
self._json_path = None
self.json_path = json_path

try:
import alarm # pylint: disable=import-outside-toplevel

self._alarm = alarm
except ImportError:
self._alarm = None

self._regexp_path = regexp_path

self.splash = self.graphics.splash
Expand Down Expand Up @@ -293,6 +300,50 @@ def set_text(self, val, index=0, auto_refresh=True):
if auto_refresh:
self.refresh()

def enter_deep_sleep(self, sleep_time):
"""
Enter deep sleep and restart the program after a certain amount of time

:param float sleep_time: The amount of time to sleep in seconds

"""
if self._alarm:
self.peripherals.neopixel_disable = True
self.peripherals.speaker_disable = True
pause = self._alarm.time.TimeAlarm(
monotonic_time=time.monotonic() + sleep_time
)
self._alarm.exit_and_deep_sleep_until_alarms(pause)
else:
raise NotImplementedError(
"Deep sleep not supported. Make sure you have the latest CircuitPython."
)

def enter_light_sleep(self, sleep_time):
"""
Enter light sleep and resume the program after a certain amount of time

:param float sleep_time: The amount of time to sleep in seconds

"""
if self._alarm:
neopixel_state = self.peripherals.neopixel_disable
self.peripherals.neopixel_disable = True
speaker_state = self.peripherals.speaker_disable
self.peripherals.speaker_disable = True
pause = self._alarm.time.TimeAlarm(
monotonic_time=time.monotonic() + sleep_time
)
self._alarm.light_sleep_until_alarms(pause)

self.peripherals.neopixel_disable = neopixel_state
self.peripherals.speaker_disable = speaker_state
gc.collect()
else:
raise NotImplementedError(
"Hardware light sleep not supported. Make sure you have the latest CircuitPython."
)

def get_local_time(self, location=None):
"""Accessor function for get_local_time()"""
return self.network.get_local_time(location=location)
Expand Down
11 changes: 11 additions & 0 deletions adafruit_magtag/peripherals.py
Original file line number Diff line number Diff line change
Expand Up @@ -96,6 +96,17 @@ def neopixel_disable(self):
def neopixel_disable(self, value):
self._neopixel_disable.value = value

@property
def speaker_disable(self):
"""
Enable or disable the speaker for power savings
"""
return not self._speaker_enable.value

@speaker_disable.setter
def speaker_disable(self, value):
self._speaker_enable.value = not value

@property
def button_a_pressed(self):
"""
Expand Down