Commit graph

410 commits

Author SHA1 Message Date
Stephanie d034bd131e Added "lap" button to step counter 2021-12-30 21:51:43 +01:00
James A. Jerkins 319030d9e1 Add airplane mode feature
Implements 'Airplane mode' feature to disable and enable bluetooth/ble
Adds airplaneMode as a non-persisted setting
Adds a setting menu for switching airplane mode on and off
Displays an airplane symbol on the Digital watch face and the
    PineTimeStyle watch face when airplane mode is enabled
Always enables bluetooth/ble on boot (disable airplane mode)
Alphabetizes the settings menu options
Style cleanups

Closes #632
2021-12-23 20:30:14 -06:00
James A. Jerkins eca0588c23 Optional secure pairing with a passkey
Support passkey pairing when requested by the central
Fix a comment and reorder warning
2021-12-21 16:02:01 -06:00
Tim Keller 1470489e7b Fix Failed rebase. 2021-12-10 01:49:03 +00:00
Tim Keller 0a0d1f2703 Fix more initializers 2021-12-10 01:18:57 +00:00
Tim Keller b9a2db1a49 Fix large file support that broke due to a refactor. 2021-12-10 01:18:57 +00:00
Tim Keller d1e9aa1076 Force variable cleanup because LFS makes assumptions about variable initialization state 2021-12-10 01:18:57 +00:00
Tim Keller fdb5e27aea Attempt at a more robust File handler 2021-12-10 01:18:57 +00:00
Tim Keller b62c62ee1f Change read to return LFS return values when reading a directory or nonexistant file 2021-12-10 01:18:57 +00:00
Tim Keller 09b9130244 Fix string nullterminations,
Expand error codes.
2021-12-10 01:18:57 +00:00
Tim Keller 362a5ef113 Added move function 2021-12-10 01:18:57 +00:00
Tim Keller 8f46908d38 Fix lvgl_open to respect littlefs open errors 2021-12-10 01:18:57 +00:00
Tim Keller f4322841ff Remove DirDelete, implementation did not work and memory contraints are recursive. Better implemented on client side... 2021-12-10 01:18:57 +00:00
Tim Keller 2e10b0fe64 Remove mount/unmount. No longer needed 2021-12-10 01:18:57 +00:00
Tim Keller c1aa5a5ea7 Write works 2021-12-10 01:18:57 +00:00
Tim Keller 8fb99471c3 Reading Seems to work? 2021-12-10 01:18:57 +00:00
Tim Keller faa05eb57b Actually fix memory corruption, seems stable now
ListDir MKDIR delete all seem to work
Co-authored-by: Iambian <Iambian@users.noreply.github.com>
2021-12-10 01:18:57 +00:00
Tim Keller 6393a17d74 List Dir works? 2021-12-10 01:18:57 +00:00
Tim Keller d89e38d3bf Focus on getting flash access working properly 2021-12-10 01:18:57 +00:00
Tim Keller 8f6a390c36 Start of read command 2021-12-10 01:18:57 +00:00
Tim Keller 3a8e66a52f Added Delete file
Added FS Stat.
2021-12-10 01:18:57 +00:00
Tim Keller eabbbfa373 Fix folder count in output 2021-12-10 01:18:57 +00:00
Tim Keller 1dd7174480 More reliable FS listing 2021-12-10 01:18:57 +00:00
Tim Keller 91c644b43c direcetory listings maybe?
Added LISTDIR command and notify responses.
2021-12-10 01:18:57 +00:00
Tim Keller f57f797ff5 Added Blank FSService that exposes only version info 2021-12-10 01:18:57 +00:00
Reinhold Gschweicher e104f17b1b AlarmController: remove unused app_timer.h include in header 2021-12-09 21:30:33 +01:00
Avamander e8c1302cd6
Merge branch 'develop' into patch-weather 2021-12-09 22:20:29 +02:00
James A. Jerkins 048ecd41e4 Adjust BLE/LL stacks, style, comments, refactoring
Increase BLE task stack +200 and decrease LL task stack -200
more braces!
2021-12-09 21:14:16 +01:00
James A. Jerkins 150fa3b661 Persist bond between reboots
Save bond information in the FS after a disconnect or encryption change
if the bond is not already stored. The bond is restored on boot enabling
automatic reconnection to a previously bonded central.

