1
0
Fork 0
Commit graph

63 commits

Author SHA1 Message Date
thefenriswolf
d966c960c1 wasptool: add --battery to check battery level
Signed-off-by: thefenriswolf <stefan.rohrbacher97@gmail.com>
2021-03-27 09:03:14 +00:00
Daniel Thompson
cabe6f143c tools: wasptool: Fix binary downloads for a specific special case
Currently if the binary file being downloaded contains single quote
characters then it gets wrapped differently by repr() so we have to add
additional cases to strip the wrapper.

Fix this the "obvious" way... where by "obvious" I mean almost anything
but.

Signed-off-by: Daniel Thompson <daniel@redfelineninja.org.uk>
2021-02-25 07:25:32 +00:00
Daniel Thompson
b734037115 tools: wasptool: Additional adoption of the run_command wrapper
run_command has particular benefits for handle_binary_download() because
we can greatly simplify the code to handle running repr() on the target.

Signed-off-by: Daniel Thompson <daniel@redfelineninja.org.uk>
2021-02-21 17:08:32 +00:00
Daniel Thompson
326caa3fa5 tool: wasptool: Add a free memory reporting tool
Signed-off-by: Daniel Thompson <daniel@redfelineninja.org.uk>
2021-02-21 17:02:02 +00:00
Daniel Thompson
88347f9c7c tools: wasptool: Better REPL integration
Add a run_command method for the "console". This allows running a command
on the target and capturing the result. Normally this is handled using
REPLWrapper but that doesn't work well with the NUS console because local
echo gets in the way.

Signed-off-by: Daniel Thompson <daniel@redfelineninja.org.uk>
2021-02-21 17:01:36 +00:00
Daniel Thompson
80c340b005 tools: wasptool: Add push/pull commands
--push is very similar to --binary --upload but handles directories
differently. --pull allows us to copy binary files from the target.

Signed-off-by: Daniel Thompson <daniel@redfelineninja.org.uk>
2021-02-21 09:53:49 +00:00
Shuhao Wu
268f8c06e9 Added Docker setup to build wasp-os.
This should make it a bit easier for people to contribute. Also fixed
the documentations on how to setup on Debian, as certain recommended
packages don't exist.

Signed-off-by: Shuhao Wu <shuhao@shuhaowu.com>
2021-02-20 08:44:22 +00:00
Daniel Thompson
e79625685d wasptool: Allow files to be renamed during an upload
For example:

    ./tools/wasptool --upload docs/main/chrono.py --as main.py

Signed-off-by: Daniel Thompson <daniel@redfelineninja.org.uk>
2021-01-10 14:49:36 +00:00
Daniel Thompson
ad9714b0dc manager: Recategorize the theme labels for apps
By default bright and mid are white/grey tones, the ui widgets are
blue and the spot colours are different variants of orange.

Signed-off-by: Daniel Thompson <daniel@redfelineninja.org.uk>
2020-12-31 19:22:54 +00:00
Daniel Thompson
1eada36ff4 wasp: manager: Byte-swap the theme encoding
Currently the theme is explicitly little endian. This does match the
underlying hardware but makes it needlessly difficult to hand edit
themes. Switch the default theme and theming tools over to big endian
form and add comments to the default theme to support hand editing.

We also expand the ASCII characters in the default them with hex codes.
This is the final step needed to make hand edited themes trivial to work
with.

Signed-off-by: Daniel Thompson <daniel@redfelineninja.org.uk>
2020-12-31 10:09:38 +00:00
Daniel Thompson
4425d81485 tools: rle_encode: Add a parameter for direct CLUT lookup
This can be useful for hand decoding and authoring of images.

Signed-off-by: Daniel Thompson <daniel@redfelineninja.org.uk>
2020-12-29 09:05:35 +00:00
Daniel Thompson
ed4a5503ba tools: rle_encode: Make 2-bit encoding the default
2-bit encoding is fully ROMable and therefore is more RAM efficient than
the older 1-bit encoding.

Signed-off-by: Daniel Thompson <daniel@redfelineninja.org.uk>
2020-12-28 12:02:45 +00:00
Daniel Thompson
8824646939 tools: themer: Fix the online help
Correct the indentation and the quoting of the theme strings.

