summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDaniel Thompson <daniel@redfelineninja.org.uk>2021-01-03 14:59:14 (GMT)
committerDaniel Thompson <daniel@redfelineninja.org.uk>2021-01-03 14:59:14 (GMT)
commit3813eb29114d7c2fd73584c8a3a0ab89238bfe84 (patch)
treedd899c16fcabc2330b069b52260e2009035f63e5
parent231f3b6fdd531b1f3fcec927bc297f4c89853aec (diff)
manager: Enable Software by default
Enabling software by default allows us disable several other applications by default because there is now a GUI based route to enable them. This does require a few tweaks to the test suite and allows allows us to remove a lot of boilerplate text from the application library document since it is no longer relavent. Signed-off-by: Daniel Thompson <daniel@redfelineninja.org.uk>
-rw-r--r--docs/apps.rst34
-rw-r--r--wasp/boards/manifest_240x240.py6
-rw-r--r--wasp/boards/simulator/main.py41
-rw-r--r--wasp/boards/simulator/test_smoke.py10
-rw-r--r--wasp/wasp.py14
5 files changed, 42 insertions, 63 deletions
diff --git a/docs/apps.rst b/docs/apps.rst
index f8779f0..ae9fb15 100644
--- a/docs/apps.rst
+++ b/docs/apps.rst
@@ -25,52 +25,18 @@ Watch faces
.. automodule:: apps.chrono
-This application is very simple and largely serves as an example of how to
-implement traditional watch faces.
-It is not included by default in any image.
-Instead it can be transferred to the device dynamically using wasptool:
-
-.. code-block:: sh
-
- ./tools/wasptool --exec wasp/apps/chrono.py --eval 'wasp.system.register(ChronoApp())'
-
.. automodule:: apps.fibonacci_clock
-This app is enabled by default in the simulator.
-The app is also frozen into the firmware image but it is disabled by
-default in order to keep RAM available for user developed applications.
-It can be enabled by modifying ``main.py``.
-
Games
-----
.. automodule:: apps.gameoflife
-This app is enabled by default in the simulator.
-The app is also frozen into the firmware image but it is disabled by
-default in order to keep RAM available for user developed applications.
-It can be enabled by modifying ``main.py``.
-
.. automodule:: apps.snake
-This app is enabled by default in the simulator.
-The app is also frozen into the firmware image but it is disabled by
-default in order to keep RAM available for user developed applications.
-It can be enabled by modifying ``main.py``.
-
Integration
-----------
.. automodule:: apps.alarm
-This app is enabled by default in the simulator.
-The app is also frozen into the firmware image but it is disabled by
-default in order to keep RAM available for user developed applications.
-It can be enabled by modifying ``main.py``.
-
.. automodule:: apps.musicplayer
-
-This app is enabled by default in the simulator.
-The app is also frozen into the firmware image but it is disabled by
-default in order to keep RAM available for user developed applications.
-It can be enabled by modifying ``main.py``.
diff --git a/wasp/boards/manifest_240x240.py b/wasp/boards/manifest_240x240.py
index 6021df5..4d91566 100644
--- a/wasp/boards/manifest_240x240.py
+++ b/wasp/boards/manifest_240x240.py
@@ -4,19 +4,21 @@
manifest = (
'apps/alarm.py',
+ 'apps/calc.py',
'apps/clock.py',
+ 'apps/chrono.py',
+ 'apps/fibonacci_clock.py',
'apps/flashlight.py',
'apps/gameoflife.py',
'apps/haiku.py',
'apps/heart.py',
'apps/musicplayer.py',
- 'apps/calc.py',
'apps/launcher.py',
'apps/pager.py',
'apps/settings.py',
+ 'apps/software.py',
'apps/steps.py',
'apps/stopwatch.py',
- 'apps/fibonacci_clock.py',
'apps/snake.py',
'apps/testapp.py',
'fonts/__init__.py',
diff --git a/wasp/boards/simulator/main.py b/wasp/boards/simulator/main.py
index ea943f3..bd43d4e 100644
--- a/wasp/boards/simulator/main.py
+++ b/wasp/boards/simulator/main.py
@@ -3,26 +3,33 @@
import wasp
-from apps.alarm import AlarmApp
-wasp.system.register(AlarmApp())
-
-from apps.fibonacci_clock import FibonacciClockApp
-wasp.system.register(FibonacciClockApp())
-
-from apps.gameoflife import GameOfLifeApp
-wasp.system.register(GameOfLifeApp())
-
-from apps.snake import SnakeGameApp
-wasp.system.register(SnakeGameApp())
-
-from apps.calc import CalculatorApp
-wasp.system.register(CalculatorApp())
-
-from apps.musicplayer import MusicPlayerApp
-wasp.system.register(MusicPlayerApp())
+# Ensure there's something interesting to look at ;-)
wasp.system.set_music_info({
'track': 'Tasteless Brass Duck',
'artist': 'Dreams of Bamboo',
})
+# Instantiate the analogue clock application and replace the default
+# (digital) clock with this alternative.
+#from chrono import ChronoApp
+#clock = wasp.system.quick_ring[0]
+#wasp.system.quick_ring[0] = ChronoApp()
+#wasp.system.switch(wasp.system.quick_ring[0])
+#wasp.system.register(clock)
+
+# Adopt a basic all-orange theme
+#wasp.system.set_theme(
+# b'\xff\x00' # ble
+# b'\xff\x00' # scroll-indicator
+# b'\xff\x00' # battery
+# b'\xff\x00' # status-clock
+# b'\xff\x00' # notify-icon
+# b'\xff\x00' # bright
+# b'\xbe\xe0' # mid
+# b'\xff\x00' # ui
+# b'\xff\x00' # spot1
+# b'\xff\x00' # spot2
+# b'\x00\x0f' # contrast
+# )
+
wasp.system.run()
diff --git a/wasp/boards/simulator/test_smoke.py b/wasp/boards/simulator/test_smoke.py
index 26e4318..50636d0 100644
--- a/wasp/boards/simulator/test_smoke.py
+++ b/wasp/boards/simulator/test_smoke.py
@@ -1,6 +1,7 @@
import pytest
import time
import wasp
+import apps.testapp
def step():
wasp.system._tick()
@@ -36,12 +37,11 @@ def test_quick_ring(system):
def test_launcher_ring(system):
names = [ x.NAME for x in system.launcher_ring ]
- assert('Self Test' in names)
assert('Settings' in names)
- assert('Torch' in names)
+ assert('Software' in names)
@pytest.mark.parametrize("name",
- ('Steps', 'Timer', 'Heart', 'Self Test', 'Settings', 'Torch'))
+ ('Steps', 'Timer', 'Heart', 'Settings', 'Software'))
def test_app(system, name):
system.switch(system.apps[name])
for i in range(4):
@@ -101,7 +101,7 @@ def test_selftests(system):
will do something useful! For example it will run the benchmark for every
one of the benchmark tests.
"""
- system.switch(system.apps['Self Test'])
+ system.switch(apps.testapp.TestApp())
system.step()
start_point = system.app.test
@@ -115,7 +115,7 @@ def test_selftests(system):
assert(start_point == system.app.test)
def test_selftest_crash(system):
- system.switch(system.apps['Self Test'])
+ system.switch(apps.testapp.TestApp())
system.step()
def select(name):
diff --git a/wasp/wasp.py b/wasp/wasp.py
index de572e5..79f706c 100644
--- a/wasp/wasp.py
+++ b/wasp/wasp.py
@@ -21,14 +21,13 @@ import watch
import widgets
from apps.clock import ClockApp
-from apps.flashlight import FlashlightApp
from apps.heart import HeartApp
from apps.launcher import LauncherApp
from apps.pager import PagerApp, CrashApp, NotificationApp
from apps.settings import SettingsApp
from apps.steps import StepCounterApp
+from apps.software import SoftwareApp
from apps.stopwatch import StopwatchApp
-from apps.testapp import TestApp
class EventType():
"""Enumerated interface actions.
@@ -151,9 +150,8 @@ class Manager():
(StepCounterApp, True),
(StopwatchApp, True),
(HeartApp, True),
- (FlashlightApp, False),
- (SettingsApp, False),
- (TestApp, False) ):
+ (SoftwareApp, False),
+ (SettingsApp, False) ):
try:
self.register(app(), qr)
except:
@@ -172,6 +170,12 @@ class Manager():
self.launcher_ring.append(app)
self.launcher_ring.sort(key = _key_app)
+ def unregister(self, cls):
+ for app in self.launcher_ring:
+ if instanceof(app, cls):
+ self.launcher_ring.remove(app)
+ break
+
@property
def brightness(self):
"""Cached copy of the brightness current written to the hardware."""