Commit graph

1200 commits

Author SHA1 Message Date
Matheus Afonso Martins Moreira be969c4deb Revert PR #387 - fixes LE state restoration
This commit caused state restored from backup registers
to be overwritten. It is thereby reverted until a better
solution is found or movement is refactored.

This reverts commit 524098b925.

Reviewed-by: Matheus Afonso Martins Moreira <matheus@matheusmoreira.com>
References: https://github.com/joeycastillo/Sensor-Watch/pull/474
2024-09-10 12:10:48 -03:00
Matheus Afonso Martins Moreira 673f90b724 make: add beeps face to build
PR #386 did not add the C file to the makefile,
causing the build to fail at the link stage
due to the missing object file and the symbols
that were supposed to be provided by it.

Adding the file to the build fixes #472.

Reported-by: CarpeNoctem <cryptomax@pm.me>
Fixed-by: CarpeNoctem <cryptomax@pm.me>
Reviewed-by: Matheus Afonso Martins Moreira <matheus@matheusmoreira.com>
GitHub-Issue: https://github.com/joeycastillo/Sensor-Watch/issues/472
2024-09-10 00:05:54 -03:00
Matheus Afonso Martins Moreira 44b543421d Merge PR #430 - improve tally face
Adds the ability to tally negative counts, tally quickly by holding down
the buttons as well as the ability to enable and cycle through multiple
preset initial values for numerous contexts such as card games.

Reviewed-by: Matheus Afonso Martins Moreira <matheus@matheusmoreira.com>
GitHub-Pull-Request: https://github.com/joeycastillo/Sensor-Watch/pull/430
2024-09-08 21:20:25 -03:00
Matheus Afonso Martins Moreira 0cc28b9811 Merge PR #471 - add DST to sunrise/sunset presets
Implements automatic DST data to the sunrise/sunset presets,
making the whole system more automatic and therefore more reliable.

Reviewed-by: Matheus Afonso Martins Moreira <matheus@matheusmoreira.com>
GitHub-Pull-Request: https://github.com/joeycastillo/Sensor-Watch/pull/471
2024-09-08 21:12:24 -03:00
David Volovskiy 9d1410780c sunrise sunset fix during DST 2024-09-08 18:18:00 -04:00
David Volovskiy 0d16329574 Sunrise sunset face now warns about using DST 2024-09-08 18:13:17 -04:00
David Volovskiy f6f427ca7d Daylight offsets now references the timezone of the destination; but it does cause an issue due to DST 2024-09-08 18:13:17 -04:00
David Volovskiy 22c25f5c23 Added commented-out defines for MTG and Yugioh 2024-09-08 18:09:38 -04:00
David Volovskiy a539bd7da7 Don't try to cycle through presets if the preset count is one 2024-09-08 18:03:16 -04:00
Matheus Afonso Martins Moreira 7a4424b2d4 faces/tally: convert size into compile time const
Creates a macro that returns the size of the presets array,
converting it into a compile time constant value that occupies
no memory and that compilers can constant fold into other expressions
potentially leading to dead code elimination.
2024-09-08 18:53:42 -03:00
Matheus Afonso Martins Moreira e4e0b611f3 faces/tally: avoid resetting counters
Don't reset the counters unless there are multiple presets.
Move back to the first face directly if there are no presets
to cycle through.
2024-09-08 18:49:09 -03:00
Matheus Afonso Martins Moreira 6b7ea8bbaa faces/tally: add yugioh life point presets
Add common Yu-Gi-Oh card game life point preset values
for the tally face, opt in by defining a preprocessor macro.
2024-09-08 18:39:55 -03:00
Matheus Afonso Martins Moreira 531bcfd285 faces/tally: make mtg presets optin via macros
Use preprocessor macros to conditionally compile in Magic the Gathering
initial value presets for the tally mark, thereby making them opt in.
2024-09-08 18:38:53 -03:00
David Volovskiy 137906e14a Added more presets to the tally face 2024-09-08 17:23:53 -04:00
Matheus Afonso Martins Moreira 337864eb54 Merge PR #454 - fix activation event
Fix issue where the calculator face's user interface display
was delayed about a quarter second due to the activation event
being a no-op.

