1
0
Fork 0
Commit Graph

151 Commits (jebbatime)

Author SHA1 Message Date
Daniel Thompson e6811bb693 apps: heart: Initial heart rate detection
The algorithm is fairly crude and the GUI is pretty simple but, if you stay
still for 10 seconds, there's a good chance of an accurate pulse
reading.

Of course if you jog on the spot for ten seconds it more likely to
calculate how many steps per minutes you are performing!

Signed-off-by: Daniel Thompson <daniel@redfelineninja.org.uk>
2020-06-24 21:20:47 +01:00
Daniel Thompson 88418fd1b5 apps: heart: Introduce simple app for the heart rate sensor
The heart rate analysis step is still a work in progress but the current
app allows us to visualize the the results of the signal conditioning.

Signed-off-by: Daniel Thompson <daniel@redfelineninja.org.uk>
2020-06-22 22:51:06 +01:00
Daniel Thompson bbe8add40c wasp: Switch to the faster fill routines
Signed-off-by: Daniel Thompson <daniel@redfelineninja.org.uk>
2020-06-22 22:21:13 +01:00
Daniel Thompson d81e8e75ac apps: testapp: Filled rectangle drawing benchmarks
Measure the performance of the quarter screen fill, horizontal lines and
vertical lines.

Signed-off-by: Daniel Thompson <daniel@redfelineninja.org.uk>
2020-06-22 22:17:06 +01:00
Daniel Thompson 823e85584d apps: [steps,stopwatch]: Increase font size of clock
We also change the colour scheme slightly because the increased size of
the clock interferes visually with the main display when it is bright
white.

Signed-off-by: Daniel Thompson <daniel@redfelineninja.org.uk>
2020-06-12 08:53:32 +01:00
Daniel Thompson bd41368d2b apps: steps: Fix the overnight step counter reset
Signed-off-by: Daniel Thompson <daniel@redfelineninja.org.uk>
2020-06-12 08:52:36 +01:00
Daniel Thompson ccaf12750b wasp: apps: Step counter application
Currently there's no fancy algorithms to estimate stride length. Just
pure simple step counting directly from the hardware's "intelligence
engine".

Signed-off-by: Daniel Thompson <daniel@redfelineninja.org.uk>
2020-06-09 21:31:55 +01:00
Daniel Thompson 4c7e92d964 apps: settings: Adopt the slider... it looks more interesting 2020-05-24 14:20:20 +01:00
Daniel Thompson de647b324c widgets: Introduce a slider widget
Currently the slider doesn't actually slide (because we process touch
events rather than swipe events) but we've called is a slider anyway.
2020-05-24 14:20:02 +01:00
Daniel Thompson 60bb43e87b apps: gameoflife: Better pixel colour selection 2020-05-18 22:19:19 +01:00
Daniel Thompson 7f6b1b9059 draw565: Switch to a different palette for RLE 2-bit images
This is an incompatible change... older 2-bit images will need to be
re-encoded to display correctly.
2020-05-18 22:17:51 +01:00
Daniel Thompson b9e82424e9 apps: demo: Move the logo into the demo app
The logo module is currently unused but it simply sits there consuming
flash. Let's shift it to the demo app to is can consume RAM instead (but
only when we upload the demo to the watch).
2020-05-17 14:37:44 +01:00
Daniel Thompson 4906d46ff4 apps: demo: Move the demo code into a fully fledged application 2020-05-17 09:45:16 +01:00
Daniel Thompson b8efcd3053 wasp: Even more docstrings 2020-05-14 22:29:35 +01:00
Daniel Thompson a2fd52ef2b docs: Introduce the Application Writer's Guide. 2020-05-11 21:44:30 +01:00
Daniel Thompson fe1bbbac52 apps: template: Fix broken docstring 2020-05-10 09:34:57 +01:00
Daniel Thompson a4c62bb818 wasp: apps: Remove __init__.py
wasp-os contains circular import dependancies (wasp includes apps which
include wasp) but this is normally harmless.