Signed-off-by: Daniel Thompson <daniel@redfelineninja.org.uk>
2020-12-13 16:51:07 +00:00
Daniel Thompson
4468285c34 widgets: BatteryMeter: Fix theme handling
Add the battery frame to the theme so it matches the frame used for
charging and rename accordingly.

Signed-off-by: Daniel Thompson <daniel@redfelineninja.org.uk>
2020-12-13 16:51:07 +00:00
kozova1
2624a6e998 Added basic theming engine.
This theming engine uses a bytestring (but supports anything indexable,
as long as the index results are a byte long),
stored as `wasp.system._theme`.
It has a default value, which should not change anything about the way this looks currently.

The theme can be set via `wasp.system.set_theme`,
but this should *ONLY* be used in `main.py`.
`wasp.system.set_theme` will return True if it was successful,
or False if the theme is of an old format.
Using an old format theme will *not* crash the watch,
but will use the default theme instead.

To theme this, one has to use tools/themer.py (use flag -h for complete explanation)
to generate a bytestring that's added in main.py (see diff).

The bytestring is then loaded into 'wasp.system._theme'.
Theme values can be looked up by apps by using `wasp.system.theme("theme-key")`.
Theme keys appear in the function body of `wasp.system.theme()`.

I've took the liberty of converting existing apps to use this method,
and it seems to work well.

A test theme is provided in `tools/test_theme.py`

Signed-off-by: kozova1 <mug66kk@gmail.com>
2020-12-13 16:51:07 +00:00
Siroj42
c1773a3976 tools: Update intelhex, hexmerge.py and nrfutil for python 3.9 compatibility
Signed-off-by: Joris Warmbier <siroj42@t-online.de>
[daniel@redfelineninja.org.uk: Remove changes to tools/hexmerge.py]
Signed-off-by: Daniel Thompson <daniel@redfelineninja.org.uk>
2020-12-12 09:11:12 +00:00
Daniel Thompson
fd288e01b8 tools: hexmerge: Replace redundant copy with a symlink
Signed-off-by: Daniel Thompson <daniel@redfelineninja.org.uk>
2020-12-10 19:44:40 +00:00
Daniel Thompson
67d2ed83d2 tools: rle_encode: Add support for rendering 2-bit RLEs to C src
Signed-off-by: Daniel Thompson <daniel@redfelineninja.org.uk>
2020-11-08 14:29:10 +00:00
Daniel Thompson
9dd793ff19 hex2c.py: Adopt a maximum chunk size
Large segments will be chunked into 32K blocks to they can be handled
seperate. Creating a maximum chunk size allows us to perform a few
tricks in the reloader by allowing us to overwrite parts of the reloader
whilst it is running!

Signed-off-by: Daniel Thompson <daniel@redfelineninja.org.uk>
2020-11-04 19:06:03 +00:00
Daniel Thompson
2b244ec2a3 tools: wasptool: Improve error reporting if we can't sync
Signed-off-by: Daniel Thompson <daniel@redfelineninja.org.uk>
2020-10-21 20:49:48 +01:00
Daniel Thompson
2bb0837440 tools: wasptool: Fix verbose/not-verbose handling
Fixes: 2839a04 ("tools: wasptool: Hide the stack trace on pexpect timeout")
Signed-off-by: Daniel Thompson <daniel@redfelineninja.org.uk>
2020-10-21 20:48:12 +01:00
Daniel Thompson
2839a042be tools: wasptool: Hide the stack trace on pexpect timeout
The default pexpect exception dump is verbose and potentially useful if
you know how to read it... but let's handle timeouts in a friendlier way.

Signed-off-by: Daniel Thompson <daniel@redfelineninja.org.uk>
2020-10-10 21:42:51 +01:00
Daniel Thompson
b6357ad4d8 tools: wasptool: Wait longer for DFU to come up
Signed-off-by: Daniel Thompson <daniel@redfelineninja.org.uk>
2020-10-10 21:42:51 +01:00
Panagiotis Vasilopoulos
eca0551c3e
wasptool: Change Python shebang to ensure compatibility
- Certain Unix-like systems (such as *BSD systems) do not use /usr/bin/python3 as the default Python path. This small change will ensure a higher degree of compatibility.

Signed-off-by: Panagiotis Vasilopoulos <hello@alwayslivid.com>
2020-08-14 08:53:27 +03:00
Daniel Thompson
c74d9e296b tools: preprocess: Ensure we use python3 interpreter
Not being explicit about the correct python interpreter causes trouble
on distros that do not alias python to python3 and/or that do not
install python2 by default.

