| Commit message (Collapse) | Author | Age | Files | Lines |
| ... | |
| | |
| |
| |
| | |
If a DFU is restarted, the write indices aren't reset causing the image to be written out of bounds. The CRC check prevents the faulty image from booting but LittleFS still gets nuked.
|
| | | |
|
| | |
| |
| |
| | |
Any screen that relies on DirtyValue to display up-to-date forecast data
would require the struct to provide an operator override for comparison.
|
| | | |
|
| | |
| |
| |
| |
| | |
In the documentation, specify that the timestamp is expressed in seconds from epoch (instead of nanoseconds).
SimpleWeatherService now uses "localtime" (GetCurrentDateTime()) instead of UTC time.
|
| | | |
|
| | | |
|
| | |
| |
| |
| | |
Fix include path since last rebase.
|
| | |
| |
| |
| |
| | |
Fix ToUInt64() in SimpleWeatherService.cpp.
Fix typo in SimpleWeatherService.md.
|
| | |
| |
| |
| | |
Fix code formatting.
|
| | |
| |
| |
| | |
Store temperatures as int16_t (instead of uint8_t previously). The temperature is expressed in °C * 100.
|
| | |
| |
| |
| | |
Code improvements : icon fields are now typed as Icons, move the location string when creating a new instance of CurrentWeather, fix SimpleWeatherService::CurrentWeather::operator== (location was missing from the comparison).
|
| | |
| |
| |
| |
| | |
Remove unused Weather debug app.
Fix formatting in SimpleWeatherService.cpp.
|
| | |
| |
| |
| |
| |
| |
| | |
Add missing icons (heavy clouds, thunderstorm, snow).
Remove unneeded comparison operator (!=), improve conversion of Timestamp and MessageType, order includes.
Fix typo in documentation.
Remove not related change in StopWatch.
|
| | |
| |
| |
| | |
instance.
|
| | |
| |
| |
| | |
Fix recovery firmware and code formatting.
|
| | |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
This new implementation of the weather feature provides a new BLE API and a new weather service.
The API uses a single characteristic that allows companion apps to write the weather conditions (current and forecast for the next 5 days).
The SimpleWeather service exposes those data as std::optional fields.
This new implementation replaces the previous WeahterService.
The API is documented in docs/SimpleWeatherService.md.
|
| | |
| |
| |
| | |
Watch faces can now be selected at buid time. It's implemented in a similar way than the selection of user apps, using a list of watch face description that is generated at build time (consteval, constexpr)
|
| | |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
1. Replace sprintf with snprintf, which is safer
2. An unsigned int or unsigned long int requires 11 bytes to print
(including the null terminator)
3. Use PRIu16 macro to print uint16_t
4. Format string "#%2d %2d:%02d:%02d.%02d\n" in
StopWatch::stopLapBtnEventHandler() requires at least 17 bytes.
The 16-byte buffer would clearly be overrun if sprintf were used.
|
| | | |
|
| | |
| |
| |
| | |
Fix DisplayAppRecovery so it builds with -std=c++20.
|
| | | |
|
| | | |
|
| | |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
This new algorithm calculates the number of degrees that the wrist has
rolled, and checks if that is above a threshold.
First it checks if the wrist is still enough for the acceleration values
to be considered mostly from gravity. It does this by calculating the
mean over the past 2 SystemTask loops, and checking that the variance
from that mean is below a threshold.
Then it calculates the angle the wrist is being held at, and calculates
the difference from the angle some time ago. If this difference is above
the threshold, it wakes the watch.
|
| | |
| |
| |
| |
| |
| | |
These are functions for converting acceleration due to gravity to angles
in degrees, and some statistical analysis including the mean and
variance.
|
| | |
| |
| |
| | |
Store history of acceleration values for the y and z axes.
|
| | |
| |
| |
| |
| |
| | |
The accumulated speed was calculated by dividing first and multiplying
after, which results in more rounding errors than if you multiply first
and then divide. The values aren't big enough to overflow.
|
| | |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
creation. (#1774)
This commit changes the order for the notification struct fields to allow the creation of notifications using a string literal.
```cpp
NotificationManager::Notifiation notification {
"String literal with notification text",
42,
NotificationManager::Categories::SimpleAlert
};
```
Co-authored-by: minacode <minamoto9@web.de>
|
| | | |
|
| | |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
* ShakeWake: Fixed instant wake after sleep issue in certain positions
Add lastX var to track the previous x acceleration for correct calculation of speed.
Reorder axes for clarity.
---------
Co-authored-by: Isaac <114504394+isaacc27@users.noreply.github.com>
Co-authored-by: FintasticMan <52415484+FintasticMan@users.noreply.github.com>
|
| | |
| |
| |
| |
| | |
Weather display for PineTimeStyle
Documentation : https://wiki.pine64.org/wiki/PineTimeStyle and https://wiki.pine64.org/wiki/Infinitime-Weather
|
| | |
| |
| |
| |
| |
| |
| | |
change watch face from int to enum
---------
Co-authored-by: minacode <minamoto9@web.de>
|
| | |
| |
| |
| |
| |
| |
| | |
New implementation of the heart rate sensor data processing using a frequency based PPG algorithm.
The HRS3300 settings are fine-tuned for better signal to noise at 10Hz.
The measurement delay is now set to 100ms.
Enable and use the ambient light sensor.
FFT implementation based on ArduinoFFT (https://github.com/kosme/arduinoFFT, GPLv3.0).
|
| | | |
|
| | |
| |
| |
| | |
TimerController instance was moved to DisplayApp.
|
| | |
| |
| |
| | |
We should be able to assume MotionController is safe to use.
|
| | | |
|
| | | |
|
| | | |
|
| | | |
|
| | | |
|
| | | |
|
| |/ |
|
| | |
|
| |
|
|
| |
Also move one-line functions to header.
|
| |
|
|
| |
Could be used for other motion-based algorithms in the future.
|
| | |
|
| |
|
|
|
| |
These could be used for other motion-based algorithms in the future.
Also fix includes.
|
| | |
|
| |
|
|
| |
This reverts PR https://github.com/InfiniTimeOrg/InfiniTime/pull/1352
|