Commit graph

55 commits

Author SHA1 Message Date
Jean-François Milants 6d524ebea2 Move most of the code from the constructor of the objects statically initialized in main() into Start()/Init() functions to avoid Static Initialization Order Fiasco (https://en.cppreference.com/w/cpp/language/siof). See https://github.com/JF002/InfiniTime/pull/415#issuecomment-859004238. 2021-06-12 10:58:28 +02:00
Jean-François Milants b1925ff286 Minor improvements: use std::make_unique when creating unique_ptr, check the code is running from an IRQ before calling xQueueSendFromISR or xQueueSend) 2021-06-10 21:20:27 +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
Jean-François Milants 9ab298c09e Fix wrong initialization of 'pinPowerPresent' pin that would prevent the touchpanel from working correctly when the device boots while connected to the charger. 2021-05-17 09:52:31 +02: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
petter 6e1726d1d0 short vibration when enabling it 2021-05-02 11:48:05 +02: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
Jean-François Milants 63635381b0 Disable the reading of the motion values in sleep mode when the wake up mode is not 'wrist rotation'. 2021-04-16 20:05:46 +02: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 9ac4be8b75 TwiMaster is now based on the NRFX TWI driver, as it handles more edge cases and workarounds for errors on the bus.
Reset the TWI bus after the soft-reset of the motion sensor to workaround issues on the TWI bus.
2021-04-08 20:07:24 +02:00
Joaquim 365e68e6cc Fix wake up lock in twi
optimize battery code
2021-04-05 15:22:10 +01:00
Joaquim José Almeida Pereira 96961709f3 array in SettingWakeUp wrong size 2021-04-05 11:01:44 +01: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 c7cc47ae30 Code cleaning in BMA421 driver. Do the axis inversion in the driver and not in the application.
NOTE: Axis remapping from the SDK do not apply to the "raw" X/Y/Z values returned to the sensor. According to the doc, the remapping is only applied to features, but I cannot check if it has any effect on step counting (I'm not sure I use it correctly, doc is not complete enough about this feature).
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
Joaquim bb7531e208 double tap wakeup error fix
battery nonblocking read
2021-04-04 13:51:22 +01: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
Niall Cooling 8eb947a223 replaced all unique_ptr.reset calls with std::make_unique 2021-03-22 17:56:26 +00:00
Niall Cooling e5e3fc02b8 Updated to include WatchFaceAnalog and fixed clashes 2021-03-22 17:23:49 +00: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
Niall Cooling 14bd790701 Resolved C++14 Cmake build issues so correctly building to C99/C++14 standards 2021-03-16 12:43:50 +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 8c53d0b70b Multi face support, analog clock, 12/24 config 2021-02-24 19:40:24 +00:00
Jean-François Milants 5fdfb2112e Fix merge conflict. 2021-02-14 14:19:30 +01:00
petter 1e2cc3ce91 add vibration toggle 2021-02-07 13:31:02 +01:00
petter 1bd5457848 trigger vibration from systemtask 2021-02-05 15:43:20 +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
petter 3dd88339f3 create motorcontroller in main and pass by reference 2021-01-25 12:45:04 -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
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
Jean-François Milants 68674cec53 Add heart rate BLE service. 2021-01-17 16:34:14 +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
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
JF002 c6556bcdea
Merge pull request #136 from okaestne/include-cleanup
Includes cleanup
2020-12-01 21:44:44 +01:00
Samuel Archibald e180ec5f3a Jeez this is what I get for rushing 😬 2020-11-19 15:50:39 -05:00
Samuel Archibald e18485c92b Whoops! Don't look at this XD 2020-11-19 15:47:27 -05:00
Samuel Archibald 681182d16a Readability and fix 2020-11-19 15:44:57 -05:00
okaestne 1516573df4
Include cleanup: components 2020-11-16 01:35:45 +01:00
Samuel Archibald 37c2768787 This is the actual fix, reducing the time between LCD is turned back on and the next task which will display the time is started. 2020-11-02 23:13:31 -05:00
Samuel Archibald 10c5260187 Fixed displaying last displayed time for ~100ms on wake 2020-11-02 21:14:28 -05:00
JF 1bb2eb9dcd Disable sleep mode on the SPI NOR Flash when the version is unknown. This is because the current bootloader (which does not exposes its version) cannot initialize the chip when it's in sleep mode.
This feature will be re-enabled when the bootloader expses it's version.
2020-10-27 19:38:45 +01:00
Avamander 189c5a83b2 Made sure to unsuppress the diagnostic check after the infinite loop declaration 2020-10-09 11:36:16 +03:00
Avamander f68c7b65b3 Minor formatting, diagnostic and documentation changes 2020-10-09 11:36:16 +03:00
JF002 0a8d8953f7
Merge pull request #80 from Avamander/patch-1
Switched from NULL to nullptr
2020-10-08 20:58:24 +02:00
Avamander aba3d65e3a Merge remote-tracking branch 'origin-origin/patch-3'
# Conflicts:
#	src/systemtask/SystemTask.cpp
2020-10-04 16:23:13 +03:00