Commit graph

205 commits

Author SHA1 Message Date
Reinhold Gschweicher bbc5af078d SystemTask: add missing queue.h include for QueueHandle_t 2022-01-16 22:47:16 +01:00
Jean-François Milants bef3e708f6 Merge branch 'ShakeWake' of https://github.com/geekbozu/InfiniTime into geekbozu-ShakeWake
# Conflicts:
#	src/CMakeLists.txt
#	src/displayapp/Apps.h
#	src/displayapp/DisplayApp.cpp
#	src/displayapp/screens/settings/Settings.cpp
2022-01-04 21:48:08 +01:00
SteveAmor 15c3807a76 Adds enum class for chimes option 2022-01-04 19:32:29 +00:00
Tim Keller 3ebf002f9d Add start of settings app for senstivity.
really just debugging. I want to make it more configurable then high med low.
Position of setting needs a new location...dynamicly adding it currently at the end. Which honestly im fine with.
2022-01-04 01:59:01 +00:00
Tim Keller ad42cdf120 Cleanup 2022-01-04 01:57:18 +00:00
Tim Keller d270275bd2 Added Shake to wake 2022-01-04 01:57:18 +00:00
SteveAmor cc259b6a4a resolves conflicts 2022-01-02 22:27:43 +00:00
Riku Isokoski 5e6868d9eb Improved notification timeout 2022-01-01 16:22:35 +02: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
Tim Keller 6393a17d74 List Dir works? 2021-12-10 01:18:57 +00:00
Avamander 9db5d64441 Fixed unpopped diagnostic 2021-12-09 21:30:04 +01:00
Avamander 6a442b90a1 Improved format specifiers, bracing, removed C-style casts, whitespace fixes and removed Tiles shadowing 2021-12-09 21:30:04 +01:00
Tim Keller cd593c3862 Break not return thanks @FintasticMan 2021-12-09 21:15:00 +01:00
Tim Keller f1fc7ee659 Adjust systemtask to respect doNotGoToSleep. 2021-12-09 21:15:00 +01: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
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
Jean-François Milants 76c43ebc82 Fix previous commit, call touchPanel.Init() even if we disabled the touch controller boot error. 2021-11-07 20:13:22 +01:00
Jean-François Milants e6edf21552 Disable the warning that is displayed when the initialization of the touch controller fails, as some users reported that it was displayed when a valid touch controller was installed. 2021-11-07 18:00:34 +01:00
SteveAmor 822b6ae6a0 format changes 2021-11-07 13:12:01 +00:00
SteveAmor 5932391c8b Chimes option 2021-11-07 10:50:33 +00:00
Riku Isokoski 60a717b1a2 Make it so special actions can be input while sleeping, like in #480 2021-10-25 17:45:48 +03:00
Riku Isokoski 887c409b13 Only wake up on press. Fixes issue with longer press and sleep 2021-10-25 17:13:02 +03:00
Riku Isokoski 351c60a131 Return button action instead of pushing messages 2021-10-25 16:57:29 +03:00
Riku Isokoski b19a2a760b Use enum classes, remove old comment 2021-10-25 13:40:43 +03:00
Riku Isokoski d5dfa80876 Newer buttonhandler 2021-10-25 12:53:14 +03: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
Federico Igne 59ce48a3f3 Make new notifications refresh idle timer 2021-10-14 21:21:01 +01:00
Jean-François Milants 6d0e68d626 Merge branch 'update_touch_driver' of git://github.com/Riksu9000/InfiniTime into Riksu9000-update_touch_driver
# Conflicts:
#	src/displayapp/Apps.h
2021-10-10 16:48:45 +02:00
Jean-François Milants 977faebcb8 Remove call to batteryController.Update(); which was replaced by batteryController.MeasureVoltage(). 2021-10-09 21:17:59 +02:00
JF 9a831a6fe4
Merge pull request #715 from hubmartin/gpiote-fix
Fix GPIOTE not calling ISR when button is held during boot
2021-10-09 20:36:49 +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
Riku Isokoski 1777b9dee8 Don't measure and notify percentage on charging event. 2021-10-09 13:39:27 +03:00
hubmartin 98e74a3217 Call also ReloadIdleTimer 2021-10-08 17:01:27 +02:00
hubmartin fc2241fbf4 Add wake on charge event 2021-10-08 16:53:49 +02:00
Riku Isokoski f61e88b842 Merge branch 'develop' into update_touch_driver 2021-10-05 12:45:03 +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
hubmartin 9ef1babb9d Code cleanup 2021-10-03 17:03:08 +02:00
hubmartin f5725714d1 Call battery controller update 2021-10-03 17:00:38 +02:00
hubmartin 2aebbe3f47 GPIOTE fix of button and power detection experiment 2021-10-03 16:47:01 +02: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 e468acc99e
Merge branch 'develop' into update_touch_driver 2021-09-18 19:22:59 +03: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
Riku Isokoski f221f5d744 Merge branch 'develop' into update_touch_driver 2021-09-14 15:34:09 +03: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
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
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 6c023785e5 Fix wake on tap/double tap. 2021-08-28 21:30:31 +02:00
Riku Isokoski d2d97319e0 Merge branch 'develop' into update_touch_driver 2021-08-28 17:19:49 +03:00
Riku Isokoski 085c9ab2e1 Merge branch 'develop' into timer_battery_reading 2021-08-28 16:54:40 +03:00
Jean-François Milants 0313277ae6 Fix touchinfo typo in SystemTask. 2021-08-28 15:10:14 +02:00
Jean-François Milants 45e7638fc2 Merge branch 'twimaster_rework' of https://github.com/Riksu9000/InfiniTime into Riksu9000-twimaster_rework
# Conflicts:
#	src/systemtask/SystemTask.cpp
2021-08-28 15:08:50 +02: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
Riku Isokoski 85c99797da Merge branch 'develop' into new_touch_handler 2021-08-18 22:07:02 +03:00
Riku Isokoski 780a811f05 Automatic error detection 2021-08-18 15:23:30 +03:00
Riku Isokoski 5b969ccfa9 Merge branch 'develop' into update_touch_driver 2021-08-17 15:35:29 +03:00
Riku Isokoski 044036e884 Merge branch 'develop' into timer_battery_reading 2021-08-14 23:02:23 +03:00
Riku Isokoski 23bde0d18e Make battery reading periodic. Add events. Disable pullup 2021-08-14 21:18:11 +03:00
Riku Isokoski 6776776421 Make diff smaller and revert some changes in DisplayApp 2021-08-10 22:18:21 +03:00
Riku Isokoski 8a694adb09 Rework TouchHandler into not a task 2021-08-10 22:03:34 +03:00
Riku Isokoski 2194a339cf Only enable the bus when needed 2021-08-10 11:26:43 +03: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 f9319dfb91 Remove leftover 2021-08-01 21:19:33 +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 a1ba187c47 Merge branch 'develop' into new_touch_handler 2021-07-25 20:01:09 +03:00
Riku Isokoski 34949a47c5
Dim screen before sleep (#464)
* Implement dimming
2021-07-24 20:29:10 +02:00
Riku Isokoski d666c5004f
Merge branch 'develop' into new_touch_handler 2021-07-23 22:52:08 +03: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
Riku Isokoski 3e42297bd8 Update 2021-07-18 12:32:46 +03:00
Riku Isokoski 93ccbf38e8 Fix touch wakeup and code cleanup 2021-07-16 01:49:20 +03:00
Riku Isokoski 2a3e126390 Fix most issues 2021-07-16 00:07:55 +03:00
Riku Isokoski fe64176e7b New touch handler, with issues 2021-07-15 14:11:27 +03:00
Riku Isokoski 7ac6bdfe71 Merge branch 'develop' into update_touch_driver 2021-07-15 01:03:44 +03: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 5bc40c9287 Update touchpad driver 2021-07-14 17:11:16 +03: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
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
JF002 c6dca25b9f
Add support for BMA425 acceleration sensor. (#440)
* Add support for BMA425 acceleration sensor.
2021-06-19 20:27:59 +02:00
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