Tested-by: David Volovskiy <devolov@gmail.com>
Reported-by: David Volovskiy <devolov@gmail.com>
Fixed-by: David Volovskiy <devolov@gmail.com>
Reviewed-by: Matheus Afonso Martins Moreira <matheus@matheusmoreira.com>
GitHub-Pull-Request: https://github.com/joeycastillo/Sensor-Watch/pull/454
2024-09-08 15:33:35 -03:00
Matheus Afonso Martins Moreira 0f6f79a85a Merge PR #468 - fix github ci
Bump GitHub's checkout action to v4, fixing the continuous integration.

GitHub-Pull-Request: https://github.com/joeycastillo/Sensor-Watch/pull/468
2024-09-08 15:22:50 -03:00
Matheus Afonso Martins Moreira c2723ebc8e make: fix missing separator error 2024-09-08 14:22:26 -03:00
Matheus Afonso Martins Moreira ac5bf8cfce Merge PR #470 - implement automatic DST toggling
Implements logic to automatically offset daylight saving time settings
when calculating timezone offsets. This should make the DST functions
work automatically with no need for user input in most cases.

Reviewed-by: Matheus Afonso Martins Moreira <matheus@matheusmoreira.com>
GitHub-Pull-Request: https://github.com/joeycastillo/Sensor-Watch/pull/470
2024-09-08 13:41:52 -03:00
mcguirepr89 608199268e removed break; from EVENT_ACTIVATE -- thanks @voloved 2024-09-08 11:49:01 -04:00
David Volovskiy c02ec307ff Tally face sound now uses the preference's beep so decrementing fast can happen immedietly 2024-09-08 11:44:01 -04:00
David Volovskiy 002f5bc242 Updated the tally couter face to allow for presets, negative numbers, fast scrolling, and toggling sound 2024-09-08 11:39:48 -04:00
David Volovskiy 5ae88e438d Minot cleanup 2024-09-08 10:50:09 -04:00
Matheus Afonso Martins Moreira 5a8a49a8c7 Merge PR #268 - add daylight savings time toggle
Adds a toggle in the preferences face that allows the user
to enable or disable the daylight savings time.

Should help produce the correct results with the sunrise/sunset presets.

A proper solution would be to integrate the tzinfo database
but it's too big for the watch at the time of this writing.
Can't be done unless it can be shrunk down into a subset
the user would be interested. Even then it's a stopgap
since the database is likely to keep growing over time.

Reviewed-by: Matheus Afonso Martins Moreira <matheus@matheusmoreira.com>
GitHub-Pull-Request: https://github.com/joeycastillo/Sensor-Watch/pull/268
2024-09-08 11:09:10 -03:00
R. Alex Barbieri 52f9500666 add blinking to DST toggle in settings page 2024-09-08 11:08:14 -03:00
Matheus Afonso Martins Moreira bfadb81e82 Merge PR #401 - add fuzzy time watch face
Displays the time in a "close enough" manner:
periods of five minutes, relative to the nearest hour.

For example:

 - 3:24 -> 25 past 3
 - 3:50 -> 10 to 4
 - 3:59 -> 4 o'clock
 - 1:35 -> 35 past 1
 - 1:50 -> 10 to 2
 - 2:00 -> 2 o'clock

Reviewed-by: Matheus Afonso Martins Moreira <matheus@matheusmoreira.com>
Tested-on-hardware-by: Ruben Nic <RubenSandwich@users.noreply.github.com>
Tested-on-hardware-by: KlingonJane <148595159+KlingonJane@users.noreply.github.com>
GitHub-Pull-Request: https://github.com/joeycastillo/Sensor-Watch/pull/401
2024-09-07 20:57:24 -03:00
Matheus Afonso Martins Moreira 6d1d4f0594 Merge PR #386 - add beep demo face
Allows the user manually trigger all 87 buzzer notes.

