Merge branch 'develop' into upstream-dev
1
.github/FUNDING.yml
vendored
Normal file
|
@ -0,0 +1 @@
|
||||||
|
liberapay: JF002
|
18
.gitpod.yml
Normal file
|
@ -0,0 +1,18 @@
|
||||||
|
image:
|
||||||
|
file: docker/.gitpod.Dockerfile
|
||||||
|
github:
|
||||||
|
prebuilds:
|
||||||
|
# enable for the master/default branch (defaults to true)
|
||||||
|
master: true
|
||||||
|
# enable for all branches in this repo (defaults to false)
|
||||||
|
branches: false
|
||||||
|
# enable for pull requests coming from this repo (defaults to true)
|
||||||
|
pullRequests: false
|
||||||
|
# enable for pull requests coming from forks (defaults to false)
|
||||||
|
pullRequestsFromForks: false
|
||||||
|
# add a "Review in Gitpod" button as a comment to pull requests (defaults to true)
|
||||||
|
addComment: true
|
||||||
|
# add a "Review in Gitpod" button to pull requests (defaults to false)
|
||||||
|
addBadge: false
|
||||||
|
# add a label once the prebuild is ready to pull requests (defaults to false)
|
||||||
|
addLabel: false #prebuilt-in-gitpod
|
|
@ -1,5 +1,5 @@
|
||||||
cmake_minimum_required(VERSION 3.10)
|
cmake_minimum_required(VERSION 3.10)
|
||||||
project(pinetime VERSION 0.10.0 LANGUAGES C CXX ASM)
|
project(pinetime VERSION 0.11.0 LANGUAGES C CXX ASM)
|
||||||
|
|
||||||
set(NRF_TARGET "nrf52")
|
set(NRF_TARGET "nrf52")
|
||||||
|
|
||||||
|
|
16
README.md
|
@ -34,14 +34,18 @@ As of now, here is the list of achievements of this project:
|
||||||
- Time synchronization via BLE
|
- Time synchronization via BLE
|
||||||
- Notification via BLE
|
- Notification via BLE
|
||||||
- Multiple 'apps' :
|
- Multiple 'apps' :
|
||||||
* Clock (displays the date, time, battery level, BLE connection status, heart rate and step count)
|
* Clock (displays the date, time, battery level, ble connection status, heart rate)
|
||||||
* Heart rate
|
* System info (displays various info : BLE MAC, build date/time, uptime, version,...)
|
||||||
* Motion
|
* Brightess (allows the user to configure the brightness of the display)
|
||||||
* System info (displays various info : BLE MAC, build date/time, uptime, version, ...)
|
* Music (control the playback of the music on your phone)
|
||||||
* Brightness (allows the user to configure the brightness of the display)
|
* Heart rate (controls the heart rate sensor and display current heartbeat)
|
||||||
|
* Navigation (displays navigation instructions coming from the companion app)
|
||||||
|
* Notification (displays the last notification received)
|
||||||
|
* Paddle (single player pong-like game)
|
||||||
|
* Two (2048 clone game)
|
||||||
- Supported by 2 companion apps (development is in progress):
|
- Supported by 2 companion apps (development is in progress):
|
||||||
* [Gadgetbridge](https://codeberg.org/Freeyourgadget/Gadgetbridge/) (on Android)
|
* [Gadgetbridge](https://codeberg.org/Freeyourgadget/Gadgetbridge/) (on Android)
|
||||||
* [Amazfish](https://openrepos.net/content/piggz/amazfish) (on SailfishOS)
|
* [Amazfish](https://openrepos.net/content/piggz/amazfish) (on SailfishOS and Linux)
|
||||||
- **[Experimental]** OTA (Over-the-air) update via BLE
|
- **[Experimental]** OTA (Over-the-air) update via BLE
|
||||||
- **[Experimental]** Bootloader based on [MCUBoot](https://juullabs-oss.github.io/mcuboot/)
|
- **[Experimental]** Bootloader based on [MCUBoot](https://juullabs-oss.github.io/mcuboot/)
|
||||||
|
|
||||||
|
|
118
doc/NavigationService.md
Normal file
|
@ -0,0 +1,118 @@
|
||||||
|
# Navigation Service
|
||||||
|
## Introduction
|
||||||
|
The navigation ble service provides 4 characteristics to allow the the watch to display navigation instructions from a companion application. The intended purpose is when performing some outdoor activities, for example running or cycling.
|
||||||
|
|
||||||
|
The 4 characteristics are:
|
||||||
|
flag (string) - Upcoming icon name
|
||||||
|
narrative (string) - Textual description of instruction
|
||||||
|
manDist (string) - Manouvre Distance, the distance to the upcoming change
|
||||||
|
progress (uint8) - Percent complete of total route, value 0-100
|
||||||
|
|
||||||
|
## Service
|
||||||
|
The service UUID is c7e60001-78fc-48fe-8e23-433b3a1942d0
|
||||||
|
|
||||||
|
## Characteristics
|
||||||
|
## Flags (UUID c7e60002-78fc-48fe-8e23-433b3a1942d0)
|
||||||
|
All included icons are from pure-maps, which provides the actual routing from the client. The icon names ultimately come from the mapbox project "direction-icons", See https://github.com/rinigus/pure-maps/tree/master/qml/icons/navigation See the end of this document for the full lsit of supported icon names.
|
||||||
|
|
||||||
|
## Narrative (UUID c7e60003-78fc-48fe-8e23-433b3a1942d0)
|
||||||
|
This is a client supplied string describing the upcoming instruction such as "At the roundabout take the first exit".
|
||||||
|
|
||||||
|
## Man Dist (UUID c7e60004-78fc-48fe-8e23-433b3a1942d0)
|
||||||
|
This is a short string describing the distance to the upcoming instruction such as "50 m".
|
||||||
|
|
||||||
|
## Progress (UUID c7e60001=5-78fc-48fe-8e23-433b3a1942d0)
|
||||||
|
The percent complete in a uint8. The watch displays this as an overall progress in a progress bar.
|
||||||
|
|
||||||
|
## Full icon list
|
||||||
|
* arrive
|
||||||
|
* arrive-left
|
||||||
|
* arrive-right
|
||||||
|
* arrive-straight
|
||||||
|
* close
|
||||||
|
* continue
|
||||||
|
* continue-left
|
||||||
|
* continue-right
|
||||||
|
* continue-slight-left
|
||||||
|
* continue-slight-right
|
||||||
|
* continue-straight
|
||||||
|
* continue-uturn
|
||||||
|
* depart
|
||||||
|
* depart-left
|
||||||
|
* depart-right
|
||||||
|
* depart-straight
|
||||||
|
* end-of-road-left
|
||||||
|
* end-of-road-right
|
||||||
|
* ferry
|
||||||
|
* flag
|
||||||
|
* fork
|
||||||
|
* fork-left
|
||||||
|
* fork-right
|
||||||
|
* fork-slight-left
|
||||||
|
* fork-slight-right
|
||||||
|
* fork-straight
|
||||||
|
* invalid
|
||||||
|
* invalid-left
|
||||||
|
* invalid-right
|
||||||
|
* invalid-slight-left
|
||||||
|
* invalid-slight-right
|
||||||
|
* invalid-straight
|
||||||
|
* invalid-uturn
|
||||||
|
* merge-left
|
||||||
|
* merge-right
|
||||||
|
* merge-slight-left
|
||||||
|
* merge-slight-right
|
||||||
|
* merge-straight
|
||||||
|
* new-name-left
|
||||||
|
* new-name-right
|
||||||
|
* new-name-sharp-left
|
||||||
|
* new-name-sharp-right
|
||||||
|
* new-name-slight-left
|
||||||
|
* new-name-slight-right
|
||||||
|
* new-name-straight
|
||||||
|
* notification-left
|
||||||
|
* notification-right
|
||||||
|
* notification-sharp-left
|
||||||
|
* notification-sharp-right
|
||||||
|
* notification-slight-left
|
||||||
|
* notification-slight-right
|
||||||
|
* notification-straight
|
||||||
|
* off-ramp-left
|
||||||
|
* off-ramp-right
|
||||||
|
* off-ramp-sharp-left
|
||||||
|
* off-ramp-sharp-right
|
||||||
|
* off-ramp-slight-left
|
||||||
|
* off-ramp-slight-right
|
||||||
|
* off-ramp-straight
|
||||||
|
* on-ramp-left
|
||||||
|
* on-ramp-right
|
||||||
|
* on-ramp-sharp-left
|
||||||
|
* on-ramp-sharp-right
|
||||||
|
* on-ramp-slight-left
|
||||||
|
* on-ramp-slight-right
|
||||||
|
* on-ramp-straight
|
||||||
|
* rotary
|
||||||
|
* rotary-left
|
||||||
|
* rotary-right
|
||||||
|
* rotary-sharp-left
|
||||||
|
* rotary-sharp-right
|
||||||
|
* rotary-slight-left
|
||||||
|
* rotary-slight-right
|
||||||
|
* rotary-straight
|
||||||
|
* roundabout
|
||||||
|
* roundabout-left
|
||||||
|
* roundabout-right
|
||||||
|
* roundabout-sharp-left
|
||||||
|
* roundabout-sharp-right
|
||||||
|
* roundabout-slight-left
|
||||||
|
* roundabout-slight-right
|
||||||
|
* roundabout-straight
|
||||||
|
* turn-left
|
||||||
|
* turn-right
|
||||||
|
* turn-sharp-left
|
||||||
|
* turn-sharp-right
|
||||||
|
* turn-slight-left
|
||||||
|
* turn-slight-right
|
||||||
|
* turn-stright
|
||||||
|
* updown
|
||||||
|
* uturn
|
23
doc/ble.md
|
@ -15,6 +15,29 @@ If **CTS** is detected, it'll request the current time to the companion applicat
|
||||||
|
|
||||||
![BLE connection sequence diagram](ble/connection_sequence.png "BLE connection sequence diagram")
|
![BLE connection sequence diagram](ble/connection_sequence.png "BLE connection sequence diagram")
|
||||||
|
|
||||||
|
## BLE UUIDs
|
||||||
|
When possible, InfiniTime tries to implement BLE services defined by the BLE specification.
|
||||||
|
|
||||||
|
When the service does not exist in the BLE specification, InfiniTime implement custom services. As all BLE services, custom services are identified by a UUID. Here is how to define the UUID of custom services in InfiniTime:
|
||||||
|
|
||||||
|
```
|
||||||
|
- Base UUID : xxxxxxxx-78fc-48fe-8e23-433b3a1942d0
|
||||||
|
- Service UUID : SSSS0000-78fc-48fe-8e23-433b3a1942d0 where SSSS is the service ID
|
||||||
|
- Characteristic UUID : SSSSCCCC-78fc-48fe-8e23-433b3a1942d0 where CCCC is the characteristic ID for the service SSSS and is different than 0
|
||||||
|
```
|
||||||
|
|
||||||
|
The following custom services are implemented in InfiniTime:
|
||||||
|
|
||||||
|
- Since InfiniTime 0.8:
|
||||||
|
```
|
||||||
|
* Music Service : 00000000-78fc-48fe-8e23-433b3a1942d0
|
||||||
|
```
|
||||||
|
|
||||||
|
- Since InfiniTime 0.11:
|
||||||
|
```
|
||||||
|
* Navigation Service : 00010000-78fc-48fe-8e23-433b3a1942d0
|
||||||
|
```
|
||||||
|
|
||||||
## BLE services
|
## BLE services
|
||||||
[List of standard BLE services](https://www.bluetooth.com/specifications/gatt/services/)
|
[List of standard BLE services](https://www.bluetooth.com/specifications/gatt/services/)
|
||||||
|
|
||||||
|
|
|
@ -89,12 +89,12 @@ reset
|
||||||
## Examples
|
## Examples
|
||||||
### Flash bootloader and application
|
### Flash bootloader and application
|
||||||
```
|
```
|
||||||
openocd -f ./openocd-stlink.cfg -f ./flash_bootloader_app.ocd
|
openocd -f ./openocd-stlink.ocd -f ./flash_bootloader_app.ocd
|
||||||
```
|
```
|
||||||
|
|
||||||
### Flash graphics flasher
|
### Flash graphics flasher
|
||||||
```
|
```
|
||||||
openocd -f ./openocd-stlink.cfg -f ./flash_graphics.ocd
|
openocd -f ./openocd-stlink.ocd -f ./flash_graphics.ocd
|
||||||
```
|
```
|
||||||
|
|
||||||
## Connect the STLinkV2 to the PineTime
|
## Connect the STLinkV2 to the PineTime
|
||||||
|
|
39
docker/.gitpod.Dockerfile
vendored
Normal file
|
@ -0,0 +1,39 @@
|
||||||
|
FROM gitpod/workspace-full
|
||||||
|
|
||||||
|
USER root
|
||||||
|
ARG DEBIAN_FRONTEND=noninteractive
|
||||||
|
RUN apt-get update -qq \
|
||||||
|
&& apt-get install -y \
|
||||||
|
# x86_64 / generic packages
|
||||||
|
bash \
|
||||||
|
build-essential \
|
||||||
|
cmake \
|
||||||
|
git \
|
||||||
|
make \
|
||||||
|
python3 \
|
||||||
|
python3-pip \
|
||||||
|
tar \
|
||||||
|
unzip \
|
||||||
|
wget \
|
||||||
|
# aarch64 packages
|
||||||
|
libffi-dev \
|
||||||
|
libssl-dev \
|
||||||
|
python3-dev \
|
||||||
|
&& rm -rf /var/cache/apt/* /var/lib/apt/lists/*;
|
||||||
|
|
||||||
|
# Needs to be installed as root
|
||||||
|
RUN pip3 install adafruit-nrfutil
|
||||||
|
|
||||||
|
COPY docker/build.sh /opt/
|
||||||
|
# Lets get each in a separate docker layer for better downloads
|
||||||
|
# GCC
|
||||||
|
RUN bash -c "source /opt/build.sh; GetGcc;"
|
||||||
|
# NrfSdk
|
||||||
|
RUN bash -c "source /opt/build.sh; GetNrfSdk;"
|
||||||
|
# McuBoot
|
||||||
|
RUN bash -c "source /opt/build.sh; GetMcuBoot;"
|
||||||
|
|
||||||
|
# Link the default checkout workspace in to the default $SOURCES_DIR
|
||||||
|
RUN ln -s /workspace/Pinetime /sources
|
||||||
|
|
||||||
|
USER gitpod
|
|
@ -31,8 +31,8 @@ main() {
|
||||||
|
|
||||||
CmakeGenerate
|
CmakeGenerate
|
||||||
CmakeBuild $target
|
CmakeBuild $target
|
||||||
|
BUILD_RESULT=$?
|
||||||
if [[ "$DISABLE_POSTBUILD" != "true" ]]; then
|
if [ "$DISABLE_POSTBUILD" != "true" -a "$BUILD_RESULT" == 0 ]; then
|
||||||
source "$BUILD_DIR/post_build.sh"
|
source "$BUILD_DIR/post_build.sh"
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
@ -70,7 +70,9 @@ CmakeGenerate() {
|
||||||
CmakeBuild() {
|
CmakeBuild() {
|
||||||
local target="$1"
|
local target="$1"
|
||||||
[[ -n "$target" ]] && target="--target $target"
|
[[ -n "$target" ]] && target="--target $target"
|
||||||
cmake --build "$BUILD_DIR" --config $BUILD_TYPE $target -- -j$(nproc)
|
if cmake --build "$BUILD_DIR" --config $BUILD_TYPE $target -- -j$(nproc)
|
||||||
|
then return 0; else return 1;
|
||||||
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
[[ $SOURCED == "false" ]] && main "$@" || echo "Sourced!"
|
[[ $SOURCED == "false" ]] && main "$@" || echo "Sourced!"
|
|
@ -324,6 +324,96 @@ list(APPEND IMAGE_FILES
|
||||||
|
|
||||||
displayapp/icons/bluetooth/os_bt_connected.c
|
displayapp/icons/bluetooth/os_bt_connected.c
|
||||||
displayapp/icons/bluetooth/os_bt_disconnected.c
|
displayapp/icons/bluetooth/os_bt_disconnected.c
|
||||||
|
|
||||||
|
displayapp/icons/navigation/arrive-left.c
|
||||||
|
displayapp/icons/navigation/arrive-right.c
|
||||||
|
displayapp/icons/navigation/arrive-straight.c
|
||||||
|
displayapp/icons/navigation/arrive.c
|
||||||
|
displayapp/icons/navigation/close.c
|
||||||
|
displayapp/icons/navigation/continue-left.c
|
||||||
|
displayapp/icons/navigation/continue-right.c
|
||||||
|
displayapp/icons/navigation/continue-slight-left.c
|
||||||
|
displayapp/icons/navigation/continue-slight-right.c
|
||||||
|
displayapp/icons/navigation/continue-straight.c
|
||||||
|
displayapp/icons/navigation/continue-uturn.c
|
||||||
|
displayapp/icons/navigation/continue.c
|
||||||
|
displayapp/icons/navigation/depart-left.c
|
||||||
|
displayapp/icons/navigation/depart-right.c
|
||||||
|
displayapp/icons/navigation/depart-straight.c
|
||||||
|
displayapp/icons/navigation/end-of-road-left.c
|
||||||
|
displayapp/icons/navigation/end-of-road-right.c
|
||||||
|
displayapp/icons/navigation/ferry.c
|
||||||
|
displayapp/icons/navigation/flag.c
|
||||||
|
displayapp/icons/navigation/fork-left.c
|
||||||
|
displayapp/icons/navigation/fork-right.c
|
||||||
|
displayapp/icons/navigation/fork-slight-left.c
|
||||||
|
displayapp/icons/navigation/fork-slight-right.c
|
||||||
|
displayapp/icons/navigation/fork-straight.c
|
||||||
|
displayapp/icons/navigation/invalid.c
|
||||||
|
displayapp/icons/navigation/invalid-left.c
|
||||||
|
displayapp/icons/navigation/invalid-right.c
|
||||||
|
displayapp/icons/navigation/invalid-slight-left.c
|
||||||
|
displayapp/icons/navigation/invalid-slight-right.c
|
||||||
|
displayapp/icons/navigation/invalid-straight.c
|
||||||
|
displayapp/icons/navigation/invalid-uturn.c
|
||||||
|
displayapp/icons/navigation/merge-left.c
|
||||||
|
displayapp/icons/navigation/merge-right.c
|
||||||
|
displayapp/icons/navigation/merge-slight-left.c
|
||||||
|
displayapp/icons/navigation/merge-slight-right.c
|
||||||
|
displayapp/icons/navigation/merge-straight.c
|
||||||
|
displayapp/icons/navigation/new-name-left.c
|
||||||
|
displayapp/icons/navigation/new-name-right.c
|
||||||
|
displayapp/icons/navigation/new-name-sharp-left.c
|
||||||
|
displayapp/icons/navigation/new-name-sharp-right.c
|
||||||
|
displayapp/icons/navigation/new-name-slight-left.c
|
||||||
|
displayapp/icons/navigation/new-name-slight-right.c
|
||||||
|
displayapp/icons/navigation/new-name-straight.c
|
||||||
|
displayapp/icons/navigation/notification-left.c
|
||||||
|
displayapp/icons/navigation/notification-right.c
|
||||||
|
displayapp/icons/navigation/notification-sharp-left.c
|
||||||
|
displayapp/icons/navigation/notification-sharp-right.c
|
||||||
|
displayapp/icons/navigation/notification-slight-left.c
|
||||||
|
displayapp/icons/navigation/notification-slight-right.c
|
||||||
|
displayapp/icons/navigation/notification-straight.c
|
||||||
|
displayapp/icons/navigation/off-ramp-left.c
|
||||||
|
displayapp/icons/navigation/off-ramp-right.c
|
||||||
|
displayapp/icons/navigation/off-ramp-sharp-left.c
|
||||||
|
displayapp/icons/navigation/off-ramp-sharp-right.c
|
||||||
|
displayapp/icons/navigation/off-ramp-slight-left.c
|
||||||
|
displayapp/icons/navigation/off-ramp-slight-right.c
|
||||||
|
displayapp/icons/navigation/off-ramp-straight.c
|
||||||
|
displayapp/icons/navigation/on-ramp-left.c
|
||||||
|
displayapp/icons/navigation/on-ramp-right.c
|
||||||
|
displayapp/icons/navigation/on-ramp-sharp-left.c
|
||||||
|
displayapp/icons/navigation/on-ramp-sharp-right.c
|
||||||
|
displayapp/icons/navigation/on-ramp-slight-left.c
|
||||||
|
displayapp/icons/navigation/on-ramp-slight-right.c
|
||||||
|
displayapp/icons/navigation/on-ramp-straight.c
|
||||||
|
displayapp/icons/navigation/rotary.c
|
||||||
|
displayapp/icons/navigation/rotary-left.c
|
||||||
|
displayapp/icons/navigation/rotary-right.c
|
||||||
|
displayapp/icons/navigation/rotary-sharp-left.c
|
||||||
|
displayapp/icons/navigation/rotary-sharp-right.c
|
||||||
|
displayapp/icons/navigation/rotary-slight-left.c
|
||||||
|
displayapp/icons/navigation/rotary-slight-right.c
|
||||||
|
displayapp/icons/navigation/rotary-straight.c
|
||||||
|
displayapp/icons/navigation/roundabout.c
|
||||||
|
displayapp/icons/navigation/roundabout-left.c
|
||||||
|
displayapp/icons/navigation/roundabout-right.c
|
||||||
|
displayapp/icons/navigation/roundabout-sharp-left.c
|
||||||
|
displayapp/icons/navigation/roundabout-sharp-right.c
|
||||||
|
displayapp/icons/navigation/roundabout-slight-left.c
|
||||||
|
displayapp/icons/navigation/roundabout-slight-right.c
|
||||||
|
displayapp/icons/navigation/roundabout-straight.c
|
||||||
|
displayapp/icons/navigation/turn-left.c
|
||||||
|
displayapp/icons/navigation/turn-right.c
|
||||||
|
displayapp/icons/navigation/turn-sharp-left.c
|
||||||
|
displayapp/icons/navigation/turn-sharp-right.c
|
||||||
|
displayapp/icons/navigation/turn-slight-left.c
|
||||||
|
displayapp/icons/navigation/turn-slight-right.c
|
||||||
|
displayapp/icons/navigation/turn-stright.c
|
||||||
|
displayapp/icons/navigation/updown.c
|
||||||
|
displayapp/icons/navigation/uturn.c
|
||||||
)
|
)
|
||||||
|
|
||||||
list(APPEND SOURCE_FILES
|
list(APPEND SOURCE_FILES
|
||||||
|
@ -347,10 +437,12 @@ list(APPEND SOURCE_FILES
|
||||||
displayapp/screens/Label.cpp
|
displayapp/screens/Label.cpp
|
||||||
displayapp/screens/FirmwareUpdate.cpp
|
displayapp/screens/FirmwareUpdate.cpp
|
||||||
displayapp/screens/Music.cpp
|
displayapp/screens/Music.cpp
|
||||||
|
displayapp/screens/Navigation.cpp
|
||||||
displayapp/screens/FirmwareValidation.cpp
|
displayapp/screens/FirmwareValidation.cpp
|
||||||
displayapp/screens/ApplicationList.cpp
|
displayapp/screens/ApplicationList.cpp
|
||||||
displayapp/screens/Notifications.cpp
|
displayapp/screens/Notifications.cpp
|
||||||
displayapp/screens/Twos.cpp
|
displayapp/screens/Twos.cpp
|
||||||
|
displayapp/screens/HeartRate.cpp
|
||||||
main.cpp
|
main.cpp
|
||||||
drivers/St7789.cpp
|
drivers/St7789.cpp
|
||||||
drivers/SpiNorFlash.cpp
|
drivers/SpiNorFlash.cpp
|
||||||
|
@ -359,6 +451,7 @@ list(APPEND SOURCE_FILES
|
||||||
drivers/Watchdog.cpp
|
drivers/Watchdog.cpp
|
||||||
drivers/DebugPins.cpp
|
drivers/DebugPins.cpp
|
||||||
drivers/InternalFlash.cpp
|
drivers/InternalFlash.cpp
|
||||||
|
drivers/Hrs3300.cpp
|
||||||
components/battery/BatteryController.cpp
|
components/battery/BatteryController.cpp
|
||||||
components/ble/BleController.cpp
|
components/ble/BleController.cpp
|
||||||
components/ble/NotificationManager.cpp
|
components/ble/NotificationManager.cpp
|
||||||
|
@ -372,9 +465,11 @@ list(APPEND SOURCE_FILES
|
||||||
components/ble/CurrentTimeService.cpp
|
components/ble/CurrentTimeService.cpp
|
||||||
components/ble/AlertNotificationService.cpp
|
components/ble/AlertNotificationService.cpp
|
||||||
components/ble/MusicService.cpp
|
components/ble/MusicService.cpp
|
||||||
|
components/ble/NavigationService.cpp
|
||||||
components/ble/BatteryInformationService.cpp
|
components/ble/BatteryInformationService.cpp
|
||||||
components/ble/ImmediateAlertService.cpp
|
components/ble/ImmediateAlertService.cpp
|
||||||
components/ble/ServiceDiscovery.cpp
|
components/ble/ServiceDiscovery.cpp
|
||||||
|
components/ble/HeartRateService.cpp
|
||||||
components/firmwarevalidator/FirmwareValidator.cpp
|
components/firmwarevalidator/FirmwareValidator.cpp
|
||||||
components/motor/MotorController.cpp
|
components/motor/MotorController.cpp
|
||||||
drivers/Cst816s.cpp
|
drivers/Cst816s.cpp
|
||||||
|
@ -388,6 +483,12 @@ list(APPEND SOURCE_FILES
|
||||||
|
|
||||||
systemtask/SystemTask.cpp
|
systemtask/SystemTask.cpp
|
||||||
drivers/TwiMaster.cpp
|
drivers/TwiMaster.cpp
|
||||||
|
|
||||||
|
heartratetask/HeartRateTask.cpp
|
||||||
|
components/heartrate/Ppg.cpp
|
||||||
|
components/heartrate/Biquad.cpp
|
||||||
|
components/heartrate/Ptagc.cpp
|
||||||
|
components/heartrate/HeartRateController.cpp
|
||||||
)
|
)
|
||||||
|
|
||||||
list(APPEND GRAPHICS_SOURCE_FILES
|
list(APPEND GRAPHICS_SOURCE_FILES
|
||||||
|
@ -435,6 +536,7 @@ set(INCLUDE_FILES
|
||||||
displayapp/screens/ApplicationList.h
|
displayapp/screens/ApplicationList.h
|
||||||
displayapp/Apps.h
|
displayapp/Apps.h
|
||||||
displayapp/screens/Notifications.h
|
displayapp/screens/Notifications.h
|
||||||
|
displayapp/screens/HeartRate.h
|
||||||
drivers/St7789.h
|
drivers/St7789.h
|
||||||
drivers/SpiNorFlash.h
|
drivers/SpiNorFlash.h
|
||||||
drivers/SpiMaster.h
|
drivers/SpiMaster.h
|
||||||
|
@ -442,6 +544,7 @@ set(INCLUDE_FILES
|
||||||
drivers/Watchdog.h
|
drivers/Watchdog.h
|
||||||
drivers/DebugPins.h
|
drivers/DebugPins.h
|
||||||
drivers/InternalFlash.h
|
drivers/InternalFlash.h
|
||||||
|
drivers/Hrs3300.h
|
||||||
components/battery/BatteryController.h
|
components/battery/BatteryController.h
|
||||||
components/ble/BleController.h
|
components/ble/BleController.h
|
||||||
components/ble/NotificationManager.h
|
components/ble/NotificationManager.h
|
||||||
|
@ -457,6 +560,7 @@ set(INCLUDE_FILES
|
||||||
components/ble/ImmediateAlertService.h
|
components/ble/ImmediateAlertService.h
|
||||||
components/ble/ServiceDiscovery.h
|
components/ble/ServiceDiscovery.h
|
||||||
components/ble/BleClient.h
|
components/ble/BleClient.h
|
||||||
|
components/ble/HeartRateService.h.h
|
||||||
drivers/Cst816s.h
|
drivers/Cst816s.h
|
||||||
FreeRTOS/portmacro.h
|
FreeRTOS/portmacro.h
|
||||||
FreeRTOS/portmacro_cmsis.h
|
FreeRTOS/portmacro_cmsis.h
|
||||||
|
|
|
@ -63,7 +63,7 @@
|
||||||
#define configTICK_RATE_HZ 1024
|
#define configTICK_RATE_HZ 1024
|
||||||
#define configMAX_PRIORITIES ( 3 )
|
#define configMAX_PRIORITIES ( 3 )
|
||||||
#define configMINIMAL_STACK_SIZE ( 120 )
|
#define configMINIMAL_STACK_SIZE ( 120 )
|
||||||
#define configTOTAL_HEAP_SIZE ( 1024*11 )
|
#define configTOTAL_HEAP_SIZE ( 1024*14 )
|
||||||
#define configMAX_TASK_NAME_LEN ( 4 )
|
#define configMAX_TASK_NAME_LEN ( 4 )
|
||||||
#define configUSE_16_BIT_TICKS 0
|
#define configUSE_16_BIT_TICKS 0
|
||||||
#define configIDLE_SHOULD_YIELD 1
|
#define configIDLE_SHOULD_YIELD 1
|
||||||
|
|
|
@ -34,9 +34,11 @@ void Battery::Update() {
|
||||||
|
|
||||||
// see https://forum.pine64.org/showthread.php?tid=8147
|
// see https://forum.pine64.org/showthread.php?tid=8147
|
||||||
voltage = (value * 2.0f) / (1024/3.0f);
|
voltage = (value * 2.0f) / (1024/3.0f);
|
||||||
percentRemaining = ((voltage - 3.55f)*100.0f)*3.9f;
|
int percentRemaining = ((voltage - 3.55f)*100.0f)*3.9f;
|
||||||
percentRemaining = std::max(percentRemaining, 0.0f);
|
percentRemaining = std::max(percentRemaining, 0);
|
||||||
percentRemaining = std::min(percentRemaining, 100.0f);
|
percentRemaining = std::min(percentRemaining, 100);
|
||||||
|
|
||||||
|
percentRemainingBuffer.insert(percentRemaining);
|
||||||
|
|
||||||
// NRF_LOG_INFO("BATTERY " NRF_LOG_FLOAT_MARKER " %% - " NRF_LOG_FLOAT_MARKER " v", NRF_LOG_FLOAT(percentRemaining), NRF_LOG_FLOAT(voltage));
|
// NRF_LOG_INFO("BATTERY " NRF_LOG_FLOAT_MARKER " %% - " NRF_LOG_FLOAT_MARKER " v", NRF_LOG_FLOAT(percentRemaining), NRF_LOG_FLOAT(voltage));
|
||||||
// NRF_LOG_INFO("POWER Charging : %d - Power : %d", isCharging, isPowerPresent);
|
// NRF_LOG_INFO("POWER Charging : %d - Power : %d", isCharging, isPowerPresent);
|
||||||
|
|
|
@ -1,14 +1,48 @@
|
||||||
#pragma once
|
#pragma once
|
||||||
#include <cstdint>
|
#include <cstdint>
|
||||||
#include <drivers/include/nrfx_saadc.h>
|
#include <drivers/include/nrfx_saadc.h>
|
||||||
|
#include <array>
|
||||||
|
#include <numeric>
|
||||||
|
|
||||||
namespace Pinetime {
|
namespace Pinetime {
|
||||||
namespace Controllers {
|
namespace Controllers {
|
||||||
|
/** A simple circular buffer that can be used to average
|
||||||
|
out the sensor values. The total capacity of the CircBuffer
|
||||||
|
is given as the template parameter N.
|
||||||
|
*/
|
||||||
|
template <int N>
|
||||||
|
class CircBuffer {
|
||||||
|
public:
|
||||||
|
CircBuffer() : arr{}, sz{}, cap{N}, head{} {}
|
||||||
|
/**
|
||||||
|
insert member function overwrites the next data to the current
|
||||||
|
HEAD and moves the HEAD to the newly inserted value.
|
||||||
|
*/
|
||||||
|
void insert(const int num) {
|
||||||
|
head %= cap;
|
||||||
|
arr[head++] = num;
|
||||||
|
if (sz != cap) {
|
||||||
|
sz++;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
int GetAverage() const {
|
||||||
|
int sum = std::accumulate(arr.begin(), arr.end(), 0);
|
||||||
|
return (sum / sz);
|
||||||
|
}
|
||||||
|
|
||||||
|
private:
|
||||||
|
std::array<int, N> arr; /**< internal array used to store the values*/
|
||||||
|
uint8_t sz; /**< The current size of the array.*/
|
||||||
|
uint8_t cap; /**< Total capacity of the CircBuffer.*/
|
||||||
|
uint8_t head; /**< The current head of the CircBuffer*/
|
||||||
|
};
|
||||||
|
|
||||||
class Battery {
|
class Battery {
|
||||||
public:
|
public:
|
||||||
void Init();
|
void Init();
|
||||||
void Update();
|
void Update();
|
||||||
float PercentRemaining() const { return percentRemaining; }
|
int PercentRemaining() const { return percentRemainingBuffer.GetAverage(); }
|
||||||
float Voltage() const { return voltage; }
|
float Voltage() const { return voltage; }
|
||||||
bool IsCharging() const { return isCharging; }
|
bool IsCharging() const { return isCharging; }
|
||||||
bool IsPowerPresent() const { return isPowerPresent; }
|
bool IsPowerPresent() const { return isPowerPresent; }
|
||||||
|
@ -17,8 +51,9 @@ namespace Pinetime {
|
||||||
static constexpr uint32_t chargingPin = 12;
|
static constexpr uint32_t chargingPin = 12;
|
||||||
static constexpr uint32_t powerPresentPin = 19;
|
static constexpr uint32_t powerPresentPin = 19;
|
||||||
static constexpr nrf_saadc_input_t batteryVoltageAdcInput = NRF_SAADC_INPUT_AIN7;
|
static constexpr nrf_saadc_input_t batteryVoltageAdcInput = NRF_SAADC_INPUT_AIN7;
|
||||||
|
static constexpr uint8_t percentRemainingSamples = 10;
|
||||||
static void SaadcEventHandler(nrfx_saadc_evt_t const * p_event);
|
static void SaadcEventHandler(nrfx_saadc_evt_t const * p_event);
|
||||||
float percentRemaining = 0.0f;
|
CircBuffer<percentRemainingSamples> percentRemainingBuffer {};
|
||||||
float voltage = 0.0f;
|
float voltage = 0.0f;
|
||||||
bool isCharging = false;
|
bool isCharging = false;
|
||||||
bool isPowerPresent = false;
|
bool isPowerPresent = false;
|
||||||
|
|
82
src/components/ble/HeartRateService.cpp
Normal file
|
@ -0,0 +1,82 @@
|
||||||
|
#include "HeartRateService.h"
|
||||||
|
#include "components/heartrate/HeartRateController.h"
|
||||||
|
#include "systemtask/SystemTask.h"
|
||||||
|
|
||||||
|
using namespace Pinetime::Controllers;
|
||||||
|
|
||||||
|
constexpr ble_uuid16_t HeartRateService::heartRateServiceUuid;
|
||||||
|
constexpr ble_uuid16_t HeartRateService::heartRateMeasurementUuid;
|
||||||
|
|
||||||
|
namespace {
|
||||||
|
int HeartRateServiceServiceCallback(uint16_t conn_handle, uint16_t attr_handle, struct ble_gatt_access_ctxt *ctxt, void *arg) {
|
||||||
|
auto* heartRateService = static_cast<HeartRateService*>(arg);
|
||||||
|
return heartRateService->OnHeartRateRequested(conn_handle, attr_handle, ctxt);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// TODO Refactoring - remove dependency to SystemTask
|
||||||
|
HeartRateService::HeartRateService(Pinetime::System::SystemTask &system, Controllers::HeartRateController& heartRateController) :
|
||||||
|
system{system},
|
||||||
|
heartRateController{heartRateController},
|
||||||
|
characteristicDefinition{
|
||||||
|
{
|
||||||
|
.uuid = (ble_uuid_t *) &heartRateMeasurementUuid,
|
||||||
|
.access_cb = HeartRateServiceServiceCallback,
|
||||||
|
.arg = this,
|
||||||
|
.flags = BLE_GATT_CHR_F_READ | BLE_GATT_CHR_F_NOTIFY,
|
||||||
|
.val_handle = &heartRateMeasurementHandle
|
||||||
|
},
|
||||||
|
{
|
||||||
|
0
|
||||||
|
}
|
||||||
|
},
|
||||||
|
serviceDefinition{
|
||||||
|
{
|
||||||
|
/* Device Information Service */
|
||||||
|
.type = BLE_GATT_SVC_TYPE_PRIMARY,
|
||||||
|
.uuid = (ble_uuid_t *) &heartRateServiceUuid,
|
||||||
|
.characteristics = characteristicDefinition
|
||||||
|
},
|
||||||
|
{
|
||||||
|
0
|
||||||
|
},
|
||||||
|
}{
|
||||||
|
// TODO refactor to prevent this loop dependency (service depends on controller and controller depends on service)
|
||||||
|
heartRateController.SetService(this);
|
||||||
|
}
|
||||||
|
|
||||||
|
void HeartRateService::Init() {
|
||||||
|
int res = 0;
|
||||||
|
res = ble_gatts_count_cfg(serviceDefinition);
|
||||||
|
ASSERT(res == 0);
|
||||||
|
|
||||||
|
res = ble_gatts_add_svcs(serviceDefinition);
|
||||||
|
ASSERT(res == 0);
|
||||||
|
}
|
||||||
|
|
||||||
|
int HeartRateService::OnHeartRateRequested(uint16_t connectionHandle, uint16_t attributeHandle,
|
||||||
|
ble_gatt_access_ctxt *context) {
|
||||||
|
if(attributeHandle == heartRateMeasurementHandle) {
|
||||||
|
NRF_LOG_INFO("BATTERY : handle = %d", heartRateMeasurementHandle);
|
||||||
|
static uint8_t batteryValue = heartRateController.HeartRate();
|
||||||
|
|
||||||
|
uint8_t buffer[2] = {0, heartRateController.HeartRate()}; // [0] = flags, [1] = hr value
|
||||||
|
|
||||||
|
int res = os_mbuf_append(context->om, buffer, 2);
|
||||||
|
return (res == 0) ? 0 : BLE_ATT_ERR_INSUFFICIENT_RES;
|
||||||
|
}
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
void HeartRateService::OnNewHeartRateValue(uint8_t heartRateValue) {
|
||||||
|
uint8_t buffer[2] = {0, heartRateController.HeartRate()}; // [0] = flags, [1] = hr value
|
||||||
|
auto *om = ble_hs_mbuf_from_flat(buffer, 2);
|
||||||
|
|
||||||
|
uint16_t connectionHandle = system.nimble().connHandle();
|
||||||
|
|
||||||
|
if (connectionHandle == 0 || connectionHandle == BLE_HS_CONN_HANDLE_NONE) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
ble_gattc_notify_custom(connectionHandle, heartRateMeasurementHandle, om);
|
||||||
|
}
|
44
src/components/ble/HeartRateService.h
Normal file
|
@ -0,0 +1,44 @@
|
||||||
|
#pragma once
|
||||||
|
#define min // workaround: nimble's min/max macros conflict with libstdc++
|
||||||
|
#define max
|
||||||
|
#include <host/ble_gap.h>
|
||||||
|
#undef max
|
||||||
|
#undef min
|
||||||
|
|
||||||
|
namespace Pinetime {
|
||||||
|
namespace System {
|
||||||
|
class SystemTask;
|
||||||
|
}
|
||||||
|
namespace Controllers {
|
||||||
|
class HeartRateController;
|
||||||
|
class HeartRateService {
|
||||||
|
public:
|
||||||
|
HeartRateService(Pinetime::System::SystemTask &system, Controllers::HeartRateController& heartRateController);
|
||||||
|
void Init();
|
||||||
|
int OnHeartRateRequested(uint16_t connectionHandle, uint16_t attributeHandle, ble_gatt_access_ctxt *context);
|
||||||
|
void OnNewHeartRateValue(uint8_t hearRateValue);
|
||||||
|
|
||||||
|
private:
|
||||||
|
Pinetime::System::SystemTask &system;
|
||||||
|
Controllers::HeartRateController& heartRateController;
|
||||||
|
static constexpr uint16_t heartRateServiceId {0x180D};
|
||||||
|
static constexpr uint16_t heartRateMeasurementId {0x2A37};
|
||||||
|
|
||||||
|
static constexpr ble_uuid16_t heartRateServiceUuid {
|
||||||
|
.u {.type = BLE_UUID_TYPE_16},
|
||||||
|
.value = heartRateServiceId
|
||||||
|
};
|
||||||
|
|
||||||
|
static constexpr ble_uuid16_t heartRateMeasurementUuid {
|
||||||
|
.u {.type = BLE_UUID_TYPE_16},
|
||||||
|
.value = heartRateMeasurementId
|
||||||
|
};
|
||||||
|
|
||||||
|
struct ble_gatt_chr_def characteristicDefinition[3];
|
||||||
|
struct ble_gatt_svc_def serviceDefinition[2];
|
||||||
|
|
||||||
|
uint16_t heartRateMeasurementHandle;
|
||||||
|
|
||||||
|
};
|
||||||
|
}
|
||||||
|
}
|
|
@ -24,32 +24,68 @@ int MSCallback(uint16_t conn_handle, uint16_t attr_handle, struct ble_gatt_acces
|
||||||
}
|
}
|
||||||
|
|
||||||
Pinetime::Controllers::MusicService::MusicService(Pinetime::System::SystemTask &system) : m_system(system) {
|
Pinetime::Controllers::MusicService::MusicService(Pinetime::System::SystemTask &system) : m_system(system) {
|
||||||
msUuid.value[11] = msId[0];
|
msUuid.value[14] = msId[0];
|
||||||
msUuid.value[12] = msId[1];
|
msUuid.value[15] = msId[1];
|
||||||
msEventCharUuid.value[11] = msEventCharId[0];
|
|
||||||
msEventCharUuid.value[12] = msEventCharId[1];
|
msEventCharUuid.value[12] = msEventCharId[0];
|
||||||
msStatusCharUuid.value[11] = msStatusCharId[0];
|
msEventCharUuid.value[13] = msEventCharId[1];
|
||||||
msStatusCharUuid.value[12] = msStatusCharId[1];
|
msEventCharUuid.value[14] = msId[0];
|
||||||
msTrackCharUuid.value[11] = msTrackCharId[0];
|
msEventCharUuid.value[15] = msId[1];
|
||||||
msTrackCharUuid.value[12] = msTrackCharId[1];
|
|
||||||
msArtistCharUuid.value[11] = msArtistCharId[0];
|
msStatusCharUuid.value[12] = msStatusCharId[0];
|
||||||
msArtistCharUuid.value[12] = msArtistCharId[1];
|
msStatusCharUuid.value[13] = msStatusCharId[1];
|
||||||
msAlbumCharUuid.value[11] = msAlbumCharId[0];
|
msStatusCharUuid.value[14] = msId[0];
|
||||||
msAlbumCharUuid.value[12] = msAlbumCharId[1];
|
msStatusCharUuid.value[15] = msId[1];
|
||||||
msPositionCharUuid.value[11] = msPositionCharId[0];
|
|
||||||
msPositionCharUuid.value[12] = msPositionCharId[1];
|
msTrackCharUuid.value[12] = msTrackCharId[0];
|
||||||
msTotalLengthCharUuid.value[11] = msTotalLengthCharId[0];
|
msTrackCharUuid.value[13] = msTrackCharId[1];
|
||||||
msTotalLengthCharUuid.value[12] = msTotalLengthCharId[1];
|
msTrackCharUuid.value[14] = msId[0];
|
||||||
msTrackNumberCharUuid.value[11] = msTrackNumberCharId[0];
|
msTrackCharUuid.value[15] = msId[1];
|
||||||
msTrackNumberCharUuid.value[12] = msTrackNumberCharId[1];
|
|
||||||
msTrackTotalCharUuid.value[11] = msTrackTotalCharId[0];
|
msArtistCharUuid.value[12] = msArtistCharId[0];
|
||||||
msTrackTotalCharUuid.value[12] = msTrackTotalCharId[1];
|
msArtistCharUuid.value[13] = msArtistCharId[1];
|
||||||
msPlaybackSpeedCharUuid.value[11] = msPlaybackSpeedCharId[0];
|
msArtistCharUuid.value[14] = msId[0];
|
||||||
msPlaybackSpeedCharUuid.value[12] = msPlaybackSpeedCharId[1];
|
msArtistCharUuid.value[15] = msId[1];
|
||||||
msRepeatCharUuid.value[11] = msRepeatCharId[0];
|
|
||||||
msRepeatCharUuid.value[12] = msRepeatCharId[1];
|
msAlbumCharUuid.value[12] = msAlbumCharId[0];
|
||||||
msShuffleCharUuid.value[11] = msShuffleCharId[0];
|
msAlbumCharUuid.value[13] = msAlbumCharId[1];
|
||||||
msShuffleCharUuid.value[12] = msShuffleCharId[1];
|
msAlbumCharUuid.value[14] = msId[0];
|
||||||
|
msAlbumCharUuid.value[15] = msId[1];
|
||||||
|
|
||||||
|
msPositionCharUuid.value[12] = msPositionCharId[0];
|
||||||
|
msPositionCharUuid.value[13] = msPositionCharId[1];
|
||||||
|
msPositionCharUuid.value[14] = msId[0];
|
||||||
|
msPositionCharUuid.value[15] = msId[1];
|
||||||
|
|
||||||
|
msTotalLengthCharUuid.value[12] = msTotalLengthCharId[0];
|
||||||
|
msTotalLengthCharUuid.value[13] = msTotalLengthCharId[1];
|
||||||
|
msTotalLengthCharUuid.value[14] = msId[0];
|
||||||
|
msTotalLengthCharUuid.value[15] = msId[1];
|
||||||
|
|
||||||
|
msTrackNumberCharUuid.value[12] = msTrackNumberCharId[0];
|
||||||
|
msTrackNumberCharUuid.value[13] = msTrackNumberCharId[1];
|
||||||
|
msTrackNumberCharUuid.value[14] = msId[0];
|
||||||
|
msTrackNumberCharUuid.value[15] = msId[1];
|
||||||
|
|
||||||
|
msTrackTotalCharUuid.value[12] = msTrackTotalCharId[0];
|
||||||
|
msTrackTotalCharUuid.value[13] = msTrackTotalCharId[1];
|
||||||
|
msTrackTotalCharUuid.value[14] = msId[0];
|
||||||
|
msTrackTotalCharUuid.value[15] = msId[1];
|
||||||
|
|
||||||
|
msPlaybackSpeedCharUuid.value[12] = msPlaybackSpeedCharId[0];
|
||||||
|
msPlaybackSpeedCharUuid.value[13] = msPlaybackSpeedCharId[1];
|
||||||
|
msPlaybackSpeedCharUuid.value[14] = msId[0];
|
||||||
|
msPlaybackSpeedCharUuid.value[15] = msId[1];
|
||||||
|
|
||||||
|
msRepeatCharUuid.value[12] = msRepeatCharId[0];
|
||||||
|
msRepeatCharUuid.value[13] = msRepeatCharId[1];
|
||||||
|
msRepeatCharUuid.value[14] = msId[0];
|
||||||
|
msRepeatCharUuid.value[15] = msId[1];
|
||||||
|
|
||||||
|
msShuffleCharUuid.value[12] = msShuffleCharId[0];
|
||||||
|
msShuffleCharUuid.value[13] = msShuffleCharId[1];
|
||||||
|
msShuffleCharUuid.value[14] = msId[0];
|
||||||
|
msShuffleCharUuid.value[15] = msId[1];
|
||||||
|
|
||||||
characteristicDefinition[0] = {.uuid = (ble_uuid_t *) (&msEventCharUuid),
|
characteristicDefinition[0] = {.uuid = (ble_uuid_t *) (&msEventCharUuid),
|
||||||
.access_cb = MSCallback,
|
.access_cb = MSCallback,
|
||||||
|
|
|
@ -26,8 +26,8 @@
|
||||||
#undef max
|
#undef max
|
||||||
#undef min
|
#undef min
|
||||||
|
|
||||||
//c7e50000-78fc-48fe-8e23-43b37a1942d0
|
//00000000-78fc-48fe-8e23-433b3a1942d0
|
||||||
#define MUSIC_SERVICE_UUID_BASE {0xd0, 0x42, 0x19, 0x3a, 0x3b, 0x43, 0x23, 0x8e, 0xfe, 0x48, 0xfc, 0x78, 0x00, 0x00, 0xe5, 0xc7}
|
#define MUSIC_SERVICE_UUID_BASE {0xd0, 0x42, 0x19, 0x3a, 0x3b, 0x43, 0x23, 0x8e, 0xfe, 0x48, 0xfc, 0x78, 0x00, 0x00, 0x00, 0x00}
|
||||||
|
|
||||||
namespace Pinetime {
|
namespace Pinetime {
|
||||||
namespace System {
|
namespace System {
|
||||||
|
@ -73,19 +73,19 @@ namespace Pinetime {
|
||||||
Playing = 0x01
|
Playing = 0x01
|
||||||
};
|
};
|
||||||
private:
|
private:
|
||||||
static constexpr uint8_t msId[2] = {0x00, 0x01};
|
static constexpr uint8_t msId[2] = {0x00, 0x00};
|
||||||
static constexpr uint8_t msEventCharId[2] = {0x00, 0x02};
|
static constexpr uint8_t msEventCharId[2] = {0x01, 0x00};
|
||||||
static constexpr uint8_t msStatusCharId[2] = {0x00, 0x03};
|
static constexpr uint8_t msStatusCharId[2] = {0x02, 0x00};
|
||||||
static constexpr uint8_t msArtistCharId[2] = {0x00, 0x04};
|
static constexpr uint8_t msArtistCharId[2] = {0x03, 0x00};
|
||||||
static constexpr uint8_t msTrackCharId[2] = {0x00, 0x05};
|
static constexpr uint8_t msTrackCharId[2] = {0x04, 0x00};
|
||||||
static constexpr uint8_t msAlbumCharId[2] = {0x00, 0x06};
|
static constexpr uint8_t msAlbumCharId[2] = {0x05, 0x00};
|
||||||
static constexpr uint8_t msPositionCharId[2] = {0x00, 0x07};
|
static constexpr uint8_t msPositionCharId[2] = {0x06, 0x00};
|
||||||
static constexpr uint8_t msTotalLengthCharId[2] = {0x00, 0x08};
|
static constexpr uint8_t msTotalLengthCharId[2] = {0x07, 0x00};
|
||||||
static constexpr uint8_t msTrackNumberCharId[2] = {0x00, 0x09};
|
static constexpr uint8_t msTrackNumberCharId[2] = {0x08, 0x00};
|
||||||
static constexpr uint8_t msTrackTotalCharId[2] = {0x00, 0x0a};
|
static constexpr uint8_t msTrackTotalCharId[2] = {0x09, 0x00};
|
||||||
static constexpr uint8_t msPlaybackSpeedCharId[2] = {0x00, 0x0b};
|
static constexpr uint8_t msPlaybackSpeedCharId[2] = {0x0a, 0x00};
|
||||||
static constexpr uint8_t msRepeatCharId[2] = {0x00, 0x0c};
|
static constexpr uint8_t msRepeatCharId[2] = {0x0b, 0x00};
|
||||||
static constexpr uint8_t msShuffleCharId[2] = {0x00, 0x0d};
|
static constexpr uint8_t msShuffleCharId[2] = {0x0c, 0x00};
|
||||||
|
|
||||||
ble_uuid128_t msUuid{
|
ble_uuid128_t msUuid{
|
||||||
.u = {.type = BLE_UUID_TYPE_128},
|
.u = {.type = BLE_UUID_TYPE_128},
|
||||||
|
|
137
src/components/ble/NavigationService.cpp
Normal file
|
@ -0,0 +1,137 @@
|
||||||
|
/* Copyright (C) 2021 Adam Pigg
|
||||||
|
|
||||||
|
This file is part of InfiniTime.
|
||||||
|
|
||||||
|
InfiniTime is free software: you can redistribute it and/or modify
|
||||||
|
it under the terms of the GNU General Public License as published
|
||||||
|
by the Free Software Foundation, either version 3 of the License, or
|
||||||
|
(at your option) any later version.
|
||||||
|
|
||||||
|
InfiniTime is distributed in the hope that it will be useful,
|
||||||
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
GNU General Public License for more details.
|
||||||
|
|
||||||
|
You should have received a copy of the GNU General Public License
|
||||||
|
along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include "NavigationService.h"
|
||||||
|
|
||||||
|
#include "systemtask/SystemTask.h"
|
||||||
|
|
||||||
|
int NAVCallback(uint16_t conn_handle, uint16_t attr_handle, struct ble_gatt_access_ctxt *ctxt, void *arg) {
|
||||||
|
auto navService = static_cast<Pinetime::Controllers::NavigationService *>(arg);
|
||||||
|
return navService->OnCommand(conn_handle, attr_handle, ctxt);
|
||||||
|
}
|
||||||
|
|
||||||
|
Pinetime::Controllers::NavigationService::NavigationService(Pinetime::System::SystemTask &system) : m_system(system) {
|
||||||
|
navUuid.value[14] = navId[0];
|
||||||
|
navUuid.value[15] = navId[1];
|
||||||
|
|
||||||
|
navFlagCharUuid.value[12] = navFlagCharId[0];
|
||||||
|
navFlagCharUuid.value[13] = navFlagCharId[1];
|
||||||
|
navFlagCharUuid.value[14] = navId[0];
|
||||||
|
navFlagCharUuid.value[15] = navId[1];
|
||||||
|
|
||||||
|
navNarrativeCharUuid.value[12] = navNarrativeCharId[0];
|
||||||
|
navNarrativeCharUuid.value[13] = navNarrativeCharId[1];
|
||||||
|
navNarrativeCharUuid.value[14] = navId[0];
|
||||||
|
navNarrativeCharUuid.value[15] = navId[1];
|
||||||
|
|
||||||
|
navManDistCharUuid.value[12] = navManDistCharId[0];
|
||||||
|
navManDistCharUuid.value[13] = navManDistCharId[1];
|
||||||
|
navManDistCharUuid.value[14] = navId[0];
|
||||||
|
navManDistCharUuid.value[15] = navId[1];
|
||||||
|
|
||||||
|
navProgressCharUuid.value[12] = navProgressCharId[0];
|
||||||
|
navProgressCharUuid.value[13] = navProgressCharId[1];
|
||||||
|
navProgressCharUuid.value[14] = navId[0];
|
||||||
|
navProgressCharUuid.value[15] = navId[1];
|
||||||
|
|
||||||
|
characteristicDefinition[0] = {.uuid = (ble_uuid_t *) (&navFlagCharUuid),
|
||||||
|
.access_cb = NAVCallback,
|
||||||
|
.arg = this,
|
||||||
|
.flags = BLE_GATT_CHR_F_WRITE | BLE_GATT_CHR_F_READ
|
||||||
|
};
|
||||||
|
|
||||||
|
characteristicDefinition[1] = {.uuid = (ble_uuid_t *) (&navNarrativeCharUuid),
|
||||||
|
.access_cb = NAVCallback,
|
||||||
|
.arg = this,
|
||||||
|
.flags = BLE_GATT_CHR_F_WRITE | BLE_GATT_CHR_F_READ
|
||||||
|
};
|
||||||
|
characteristicDefinition[2] = {.uuid = (ble_uuid_t *) (&navManDistCharUuid),
|
||||||
|
.access_cb = NAVCallback,
|
||||||
|
.arg = this,
|
||||||
|
.flags = BLE_GATT_CHR_F_WRITE | BLE_GATT_CHR_F_READ
|
||||||
|
};
|
||||||
|
characteristicDefinition[3] = {.uuid = (ble_uuid_t *) (&navProgressCharUuid),
|
||||||
|
.access_cb = NAVCallback,
|
||||||
|
.arg = this,
|
||||||
|
.flags = BLE_GATT_CHR_F_WRITE | BLE_GATT_CHR_F_READ
|
||||||
|
};
|
||||||
|
|
||||||
|
characteristicDefinition[4] = {0};
|
||||||
|
|
||||||
|
serviceDefinition[0] = {
|
||||||
|
.type = BLE_GATT_SVC_TYPE_PRIMARY,
|
||||||
|
.uuid = (ble_uuid_t *) &navUuid,
|
||||||
|
.characteristics = characteristicDefinition
|
||||||
|
};
|
||||||
|
serviceDefinition[1] = {0};
|
||||||
|
|
||||||
|
m_progress = 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
void Pinetime::Controllers::NavigationService::Init() {
|
||||||
|
int res = 0;
|
||||||
|
res = ble_gatts_count_cfg(serviceDefinition);
|
||||||
|
ASSERT(res == 0);
|
||||||
|
|
||||||
|
res = ble_gatts_add_svcs(serviceDefinition);
|
||||||
|
ASSERT(res == 0);
|
||||||
|
}
|
||||||
|
|
||||||
|
int Pinetime::Controllers::NavigationService::OnCommand(uint16_t conn_handle, uint16_t attr_handle,
|
||||||
|
struct ble_gatt_access_ctxt *ctxt) {
|
||||||
|
|
||||||
|
if (ctxt->op == BLE_GATT_ACCESS_OP_WRITE_CHR) {
|
||||||
|
size_t notifSize = OS_MBUF_PKTLEN(ctxt->om);
|
||||||
|
uint8_t data[notifSize + 1];
|
||||||
|
data[notifSize] = '\0';
|
||||||
|
os_mbuf_copydata(ctxt->om, 0, notifSize, data);
|
||||||
|
char *s = (char *) &data[0];
|
||||||
|
NRF_LOG_INFO("DATA : %s", s);
|
||||||
|
if (ble_uuid_cmp(ctxt->chr->uuid, (ble_uuid_t *) &navFlagCharUuid) == 0) {
|
||||||
|
m_flag = s;
|
||||||
|
} else if (ble_uuid_cmp(ctxt->chr->uuid, (ble_uuid_t *) &navNarrativeCharUuid) == 0) {
|
||||||
|
m_narrative = s;
|
||||||
|
} else if (ble_uuid_cmp(ctxt->chr->uuid, (ble_uuid_t *) &navManDistCharUuid) == 0) {
|
||||||
|
m_manDist = s;
|
||||||
|
} else if (ble_uuid_cmp(ctxt->chr->uuid, (ble_uuid_t *) &navProgressCharUuid) == 0) {
|
||||||
|
m_progress = data[0];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
std::string Pinetime::Controllers::NavigationService::getFlag()
|
||||||
|
{
|
||||||
|
return m_flag;
|
||||||
|
}
|
||||||
|
|
||||||
|
std::string Pinetime::Controllers::NavigationService::getNarrative()
|
||||||
|
{
|
||||||
|
return m_narrative;
|
||||||
|
}
|
||||||
|
|
||||||
|
std::string Pinetime::Controllers::NavigationService::getManDist()
|
||||||
|
{
|
||||||
|
return m_manDist;
|
||||||
|
}
|
||||||
|
|
||||||
|
int Pinetime::Controllers::NavigationService::getProgress()
|
||||||
|
{
|
||||||
|
return m_progress;
|
||||||
|
}
|
||||||
|
|
96
src/components/ble/NavigationService.h
Normal file
|
@ -0,0 +1,96 @@
|
||||||
|
/* Copyright (C) 2021 Adam Pigg
|
||||||
|
|
||||||
|
This file is part of InfiniTime.
|
||||||
|
|
||||||
|
InfiniTime is free software: you can redistribute it and/or modify
|
||||||
|
it under the terms of the GNU General Public License as published
|
||||||
|
by the Free Software Foundation, either version 3 of the License, or
|
||||||
|
(at your option) any later version.
|
||||||
|
|
||||||
|
InfiniTime is distributed in the hope that it will be useful,
|
||||||
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
GNU General Public License for more details.
|
||||||
|
|
||||||
|
You should have received a copy of the GNU General Public License
|
||||||
|
along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
#pragma once
|
||||||
|
|
||||||
|
#include <cstdint>
|
||||||
|
#include <string>
|
||||||
|
#define min // workaround: nimble's min/max macros conflict with libstdc++
|
||||||
|
#define max
|
||||||
|
#include <host/ble_gap.h>
|
||||||
|
#include <host/ble_uuid.h>
|
||||||
|
#undef max
|
||||||
|
#undef min
|
||||||
|
|
||||||
|
//c7e60000-78fc-48fe-8e23-433b3a1942d0
|
||||||
|
#define NAVIGATION_SERVICE_UUID_BASE {0xd0, 0x42, 0x19, 0x3a, 0x3b, 0x43, 0x23, 0x8e, 0xfe, 0x48, 0xfc, 0x78, 0x00, 0x00, 0x00, 0x00}
|
||||||
|
|
||||||
|
namespace Pinetime {
|
||||||
|
namespace System {
|
||||||
|
class SystemTask;
|
||||||
|
}
|
||||||
|
namespace Controllers {
|
||||||
|
|
||||||
|
class NavigationService {
|
||||||
|
public:
|
||||||
|
explicit NavigationService(Pinetime::System::SystemTask &system);
|
||||||
|
|
||||||
|
void Init();
|
||||||
|
|
||||||
|
int OnCommand(uint16_t conn_handle, uint16_t attr_handle,
|
||||||
|
struct ble_gatt_access_ctxt *ctxt);
|
||||||
|
|
||||||
|
std::string getFlag();
|
||||||
|
|
||||||
|
std::string getNarrative();
|
||||||
|
|
||||||
|
std::string getManDist();
|
||||||
|
|
||||||
|
int getProgress();
|
||||||
|
|
||||||
|
private:
|
||||||
|
static constexpr uint8_t navId[2] = {0x01, 0x00};
|
||||||
|
static constexpr uint8_t navFlagCharId[2] = {0x01, 0x00};
|
||||||
|
static constexpr uint8_t navNarrativeCharId[2] = {0x02, 0x00};
|
||||||
|
static constexpr uint8_t navManDistCharId[2] = {0x03, 0x00};
|
||||||
|
static constexpr uint8_t navProgressCharId[2] = {0x04, 0x00};
|
||||||
|
|
||||||
|
ble_uuid128_t navUuid{
|
||||||
|
.u = {.type = BLE_UUID_TYPE_128},
|
||||||
|
.value = NAVIGATION_SERVICE_UUID_BASE
|
||||||
|
};
|
||||||
|
|
||||||
|
ble_uuid128_t navFlagCharUuid{
|
||||||
|
.u = {.type = BLE_UUID_TYPE_128},
|
||||||
|
.value = NAVIGATION_SERVICE_UUID_BASE
|
||||||
|
};
|
||||||
|
ble_uuid128_t navNarrativeCharUuid{
|
||||||
|
.u = {.type = BLE_UUID_TYPE_128},
|
||||||
|
.value = NAVIGATION_SERVICE_UUID_BASE
|
||||||
|
};
|
||||||
|
ble_uuid128_t navManDistCharUuid{
|
||||||
|
.u = {.type = BLE_UUID_TYPE_128},
|
||||||
|
.value = NAVIGATION_SERVICE_UUID_BASE
|
||||||
|
};
|
||||||
|
ble_uuid128_t navProgressCharUuid{
|
||||||
|
.u = {.type = BLE_UUID_TYPE_128},
|
||||||
|
.value = NAVIGATION_SERVICE_UUID_BASE
|
||||||
|
};
|
||||||
|
|
||||||
|
struct ble_gatt_chr_def characteristicDefinition[5];
|
||||||
|
struct ble_gatt_svc_def serviceDefinition[2];
|
||||||
|
|
||||||
|
std::string m_flag;
|
||||||
|
std::string m_narrative;
|
||||||
|
std::string m_manDist;
|
||||||
|
int m_progress;
|
||||||
|
|
||||||
|
Pinetime::System::SystemTask &m_system;
|
||||||
|
};
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
|
@ -22,7 +22,8 @@ NimbleController::NimbleController(Pinetime::System::SystemTask& systemTask,
|
||||||
DateTime& dateTimeController,
|
DateTime& dateTimeController,
|
||||||
Pinetime::Controllers::NotificationManager& notificationManager,
|
Pinetime::Controllers::NotificationManager& notificationManager,
|
||||||
Controllers::Battery& batteryController,
|
Controllers::Battery& batteryController,
|
||||||
Pinetime::Drivers::SpiNorFlash& spiNorFlash) :
|
Pinetime::Drivers::SpiNorFlash& spiNorFlash,
|
||||||
|
Controllers::HeartRateController& heartRateController) :
|
||||||
systemTask{systemTask},
|
systemTask{systemTask},
|
||||||
bleController{bleController},
|
bleController{bleController},
|
||||||
dateTimeController{dateTimeController},
|
dateTimeController{dateTimeController},
|
||||||
|
@ -34,9 +35,11 @@ NimbleController::NimbleController(Pinetime::System::SystemTask& systemTask,
|
||||||
alertNotificationClient{systemTask, notificationManager},
|
alertNotificationClient{systemTask, notificationManager},
|
||||||
currentTimeService{dateTimeController},
|
currentTimeService{dateTimeController},
|
||||||
musicService{systemTask},
|
musicService{systemTask},
|
||||||
|
navService{systemTask},
|
||||||
batteryInformationService{batteryController},
|
batteryInformationService{batteryController},
|
||||||
immediateAlertService{systemTask, notificationManager},
|
immediateAlertService{systemTask, notificationManager},
|
||||||
serviceDiscovery({¤tTimeClient, &alertNotificationClient}) {
|
serviceDiscovery({¤tTimeClient, &alertNotificationClient}),
|
||||||
|
heartRateService{systemTask, heartRateController} {
|
||||||
}
|
}
|
||||||
|
|
||||||
int GAPEventCallback(struct ble_gap_event *event, void *arg) {
|
int GAPEventCallback(struct ble_gap_event *event, void *arg) {
|
||||||
|
@ -54,10 +57,12 @@ void NimbleController::Init() {
|
||||||
currentTimeClient.Init();
|
currentTimeClient.Init();
|
||||||
currentTimeService.Init();
|
currentTimeService.Init();
|
||||||
musicService.Init();
|
musicService.Init();
|
||||||
|
navService.Init();
|
||||||
anService.Init();
|
anService.Init();
|
||||||
dfuService.Init();
|
dfuService.Init();
|
||||||
batteryInformationService.Init();
|
batteryInformationService.Init();
|
||||||
immediateAlertService.Init();
|
immediateAlertService.Init();
|
||||||
|
heartRateService.Init();
|
||||||
int res;
|
int res;
|
||||||
res = ble_hs_util_ensure_addr(0);
|
res = ble_hs_util_ensure_addr(0);
|
||||||
ASSERT(res == 0);
|
ASSERT(res == 0);
|
||||||
|
|
|
@ -16,7 +16,9 @@
|
||||||
#include "DfuService.h"
|
#include "DfuService.h"
|
||||||
#include "ImmediateAlertService.h"
|
#include "ImmediateAlertService.h"
|
||||||
#include "MusicService.h"
|
#include "MusicService.h"
|
||||||
|
#include "NavigationService.h"
|
||||||
#include "ServiceDiscovery.h"
|
#include "ServiceDiscovery.h"
|
||||||
|
#include "HeartRateService.h"
|
||||||
|
|
||||||
namespace Pinetime {
|
namespace Pinetime {
|
||||||
namespace Drivers {
|
namespace Drivers {
|
||||||
|
@ -37,7 +39,8 @@ namespace Pinetime {
|
||||||
public:
|
public:
|
||||||
NimbleController(Pinetime::System::SystemTask& systemTask, Pinetime::Controllers::Ble& bleController,
|
NimbleController(Pinetime::System::SystemTask& systemTask, Pinetime::Controllers::Ble& bleController,
|
||||||
DateTime& dateTimeController, Pinetime::Controllers::NotificationManager& notificationManager,
|
DateTime& dateTimeController, Pinetime::Controllers::NotificationManager& notificationManager,
|
||||||
Controllers::Battery& batteryController, Pinetime::Drivers::SpiNorFlash& spiNorFlash);
|
Controllers::Battery& batteryController, Pinetime::Drivers::SpiNorFlash& spiNorFlash,
|
||||||
|
Controllers::HeartRateController& heartRateController);
|
||||||
void Init();
|
void Init();
|
||||||
void StartAdvertising();
|
void StartAdvertising();
|
||||||
int OnGAPEvent(ble_gap_event *event);
|
int OnGAPEvent(ble_gap_event *event);
|
||||||
|
@ -54,6 +57,7 @@ namespace Pinetime {
|
||||||
void StartDiscovery();
|
void StartDiscovery();
|
||||||
|
|
||||||
Pinetime::Controllers::MusicService& music() {return musicService;};
|
Pinetime::Controllers::MusicService& music() {return musicService;};
|
||||||
|
Pinetime::Controllers::NavigationService& navigation() {return navService;};
|
||||||
|
|
||||||
uint16_t connHandle();
|
uint16_t connHandle();
|
||||||
|
|
||||||
|
@ -72,8 +76,10 @@ namespace Pinetime {
|
||||||
AlertNotificationClient alertNotificationClient;
|
AlertNotificationClient alertNotificationClient;
|
||||||
CurrentTimeService currentTimeService;
|
CurrentTimeService currentTimeService;
|
||||||
MusicService musicService;
|
MusicService musicService;
|
||||||
|
NavigationService navService;
|
||||||
BatteryInformationService batteryInformationService;
|
BatteryInformationService batteryInformationService;
|
||||||
ImmediateAlertService immediateAlertService;
|
ImmediateAlertService immediateAlertService;
|
||||||
|
HeartRateService heartRateService;
|
||||||
|
|
||||||
uint8_t addrType; // 1 = Random, 0 = PUBLIC
|
uint8_t addrType; // 1 = Random, 0 = PUBLIC
|
||||||
uint16_t connectionHandle = 0;
|
uint16_t connectionHandle = 0;
|
||||||
|
|
27
src/components/heartrate/Biquad.cpp
Normal file
|
@ -0,0 +1,27 @@
|
||||||
|
/*
|
||||||
|
SPDX-License-Identifier: LGPL-3.0-or-later
|
||||||
|
Original work Copyright (C) 2020 Daniel Thompson
|
||||||
|
C++ port Copyright (C) 2021 Jean-François Milants
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include "Biquad.h"
|
||||||
|
|
||||||
|
using namespace Pinetime::Controllers;
|
||||||
|
|
||||||
|
/** Original implementation from wasp-os : https://github.com/daniel-thompson/wasp-os/blob/master/wasp/ppg.py */
|
||||||
|
Biquad::Biquad(float b0, float b1, float b2, float a1, float a2) : b0{b0}, b1{b1}, b2{b2}, a1{a1}, a2{a2} {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
float Biquad::Step(float x) {
|
||||||
|
auto v1 = this->v1;
|
||||||
|
auto v2 = this->v2;
|
||||||
|
|
||||||
|
auto v = x - (a1 * v1) - (a2 * v2);
|
||||||
|
auto y = (b0 * v) + (b1 * v1) + (b2 * v2);
|
||||||
|
|
||||||
|
this->v2 = v1;
|
||||||
|
this->v1 = v;
|
||||||
|
|
||||||
|
return y;
|
||||||
|
}
|
22
src/components/heartrate/Biquad.h
Normal file
|
@ -0,0 +1,22 @@
|
||||||
|
#pragma once
|
||||||
|
|
||||||
|
namespace Pinetime {
|
||||||
|
namespace Controllers {
|
||||||
|
/// Direct Form II Biquad Filter
|
||||||
|
class Biquad {
|
||||||
|
public:
|
||||||
|
Biquad(float b0, float b1, float b2, float a1, float a2);
|
||||||
|
float Step(float x);
|
||||||
|
|
||||||
|
private:
|
||||||
|
float b0;
|
||||||
|
float b1;
|
||||||
|
float b2;
|
||||||
|
float a1;
|
||||||
|
float a2;
|
||||||
|
|
||||||
|
float v1 = 0.0f;
|
||||||
|
float v2 = 0.0f;
|
||||||
|
};
|
||||||
|
}
|
||||||
|
}
|
41
src/components/heartrate/HeartRateController.cpp
Normal file
|
@ -0,0 +1,41 @@
|
||||||
|
#include "HeartRateController.h"
|
||||||
|
#include <heartratetask/HeartRateTask.h>
|
||||||
|
#include <systemtask/SystemTask.h>
|
||||||
|
|
||||||
|
using namespace Pinetime::Controllers;
|
||||||
|
|
||||||
|
HeartRateController::HeartRateController(Pinetime::System::SystemTask &systemTask) : systemTask{systemTask} {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void HeartRateController::Update(HeartRateController::States newState, uint8_t heartRate) {
|
||||||
|
this->state = newState;
|
||||||
|
if(this->heartRate != heartRate) {
|
||||||
|
this->heartRate = heartRate;
|
||||||
|
service->OnNewHeartRateValue(heartRate);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void HeartRateController::Start() {
|
||||||
|
if(task != nullptr) {
|
||||||
|
state = States::NotEnoughData;
|
||||||
|
task->PushMessage(Pinetime::Applications::HeartRateTask::Messages::StartMeasurement);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void HeartRateController::Stop() {
|
||||||
|
if(task != nullptr) {
|
||||||
|
state = States::Stopped;
|
||||||
|
task->PushMessage(Pinetime::Applications::HeartRateTask::Messages::StopMeasurement);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void HeartRateController::SetHeartRateTask(Pinetime::Applications::HeartRateTask *task) {
|
||||||
|
this->task = task;
|
||||||
|
}
|
||||||
|
|
||||||
|
void HeartRateController::SetService(Pinetime::Controllers::HeartRateService *service) {
|
||||||
|
this->service = service;
|
||||||
|
}
|
||||||
|
|
38
src/components/heartrate/HeartRateController.h
Normal file
|
@ -0,0 +1,38 @@
|
||||||
|
#pragma once
|
||||||
|
|
||||||
|
#include <cstdint>
|
||||||
|
#include <components/ble/HeartRateService.h>
|
||||||
|
|
||||||
|
namespace Pinetime {
|
||||||
|
namespace Applications {
|
||||||
|
class HeartRateTask;
|
||||||
|
}
|
||||||
|
namespace System {
|
||||||
|
class SystemTask;
|
||||||
|
}
|
||||||
|
namespace Controllers {
|
||||||
|
class HeartRateController {
|
||||||
|
public:
|
||||||
|
enum class States { Stopped, NotEnoughData, NoTouch, Running};
|
||||||
|
|
||||||
|
explicit HeartRateController(System::SystemTask& systemTask);
|
||||||
|
|
||||||
|
void Start();
|
||||||
|
void Stop();
|
||||||
|
void Update(States newState, uint8_t heartRate);
|
||||||
|
|
||||||
|
void SetHeartRateTask(Applications::HeartRateTask* task);
|
||||||
|
States State() const { return state; }
|
||||||
|
uint8_t HeartRate() const { return heartRate; }
|
||||||
|
|
||||||
|
void SetService(Pinetime::Controllers::HeartRateService *service);
|
||||||
|
|
||||||
|
private:
|
||||||
|
System::SystemTask& systemTask;
|
||||||
|
Applications::HeartRateTask* task = nullptr;
|
||||||
|
States state = States::Stopped;
|
||||||
|
uint8_t heartRate = 0;
|
||||||
|
Pinetime::Controllers::HeartRateService* service = nullptr;
|
||||||
|
};
|
||||||
|
}
|
||||||
|
}
|
106
src/components/heartrate/Ppg.cpp
Normal file
|
@ -0,0 +1,106 @@
|
||||||
|
/*
|
||||||
|
SPDX-License-Identifier: LGPL-3.0-or-later
|
||||||
|
Original work Copyright (C) 2020 Daniel Thompson
|
||||||
|
C++ port Copyright (C) 2021 Jean-François Milants
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include <vector>
|
||||||
|
#include <nrf_log.h>
|
||||||
|
#include "Ppg.h"
|
||||||
|
using namespace Pinetime::Controllers;
|
||||||
|
|
||||||
|
/** Original implementation from wasp-os : https://github.com/daniel-thompson/wasp-os/blob/master/wasp/ppg.py */
|
||||||
|
namespace {
|
||||||
|
int Compare(int* d1, int* d2, size_t count) {
|
||||||
|
int e = 0;
|
||||||
|
for(int i = 0; i < count; i++) {
|
||||||
|
auto d = d1[i] - d2[i];
|
||||||
|
e += d * d;
|
||||||
|
}
|
||||||
|
return e;
|
||||||
|
}
|
||||||
|
|
||||||
|
int CompareShift(int* d, int shift, size_t count) {
|
||||||
|
return Compare(d +shift, d, count - shift);
|
||||||
|
}
|
||||||
|
|
||||||
|
int Trough(int* d, size_t size, float mn, float mx) {
|
||||||
|
auto z2 = CompareShift(d, mn-2, size);
|
||||||
|
auto z1 = CompareShift(d, mn-1, size);
|
||||||
|
for(int i = mn; i < mx + 1; i++) {
|
||||||
|
auto z = CompareShift(d, i, size);
|
||||||
|
if(z2 > z1 && z1 < z)
|
||||||
|
return i;
|
||||||
|
z2 = z1;
|
||||||
|
z1 = z;
|
||||||
|
}
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
Ppg::Ppg(float spl) : offset{spl},
|
||||||
|
hpf{0.87033078, -1.74066156, 0.87033078,-1.72377617, 0.75754694},
|
||||||
|
agc{20, 0.971, 2},
|
||||||
|
lpf{0.11595249, 0.23190498, 0.11595249,-0.72168143, 0.18549138} {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
int Ppg::Preprocess(float spl) {
|
||||||
|
spl -= offset;
|
||||||
|
spl = hpf.Step(spl);
|
||||||
|
spl = agc.Step(spl);
|
||||||
|
spl = lpf.Step(spl);
|
||||||
|
|
||||||
|
auto spl_int = static_cast<int>(spl);
|
||||||
|
|
||||||
|
if(dataIndex < 200)
|
||||||
|
data[dataIndex++] = spl_int;
|
||||||
|
return spl_int;
|
||||||
|
}
|
||||||
|
|
||||||
|
float Ppg::HeartRate() {
|
||||||
|
if(dataIndex < 200)
|
||||||
|
return 0;
|
||||||
|
|
||||||
|
NRF_LOG_INFO("PREPROCESS, offset = %d", offset);
|
||||||
|
auto hr = ProcessHeartRate();
|
||||||
|
dataIndex = 0;
|
||||||
|
return hr;
|
||||||
|
}
|
||||||
|
|
||||||
|
int cccount = 0;
|
||||||
|
float Ppg::ProcessHeartRate() {
|
||||||
|
|
||||||
|
if(cccount > 2)
|
||||||
|
asm("nop");
|
||||||
|
cccount ++;
|
||||||
|
auto t0 = Trough(data.data(), dataIndex, 7, 48);
|
||||||
|
if(t0 < 0)
|
||||||
|
return 0;
|
||||||
|
|
||||||
|
float t1 = t0 * 2;
|
||||||
|
t1 = Trough(data.data(), dataIndex, t1-5, t1+5);
|
||||||
|
if(t1 < 0)
|
||||||
|
return 0;
|
||||||
|
|
||||||
|
float t2 = static_cast<int>(t1 * 3) / 2;
|
||||||
|
t2 = Trough(data.data(), dataIndex, t2 - 5, t2 + 5);
|
||||||
|
if(t2 < 0)
|
||||||
|
return 0;
|
||||||
|
|
||||||
|
float t3 = static_cast<int>(t2 * 4) / 3;
|
||||||
|
t3 = Trough(data.data(), dataIndex, t3 - 4, t3 + 4);
|
||||||
|
if(t3 < 0)
|
||||||
|
return static_cast<int>(60 * 24 * 3) / static_cast<int>(t2);
|
||||||
|
|
||||||
|
return static_cast<int>(60 * 24 * 4) / static_cast<int>(t3);
|
||||||
|
}
|
||||||
|
|
||||||
|
void Ppg::SetOffset(uint16_t offset) {
|
||||||
|
this->offset = offset;
|
||||||
|
dataIndex = 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
void Ppg::Reset() {
|
||||||
|
dataIndex = 0;
|
||||||
|
}
|
31
src/components/heartrate/Ppg.h
Normal file
|
@ -0,0 +1,31 @@
|
||||||
|
#pragma once
|
||||||
|
|
||||||
|
#include <array>
|
||||||
|
#include "Biquad.h"
|
||||||
|
#include "Ptagc.h"
|
||||||
|
|
||||||
|
namespace Pinetime {
|
||||||
|
namespace Controllers {
|
||||||
|
class Ppg {
|
||||||
|
public:
|
||||||
|
explicit Ppg(float spl);
|
||||||
|
|
||||||
|
int Preprocess(float spl);
|
||||||
|
float HeartRate();
|
||||||
|
|
||||||
|
void SetOffset(uint16_t i);
|
||||||
|
void Reset();
|
||||||
|
|
||||||
|
private:
|
||||||
|
std::array<int, 200> data;
|
||||||
|
size_t dataIndex = 0;
|
||||||
|
float offset;
|
||||||
|
Biquad hpf;
|
||||||
|
Ptagc agc;
|
||||||
|
Biquad lpf;
|
||||||
|
|
||||||
|
|
||||||
|
float ProcessHeartRate();
|
||||||
|
};
|
||||||
|
}
|
||||||
|
}
|
28
src/components/heartrate/Ptagc.cpp
Normal file
|
@ -0,0 +1,28 @@
|
||||||
|
/*
|
||||||
|
SPDX-License-Identifier: LGPL-3.0-or-later
|
||||||
|
Original work Copyright (C) 2020 Daniel Thompson
|
||||||
|
C++ port Copyright (C) 2021 Jean-François Milants
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include <cmath>
|
||||||
|
#include "Ptagc.h"
|
||||||
|
|
||||||
|
using namespace Pinetime::Controllers;
|
||||||
|
|
||||||
|
/** Original implementation from wasp-os : https://github.com/daniel-thompson/wasp-os/blob/master/wasp/ppg.py */
|
||||||
|
Ptagc::Ptagc(float start, float decay, float threshold) : peak{start}, decay{decay}, boost{1.0f/decay}, threshold{threshold} {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
float Ptagc::Step(float spl) {
|
||||||
|
if(std::abs(spl) > peak)
|
||||||
|
peak *= boost;
|
||||||
|
else
|
||||||
|
peak *= decay;
|
||||||
|
|
||||||
|
if((spl > (peak * threshold)) || (spl < (peak * -threshold)))
|
||||||
|
return 0.0f;
|
||||||
|
|
||||||
|
spl = 100.0f * spl / (2.0f * peak);
|
||||||
|
return spl;
|
||||||
|
}
|
18
src/components/heartrate/Ptagc.h
Normal file
|
@ -0,0 +1,18 @@
|
||||||
|
#pragma once
|
||||||
|
|
||||||
|
namespace Pinetime {
|
||||||
|
namespace Controllers {
|
||||||
|
class Ptagc {
|
||||||
|
public:
|
||||||
|
Ptagc(float start, float decay, float threshold);
|
||||||
|
float Step(float spl);
|
||||||
|
|
||||||
|
private:
|
||||||
|
float peak;
|
||||||
|
float decay;
|
||||||
|
float boost;
|
||||||
|
float threshold;
|
||||||
|
|
||||||
|
};
|
||||||
|
}
|
||||||
|
}
|
|
@ -2,6 +2,6 @@
|
||||||
|
|
||||||
namespace Pinetime {
|
namespace Pinetime {
|
||||||
namespace Applications {
|
namespace Applications {
|
||||||
enum class Apps {None, Launcher, Clock, SysInfo, Meter, Gauge, Brightness, Music, FirmwareValidation, Paint, Paddle, Notifications, Twos};
|
enum class Apps {None, Launcher, Clock, SysInfo, Meter, Gauge, Brightness, Music, FirmwareValidation, Paint, Paddle, Notifications, Twos, HeartRate, Navigation};
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,5 +1,6 @@
|
||||||
#include "DisplayApp.h"
|
#include "DisplayApp.h"
|
||||||
#include <libraries/log/nrf_log.h>
|
#include <libraries/log/nrf_log.h>
|
||||||
|
#include <displayapp/screens/HeartRate.h>
|
||||||
#include "components/battery/BatteryController.h"
|
#include "components/battery/BatteryController.h"
|
||||||
#include "components/ble/BleController.h"
|
#include "components/ble/BleController.h"
|
||||||
#include "components/datetime/DateTimeController.h"
|
#include "components/datetime/DateTimeController.h"
|
||||||
|
@ -14,6 +15,7 @@
|
||||||
#include "displayapp/screens/Paddle.h"
|
#include "displayapp/screens/Paddle.h"
|
||||||
#include "displayapp/screens/Meter.h"
|
#include "displayapp/screens/Meter.h"
|
||||||
#include "displayapp/screens/Music.h"
|
#include "displayapp/screens/Music.h"
|
||||||
|
#include "displayapp/screens/Navigation.h"
|
||||||
#include "displayapp/screens/Notifications.h"
|
#include "displayapp/screens/Notifications.h"
|
||||||
#include "displayapp/screens/SystemInfo.h"
|
#include "displayapp/screens/SystemInfo.h"
|
||||||
#include "displayapp/screens/Tile.h"
|
#include "displayapp/screens/Tile.h"
|
||||||
|
@ -29,7 +31,8 @@ DisplayApp::DisplayApp(Drivers::St7789 &lcd, Components::LittleVgl &lvgl, Driver
|
||||||
Controllers::Battery &batteryController, Controllers::Ble &bleController,
|
Controllers::Battery &batteryController, Controllers::Ble &bleController,
|
||||||
Controllers::DateTime &dateTimeController, Drivers::WatchdogView &watchdog,
|
Controllers::DateTime &dateTimeController, Drivers::WatchdogView &watchdog,
|
||||||
System::SystemTask &systemTask,
|
System::SystemTask &systemTask,
|
||||||
Pinetime::Controllers::NotificationManager& notificationManager) :
|
Pinetime::Controllers::NotificationManager& notificationManager,
|
||||||
|
Pinetime::Controllers::HeartRateController& heartRateController) :
|
||||||
lcd{lcd},
|
lcd{lcd},
|
||||||
lvgl{lvgl},
|
lvgl{lvgl},
|
||||||
batteryController{batteryController},
|
batteryController{batteryController},
|
||||||
|
@ -37,9 +40,10 @@ DisplayApp::DisplayApp(Drivers::St7789 &lcd, Components::LittleVgl &lvgl, Driver
|
||||||
dateTimeController{dateTimeController},
|
dateTimeController{dateTimeController},
|
||||||
watchdog{watchdog},
|
watchdog{watchdog},
|
||||||
touchPanel{touchPanel},
|
touchPanel{touchPanel},
|
||||||
currentScreen{new Screens::Clock(this, dateTimeController, batteryController, bleController, notificationManager) },
|
currentScreen{new Screens::Clock(this, dateTimeController, batteryController, bleController, notificationManager, heartRateController) },
|
||||||
systemTask{systemTask},
|
systemTask{systemTask},
|
||||||
notificationManager{notificationManager} {
|
notificationManager{notificationManager},
|
||||||
|
heartRateController{heartRateController} {
|
||||||
msgQueue = xQueueCreate(queueSize, itemSize);
|
msgQueue = xQueueCreate(queueSize, itemSize);
|
||||||
onClockApp = true;
|
onClockApp = true;
|
||||||
modal.reset(new Screens::Modal(this));
|
modal.reset(new Screens::Modal(this));
|
||||||
|
@ -197,7 +201,7 @@ void DisplayApp::RunningState() {
|
||||||
case Apps::None:
|
case Apps::None:
|
||||||
case Apps::Launcher: currentScreen.reset(new Screens::ApplicationList(this)); break;
|
case Apps::Launcher: currentScreen.reset(new Screens::ApplicationList(this)); break;
|
||||||
case Apps::Clock:
|
case Apps::Clock:
|
||||||
currentScreen.reset(new Screens::Clock(this, dateTimeController, batteryController, bleController, notificationManager));
|
currentScreen.reset(new Screens::Clock(this, dateTimeController, batteryController, bleController, notificationManager, heartRateController));
|
||||||
onClockApp = true;
|
onClockApp = true;
|
||||||
break;
|
break;
|
||||||
// case Apps::Test: currentScreen.reset(new Screens::Message(this)); break;
|
// case Apps::Test: currentScreen.reset(new Screens::Message(this)); break;
|
||||||
|
@ -209,8 +213,10 @@ void DisplayApp::RunningState() {
|
||||||
case Apps::Paddle: currentScreen.reset(new Screens::Paddle(this, lvgl)); break;
|
case Apps::Paddle: currentScreen.reset(new Screens::Paddle(this, lvgl)); break;
|
||||||
case Apps::Brightness : currentScreen.reset(new Screens::Brightness(this, brightnessController)); break;
|
case Apps::Brightness : currentScreen.reset(new Screens::Brightness(this, brightnessController)); break;
|
||||||
case Apps::Music : currentScreen.reset(new Screens::Music(this, systemTask.nimble().music())); break;
|
case Apps::Music : currentScreen.reset(new Screens::Music(this, systemTask.nimble().music())); break;
|
||||||
|
case Apps::Navigation : currentScreen.reset(new Screens::Navigation(this, systemTask.nimble().navigation())); break;
|
||||||
case Apps::FirmwareValidation: currentScreen.reset(new Screens::FirmwareValidation(this, validator)); break;
|
case Apps::FirmwareValidation: currentScreen.reset(new Screens::FirmwareValidation(this, validator)); break;
|
||||||
case Apps::Notifications: currentScreen.reset(new Screens::Notifications(this, notificationManager, Screens::Notifications::Modes::Normal)); break;
|
case Apps::Notifications: currentScreen.reset(new Screens::Notifications(this, notificationManager, Screens::Notifications::Modes::Normal)); break;
|
||||||
|
case Apps::HeartRate: currentScreen.reset(new Screens::HeartRate(this, heartRateController)); break;
|
||||||
}
|
}
|
||||||
nextApp = Apps::None;
|
nextApp = Apps::None;
|
||||||
}
|
}
|
||||||
|
|
|
@ -23,6 +23,7 @@ namespace Pinetime {
|
||||||
class Ble;
|
class Ble;
|
||||||
class DateTime;
|
class DateTime;
|
||||||
class NotificationManager;
|
class NotificationManager;
|
||||||
|
class HeartRateController;
|
||||||
}
|
}
|
||||||
|
|
||||||
namespace System {
|
namespace System {
|
||||||
|
@ -42,7 +43,8 @@ namespace Pinetime {
|
||||||
Controllers::Battery &batteryController, Controllers::Ble &bleController,
|
Controllers::Battery &batteryController, Controllers::Ble &bleController,
|
||||||
Controllers::DateTime &dateTimeController, Drivers::WatchdogView &watchdog,
|
Controllers::DateTime &dateTimeController, Drivers::WatchdogView &watchdog,
|
||||||
System::SystemTask &systemTask,
|
System::SystemTask &systemTask,
|
||||||
Pinetime::Controllers::NotificationManager& notificationManager);
|
Pinetime::Controllers::NotificationManager& notificationManager,
|
||||||
|
Pinetime::Controllers::HeartRateController& heartRateController);
|
||||||
void Start();
|
void Start();
|
||||||
void PushMessage(Messages msg);
|
void PushMessage(Messages msg);
|
||||||
|
|
||||||
|
@ -87,6 +89,7 @@ namespace Pinetime {
|
||||||
Pinetime::Controllers::NotificationManager& notificationManager;
|
Pinetime::Controllers::NotificationManager& notificationManager;
|
||||||
Pinetime::Controllers::FirmwareValidator validator;
|
Pinetime::Controllers::FirmwareValidator validator;
|
||||||
TouchModes touchMode = TouchModes::Gestures;
|
TouchModes touchMode = TouchModes::Gestures;
|
||||||
|
Pinetime::Controllers::HeartRateController& heartRateController;
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
93
src/displayapp/icons/navigation/.c
Normal file
|
@ -0,0 +1,93 @@
|
||||||
|
#if defined(LV_LVGL_H_INCLUDE_SIMPLE)
|
||||||
|
#include "lvgl.h"
|
||||||
|
#else
|
||||||
|
#include "../lvgl/lvgl.h"
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
#ifndef LV_ATTRIBUTE_MEM_ALIGN
|
||||||
|
#define LV_ATTRIBUTE_MEM_ALIGN
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef LV_ATTRIBUTE_IMG_
|
||||||
|
#define LV_ATTRIBUTE_IMG_
|
||||||
|
#endif
|
||||||
|
|
||||||
|
const LV_ATTRIBUTE_MEM_ALIGN LV_ATTRIBUTE_LARGE_CONST LV_ATTRIBUTE_IMG_ uint8_t _map[] = {
|
||||||
|
0x04, 0x02, 0x04, 0xff, /*Color of index 0*/
|
||||||
|
0xfc, 0xfe, 0xfc, 0xff, /*Color of index 1*/
|
||||||
|
|
||||||
|
0x00, 0x00, 0x00, 0x0f, 0xff, 0xff, 0xf8, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x3f, 0xff, 0xff, 0xfc, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x7f, 0xff, 0xff, 0xff, 0x00,
|
||||||
|
0x00, 0x00, 0x01, 0xff, 0xff, 0xff, 0xff, 0x80,
|
||||||
|
0x00, 0x00, 0x03, 0xff, 0xff, 0xff, 0xff, 0xc0,
|
||||||
|
0x00, 0x00, 0x07, 0xff, 0xff, 0xff, 0xff, 0xe0,
|
||||||
|
0x00, 0x00, 0x07, 0xff, 0xff, 0xff, 0xff, 0xf0,
|
||||||
|
0x00, 0x00, 0x0f, 0xff, 0xff, 0xff, 0xff, 0xf8,
|
||||||
|
0x00, 0x00, 0x1f, 0xff, 0xff, 0xff, 0xff, 0xf8,
|
||||||
|
0x00, 0x00, 0x1f, 0xff, 0xff, 0xff, 0xff, 0xfc,
|
||||||
|
0x00, 0x00, 0x3f, 0xff, 0xff, 0x7f, 0xff, 0xfe,
|
||||||
|
0x00, 0x00, 0x3f, 0xff, 0xf0, 0x0f, 0xff, 0xfe,
|
||||||
|
0x00, 0x00, 0x7f, 0xff, 0xe0, 0x03, 0xff, 0xfe,
|
||||||
|
0x00, 0x00, 0x7f, 0xff, 0x80, 0x01, 0xff, 0xfe,
|
||||||
|
0x00, 0x00, 0x7f, 0xff, 0x00, 0x00, 0xff, 0xfe,
|
||||||
|
0x00, 0x00, 0xff, 0xfe, 0x00, 0x00, 0x7f, 0xfe,
|
||||||
|
0x00, 0x00, 0xff, 0xfc, 0x00, 0x00, 0x3f, 0xfe,
|
||||||
|
0x00, 0x00, 0xff, 0xfc, 0x00, 0x00, 0x1f, 0xfe,
|
||||||
|
0x00, 0x00, 0xff, 0xf8, 0x00, 0x00, 0x1f, 0xfe,
|
||||||
|
0x00, 0x00, 0xff, 0xf8, 0x00, 0x00, 0x0f, 0xfe,
|
||||||
|
0x00, 0x00, 0xff, 0xf0, 0x00, 0x00, 0x0f, 0xfe,
|
||||||
|
0x00, 0x00, 0xff, 0xf0, 0x00, 0x00, 0x0f, 0xfe,
|
||||||
|
0x00, 0x00, 0xff, 0xf0, 0x00, 0x00, 0x0f, 0xfe,
|
||||||
|
0x00, 0x00, 0xff, 0xf0, 0x00, 0x00, 0x07, 0xfe,
|
||||||
|
0x00, 0x00, 0xff, 0xf0, 0x00, 0x00, 0x07, 0xfe,
|
||||||
|
0x00, 0x00, 0xff, 0xf0, 0x00, 0x00, 0x07, 0xfe,
|
||||||
|
0x00, 0x00, 0xff, 0xf0, 0x00, 0x00, 0x07, 0xfe,
|
||||||
|
0x00, 0x00, 0xff, 0xf0, 0x00, 0x00, 0x07, 0xfe,
|
||||||
|
0x00, 0x00, 0xff, 0xf0, 0x00, 0x00, 0x07, 0xfe,
|
||||||
|
0x00, 0x00, 0xff, 0xf0, 0x00, 0x00, 0x07, 0xfe,
|
||||||
|
0x00, 0x00, 0xff, 0xf0, 0x00, 0x00, 0x07, 0xfe,
|
||||||
|
0x00, 0x00, 0xff, 0xf0, 0x00, 0x00, 0x07, 0xfe,
|
||||||
|
0x00, 0x00, 0xff, 0xf0, 0x00, 0x00, 0x07, 0xfe,
|
||||||
|
0x7c, 0x00, 0xff, 0xf0, 0x03, 0xf0, 0x07, 0xfe,
|
||||||
|
0x7f, 0x00, 0xff, 0xf0, 0x1f, 0xf0, 0x07, 0xfe,
|
||||||
|
0x7f, 0xc0, 0xff, 0xf0, 0x7f, 0xf0, 0x07, 0xfe,
|
||||||
|
0x7f, 0xf8, 0xff, 0xf1, 0xff, 0xf0, 0x07, 0xfe,
|
||||||
|
0x7f, 0xfe, 0xff, 0xf7, 0xff, 0xf0, 0x07, 0xfe,
|
||||||
|
0x7f, 0xff, 0xff, 0xff, 0xff, 0xf0, 0x07, 0xfe,
|
||||||
|
0x7f, 0xff, 0xff, 0xff, 0xff, 0xf0, 0x07, 0xfe,
|
||||||
|
0x7f, 0xff, 0xff, 0xff, 0xff, 0xe0, 0x07, 0xfe,
|
||||||
|
0x7f, 0xff, 0xff, 0xff, 0xff, 0xe0, 0x07, 0xfe,
|
||||||
|
0x3f, 0xff, 0xff, 0xff, 0xff, 0xc0, 0x07, 0xfe,
|
||||||
|
0x3f, 0xff, 0xff, 0xff, 0xff, 0x80, 0x07, 0xfe,
|
||||||
|
0x1f, 0xff, 0xff, 0xff, 0xff, 0x00, 0x07, 0xfe,
|
||||||
|
0x0f, 0xff, 0xff, 0xff, 0xff, 0x00, 0x07, 0xfe,
|
||||||
|
0x07, 0xff, 0xff, 0xff, 0xfe, 0x00, 0x07, 0xfe,
|
||||||
|
0x03, 0xff, 0xff, 0xff, 0xfc, 0x00, 0x07, 0xfe,
|
||||||
|
0x03, 0xff, 0xff, 0xff, 0xf8, 0x00, 0x07, 0xfe,
|
||||||
|
0x01, 0xff, 0xff, 0xff, 0xf0, 0x00, 0x07, 0xfe,
|
||||||
|
0x00, 0xff, 0xff, 0xff, 0xf0, 0x00, 0x07, 0xfe,
|
||||||
|
0x00, 0x7f, 0xff, 0xff, 0xe0, 0x00, 0x07, 0xfe,
|
||||||
|
0x00, 0x7f, 0xff, 0xff, 0xc0, 0x00, 0x07, 0xfe,
|
||||||
|
0x00, 0x3f, 0xff, 0xff, 0x80, 0x00, 0x07, 0xfe,
|
||||||
|
0x00, 0x1f, 0xff, 0xff, 0x80, 0x00, 0x07, 0xfe,
|
||||||
|
0x00, 0x0f, 0xff, 0xff, 0x00, 0x00, 0x07, 0xfe,
|
||||||
|
0x00, 0x07, 0xff, 0xfe, 0x00, 0x00, 0x07, 0xfe,
|
||||||
|
0x00, 0x07, 0xff, 0xfc, 0x00, 0x00, 0x07, 0xfe,
|
||||||
|
0x00, 0x03, 0xff, 0xfc, 0x00, 0x00, 0x07, 0xfe,
|
||||||
|
0x00, 0x01, 0xff, 0xf8, 0x00, 0x00, 0x07, 0xfe,
|
||||||
|
0x00, 0x00, 0xff, 0xf0, 0x00, 0x00, 0x07, 0xfe,
|
||||||
|
0x00, 0x00, 0xff, 0xe0, 0x00, 0x00, 0x07, 0xfe,
|
||||||
|
0x00, 0x00, 0x7f, 0xc0, 0x00, 0x00, 0x07, 0xfe,
|
||||||
|
0x00, 0x00, 0x3f, 0xc0, 0x00, 0x00, 0x07, 0xfe,
|
||||||
|
};
|
||||||
|
|
||||||
|
const lv_img_dsc_t = {
|
||||||
|
.header.always_zero = 0,
|
||||||
|
.header.w = 64,
|
||||||
|
.header.h = 64,
|
||||||
|
.data_size = 520,
|
||||||
|
.header.cf = LV_IMG_CF_INDEXED_1BIT,
|
||||||
|
.data = _map,
|
||||||
|
};
|
4
src/displayapp/icons/navigation/arrive-left-white.svg
Normal file
|
@ -0,0 +1,4 @@
|
||||||
|
<svg id="WORKING_ICONS" data-name="WORKING ICONS" xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 20 20">
|
||||||
|
<title>direction</title>
|
||||||
|
<path fill="#ffffff" d="M3,12a2,2,0,1,1,2-2A2,2,0,0,1,3,12Zm10.00293-.96332a4.05782,4.05782,0,0,1,3.98877,4.07324H17v1.37775A0.51232,0.51232,0,0,0,17.51233,17h0.97534A0.51232,0.51232,0,0,0,19,16.48767V15H18.98615a6.05607,6.05607,0,0,0-5.9834-5.96332l-0.011-.00183,0.00012,0.02008H12V9.04584a0.35757,0.35757,0,0,1-.37738-0.54242l1.34375-2.95184a0.38659,0.38659,0,0,0-.62354-0.40942L6,10.04584l6.34283,4.90369a0.3866,0.3866,0,0,0,.62354-0.40942l-1.34375-2.95184A0.35757,0.35757,0,0,1,12,11.04584v0.00909h1"/>
|
||||||
|
</svg>
|
After Width: | Height: | Size: 672 B |
96
src/displayapp/icons/navigation/arrive-left.c
Normal file
|
@ -0,0 +1,96 @@
|
||||||
|
#if defined(LV_LVGL_H_INCLUDE_SIMPLE)
|
||||||
|
#include "lvgl.h"
|
||||||
|
#else
|
||||||
|
#include "lvgl/lvgl.h"
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
#ifndef LV_ATTRIBUTE_MEM_ALIGN
|
||||||
|
#define LV_ATTRIBUTE_MEM_ALIGN
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef LV_ATTRIBUTE_IMG_ARRIVE_LEFT
|
||||||
|
#define LV_ATTRIBUTE_IMG_ARRIVE_LEFT
|
||||||
|
#endif
|
||||||
|
|
||||||
|
const LV_ATTRIBUTE_MEM_ALIGN LV_ATTRIBUTE_LARGE_CONST LV_ATTRIBUTE_IMG_ARRIVE_LEFT uint8_t arrive_left_map[] = {
|
||||||
|
0x04, 0x02, 0x04, 0xff, /*Color of index 0*/
|
||||||
|
0xfc, 0xfe, 0xfc, 0xff, /*Color of index 1*/
|
||||||
|
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x0f, 0xf8, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x3f, 0xf8, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x7f, 0xf8, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0xff, 0xf8, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x03, 0xff, 0xf0, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x07, 0xff, 0xf0, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x0f, 0xff, 0xe0, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x3f, 0xff, 0xe0, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x7f, 0xff, 0xc0, 0x00, 0x00,
|
||||||
|
0x3f, 0xf8, 0x00, 0xff, 0xff, 0xc0, 0x00, 0x00,
|
||||||
|
0xff, 0xfc, 0x03, 0xff, 0xff, 0xc0, 0x00, 0x00,
|
||||||
|
0xff, 0xfe, 0x07, 0xff, 0xff, 0x80, 0x00, 0x00,
|
||||||
|
0xff, 0xff, 0x0f, 0xff, 0xff, 0xff, 0x80, 0x00,
|
||||||
|
0xff, 0xff, 0x1f, 0xff, 0xff, 0xff, 0xf0, 0x00,
|
||||||
|
0xff, 0xff, 0x7f, 0xff, 0xff, 0xff, 0xfe, 0x00,
|
||||||
|
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00,
|
||||||
|
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0,
|
||||||
|
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xe0,
|
||||||
|
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
|
||||||
|
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf8,
|
||||||
|
0xff, 0xff, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xf8,
|
||||||
|
0xff, 0xff, 0x1f, 0xff, 0xff, 0xff, 0xff, 0xfc,
|
||||||
|
0xff, 0xfe, 0x0f, 0xff, 0xff, 0xff, 0xff, 0xfe,
|
||||||
|
0xff, 0xfe, 0x07, 0xff, 0xff, 0x8f, 0xff, 0xfe,
|
||||||
|
0xff, 0xfc, 0x03, 0xff, 0xff, 0xc1, 0xff, 0xff,
|
||||||
|
0x3f, 0xf8, 0x00, 0xff, 0xff, 0xc0, 0x7f, 0xff,
|
||||||
|
0x00, 0x00, 0x00, 0x7f, 0xff, 0xc0, 0x3f, 0xff,
|
||||||
|
0x00, 0x00, 0x00, 0x3f, 0xff, 0xe0, 0x1f, 0xff,
|
||||||
|
0x00, 0x00, 0x00, 0x0f, 0xff, 0xe0, 0x0f, 0xff,
|
||||||
|
0x00, 0x00, 0x00, 0x07, 0xff, 0xe0, 0x07, 0xff,
|
||||||
|
0x00, 0x00, 0x00, 0x03, 0xff, 0xf0, 0x07, 0xff,
|
||||||
|
0x00, 0x00, 0x00, 0x01, 0xff, 0xf8, 0x07, 0xff,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x7f, 0xf8, 0x03, 0xff,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x3f, 0xf8, 0x03, 0xff,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x0f, 0xf8, 0x03, 0xff,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x07, 0xf8, 0x01, 0xff,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x03, 0xf0, 0x01, 0xff,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0xff,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0xff,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0xff,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0xff,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0xff,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
};
|
||||||
|
|
||||||
|
const lv_img_dsc_t arrive_left = {
|
||||||
|
{
|
||||||
|
LV_IMG_CF_INDEXED_1BIT,
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
64,
|
||||||
|
64
|
||||||
|
},
|
||||||
|
520,
|
||||||
|
arrive_left_map,
|
||||||
|
};
|
BIN
src/displayapp/icons/navigation/arrive-left.png
Normal file
After Width: | Height: | Size: 1.3 KiB |
4
src/displayapp/icons/navigation/arrive-right-white.svg
Normal file
|
@ -0,0 +1,4 @@
|
||||||
|
<svg id="WORKING_ICONS" data-name="WORKING ICONS" xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 20 20">
|
||||||
|
<title>direction</title>
|
||||||
|
<path fill="#ffffff" d="M15,10a2,2,0,1,1,2,2A2,2,0,0,1,15,10ZM7,11.05493H8V11.04584a0.35757,0.35757,0,0,1,.37738.54242L7.03363,14.5401a0.3866,0.3866,0,0,0,.62354.40942L14,10.04584,7.65717,5.14215a0.38659,0.38659,0,0,0-.62354.40942L8.37738,8.50342A0.35757,0.35757,0,0,1,8,9.04584V9.05493H7.00818L7.0083,9.03485l-0.011.00183A6.05607,6.05607,0,0,0,1.01385,15H1v1.48767A0.51232,0.51232,0,0,0,1.51233,17H2.48767A0.51232,0.51232,0,0,0,3,16.48767V15.10992H3.0083a4.05782,4.05782,0,0,1,3.98877-4.07324"/>
|
||||||
|
</svg>
|
After Width: | Height: | Size: 662 B |
96
src/displayapp/icons/navigation/arrive-right.c
Normal file
|
@ -0,0 +1,96 @@
|
||||||
|
#if defined(LV_LVGL_H_INCLUDE_SIMPLE)
|
||||||
|
#include "lvgl.h"
|
||||||
|
#else
|
||||||
|
#include "lvgl/lvgl.h"
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
#ifndef LV_ATTRIBUTE_MEM_ALIGN
|
||||||
|
#define LV_ATTRIBUTE_MEM_ALIGN
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef LV_ATTRIBUTE_IMG_ARRIVE_RIGHT
|
||||||
|
#define LV_ATTRIBUTE_IMG_ARRIVE_RIGHT
|
||||||
|
#endif
|
||||||
|
|
||||||
|
const LV_ATTRIBUTE_MEM_ALIGN LV_ATTRIBUTE_LARGE_CONST LV_ATTRIBUTE_IMG_ARRIVE_RIGHT uint8_t arrive_right_map[] = {
|
||||||
|
0x04, 0x02, 0x04, 0xff, /*Color of index 0*/
|
||||||
|
0xfc, 0xfe, 0xfc, 0xff, /*Color of index 1*/
|
||||||
|
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x1f, 0xf0, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x1f, 0xfc, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x1f, 0xfe, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x1f, 0xff, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x0f, 0xff, 0xc0, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x0f, 0xff, 0xe0, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x07, 0xff, 0xf0, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x07, 0xff, 0xfc, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x03, 0xff, 0xfe, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x03, 0xff, 0xff, 0x00, 0x1f, 0xfc,
|
||||||
|
0x00, 0x00, 0x03, 0xff, 0xff, 0xc0, 0x3f, 0xff,
|
||||||
|
0x00, 0x00, 0x01, 0xff, 0xff, 0xe0, 0x7f, 0xff,
|
||||||
|
0x00, 0x01, 0xff, 0xff, 0xff, 0xf0, 0xff, 0xff,
|
||||||
|
0x00, 0x0f, 0xff, 0xff, 0xff, 0xf8, 0xff, 0xff,
|
||||||
|
0x00, 0x7f, 0xff, 0xff, 0xff, 0xfe, 0xff, 0xff,
|
||||||
|
0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
|
||||||
|
0x03, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
|
||||||
|
0x07, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
|
||||||
|
0x0f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
|
||||||
|
0x1f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
|
||||||
|
0x1f, 0xff, 0xff, 0xff, 0xff, 0xfe, 0xff, 0xff,
|
||||||
|
0x3f, 0xff, 0xff, 0xff, 0xff, 0xf8, 0xff, 0xff,
|
||||||
|
0x7f, 0xff, 0xff, 0xff, 0xff, 0xf0, 0x7f, 0xff,
|
||||||
|
0x7f, 0xff, 0xf1, 0xff, 0xff, 0xe0, 0x7f, 0xff,
|
||||||
|
0xff, 0xff, 0x83, 0xff, 0xff, 0xc0, 0x3f, 0xff,
|
||||||
|
0xff, 0xfe, 0x03, 0xff, 0xff, 0x00, 0x1f, 0xfc,
|
||||||
|
0xff, 0xfc, 0x03, 0xff, 0xfe, 0x00, 0x00, 0x00,
|
||||||
|
0xff, 0xf8, 0x07, 0xff, 0xfc, 0x00, 0x00, 0x00,
|
||||||
|
0xff, 0xf0, 0x07, 0xff, 0xf0, 0x00, 0x00, 0x00,
|
||||||
|
0xff, 0xe0, 0x07, 0xff, 0xe0, 0x00, 0x00, 0x00,
|
||||||
|
0xff, 0xe0, 0x0f, 0xff, 0xc0, 0x00, 0x00, 0x00,
|
||||||
|
0xff, 0xc0, 0x1f, 0xff, 0x80, 0x00, 0x00, 0x00,
|
||||||
|
0xff, 0xc0, 0x1f, 0xfe, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0xff, 0xc0, 0x1f, 0xfc, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0xff, 0xc0, 0x1f, 0xf0, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0xff, 0x80, 0x1f, 0xe0, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0xff, 0x80, 0x0f, 0xc0, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0xff, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0xff, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0xff, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0xff, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0xff, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
};
|
||||||
|
|
||||||
|
const lv_img_dsc_t arrive_right = {
|
||||||
|
{
|
||||||
|
LV_IMG_CF_INDEXED_1BIT,
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
64,
|
||||||
|
64
|
||||||
|
},
|
||||||
|
520,
|
||||||
|
arrive_right_map,
|
||||||
|
};
|
BIN
src/displayapp/icons/navigation/arrive-right.png
Normal file
After Width: | Height: | Size: 1.2 KiB |
|
@ -0,0 +1,4 @@
|
||||||
|
<svg id="WORKING_ICONS" data-name="WORKING ICONS" xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 20 20">
|
||||||
|
<title>direction</title>
|
||||||
|
<path fill="#ffffff" d="M10,5a2,2,0,1,1,2-2A2,2,0,0,1,10,5Zm4.91284,8.35114L10.00916,7.0083,5.10547,13.35114a0.38659,0.38659,0,0,0,.40942.62354l2.95184-1.34375A0.35542,0.35542,0,0,1,9.00769,13H9v5.50006A0.49992,0.49992,0,0,0,9.49994,19h1.00012A0.49992,0.49992,0,0,0,11,18.50006V13.0083h0.00916a0.35757,0.35757,0,0,1,.54242-0.37738l2.95184,1.34375A0.3866,0.3866,0,0,0,14.91284,13.35114Z"/>
|
||||||
|
</svg>
|
After Width: | Height: | Size: 554 B |
96
src/displayapp/icons/navigation/arrive-straight.c
Normal file
|
@ -0,0 +1,96 @@
|
||||||
|
#if defined(LV_LVGL_H_INCLUDE_SIMPLE)
|
||||||
|
#include "lvgl.h"
|
||||||
|
#else
|
||||||
|
#include "lvgl/lvgl.h"
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
#ifndef LV_ATTRIBUTE_MEM_ALIGN
|
||||||
|
#define LV_ATTRIBUTE_MEM_ALIGN
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef LV_ATTRIBUTE_IMG_ARRIVE_STRAIGHT
|
||||||
|
#define LV_ATTRIBUTE_IMG_ARRIVE_STRAIGHT
|
||||||
|
#endif
|
||||||
|
|
||||||
|
const LV_ATTRIBUTE_MEM_ALIGN LV_ATTRIBUTE_LARGE_CONST LV_ATTRIBUTE_IMG_ARRIVE_STRAIGHT uint8_t arrive_straight_map[] = {
|
||||||
|
0x04, 0x02, 0x04, 0xff, /*Color of index 0*/
|
||||||
|
0xfc, 0xfe, 0xfc, 0xff, /*Color of index 1*/
|
||||||
|
|
||||||
|
0x00, 0x00, 0x00, 0x7f, 0xfe, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x01, 0xff, 0xff, 0x80, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x01, 0xff, 0xff, 0x80, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x01, 0xff, 0xff, 0x80, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x01, 0xff, 0xff, 0x80, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x01, 0xff, 0xff, 0x80, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x01, 0xff, 0xff, 0x80, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x01, 0xff, 0xff, 0x80, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x01, 0xff, 0xff, 0x80, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x01, 0xff, 0xff, 0x80, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x01, 0xff, 0xff, 0x80, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x7f, 0xfe, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x1f, 0xf8, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x03, 0xc0, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x07, 0xe0, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x0f, 0xf0, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x0f, 0xf0, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x1f, 0xf8, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x3f, 0xfc, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x7f, 0xfe, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x01, 0xff, 0xff, 0x80, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x03, 0xff, 0xff, 0xc0, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x07, 0xff, 0xff, 0xe0, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x07, 0xff, 0xff, 0xe0, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x0f, 0xff, 0xff, 0xf0, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x1f, 0xff, 0xff, 0xf8, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x3f, 0xff, 0xff, 0xfc, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x3f, 0xff, 0xff, 0xfc, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x7f, 0xff, 0xff, 0xfe, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00,
|
||||||
|
0x00, 0x01, 0xff, 0xff, 0xff, 0xff, 0x80, 0x00,
|
||||||
|
0x00, 0x03, 0xff, 0xff, 0xff, 0xff, 0xc0, 0x00,
|
||||||
|
0x00, 0x03, 0xff, 0xff, 0xff, 0xff, 0xc0, 0x00,
|
||||||
|
0x00, 0x03, 0xff, 0xff, 0xff, 0xff, 0xc0, 0x00,
|
||||||
|
0x00, 0x03, 0xff, 0xff, 0xff, 0xff, 0xc0, 0x00,
|
||||||
|
0x00, 0x03, 0xff, 0xff, 0xff, 0xff, 0xc0, 0x00,
|
||||||
|
0x00, 0x03, 0xff, 0xff, 0xff, 0xff, 0xc0, 0x00,
|
||||||
|
0x00, 0x03, 0xfe, 0x3f, 0xfc, 0x7f, 0xc0, 0x00,
|
||||||
|
0x00, 0x03, 0xfc, 0x3f, 0xfc, 0x3f, 0xc0, 0x00,
|
||||||
|
0x00, 0x03, 0xe0, 0x3f, 0xfc, 0x07, 0xc0, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x3f, 0xfc, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x3f, 0xfc, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x3f, 0xfc, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x3f, 0xfc, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x3f, 0xfc, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x3f, 0xfc, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x3f, 0xfc, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x3f, 0xfc, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x3f, 0xfc, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x3f, 0xfc, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x3f, 0xfc, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x3f, 0xfc, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x3f, 0xfc, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x3f, 0xfc, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x3f, 0xfc, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x3f, 0xfc, 0x00, 0x00, 0x00,
|
||||||
|
};
|
||||||
|
|
||||||
|
const lv_img_dsc_t arrive_straight = {
|
||||||
|
{
|
||||||
|
LV_IMG_CF_INDEXED_1BIT,
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
64,
|
||||||
|
64
|
||||||
|
},
|
||||||
|
520,
|
||||||
|
arrive_straight_map,
|
||||||
|
};
|
BIN
src/displayapp/icons/navigation/arrive-straight.png
Normal file
After Width: | Height: | Size: 1.1 KiB |
4
src/displayapp/icons/navigation/arrive-white.svg
Normal file
|
@ -0,0 +1,4 @@
|
||||||
|
<svg id="WORKING_ICONS" data-name="WORKING ICONS" xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 20 20">
|
||||||
|
<title>direction</title>
|
||||||
|
<path fill="#ffffff" d="M10,5a2,2,0,1,1,2-2A2,2,0,0,1,10,5Zm4.91284,8.35114L10.00916,7.0083,5.10547,13.35114a0.38659,0.38659,0,0,0,.40942.62354l2.95184-1.34375A0.35542,0.35542,0,0,1,9.00769,13H9v5.50006A0.49992,0.49992,0,0,0,9.49994,19h1.00012A0.49992,0.49992,0,0,0,11,18.50006V13.0083h0.00916a0.35757,0.35757,0,0,1,.54242-0.37738l2.95184,1.34375A0.3866,0.3866,0,0,0,14.91284,13.35114Z"/>
|
||||||
|
</svg>
|
After Width: | Height: | Size: 554 B |
96
src/displayapp/icons/navigation/arrive.c
Normal file
|
@ -0,0 +1,96 @@
|
||||||
|
#if defined(LV_LVGL_H_INCLUDE_SIMPLE)
|
||||||
|
#include "lvgl.h"
|
||||||
|
#else
|
||||||
|
#include "lvgl/lvgl.h"
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
#ifndef LV_ATTRIBUTE_MEM_ALIGN
|
||||||
|
#define LV_ATTRIBUTE_MEM_ALIGN
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef LV_ATTRIBUTE_IMG_ARRIVE
|
||||||
|
#define LV_ATTRIBUTE_IMG_ARRIVE
|
||||||
|
#endif
|
||||||
|
|
||||||
|
const LV_ATTRIBUTE_MEM_ALIGN LV_ATTRIBUTE_LARGE_CONST LV_ATTRIBUTE_IMG_ARRIVE uint8_t arrive_map[] = {
|
||||||
|
0x04, 0x02, 0x04, 0xff, /*Color of index 0*/
|
||||||
|
0xfc, 0xfe, 0xfc, 0xff, /*Color of index 1*/
|
||||||
|
|
||||||
|
0x00, 0x00, 0x00, 0x7f, 0xfe, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x01, 0xff, 0xff, 0x80, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x01, 0xff, 0xff, 0x80, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x01, 0xff, 0xff, 0x80, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x01, 0xff, 0xff, 0x80, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x01, 0xff, 0xff, 0x80, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x01, 0xff, 0xff, 0x80, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x01, 0xff, 0xff, 0x80, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x01, 0xff, 0xff, 0x80, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x01, 0xff, 0xff, 0x80, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x01, 0xff, 0xff, 0x80, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x7f, 0xfe, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x1f, 0xf8, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x03, 0xc0, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x07, 0xe0, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x0f, 0xf0, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x0f, 0xf0, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x1f, 0xf8, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x3f, 0xfc, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x7f, 0xfe, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x01, 0xff, 0xff, 0x80, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x03, 0xff, 0xff, 0xc0, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x07, 0xff, 0xff, 0xe0, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x07, 0xff, 0xff, 0xe0, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x0f, 0xff, 0xff, 0xf0, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x1f, 0xff, 0xff, 0xf8, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x3f, 0xff, 0xff, 0xfc, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x3f, 0xff, 0xff, 0xfc, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x7f, 0xff, 0xff, 0xfe, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00,
|
||||||
|
0x00, 0x01, 0xff, 0xff, 0xff, 0xff, 0x80, 0x00,
|
||||||
|
0x00, 0x03, 0xff, 0xff, 0xff, 0xff, 0xc0, 0x00,
|
||||||
|
0x00, 0x03, 0xff, 0xff, 0xff, 0xff, 0xc0, 0x00,
|
||||||
|
0x00, 0x03, 0xff, 0xff, 0xff, 0xff, 0xc0, 0x00,
|
||||||
|
0x00, 0x03, 0xff, 0xff, 0xff, 0xff, 0xc0, 0x00,
|
||||||
|
0x00, 0x03, 0xff, 0xff, 0xff, 0xff, 0xc0, 0x00,
|
||||||
|
0x00, 0x03, 0xff, 0xff, 0xff, 0xff, 0xc0, 0x00,
|
||||||
|
0x00, 0x03, 0xfe, 0x3f, 0xfc, 0x7f, 0xc0, 0x00,
|
||||||
|
0x00, 0x03, 0xfc, 0x3f, 0xfc, 0x3f, 0xc0, 0x00,
|
||||||
|
0x00, 0x03, 0xe0, 0x3f, 0xfc, 0x07, 0xc0, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x3f, 0xfc, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x3f, 0xfc, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x3f, 0xfc, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x3f, 0xfc, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x3f, 0xfc, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x3f, 0xfc, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x3f, 0xfc, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x3f, 0xfc, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x3f, 0xfc, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x3f, 0xfc, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x3f, 0xfc, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x3f, 0xfc, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x3f, 0xfc, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x3f, 0xfc, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x3f, 0xfc, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x3f, 0xfc, 0x00, 0x00, 0x00,
|
||||||
|
};
|
||||||
|
|
||||||
|
const lv_img_dsc_t arrive = {
|
||||||
|
{
|
||||||
|
LV_IMG_CF_INDEXED_1BIT,
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
64,
|
||||||
|
64
|
||||||
|
},
|
||||||
|
520,
|
||||||
|
arrive_map,
|
||||||
|
};
|
BIN
src/displayapp/icons/navigation/arrive.png
Normal file
After Width: | Height: | Size: 1.1 KiB |
4
src/displayapp/icons/navigation/close-white.svg
Normal file
|
@ -0,0 +1,4 @@
|
||||||
|
<svg id="WORKING_ICONS" data-name="WORKING ICONS" xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 20 20">
|
||||||
|
<title>direction</title>
|
||||||
|
<path fill="#ffffff" d="M17.35551,4.05855L11.76558,9.64848a0.49713,0.49713,0,0,0,0,.703l5.58993,5.58993a0.49713,0.49713,0,0,1,0,.703l-0.711.711a0.49713,0.49713,0,0,1-.703,0l-5.58993-5.58993a0.49713,0.49713,0,0,0-.703,0L4.05855,17.35551a0.49713,0.49713,0,0,1-.703,0l-0.711-.711a0.49713,0.49713,0,0,1,0-.703l5.58993-5.58993a0.49713,0.49713,0,0,0,0-.703L2.64449,4.05855a0.49713,0.49713,0,0,1,0-.703l0.711-.711a0.49713,0.49713,0,0,1,.703,0L9.64848,8.23442a0.49713,0.49713,0,0,0,.703,0l5.58993-5.58993a0.49713,0.49713,0,0,1,.703,0l0.711,0.711A0.49713,0.49713,0,0,1,17.35551,4.05855Z"/>
|
||||||
|
</svg>
|
After Width: | Height: | Size: 746 B |
96
src/displayapp/icons/navigation/close.c
Normal file
|
@ -0,0 +1,96 @@
|
||||||
|
#if defined(LV_LVGL_H_INCLUDE_SIMPLE)
|
||||||
|
#include "lvgl.h"
|
||||||
|
#else
|
||||||
|
#include "lvgl/lvgl.h"
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
#ifndef LV_ATTRIBUTE_MEM_ALIGN
|
||||||
|
#define LV_ATTRIBUTE_MEM_ALIGN
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef LV_ATTRIBUTE_IMG_CLOSE
|
||||||
|
#define LV_ATTRIBUTE_IMG_CLOSE
|
||||||
|
#endif
|
||||||
|
|
||||||
|
const LV_ATTRIBUTE_MEM_ALIGN LV_ATTRIBUTE_LARGE_CONST LV_ATTRIBUTE_IMG_CLOSE uint8_t close_map[] = {
|
||||||
|
0x04, 0x02, 0x04, 0xff, /*Color of index 0*/
|
||||||
|
0xfc, 0xfe, 0xfc, 0xff, /*Color of index 1*/
|
||||||
|
|
||||||
|
0xff, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x03, 0xff,
|
||||||
|
0xff, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x07, 0xff,
|
||||||
|
0xff, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x0f, 0xff,
|
||||||
|
0xff, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x1f, 0xff,
|
||||||
|
0xff, 0xfc, 0x00, 0x00, 0x00, 0x00, 0x3f, 0xff,
|
||||||
|
0xff, 0xfe, 0x00, 0x00, 0x00, 0x00, 0x7f, 0xff,
|
||||||
|
0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff,
|
||||||
|
0xff, 0xff, 0x80, 0x00, 0x00, 0x01, 0xff, 0xff,
|
||||||
|
0xff, 0xff, 0xe0, 0x00, 0x00, 0x07, 0xff, 0xff,
|
||||||
|
0xff, 0xff, 0xf0, 0x00, 0x00, 0x0f, 0xff, 0xff,
|
||||||
|
0x7f, 0xff, 0xf8, 0x00, 0x00, 0x1f, 0xff, 0xfe,
|
||||||
|
0x3f, 0xff, 0xfc, 0x00, 0x00, 0x3f, 0xff, 0xfc,
|
||||||
|
0x1f, 0xff, 0xfe, 0x00, 0x00, 0x7f, 0xff, 0xf8,
|
||||||
|
0x0f, 0xff, 0xff, 0x00, 0x00, 0xff, 0xff, 0xf0,
|
||||||
|
0x07, 0xff, 0xff, 0x00, 0x00, 0xff, 0xff, 0xe0,
|
||||||
|
0x03, 0xff, 0xff, 0x80, 0x01, 0xff, 0xff, 0xc0,
|
||||||
|
0x01, 0xff, 0xff, 0xc0, 0x03, 0xff, 0xff, 0x80,
|
||||||
|
0x00, 0xff, 0xff, 0xe0, 0x07, 0xff, 0xff, 0x00,
|
||||||
|
0x00, 0xff, 0xff, 0xf0, 0x0f, 0xff, 0xff, 0x00,
|
||||||
|
0x00, 0x7f, 0xff, 0xf8, 0x1f, 0xff, 0xfe, 0x00,
|
||||||
|
0x00, 0x3f, 0xff, 0xfc, 0x3f, 0xff, 0xfc, 0x00,
|
||||||
|
0x00, 0x1f, 0xff, 0xfe, 0x7f, 0xff, 0xf8, 0x00,
|
||||||
|
0x00, 0x0f, 0xff, 0xff, 0xff, 0xff, 0xf0, 0x00,
|
||||||
|
0x00, 0x07, 0xff, 0xff, 0xff, 0xff, 0xe0, 0x00,
|
||||||
|
0x00, 0x01, 0xff, 0xff, 0xff, 0xff, 0x80, 0x00,
|
||||||
|
0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x7f, 0xff, 0xff, 0xfe, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x3f, 0xff, 0xff, 0xfc, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x1f, 0xff, 0xff, 0xf8, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x0f, 0xff, 0xff, 0xf0, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x07, 0xff, 0xff, 0xe0, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x03, 0xff, 0xff, 0xc0, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x03, 0xff, 0xff, 0xc0, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x07, 0xff, 0xff, 0xe0, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x0f, 0xff, 0xff, 0xf0, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x1f, 0xff, 0xff, 0xf8, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x3f, 0xff, 0xff, 0xfc, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x7f, 0xff, 0xff, 0xfe, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00,
|
||||||
|
0x00, 0x01, 0xff, 0xff, 0xff, 0xff, 0x80, 0x00,
|
||||||
|
0x00, 0x07, 0xff, 0xff, 0xff, 0xff, 0xe0, 0x00,
|
||||||
|
0x00, 0x0f, 0xff, 0xff, 0xff, 0xff, 0xf0, 0x00,
|
||||||
|
0x00, 0x1f, 0xff, 0xfe, 0x7f, 0xff, 0xf8, 0x00,
|
||||||
|
0x00, 0x3f, 0xff, 0xfc, 0x3f, 0xff, 0xfc, 0x00,
|
||||||
|
0x00, 0x7f, 0xff, 0xf8, 0x1f, 0xff, 0xfe, 0x00,
|
||||||
|
0x00, 0xff, 0xff, 0xf0, 0x0f, 0xff, 0xff, 0x00,
|
||||||
|
0x00, 0xff, 0xff, 0xe0, 0x07, 0xff, 0xff, 0x00,
|
||||||
|
0x01, 0xff, 0xff, 0xc0, 0x03, 0xff, 0xff, 0x80,
|
||||||
|
0x03, 0xff, 0xff, 0x80, 0x01, 0xff, 0xff, 0xc0,
|
||||||
|
0x07, 0xff, 0xff, 0x00, 0x00, 0xff, 0xff, 0xe0,
|
||||||
|
0x0f, 0xff, 0xff, 0x00, 0x00, 0xff, 0xff, 0xf0,
|
||||||
|
0x1f, 0xff, 0xfe, 0x00, 0x00, 0x7f, 0xff, 0xf8,
|
||||||
|
0x3f, 0xff, 0xfc, 0x00, 0x00, 0x3f, 0xff, 0xfc,
|
||||||
|
0x7f, 0xff, 0xf8, 0x00, 0x00, 0x1f, 0xff, 0xfe,
|
||||||
|
0xff, 0xff, 0xf0, 0x00, 0x00, 0x0f, 0xff, 0xff,
|
||||||
|
0xff, 0xff, 0xe0, 0x00, 0x00, 0x07, 0xff, 0xff,
|
||||||
|
0xff, 0xff, 0x80, 0x00, 0x00, 0x01, 0xff, 0xff,
|
||||||
|
0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff,
|
||||||
|
0xff, 0xfe, 0x00, 0x00, 0x00, 0x00, 0x7f, 0xff,
|
||||||
|
0xff, 0xfc, 0x00, 0x00, 0x00, 0x00, 0x3f, 0xff,
|
||||||
|
0xff, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x1f, 0xff,
|
||||||
|
0xff, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x0f, 0xff,
|
||||||
|
0xff, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x07, 0xff,
|
||||||
|
0xff, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x03, 0xff,
|
||||||
|
};
|
||||||
|
|
||||||
|
const lv_img_dsc_t close = {
|
||||||
|
{
|
||||||
|
LV_IMG_CF_INDEXED_1BIT,
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
64,
|
||||||
|
64
|
||||||
|
},
|
||||||
|
520,
|
||||||
|
close_map,
|
||||||
|
};
|
BIN
src/displayapp/icons/navigation/close.png
Normal file
After Width: | Height: | Size: 847 B |
4
src/displayapp/icons/navigation/continue-left-white.svg
Normal file
|
@ -0,0 +1,4 @@
|
||||||
|
<svg id="WORKING_ICONS" data-name="WORKING ICONS" xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 20 20">
|
||||||
|
<title>direction</title>
|
||||||
|
<path fill="#ffffff" d="M10,5.97986l0.011,0.00183A6.06019,6.06019,0,0,1,16,12.05493V16H15.99689l0.002,1.50317A0.49614,0.49614,0,0,1,15.50269,18H14.49622A0.49622,0.49622,0,0,1,14,17.50378V12.05493a4.05782,4.05782,0,0,0-3.98877-4.07324H8.01245a0.3576,0.3576,0,0,0-.37738.54248L8.97882,11.476a0.38659,0.38659,0,0,1-.62354.40942L2.0083,7l6.347-4.922a0.38659,0.38659,0,0,1,.62354.40942L7.63507,5.43927a0.35757,0.35757,0,0,0,.37738.54242H10"/>
|
||||||
|
</svg>
|
After Width: | Height: | Size: 603 B |
96
src/displayapp/icons/navigation/continue-left.c
Normal file
|
@ -0,0 +1,96 @@
|
||||||
|
#if defined(LV_LVGL_H_INCLUDE_SIMPLE)
|
||||||
|
#include "lvgl.h"
|
||||||
|
#else
|
||||||
|
#include "lvgl/lvgl.h"
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
#ifndef LV_ATTRIBUTE_MEM_ALIGN
|
||||||
|
#define LV_ATTRIBUTE_MEM_ALIGN
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef LV_ATTRIBUTE_IMG_CONTINUE_LEFT
|
||||||
|
#define LV_ATTRIBUTE_IMG_CONTINUE_LEFT
|
||||||
|
#endif
|
||||||
|
|
||||||
|
const LV_ATTRIBUTE_MEM_ALIGN LV_ATTRIBUTE_LARGE_CONST LV_ATTRIBUTE_IMG_CONTINUE_LEFT uint8_t continue_left_map[] = {
|
||||||
|
0x04, 0x02, 0x04, 0xff, /*Color of index 0*/
|
||||||
|
0xfc, 0xfe, 0xfc, 0xff, /*Color of index 1*/
|
||||||
|
|
||||||
|
0x00, 0x00, 0x00, 0x7f, 0xc0, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0xff, 0xc0, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x01, 0xff, 0xc0, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x07, 0xff, 0xc0, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x0f, 0xff, 0xc0, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x3f, 0xff, 0x80, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x7f, 0xff, 0x80, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x01, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x07, 0xff, 0xfe, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x0f, 0xff, 0xfe, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x1f, 0xff, 0xfc, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x7f, 0xff, 0xfc, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0xff, 0xff, 0xfc, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x01, 0xff, 0xff, 0xff, 0xff, 0xc0, 0x00, 0x00,
|
||||||
|
0x03, 0xff, 0xff, 0xff, 0xff, 0xfc, 0x00, 0x00,
|
||||||
|
0x0f, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00,
|
||||||
|
0x0f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0, 0x00,
|
||||||
|
0x0f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xe0, 0x00,
|
||||||
|
0x0f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf8, 0x00,
|
||||||
|
0x0f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfc, 0x00,
|
||||||
|
0x0f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x00,
|
||||||
|
0x0f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00,
|
||||||
|
0x0f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x80,
|
||||||
|
0x07, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0,
|
||||||
|
0x03, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0,
|
||||||
|
0x00, 0xff, 0xff, 0xfc, 0x07, 0xff, 0xff, 0xe0,
|
||||||
|
0x00, 0x7f, 0xff, 0xfc, 0x00, 0xff, 0xff, 0xf0,
|
||||||
|
0x00, 0x3f, 0xff, 0xfc, 0x00, 0x3f, 0xff, 0xf0,
|
||||||
|
0x00, 0x1f, 0xff, 0xfe, 0x00, 0x1f, 0xff, 0xf0,
|
||||||
|
0x00, 0x07, 0xff, 0xfe, 0x00, 0x07, 0xff, 0xf0,
|
||||||
|
0x00, 0x03, 0xff, 0xff, 0x00, 0x03, 0xff, 0xf0,
|
||||||
|
0x00, 0x00, 0xff, 0xff, 0x00, 0x01, 0xff, 0xf0,
|
||||||
|
0x00, 0x00, 0x7f, 0xff, 0x80, 0x01, 0xff, 0xf0,
|
||||||
|
0x00, 0x00, 0x3f, 0xff, 0x80, 0x00, 0xff, 0xf0,
|
||||||
|
0x00, 0x00, 0x1f, 0xff, 0xc0, 0x00, 0x7f, 0xf0,
|
||||||
|
0x00, 0x00, 0x07, 0xff, 0xc0, 0x00, 0x7f, 0xf0,
|
||||||
|
0x00, 0x00, 0x03, 0xff, 0xc0, 0x00, 0x7f, 0xf0,
|
||||||
|
0x00, 0x00, 0x00, 0xff, 0xc0, 0x00, 0x3f, 0xf0,
|
||||||
|
0x00, 0x00, 0x00, 0x7f, 0xc0, 0x00, 0x3f, 0xf0,
|
||||||
|
0x00, 0x00, 0x00, 0x3f, 0xc0, 0x00, 0x3f, 0xf0,
|
||||||
|
0x00, 0x00, 0x00, 0x1f, 0xc0, 0x00, 0x3f, 0xf0,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3f, 0xf0,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3f, 0xf0,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3f, 0xf0,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3f, 0xf0,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3f, 0xf0,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3f, 0xf0,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3f, 0xf0,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3f, 0xf0,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3f, 0xf0,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3f, 0xf0,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3f, 0xf0,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3f, 0xf0,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3f, 0xf0,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3f, 0xf0,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3f, 0xf0,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3f, 0xf0,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3f, 0xf0,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3f, 0xf0,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3f, 0xf0,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3f, 0xf0,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3f, 0xf0,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3f, 0xf0,
|
||||||
|
};
|
||||||
|
|
||||||
|
const lv_img_dsc_t continue_left = {
|
||||||
|
{
|
||||||
|
LV_IMG_CF_INDEXED_1BIT,
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
64,
|
||||||
|
64
|
||||||
|
},
|
||||||
|
520,
|
||||||
|
continue_left_map,
|
||||||
|
};
|
BIN
src/displayapp/icons/navigation/continue-left.png
Normal file
After Width: | Height: | Size: 1.2 KiB |
4
src/displayapp/icons/navigation/continue-right-white.svg
Normal file
|
@ -0,0 +1,4 @@
|
||||||
|
<svg id="WORKING_ICONS" data-name="WORKING ICONS" xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 20 20">
|
||||||
|
<title>direction</title>
|
||||||
|
<path fill="#ffffff" d="M9.98877,7.98169A4.05782,4.05782,0,0,0,6,12.05493v5.44885A0.49622,0.49622,0,0,1,5.50378,18H4.49731a0.49614,0.49614,0,0,1-.49615-0.49683L4.00311,16H4V12.05493A6.06019,6.06019,0,0,1,9.989,5.98169L10,5.97986V5.98169h1.98755a0.35757,0.35757,0,0,0,.37738-0.54242L11.02118,2.48743A0.38659,0.38659,0,0,1,11.64471,2.078L17.9917,7l-6.347,4.88544a0.38659,0.38659,0,0,1-.62354-0.40942l1.34375-2.95184a0.3576,0.3576,0,0,0-.37738-0.54248H9.98877Z"/>
|
||||||
|
</svg>
|
After Width: | Height: | Size: 626 B |
96
src/displayapp/icons/navigation/continue-right.c
Normal file
|
@ -0,0 +1,96 @@
|
||||||
|
#if defined(LV_LVGL_H_INCLUDE_SIMPLE)
|
||||||
|
#include "lvgl.h"
|
||||||
|
#else
|
||||||
|
#include "lvgl/lvgl.h"
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
#ifndef LV_ATTRIBUTE_MEM_ALIGN
|
||||||
|
#define LV_ATTRIBUTE_MEM_ALIGN
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef LV_ATTRIBUTE_IMG_CONTINUE_RIGHT
|
||||||
|
#define LV_ATTRIBUTE_IMG_CONTINUE_RIGHT
|
||||||
|
#endif
|
||||||
|
|
||||||
|
const LV_ATTRIBUTE_MEM_ALIGN LV_ATTRIBUTE_LARGE_CONST LV_ATTRIBUTE_IMG_CONTINUE_RIGHT uint8_t continue_right_map[] = {
|
||||||
|
0x04, 0x02, 0x04, 0xff, /*Color of index 0*/
|
||||||
|
0xfc, 0xfe, 0xfc, 0xff, /*Color of index 1*/
|
||||||
|
|
||||||
|
0x00, 0x00, 0x00, 0x03, 0xfe, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x03, 0xff, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x03, 0xff, 0xc0, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x03, 0xff, 0xe0, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x03, 0xff, 0xf0, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x01, 0xff, 0xfc, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x01, 0xff, 0xfe, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x80, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x7f, 0xff, 0xe0, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x7f, 0xff, 0xf0, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x3f, 0xff, 0xf8, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x3f, 0xff, 0xfe, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x3f, 0xff, 0xff, 0x00,
|
||||||
|
0x00, 0x00, 0x03, 0xff, 0xff, 0xff, 0xff, 0x80,
|
||||||
|
0x00, 0x00, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xc0,
|
||||||
|
0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
|
||||||
|
0x00, 0x03, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
|
||||||
|
0x00, 0x07, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
|
||||||
|
0x00, 0x1f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
|
||||||
|
0x00, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
|
||||||
|
0x00, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
|
||||||
|
0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
|
||||||
|
0x01, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
|
||||||
|
0x03, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xe0,
|
||||||
|
0x03, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0,
|
||||||
|
0x07, 0xff, 0xff, 0xe0, 0x3f, 0xff, 0xff, 0x00,
|
||||||
|
0x0f, 0xff, 0xff, 0x00, 0x3f, 0xff, 0xfe, 0x00,
|
||||||
|
0x0f, 0xff, 0xfc, 0x00, 0x3f, 0xff, 0xfc, 0x00,
|
||||||
|
0x0f, 0xff, 0xf8, 0x00, 0x7f, 0xff, 0xf8, 0x00,
|
||||||
|
0x0f, 0xff, 0xe0, 0x00, 0x7f, 0xff, 0xe0, 0x00,
|
||||||
|
0x0f, 0xff, 0xc0, 0x00, 0xff, 0xff, 0xc0, 0x00,
|
||||||
|
0x0f, 0xff, 0x80, 0x00, 0xff, 0xff, 0x00, 0x00,
|
||||||
|
0x0f, 0xff, 0x80, 0x01, 0xff, 0xfe, 0x00, 0x00,
|
||||||
|
0x0f, 0xff, 0x00, 0x01, 0xff, 0xfc, 0x00, 0x00,
|
||||||
|
0x0f, 0xfe, 0x00, 0x03, 0xff, 0xf8, 0x00, 0x00,
|
||||||
|
0x0f, 0xfe, 0x00, 0x03, 0xff, 0xf0, 0x00, 0x00,
|
||||||
|
0x0f, 0xfe, 0x00, 0x03, 0xff, 0xc0, 0x00, 0x00,
|
||||||
|
0x0f, 0xfc, 0x00, 0x03, 0xff, 0x00, 0x00, 0x00,
|
||||||
|
0x0f, 0xfc, 0x00, 0x03, 0xfe, 0x00, 0x00, 0x00,
|
||||||
|
0x0f, 0xfc, 0x00, 0x03, 0xfc, 0x00, 0x00, 0x00,
|
||||||
|
0x0f, 0xfc, 0x00, 0x03, 0xf8, 0x00, 0x00, 0x00,
|
||||||
|
0x0f, 0xfc, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x0f, 0xfc, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x0f, 0xfc, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x0f, 0xfc, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x0f, 0xfc, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x0f, 0xfc, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x0f, 0xfc, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x0f, 0xfc, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x0f, 0xfc, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x0f, 0xfc, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x0f, 0xfc, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x0f, 0xfc, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x0f, 0xfc, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x0f, 0xfc, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x0f, 0xfc, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x0f, 0xfc, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x0f, 0xfc, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x0f, 0xfc, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x0f, 0xfc, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x0f, 0xfc, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x0f, 0xfc, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x0f, 0xfc, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
};
|
||||||
|
|
||||||
|
const lv_img_dsc_t continue_right = {
|
||||||
|
{
|
||||||
|
LV_IMG_CF_INDEXED_1BIT,
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
64,
|
||||||
|
64
|
||||||
|
},
|
||||||
|
520,
|
||||||
|
continue_right_map,
|
||||||
|
};
|
BIN
src/displayapp/icons/navigation/continue-right.png
Normal file
After Width: | Height: | Size: 1.2 KiB |
|
@ -0,0 +1,4 @@
|
||||||
|
<svg id="WORKING_ICONS" data-name="WORKING ICONS" xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 20 20">
|
||||||
|
<title>direction</title>
|
||||||
|
<path fill="#ffffff" d="M14.9859,14.043v3.46082A0.49621,0.49621,0,0,1,14.48974,18H13.48321a0.49614,0.49614,0,0,1-.49615-0.49683l0.0047-3.60767a5.21819,5.21819,0,0,0-1.665-4.144L8.87854,7.68585a0.35758,0.35758,0,0,0-.6405.16266l-0.91821,3.1106A0.38663,0.38663,0,0,1,6.58044,10.86L5,3l8.00476,0.44965a0.38658,0.38658,0,0,1,.20294.71777L10.25878,5.51758a0.3576,0.3576,0,0,0-.07019.6571l2.45746,2.07385A7.25158,7.25158,0,0,1,14.9859,14.043Z"/>
|
||||||
|
</svg>
|
After Width: | Height: | Size: 605 B |
96
src/displayapp/icons/navigation/continue-slight-left.c
Normal file
|
@ -0,0 +1,96 @@
|
||||||
|
#if defined(LV_LVGL_H_INCLUDE_SIMPLE)
|
||||||
|
#include "lvgl.h"
|
||||||
|
#else
|
||||||
|
#include "lvgl/lvgl.h"
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
#ifndef LV_ATTRIBUTE_MEM_ALIGN
|
||||||
|
#define LV_ATTRIBUTE_MEM_ALIGN
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef LV_ATTRIBUTE_IMG_CONTINUE_SLIGHT_LEFT
|
||||||
|
#define LV_ATTRIBUTE_IMG_CONTINUE_SLIGHT_LEFT
|
||||||
|
#endif
|
||||||
|
|
||||||
|
const LV_ATTRIBUTE_MEM_ALIGN LV_ATTRIBUTE_LARGE_CONST LV_ATTRIBUTE_IMG_CONTINUE_SLIGHT_LEFT uint8_t continue_slight_left_map[] = {
|
||||||
|
0x04, 0x02, 0x04, 0xff, /*Color of index 0*/
|
||||||
|
0xfc, 0xfe, 0xfc, 0xff, /*Color of index 1*/
|
||||||
|
|
||||||
|
0x00, 0x1f, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00,
|
||||||
|
0x00, 0x1f, 0xff, 0xff, 0xff, 0xff, 0x80, 0x00,
|
||||||
|
0x00, 0x1f, 0xff, 0xff, 0xff, 0xff, 0x80, 0x00,
|
||||||
|
0x00, 0x1f, 0xff, 0xff, 0xff, 0xff, 0x80, 0x00,
|
||||||
|
0x00, 0x1f, 0xff, 0xff, 0xff, 0xff, 0x80, 0x00,
|
||||||
|
0x00, 0x1f, 0xff, 0xff, 0xff, 0xff, 0x80, 0x00,
|
||||||
|
0x00, 0x1f, 0xff, 0xff, 0xff, 0xff, 0x80, 0x00,
|
||||||
|
0x00, 0x1f, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00,
|
||||||
|
0x00, 0x1f, 0xff, 0xff, 0xff, 0xf8, 0x00, 0x00,
|
||||||
|
0x00, 0x1f, 0xff, 0xff, 0xff, 0xe0, 0x00, 0x00,
|
||||||
|
0x00, 0x1f, 0xff, 0xff, 0xff, 0x80, 0x00, 0x00,
|
||||||
|
0x00, 0x1f, 0xff, 0xff, 0xfc, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x1f, 0xff, 0xff, 0xf0, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x0f, 0xff, 0xff, 0xfc, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x0f, 0xff, 0xff, 0xfc, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x0f, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x0f, 0xff, 0xff, 0xff, 0x80, 0x00, 0x00,
|
||||||
|
0x00, 0x0f, 0xff, 0xff, 0xff, 0xc0, 0x00, 0x00,
|
||||||
|
0x00, 0x07, 0xff, 0xff, 0xff, 0xe0, 0x00, 0x00,
|
||||||
|
0x00, 0x07, 0xff, 0xff, 0xff, 0xf8, 0x00, 0x00,
|
||||||
|
0x00, 0x07, 0xff, 0xff, 0xff, 0xfc, 0x00, 0x00,
|
||||||
|
0x00, 0x07, 0xff, 0xff, 0xff, 0xfe, 0x00, 0x00,
|
||||||
|
0x00, 0x07, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00,
|
||||||
|
0x00, 0x03, 0xff, 0xff, 0xff, 0xff, 0x80, 0x00,
|
||||||
|
0x00, 0x03, 0xff, 0xc7, 0xff, 0xff, 0x80, 0x00,
|
||||||
|
0x00, 0x03, 0xff, 0xc3, 0xff, 0xff, 0xc0, 0x00,
|
||||||
|
0x00, 0x03, 0xff, 0xc1, 0xff, 0xff, 0xe0, 0x00,
|
||||||
|
0x00, 0x03, 0xff, 0x80, 0xff, 0xff, 0xe0, 0x00,
|
||||||
|
0x00, 0x01, 0xff, 0x80, 0x7f, 0xff, 0xf0, 0x00,
|
||||||
|
0x00, 0x01, 0xff, 0x80, 0x1f, 0xff, 0xf8, 0x00,
|
||||||
|
0x00, 0x01, 0xff, 0x80, 0x0f, 0xff, 0xf8, 0x00,
|
||||||
|
0x00, 0x01, 0xff, 0x00, 0x07, 0xff, 0xf8, 0x00,
|
||||||
|
0x00, 0x01, 0xff, 0x00, 0x03, 0xff, 0xfc, 0x00,
|
||||||
|
0x00, 0x00, 0xff, 0x00, 0x01, 0xff, 0xfc, 0x00,
|
||||||
|
0x00, 0x00, 0xfe, 0x00, 0x01, 0xff, 0xfc, 0x00,
|
||||||
|
0x00, 0x00, 0xfe, 0x00, 0x00, 0xff, 0xfc, 0x00,
|
||||||
|
0x00, 0x00, 0xfe, 0x00, 0x00, 0x7f, 0xfc, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x7f, 0xfc, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x3f, 0xfc, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x3f, 0xfc, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x3f, 0xfc, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, 0xfc, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, 0xfc, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, 0xfc, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, 0xfc, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, 0xfc, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, 0xfc, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, 0xfc, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, 0xfc, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, 0xfc, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, 0xfc, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, 0xfc, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, 0xfc, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, 0xfc, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, 0xfc, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, 0xfc, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, 0xfc, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, 0xfc, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, 0xfc, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, 0xfc, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, 0xfc, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, 0xfc, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, 0xfc, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, 0xfc, 0x00,
|
||||||
|
};
|
||||||
|
|
||||||
|
const lv_img_dsc_t continue_slight_left = {
|
||||||
|
{
|
||||||
|
LV_IMG_CF_INDEXED_1BIT,
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
64,
|
||||||
|
64
|
||||||
|
},
|
||||||
|
520,
|
||||||
|
continue_slight_left_map,
|
||||||
|
};
|
BIN
src/displayapp/icons/navigation/continue-slight-left.png
Normal file
After Width: | Height: | Size: 1.2 KiB |
|
@ -0,0 +1,4 @@
|
||||||
|
<svg id="WORKING_ICONS" data-name="WORKING ICONS" xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 20 20">
|
||||||
|
<title>direction</title>
|
||||||
|
<path fill="#ffffff" d="M7.35395,8.24854L9.81141,6.17468a0.3576,0.3576,0,0,0-.07019-0.6571L6.7923,4.16742a0.38658,0.38658,0,0,1,.20294-0.71777L15,3l-1.58044,7.86a0.38663,0.38663,0,0,1-.73938.09912L11.762,7.84851a0.35758,0.35758,0,0,0-.6405-0.16266L8.67328,9.75146a5.21819,5.21819,0,0,0-1.665,4.144l0.0047,3.60767A0.49614,0.49614,0,0,1,6.51679,18H5.51026a0.49621,0.49621,0,0,1-.49615-0.49622V14.043A7.25157,7.25157,0,0,1,7.35395,8.24854Z"/>
|
||||||
|
</svg>
|
After Width: | Height: | Size: 605 B |
96
src/displayapp/icons/navigation/continue-slight-right.c
Normal file
|
@ -0,0 +1,96 @@
|
||||||
|
#if defined(LV_LVGL_H_INCLUDE_SIMPLE)
|
||||||
|
#include "lvgl.h"
|
||||||
|
#else
|
||||||
|
#include "lvgl/lvgl.h"
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
#ifndef LV_ATTRIBUTE_MEM_ALIGN
|
||||||
|
#define LV_ATTRIBUTE_MEM_ALIGN
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef LV_ATTRIBUTE_IMG_CONTINUE_SLIGHT_RIGHT
|
||||||
|
#define LV_ATTRIBUTE_IMG_CONTINUE_SLIGHT_RIGHT
|
||||||
|
#endif
|
||||||
|
|
||||||
|
const LV_ATTRIBUTE_MEM_ALIGN LV_ATTRIBUTE_LARGE_CONST LV_ATTRIBUTE_IMG_CONTINUE_SLIGHT_RIGHT uint8_t continue_slight_right_map[] = {
|
||||||
|
0x04, 0x02, 0x04, 0xff, /*Color of index 0*/
|
||||||
|
0xfc, 0xfe, 0xfc, 0xff, /*Color of index 1*/
|
||||||
|
|
||||||
|
0x00, 0x00, 0x7f, 0xff, 0xff, 0xff, 0xfc, 0x00,
|
||||||
|
0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xfc, 0x00,
|
||||||
|
0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xfc, 0x00,
|
||||||
|
0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xfc, 0x00,
|
||||||
|
0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xfc, 0x00,
|
||||||
|
0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xfc, 0x00,
|
||||||
|
0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xfc, 0x00,
|
||||||
|
0x00, 0x00, 0x3f, 0xff, 0xff, 0xff, 0xfc, 0x00,
|
||||||
|
0x00, 0x00, 0x0f, 0xff, 0xff, 0xff, 0xfc, 0x00,
|
||||||
|
0x00, 0x00, 0x03, 0xff, 0xff, 0xff, 0xfc, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xfc, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x1f, 0xff, 0xff, 0xfc, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x07, 0xff, 0xff, 0xfc, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x1f, 0xff, 0xff, 0xf8, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x1f, 0xff, 0xff, 0xf8, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x7f, 0xff, 0xff, 0xf8, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xf8, 0x00,
|
||||||
|
0x00, 0x00, 0x01, 0xff, 0xff, 0xff, 0xf8, 0x00,
|
||||||
|
0x00, 0x00, 0x03, 0xff, 0xff, 0xff, 0xf0, 0x00,
|
||||||
|
0x00, 0x00, 0x0f, 0xff, 0xff, 0xff, 0xf0, 0x00,
|
||||||
|
0x00, 0x00, 0x1f, 0xff, 0xff, 0xff, 0xf0, 0x00,
|
||||||
|
0x00, 0x00, 0x3f, 0xff, 0xff, 0xff, 0xf0, 0x00,
|
||||||
|
0x00, 0x00, 0x7f, 0xff, 0xff, 0xff, 0xf0, 0x00,
|
||||||
|
0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xe0, 0x00,
|
||||||
|
0x00, 0x00, 0xff, 0xff, 0xf1, 0xff, 0xe0, 0x00,
|
||||||
|
0x00, 0x01, 0xff, 0xff, 0xe1, 0xff, 0xe0, 0x00,
|
||||||
|
0x00, 0x03, 0xff, 0xff, 0xc1, 0xff, 0xe0, 0x00,
|
||||||
|
0x00, 0x03, 0xff, 0xff, 0x80, 0xff, 0xe0, 0x00,
|
||||||
|
0x00, 0x07, 0xff, 0xff, 0x00, 0xff, 0xc0, 0x00,
|
||||||
|
0x00, 0x0f, 0xff, 0xfc, 0x00, 0xff, 0xc0, 0x00,
|
||||||
|
0x00, 0x0f, 0xff, 0xf8, 0x00, 0xff, 0xc0, 0x00,
|
||||||
|
0x00, 0x0f, 0xff, 0xf0, 0x00, 0x7f, 0xc0, 0x00,
|
||||||
|
0x00, 0x1f, 0xff, 0xe0, 0x00, 0x7f, 0xc0, 0x00,
|
||||||
|
0x00, 0x1f, 0xff, 0xc0, 0x00, 0x7f, 0x80, 0x00,
|
||||||
|
0x00, 0x1f, 0xff, 0xc0, 0x00, 0x3f, 0x80, 0x00,
|
||||||
|
0x00, 0x1f, 0xff, 0x80, 0x00, 0x3f, 0x80, 0x00,
|
||||||
|
0x00, 0x1f, 0xff, 0x00, 0x00, 0x3f, 0x80, 0x00,
|
||||||
|
0x00, 0x1f, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x1f, 0xfe, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x1f, 0xfe, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x1f, 0xfe, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x1f, 0xfc, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x1f, 0xfc, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x1f, 0xfc, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x1f, 0xfc, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x1f, 0xfc, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x1f, 0xfc, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x1f, 0xfc, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x1f, 0xfc, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x1f, 0xfc, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x1f, 0xfc, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x1f, 0xfc, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x1f, 0xfc, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x1f, 0xfc, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x1f, 0xfc, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x1f, 0xfc, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x1f, 0xfc, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x1f, 0xfc, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x1f, 0xfc, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x1f, 0xfc, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x1f, 0xfc, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x1f, 0xfc, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x1f, 0xfc, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x1f, 0xfc, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
};
|
||||||
|
|
||||||
|
const lv_img_dsc_t continue_slight_right = {
|
||||||
|
{
|
||||||
|
LV_IMG_CF_INDEXED_1BIT,
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
64,
|
||||||
|
64
|
||||||
|
},
|
||||||
|
520,
|
||||||
|
continue_slight_right_map,
|
||||||
|
};
|
BIN
src/displayapp/icons/navigation/continue-slight-right.png
Normal file
After Width: | Height: | Size: 1.2 KiB |
|
@ -0,0 +1,4 @@
|
||||||
|
<svg id="WORKING_ICONS" data-name="WORKING ICONS" xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 20 20">
|
||||||
|
<title>direction</title>
|
||||||
|
<path fill="#ffffff" d="M14.50342,8.96637L11.55157,7.62262A0.35755,0.35755,0,0,0,11.00916,8v9.49652A0.50346,0.50346,0,0,1,10.50568,18h-0.993a0.50346,0.50346,0,0,1-.50348-0.50348V8a0.35756,0.35756,0,0,0-.54242-0.37738L5.51489,8.96637a0.38659,0.38659,0,0,1-.40942-0.62354L10.00916,2l4.90369,6.34283A0.3866,0.3866,0,0,1,14.50342,8.96637Z"/>
|
||||||
|
</svg>
|
After Width: | Height: | Size: 503 B |
96
src/displayapp/icons/navigation/continue-straight.c
Normal file
|
@ -0,0 +1,96 @@
|
||||||
|
#if defined(LV_LVGL_H_INCLUDE_SIMPLE)
|
||||||
|
#include "lvgl.h"
|
||||||
|
#else
|
||||||
|
#include "lvgl/lvgl.h"
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
#ifndef LV_ATTRIBUTE_MEM_ALIGN
|
||||||
|
#define LV_ATTRIBUTE_MEM_ALIGN
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef LV_ATTRIBUTE_IMG_CONTINUE_STRAIGHT
|
||||||
|
#define LV_ATTRIBUTE_IMG_CONTINUE_STRAIGHT
|
||||||
|
#endif
|
||||||
|
|
||||||
|
const LV_ATTRIBUTE_MEM_ALIGN LV_ATTRIBUTE_LARGE_CONST LV_ATTRIBUTE_IMG_CONTINUE_STRAIGHT uint8_t continue_straight_map[] = {
|
||||||
|
0x04, 0x02, 0x04, 0xff, /*Color of index 0*/
|
||||||
|
0xfc, 0xfe, 0xfc, 0xff, /*Color of index 1*/
|
||||||
|
|
||||||
|
0x00, 0x00, 0x00, 0x0f, 0xf0, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x1f, 0xf8, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x1f, 0xf8, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x3f, 0xfc, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x7f, 0xfe, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x01, 0xff, 0xff, 0x80, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x01, 0xff, 0xff, 0x80, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x03, 0xff, 0xff, 0xc0, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x07, 0xff, 0xff, 0xe0, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x07, 0xff, 0xff, 0xf0, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x0f, 0xff, 0xff, 0xf0, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x1f, 0xff, 0xff, 0xf8, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x3f, 0xff, 0xff, 0xfc, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x7f, 0xff, 0xff, 0xfe, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x7f, 0xff, 0xff, 0xfe, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00,
|
||||||
|
0x00, 0x01, 0xff, 0xff, 0xff, 0xff, 0x80, 0x00,
|
||||||
|
0x00, 0x03, 0xff, 0xff, 0xff, 0xff, 0xc0, 0x00,
|
||||||
|
0x00, 0x03, 0xff, 0xff, 0xff, 0xff, 0xc0, 0x00,
|
||||||
|
0x00, 0x07, 0xff, 0xff, 0xff, 0xff, 0xe0, 0x00,
|
||||||
|
0x00, 0x0f, 0xff, 0xff, 0xff, 0xff, 0xf0, 0x00,
|
||||||
|
0x00, 0x0f, 0xff, 0xff, 0xff, 0xff, 0xf0, 0x00,
|
||||||
|
0x00, 0x0f, 0xff, 0xff, 0xff, 0xff, 0xf0, 0x00,
|
||||||
|
0x00, 0x0f, 0xff, 0xff, 0xff, 0xff, 0xf0, 0x00,
|
||||||
|
0x00, 0x0f, 0xff, 0xff, 0xff, 0xff, 0xf0, 0x00,
|
||||||
|
0x00, 0x0f, 0xfe, 0x3f, 0xfc, 0x7f, 0xf0, 0x00,
|
||||||
|
0x00, 0x0f, 0xf8, 0x3f, 0xfc, 0x1f, 0xf0, 0x00,
|
||||||
|
0x00, 0x0f, 0xe0, 0x3f, 0xfc, 0x07, 0xf0, 0x00,
|
||||||
|
0x00, 0x0f, 0x80, 0x3f, 0xfc, 0x01, 0xf0, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x3f, 0xfc, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x3f, 0xfc, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x3f, 0xfc, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x3f, 0xfc, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x3f, 0xfc, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x3f, 0xfc, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x3f, 0xfc, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x3f, 0xfc, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x3f, 0xfc, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x3f, 0xfc, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x3f, 0xfc, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x3f, 0xfc, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x3f, 0xfc, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x3f, 0xfc, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x3f, 0xfc, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x3f, 0xfc, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x3f, 0xfc, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x3f, 0xfc, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x3f, 0xfc, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x3f, 0xfc, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x3f, 0xfc, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x3f, 0xfc, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x3f, 0xfc, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x3f, 0xfc, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x3f, 0xfc, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x3f, 0xfc, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x3f, 0xfc, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x3f, 0xfc, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x3f, 0xfc, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x3f, 0xfc, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x3f, 0xfc, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x3f, 0xfc, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x3f, 0xfc, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x3f, 0xfc, 0x00, 0x00, 0x00,
|
||||||
|
};
|
||||||
|
|
||||||
|
const lv_img_dsc_t continue_straight = {
|
||||||
|
{
|
||||||
|
LV_IMG_CF_INDEXED_1BIT,
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
64,
|
||||||
|
64
|
||||||
|
},
|
||||||
|
520,
|
||||||
|
continue_straight_map,
|
||||||
|
};
|
BIN
src/displayapp/icons/navigation/continue-straight.png
Normal file
After Width: | Height: | Size: 961 B |
4
src/displayapp/icons/navigation/continue-uturn-white.svg
Normal file
|
@ -0,0 +1,4 @@
|
||||||
|
<svg id="WORKING_ICONS" data-name="WORKING ICONS" xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 20 20">
|
||||||
|
<title>direction</title>
|
||||||
|
<path fill="#ffffff" d="M17.00909,8v9.49652A0.50346,0.50346,0,0,1,16.50562,18h-0.993a0.50346,0.50346,0,0,1-.50348-0.50348V8a3.5,3.5,0,1,0-7,0v4H8a0.35757,0.35757,0,0,0,.54242.37738l2.95184-1.34375a0.3866,0.3866,0,0,1,.40942.62354L7,18,2.09625,11.65717a0.3866,0.3866,0,0,1,.40942-0.62354l2.95184,1.34375A0.3576,0.3576,0,0,0,6,12H6.00909V8A5.5,5.5,0,1,1,17.00909,8Z"/>
|
||||||
|
</svg>
|
After Width: | Height: | Size: 532 B |
96
src/displayapp/icons/navigation/continue-uturn.c
Normal file
|
@ -0,0 +1,96 @@
|
||||||
|
#if defined(LV_LVGL_H_INCLUDE_SIMPLE)
|
||||||
|
#include "lvgl.h"
|
||||||
|
#else
|
||||||
|
#include "lvgl/lvgl.h"
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
#ifndef LV_ATTRIBUTE_MEM_ALIGN
|
||||||
|
#define LV_ATTRIBUTE_MEM_ALIGN
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef LV_ATTRIBUTE_IMG_CONTINUE_UTURN
|
||||||
|
#define LV_ATTRIBUTE_IMG_CONTINUE_UTURN
|
||||||
|
#endif
|
||||||
|
|
||||||
|
const LV_ATTRIBUTE_MEM_ALIGN LV_ATTRIBUTE_LARGE_CONST LV_ATTRIBUTE_IMG_CONTINUE_UTURN uint8_t continue_uturn_map[] = {
|
||||||
|
0x04, 0x02, 0x04, 0xff, /*Color of index 0*/
|
||||||
|
0xfc, 0xfe, 0xfc, 0xff, /*Color of index 1*/
|
||||||
|
|
||||||
|
0x00, 0x00, 0x00, 0x0f, 0xff, 0xff, 0xf8, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x3f, 0xff, 0xff, 0xfc, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x7f, 0xff, 0xff, 0xff, 0x00,
|
||||||
|
0x00, 0x00, 0x01, 0xff, 0xff, 0xff, 0xff, 0x80,
|
||||||
|
0x00, 0x00, 0x03, 0xff, 0xff, 0xff, 0xff, 0xc0,
|
||||||
|
0x00, 0x00, 0x07, 0xff, 0xff, 0xff, 0xff, 0xe0,
|
||||||
|
0x00, 0x00, 0x07, 0xff, 0xff, 0xff, 0xff, 0xf0,
|
||||||
|
0x00, 0x00, 0x0f, 0xff, 0xff, 0xff, 0xff, 0xf8,
|
||||||
|
0x00, 0x00, 0x1f, 0xff, 0xff, 0xff, 0xff, 0xf8,
|
||||||
|
0x00, 0x00, 0x1f, 0xff, 0xff, 0xff, 0xff, 0xfc,
|
||||||
|
0x00, 0x00, 0x3f, 0xff, 0xff, 0x7f, 0xff, 0xfe,
|
||||||
|
0x00, 0x00, 0x3f, 0xff, 0xf8, 0x0f, 0xff, 0xfe,
|
||||||
|
0x00, 0x00, 0x7f, 0xff, 0xe0, 0x03, 0xff, 0xfe,
|
||||||
|
0x00, 0x00, 0x7f, 0xff, 0x80, 0x01, 0xff, 0xfe,
|
||||||
|
0x00, 0x00, 0x7f, 0xff, 0x00, 0x00, 0xff, 0xfe,
|
||||||
|
0x00, 0x00, 0x7f, 0xfe, 0x00, 0x00, 0x7f, 0xfe,
|
||||||
|
0x00, 0x00, 0xff, 0xfc, 0x00, 0x00, 0x3f, 0xfe,
|
||||||
|
0x00, 0x00, 0xff, 0xfc, 0x00, 0x00, 0x1f, 0xfe,
|
||||||
|
0x00, 0x00, 0xff, 0xf8, 0x00, 0x00, 0x1f, 0xfe,
|
||||||
|
0x00, 0x00, 0xff, 0xf8, 0x00, 0x00, 0x0f, 0xfe,
|
||||||
|
0x00, 0x00, 0xff, 0xf8, 0x00, 0x00, 0x0f, 0xfe,
|
||||||
|
0x00, 0x00, 0xff, 0xf0, 0x00, 0x00, 0x0f, 0xfe,
|
||||||
|
0x00, 0x00, 0xff, 0xf0, 0x00, 0x00, 0x07, 0xfe,
|
||||||
|
0x00, 0x00, 0xff, 0xf0, 0x00, 0x00, 0x07, 0xfe,
|
||||||
|
0x00, 0x00, 0xff, 0xf0, 0x00, 0x00, 0x07, 0xfe,
|
||||||
|
0x00, 0x00, 0xff, 0xf0, 0x00, 0x00, 0x07, 0xfe,
|
||||||
|
0x00, 0x00, 0xff, 0xf0, 0x00, 0x00, 0x07, 0xfe,
|
||||||
|
0x00, 0x00, 0xff, 0xf0, 0x00, 0x00, 0x07, 0xfe,
|
||||||
|
0x00, 0x00, 0xff, 0xf0, 0x00, 0x00, 0x07, 0xfe,
|
||||||
|
0x00, 0x00, 0xff, 0xf0, 0x00, 0x00, 0x07, 0xfe,
|
||||||
|
0x00, 0x00, 0xff, 0xf0, 0x00, 0x00, 0x07, 0xfe,
|
||||||
|
0x00, 0x00, 0xff, 0xf0, 0x00, 0x00, 0x07, 0xfe,
|
||||||
|
0x00, 0x00, 0xff, 0xf0, 0x00, 0x00, 0x07, 0xfe,
|
||||||
|
0x7c, 0x00, 0xff, 0xf0, 0x03, 0xf0, 0x07, 0xfe,
|
||||||
|
0x7f, 0x00, 0xff, 0xf0, 0x1f, 0xf0, 0x07, 0xfe,
|
||||||
|
0x7f, 0xc0, 0xff, 0xf0, 0x7f, 0xf0, 0x07, 0xfe,
|
||||||
|
0x7f, 0xf8, 0xff, 0xf1, 0xff, 0xf0, 0x07, 0xfe,
|
||||||
|
0x7f, 0xfe, 0xff, 0xf7, 0xff, 0xf0, 0x07, 0xfe,
|
||||||
|
0x7f, 0xff, 0xff, 0xff, 0xff, 0xf0, 0x07, 0xfe,
|
||||||
|
0x7f, 0xff, 0xff, 0xff, 0xff, 0xf0, 0x07, 0xfe,
|
||||||
|
0x7f, 0xff, 0xff, 0xff, 0xff, 0xe0, 0x07, 0xfe,
|
||||||
|
0x7f, 0xff, 0xff, 0xff, 0xff, 0xe0, 0x07, 0xfe,
|
||||||
|
0x3f, 0xff, 0xff, 0xff, 0xff, 0xc0, 0x07, 0xfe,
|
||||||
|
0x3f, 0xff, 0xff, 0xff, 0xff, 0x80, 0x07, 0xfe,
|
||||||
|
0x1f, 0xff, 0xff, 0xff, 0xff, 0x00, 0x07, 0xfe,
|
||||||
|
0x0f, 0xff, 0xff, 0xff, 0xff, 0x00, 0x07, 0xfe,
|
||||||
|
0x07, 0xff, 0xff, 0xff, 0xfe, 0x00, 0x07, 0xfe,
|
||||||
|
0x03, 0xff, 0xff, 0xff, 0xfc, 0x00, 0x07, 0xfe,
|
||||||
|
0x03, 0xff, 0xff, 0xff, 0xf8, 0x00, 0x07, 0xfe,
|
||||||
|
0x01, 0xff, 0xff, 0xff, 0xf8, 0x00, 0x07, 0xfe,
|
||||||
|
0x00, 0xff, 0xff, 0xff, 0xf0, 0x00, 0x07, 0xfe,
|
||||||
|
0x00, 0x7f, 0xff, 0xff, 0xe0, 0x00, 0x07, 0xfe,
|
||||||
|
0x00, 0x7f, 0xff, 0xff, 0xc0, 0x00, 0x07, 0xfe,
|
||||||
|
0x00, 0x3f, 0xff, 0xff, 0x80, 0x00, 0x07, 0xfe,
|
||||||
|
0x00, 0x1f, 0xff, 0xff, 0x80, 0x00, 0x07, 0xfe,
|
||||||
|
0x00, 0x0f, 0xff, 0xff, 0x00, 0x00, 0x07, 0xfe,
|
||||||
|
0x00, 0x07, 0xff, 0xfe, 0x00, 0x00, 0x07, 0xfe,
|
||||||
|
0x00, 0x07, 0xff, 0xfc, 0x00, 0x00, 0x07, 0xfe,
|
||||||
|
0x00, 0x03, 0xff, 0xfc, 0x00, 0x00, 0x07, 0xfe,
|
||||||
|
0x00, 0x01, 0xff, 0xf8, 0x00, 0x00, 0x07, 0xfe,
|
||||||
|
0x00, 0x00, 0xff, 0xf0, 0x00, 0x00, 0x07, 0xfe,
|
||||||
|
0x00, 0x00, 0xff, 0xe0, 0x00, 0x00, 0x07, 0xfe,
|
||||||
|
0x00, 0x00, 0x7f, 0xc0, 0x00, 0x00, 0x07, 0xfe,
|
||||||
|
0x00, 0x00, 0x3f, 0xc0, 0x00, 0x00, 0x07, 0xfe,
|
||||||
|
};
|
||||||
|
|
||||||
|
const lv_img_dsc_t continue_uturn = {
|
||||||
|
{
|
||||||
|
LV_IMG_CF_INDEXED_1BIT,
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
64,
|
||||||
|
64
|
||||||
|
},
|
||||||
|
520,
|
||||||
|
continue_uturn_map,
|
||||||
|
};
|
BIN
src/displayapp/icons/navigation/continue-uturn.png
Normal file
After Width: | Height: | Size: 1.5 KiB |
4
src/displayapp/icons/navigation/continue-white.svg
Normal file
|
@ -0,0 +1,4 @@
|
||||||
|
<svg id="WORKING_ICONS" data-name="WORKING ICONS" xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 20 20">
|
||||||
|
<title>direction</title>
|
||||||
|
<path fill="#ffffff" d="M14.50342,8.96637L11.55157,7.62262A0.35755,0.35755,0,0,0,11.00916,8v9.49652A0.50346,0.50346,0,0,1,10.50568,18h-0.993a0.50346,0.50346,0,0,1-.50348-0.50348V8a0.35756,0.35756,0,0,0-.54242-0.37738L5.51489,8.96637a0.38659,0.38659,0,0,1-.40942-0.62354L10.00916,2l4.90369,6.34283A0.3866,0.3866,0,0,1,14.50342,8.96637Z"/>
|
||||||
|
</svg>
|
After Width: | Height: | Size: 503 B |
96
src/displayapp/icons/navigation/continue.c
Normal file
|
@ -0,0 +1,96 @@
|
||||||
|
#if defined(LV_LVGL_H_INCLUDE_SIMPLE)
|
||||||
|
#include "lvgl.h"
|
||||||
|
#else
|
||||||
|
#include "lvgl/lvgl.h"
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
#ifndef LV_ATTRIBUTE_MEM_ALIGN
|
||||||
|
#define LV_ATTRIBUTE_MEM_ALIGN
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef LV_ATTRIBUTE_IMG_CONTINUE
|
||||||
|
#define LV_ATTRIBUTE_IMG_CONTINUE
|
||||||
|
#endif
|
||||||
|
|
||||||
|
const LV_ATTRIBUTE_MEM_ALIGN LV_ATTRIBUTE_LARGE_CONST LV_ATTRIBUTE_IMG_CONTINUE uint8_t continue_map[] = {
|
||||||
|
0x04, 0x02, 0x04, 0xff, /*Color of index 0*/
|
||||||
|
0xfc, 0xfe, 0xfc, 0xff, /*Color of index 1*/
|
||||||
|
|
||||||
|
0x00, 0x00, 0x00, 0x0f, 0xf0, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x1f, 0xf8, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x1f, 0xf8, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x3f, 0xfc, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x7f, 0xfe, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x01, 0xff, 0xff, 0x80, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x01, 0xff, 0xff, 0x80, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x03, 0xff, 0xff, 0xc0, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x07, 0xff, 0xff, 0xe0, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x07, 0xff, 0xff, 0xf0, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x0f, 0xff, 0xff, 0xf0, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x1f, 0xff, 0xff, 0xf8, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x3f, 0xff, 0xff, 0xfc, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x7f, 0xff, 0xff, 0xfe, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x7f, 0xff, 0xff, 0xfe, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00,
|
||||||
|
0x00, 0x01, 0xff, 0xff, 0xff, 0xff, 0x80, 0x00,
|
||||||
|
0x00, 0x03, 0xff, 0xff, 0xff, 0xff, 0xc0, 0x00,
|
||||||
|
0x00, 0x03, 0xff, 0xff, 0xff, 0xff, 0xc0, 0x00,
|
||||||
|
0x00, 0x07, 0xff, 0xff, 0xff, 0xff, 0xe0, 0x00,
|
||||||
|
0x00, 0x0f, 0xff, 0xff, 0xff, 0xff, 0xf0, 0x00,
|
||||||
|
0x00, 0x0f, 0xff, 0xff, 0xff, 0xff, 0xf0, 0x00,
|
||||||
|
0x00, 0x0f, 0xff, 0xff, 0xff, 0xff, 0xf0, 0x00,
|
||||||
|
0x00, 0x0f, 0xff, 0xff, 0xff, 0xff, 0xf0, 0x00,
|
||||||
|
0x00, 0x0f, 0xff, 0xff, 0xff, 0xff, 0xf0, 0x00,
|
||||||
|
0x00, 0x0f, 0xfe, 0x3f, 0xfc, 0x7f, 0xf0, 0x00,
|
||||||
|
0x00, 0x0f, 0xf8, 0x3f, 0xfc, 0x1f, 0xf0, 0x00,
|
||||||
|
0x00, 0x0f, 0xe0, 0x3f, 0xfc, 0x07, 0xf0, 0x00,
|
||||||
|
0x00, 0x0f, 0x80, 0x3f, 0xfc, 0x01, 0xf0, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x3f, 0xfc, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x3f, 0xfc, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x3f, 0xfc, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x3f, 0xfc, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x3f, 0xfc, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x3f, 0xfc, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x3f, 0xfc, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x3f, 0xfc, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x3f, 0xfc, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x3f, 0xfc, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x3f, 0xfc, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x3f, 0xfc, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x3f, 0xfc, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x3f, 0xfc, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x3f, 0xfc, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x3f, 0xfc, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x3f, 0xfc, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x3f, 0xfc, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x3f, 0xfc, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x3f, 0xfc, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x3f, 0xfc, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x3f, 0xfc, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x3f, 0xfc, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x3f, 0xfc, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x3f, 0xfc, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x3f, 0xfc, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x3f, 0xfc, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x3f, 0xfc, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x3f, 0xfc, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x3f, 0xfc, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x3f, 0xfc, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x3f, 0xfc, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x3f, 0xfc, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x3f, 0xfc, 0x00, 0x00, 0x00,
|
||||||
|
};
|
||||||
|
|
||||||
|
const lv_img_dsc_t continue_icon = {
|
||||||
|
{
|
||||||
|
LV_IMG_CF_INDEXED_1BIT,
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
64,
|
||||||
|
64
|
||||||
|
},
|
||||||
|
520,
|
||||||
|
continue_map,
|
||||||
|
};
|
BIN
src/displayapp/icons/navigation/continue.png
Normal file
After Width: | Height: | Size: 961 B |
4
src/displayapp/icons/navigation/depart-left-white.svg
Normal file
|
@ -0,0 +1,4 @@
|
||||||
|
<svg id="WORKING_ICONS" data-name="WORKING ICONS" xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 20 20">
|
||||||
|
<title>direction</title>
|
||||||
|
<path fill="#ffffff" d="M15,19a2,2,0,1,1,2-2A2,2,0,0,1,15,19ZM10.00293,8.03668a4.05782,4.05782,0,0,1,3.98877,4.07324H14v1.37775A0.51232,0.51232,0,0,0,14.51233,14h0.97534A0.51232,0.51232,0,0,0,16,13.48767V12H15.98615a6.05607,6.05607,0,0,0-5.9834-5.96332l-0.011-.00183L9.99182,6.05493H9V6.04584a0.35757,0.35757,0,0,1-.37738-0.54242L9.96637,2.55157a0.38659,0.38659,0,0,0-.62354-0.40942L3,7.04584l6.34283,4.90369a0.3866,0.3866,0,0,0,.62354-0.40942L8.62262,8.58826A0.35757,0.35757,0,0,1,9,8.04584V8.05493h1"/>
|
||||||
|
</svg>
|
After Width: | Height: | Size: 670 B |
96
src/displayapp/icons/navigation/depart-left.c
Normal file
|
@ -0,0 +1,96 @@
|
||||||
|
#if defined(LV_LVGL_H_INCLUDE_SIMPLE)
|
||||||
|
#include "lvgl.h"
|
||||||
|
#else
|
||||||
|
#include "lvgl/lvgl.h"
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
#ifndef LV_ATTRIBUTE_MEM_ALIGN
|
||||||
|
#define LV_ATTRIBUTE_MEM_ALIGN
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef LV_ATTRIBUTE_IMG_DEPART_LEFT
|
||||||
|
#define LV_ATTRIBUTE_IMG_DEPART_LEFT
|
||||||
|
#endif
|
||||||
|
|
||||||
|
const LV_ATTRIBUTE_MEM_ALIGN LV_ATTRIBUTE_LARGE_CONST LV_ATTRIBUTE_IMG_DEPART_LEFT uint8_t depart_left_map[] = {
|
||||||
|
0x04, 0x02, 0x04, 0xff, /*Color of index 0*/
|
||||||
|
0xfc, 0xfe, 0xfc, 0xff, /*Color of index 1*/
|
||||||
|
|
||||||
|
0x00, 0x00, 0x00, 0x3f, 0xc0, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0xff, 0xc0, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x01, 0xff, 0xc0, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x03, 0xff, 0xc0, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x0f, 0xff, 0xc0, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x1f, 0xff, 0xc0, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x3f, 0xff, 0x80, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0xff, 0xff, 0x80, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x01, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x03, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x0f, 0xff, 0xfe, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x1f, 0xff, 0xfe, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x3f, 0xff, 0xfc, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0xff, 0xff, 0xff, 0xfe, 0x00, 0x00, 0x00,
|
||||||
|
0x01, 0xff, 0xff, 0xff, 0xff, 0xc0, 0x00, 0x00,
|
||||||
|
0x03, 0xff, 0xff, 0xff, 0xff, 0xf0, 0x00, 0x00,
|
||||||
|
0x03, 0xff, 0xff, 0xff, 0xff, 0xfc, 0x00, 0x00,
|
||||||
|
0x03, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00,
|
||||||
|
0x03, 0xff, 0xff, 0xff, 0xff, 0xff, 0x80, 0x00,
|
||||||
|
0x03, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0, 0x00,
|
||||||
|
0x03, 0xff, 0xff, 0xff, 0xff, 0xff, 0xe0, 0x00,
|
||||||
|
0x03, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0, 0x00,
|
||||||
|
0x03, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf8, 0x00,
|
||||||
|
0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf8, 0x00,
|
||||||
|
0x00, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xfc, 0x00,
|
||||||
|
0x00, 0x3f, 0xff, 0xfe, 0x1f, 0xff, 0xfe, 0x00,
|
||||||
|
0x00, 0x0f, 0xff, 0xfe, 0x03, 0xff, 0xfe, 0x00,
|
||||||
|
0x00, 0x07, 0xff, 0xfe, 0x01, 0xff, 0xfe, 0x00,
|
||||||
|
0x00, 0x03, 0xff, 0xff, 0x00, 0xff, 0xff, 0x00,
|
||||||
|
0x00, 0x01, 0xff, 0xff, 0x80, 0x7f, 0xff, 0x00,
|
||||||
|
0x00, 0x00, 0xff, 0xff, 0x80, 0x3f, 0xff, 0x00,
|
||||||
|
0x00, 0x00, 0x3f, 0xff, 0x80, 0x1f, 0xff, 0x80,
|
||||||
|
0x00, 0x00, 0x1f, 0xff, 0xc0, 0x0f, 0xff, 0x80,
|
||||||
|
0x00, 0x00, 0x0f, 0xff, 0xc0, 0x0f, 0xff, 0x80,
|
||||||
|
0x00, 0x00, 0x03, 0xff, 0xc0, 0x07, 0xff, 0x80,
|
||||||
|
0x00, 0x00, 0x01, 0xff, 0xc0, 0x07, 0xff, 0x80,
|
||||||
|
0x00, 0x00, 0x00, 0xff, 0xc0, 0x07, 0xff, 0x80,
|
||||||
|
0x00, 0x00, 0x00, 0x3f, 0xc0, 0x07, 0xff, 0x80,
|
||||||
|
0x00, 0x00, 0x00, 0x1f, 0xc0, 0x07, 0xff, 0x80,
|
||||||
|
0x00, 0x00, 0x00, 0x0f, 0xc0, 0x07, 0xff, 0x80,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0xff, 0x80,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0xff, 0x80,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0xff, 0x80,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0xff, 0x80,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0xff, 0x80,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0xff, 0x80,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0xff, 0x80,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0xff, 0x80,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0xff, 0xc0,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0xff, 0xe0,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, 0xff, 0xe0,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x3f, 0xff, 0xe0,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x3f, 0xff, 0xe0,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x3f, 0xff, 0xe0,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x3f, 0xff, 0xe0,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x3f, 0xff, 0xe0,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x3f, 0xff, 0xe0,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x3f, 0xff, 0xe0,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x3f, 0xff, 0xe0,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x3f, 0xff, 0xe0,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x3f, 0xff, 0xe0,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x3f, 0xff, 0xe0,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, 0xff, 0xe0,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0xff, 0xe0,
|
||||||
|
};
|
||||||
|
|
||||||
|
const lv_img_dsc_t depart_left = {
|
||||||
|
{
|
||||||
|
LV_IMG_CF_INDEXED_1BIT,
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
64,
|
||||||
|
64
|
||||||
|
},
|
||||||
|
520,
|
||||||
|
depart_left_map,
|
||||||
|
};
|
BIN
src/displayapp/icons/navigation/depart-left.png
Normal file
After Width: | Height: | Size: 1.4 KiB |
4
src/displayapp/icons/navigation/depart-right-white.svg
Normal file
|
@ -0,0 +1,4 @@
|
||||||
|
<svg id="WORKING_ICONS" data-name="WORKING ICONS" xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 20 20">
|
||||||
|
<title>direction</title>
|
||||||
|
<path fill="#ffffff" d="M3,17a2,2,0,1,1,2,2A2,2,0,0,1,3,17Zm7-8.94507h1V8.04584a0.35757,0.35757,0,0,1,.37738.54242L10.03363,11.5401a0.3866,0.3866,0,0,0,.62354.40942L17,7.04584,10.65717,2.14215a0.38659,0.38659,0,0,0-.62354.40942l1.34375,2.95184A0.35757,0.35757,0,0,1,11,6.04584V6.05493H10.00818l0.00012-.02008-0.011.00183A6.05607,6.05607,0,0,0,4.01385,12H4v1.48767A0.51232,0.51232,0,0,0,4.51233,14H5.48767A0.51232,0.51232,0,0,0,6,13.48767V12.10992H6.0083A4.05782,4.05782,0,0,1,9.99707,8.03668"/>
|
||||||
|
</svg>
|
After Width: | Height: | Size: 660 B |
96
src/displayapp/icons/navigation/depart-right.c
Normal file
|
@ -0,0 +1,96 @@
|
||||||
|
#if defined(LV_LVGL_H_INCLUDE_SIMPLE)
|
||||||
|
#include "lvgl.h"
|
||||||
|
#else
|
||||||
|
#include "lvgl/lvgl.h"
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
#ifndef LV_ATTRIBUTE_MEM_ALIGN
|
||||||
|
#define LV_ATTRIBUTE_MEM_ALIGN
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef LV_ATTRIBUTE_IMG_DEPART_RIGHT
|
||||||
|
#define LV_ATTRIBUTE_IMG_DEPART_RIGHT
|
||||||
|
#endif
|
||||||
|
|
||||||
|
const LV_ATTRIBUTE_MEM_ALIGN LV_ATTRIBUTE_LARGE_CONST LV_ATTRIBUTE_IMG_DEPART_RIGHT uint8_t depart_right_map[] = {
|
||||||
|
0x04, 0x02, 0x04, 0xff, /*Color of index 0*/
|
||||||
|
0xfc, 0xfe, 0xfc, 0xff, /*Color of index 1*/
|
||||||
|
|
||||||
|
0x00, 0x00, 0x00, 0x01, 0xfe, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x01, 0xff, 0x80, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x01, 0xff, 0xc0, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x01, 0xff, 0xe0, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x01, 0xff, 0xf8, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x01, 0xff, 0xfc, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0xff, 0xfe, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x80, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x7f, 0xff, 0xc0, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x7f, 0xff, 0xe0, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x3f, 0xff, 0xf8, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x3f, 0xff, 0xfc, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x1f, 0xff, 0xfe, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x3f, 0xff, 0xff, 0xff, 0x80,
|
||||||
|
0x00, 0x00, 0x01, 0xff, 0xff, 0xff, 0xff, 0xc0,
|
||||||
|
0x00, 0x00, 0x07, 0xff, 0xff, 0xff, 0xff, 0xe0,
|
||||||
|
0x00, 0x00, 0x1f, 0xff, 0xff, 0xff, 0xff, 0xe0,
|
||||||
|
0x00, 0x00, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xe0,
|
||||||
|
0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xe0,
|
||||||
|
0x00, 0x01, 0xff, 0xff, 0xff, 0xff, 0xff, 0xe0,
|
||||||
|
0x00, 0x03, 0xff, 0xff, 0xff, 0xff, 0xff, 0xe0,
|
||||||
|
0x00, 0x07, 0xff, 0xff, 0xff, 0xff, 0xff, 0xe0,
|
||||||
|
0x00, 0x0f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xe0,
|
||||||
|
0x00, 0x0f, 0xff, 0xff, 0xff, 0xff, 0xff, 0x80,
|
||||||
|
0x00, 0x1f, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00,
|
||||||
|
0x00, 0x3f, 0xff, 0xfc, 0x3f, 0xff, 0xfe, 0x00,
|
||||||
|
0x00, 0x3f, 0xff, 0xe0, 0x3f, 0xff, 0xf8, 0x00,
|
||||||
|
0x00, 0x3f, 0xff, 0xc0, 0x3f, 0xff, 0xf0, 0x00,
|
||||||
|
0x00, 0x7f, 0xff, 0x80, 0x7f, 0xff, 0xe0, 0x00,
|
||||||
|
0x00, 0x7f, 0xff, 0x00, 0xff, 0xff, 0xc0, 0x00,
|
||||||
|
0x00, 0x7f, 0xfe, 0x00, 0xff, 0xff, 0x80, 0x00,
|
||||||
|
0x00, 0xff, 0xfc, 0x00, 0xff, 0xfe, 0x00, 0x00,
|
||||||
|
0x00, 0xff, 0xf8, 0x01, 0xff, 0xfc, 0x00, 0x00,
|
||||||
|
0x00, 0xff, 0xf8, 0x01, 0xff, 0xf8, 0x00, 0x00,
|
||||||
|
0x00, 0xff, 0xf0, 0x01, 0xff, 0xe0, 0x00, 0x00,
|
||||||
|
0x00, 0xff, 0xf0, 0x01, 0xff, 0xc0, 0x00, 0x00,
|
||||||
|
0x00, 0xff, 0xf0, 0x01, 0xff, 0x80, 0x00, 0x00,
|
||||||
|
0x00, 0xff, 0xf0, 0x01, 0xfe, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0xff, 0xf0, 0x01, 0xfc, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0xff, 0xf0, 0x01, 0xf8, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0xff, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0xff, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0xff, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0xff, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0xff, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0xff, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0xff, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0xff, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x01, 0xff, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x03, 0xff, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x03, 0xff, 0xfc, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x03, 0xff, 0xfe, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x03, 0xff, 0xfe, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x03, 0xff, 0xfe, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x03, 0xff, 0xfe, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x03, 0xff, 0xfe, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x03, 0xff, 0xfe, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x03, 0xff, 0xfe, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x03, 0xff, 0xfe, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x03, 0xff, 0xfe, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x03, 0xff, 0xfe, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x03, 0xff, 0xfe, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x03, 0xff, 0xfc, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x03, 0xff, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
};
|
||||||
|
|
||||||
|
const lv_img_dsc_t depart_right = {
|
||||||
|
{
|
||||||
|
LV_IMG_CF_INDEXED_1BIT,
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
64,
|
||||||
|
64
|
||||||
|
},
|
||||||
|
520,
|
||||||
|
depart_right_map,
|
||||||
|
};
|
BIN
src/displayapp/icons/navigation/depart-right.png
Normal file
After Width: | Height: | Size: 1.4 KiB |
|
@ -0,0 +1,4 @@
|
||||||
|
<svg id="WORKING_ICONS" data-name="WORKING ICONS" xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 20 20">
|
||||||
|
<title>direction</title>
|
||||||
|
<path fill="#ffffff" d="M10,19a2,2,0,1,1,2-2A2,2,0,0,1,10,19ZM14.91284,7.34283L10.00916,1,5.10547,7.34283a0.38659,0.38659,0,0,0,.40942.62354L8.46674,6.62262a0.35542,0.35542,0,0,1,.541.36908H9v5.50006a0.49992,0.49992,0,0,0,.49994.49994h1.00012A0.49992,0.49992,0,0,0,11,12.49176V7h0.00916a0.35757,0.35757,0,0,1,.54242-0.37738l2.95184,1.34375A0.3866,0.3866,0,0,0,14.91284,7.34283Z"/>
|
||||||
|
</svg>
|
After Width: | Height: | Size: 546 B |
96
src/displayapp/icons/navigation/depart-straight.c
Normal file
|
@ -0,0 +1,96 @@
|
||||||
|
#if defined(LV_LVGL_H_INCLUDE_SIMPLE)
|
||||||
|
#include "lvgl.h"
|
||||||
|
#else
|
||||||
|
#include "lvgl/lvgl.h"
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
#ifndef LV_ATTRIBUTE_MEM_ALIGN
|
||||||
|
#define LV_ATTRIBUTE_MEM_ALIGN
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef LV_ATTRIBUTE_IMG_DEPART_STRAIGHT
|
||||||
|
#define LV_ATTRIBUTE_IMG_DEPART_STRAIGHT
|
||||||
|
#endif
|
||||||
|
|
||||||
|
const LV_ATTRIBUTE_MEM_ALIGN LV_ATTRIBUTE_LARGE_CONST LV_ATTRIBUTE_IMG_DEPART_STRAIGHT uint8_t depart_straight_map[] = {
|
||||||
|
0x04, 0x02, 0x04, 0xff, /*Color of index 0*/
|
||||||
|
0xfc, 0xfe, 0xfc, 0xff, /*Color of index 1*/
|
||||||
|
|
||||||
|
0x00, 0x00, 0x00, 0x0f, 0xf0, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x0f, 0xf0, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x1f, 0xfc, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x3f, 0xfc, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x7f, 0xfe, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x01, 0xff, 0xff, 0x80, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x03, 0xff, 0xff, 0xc0, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x07, 0xff, 0xff, 0xe0, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x0f, 0xff, 0xff, 0xf0, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x0f, 0xff, 0xff, 0xf0, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x1f, 0xff, 0xff, 0xf8, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x3f, 0xff, 0xff, 0xfc, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x7f, 0xff, 0xff, 0xfe, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00,
|
||||||
|
0x00, 0x01, 0xff, 0xff, 0xff, 0xff, 0x80, 0x00,
|
||||||
|
0x00, 0x03, 0xff, 0xff, 0xff, 0xff, 0xc0, 0x00,
|
||||||
|
0x00, 0x03, 0xff, 0xff, 0xff, 0xff, 0xc0, 0x00,
|
||||||
|
0x00, 0x03, 0xff, 0xff, 0xff, 0xff, 0xc0, 0x00,
|
||||||
|
0x00, 0x03, 0xff, 0xff, 0xff, 0xff, 0xc0, 0x00,
|
||||||
|
0x00, 0x03, 0xff, 0xff, 0xff, 0xff, 0xc0, 0x00,
|
||||||
|
0x00, 0x03, 0xff, 0xbf, 0xfd, 0xff, 0xc0, 0x00,
|
||||||
|
0x00, 0x03, 0xfe, 0x3f, 0xfc, 0x7f, 0xc0, 0x00,
|
||||||
|
0x00, 0x03, 0xf8, 0x3f, 0xfc, 0x1f, 0xc0, 0x00,
|
||||||
|
0x00, 0x03, 0xc0, 0x3f, 0xfc, 0x03, 0xc0, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x3f, 0xfc, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x3f, 0xfc, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x3f, 0xfc, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x3f, 0xfc, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x3f, 0xfc, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x3f, 0xfc, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x3f, 0xfc, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x3f, 0xfc, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x3f, 0xfc, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x3f, 0xfc, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x3f, 0xfc, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x3f, 0xfc, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x3f, 0xfc, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x3f, 0xfc, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x3f, 0xfc, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x3f, 0xfc, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x1f, 0xf8, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x0f, 0xf0, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x1f, 0xf8, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x7f, 0xfe, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x01, 0xff, 0xff, 0x80, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x01, 0xff, 0xff, 0x80, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x01, 0xff, 0xff, 0x80, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x01, 0xff, 0xff, 0x80, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x01, 0xff, 0xff, 0x80, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x01, 0xff, 0xff, 0x80, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x01, 0xff, 0xff, 0x80, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x01, 0xff, 0xff, 0x80, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x01, 0xff, 0xff, 0x80, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x01, 0xff, 0xff, 0x80, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x7f, 0xfe, 0x00, 0x00, 0x00,
|
||||||
|
};
|
||||||
|
|
||||||
|
const lv_img_dsc_t depart_straight = {
|
||||||
|
{
|
||||||
|
LV_IMG_CF_INDEXED_1BIT,
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
64,
|
||||||
|
64
|
||||||
|
},
|
||||||
|
520,
|
||||||
|
depart_straight_map,
|
||||||
|
};
|
BIN
src/displayapp/icons/navigation/depart-straight.png
Normal file
After Width: | Height: | Size: 1.1 KiB |
4
src/displayapp/icons/navigation/depart-white.svg
Normal file
|
@ -0,0 +1,4 @@
|
||||||
|
<svg id="WORKING_ICONS" data-name="WORKING ICONS" xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 20 20">
|
||||||
|
<title>direction</title>
|
||||||
|
<path fill="#ffffff" d="M9.98172,19a2,2,0,1,1,2-2A2,2,0,0,1,9.98172,19ZM14.89456,7.34283L9.99087,1,5.08719,7.34283a0.38659,0.38659,0,0,0,.40942.62354L8.44845,6.62262a0.35542,0.35542,0,0,1,.541.36908H8.98172v5.50006a0.49992,0.49992,0,0,0,.49994.49994h1.00012a0.49992,0.49992,0,0,0,.49994-0.49994V7h0.00916a0.35757,0.35757,0,0,1,.54242-0.37738l2.95184,1.34375A0.3866,0.3866,0,0,0,14.89456,7.34283Z"/>
|
||||||
|
</svg>
|
After Width: | Height: | Size: 564 B |
96
src/displayapp/icons/navigation/depart.c
Normal file
|
@ -0,0 +1,96 @@
|
||||||
|
#if defined(LV_LVGL_H_INCLUDE_SIMPLE)
|
||||||
|
#include "lvgl.h"
|
||||||
|
#else
|
||||||
|
#include "lvgl/lvgl.h"
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
#ifndef LV_ATTRIBUTE_MEM_ALIGN
|
||||||
|
#define LV_ATTRIBUTE_MEM_ALIGN
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef LV_ATTRIBUTE_IMG_DEPART
|
||||||
|
#define LV_ATTRIBUTE_IMG_DEPART
|
||||||
|
#endif
|
||||||
|
|
||||||
|
const LV_ATTRIBUTE_MEM_ALIGN LV_ATTRIBUTE_LARGE_CONST LV_ATTRIBUTE_IMG_DEPART uint8_t depart_map[] = {
|
||||||
|
0x04, 0x02, 0x04, 0xff, /*Color of index 0*/
|
||||||
|
0xfc, 0xfe, 0xfc, 0xff, /*Color of index 1*/
|
||||||
|
|
||||||
|
0x00, 0x00, 0x00, 0x0f, 0xf0, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x0f, 0xf0, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x3f, 0xf8, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x3f, 0xfc, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x7f, 0xfe, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x01, 0xff, 0xff, 0x80, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x03, 0xff, 0xff, 0xc0, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x07, 0xff, 0xff, 0xe0, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x0f, 0xff, 0xff, 0xf0, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x0f, 0xff, 0xff, 0xf0, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x1f, 0xff, 0xff, 0xf8, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x3f, 0xff, 0xff, 0xfc, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x7f, 0xff, 0xff, 0xfe, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00,
|
||||||
|
0x00, 0x01, 0xff, 0xff, 0xff, 0xff, 0x80, 0x00,
|
||||||
|
0x00, 0x03, 0xff, 0xff, 0xff, 0xff, 0xc0, 0x00,
|
||||||
|
0x00, 0x03, 0xff, 0xff, 0xff, 0xff, 0xc0, 0x00,
|
||||||
|
0x00, 0x03, 0xff, 0xff, 0xff, 0xff, 0xc0, 0x00,
|
||||||
|
0x00, 0x03, 0xff, 0xff, 0xff, 0xff, 0xc0, 0x00,
|
||||||
|
0x00, 0x03, 0xff, 0xff, 0xff, 0xff, 0xc0, 0x00,
|
||||||
|
0x00, 0x03, 0xff, 0xbf, 0xfd, 0xff, 0xc0, 0x00,
|
||||||
|
0x00, 0x03, 0xfe, 0x3f, 0xfc, 0x7f, 0xc0, 0x00,
|
||||||
|
0x00, 0x03, 0xf8, 0x3f, 0xfc, 0x1f, 0xc0, 0x00,
|
||||||
|
0x00, 0x03, 0xc0, 0x3f, 0xfc, 0x03, 0xc0, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x3f, 0xfc, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x3f, 0xfc, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x3f, 0xfc, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x3f, 0xfc, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x3f, 0xfc, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x3f, 0xfc, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x3f, 0xfc, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x3f, 0xfc, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x3f, 0xfc, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x3f, 0xfc, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x3f, 0xfc, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x3f, 0xfc, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x3f, 0xfc, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x3f, 0xfc, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x3f, 0xfc, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x3f, 0xfc, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x1f, 0xf8, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x0f, 0xf0, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x1f, 0xf8, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x7f, 0xfe, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x01, 0xff, 0xff, 0x80, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x01, 0xff, 0xff, 0x80, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x01, 0xff, 0xff, 0x80, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x01, 0xff, 0xff, 0x80, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x01, 0xff, 0xff, 0x80, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x01, 0xff, 0xff, 0x80, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x01, 0xff, 0xff, 0x80, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x01, 0xff, 0xff, 0x80, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x01, 0xff, 0xff, 0x80, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x01, 0xff, 0xff, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x7f, 0xfe, 0x00, 0x00, 0x00,
|
||||||
|
};
|
||||||
|
|
||||||
|
const lv_img_dsc_t depart = {
|
||||||
|
{
|
||||||
|
LV_IMG_CF_INDEXED_1BIT,
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
64,
|
||||||
|
64
|
||||||
|
},
|
||||||
|
520,
|
||||||
|
depart_map,
|
||||||
|
};
|
BIN
src/displayapp/icons/navigation/depart.png
Normal file
After Width: | Height: | Size: 1.1 KiB |
|
@ -0,0 +1,4 @@
|
||||||
|
<svg id="WORKING_ICONS" data-name="WORKING ICONS" xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 20 20">
|
||||||
|
<title>direction</title>
|
||||||
|
<path fill="#ffffff" d="M16.50354,6.2A0.29678,0.29678,0,0,1,16.8,6.49646V7.50354A0.29678,0.29678,0,0,1,16.50354,7.8H7.2V6.2h9.30353m0-.2H7V8h9.50354A0.49645,0.49645,0,0,0,17,7.50354V6.49646A0.49645,0.49645,0,0,0,16.50354,6h0ZM10,5.98169H8.01245a0.35757,0.35757,0,0,1-.37738-0.54242L8.97882,2.48743A0.38659,0.38659,0,0,0,8.35529,2.078L2.0083,7l6.347,4.88544A0.38659,0.38659,0,0,0,8.97882,11.476L7.63507,8.52417a0.3576,0.3576,0,0,1,.37738-0.54248h1.99878A4.05782,4.05782,0,0,1,14,12.05493v5.44885A0.49622,0.49622,0,0,0,14.49622,18h1.00647a0.49614,0.49614,0,0,0,.49615-0.49683L15.99689,16H16V12.05493a6.06019,6.06019,0,0,0-5.989-6.07324L10,5.97986"/>
|
||||||
|
</svg>
|
After Width: | Height: | Size: 813 B |
96
src/displayapp/icons/navigation/end-of-road-left.c
Normal file
|
@ -0,0 +1,96 @@
|
||||||
|
#if defined(LV_LVGL_H_INCLUDE_SIMPLE)
|
||||||
|
#include "lvgl.h"
|
||||||
|
#else
|
||||||
|
#include "lvgl/lvgl.h"
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
#ifndef LV_ATTRIBUTE_MEM_ALIGN
|
||||||
|
#define LV_ATTRIBUTE_MEM_ALIGN
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef LV_ATTRIBUTE_IMG_END_OF_ROAD_LEFT
|
||||||
|
#define LV_ATTRIBUTE_IMG_END_OF_ROAD_LEFT
|
||||||
|
#endif
|
||||||
|
|
||||||
|
const LV_ATTRIBUTE_MEM_ALIGN LV_ATTRIBUTE_LARGE_CONST LV_ATTRIBUTE_IMG_END_OF_ROAD_LEFT uint8_t end_of_road_left_map[] = {
|
||||||
|
0x04, 0x02, 0x04, 0xff, /*Color of index 0*/
|
||||||
|
0xfc, 0xfe, 0xfc, 0xff, /*Color of index 1*/
|
||||||
|
|
||||||
|
0x00, 0x00, 0x01, 0xff, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x03, 0xff, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x07, 0xff, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x1f, 0xff, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x3f, 0xff, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0xff, 0xfe, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x01, 0xff, 0xfe, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x03, 0xff, 0xfc, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x07, 0xff, 0xfc, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x1f, 0xff, 0xf8, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x3f, 0xff, 0xf8, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x7f, 0xff, 0xf0, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x01, 0xff, 0xff, 0xf0, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x03, 0xff, 0xff, 0xf0, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x07, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfc,
|
||||||
|
0x0f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfc,
|
||||||
|
0x3f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfc,
|
||||||
|
0x3f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfc,
|
||||||
|
0x3f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfc,
|
||||||
|
0x3f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xe0, 0x1c,
|
||||||
|
0x3f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0, 0x1c,
|
||||||
|
0x3f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfc,
|
||||||
|
0x3f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfc,
|
||||||
|
0x3f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfc,
|
||||||
|
0x1f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfc,
|
||||||
|
0x0f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfc,
|
||||||
|
0x03, 0xff, 0xff, 0xe0, 0x1f, 0xff, 0xff, 0x80,
|
||||||
|
0x01, 0xff, 0xff, 0xf0, 0x03, 0xff, 0xff, 0x80,
|
||||||
|
0x00, 0xff, 0xff, 0xf0, 0x00, 0xff, 0xff, 0xc0,
|
||||||
|
0x00, 0x7f, 0xff, 0xf8, 0x00, 0x7f, 0xff, 0xc0,
|
||||||
|
0x00, 0x1f, 0xff, 0xf8, 0x00, 0x1f, 0xff, 0xc0,
|
||||||
|
0x00, 0x0f, 0xff, 0xfc, 0x00, 0x0f, 0xff, 0xe0,
|
||||||
|
0x00, 0x03, 0xff, 0xfc, 0x00, 0x07, 0xff, 0xe0,
|
||||||
|
0x00, 0x01, 0xff, 0xfe, 0x00, 0x07, 0xff, 0xe0,
|
||||||
|
0x00, 0x00, 0xff, 0xfe, 0x00, 0x03, 0xff, 0xf0,
|
||||||
|
0x00, 0x00, 0x7f, 0xff, 0x00, 0x03, 0xff, 0xf0,
|
||||||
|
0x00, 0x00, 0x1f, 0xff, 0x00, 0x01, 0xff, 0xf0,
|
||||||
|
0x00, 0x00, 0x0f, 0xff, 0x00, 0x01, 0xff, 0xf0,
|
||||||
|
0x00, 0x00, 0x03, 0xff, 0x00, 0x01, 0xff, 0xf0,
|
||||||
|
0x00, 0x00, 0x01, 0xff, 0x00, 0x00, 0xff, 0xf0,
|
||||||
|
0x00, 0x00, 0x00, 0xff, 0x00, 0x00, 0xff, 0xf0,
|
||||||
|
0x00, 0x00, 0x00, 0x7f, 0x00, 0x00, 0xff, 0xf0,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xf0,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xf0,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xf0,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xf0,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xf0,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xf0,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xf0,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xf0,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xf0,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xf0,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xf0,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xf0,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xf0,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xf0,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xf0,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xf0,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xf0,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xf0,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xf0,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xf0,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xf0,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xf0,
|
||||||
|
};
|
||||||
|
|
||||||
|
const lv_img_dsc_t end_of_road_left = {
|
||||||
|
{
|
||||||
|
LV_IMG_CF_INDEXED_1BIT,
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
64,
|
||||||
|
64
|
||||||
|
},
|
||||||
|
520,
|
||||||
|
end_of_road_left_map,
|
||||||
|
};
|
BIN
src/displayapp/icons/navigation/end-of-road-left.png
Normal file
After Width: | Height: | Size: 1.3 KiB |
|
@ -0,0 +1,4 @@
|
||||||
|
<svg id="WORKING_ICONS" data-name="WORKING ICONS" xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 20 20">
|
||||||
|
<title>direction</title>
|
||||||
|
<path fill="#ffffff" d="M12.8,6.2V7.8H2.50119A0.30152,0.30152,0,0,1,2.2,7.49882V6.50118A0.30152,0.30152,0,0,1,2.50119,6.2H12.8M13,6H2.50119A0.50119,0.50119,0,0,0,2,6.50118V7.49882A0.50119,0.50119,0,0,0,2.50119,8H13V6h0ZM10,7.98169h1.98755a0.3576,0.3576,0,0,1,.37738.54248L11.02118,11.476a0.38659,0.38659,0,0,0,.62354.40942L17.9917,7l-6.347-4.922a0.38659,0.38659,0,0,0-.62354.40942l1.34375,2.95184a0.35757,0.35757,0,0,1-.37738.54242H10V5.97986l-0.011.00183A6.06019,6.06019,0,0,0,4,12.05493V16H4.00311l-0.002,1.50317A0.49614,0.49614,0,0,0,4.49731,18H5.50378A0.49622,0.49622,0,0,0,6,17.50378V12.05493A4.05782,4.05782,0,0,1,9.98877,7.98169H10Z"/>
|
||||||
|
</svg>
|
After Width: | Height: | Size: 808 B |
96
src/displayapp/icons/navigation/end-of-road-right.c
Normal file
|
@ -0,0 +1,96 @@
|
||||||
|
#if defined(LV_LVGL_H_INCLUDE_SIMPLE)
|
||||||
|
#include "lvgl.h"
|
||||||
|
#else
|
||||||
|
#include "lvgl/lvgl.h"
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
#ifndef LV_ATTRIBUTE_MEM_ALIGN
|
||||||
|
#define LV_ATTRIBUTE_MEM_ALIGN
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef LV_ATTRIBUTE_IMG_END_OF_ROAD_RIGHT
|
||||||
|
#define LV_ATTRIBUTE_IMG_END_OF_ROAD_RIGHT
|
||||||
|
#endif
|
||||||
|
|
||||||
|
const LV_ATTRIBUTE_MEM_ALIGN LV_ATTRIBUTE_LARGE_CONST LV_ATTRIBUTE_IMG_END_OF_ROAD_RIGHT uint8_t end_of_road_right_map[] = {
|
||||||
|
0x04, 0x02, 0x04, 0xff, /*Color of index 0*/
|
||||||
|
0xfc, 0xfe, 0xfc, 0xff, /*Color of index 1*/
|
||||||
|
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x3f, 0xe0, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x3f, 0xf0, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x3f, 0xfc, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x3f, 0xfe, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x3f, 0xff, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x1f, 0xff, 0xc0, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x1f, 0xff, 0xe0, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x0f, 0xff, 0xf0, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x0f, 0xff, 0xf8, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x07, 0xff, 0xfe, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x07, 0xff, 0xff, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x03, 0xff, 0xff, 0x80,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x03, 0xff, 0xff, 0xe0,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x03, 0xff, 0xff, 0xf0,
|
||||||
|
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf8,
|
||||||
|
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfc,
|
||||||
|
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
|
||||||
|
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
|
||||||
|
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
|
||||||
|
0xe0, 0x01, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
|
||||||
|
0xe0, 0x03, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
|
||||||
|
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
|
||||||
|
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
|
||||||
|
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
|
||||||
|
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe,
|
||||||
|
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfc,
|
||||||
|
0x00, 0x7f, 0xff, 0xfe, 0x03, 0xff, 0xff, 0xf0,
|
||||||
|
0x00, 0xff, 0xff, 0xf0, 0x03, 0xff, 0xff, 0xe0,
|
||||||
|
0x00, 0xff, 0xff, 0xc0, 0x03, 0xff, 0xff, 0xc0,
|
||||||
|
0x00, 0xff, 0xff, 0x80, 0x07, 0xff, 0xff, 0x80,
|
||||||
|
0x01, 0xff, 0xfe, 0x00, 0x07, 0xff, 0xfe, 0x00,
|
||||||
|
0x01, 0xff, 0xfc, 0x00, 0x0f, 0xff, 0xfc, 0x00,
|
||||||
|
0x01, 0xff, 0xf8, 0x00, 0x0f, 0xff, 0xf0, 0x00,
|
||||||
|
0x03, 0xff, 0xf8, 0x00, 0x1f, 0xff, 0xe0, 0x00,
|
||||||
|
0x03, 0xff, 0xf0, 0x00, 0x1f, 0xff, 0xc0, 0x00,
|
||||||
|
0x03, 0xff, 0xe0, 0x00, 0x3f, 0xff, 0x80, 0x00,
|
||||||
|
0x03, 0xff, 0xe0, 0x00, 0x3f, 0xff, 0x00, 0x00,
|
||||||
|
0x03, 0xff, 0xe0, 0x00, 0x3f, 0xfc, 0x00, 0x00,
|
||||||
|
0x03, 0xff, 0xc0, 0x00, 0x3f, 0xf0, 0x00, 0x00,
|
||||||
|
0x03, 0xff, 0xc0, 0x00, 0x3f, 0xe0, 0x00, 0x00,
|
||||||
|
0x03, 0xff, 0xc0, 0x00, 0x3f, 0xc0, 0x00, 0x00,
|
||||||
|
0x03, 0xff, 0xc0, 0x00, 0x3f, 0x80, 0x00, 0x00,
|
||||||
|
0x03, 0xff, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x03, 0xff, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x03, 0xff, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x03, 0xff, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x03, 0xff, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x03, 0xff, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x03, 0xff, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x03, 0xff, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x03, 0xff, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x03, 0xff, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x03, 0xff, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x03, 0xff, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x03, 0xff, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x03, 0xff, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x03, 0xff, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x03, 0xff, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x03, 0xff, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x03, 0xff, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x03, 0xff, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x03, 0xff, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x03, 0xff, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x03, 0xff, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
};
|
||||||
|
|
||||||
|
const lv_img_dsc_t end_of_road_right = {
|
||||||
|
{
|
||||||
|
LV_IMG_CF_INDEXED_1BIT,
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
64,
|
||||||
|
64
|
||||||
|
},
|
||||||
|
520,
|
||||||
|
end_of_road_right_map,
|
||||||
|
};
|
BIN
src/displayapp/icons/navigation/end-of-road-right.png
Normal file
After Width: | Height: | Size: 1.2 KiB |
4
src/displayapp/icons/navigation/ferry-white.svg
Normal file
|
@ -0,0 +1,4 @@
|
||||||
|
<svg id="WORKING_ICONS" data-name="WORKING ICONS" xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 20 20">
|
||||||
|
<title>ferry</title>
|
||||||
|
<path fill="#ffffff" d="m 7.3995155,14.184682 c 0.8083073,0.01079 1.5892915,0.293603 2.2170029,0.802914 l 0.3115788,0.275628 0.059919,0 0.3714978,-0.335547 c 1.17645,-0.972485 2.850946,-1.060086 4.122427,-0.215708 l 2.708339,-5.3208066 -1.79757,-1.1983797 0,-4.2542487 C 15.336866,2.9798301 14.555162,2.2242515 13.59514,2.2008831 l -0.59919,0 c 0.0411,-0.6207608 -0.4289,-1.1572754 -1.049661,-1.1983799 -0.04949,-0.00324 -0.09923,-0.00324 -0.148719,0 l -3.5951399,0 c -0.6207608,-0.041104 -1.1572755,0.4289002 -1.1983799,1.049661 -0.00324,0.049493 -0.00324,0.099226 0,0.1487189 l -0.59919,0 C 5.4448381,2.2242511 4.6631348,2.9798301 4.6072903,3.938534 l 0,4.2542487 -1.7975698,1.1983797 2.6963548,5.4286606 C 6.0624831,14.429271 6.720154,14.208649 7.3995155,14.184682 Z M 5.8056702,3.938534 c 0.012583,-0.3108597 0.2747886,-0.552573 0.5855285,-0.53999 0.00455,2.397e-4 0.00911,4.794e-4 0.013661,7.19e-4 l 7.1902793,0 c 0.310381,-0.020492 0.578698,0.2143902 0.59919,0.5247706 0.0017,0.024807 0.0017,0.049613 0,0.074419 l 0,3.5951398 L 9.9999999,5.1968329 5.8056702,7.5336738 c 0,0 0,-3.5951398 0,-3.5951398 z m 11.9837988,12.642908 0,1.19838 c -0.314695,0.02325 -0.607459,0.16969 -0.814898,0.407449 -0.325599,0.345493 -0.74036,0.594276 -1.19838,0.719028 -0.736644,0.217506 -1.533326,0.05093 -2.121133,-0.443401 l -0.467367,-0.419433 c -0.364667,-0.36263 -0.953551,-0.36263 -1.318218,0 -0.167773,0.143806 -0.323562,0.299595 -0.503319,0.443401 -0.878174,0.701771 -2.1347949,0.666299 -2.9719831,-0.08389 l -0.4673682,-0.41943 c -0.343216,-0.299834 -0.8551639,-0.299834 -1.1983799,0 C 6.5007306,18.163303 6.297006,18.367028 6.0693138,18.546785 5.2252949,19.17174 4.0641846,19.14214 3.253121,18.474885 L 2.8816233,18.151319 C 2.7082177,17.952748 2.4708186,17.821286 2.2105305,17.779822 l 0,-1.19838 c 0.3097812,-0.03835 0.6237567,0.02025 0.8987849,0.167773 0.3333893,0.206361 0.6500013,0.438727 0.9467202,0.69506 0.2457877,0.267838 0.6168061,0.382283 0.9706877,0.299595 0.1348177,-0.03991 0.2608873,-0.104978 0.3714978,-0.191741 0.1917408,-0.143805 0.3475302,-0.311578 0.5392709,-0.467368 0.8515688,-0.705606 2.0844621,-0.705606 2.9360308,0 0.1917408,0.15579 0.3714978,0.335547 0.5632386,0.491336 0.343216,0.299835 0.8551636,0.299835 1.1983796,0 0.191741,-0.155789 0.371498,-0.335546 0.563239,-0.491336 0.853606,-0.712197 2.094409,-0.712197 2.948015,0 0.179757,0.15579 0.34753,0.323563 0.527287,0.467368 0.343216,0.299835 0.855164,0.299835 1.19838,0 L 16.4353,17.060794 c 0.382882,-0.31062 0.861155,-0.479951 1.354169,-0.479352 z"/>
|
||||||
|
</svg>
|
After Width: | Height: | Size: 2.6 KiB |
96
src/displayapp/icons/navigation/ferry.c
Normal file
|
@ -0,0 +1,96 @@
|
||||||
|
#if defined(LV_LVGL_H_INCLUDE_SIMPLE)
|
||||||
|
#include "lvgl.h"
|
||||||
|
#else
|
||||||
|
#include "lvgl/lvgl.h"
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
#ifndef LV_ATTRIBUTE_MEM_ALIGN
|
||||||
|
#define LV_ATTRIBUTE_MEM_ALIGN
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef LV_ATTRIBUTE_IMG_FERRY
|
||||||
|
#define LV_ATTRIBUTE_IMG_FERRY
|
||||||
|
#endif
|
||||||
|
|
||||||
|
const LV_ATTRIBUTE_MEM_ALIGN LV_ATTRIBUTE_LARGE_CONST LV_ATTRIBUTE_IMG_FERRY uint8_t ferry_map[] = {
|
||||||
|
0x04, 0x02, 0x04, 0xff, /*Color of index 0*/
|
||||||
|
0xfc, 0xfe, 0xfc, 0xff, /*Color of index 1*/
|
||||||
|
|
||||||
|
0x00, 0x00, 0x0f, 0xff, 0xff, 0xf0, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x1f, 0xff, 0xff, 0xf8, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00,
|
||||||
|
0x00, 0x03, 0xff, 0xff, 0xff, 0xff, 0xc0, 0x00,
|
||||||
|
0x00, 0x0f, 0xff, 0xff, 0xff, 0xff, 0xf0, 0x00,
|
||||||
|
0x00, 0x0f, 0xff, 0xff, 0xff, 0xff, 0xf0, 0x00,
|
||||||
|
0x00, 0x1f, 0xff, 0xff, 0xff, 0xff, 0xf8, 0x00,
|
||||||
|
0x00, 0x1f, 0xff, 0xff, 0xff, 0xff, 0xf8, 0x00,
|
||||||
|
0x00, 0x1f, 0xff, 0xff, 0xff, 0xff, 0xf8, 0x00,
|
||||||
|
0x00, 0x1f, 0xff, 0xff, 0xff, 0xff, 0xf8, 0x00,
|
||||||
|
0x00, 0x1f, 0xff, 0xff, 0xff, 0xff, 0xf8, 0x00,
|
||||||
|
0x00, 0x1f, 0xe0, 0x00, 0x00, 0x07, 0xf8, 0x00,
|
||||||
|
0x00, 0x1f, 0xe0, 0x00, 0x00, 0x07, 0xf8, 0x00,
|
||||||
|
0x00, 0x1f, 0xe0, 0x07, 0xe0, 0x07, 0xf8, 0x00,
|
||||||
|
0x00, 0x1f, 0xe0, 0x0f, 0xf0, 0x07, 0xf8, 0x00,
|
||||||
|
0x00, 0x1f, 0xe0, 0x7f, 0xfc, 0x07, 0xf8, 0x00,
|
||||||
|
0x00, 0x1f, 0xe0, 0xff, 0xff, 0x07, 0xf8, 0x00,
|
||||||
|
0x00, 0x1f, 0xe3, 0xff, 0xff, 0xc7, 0xf8, 0x00,
|
||||||
|
0x00, 0x1f, 0xef, 0xff, 0xff, 0xf7, 0xf8, 0x00,
|
||||||
|
0x00, 0x1f, 0xff, 0xff, 0xff, 0xff, 0xf8, 0x00,
|
||||||
|
0x00, 0x1f, 0xff, 0xff, 0xff, 0xff, 0xf8, 0x00,
|
||||||
|
0x00, 0x1f, 0xff, 0xff, 0xff, 0xff, 0xf8, 0x00,
|
||||||
|
0x00, 0x1f, 0xff, 0xff, 0xff, 0xff, 0xf8, 0x00,
|
||||||
|
0x00, 0x1f, 0xff, 0xff, 0xff, 0xff, 0xf8, 0x00,
|
||||||
|
0x00, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x00,
|
||||||
|
0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00,
|
||||||
|
0x03, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0,
|
||||||
|
0x07, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xe0,
|
||||||
|
0x0f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
|
||||||
|
0x0f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
|
||||||
|
0x0f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
|
||||||
|
0x0f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
|
||||||
|
0x07, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xe0,
|
||||||
|
0x07, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xe0,
|
||||||
|
0x03, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0,
|
||||||
|
0x03, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0,
|
||||||
|
0x01, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x80,
|
||||||
|
0x01, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x80,
|
||||||
|
0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00,
|
||||||
|
0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00,
|
||||||
|
0x00, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x00,
|
||||||
|
0x00, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x00,
|
||||||
|
0x00, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xfc, 0x00,
|
||||||
|
0x00, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xfc, 0x00,
|
||||||
|
0x00, 0x1f, 0xff, 0xff, 0xff, 0xff, 0xf8, 0x00,
|
||||||
|
0x00, 0x1f, 0xff, 0xff, 0xff, 0xff, 0xf8, 0x00,
|
||||||
|
0x00, 0x0f, 0xff, 0xff, 0xff, 0xff, 0xf0, 0x00,
|
||||||
|
0x00, 0x0f, 0xff, 0xff, 0xff, 0xff, 0xf0, 0x00,
|
||||||
|
0x00, 0x07, 0xff, 0xff, 0xff, 0xff, 0xe0, 0x00,
|
||||||
|
0x00, 0x07, 0xf8, 0x7f, 0xfc, 0x0f, 0xc0, 0x00,
|
||||||
|
0x00, 0x03, 0xe0, 0x1f, 0xf8, 0x03, 0xc0, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x0f, 0xe0, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x03, 0xc0, 0x00, 0x00, 0x00,
|
||||||
|
0x0f, 0x00, 0x1f, 0xe0, 0x07, 0xfc, 0x00, 0xf0,
|
||||||
|
0x0f, 0xc0, 0xff, 0xf8, 0x1f, 0xff, 0x03, 0xf0,
|
||||||
|
0x0f, 0xf1, 0xff, 0xfc, 0x3f, 0xff, 0x8f, 0xf0,
|
||||||
|
0x0f, 0xfb, 0xff, 0xff, 0xff, 0xff, 0xdf, 0xf0,
|
||||||
|
0x0f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
|
||||||
|
0x0f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
|
||||||
|
0x0f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
|
||||||
|
0x0f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
|
||||||
|
0x0f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
|
||||||
|
0x0f, 0xff, 0xfd, 0xff, 0xff, 0x3f, 0xff, 0xe0,
|
||||||
|
0x07, 0xff, 0xf8, 0xff, 0xff, 0x3f, 0xff, 0xc0,
|
||||||
|
};
|
||||||
|
|
||||||
|
const lv_img_dsc_t ferry = {
|
||||||
|
{
|
||||||
|
LV_IMG_CF_INDEXED_1BIT,
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
64,
|
||||||
|
64
|
||||||
|
},
|
||||||
|
520,
|
||||||
|
ferry_map,
|
||||||
|
};
|
BIN
src/displayapp/icons/navigation/ferry.png
Normal file
After Width: | Height: | Size: 1.7 KiB |
4
src/displayapp/icons/navigation/flag-white.svg
Normal file
|
@ -0,0 +1,4 @@
|
||||||
|
<svg id="WORKING_ICONS" data-name="WORKING ICONS" xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 20 20">
|
||||||
|
<title>direction</title>
|
||||||
|
<path fill="#ffffff" d="M3.5,18h0A0.5,0.5,0,0,1,3,17.5V3.5A0.5,0.5,0,0,1,3.5,3h0a0.5,0.5,0,0,1,.5.5v14A0.5,0.5,0,0,1,3.5,18ZM13.33333,7L17,3H6v8H17Z"/>
|
||||||
|
</svg>
|
After Width: | Height: | Size: 317 B |
96
src/displayapp/icons/navigation/flag.c
Normal file
|
@ -0,0 +1,96 @@
|
||||||
|
#if defined(LV_LVGL_H_INCLUDE_SIMPLE)
|
||||||
|
#include "lvgl.h"
|
||||||
|
#else
|
||||||
|
#include "lvgl/lvgl.h"
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
#ifndef LV_ATTRIBUTE_MEM_ALIGN
|
||||||
|
#define LV_ATTRIBUTE_MEM_ALIGN
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef LV_ATTRIBUTE_IMG_FLAG
|
||||||
|
#define LV_ATTRIBUTE_IMG_FLAG
|
||||||
|
#endif
|
||||||
|
|
||||||
|
const LV_ATTRIBUTE_MEM_ALIGN LV_ATTRIBUTE_LARGE_CONST LV_ATTRIBUTE_IMG_FLAG uint8_t flag_map[] = {
|
||||||
|
0x04, 0x02, 0x04, 0xff, /*Color of index 0*/
|
||||||
|
0xfc, 0xfe, 0xfc, 0xff, /*Color of index 1*/
|
||||||
|
|
||||||
|
0x3f, 0x07, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfc,
|
||||||
|
0x3f, 0x07, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfc,
|
||||||
|
0x3f, 0x07, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfc,
|
||||||
|
0x3f, 0x07, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfc,
|
||||||
|
0x3f, 0x07, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfc,
|
||||||
|
0x3f, 0x07, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf8,
|
||||||
|
0x3f, 0x07, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
|
||||||
|
0x3f, 0x07, 0xff, 0xff, 0xff, 0xff, 0xff, 0xe0,
|
||||||
|
0x3f, 0x07, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0,
|
||||||
|
0x3f, 0x07, 0xff, 0xff, 0xff, 0xff, 0xff, 0x80,
|
||||||
|
0x3f, 0x07, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00,
|
||||||
|
0x3f, 0x07, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x00,
|
||||||
|
0x3f, 0x07, 0xff, 0xff, 0xff, 0xff, 0xfc, 0x00,
|
||||||
|
0x3f, 0x07, 0xff, 0xff, 0xff, 0xff, 0xf8, 0x00,
|
||||||
|
0x3f, 0x07, 0xff, 0xff, 0xff, 0xff, 0xf0, 0x00,
|
||||||
|
0x3f, 0x07, 0xff, 0xff, 0xff, 0xff, 0xf0, 0x00,
|
||||||
|
0x3f, 0x07, 0xff, 0xff, 0xff, 0xff, 0xe0, 0x00,
|
||||||
|
0x3f, 0x07, 0xff, 0xff, 0xff, 0xff, 0xc0, 0x00,
|
||||||
|
0x3f, 0x07, 0xff, 0xff, 0xff, 0xff, 0xe0, 0x00,
|
||||||
|
0x3f, 0x07, 0xff, 0xff, 0xff, 0xff, 0xf0, 0x00,
|
||||||
|
0x3f, 0x07, 0xff, 0xff, 0xff, 0xff, 0xf8, 0x00,
|
||||||
|
0x3f, 0x07, 0xff, 0xff, 0xff, 0xff, 0xfc, 0x00,
|
||||||
|
0x3f, 0x07, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x00,
|
||||||
|
0x3f, 0x07, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00,
|
||||||
|
0x3f, 0x07, 0xff, 0xff, 0xff, 0xff, 0xff, 0x80,
|
||||||
|
0x3f, 0x07, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0,
|
||||||
|
0x3f, 0x07, 0xff, 0xff, 0xff, 0xff, 0xff, 0xe0,
|
||||||
|
0x3f, 0x07, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
|
||||||
|
0x3f, 0x07, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
|
||||||
|
0x3f, 0x07, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf8,
|
||||||
|
0x3f, 0x07, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfc,
|
||||||
|
0x3f, 0x07, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfc,
|
||||||
|
0x3f, 0x07, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfc,
|
||||||
|
0x3f, 0x07, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfc,
|
||||||
|
0x3f, 0x07, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfc,
|
||||||
|
0x3f, 0x07, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfc,
|
||||||
|
0x3f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x3f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x3f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x3f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x3f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x3f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x3f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x3f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x3f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x3f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x3f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x3f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x3f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x3f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x3f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x3f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x3f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x3f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x3f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x3f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x3f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x3f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x3f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x3f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x3f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x3f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x3f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x3f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
};
|
||||||
|
|
||||||
|
const lv_img_dsc_t flag = {
|
||||||
|
{
|
||||||
|
LV_IMG_CF_INDEXED_1BIT,
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
64,
|
||||||
|
64
|
||||||
|
},
|
||||||
|
520,
|
||||||
|
flag_map,
|
||||||
|
};
|
BIN
src/displayapp/icons/navigation/flag.png
Normal file
After Width: | Height: | Size: 815 B |
4
src/displayapp/icons/navigation/fork-left-white.svg
Normal file
|
@ -0,0 +1,4 @@
|
||||||
|
<svg id="WORKING_ICONS" data-name="WORKING ICONS" xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 20 20">
|
||||||
|
<title>direction</title>
|
||||||
|
<path fill="#ffffff" d="M17.73611,6.57682a0.30465,0.30465,0,0,1,.23032.10507l0.649,0.74859a0.30457,0.30457,0,0,1-.03369.43226L16.5213,9.60119a5.4089,5.4089,0,0,0-1.73306,4.29459l0.0047,3.60769A0.29612,0.29612,0,0,1,14.4968,17.8H13.49033a0.29657,0.29657,0,0,1-.29623-0.29622l-0.00058-3.47624A6.99129,6.99129,0,0,1,15.463,8.40138l2.077-1.75275a0.30475,0.30475,0,0,1,.1962-0.07182m0-.2a0.50269,0.50269,0,0,0-.32516.119L15.334,8.24854A7.25157,7.25157,0,0,0,12.99411,14.043v3.46082A0.49622,0.49622,0,0,0,13.49033,18H14.4968a0.49614,0.49614,0,0,0,.49615-0.49681l-0.0047-3.60767a5.2182,5.2182,0,0,1,1.665-4.14405L18.71066,8.0156a0.50455,0.50455,0,0,0,.05585-0.71613l-0.649-.74859a0.50345,0.50345,0,0,0-.38147-0.17406h0ZM9.00078,5.98169H7.01323a0.35757,0.35757,0,0,1-.37738-0.54242L7.9796,2.48743A0.38659,0.38659,0,0,0,7.35606,2.078L1.00908,7l6.347,4.88544A0.38659,0.38659,0,0,0,7.9796,11.476L6.63585,8.52417a0.3576,0.3576,0,0,1,.37738-0.54248H9.012a4.05782,4.05782,0,0,1,3.98877,4.07324v5.44885A0.49622,0.49622,0,0,0,13.497,18h1.00647a0.49614,0.49614,0,0,0,.49615-0.49683L14.99766,16h0.00311V12.05493a6.06019,6.06019,0,0,0-5.989-6.07324l-0.011-.00183"/>
|
||||||
|
</svg>
|
After Width: | Height: | Size: 1.3 KiB |
96
src/displayapp/icons/navigation/fork-left.c
Normal file
|
@ -0,0 +1,96 @@
|
||||||
|
#if defined(LV_LVGL_H_INCLUDE_SIMPLE)
|
||||||
|
#include "lvgl.h"
|
||||||
|
#else
|
||||||
|
#include "lvgl/lvgl.h"
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
#ifndef LV_ATTRIBUTE_MEM_ALIGN
|
||||||
|
#define LV_ATTRIBUTE_MEM_ALIGN
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef LV_ATTRIBUTE_IMG_FORK_LEFT
|
||||||
|
#define LV_ATTRIBUTE_IMG_FORK_LEFT
|
||||||
|
#endif
|
||||||
|
|
||||||
|
const LV_ATTRIBUTE_MEM_ALIGN LV_ATTRIBUTE_LARGE_CONST LV_ATTRIBUTE_IMG_FORK_LEFT uint8_t fork_left_map[] = {
|
||||||
|
0x04, 0x02, 0x04, 0xff, /*Color of index 0*/
|
||||||
|
0xfc, 0xfe, 0xfc, 0xff, /*Color of index 1*/
|
||||||
|
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x3f, 0xe0, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x7f, 0xe0, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x01, 0xff, 0xe0, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x01, 0xff, 0xe0, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x07, 0xff, 0xe0, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x0f, 0xff, 0xc0, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x3f, 0xff, 0xc0, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x3f, 0xff, 0x80, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0xff, 0xff, 0x80, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x03, 0xff, 0xff, 0x80, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x07, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x0f, 0xff, 0xfe, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x1f, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x7f, 0xff, 0xff, 0xff, 0xf8, 0x00, 0x00, 0x00,
|
||||||
|
0xff, 0xff, 0xff, 0xff, 0xfe, 0x00, 0x00, 0xfe,
|
||||||
|
0xff, 0xff, 0xff, 0xff, 0xff, 0xc0, 0x01, 0xff,
|
||||||
|
0xff, 0xff, 0xff, 0xff, 0xff, 0xe0, 0x03, 0xff,
|
||||||
|
0xff, 0xff, 0xff, 0xff, 0xff, 0xf0, 0x0f, 0xff,
|
||||||
|
0xff, 0xff, 0xff, 0xff, 0xff, 0xf8, 0x0f, 0xff,
|
||||||
|
0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x3f, 0xff,
|
||||||
|
0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x7f, 0xff,
|
||||||
|
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
|
||||||
|
0x7f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x7f,
|
||||||
|
0x1f, 0xff, 0xfe, 0x0f, 0xff, 0xff, 0xff, 0xff,
|
||||||
|
0x0f, 0xff, 0xfe, 0x01, 0xff, 0xff, 0xff, 0xff,
|
||||||
|
0x03, 0xff, 0xff, 0x00, 0x3f, 0xff, 0xff, 0xfe,
|
||||||
|
0x03, 0xff, 0xff, 0x00, 0x1f, 0xff, 0xff, 0xfc,
|
||||||
|
0x00, 0xff, 0xff, 0x80, 0x07, 0xff, 0xff, 0xf0,
|
||||||
|
0x00, 0x7f, 0xff, 0x80, 0x07, 0xff, 0xff, 0xe0,
|
||||||
|
0x00, 0x1f, 0xff, 0xc0, 0x03, 0xff, 0xff, 0xc0,
|
||||||
|
0x00, 0x0f, 0xff, 0xc0, 0x01, 0xff, 0xff, 0x80,
|
||||||
|
0x00, 0x07, 0xff, 0xe0, 0x01, 0xff, 0xff, 0x00,
|
||||||
|
0x00, 0x01, 0xff, 0xe0, 0x00, 0xff, 0xfe, 0x00,
|
||||||
|
0x00, 0x00, 0xff, 0xe0, 0x00, 0xff, 0xfe, 0x00,
|
||||||
|
0x00, 0x00, 0x7f, 0xe0, 0x00, 0x7f, 0xfc, 0x00,
|
||||||
|
0x00, 0x00, 0x3f, 0xe0, 0x00, 0x7f, 0xfc, 0x00,
|
||||||
|
0x00, 0x00, 0x0f, 0xe0, 0x00, 0x7f, 0xf8, 0x00,
|
||||||
|
0x00, 0x00, 0x07, 0xc0, 0x00, 0x7f, 0xf8, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x7f, 0xf0, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x7f, 0xf0, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x7f, 0xf0, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x7f, 0xf0, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x7f, 0xf0, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x7f, 0xf0, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x7f, 0xf0, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x7f, 0xf0, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x7f, 0xf0, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x7f, 0xf0, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x7f, 0xf0, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x7f, 0xf0, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x7f, 0xf0, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x7f, 0xf0, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x7f, 0xf0, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x7f, 0xf0, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x7f, 0xf0, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x7f, 0xf0, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x7f, 0xf0, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
};
|
||||||
|
|
||||||
|
const lv_img_dsc_t fork_left = {
|
||||||
|
{
|
||||||
|
LV_IMG_CF_INDEXED_1BIT,
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
64,
|
||||||
|
64
|
||||||
|
},
|
||||||
|
520,
|
||||||
|
fork_left_map,
|
||||||
|
};
|
BIN
src/displayapp/icons/navigation/fork-left.png
Normal file
After Width: | Height: | Size: 1.3 KiB |
4
src/displayapp/icons/navigation/fork-right-white.svg
Normal file
|
@ -0,0 +1,4 @@
|
||||||
|
<svg id="WORKING_ICONS" data-name="WORKING ICONS" xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 20 20">
|
||||||
|
<title>direction</title>
|
||||||
|
<path fill="#ffffff" d="M2.27386,6.57682A0.30457,0.30457,0,0,1,2.47,6.64864L4.544,8.39882A7.00218,7.00218,0,0,1,6.81586,14.043v3.46088A0.29651,0.29651,0,0,1,6.51968,17.8H5.51318A0.29613,0.29613,0,0,1,5.217,17.50343L5.22079,13.9146a5.42,5.42,0,0,0-1.73517-4.316L1.42825,7.86274a0.30461,0.30461,0,0,1-.03372-0.43226l0.649-.74859a0.30466,0.30466,0,0,1,.23035-0.10507m0-.2a0.50345,0.50345,0,0,0-.38147.17406l-0.649.74859a0.50458,0.50458,0,0,0,.05588.71613L3.35666,9.75146a5.2182,5.2182,0,0,1,1.665,4.14405L5.017,17.50317A0.49617,0.49617,0,0,0,5.51318,18h1.0065a0.49616,0.49616,0,0,0,.49615-0.49615V14.043A7.25157,7.25157,0,0,0,4.676,8.24854L2.599,6.49579a0.50264,0.50264,0,0,0-.32516-0.119h0ZM11.0083,7.98169h1.98755a0.3576,0.3576,0,0,1,.37738.54248L12.02948,11.476a0.38659,0.38659,0,0,0,.62354.40942L19,7,12.653,2.078a0.38659,0.38659,0,0,0-.62354.40942l1.34375,2.95184a0.35757,0.35757,0,0,1-.37738.54242H11.0083V5.97986l-0.011.00183a6.06019,6.06019,0,0,0-5.989,6.07324V16H5.01141l-0.002,1.50317A0.49614,0.49614,0,0,0,5.50562,18H6.51208a0.49622,0.49622,0,0,0,.49622-0.49622V12.05493a4.05782,4.05782,0,0,1,3.98877-4.07324H11.0083Z"/>
|
||||||
|
</svg>
|
After Width: | Height: | Size: 1.3 KiB |
96
src/displayapp/icons/navigation/fork-right.c
Normal file
|
@ -0,0 +1,96 @@
|
||||||
|
#if defined(LV_LVGL_H_INCLUDE_SIMPLE)
|
||||||
|
#include "lvgl.h"
|
||||||
|
#else
|
||||||
|
#include "lvgl/lvgl.h"
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
#ifndef LV_ATTRIBUTE_MEM_ALIGN
|
||||||
|
#define LV_ATTRIBUTE_MEM_ALIGN
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef LV_ATTRIBUTE_IMG_FORK_RIGHT
|
||||||
|
#define LV_ATTRIBUTE_IMG_FORK_RIGHT
|
||||||
|
#endif
|
||||||
|
|
||||||
|
const LV_ATTRIBUTE_MEM_ALIGN LV_ATTRIBUTE_LARGE_CONST LV_ATTRIBUTE_IMG_FORK_RIGHT uint8_t fork_right_map[] = {
|
||||||
|
0x04, 0x02, 0x04, 0xff, /*Color of index 0*/
|
||||||
|
0xfc, 0xfe, 0xfc, 0xff, /*Color of index 1*/
|
||||||
|
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x07, 0xfc, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x07, 0xfe, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x07, 0xff, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x07, 0xff, 0xc0, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x07, 0xff, 0xe0, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x03, 0xff, 0xf0, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x03, 0xff, 0xfc, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x03, 0xff, 0xfe, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x01, 0xff, 0xff, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xc0,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xe0,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xf0,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xf8,
|
||||||
|
0x00, 0x00, 0x00, 0x3f, 0xff, 0xff, 0xff, 0xfe,
|
||||||
|
0x7f, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff,
|
||||||
|
0xff, 0x80, 0x03, 0xff, 0xff, 0xff, 0xff, 0xff,
|
||||||
|
0xff, 0xc0, 0x07, 0xff, 0xff, 0xff, 0xff, 0xff,
|
||||||
|
0xff, 0xe0, 0x0f, 0xff, 0xff, 0xff, 0xff, 0xff,
|
||||||
|
0xff, 0xf0, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xff,
|
||||||
|
0xff, 0xfc, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xff,
|
||||||
|
0xff, 0xfe, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xff,
|
||||||
|
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
|
||||||
|
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe,
|
||||||
|
0xff, 0xff, 0xff, 0xff, 0xf0, 0x7f, 0xff, 0xf8,
|
||||||
|
0xff, 0xbf, 0xff, 0xff, 0x00, 0xff, 0xff, 0xf0,
|
||||||
|
0x7f, 0xff, 0xff, 0xfc, 0x00, 0xff, 0xff, 0xe0,
|
||||||
|
0x3f, 0xff, 0xff, 0xf8, 0x00, 0xff, 0xff, 0xc0,
|
||||||
|
0x1f, 0xf7, 0xff, 0xf0, 0x01, 0xff, 0xff, 0x00,
|
||||||
|
0x0f, 0xff, 0xff, 0xe0, 0x03, 0xff, 0xfe, 0x00,
|
||||||
|
0x03, 0xff, 0xff, 0xc0, 0x03, 0xff, 0xf8, 0x00,
|
||||||
|
0x01, 0xff, 0xff, 0x80, 0x03, 0xff, 0xf0, 0x00,
|
||||||
|
0x00, 0xff, 0xff, 0x00, 0x07, 0xff, 0xe0, 0x00,
|
||||||
|
0x00, 0xff, 0xff, 0x00, 0x07, 0xff, 0x80, 0x00,
|
||||||
|
0x00, 0x7f, 0xff, 0x00, 0x07, 0xff, 0x00, 0x00,
|
||||||
|
0x00, 0x3f, 0xfe, 0x00, 0x07, 0xfe, 0x00, 0x00,
|
||||||
|
0x00, 0x3f, 0xfe, 0x00, 0x07, 0xfc, 0x00, 0x00,
|
||||||
|
0x00, 0x1f, 0xfe, 0x00, 0x07, 0xf0, 0x00, 0x00,
|
||||||
|
0x00, 0x1f, 0xfe, 0x00, 0x03, 0xe0, 0x00, 0x00,
|
||||||
|
0x00, 0x1f, 0xfe, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x0f, 0xfe, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x0f, 0xfe, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x0f, 0xfe, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x0f, 0xfe, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x0f, 0xfe, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x0f, 0xfe, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x0f, 0xfe, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x0f, 0xfe, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x0f, 0xfe, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x0f, 0xfe, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x0f, 0xfe, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x0f, 0xfe, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x0f, 0xfe, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x0f, 0xfe, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x0f, 0xfe, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x0f, 0xfe, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x0f, 0xfe, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x0f, 0xfe, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
};
|
||||||
|
|
||||||
|
const lv_img_dsc_t fork_right = {
|
||||||
|
{
|
||||||
|
LV_IMG_CF_INDEXED_1BIT,
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
64,
|
||||||
|
64
|
||||||
|
},
|
||||||
|
520,
|
||||||
|
fork_right_map,
|
||||||
|
};
|
BIN
src/displayapp/icons/navigation/fork-right.png
Normal file
After Width: | Height: | Size: 1.3 KiB |