Two consecutive watch reboots with the central out of range (or BLE off)
will remove the stored bond from the watch.
2021-12-09 21:14:16 +01:00
James A. Jerkins 62dbcbfc95 Connect and bond with a passkey
This commit adds the following:
    Passkey pairing - passkey is displayed on watch
    Swipe down to clear passkey screen
    Connection encryption
    Connection bonding
    Automatic reconnects to a bonded peripheral
    Trusted device on Android

Note that persisting the bond between reboots is NOT included in
this commit. Therefore, rebooting the watch will cause reconnect failures.
You must delete the bond from the phone to reconnect/pair.
2021-12-09 21:14:16 +01:00
Avamander 3eebe66d65 Updated docs and renamed functions for consistency 2021-12-04 22:03:40 +02:00
Avamander f1f2bc119a Added a note about map key capitalization 2021-12-04 22:03:40 +02:00
Avamander 7b04ce5eba Added a note about the timestamp having a timezone offset 2021-12-04 22:03:40 +02:00
Avamander 62bb6b5163 Better cleanup, bugfixes and improvements in weather parsing. UI improvements 2021-12-04 22:03:40 +02:00
Avamander 58d454b11f Improved Temperature parsing 2021-12-04 22:03:40 +02:00
Avamander 4a8f72bd1e Fixed a bug in DewPoint decoding 2021-12-04 22:03:40 +02:00
Avamander be7931c4fb Whoops, fixed a wrong type 2021-12-04 22:03:40 +02:00
Avamander 154e3d27ad Added a few helper functions 2021-12-04 22:03:40 +02:00
Avamander 797b60397c Improved documentation 2021-12-04 22:03:40 +02:00
Avamander e0133cec36 Improved documentation 2021-12-04 22:03:40 +02:00
Avamander ffd6c3f095 Removed an instance of shadowing 2021-12-04 22:03:40 +02:00
Avamander b72c6a5bc9 Clarified a few comments 2021-12-04 22:03:40 +02:00
Avamander 9525fc4273 Specified how values should be interpreted better 2021-12-04 22:03:40 +02:00
Avamander abbfb92fa2 Added new precipitation and obscuration types 2021-12-04 22:03:40 +02:00
Avamander 75cf5324ba Fixed an incorrect decode in Humidity 2021-12-04 22:03:40 +02:00
Avamander 9108952e6b Implemented parsing of all defined weather data types 2021-12-04 22:03:40 +02:00
Avamander 06b022fc4d Improved UI and fixed a bug 2021-12-04 22:03:40 +02:00
Avamander c870f8ed30 Bunch of bugs fixed, improved error handling, debug UI addition 2021-12-04 22:03:40 +02:00
Avamander 48beb7c3b1 Improved error handling and fixed incompatibility with co.nstant.in:cbor library 2021-12-04 22:03:40 +02:00
Avamander 900598a7ee Removed versioning because it's not necessary 2021-12-04 22:03:40 +02:00
Avamander 657dc3a9ba Changed UUID so it wouldn't conflict with Motion 2021-12-04 22:03:40 +02:00
Avamander ffb17357e7 Fixed a few compilation errors, fixed UUID. 2021-12-04 22:03:40 +02:00
Avamander ed6f0aade4 Implemented a few functions. 2021-12-04 22:03:40 +02:00
Avamander 0ed256ba15 Few formatting fixes 2021-12-04 22:03:40 +02:00
Avamander 19c9667a3d Started initial work on the UI 2021-12-04 22:03:40 +02:00
Avamander 3a09b3614c Brace style and whitespace fixes 2021-12-04 22:03:40 +02:00
Avamander b6e9e4171d Switched to non-deprecated math header 2021-12-04 22:03:40 +02:00
Avamander 4b2dcbb4f0 Fixed a few bugs, enabled UsefulBuf library optimizations 2021-12-04 22:03:40 +02:00
Avamander 4349657f79 Minor style improvement 2021-12-04 22:03:40 +02:00
Avamander 6e16584816 Skeleton of the receiving logic 2021-12-04 22:03:40 +02:00
Avamander bda96dc595 Initial Weather service skeleton 2021-12-04 22:03:40 +02:00
Reinhold Gschweicher 88b017d9b1 Settings: remove unused driver include 2021-12-02 21:20:21 +01:00
JF 583c7ee22f
Merge branch 'develop' into motionservice_fix_typo_in_include 2021-11-28 13:59:09 +01:00
Jean-François Milants 298f0f4335 Merge branch 'restructure_includes' of https://github.com/NeroBurner/InfiniTime into NeroBurner-restructure_includes
# Conflicts:
#	doc/contribute.md
#	src/displayapp/screens/BatteryInfo.h
2021-11-28 13:53:03 +01:00
Reinhold Gschweicher 241d36471d Move up file header include to top 2021-11-15 22:02:49 +01:00
Reinhold Gschweicher f2918709d9 Add missing standard includes 2021-11-15 22:02:49 +01:00
Reinhold Gschweicher ac7b2da611 Update includes to to be relative to src directory
Don't use relative imports like `../foo.h` as those depend on the
relative position of both files. Rather than that use imports relative
to the `src` directory, which explicitly is part of the include
directories.
2021-11-15 22:02:49 +01:00
mabuch a631fa3518 fix Motion Service UUID in doc and code comments 2021-11-15 20:41:32 +01:00
Mark Russell 947ece0bc9 Status bar displays time in 12 or 24 hour format based on settings 2021-11-10 20:11:09 -05:00
SteveAmor c5282f9454 update settings version 2021-11-07 14:15:39 +00:00
SteveAmor 822b6ae6a0 format changes 2021-11-07 13:12:01 +00:00
SteveAmor 37de10f47d applied clang-format 2021-11-07 12:10:23 +00:00
SteveAmor 5932391c8b Chimes option 2021-11-07 10:50:33 +00:00
Reinhold Gschweicher f9613d28c0 MotionService: fix not needed '/' in include 2021-10-30 22:51:49 +02:00
Jean-François Milants 71ce13d309 Motion service : fix step notifications that were sent as a single byte instead of 4 (uint32_t). 2021-10-26 20:31:18 +02:00
Jean-François Milants b3a8228899 Add mention to Call characteristic (which was missing in the doc) and change the UUID of the new Motion service from 00020000-* to 00030000-*. 2021-10-20 20:52:04 +02:00
Jean-François Milants 2c5015add7 Enable/disable notifications for motion service. 2021-10-17 08:42:49 +02:00
Jean-François Milants 60a49af886 Add MotionService : expose step count and RAW X/Y/Z values to the host. 2021-10-17 08:23:44 +02:00
Jean-François Milants d1f50157c7 MotionService : fix typo and characteristic array size + send notification only if the host subscribed to them. 2021-10-17 08:23:01 +02:00
Jean-François Milants 7cbd56896a DateTimeController : remove unused methods and variables. 2021-10-10 16:08:19 +02:00
Jean-François Milants cf9e149b33 Merge with develop and fix conflicts from timaios:set-datetime-manually. 2021-10-10 16:01:43 +02:00
JF b969272c90
Merge pull request #719 from Riksu9000/improve_battery_reporting
Improve battery percentage calculation and reporting
2021-10-09 20:11:31 +02:00
JF 0ca018b309
Merge pull request #522 from jonvmey/fix-nav-uuid-docs
Fix Navigation Service UUID docs
2021-10-09 19:58:24 +02:00
JF f99f71cc6e
Merge pull request #524 from jonvmey/ble-uuid-c-casts
Remove unnecessary C-style casts with BLE UUIDs
2021-10-09 19:53:41 +02:00
Riku Isokoski 1777b9dee8 Don't measure and notify percentage on charging event. 2021-10-09 13:39:27 +03:00
Riku Isokoski a9f7153fdf Improve battery percentage calculation and reporting
While charging, percentage should only go up, and while discharging,
percentage should only go down.
2021-10-04 01:41:38 +03:00
JF fa6c291d3e
Merge pull request #638 from Riksu9000/detect_full_charge
Detect full charge and improve watchface battery display
2021-10-03 16:13:39 +02:00
JF 3442085a3c
Merge pull request #692 from danielgjackson/fix-fs-size
Fix the size of the filesystem.
2021-10-03 16:06:30 +02:00
Tim Keller dafdf33062 Remove static declartion on batteryValue preventing read attribute from updating. 2021-10-02 03:22:12 +00:00
Daniel Jackson 7ba00b0157
Fix the size of the filesystem.
Correct typo: 0x400000 - 0x0B4000 = 0x34C000.
2021-09-27 02:42:53 +01:00
JF002 8a2b86dc83
Merge pull request #664 from Riksu9000/disable_notif_only
Toggle notifications only, keep vibrations.
2021-09-23 20:13:42 +02:00
Riku Isokoski 980ac17388 Show plug icon while plugged in 2021-09-22 13:58:45 +03:00
Riku Isokoski b210090837 Merge branch 'develop' into detect_full_charge 2021-09-22 12:03:41 +03:00
Jean-François Milants f3b5da0049 Fix the display of the date after a reset : when the date/time was restored from the noinit area, the date was displayed as "--" instead of the actual date.
This issue was caused by DateTime::SetCurrentTime() that would not update the internal state of the class : dayOfWeek, Month, Year were not properly updated according to the current time.
2021-09-19 17:42:50 +02:00
Jean-François Milants f556003de3 Merge branch 'PersistantStorage' of git://github.com/geekbozu/InfiniTime into geekbozu-PersistantStorage
# Conflicts:
#	src/systemtask/SystemTask.cpp
2021-09-18 17:37:37 +02:00
Mark Russell b9e56843a2 resolve conflict in src/systemtask/Messages.h 2021-09-16 16:20:39 -04:00
Mark Russell cdf99b08f4 Revert "Merge upstream"
This reverts commit 1d43adcdfa.
2021-09-16 16:12:20 -04:00
Mark Russell 1d43adcdfa Merge upstream 2021-09-16 16:01:25 -04:00
Mark Russell f857a757a7 Fixes per Riksu9000's feedback 2021-09-16 15:38:31 -04:00
Riku Isokoski 93d240a23b
Merge branch 'develop' into disable_notif_only 2021-09-14 23:38:42 +03:00
Reinhold Gschweicher f89780f332 Remove unused include in MotoController.h
Remove the unused include `app_timer.h` in `MotorController.h`
2021-09-13 22:40:15 +02:00
Mark Russell 2bf339a3f8 License header fix, add missing braces 2021-09-13 16:05:35 -04:00
Mark Russell bfe13d9d68 Fixes based on code reviews (formatting, UI code) 2021-09-13 15:26:28 -04:00
Riku Isokoski 40765f1173
Merge branch 'develop' into disable_notif_only 2021-09-13 21:22:53 +03:00
Jean-François Milants 9afa412a2a Merge branch 'refactor_adv' of https://github.com/evergreen22/InfiniTime into evergreen22-refactor_adv
# Conflicts:
#	src/components/ble/NimbleController.cpp
2021-09-13 20:22:27 +02:00
JF002 b0bdd2be1c
Merge pull request #549 from hubmartin/pinmap
Put all duplicated GPIO pin definitions to a single file
2021-09-13 20:05:43 +02:00
Tim Gates 84a93b5441
docs: Fix a few typos (#606)
* docs: Fix a few typos

There are small typos in:
- doc/versioning.md
- src/components/ble/NimbleController.cpp
- src/libs/mynewt-nimble/CODING_STANDARDS.md
- src/libs/mynewt-nimble/docs/btshell/btshell_GAP.rst
- src/systemtask/SystemTask.cpp

Fixes:
- Should read `milliseconds` rather than `miliseconds`.
- Should read `unnecessary` rather than `uncesseray`.
- Should read `target` rather than `tharget`.
- Should read `project` rather than `projct`.
- Should read `preferred` rather than `prefered`.
- Should read `functioning` rather than `functionning`.
- Should read `forever` rather than `forver`.
- Should read `existing` rather than `exisiting`.
2021-09-13 20:02:53 +02:00
hubmartin 73d3e41cea Merge branch 'develop' into pinmap 2021-09-13 10:19:07 +02:00
JF002 c9aeef94ea
Merge pull request #617 from ColinKinloch/wake_up_mode_setting_change
Correct change test for wake up mode setting
2021-09-12 18:41:26 +02:00
Riku Isokoski 3ee4876214 Toggle notifications only, keep vibrations. 2021-09-12 11:08:25 +03:00
Mark Russell 1fb5757655 Created basic alarm app 2021-09-10 18:40:13 -04:00
James A. Jerkins 22571d4b38 Advertise fast for at least 30 secs then slow down
On power up, advertise aggressively for at least 30 seconds then switch
to a longer interval to conserve battery life. This fast/slow pattern
is designed to balance connection response time and battery life.

When a disconnect event is received restart the fast/slow pattern.

When a failed connect event is received, restart the fast/slow pattern.

When the screen is activated and ble is not connected, restart the fast/slow pattern.

This pattern is consistent with Apple's BLE developer standards (QA 1931).
2021-09-05 15:53:20 -05:00
James A. Jerkins 4820b2ffe8 Revert "Linear decrease of advert rate to conserve battery"
This reverts commit c32ba844e0.
2021-09-05 15:52:01 -05:00
James A. Jerkins c32ba844e0 Linear decrease of advert rate to conserve battery
Start advertising aggressively when powered on then
slow down linearly over 75 seconds. This will conserve
battery by not advertising rapidly the whole time we
are seeking a connection. The slowest rate is
approximately once every 4.5 seconds to balance
responsiveness and battery life.

We use a fixed advertising duration of 5 seconds and start
with a 62.5 ms advertising interval. Every 5 seconds
(the advertising duration) we step up to a larger
advertising interval (slower advertising). We continue
to increase the advertising interval linearly for
75 seconds from the start of advertising. At 75 seconds
we have an advertising interval of 4.44 seconds which we
keep until connected. A reboot will restart the sequence.

When we receive a disconnect event we restart the sequence
with fast advertising and then slow down as described above.
Note that we are not using the BLE high duty cycle setting to
change the advertising rate. The rate is managed by repeatedly
setting the minimum and maximum intervals.

The linear rate of decrease and the slowest interval size
were determined experimentally by the author. The 5.3 Core
spec suggests that you not advertise slower than once
every 1.2 seconds to preserve responsiveness but we
ignored that suggestion.
2021-09-04 15:57:07 -05:00
Riku Isokoski b31b2425f8 Use percentage instead of IsFull 2021-09-03 16:57:00 +03:00
Riku Isokoski fd52ca8fe6 Detect full charge and improve watchface display 2021-09-03 14:35:38 +03:00
James A. Jerkins 3e1fe687b8 Fix styles issues - no change to functionality 2021-09-01 22:50:56 -05:00
James A. Jerkins d69a8e84fa Fix race condition, connect->disconnect->discovery 2021-09-01 22:48:01 -05:00
James A. Jerkins 00a3f84ea7 Completely reset connection state on fail 2021-08-30 23:17:16 -05:00
Riku Isokoski 21d37d1e23 Merge remote-tracking branch 'upstream/develop' into timer_battery_reading 2021-08-30 10:15:19 +03:00
James A. Jerkins be31f417db WIP Refactor ble advertising
Refactor ble advertising based on ble standards and conventions.
Changes are based on the bleprph example code, bluetooth docs, and nimble docs.
2021-08-29 15:50:04 -05:00
hubmartin 8390d0ef72 Merge branch 'develop' into pinmap 2021-08-29 11:43:50 +02:00
Jean-François Milants 31bc47d1cb Settings : use enums instead of ints to store colors. Group all PTS settings into a struct.
PTS/SettingsPTS : Convert to/from LVGL color and Settings::Color, add functions to reduce code duplication.
Adapt SettingPineTimeStyle with the last Screen Interface
2021-08-28 21:02:11 +02:00
Colin Kinloch b45d7c372d Correct change test for wake up mode setting 2021-08-26 19:42:02 +01:00
hubmartin 2a299fe275 Merge branch 'develop' into pinmap 2021-08-22 22:11:57 +02:00
Tim Keller 4f6d7e2c63 Move Backup to the system task. 2021-08-19 00:51:12 +00:00
Tim Keller 2dd7b8ba2c Add clearing of noinit segment on bad word
Code readability cleanup
2021-08-19 00:44:22 +00:00
Tim Keller 55f8908769 Make Clock Persistant. 2021-08-17 23:53:57 +00:00
Kieran Cawthray 30b32e4c8a Merge remote-tracking branch 'upstream/develop' into pinetimestyle-colorpicker 2021-08-15 17:50:56 +02:00
Riku Isokoski 044036e884 Merge branch 'develop' into timer_battery_reading 2021-08-14 23:02:23 +03:00
Jean-François Milants 0eeed5ac33 Merge branch 'call-improvements' of https://github.com/Riksu9000/InfiniTime into Riksu9000-call-improvements
# Conflicts:
#	src/displayapp/screens/Metronome.cpp
2021-08-14 21:54:00 +02:00
Riku Isokoski 23bde0d18e Make battery reading periodic. Add events. Disable pullup 2021-08-14 21:18:11 +03:00
Kieran Cawthray 52ee25e551 Merge remote-tracking branch 'upstream/develop' into pinetimestyle-colorpicker 2021-08-12 21:26:51 +02:00
hubmartin 0d083a2bea Merge branch 'develop' into pinmap 2021-08-11 22:00:55 +02:00
JF002 9fb3755088
Merge pull request #483 from Riksu9000/fix_adc
Fix misconfigured ADC and remove now unnecessary filtering
2021-08-10 12:32:09 +02:00
Jean-François Milants c086520c97 Code cleaning in Clock, WatchFaceAnalog, WatchFaceDigital and PineTimeStyle, inspired by PR #232 by nscooling. 2021-08-10 11:39:25 +02:00
Tim 3e9c30a18f
Merge branch 'JF002:develop' into set-datetime-manually 2021-08-08 14:37:48 +02:00
hubmartin abd8f343e4 Rename backlight level pins 2021-08-04 14:43:04 +02:00
hubmartin b3e6da7514 Cleanup, set Pinetime as default 2021-08-03 20:40:27 +02:00
hubmartin b7aa04e1f5 PinMap with namespace and constexpr 2021-08-03 20:32:23 +02:00
hubmartin 28abeae21b DRAFT: Put gpio pins to separate file 2021-08-02 21:37:48 +02:00
Riku Isokoski 09aaa58710 Remove floating point calculation 2021-08-01 16:19:09 +03:00
Riku Isokoski e6dcb3009f Improvements 2021-08-01 13:05:48 +03:00
Riku Isokoski 5bdef365f2 Merge branch 'develop' into HEAD 2021-08-01 11:47:26 +03:00
Riku Isokoski 79ee65bfd5 Increase ADC precision 2021-07-27 22:41:48 +03:00
Riku Isokoski a0a05553cf Merge branch 'develop' into fix_adc 2021-07-27 21:57:21 +03:00
Kieran Cawthray e6bc485679 Increment settings value, remove old hacky fix 2021-07-25 22:18:39 +02:00
Jonathan Vander Mey 7cc73b7832 Move callback function into anonymous namespace 2021-07-24 13:02:43 -04:00
Jonathan Vander Mey 487ae478ad Remove unnecessary C-style casts with BLE UUIDs
Instead of casting the UUID object to the ble_uuid_t* used throughout
the NimBLE API just pass the address of the ble_uuid_t member that's at
the start of each of the UUID structs.
2021-07-24 11:40:06 -04:00
Jonathan Vander Mey 1bdaf581a3 Update nav service UUID macro to constexpr functions 2021-07-24 11:18:17 -04:00
Jonathan Vander Mey 6b95fd841f Set navigation service id is base UUID macro
Avoids the need to copy the same ID into every characteristic UUID
genereated from it.
2021-07-24 11:09:56 -04:00
Jonathan Vander Mey 54ccd2cc07 Update Navigation UUID documentation
Fixed mismatch between the service and characteristic IDs in the
navigation service comments and documentation. They had old values not
reflecting the current code and changes in doc/ble.md
2021-07-24 11:07:06 -04:00
Kieran Cawthray 1ddb1f0832 Merge remote-tracking branch 'upstream/develop' into pinetimestyle-colorpicker 2021-07-23 15:03:28 +02:00
Riku Isokoski 0a0f28fff4
Make firmware updating more foolproof (#469)
* Make firmware updating more foolproof and fix bugs
* No need to manually handle overflow
* Make startTime TickType_t
* Don't process TouchEvents::None
* Fix sleep getting re-enabled issue more directly
2021-07-22 21:57:45 +02:00
Kieran Cawthray db784fc2fb Merge remote-tracking branch 'upstream/develop' into pinetimestyle-colorpicker 2021-07-20 15:30:07 +02:00
Kozova1 57b3397078
Multiple wakeup sources (#290)
* Allow multiple wakeup modes at the same time.

This commit adds multiple wakeup modes support.
It does so by storing them as a uint8_t bitfield enum.
It changes the following functions:

Since multiple modes can be on now, older version would not cut it:
WakeUpMode getWakeupMode() -> std::bitset<3> getWakeUpModes()
Where each bit corresponds to a WakeUpMode

We still need a way to check whether a specific wakeup mode is on, so:
bool isWakeUpModeOn(const WakeUpMode mode)

This function was changed to work correctly with the new implementation.
setWakeUpMode(WakeupMode mode, bool enable)

Previously, systemtask would exit SystemTask::OnTouchEvent() if the wake
up mode was None or RaiseWrist, to prevent waking up when a touch was
received. However, after enabling using multiple WakeUpModes, this
caused a bug where when RaiseWrist was checked with SingleTap or
DoubleTap, the tap detection wouldn't work.

This commit fixes that bug.

Next commit will update the settings WakeUpMode select UI to reflect these changes.

Signed-off-by: Kozova1 <mug66kk@gmail.com>

* Updated UI to reflect multiple WakeUp sources being available.

Signed-off-by: Kozova1 <mug66kk@gmail.com>
2021-07-14 20:51:51 +02:00
Riku Isokoski b5eabf6604 Merge branch 'develop' into fix_adc 2021-07-13 22:11:46 +03:00
Riku Isokoski 7efe2b7c51 Fix misconfigured ADC and remove now unnecessary filtering 2021-07-12 23:07:05 +03:00
Kieran Cawthray db99ac88d9 Merge remote-tracking branch 'upstream/develop' into pinetimestyle-colorpicker 2021-07-12 13:01:11 +02:00
Jean-François Milants e21f6a7f41 Notify battery level every 10 minutes when connected to a BLE host.
Refactor battery percent : only use uint8_t to store the battery % remaining.
2021-07-11 16:55:06 +02:00
joaquim.org 084123b752
Using littlefs (#438)
* add submodule littlefs
* base fs
* Save settings using littlefs
* Small fixes and suggestions from PR
* More small fixes from PR suggestions
* Code clean up
* Change SpiNorFlash functions to be private in FS
2021-07-11 15:06:06 +02:00
Tim Taenny 899bee2cf5 Exposed Month and DayOfWeek texts in DateTimeController
Added static methods to return the text of a given month
or dayOfWeek.
2021-07-09 17:32:48 +02:00
Avamander ab59b9b830
Whitespace and brace fixes (#456)
* Brace style and whitespace fixes

* Additional whitespace fixes
2021-07-04 20:06:50 +02:00
Jonathan Vander Mey 8031cd1b40 Inititialize members in class declaration
Also added initializers for previously unintialized members.
2021-07-02 17:47:14 +02:00
Jonathan Vander Mey d13b0a7ec5 Move local-only function into anonymous namespace 2021-07-02 17:47:14 +02:00
Jonathan Vander Mey 4217a8cb65 Make MusicService UUID objects static constexpr 2021-07-02 17:47:14 +02:00
Jonathan Vander Mey e28516002b Eliminate reinterpret_casting 2021-07-02 17:47:14 +02:00
Riku Isokoski 38f40034b0
Float voltage to int (#444)
* Change voltage float to millivolt integer
* Explain the ADC to milliVolts conversion
2021-07-02 17:30:32 +02:00
Avamander bdb5965f1a static_cast cleanup 2021-07-02 16:27:41 +02:00
Kieran Cawthray 4f21748aa2 Merge remote-tracking branch 'upstream/develop' into pinetimestyle-colorpicker 2021-06-29 21:10:36 +02:00
Neil O'Fix 0045fb16b6
SPI flash sleep if bootloader >= 1.0.0 (#322)
* Retrieve and display bootloader version
- Display bootloader version on System Info screen
- Enable SPI flash sleep mode if bootloader version >= 1.0.0
* Wait for SPI flash to wakeup before starting OTA DFU
2021-06-26 20:53:32 +02:00
Kieran Cawthray 7edfc53481 PineTimeStyle color picker add settings integration 2021-06-24 21:49:04 +02:00
JF002 c6dca25b9f
Add support for BMA425 acceleration sensor. (#440)
* Add support for BMA425 acceleration sensor.
2021-06-19 20:27:59 +02:00
Jonathan Vander Mey e90e8c7426 Fix signed/unsigned comparison warning
Changed type of encodedBufferIndex to size_t to eliminate warning. It is
fine as a size_t as its only ever compared to another size_t and used as
an array index.
2021-06-12 20:04:19 +02:00
JF002 a1b3537e9e
Merge pull request #359 from Avamander/patch-2
Used a macro for UUID generation, switched from C-style casts to reinterpret_cast, renamed callback
2021-06-12 13:18:12 +02:00
Jean-François Milants 7f9cc51b05 Initialize SystemTask, DisplayApp and HeartRateTask as global static variable instead of variables on the heap. We don't need them on the heap as we know their size at build time, it'll reduce memory fragmentation and it'll make memory analysis easier. 2021-06-06 15:56:03 +02:00
Florian 13e3463276
Timer App (#355)
* built timer app

* Style improvements

* making sure buttons stay hidden when the app is reopened and reappear after the timer runs out

* more sensible calculations of time deltas. eliminated that mysterious scaling factor

* changing the timer icon
2021-05-20 20:43:54 +02:00
Avamander 8568b5f31b Updated license header year 2021-05-17 02:16:50 +03:00
Avamander f6f28a95f6 Used a macro for UUID generation, switched from C-style casts to reinterpret_cast, renamed callback 2021-05-17 02:08:12 +03:00
David Ventura 9342d62a44
Emit event on power-present toggle (#320)
* Emit event on power-present toggle

* clang-format on changes

* also update battery status on any event

* update comments; remove double battery update

* Fix formatting

* Vibrate shortly on charging event

* debounce charge event
2021-05-16 21:13:22 +02:00
Florian Kraupa 56af4a0b83 cleaned up the code and reduced the size of the diff by removing things like additional whitespaces 2021-05-16 00:42:31 +02:00
Florian Kraupa d13dd6dee3 implemented continuous vibration pattern for incoming calls 2021-05-16 00:42:31 +02:00
JF002 09977c28c0
Merge pull request #298 from joaquimorg/StepsApp
New Steps app
2021-05-15 22:32:40 +02:00
david a62b81da3d Fix #209. Use int8_t for PPG data array 2021-05-01 12:10:44 +02:00
Joaquim cd0d85dff9 Merge branch 'develop' of
https://github.com/JF002/InfiniTime into StepsApp
2021-04-26 21:29:48 +01:00
Avamander 6989854519 Changed access modified indentation 2021-04-24 12:00:45 +03:00
Avamander 40d45d923b Reformatted all the files according to clang-format style 2021-04-24 11:39:53 +03:00
Joaquim 5fc07a8df7 Fix button size and default step goal 2021-04-20 16:21:01 +01:00
Joaquim cd4a3e1dfe New Steps app
Settings to set the steps goal
More detail in Motion app
New 42px Font
2021-04-19 15:28:38 +01:00
Joaquim 3c413bdd52 In order to stabilize the battery reading,
I modified the process to make 5 consecutive readings,
as the process is asynchronous,
there is no interference in the main process.
2021-04-16 16:15:38 +01:00
Jean-François Milants 15b3b8e282 Merge branch 'develop' into motion-sensor
# Conflicts:
#	src/CMakeLists.txt
#	src/displayapp/Apps.h
#	src/displayapp/DisplayApp.cpp
#	src/displayapp/DisplayApp.h
#	src/displayapp/lv_pinetime_theme.c
#	src/displayapp/screens/ApplicationList.cpp
#	src/drivers/TwiMaster.cpp
#	src/systemtask/SystemTask.h
2021-04-09 21:16:21 +02:00
Jean-François Milants 63584b6561 Merge branch 'develop' into notification-title
# Conflicts:
#	src/displayapp/screens/Notifications.cpp
2021-04-09 20:47:24 +02:00
JF002 9096d1db4c
Merge pull request #259 from JF002/fix-music-app2
Fix music app
2021-04-09 20:44:02 +02:00
Joaquim 3cf4df905a restore battery buffer 2021-04-08 16:15:57 +01:00
Joaquim 365e68e6cc Fix wake up lock in twi
optimize battery code
2021-04-05 15:22:10 +01:00
Jean-François Milants f8b9a7c060 Fix music app :
- Enable LVGL animation (and disable groups, which were not used), and set the speed.
 - Fix disc animation and progress display by initializing lastIncrement at 0 (a random value will be used otherwise, in release build)
2021-04-04 17:19:41 +02:00
Jean-François Milants 1d7576de64 Reset the step count every day at midnight. 2021-04-04 15:56:40 +02:00
Jean-François Milants 52a90288fd Handle return code from BMA driver, and set a flag is the initialization fails. This allows to boot InfiniTime even if the device cannot initialize. 2021-04-04 15:56:11 +02:00
Jean-François Milants 68bdaee1cc First integration of the motion sensor (bma 421) : step counting + wake on wrist rotation + app to see the value of the 3 axis in "real time". 2021-04-04 15:56:04 +02:00
Jean-François Milants 3934e9bef2 Ignore notification with empty message. 2021-04-04 15:19:37 +02:00