However using __init__.py exagerated to the problem and since the benefit
of the __init__ file is pretty anyway the let's just remove it.
2020-05-10 09:33:26 +01:00
Daniel Thompson 6729ac67a5 apps: launcher: Add a scroll ready indicator 2020-04-26 15:01:48 +01:00
Daniel Thompson 8b2ba4e79c apps: launcher: Make app.ICON optional 2020-04-26 15:01:48 +01:00
Daniel Thompson e854998268 apps: stopwatch: Fix redraw bug (and remove some old test code) 2020-04-26 15:01:48 +01:00
Daniel Thompson 9348e758b2 wasp: nrf_rtc: Add a tiny bit of extra resolution
We now have a couple of applications (stopwatch, Game of Life) that benefit
from sub-second precision. The micropython RTC/utime code for nrf still
needs a major overhaul but this allows us to paper over the cracks for
just a little longer.
2020-04-26 15:01:48 +01:00
Daniel Thompson 880764da7d wasp: apps: Conway's Game of Life 2020-04-18 11:54:03 +01:00
Daniel Thompson 66743d42c8 wasp: Manager: Bring in proper separation of apps
This is getting us much closer to the final UI concept. We have a
quick ring from which we can select typical apps such as clock and
stopwatch which will (eventually) be supplemented with step counting
and heart rate monitoriing. More exotic apps (currenrtly torch, self
test, settings) are all relagated to the launcher ring.
2020-04-14 20:05:57 +01:00
Daniel Thompson 10706a9704 wasp: stopwatch: Replace the stub with a "real" implementation
There are still some holes here. In particular the RTC resolution on
nRF devices (such as PineTime) is currently a full second (meaning
the centiseconds will always be zero. Nevertheless that isn't the apps
fault... as we can see when we run on the simulator.
2020-04-14 20:03:04 +01:00
Daniel Thompson 64afea0d07 WIP: Introduce the quick_ring 2020-04-12 08:59:37 +01:00
Daniel Thompson b649cd1b24 wasp: template: Implement optional application methods 2020-04-12 08:41:31 +01:00
Daniel Thompson 80d518b75b wasp: apps: Add shortcuts to all apps 2020-04-12 08:40:49 +01:00
Daniel Thompson 64a97fce58 wasp: testapp: Sort tests alphabetically 2020-04-12 08:40:11 +01:00
Daniel Thompson 683c3497e0 docs: Fix warnings and add a few extra apps to the docs 2020-04-11 20:26:12 +01:00
Daniel Thompson f68eb610c5 wasp: On-device crash reporting
If an application crashes let's report it on the device so it can be
distinguished from a hang (if nothing else it should mean we get better
bug reports).
2020-04-11 20:15:02 +01:00
Daniel Thompson 23368a659b wasp: apps: Add a new (super simple) settings app 2020-04-10 20:30:20 +01:00
Daniel Thompson 22ca8886c2 wasp: draw565: Automatic RLE format conversion
From here we can also bring colour to the launcher!
2020-04-10 20:22:51 +01:00
Daniel Thompson 841fbef8a6 wasp: testapp: Add RLE drawing benchmarks. 2020-04-06 22:04:21 +01:00
Daniel Thompson 8ed80eeeba wasp: launcher: Experimental launcher implementation
It is not really the launcher itself that is immature. Rather that the
framework and UI concepts to move between applications isn't complete
yet.
2020-04-06 22:04:21 +01:00
Daniel Thompson 2b5ebcef72 wasp: widgets: Add a scrolling indicator
As we enrich the navigation options we will increasinly need to visualize
between apps where up/down will switch us between rings and there
up/down is needed to scroll through content.
2020-04-06 22:04:21 +01:00
Daniel Thompson bb4e76d852 wasp: testapp: Add an option to force an exception
We will shortly be adding machinary to handle application errors more
gracefully. This is a useful way to force an application error!
2020-04-06 22:04:20 +01:00
Daniel Thompson 83cc56969e wasp: manager: make sleep() and background() callbacks optional
Making callbacks optional reduces pointless boilerplate in applications.
2020-04-06 22:04:20 +01:00
Daniel Thompson b2622b579d wasp: Add button presses to the event system.
Here the biggest changes are in the test application because we
refactor a number of the tests to make better use of the button.

Although applications may consume button events it does have a
default behavior which is to switch to the default application
(usually the clock).
2020-04-06 22:04:20 +01:00
Daniel Thompson 0cc7987689 apps: Remove unused support for effect animation
After a bit of testing I have not yet come up with a fast, visually
acceptable horizontal animated effect. Instead we simply reply on
screen blanking during the redraw... meaning there is no need for an
effect hint.
2020-04-06 22:04:20 +01:00
Daniel Thompson d10f3dbc49 wasp: Get the terminology straight
As it turned out Direction was only a Direction because there were things
missing from the enumeration!
2020-04-06 22:04:20 +01:00
Daniel Thompson afb9bd16b6 wasp: Add support for brightness caching and keep-awake signalling 2020-03-26 22:12:05 +00:00
Daniel Thompson a9413db5cf wasp: Move the constants into seperate container classes 2020-03-26 20:42:03 +00:00
Daniel Thompson b9fe31241c Add licensing information for all wasp-os files. 2020-03-22 15:40:18 +00:00
Daniel Thompson f8bd1a7461 Rename manager.py and expose its interfaces to all applications
This is a big change that break compatiblity with existing applications
*and* with existing installed versions of main.py.

When upgrading it is import to update main.py:

    ./tools/wasptool --upload wasp/main.py
2020-03-22 12:37:19 +00:00
Daniel Thompson 5a234c16ad wasp: Rotate the swipe UI by 90 degrees
This is something of an experiment but now the app roll is traversed using
horizontal swipes and applications should primarily use vertical swipes
to navigate internally. This is mostly because if "feels" better but it
also leaves the vertical scrolling hardware available for use by the
app.
2020-03-13 19:02:29 +00:00
Daniel Thompson 031d139b7c wasp: draw565: Refactor to allow apps to focus on the drawable. 2020-03-09 00:00:13 +00:00
Daniel Thompson 5413d826d7 wasp: Re-factor how Draw565 is used.
Moving it from applications into the watch is useful for two reasons.
Firstly it means applications don't need to know as much about the
display color depth and secondly it makes it easier to replace the
drawing routines with wasptool.
2020-03-08 23:16:30 +00:00
Daniel Thompson 24438ad05d testapp: Smoother transitions between tests 2020-03-08 21:31:17 +00:00
Daniel Thompson d236db68dc testapp: Show the render time for the string test 2020-03-08 21:22:54 +00:00
Daniel Thompson cfffeddd77 wasp: testapp: Extend with a string render test 2020-03-08 20:48:48 +00:00
Daniel Thompson 799a66c9b9 wasp: Move the apps into their own directory. 2020-03-08 17:39:39 +00:00