Reviewed-by: Matheus Afonso Martins Moreira <matheus@matheusmoreira.com>
Tested-on-hardware-by: Wesley Black <hello@wesleyblack.ca>
GitHub-Pull-Request: https://github.com/joeycastillo/Sensor-Watch/pull/386
2024-09-07 20:53:08 -03:00
Matheus Afonso Martins Moreira 1f6153809b Merge PR #413 - add thermometer face
Measures the temperature until it stabilizes for half a minute.

This watch face is not meant to diagnose, treat, cure or prevent
any disease.

Reviewed-by: Matheus Afonso Martins Moreira <matheus@matheusmoreira.com>
GitHub-Pull-Request: https://github.com/joeycastillo/Sensor-Watch/pull/413
2024-09-07 20:49:19 -03:00
Matheus Afonso Martins Moreira 941a6ec523 Merge PR #454 - add simple calculator watch face
Adds a simple calculator watch face to the sensor watch
capable of addition, subtraction, multiplication, division
and exponentiation.

Reviewed-by: Joey Castillo <joeycastillo@utexas.edu>
Reviewed-by: Matheus Afonso Martins Moreira <matheus@matheusmoreira.com>
Tested-by: Joey Castillo <joeycastillo@utexas.edu>
Tested-on-hardware-by: mcguirepr89 <mcguirepr89@gmail.com>
GitHub-Pull-Request: https://github.com/joeycastillo/Sensor-Watch/pull/454
2024-09-07 20:38:08 -03:00
Matheus Afonso Martins Moreira 99586f8442 Merge PR #394 - keep LED lit while buttons held
Keeps the LED turned on while the user is interacting with the watch.

Reviewed-by: Matheus Afonso Martins Moreira <matheus@matheusmoreira.com>
GitHub-Pull-Request: https://github.com/joeycastillo/Sensor-Watch/pull/394
2024-09-07 20:31:46 -03:00
Matheus Afonso Martins Moreira b9dbc4ed21 Merge PR #398 - add simon game watch face
Adds a watch face that allows playing the classic Simon game
with the watch's buzzer and RGB LED.

Reviewed-by: Matheus Afonso Martins Moreira <matheus@matheusmoreira.com>
GitHub-Pull-Request: https://github.com/joeycastillo/Sensor-Watch/pull/398
2024-09-07 20:28:45 -03:00
Matheus Afonso Martins Moreira 543788b622 Merge PR #287 - add minimal clock face
Add a minimalist clock face that shows only hours and minutes.

Reviewed-by: Matheus Afonso Martins Moreira <matheus@matheusmoreira.com>
GitHub-Pull-Request: https://github.com/joeycastillo/Sensor-Watch/pull/287
2024-09-07 20:14:26 -03:00
Matheus Afonso Martins Moreira 7de53f9fa0 Merge PR #269 - add french revolutionary time face
Adds a french revolutionary time watch face which displays the time
divided into ten hours of one hundred minutes each which are in turn
divided into one hundred seconds each.

Reviewed-by: Matheus Afonso Martins Moreira <matheus@matheusmoreira.com>
Reviewed-by: Wesley Aptekar-Cassels <me@wesleyac.com>
Reviewed-by: Alex Maestas <git@se30.xyz>
Tested-on-hardware-by: CarpeNoctem <cryptomax@pm.me>
GitHub-Pull-Request: https://github.com/joeycastillo/Sensor-Watch/pull/269
2024-09-07 20:00:16 -03:00
Matheus Afonso Martins Moreira ce249abde6 Merge PR #259 - add higher or lower game face
Adds a watch face that implements a game where the player
must guess if the next card will be higher or lower than
the last cards that have been revealed.

Reviewed-by: Matheus Afonso Martins Moreira <matheus@matheusmoreira.com>
Tested-on-hardware-by: Chris <chris.ellis.git.dev@gmail.com>
GitHub-Pull-Request: https://github.com/joeycastillo/Sensor-Watch/pull/259
2024-09-07 19:59:52 -03:00
Matheus Afonso Martins Moreira c805cdc7df Merge PR #266 - add deadline tracking watch face
Adds a timing watch face that focuses on
keeping track of specific deadlines.