Reported by: Mirko Covizzi <mrkcvzz@gmail.com>
Signed-off-by: Daniel Thompson <daniel@redfelineninja.org.uk>
2020-08-02 11:54:58 +01:00
Daniel Thompson
b4e78935ba wasptool: Add support for selecting devices by name and MAC address
Signed-off-by: Daniel Thompson <daniel@redfelineninja.org.uk>
2020-07-26 21:04:30 +01:00
Daniel Thompson
ae5743529f wasp: Switch to scheduling from interrupt
This has two useful properties. Firstly it means the watch will be
maintained in the background, allowing the REPL to be used for
notifications and other updates. Secondly it will save a little bit
of power by reducing the work needed to handle spurious wake ups.

Signed-off-by: Daniel Thompson <daniel@redfelineninja.org.uk>
2020-06-30 23:04:01 +01:00
Daniel Thompson
f102d75ee7 wasptool: Add support for binary uploads
Signed-off-by: Daniel Thompson <daniel@redfelineninja.org.uk>
2020-06-20 20:16:25 +01:00
Daniel Thompson
d172349565 wasptool: Fix --reset
Signed-off-by: Daniel Thompson <daniel@redfelineninja.org.uk>
2020-06-20 20:15:36 +01:00
Daniel Thompson
0678128c26 tools: hex2c: Add crc32s for each segment
Signed-off-by: Daniel Thompson <daniel@redfelineninja.org.uk>
2020-06-09 21:31:55 +01:00
Daniel Thompson
60c48b447c wasptool: Better reporting of out-of-memory problems when pasting 2020-05-25 09:23:58 +01:00
Daniel Thompson
1abda8dd17 wasptool: Enable fully automatic OTA firmware delivery 2020-05-24 14:20:50 +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
c3bc871727 pynus: Switch to the wasp-os version 2020-05-15 20:12:54 +01:00
Daniel Thompson
d11e6eb4a1 Make wasp-os namig consistant
Rename WASP to wasp-os (or Wasp-os)
2020-05-14 22:41:05 +01:00
Daniel Thompson
399b956eb5 wasptool: Add a command to compare RTC against the local workstation
This allows us to observe RTC drift during reboot relatively easily.
2020-05-09 14:21:39 +01:00
Daniel Thompson
b0dec58769 tools: ota-dfu: Adopt latest version 2020-05-09 14:09:45 +01:00
Daniel Thompson
dc4ea4ab62 reloader: OTA flashing tool for wasp-os 2020-04-26 19:21:28 +01:00
Daniel Thompson
17a8cfc346 tools: ota-dfu: Include a Linux-native OTA DFU tool 2020-04-26 19:18:17 +01:00
Daniel Thompson
5ce0d4cd6f tools/hexmerge: Fix file permissions 2020-04-26 15:01:48 +01:00
Daniel Thompson
2e7db3ae19 tools: wasptool: Improve command output for --exec and --eval 2020-04-26 15:01:48 +01:00
Daniel Thompson
1fe0602995 tools: wasptool: Introduce simple chunking
This reduces the memory overhead required to --exec a file (although
we will still have problems with big classes).

For now we have avoided matching "^def" since we need additional
handling for decorators!
2020-04-17 17:18:27 +01:00
Daniel Thompson
fe43091bcf tools: wasptool: Add support for --reset 2020-04-17 17:17:24 +01:00
Daniel Thompson
50ecff29ef wasp: Automatically generate watch.py for PineTime
This should ensure that main.py is always up to date.
2020-04-11 21:12:18 +01:00
Daniel Thompson
8cf9369efa tools: wasptool: Change characters used in the progress bar 2020-04-10 20:31:26 +01:00
Daniel Thompson
906c313e49 tools: rle_encode: Optimize the 2-bit encoding slightly
This results in a image that is entirely ROMable.
2020-04-10 20:20:48 +01:00
Daniel Thompson
02b92ff90d tools: wasptool: Add a progress bar to the BLE uploads 2020-04-06 22:04:21 +01:00
Daniel Thompson
e2234112ff tools: rle_encode: Add a new "2-bit" encoding mode. 2020-04-06 22:04:21 +01: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