Commit graph

412 commits

Author SHA1 Message Date
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
Joaquim bb7531e208 double tap wakeup error fix
battery nonblocking read
2021-04-04 13:51:22 +01:00
Jean-François Milants 03de1c6739 Add support for notification title. The notification buffer must contain the title and the message separated by a '\0' character.
If the buffer does not contain any \0, the whole buffer is considered to be the message of the notification. A default title will be displayed in the notification app.
2021-04-04 12:10:47 +02:00
Joaquim 1d3742e14f Big UI and navigation Rewrite
new navigation
add some color to the apps
redesign menus
new settings menu
new quick settings
code clean up
size reduction by converting navigation images to font
and more...
2021-04-04 03:08:51 +01:00
JF002 a3ff2e46ca
Merge pull request #240 from joaquimorg/ScreenCorruptionFIX
FIX screen corruption (Issue #213)
2021-03-20 18:10:13 +01:00
Jean-François Milants 405c85c160 Merge branch 'develop' of github.com:JF002/Pinetime into develop
# Conflicts:
#	src/main.cpp
#	src/systemtask/SystemTask.h
2021-03-20 11:41:49 +01:00
Joaquim dba7e47ac0 FIX screen corruption #213 2021-03-18 19:38:19 +00:00
Jean-François Milants 9f67e6f652 Merge branch 'develop' into recovery-firmware
# Conflicts:
#	src/CMakeLists.txt
#	src/displayapp/DisplayApp.h
#	src/systemtask/SystemTask.cpp
#	src/systemtask/SystemTask.h
2021-03-07 08:44:14 +01:00
Joaquim 97deb43fb7 Update from JF comments to PR 2021-03-06 19:55:53 +00:00
Joaquim 8c53d0b70b Multi face support, analog clock, 12/24 config 2021-02-24 19:40:24 +00:00
JF002 97a1c4b3d7
Merge pull request #182 from petterhs/warnings
Fix build warnings coming from HR implementation
2021-02-14 14:25:38 +01:00
Jean-François Milants 5fdfb2112e Fix merge conflict. 2021-02-14 14:19:30 +01:00
JF002 4c3803450e
Merge pull request #161 from petterhs/calls
Call functionality with changed UUID for notification event characteristic
2021-02-14 12:03:49 +01:00
petter 1e2cc3ce91 add vibration toggle 2021-02-07 13:31:02 +01:00
petter 7ab153cd76 refactor MotorController 2021-02-05 17:12:46 +01:00
Jean-François Milants d90b7274fa Update to nimble 1.3 master branch commit 82153e744833821e20e9a8b0d61c38b2b0dbcfe1
WARNING : heartbeat task is disabled!
2021-02-02 22:09:00 +01:00
petter d4c31bcbbe add mute button and functionality for call notification + new button icons 2021-01-27 17:07:46 +01:00
Jean-François Milants 25f35c7d0e Generate pinetime-recovery : a light version of InfiniTime design to be used as a recovery firmware : it only provides basic UI and BLE connectivity for OTA.
This new FW is build on the same codebasse than the actual InfiniTime. Only the display task is different (this allows to remove lvgl from the recovery fw, which is very heavy).

CMake builds and docker have been modified accordingly.
Note than the fw is converted into an image and then into a DFU in the cmake build (previously, it was only done in the
2021-01-26 20:31:45 +01:00
jlukanc da56ca5bfb remove vibtimer from .h to fix nonstop vibration 2021-01-25 13:03:04 -05:00
jlukanc f27e632906 move app timer def 2021-01-25 12:44:58 -05:00
petter 169b861af1 fix build warnings in HR implementation 2021-01-25 14:53:44 +01:00
The King 8c3df5f021
Merge branch 'develop' into upstream-dev 2021-01-24 16:01:14 -05:00
Jean-François Milants 219bafb01a Handle call notification the same way than other notifications.
Display the call notifications in the Notification app, with buttons to accept/reject the call.
2021-01-24 17:22:39 +01:00
jlukanc bf7d77bd34 remove unneeded defines 2021-01-23 15:15:42 -05:00
petter 6d76dbc911 change Notification Event base UUID 2021-01-21 23:36:17 +01:00
petter 2d90571f0d change Notification Event UUID 2021-01-21 23:15:34 +01:00
Rasmus Schenstrom 10ba20876f Add incoming call functionality
Add categories to AlertNotification

Add new alert notification screens bases

Add Incoming Call

Add Modal

Add event to AlertNotification

Co-authored-by: Robin Karlsson <robin.karlsson@protonmail.com>
2021-01-21 23:15:29 +01:00
JF002 be48f5275a
Merge pull request #168 from Panky-codes/fix-erratic-battery
Fix erratic battery
2021-01-20 20:41:55 +00:00
Jean-François Milants 522a1eb0be Merge branch piggz/nav into develop:
- fix conflict
 - add a icon for the navigation app.
2021-01-20 21:34:09 +01:00
JF002 a0f2fa8469
Merge pull request #169 from JF002/heartRateSensor
Heart rate sensor
2021-01-20 20:11:56 +00:00
Jean-François Milants ba03372f3b Music UUID must start with 00000000 instead of 00010000 (copy/paste error) 2021-01-19 21:38:53 +01:00
Jean-François Milants ccbe2e8e1b Adapt the UUID of Music service according to new guidelines. 2021-01-19 21:27:44 +01:00
Jean-François Milants 68674cec53 Add heart rate BLE service. 2021-01-17 16:34:14 +01:00
Jean-François Milants 3a3a14115a Add License/copyright info in HR related files. 2021-01-17 16:33:45 +01:00
panky-codes b31c0e7e45 Added more descriptive comments in doxygen format. 2021-01-17 11:06:24 +01:00
Jean-François Milants 04063cf0af HR Sensor : Add start/stop button to the HeartRate app (the HR sensors stays ON when the app is closed), display the HR value on the Clock app. 2021-01-17 10:39:46 +01:00
panky-codes 952021cdb6 Changed float to int in battery controller file. 2021-01-16 21:31:58 +01:00
panky-codes 8697a06642 Changed std accumulate to use int instead of a float. 2021-01-16 20:46:01 +01:00
panky-codes 271ca78be5 Converted all the other float usage to int. 2021-01-16 20:18:55 +01:00
panky-codes e2d1f81915 Converted percent remaining calc to int. 2021-01-16 19:51:32 +01:00
jlukanc b5992fd7ec add motor to notifs, fix tabs in motorcontroller.h 2021-01-15 22:49:37 -05:00
jlukanc fbb77baa3b add non-blocking motor controller 2021-01-15 22:11:53 -05:00
panky-codes dece6c6bc8 Adapted the accumulate function to return float. 2021-01-14 22:11:17 +01:00
panky-codes b8f943e73c Implemented a circular buffer and added an average alg for batter remaining percentage. 2021-01-14 21:22:36 +01:00
Jean-François Milants c82c22650c HR Sensor : do not go to sleep when the HR app is running. 2021-01-10 22:02:21 +01:00
Jean-François Milants 1a582815ba First implementation of the HR sensor using 100% foss code (ported from waspos) 2021-01-10 17:57:26 +01:00
petter 10376cd81c fix MusicService UUID typo in comment 2021-01-08 15:35:43 +01:00
JF002 c6556bcdea
Merge pull request #136 from okaestne/include-cleanup
Includes cleanup
2020-12-01 21:44:44 +01:00
okaestne 1516573df4
Include cleanup: components 2020-11-16 01:35:45 +01:00
Ryan Hartlage 3ccfa1d924 Fixed typo (Transfert -> Transfer) 2020-11-01 15:44:06 -05:00
JF 29f8074fcb Refactoring of BLE service discovery : it is now implemented into the classes of the services. 2020-10-29 16:06:01 +01:00
JF f90f2254f5 Reset BLE services on disconnect, do not start advertising if a connection is already established. 2020-10-28 18:23:09 +01:00
JF 7de43a1660 Fix conflicts 2020-10-27 21:55:18 +01:00
JF 07b6812f61 Notifications : Fix copy when the messages is spread across multiple os_mbuf. 2020-10-22 10:43:42 +02:00
JF cabf1168d4 Notifications : Fix display of notification index/number. 2020-10-21 22:15:02 +02:00
JF 440ae412b9 Increase max size of notification message to 100 char.
Fix bug in message handling that would ignore the last character of the notification.
2020-10-21 17:31:56 +02:00
JF ef5670c7e0 Integrate new notification UI with notifications coming from BLE 2020-10-20 20:57:39 +02:00
Avamander 6f45c0f669 Unified MusicStatus enum constant capitalization with others 2020-10-15 22:45:53 +03:00
Avamander 2b9906184b Refactored and improved the Music watchapp 2020-10-15 22:16:08 +03:00
Avamander 6c86d1d9d7 Fixed all the includes that were broken due to the renames 2020-10-02 22:16:48 +03:00
Avamander 40a643d203 Renamed Components/ to components/ 2020-10-02 21:44:27 +03:00