Dates and times can be set on the watch face
and it will display the time remaining at ever
decreasing levels of granularity for the sake
of brevity and ease of understanding.

For example, it will display years and months if over a year is left,
months and days if less than one year is left,
days and hours if less than one month is left
and the full remaining time if less than a day is left.

It also notifies the user when a deadline has passed recently.

Reviewed-by: Matheus Afonso Martins Moreira <matheus@matheusmoreira.com>
Tested-on-hardware-by: Konrad Rieck <konrad@mlsec.org>
GitHub-Pull-Request: https://github.com/joeycastillo/Sensor-Watch/pull/266
2024-09-07 19:59:31 -03:00
Chris 9e1e692511 Hi-lo: Additional code tweaks 2024-09-07 19:59:04 -03:00
Konrad Rieck 50cff54833 move to deadline face on alarm 2024-09-07 19:59:04 -03:00
Chris 97ad12d939 Merge pull request #1 from voloved/higher-lower-game
Hi-lo: Made cards go through a deck format.
2024-09-07 19:59:04 -03:00
Konrad Rieck e2ec468754 Alarm handled using background task.
The alarm for deadlines is now handled via a background task. Instead of a scheduled task that prevents sleep mode, the face checks in the background every minute whether an deadline is due. If this is the case, the face wakes up from sleep mode and starts a scheduled task for the remaining seconds.
2024-09-07 19:59:04 -03:00
Chris 6db0a62bbf Hi-lo: Use alternate card faces 2024-09-07 19:59:04 -03:00
David Volovskiy 93b9ca6341 Made cards go through a deck format. 2024-09-07 19:59:04 -03:00
Konrad Rieck 27ab799e85 Fixed bugs and improved watchface
- A background task is only scheduled if the alarm option is activated. If the option is enabled, an alarm sounds when the next deadline is reached. If the option is disabled, no alarm sounds and the watch can enter low energy sleep.

- Fixed tick frequency error. During running mode, the clock ticks at 1Hz. This is set in the init function `_running_init` and thus ensures that we do not run too fast when returning from the setting mode.

- Minor corrections to comments and indentations.
2024-09-07 19:59:04 -03:00
Konrad Rieck c89316b3ec removed higher frequency in first loop run. 2024-09-07 19:59:04 -03:00
Konrad Rieck fab8c94428 moved tick_freq to deadline_state_t structure. 2024-09-07 19:59:04 -03:00
Konrad Rieck c102a10165 beep on button 2024-09-07 19:59:04 -03:00
Konrad Rieck 4cb00ebb4e support for alarm 2024-09-07 19:59:04 -03:00
Konrad Rieck fea60e615c display closest deadline on activation 2024-09-07 19:59:04 -03:00
CarpeNoctem 07a2a49e72 french_revolutionary face: fix compiler warning and uninitialized date_time variable 2024-09-07 19:47:17 -03:00
Matheus Afonso Martins Moreira 852c3aad27 Merge PR #423 - add periodic table face
Adds a watch face full of useful information
about every known chemical element.

Reviewed-by: Matheus Afonso Martins Moreira <matheus@matheusmoreira.com>
Tested-on-hardware-by: PrimmR <primmr@icloud.com>
Tested-on-hardware-by: David Volovskiy <devolov@gmail.com>
GitHub-Pull-Request: https://github.com/joeycastillo/Sensor-Watch/pull/423
2024-09-07 18:47:20 -03:00
Matheus Afonso Martins Moreira 02e66309d4 Merge PR #444 - implement countdown autorepeater
Adds the ability to automatically restart the timer
in the countdown watch face. This allows users to
easily time repeating events.

Reviewed-by: Matheus Afonso Martins Moreira <matheus@matheusmoreira.com>
GitHub-Pull-Request: https://github.com/joeycastillo/Sensor-Watch/pull/444
2024-09-07 16:52:29 -03:00
Joseph Bryant ddaf3a8324 Add auto-repeat feature to Countdown watch face 2024-09-07 16:49:45 -03:00