From f6f28a95f6405c6d99670a5bc25ad0b22d2cdd05 Mon Sep 17 00:00:00 2001 From: Avamander <avamander@gmail.com> Date: Mon, 17 May 2021 02:08:12 +0300 Subject: [PATCH 01/58] Used a macro for UUID generation, switched from C-style casts to reinterpret_cast, renamed callback --- src/components/ble/MusicService.cpp | 194 +++++++++++----------------- src/components/ble/MusicService.h | 54 +++----- 2 files changed, 93 insertions(+), 155 deletions(-) diff --git a/src/components/ble/MusicService.cpp b/src/components/ble/MusicService.cpp index 36bf2709..30dd7274 100644 --- a/src/components/ble/MusicService.cpp +++ b/src/components/ble/MusicService.cpp @@ -18,117 +18,68 @@ #include "MusicService.h" #include "systemtask/SystemTask.h" -int MSCallback(uint16_t conn_handle, uint16_t attr_handle, struct ble_gatt_access_ctxt* ctxt, void* arg) { - auto musicService = static_cast<Pinetime::Controllers::MusicService*>(arg); - return musicService->OnCommand(conn_handle, attr_handle, ctxt); +int MusicCallback(uint16_t conn_handle, uint16_t attr_handle, struct ble_gatt_access_ctxt* ctxt, void* arg) { + return static_cast<Pinetime::Controllers::MusicService*>(arg)->OnCommand(conn_handle, attr_handle, ctxt); } Pinetime::Controllers::MusicService::MusicService(Pinetime::System::SystemTask& system) : m_system(system) { - msUuid.value[14] = msId[0]; - msUuid.value[15] = msId[1]; - - msEventCharUuid.value[12] = msEventCharId[0]; - msEventCharUuid.value[13] = msEventCharId[1]; - msEventCharUuid.value[14] = msId[0]; - msEventCharUuid.value[15] = msId[1]; - - msStatusCharUuid.value[12] = msStatusCharId[0]; - msStatusCharUuid.value[13] = msStatusCharId[1]; - msStatusCharUuid.value[14] = msId[0]; - msStatusCharUuid.value[15] = msId[1]; - - msTrackCharUuid.value[12] = msTrackCharId[0]; - msTrackCharUuid.value[13] = msTrackCharId[1]; - msTrackCharUuid.value[14] = msId[0]; - msTrackCharUuid.value[15] = msId[1]; - - msArtistCharUuid.value[12] = msArtistCharId[0]; - msArtistCharUuid.value[13] = msArtistCharId[1]; - msArtistCharUuid.value[14] = msId[0]; - msArtistCharUuid.value[15] = msId[1]; - - msAlbumCharUuid.value[12] = msAlbumCharId[0]; - msAlbumCharUuid.value[13] = msAlbumCharId[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), - .access_cb = MSCallback, + characteristicDefinition[0] = {.uuid = reinterpret_cast<ble_uuid_t*>(&msEventCharUuid), + .access_cb = MusicCallback, .arg = this, .flags = BLE_GATT_CHR_F_NOTIFY, .val_handle = &eventHandle}; - characteristicDefinition[1] = { - .uuid = (ble_uuid_t*) (&msStatusCharUuid), .access_cb = MSCallback, .arg = this, .flags = BLE_GATT_CHR_F_WRITE | BLE_GATT_CHR_F_READ}; - characteristicDefinition[2] = { - .uuid = (ble_uuid_t*) (&msTrackCharUuid), .access_cb = MSCallback, .arg = this, .flags = BLE_GATT_CHR_F_WRITE | BLE_GATT_CHR_F_READ}; - characteristicDefinition[3] = { - .uuid = (ble_uuid_t*) (&msArtistCharUuid), .access_cb = MSCallback, .arg = this, .flags = BLE_GATT_CHR_F_WRITE | BLE_GATT_CHR_F_READ}; - characteristicDefinition[4] = { - .uuid = (ble_uuid_t*) (&msAlbumCharUuid), .access_cb = MSCallback, .arg = this, .flags = BLE_GATT_CHR_F_WRITE | BLE_GATT_CHR_F_READ}; - characteristicDefinition[5] = { - .uuid = (ble_uuid_t*) (&msPositionCharUuid), .access_cb = MSCallback, .arg = this, .flags = BLE_GATT_CHR_F_WRITE | BLE_GATT_CHR_F_READ}; - characteristicDefinition[6] = {.uuid = (ble_uuid_t*) (&msTotalLengthCharUuid), - .access_cb = MSCallback, + characteristicDefinition[1] = {.uuid = reinterpret_cast<ble_uuid_t*>(&msStatusCharUuid), + .access_cb = MusicCallback, .arg = this, .flags = BLE_GATT_CHR_F_WRITE | BLE_GATT_CHR_F_READ}; - characteristicDefinition[7] = {.uuid = (ble_uuid_t*) (&msTotalLengthCharUuid), - .access_cb = MSCallback, + characteristicDefinition[2] = {.uuid = reinterpret_cast<ble_uuid_t*>(&msTrackCharUuid), + .access_cb = MusicCallback, .arg = this, .flags = BLE_GATT_CHR_F_WRITE | BLE_GATT_CHR_F_READ}; - characteristicDefinition[8] = {.uuid = (ble_uuid_t*) (&msTrackNumberCharUuid), - .access_cb = MSCallback, + characteristicDefinition[3] = {.uuid = reinterpret_cast<ble_uuid_t*>(&msArtistCharUuid), + .access_cb = MusicCallback, .arg = this, .flags = BLE_GATT_CHR_F_WRITE | BLE_GATT_CHR_F_READ}; - characteristicDefinition[9] = {.uuid = (ble_uuid_t*) (&msTrackTotalCharUuid), - .access_cb = MSCallback, + characteristicDefinition[4] = {.uuid = reinterpret_cast<ble_uuid_t*>(&msAlbumCharUuid), + .access_cb = MusicCallback, .arg = this, .flags = BLE_GATT_CHR_F_WRITE | BLE_GATT_CHR_F_READ}; - characteristicDefinition[10] = {.uuid = (ble_uuid_t*) (&msPlaybackSpeedCharUuid), - .access_cb = MSCallback, + characteristicDefinition[5] = {.uuid = reinterpret_cast<ble_uuid_t*>(&msPositionCharUuid), + .access_cb = MusicCallback, + .arg = this, + .flags = BLE_GATT_CHR_F_WRITE | BLE_GATT_CHR_F_READ}; + characteristicDefinition[6] = {.uuid = reinterpret_cast<ble_uuid_t*>(&msTotalLengthCharUuid), + .access_cb = MusicCallback, + .arg = this, + .flags = BLE_GATT_CHR_F_WRITE | BLE_GATT_CHR_F_READ}; + characteristicDefinition[7] = {.uuid = reinterpret_cast<ble_uuid_t*>(&msTotalLengthCharUuid), + .access_cb = MusicCallback, + .arg = this, + .flags = BLE_GATT_CHR_F_WRITE | BLE_GATT_CHR_F_READ}; + characteristicDefinition[8] = {.uuid = reinterpret_cast<ble_uuid_t*>(&msTrackNumberCharUuid), + .access_cb = MusicCallback, + .arg = this, + .flags = BLE_GATT_CHR_F_WRITE | BLE_GATT_CHR_F_READ}; + characteristicDefinition[9] = {.uuid = reinterpret_cast<ble_uuid_t*>(&msTrackTotalCharUuid), + .access_cb = MusicCallback, + .arg = this, + .flags = BLE_GATT_CHR_F_WRITE | BLE_GATT_CHR_F_READ}; + characteristicDefinition[10] = {.uuid = reinterpret_cast<ble_uuid_t*>(&msPlaybackSpeedCharUuid), + .access_cb = MusicCallback, + .arg = this, + .flags = BLE_GATT_CHR_F_WRITE | BLE_GATT_CHR_F_READ}; + characteristicDefinition[11] = {.uuid = reinterpret_cast<ble_uuid_t*>(&msRepeatCharUuid), + .access_cb = MusicCallback, + .arg = this, + .flags = BLE_GATT_CHR_F_WRITE | BLE_GATT_CHR_F_READ}; + characteristicDefinition[12] = {.uuid = reinterpret_cast<ble_uuid_t*>(&msShuffleCharUuid), + .access_cb = MusicCallback, .arg = this, .flags = BLE_GATT_CHR_F_WRITE | BLE_GATT_CHR_F_READ}; - characteristicDefinition[11] = { - .uuid = (ble_uuid_t*) (&msRepeatCharUuid), .access_cb = MSCallback, .arg = this, .flags = BLE_GATT_CHR_F_WRITE | BLE_GATT_CHR_F_READ}; - characteristicDefinition[12] = { - .uuid = (ble_uuid_t*) (&msShuffleCharUuid), .access_cb = MSCallback, .arg = this, .flags = BLE_GATT_CHR_F_WRITE | BLE_GATT_CHR_F_READ}; characteristicDefinition[13] = {0}; - serviceDefinition[0] = {.type = BLE_GATT_SVC_TYPE_PRIMARY, .uuid = (ble_uuid_t*) &msUuid, .characteristics = characteristicDefinition}; + serviceDefinition[0] = { + .type = BLE_GATT_SVC_TYPE_PRIMARY, .uuid = reinterpret_cast<ble_uuid_t*>(&msUuid), .characteristics = characteristicDefinition}; serviceDefinition[1] = {0}; artistName = "Waiting for"; @@ -143,7 +94,7 @@ Pinetime::Controllers::MusicService::MusicService(Pinetime::System::SystemTask& } void Pinetime::Controllers::MusicService::Init() { - int res = 0; + uint8_t res = 0; res = ble_gatts_count_cfg(serviceDefinition); ASSERT(res == 0); @@ -152,60 +103,67 @@ void Pinetime::Controllers::MusicService::Init() { } int Pinetime::Controllers::MusicService::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]; + char data[notifSize + 1]; data[notifSize] = '\0'; os_mbuf_copydata(ctxt->om, 0, notifSize, data); - char* s = (char*) &data[0]; - if (ble_uuid_cmp(ctxt->chr->uuid, (ble_uuid_t*) &msArtistCharUuid) == 0) { + char* s = &data[0]; + if (ble_uuid_cmp(ctxt->chr->uuid, reinterpret_cast<ble_uuid_t*>(&msArtistCharUuid)) == 0) { artistName = s; - } else if (ble_uuid_cmp(ctxt->chr->uuid, (ble_uuid_t*) &msTrackCharUuid) == 0) { + } else if (ble_uuid_cmp(ctxt->chr->uuid, reinterpret_cast<ble_uuid_t*>(&msTrackCharUuid)) == 0) { trackName = s; - } else if (ble_uuid_cmp(ctxt->chr->uuid, (ble_uuid_t*) &msAlbumCharUuid) == 0) { + } else if (ble_uuid_cmp(ctxt->chr->uuid, reinterpret_cast<ble_uuid_t*>(&msAlbumCharUuid)) == 0) { albumName = s; - } else if (ble_uuid_cmp(ctxt->chr->uuid, (ble_uuid_t*) &msStatusCharUuid) == 0) { + } else if (ble_uuid_cmp(ctxt->chr->uuid, reinterpret_cast<ble_uuid_t*>(&msStatusCharUuid)) == 0) { playing = s[0]; - } else if (ble_uuid_cmp(ctxt->chr->uuid, (ble_uuid_t*) &msRepeatCharUuid) == 0) { + } else if (ble_uuid_cmp(ctxt->chr->uuid, reinterpret_cast<ble_uuid_t*>(&msRepeatCharUuid)) == 0) { repeat = s[0]; - } else if (ble_uuid_cmp(ctxt->chr->uuid, (ble_uuid_t*) &msShuffleCharUuid) == 0) { + } else if (ble_uuid_cmp(ctxt->chr->uuid, reinterpret_cast<ble_uuid_t*>(&msShuffleCharUuid)) == 0) { shuffle = s[0]; - } else if (ble_uuid_cmp(ctxt->chr->uuid, (ble_uuid_t*) &msPositionCharUuid) == 0) { + } else if (ble_uuid_cmp(ctxt->chr->uuid, reinterpret_cast<ble_uuid_t*>(&msPositionCharUuid)) == 0) { trackProgress = (s[0] << 24) | (s[1] << 16) | (s[2] << 8) | s[3]; - } else if (ble_uuid_cmp(ctxt->chr->uuid, (ble_uuid_t*) &msTotalLengthCharUuid) == 0) { + } else if (ble_uuid_cmp(ctxt->chr->uuid, reinterpret_cast<ble_uuid_t*>(&msTotalLengthCharUuid)) == 0) { trackLength = (s[0] << 24) | (s[1] << 16) | (s[2] << 8) | s[3]; - } else if (ble_uuid_cmp(ctxt->chr->uuid, (ble_uuid_t*) &msTrackNumberCharUuid) == 0) { + } else if (ble_uuid_cmp(ctxt->chr->uuid, reinterpret_cast<ble_uuid_t*>(&msTrackNumberCharUuid)) == 0) { trackNumber = (s[0] << 24) | (s[1] << 16) | (s[2] << 8) | s[3]; - } else if (ble_uuid_cmp(ctxt->chr->uuid, (ble_uuid_t*) &msTrackTotalCharUuid) == 0) { + } else if (ble_uuid_cmp(ctxt->chr->uuid, reinterpret_cast<ble_uuid_t*>(&msTrackTotalCharUuid)) == 0) { tracksTotal = (s[0] << 24) | (s[1] << 16) | (s[2] << 8) | s[3]; - } else if (ble_uuid_cmp(ctxt->chr->uuid, (ble_uuid_t*) &msPlaybackSpeedCharUuid) == 0) { + } else if (ble_uuid_cmp(ctxt->chr->uuid, reinterpret_cast<ble_uuid_t*>(&msPlaybackSpeedCharUuid)) == 0) { playbackSpeed = static_cast<float>(((s[0] << 24) | (s[1] << 16) | (s[2] << 8) | s[3])) / 100.0f; } } return 0; } -std::string Pinetime::Controllers::MusicService::getAlbum() { +std::string Pinetime::Controllers::MusicService::getAlbum() const { return albumName; } -std::string Pinetime::Controllers::MusicService::getArtist() { +std::string Pinetime::Controllers::MusicService::getArtist() const { return artistName; } -std::string Pinetime::Controllers::MusicService::getTrack() { +std::string Pinetime::Controllers::MusicService::getTrack() const { return trackName; } -bool Pinetime::Controllers::MusicService::isPlaying() { +bool Pinetime::Controllers::MusicService::isPlaying() const { return playing; } -float Pinetime::Controllers::MusicService::getPlaybackSpeed() { +float Pinetime::Controllers::MusicService::getPlaybackSpeed() const { return playbackSpeed; } +int Pinetime::Controllers::MusicService::getProgress() const { + return trackProgress; +} + +int Pinetime::Controllers::MusicService::getTrackLength() const { + return trackLength; +} + void Pinetime::Controllers::MusicService::event(char event) { auto* om = ble_hs_mbuf_from_flat(&event, 1); @@ -216,12 +174,4 @@ void Pinetime::Controllers::MusicService::event(char event) { } ble_gattc_notify_custom(connectionHandle, eventHandle, om); -} - -int Pinetime::Controllers::MusicService::getProgress() { - return trackProgress; -} - -int Pinetime::Controllers::MusicService::getTrackLength() { - return trackLength; -} +} \ No newline at end of file diff --git a/src/components/ble/MusicService.h b/src/components/ble/MusicService.h index 5f5343e4..4314db0f 100644 --- a/src/components/ble/MusicService.h +++ b/src/components/ble/MusicService.h @@ -29,6 +29,8 @@ // 00000000-78fc-48fe-8e23-433b3a1942d0 #define MUSIC_SERVICE_UUID_BASE \ { 0xd0, 0x42, 0x19, 0x3a, 0x3b, 0x43, 0x23, 0x8e, 0xfe, 0x48, 0xfc, 0x78, 0x00, 0x00, 0x00, 0x00 } +#define MUSIC_SERVICE_CHAR_UUID(x, y) \ + { 0xd0, 0x42, 0x19, 0x3a, 0x3b, 0x43, 0x23, 0x8e, 0xfe, 0x48, 0xfc, 0x78, x, y, 0x00, 0x00 } namespace Pinetime { namespace System { @@ -46,19 +48,19 @@ namespace Pinetime { void event(char event); - std::string getArtist(); + std::string getArtist() const; - std::string getTrack(); + std::string getTrack() const; - std::string getAlbum(); + std::string getAlbum() const; - int getProgress(); + int getProgress() const; - int getTrackLength(); + int getTrackLength() const; - float getPlaybackSpeed(); + float getPlaybackSpeed() const; - bool isPlaying(); + bool isPlaying() const; static const char EVENT_MUSIC_OPEN = 0xe0; static const char EVENT_MUSIC_PLAY = 0x00; @@ -71,34 +73,20 @@ namespace Pinetime { enum MusicStatus { NotPlaying = 0x00, Playing = 0x01 }; private: - static constexpr uint8_t msId[2] = {0x00, 0x00}; - static constexpr uint8_t msEventCharId[2] = {0x01, 0x00}; - static constexpr uint8_t msStatusCharId[2] = {0x02, 0x00}; - static constexpr uint8_t msArtistCharId[2] = {0x03, 0x00}; - static constexpr uint8_t msTrackCharId[2] = {0x04, 0x00}; - static constexpr uint8_t msAlbumCharId[2] = {0x05, 0x00}; - static constexpr uint8_t msPositionCharId[2] = {0x06, 0x00}; - static constexpr uint8_t msTotalLengthCharId[2] = {0x07, 0x00}; - static constexpr uint8_t msTrackNumberCharId[2] = {0x08, 0x00}; - static constexpr uint8_t msTrackTotalCharId[2] = {0x09, 0x00}; - static constexpr uint8_t msPlaybackSpeedCharId[2] = {0x0a, 0x00}; - static constexpr uint8_t msRepeatCharId[2] = {0x0b, 0x00}; - static constexpr uint8_t msShuffleCharId[2] = {0x0c, 0x00}; - ble_uuid128_t msUuid {.u = {.type = BLE_UUID_TYPE_128}, .value = MUSIC_SERVICE_UUID_BASE}; - ble_uuid128_t msEventCharUuid {.u = {.type = BLE_UUID_TYPE_128}, .value = MUSIC_SERVICE_UUID_BASE}; - ble_uuid128_t msStatusCharUuid {.u = {.type = BLE_UUID_TYPE_128}, .value = MUSIC_SERVICE_UUID_BASE}; - ble_uuid128_t msArtistCharUuid {.u = {.type = BLE_UUID_TYPE_128}, .value = MUSIC_SERVICE_UUID_BASE}; - ble_uuid128_t msTrackCharUuid {.u = {.type = BLE_UUID_TYPE_128}, .value = MUSIC_SERVICE_UUID_BASE}; - ble_uuid128_t msAlbumCharUuid {.u = {.type = BLE_UUID_TYPE_128}, .value = MUSIC_SERVICE_UUID_BASE}; - ble_uuid128_t msPositionCharUuid {.u = {.type = BLE_UUID_TYPE_128}, .value = MUSIC_SERVICE_UUID_BASE}; - ble_uuid128_t msTotalLengthCharUuid {.u = {.type = BLE_UUID_TYPE_128}, .value = MUSIC_SERVICE_UUID_BASE}; - ble_uuid128_t msTrackNumberCharUuid {.u = {.type = BLE_UUID_TYPE_128}, .value = MUSIC_SERVICE_UUID_BASE}; - ble_uuid128_t msTrackTotalCharUuid {.u = {.type = BLE_UUID_TYPE_128}, .value = MUSIC_SERVICE_UUID_BASE}; - ble_uuid128_t msPlaybackSpeedCharUuid {.u = {.type = BLE_UUID_TYPE_128}, .value = MUSIC_SERVICE_UUID_BASE}; - ble_uuid128_t msRepeatCharUuid {.u = {.type = BLE_UUID_TYPE_128}, .value = MUSIC_SERVICE_UUID_BASE}; - ble_uuid128_t msShuffleCharUuid {.u = {.type = BLE_UUID_TYPE_128}, .value = MUSIC_SERVICE_UUID_BASE}; + ble_uuid128_t msEventCharUuid {.u = {.type = BLE_UUID_TYPE_128}, .value = MUSIC_SERVICE_CHAR_UUID(0x01, 0x00)}; + ble_uuid128_t msStatusCharUuid {.u = {.type = BLE_UUID_TYPE_128}, .value = MUSIC_SERVICE_CHAR_UUID(0x02, 0x00)}; + ble_uuid128_t msArtistCharUuid {.u = {.type = BLE_UUID_TYPE_128}, .value = MUSIC_SERVICE_CHAR_UUID(0x03, 0x00)}; + ble_uuid128_t msTrackCharUuid {.u = {.type = BLE_UUID_TYPE_128}, .value = MUSIC_SERVICE_CHAR_UUID(0x04, 0x00)}; + ble_uuid128_t msAlbumCharUuid {.u = {.type = BLE_UUID_TYPE_128}, .value = MUSIC_SERVICE_CHAR_UUID(0x05, 0x00)}; + ble_uuid128_t msPositionCharUuid {.u = {.type = BLE_UUID_TYPE_128}, .value = MUSIC_SERVICE_CHAR_UUID(0x06, 0x00)}; + ble_uuid128_t msTotalLengthCharUuid {.u = {.type = BLE_UUID_TYPE_128}, .value = MUSIC_SERVICE_CHAR_UUID(0x07, 0x00)}; + ble_uuid128_t msTrackNumberCharUuid {.u = {.type = BLE_UUID_TYPE_128}, .value = MUSIC_SERVICE_CHAR_UUID(0x08, 0x00)}; + ble_uuid128_t msTrackTotalCharUuid {.u = {.type = BLE_UUID_TYPE_128}, .value = MUSIC_SERVICE_CHAR_UUID(0x09, 0x00)}; + ble_uuid128_t msPlaybackSpeedCharUuid {.u = {.type = BLE_UUID_TYPE_128}, .value = MUSIC_SERVICE_CHAR_UUID(0x0a, 0x00)}; + ble_uuid128_t msRepeatCharUuid {.u = {.type = BLE_UUID_TYPE_128}, .value = MUSIC_SERVICE_CHAR_UUID(0x0b, 0x00)}; + ble_uuid128_t msShuffleCharUuid {.u = {.type = BLE_UUID_TYPE_128}, .value = MUSIC_SERVICE_CHAR_UUID(0x0c, 0x00)}; struct ble_gatt_chr_def characteristicDefinition[14]; struct ble_gatt_svc_def serviceDefinition[2]; From 8568b5f31b1b3f6b5232ba0ce6e3e6a7064fe787 Mon Sep 17 00:00:00 2001 From: Avamander <avamander@gmail.com> Date: Mon, 17 May 2021 02:16:50 +0300 Subject: [PATCH 02/58] Updated license header year --- src/components/ble/MusicService.cpp | 2 +- src/components/ble/MusicService.h | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/components/ble/MusicService.cpp b/src/components/ble/MusicService.cpp index 30dd7274..c420a576 100644 --- a/src/components/ble/MusicService.cpp +++ b/src/components/ble/MusicService.cpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2020 JF, Adam Pigg, Avamander +/* Copyright (C) 2020-2021 JF, Adam Pigg, Avamander This file is part of InfiniTime. diff --git a/src/components/ble/MusicService.h b/src/components/ble/MusicService.h index 4314db0f..0b5a7464 100644 --- a/src/components/ble/MusicService.h +++ b/src/components/ble/MusicService.h @@ -1,4 +1,4 @@ -/* Copyright (C) 2020 JF, Adam Pigg, Avamander +/* Copyright (C) 2020-2021 JF, Adam Pigg, Avamander This file is part of InfiniTime. From b39310508292b6d5f0d235872fad6b0bf31efb75 Mon Sep 17 00:00:00 2001 From: Riku Isokoski <riksu9000@gmail.com> Date: Wed, 26 May 2021 15:15:10 +0300 Subject: [PATCH 03/58] improve ui and optimize code --- src/displayapp/screens/StopWatch.cpp | 35 ++++++++++++++-------------- 1 file changed, 17 insertions(+), 18 deletions(-) diff --git a/src/displayapp/screens/StopWatch.cpp b/src/displayapp/screens/StopWatch.cpp index d7cd20c3..76c4bfa0 100644 --- a/src/displayapp/screens/StopWatch.cpp +++ b/src/displayapp/screens/StopWatch.cpp @@ -61,22 +61,32 @@ StopWatch::StopWatch(DisplayApp* app) lv_obj_set_style_local_text_font(time, LV_LABEL_PART_MAIN, LV_STATE_DEFAULT, &jetbrains_mono_76); lv_obj_set_style_local_text_color(time, LV_LABEL_PART_MAIN, LV_STATE_DEFAULT, LV_COLOR_GRAY); lv_label_set_text(time, "00:00"); - lv_obj_align(time, lv_scr_act(), LV_ALIGN_IN_LEFT_MID, 0, -45); + lv_obj_align(time, lv_scr_act(), LV_ALIGN_CENTER, 0, -45); msecTime = lv_label_create(lv_scr_act(), nullptr); // lv_obj_set_style_local_text_font(msecTime, LV_LABEL_PART_MAIN, LV_STATE_DEFAULT, &jetbrains_mono_bold_20); lv_obj_set_style_local_text_color(msecTime, LV_LABEL_PART_MAIN, LV_STATE_DEFAULT, LV_COLOR_GRAY); lv_label_set_text(msecTime, "00"); - lv_obj_align(msecTime, lv_scr_act(), LV_ALIGN_IN_LEFT_MID, 108, 3); + lv_obj_align(msecTime, lv_scr_act(), LV_ALIGN_CENTER, 0, 3); btnPlayPause = lv_btn_create(lv_scr_act(), nullptr); btnPlayPause->user_data = this; lv_obj_set_event_cb(btnPlayPause, play_pause_event_handler); - lv_obj_align(btnPlayPause, lv_scr_act(), LV_ALIGN_IN_BOTTOM_MID, 0, -10); - lv_obj_set_height(btnPlayPause, 40); + lv_obj_set_height(btnPlayPause, 50); + lv_obj_set_width(btnPlayPause, 115); + lv_obj_align(btnPlayPause, lv_scr_act(), LV_ALIGN_IN_BOTTOM_RIGHT, 0, 0); txtPlayPause = lv_label_create(btnPlayPause, nullptr); lv_label_set_text(txtPlayPause, Symbols::play); + btnStopLap = lv_btn_create(lv_scr_act(), nullptr); + btnStopLap->user_data = this; + lv_obj_set_event_cb(btnStopLap, stop_lap_event_handler); + lv_obj_set_height(btnStopLap, 50); + lv_obj_set_width(btnStopLap, 115); + lv_obj_align(btnStopLap, lv_scr_act(), LV_ALIGN_IN_BOTTOM_LEFT, 0, 0); + txtStopLap = lv_label_create(btnStopLap, nullptr); + lv_obj_set_hidden(btnStopLap, true); + lapOneText = lv_label_create(lv_scr_act(), nullptr); // lv_obj_set_style_local_text_font(lapOneText, LV_LABEL_PART_MAIN, LV_STATE_DEFAULT, &jetbrains_mono_bold_20); lv_obj_set_style_local_text_color(lapOneText, LV_LABEL_PART_MAIN, LV_STATE_DEFAULT, LV_COLOR_YELLOW); @@ -88,9 +98,6 @@ StopWatch::StopWatch(DisplayApp* app) lv_obj_set_style_local_text_color(lapTwoText, LV_LABEL_PART_MAIN, LV_STATE_DEFAULT, LV_COLOR_YELLOW); lv_obj_align(lapTwoText, lv_scr_act(), LV_ALIGN_IN_LEFT_MID, 50, 55); lv_label_set_text(lapTwoText, ""); - - // We don't want this button in the init state - btnStopLap = nullptr; } StopWatch::~StopWatch() { @@ -115,10 +122,6 @@ bool StopWatch::Refresh() { // Init state when an user first opens the app // and when a stop/reset button is pressed case States::Init: { - if (btnStopLap != nullptr) { - lv_obj_del(btnStopLap); - btnStopLap = nullptr; - } // The initial default value lv_label_set_text(time, "00:00"); lv_label_set_text(msecTime, "00"); @@ -129,16 +132,12 @@ bool StopWatch::Refresh() { lapNr = 0; if (currentEvent == Events::Play) { - btnStopLap = lv_btn_create(lv_scr_act(), nullptr); - btnStopLap->user_data = this; - lv_obj_set_event_cb(btnStopLap, stop_lap_event_handler); - lv_obj_align(btnStopLap, lv_scr_act(), LV_ALIGN_IN_TOP_MID, 0, 0); - lv_obj_set_height(btnStopLap, 40); - txtStopLap = lv_label_create(btnStopLap, nullptr); - lv_label_set_text(txtStopLap, Symbols::lapsFlag); + lv_obj_set_hidden(btnStopLap, false); startTime = xTaskGetTickCount(); currentState = States::Running; + } else { + lv_obj_set_hidden(btnStopLap, true); } break; } From c6969268fc162c41dbb37f7a2f061858563ba3c1 Mon Sep 17 00:00:00 2001 From: Riku Isokoski <riksu9000@gmail.com> Date: Wed, 26 May 2021 16:13:40 +0300 Subject: [PATCH 04/58] Keep button visible, but disabled --- src/displayapp/screens/StopWatch.cpp | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/src/displayapp/screens/StopWatch.cpp b/src/displayapp/screens/StopWatch.cpp index 76c4bfa0..7c128d1b 100644 --- a/src/displayapp/screens/StopWatch.cpp +++ b/src/displayapp/screens/StopWatch.cpp @@ -84,8 +84,12 @@ StopWatch::StopWatch(DisplayApp* app) lv_obj_set_height(btnStopLap, 50); lv_obj_set_width(btnStopLap, 115); lv_obj_align(btnStopLap, lv_scr_act(), LV_ALIGN_IN_BOTTOM_LEFT, 0, 0); + lv_obj_set_style_local_bg_color(btnStopLap, LV_BTN_PART_MAIN, LV_STATE_DISABLED, lv_color_hex(0x080808)); txtStopLap = lv_label_create(btnStopLap, nullptr); - lv_obj_set_hidden(btnStopLap, true); + lv_obj_set_style_local_text_color(txtStopLap, LV_BTN_PART_MAIN, LV_STATE_DISABLED, lv_color_hex(0x888888)); + lv_label_set_text(txtStopLap, Symbols::stop); + lv_obj_set_state(btnStopLap, LV_STATE_DISABLED); + lv_obj_set_state(txtStopLap, LV_STATE_DISABLED); lapOneText = lv_label_create(lv_scr_act(), nullptr); // lv_obj_set_style_local_text_font(lapOneText, LV_LABEL_PART_MAIN, LV_STATE_DEFAULT, &jetbrains_mono_bold_20); @@ -132,12 +136,14 @@ bool StopWatch::Refresh() { lapNr = 0; if (currentEvent == Events::Play) { - lv_obj_set_hidden(btnStopLap, false); + lv_obj_set_state(btnStopLap, LV_STATE_DEFAULT); + lv_obj_set_state(txtStopLap, LV_STATE_DEFAULT); startTime = xTaskGetTickCount(); currentState = States::Running; } else { - lv_obj_set_hidden(btnStopLap, true); + lv_obj_set_state(btnStopLap, LV_STATE_DISABLED); + lv_obj_set_state(txtStopLap, LV_STATE_DISABLED); } break; } From 7f9cc51b050e1034b573e37484f7afe29c370d81 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jean-Fran=C3=A7ois=20Milants?= <jf@codingfield.com> Date: Sun, 6 Jun 2021 15:56:03 +0200 Subject: [PATCH 05/58] Initialize SystemTask, DisplayApp and HeartRateTask as global static variable instead of variables on the heap. We don't need them on the heap as we know their size at build time, it'll reduce memory fragmentation and it'll make memory analysis easier. --- src/CMakeLists.txt | 4 +- src/FreeRTOSConfig.h | 2 +- .../ble/AlertNotificationClient.cpp | 2 +- .../ble/AlertNotificationService.cpp | 2 +- src/components/ble/DfuService.cpp | 6 +- src/components/ble/ImmediateAlertService.cpp | 2 +- src/components/ble/NimbleController.cpp | 2 +- .../datetime/DateTimeController.cpp | 10 ++- src/components/datetime/DateTimeController.h | 6 +- .../heartrate/HeartRateController.cpp | 3 - .../heartrate/HeartRateController.h | 4 +- src/components/heartrate/Ppg.cpp | 11 +-- src/components/heartrate/Ppg.h | 3 +- src/components/timer/TimerController.cpp | 29 +++++--- src/components/timer/TimerController.h | 13 ++-- src/displayapp/DisplayApp.cpp | 32 +++++--- src/displayapp/DisplayApp.h | 7 +- src/displayapp/screens/FlashLight.cpp | 4 +- src/displayapp/screens/HeartRate.cpp | 8 +- src/displayapp/screens/ScreenList.h | 13 +++- .../screens/settings/QuickSettings.cpp | 4 +- src/drivers/Bma421.cpp | 2 - src/drivers/SpiMaster.h | 1 - src/heartratetask/HeartRateTask.cpp | 2 +- src/main.cpp | 69 +++++++++++++----- src/systemtask/Messages.h | 26 +++++++ src/systemtask/SystemTask.cpp | 73 +++++++++---------- src/systemtask/SystemTask.h | 53 ++++++-------- 28 files changed, 223 insertions(+), 170 deletions(-) create mode 100644 src/systemtask/Messages.h diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index cd729921..c72f7c9c 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -750,8 +750,8 @@ add_definitions(-DNIMBLE_CFG_CONTROLLER) add_definitions(-DOS_CPUTIME_FREQ) add_definitions(-DNRF52 -DNRF52832 -DNRF52832_XXAA -DNRF52_PAN_74 -DNRF52_PAN_64 -DNRF52_PAN_12 -DNRF52_PAN_58 -DNRF52_PAN_54 -DNRF52_PAN_31 -DNRF52_PAN_51 -DNRF52_PAN_36 -DNRF52_PAN_15 -DNRF52_PAN_20 -DNRF52_PAN_55 -DBOARD_PCA10040) add_definitions(-DFREERTOS) -add_definitions(-D__STACK_SIZE=8192) -add_definitions(-D__HEAP_SIZE=8192) +add_definitions(-D__STACK_SIZE=1024) +add_definitions(-D__HEAP_SIZE=4096) # NOTE : Add the following defines to enable debug mode of the NRF SDK: #add_definitions(-DDEBUG) diff --git a/src/FreeRTOSConfig.h b/src/FreeRTOSConfig.h index 15185766..07c152dc 100644 --- a/src/FreeRTOSConfig.h +++ b/src/FreeRTOSConfig.h @@ -62,7 +62,7 @@ #define configTICK_RATE_HZ 1024 #define configMAX_PRIORITIES (3) #define configMINIMAL_STACK_SIZE (120) -#define configTOTAL_HEAP_SIZE (1024 * 16) +#define configTOTAL_HEAP_SIZE (1024 * 17) #define configMAX_TASK_NAME_LEN (4) #define configUSE_16_BIT_TICKS 0 #define configIDLE_SHOULD_YIELD 1 diff --git a/src/components/ble/AlertNotificationClient.cpp b/src/components/ble/AlertNotificationClient.cpp index 6043a129..c3d1d69a 100644 --- a/src/components/ble/AlertNotificationClient.cpp +++ b/src/components/ble/AlertNotificationClient.cpp @@ -159,7 +159,7 @@ void AlertNotificationClient::OnNotification(ble_gap_event* event) { notif.category = Pinetime::Controllers::NotificationManager::Categories::SimpleAlert; notificationManager.Push(std::move(notif)); - systemTask.PushMessage(Pinetime::System::SystemTask::Messages::OnNewNotification); + systemTask.PushMessage(Pinetime::System::Messages::OnNewNotification); } } diff --git a/src/components/ble/AlertNotificationService.cpp b/src/components/ble/AlertNotificationService.cpp index e9f5941e..d5fc7f65 100644 --- a/src/components/ble/AlertNotificationService.cpp +++ b/src/components/ble/AlertNotificationService.cpp @@ -79,7 +79,7 @@ int AlertNotificationService::OnAlert(uint16_t conn_handle, uint16_t attr_handle break; } - auto event = Pinetime::System::SystemTask::Messages::OnNewNotification; + auto event = Pinetime::System::Messages::OnNewNotification; notificationManager.Push(std::move(notif)); systemTask.PushMessage(event); } diff --git a/src/components/ble/DfuService.cpp b/src/components/ble/DfuService.cpp index 2031668e..cec194cc 100644 --- a/src/components/ble/DfuService.cpp +++ b/src/components/ble/DfuService.cpp @@ -205,7 +205,7 @@ int DfuService::ControlPointHandler(uint16_t connectionHandle, os_mbuf* om) { bleController.State(Pinetime::Controllers::Ble::FirmwareUpdateStates::Running); bleController.FirmwareUpdateTotalBytes(0xffffffffu); bleController.FirmwareUpdateCurrentBytes(0); - systemTask.PushMessage(Pinetime::System::SystemTask::Messages::BleFirmwareUpdateStarted); + systemTask.PushMessage(Pinetime::System::Messages::BleFirmwareUpdateStarted); return 0; } else { NRF_LOG_INFO("[DFU] -> Start DFU, mode %d not supported!", imageType); @@ -279,7 +279,7 @@ int DfuService::ControlPointHandler(uint16_t connectionHandle, os_mbuf* om) { } NRF_LOG_INFO("[DFU] -> Activate image and reset!"); bleController.StopFirmwareUpdate(); - systemTask.PushMessage(Pinetime::System::SystemTask::Messages::BleFirmwareUpdateFinished); + systemTask.PushMessage(Pinetime::System::Messages::BleFirmwareUpdateFinished); Reset(); bleController.State(Pinetime::Controllers::Ble::FirmwareUpdateStates::Validated); return 0; @@ -304,7 +304,7 @@ void DfuService::Reset() { notificationManager.Reset(); bleController.State(Pinetime::Controllers::Ble::FirmwareUpdateStates::Error); bleController.StopFirmwareUpdate(); - systemTask.PushMessage(Pinetime::System::SystemTask::Messages::BleFirmwareUpdateFinished); + systemTask.PushMessage(Pinetime::System::Messages::BleFirmwareUpdateFinished); } DfuService::NotificationManager::NotificationManager() { diff --git a/src/components/ble/ImmediateAlertService.cpp b/src/components/ble/ImmediateAlertService.cpp index fd6430af..820d3b6e 100644 --- a/src/components/ble/ImmediateAlertService.cpp +++ b/src/components/ble/ImmediateAlertService.cpp @@ -67,7 +67,7 @@ int ImmediateAlertService::OnAlertLevelChanged(uint16_t connectionHandle, uint16 notif.category = Pinetime::Controllers::NotificationManager::Categories::SimpleAlert; notificationManager.Push(std::move(notif)); - systemTask.PushMessage(Pinetime::System::SystemTask::Messages::OnNewNotification); + systemTask.PushMessage(Pinetime::System::Messages::OnNewNotification); } } diff --git a/src/components/ble/NimbleController.cpp b/src/components/ble/NimbleController.cpp index 67a6d691..2c1d0f99 100644 --- a/src/components/ble/NimbleController.cpp +++ b/src/components/ble/NimbleController.cpp @@ -149,7 +149,7 @@ int NimbleController::OnGAPEvent(ble_gap_event* event) { bleController.Disconnect(); } else { bleController.Connect(); - systemTask.PushMessage(Pinetime::System::SystemTask::Messages::BleConnected); + systemTask.PushMessage(Pinetime::System::Messages::BleConnected); connectionHandle = event->connect.conn_handle; // Service discovery is deffered via systemtask } diff --git a/src/components/datetime/DateTimeController.cpp b/src/components/datetime/DateTimeController.cpp index 4f9302eb..28a70abc 100644 --- a/src/components/datetime/DateTimeController.cpp +++ b/src/components/datetime/DateTimeController.cpp @@ -5,9 +5,6 @@ using namespace Pinetime::Controllers; -DateTime::DateTime(System::SystemTask& systemTask) : systemTask {systemTask} { -} - void DateTime::SetTime( uint16_t year, uint8_t month, uint8_t day, uint8_t dayOfWeek, uint8_t hour, uint8_t minute, uint8_t second, uint32_t systickCounter) { std::tm tm = { @@ -70,7 +67,8 @@ void DateTime::UpdateTime(uint32_t systickCounter) { // Notify new day to SystemTask if (hour == 0 and not isMidnightAlreadyNotified) { isMidnightAlreadyNotified = true; - systemTask.PushMessage(System::SystemTask::Messages::OnNewDay); + if(systemTask != nullptr) + systemTask->PushMessage(System::Messages::OnNewDay); } else if (hour != 0) { isMidnightAlreadyNotified = false; } @@ -104,6 +102,10 @@ const char* DateTime::DayOfWeekShortToStringLow() { return DateTime::DaysStringShortLow[(uint8_t) dayOfWeek]; } +void DateTime::Register(Pinetime::System::SystemTask* systemTask) { + this->systemTask = systemTask; +} + char const* DateTime::DaysStringLow[] = {"--", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday", "Sunday"}; char const* DateTime::DaysStringShortLow[] = {"--", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat", "Sun"}; diff --git a/src/components/datetime/DateTimeController.h b/src/components/datetime/DateTimeController.h index d0ae727e..265d6e9d 100644 --- a/src/components/datetime/DateTimeController.h +++ b/src/components/datetime/DateTimeController.h @@ -27,8 +27,6 @@ namespace Pinetime { December }; - DateTime(System::SystemTask& systemTask); - void SetTime(uint16_t year, uint8_t month, uint8_t day, @@ -75,8 +73,9 @@ namespace Pinetime { return uptime; } + void Register(System::SystemTask* systemTask); + private: - System::SystemTask& systemTask; uint16_t year = 0; Months month = Months::Unknown; uint8_t day = 0; @@ -90,6 +89,7 @@ namespace Pinetime { std::chrono::seconds uptime {0}; bool isMidnightAlreadyNotified = false; + System::SystemTask* systemTask = nullptr; static char const* DaysString[]; static char const* DaysStringShort[]; diff --git a/src/components/heartrate/HeartRateController.cpp b/src/components/heartrate/HeartRateController.cpp index e84d665a..716813b3 100644 --- a/src/components/heartrate/HeartRateController.cpp +++ b/src/components/heartrate/HeartRateController.cpp @@ -4,9 +4,6 @@ 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) { diff --git a/src/components/heartrate/HeartRateController.h b/src/components/heartrate/HeartRateController.h index d3a8460d..a63f1a70 100644 --- a/src/components/heartrate/HeartRateController.h +++ b/src/components/heartrate/HeartRateController.h @@ -15,8 +15,7 @@ namespace Pinetime { public: enum class States { Stopped, NotEnoughData, NoTouch, Running }; - explicit HeartRateController(System::SystemTask& systemTask); - + HeartRateController() = default; void Start(); void Stop(); void Update(States newState, uint8_t heartRate); @@ -32,7 +31,6 @@ namespace Pinetime { void SetService(Pinetime::Controllers::HeartRateService* service); private: - System::SystemTask& systemTask; Applications::HeartRateTask* task = nullptr; States state = States::Stopped; uint8_t heartRate = 0; diff --git a/src/components/heartrate/Ppg.cpp b/src/components/heartrate/Ppg.cpp index da0789e0..fcba3815 100644 --- a/src/components/heartrate/Ppg.cpp +++ b/src/components/heartrate/Ppg.cpp @@ -38,9 +38,8 @@ namespace { } } -Ppg::Ppg(float spl) - : offset {spl}, - hpf {0.87033078, -1.74066156, 0.87033078, -1.72377617, 0.75754694}, +Ppg::Ppg() + : 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} { } @@ -67,13 +66,7 @@ float Ppg::HeartRate() { 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; diff --git a/src/components/heartrate/Ppg.h b/src/components/heartrate/Ppg.h index ee07dfcf..00014162 100644 --- a/src/components/heartrate/Ppg.h +++ b/src/components/heartrate/Ppg.h @@ -8,8 +8,7 @@ namespace Pinetime { namespace Controllers { class Ppg { public: - explicit Ppg(float spl); - + Ppg(); int8_t Preprocess(float spl); float HeartRate(); diff --git a/src/components/timer/TimerController.cpp b/src/components/timer/TimerController.cpp index 3b25901c..8d5f5c33 100644 --- a/src/components/timer/TimerController.cpp +++ b/src/components/timer/TimerController.cpp @@ -12,14 +12,17 @@ using namespace Pinetime::Controllers; APP_TIMER_DEF(timerAppTimer); - -TimerController::TimerController(System::SystemTask& systemTask) : systemTask{systemTask} { +namespace { + void TimerEnd(void* p_context) { + auto* controller = static_cast<Pinetime::Controllers::TimerController*> (p_context); + if(controller != nullptr) + controller->OnTimerEnd(); + } } void TimerController::Init() { - app_timer_create(&timerAppTimer, APP_TIMER_MODE_SINGLE_SHOT, timerEnd); - + app_timer_create(&timerAppTimer, APP_TIMER_MODE_SINGLE_SHOT, TimerEnd); } void TimerController::StartTimer(uint32_t duration) { @@ -47,13 +50,6 @@ uint32_t TimerController::GetTimeRemaining() { return (static_cast<TickType_t>(deltaTicks) / static_cast<TickType_t>(configTICK_RATE_HZ)) * 1000; } -void TimerController::timerEnd(void* p_context) { - - auto* controller = static_cast<Controllers::TimerController*> (p_context); - controller->timerRunning = false; - controller->systemTask.PushMessage(System::SystemTask::Messages::OnTimerDone); -} - void TimerController::StopTimer() { app_timer_stop(timerAppTimer); timerRunning = false; @@ -61,4 +57,13 @@ void TimerController::StopTimer() { bool TimerController::IsRunning() { return timerRunning; -} \ No newline at end of file +} +void TimerController::OnTimerEnd() { + timerRunning = false; + if(systemTask != nullptr) + systemTask->PushMessage(System::Messages::OnTimerDone); +} + +void TimerController::Register(Pinetime::System::SystemTask* systemTask) { + this->systemTask = systemTask; +} diff --git a/src/components/timer/TimerController.h b/src/components/timer/TimerController.h index 5a0b293e..fa7bc90d 100644 --- a/src/components/timer/TimerController.h +++ b/src/components/timer/TimerController.h @@ -12,7 +12,7 @@ namespace Pinetime { class TimerController { public: - TimerController(Pinetime::System::SystemTask& systemTask); + TimerController() = default; void Init(); @@ -23,12 +23,13 @@ namespace Pinetime { uint32_t GetTimeRemaining(); bool IsRunning(); - + + void OnTimerEnd(); + + void Register(System::SystemTask* systemTask); + private: - System::SystemTask& systemTask; - - static void timerEnd(void* p_context); - + System::SystemTask* systemTask = nullptr; TickType_t endTicks; bool timerRunning = false; }; diff --git a/src/displayapp/DisplayApp.cpp b/src/displayapp/DisplayApp.cpp index 7b03d569..ba6dfbd2 100644 --- a/src/displayapp/DisplayApp.cpp +++ b/src/displayapp/DisplayApp.cpp @@ -32,6 +32,7 @@ #include "drivers/St7789.h" #include "drivers/Watchdog.h" #include "systemtask/SystemTask.h" +#include "systemtask/Messages.h" #include "displayapp/screens/settings/QuickSettings.h" #include "displayapp/screens/settings/Settings.h" @@ -51,7 +52,6 @@ DisplayApp::DisplayApp(Drivers::St7789& lcd, Controllers::Ble& bleController, Controllers::DateTime& dateTimeController, Drivers::WatchdogView& watchdog, - System::SystemTask& systemTask, Pinetime::Controllers::NotificationManager& notificationManager, Pinetime::Controllers::HeartRateController& heartRateController, Controllers::Settings& settingsController, @@ -65,7 +65,6 @@ DisplayApp::DisplayApp(Drivers::St7789& lcd, bleController {bleController}, dateTimeController {dateTimeController}, watchdog {watchdog}, - systemTask {systemTask}, notificationManager {notificationManager}, heartRateController {heartRateController}, settingsController {settingsController}, @@ -130,7 +129,7 @@ void DisplayApp::Refresh() { vTaskDelay(100); } lcd.DisplayOff(); - systemTask.PushMessage(System::SystemTask::Messages::OnDisplayTaskSleeping); + PushMessageToSystemTask(Pinetime::System::Messages::OnDisplayTaskSleeping); state = States::Idle; break; case Messages::GoToRunning: @@ -139,7 +138,7 @@ void DisplayApp::Refresh() { state = States::Running; break; case Messages::UpdateTimeOut: - systemTask.PushMessage(System::SystemTask::Messages::UpdateTimeOut); + PushMessageToSystemTask(System::Messages::UpdateTimeOut); break; case Messages::UpdateBleConnection: // clockScreen.SetBleConnectionState(bleController.IsConnected() ? Screens::Clock::BleConnectionStates::Connected : @@ -176,7 +175,7 @@ void DisplayApp::Refresh() { LoadApp(Apps::QuickSettings, DisplayApp::FullRefreshDirections::RightAnim); break; case TouchEvents::DoubleTap: - systemTask.PushMessage(System::SystemTask::Messages::GoToSleep); + PushMessageToSystemTask(System::Messages::GoToSleep); break; default: break; @@ -188,7 +187,7 @@ void DisplayApp::Refresh() { } break; case Messages::ButtonPushed: if (currentApp == Apps::Clock) { - systemTask.PushMessage(System::SystemTask::Messages::GoToSleep); + PushMessageToSystemTask(System::Messages::GoToSleep); } else { if (!currentScreen->OnButtonPushed()) { LoadApp(returnToApp, returnDirection); @@ -267,12 +266,12 @@ void DisplayApp::LoadApp(Apps app, DisplayApp::FullRefreshDirections direction) case Apps::Notifications: currentScreen = std::make_unique<Screens::Notifications>( - this, notificationManager, systemTask.nimble().alertService(), Screens::Notifications::Modes::Normal); + this, notificationManager, systemTask->nimble().alertService(), Screens::Notifications::Modes::Normal); ReturnApp(Apps::Clock, FullRefreshDirections::Up, TouchEvents::SwipeUp); break; case Apps::NotificationsPreview: currentScreen = std::make_unique<Screens::Notifications>( - this, notificationManager, systemTask.nimble().alertService(), Screens::Notifications::Modes::Preview); + this, notificationManager, systemTask->nimble().alertService(), Screens::Notifications::Modes::Preview); ReturnApp(Apps::Clock, FullRefreshDirections::Up, TouchEvents::SwipeUp); break; case Apps::Timer: @@ -321,7 +320,7 @@ void DisplayApp::LoadApp(Apps app, DisplayApp::FullRefreshDirections direction) // case Apps::FlashLight: - currentScreen = std::make_unique<Screens::FlashLight>(this, systemTask, brightnessController); + currentScreen = std::make_unique<Screens::FlashLight>(this, *systemTask, brightnessController); ReturnApp(Apps::Clock, FullRefreshDirections::Down, TouchEvents::None); break; case Apps::StopWatch: @@ -337,13 +336,13 @@ void DisplayApp::LoadApp(Apps app, DisplayApp::FullRefreshDirections direction) currentScreen = std::make_unique<Screens::Paddle>(this, lvgl); break; case Apps::Music: - currentScreen = std::make_unique<Screens::Music>(this, systemTask.nimble().music()); + currentScreen = std::make_unique<Screens::Music>(this, systemTask->nimble().music()); break; case Apps::Navigation: - currentScreen = std::make_unique<Screens::Navigation>(this, systemTask.nimble().navigation()); + currentScreen = std::make_unique<Screens::Navigation>(this, systemTask->nimble().navigation()); break; case Apps::HeartRate: - currentScreen = std::make_unique<Screens::HeartRate>(this, heartRateController, systemTask); + currentScreen = std::make_unique<Screens::HeartRate>(this, heartRateController, *systemTask); break; case Apps::Motion: currentScreen = std::make_unique<Screens::Motion>(this, motionController); @@ -425,3 +424,12 @@ void DisplayApp::SetFullRefresh(DisplayApp::FullRefreshDirections direction) { void DisplayApp::SetTouchMode(DisplayApp::TouchModes mode) { touchMode = mode; } + +void DisplayApp::PushMessageToSystemTask(Pinetime::System::Messages message) { + if(systemTask != nullptr) + systemTask->PushMessage(message); +} + +void DisplayApp::Register(Pinetime::System::SystemTask* systemTask) { + this->systemTask = systemTask; +} diff --git a/src/displayapp/DisplayApp.h b/src/displayapp/DisplayApp.h index 0c7bd216..65abd41a 100644 --- a/src/displayapp/DisplayApp.h +++ b/src/displayapp/DisplayApp.h @@ -4,6 +4,7 @@ #include <queue.h> #include <task.h> #include <memory> +#include <systemtask/Messages.h> #include "Apps.h" #include "LittleVgl.h" #include "TouchEvents.h" @@ -49,7 +50,6 @@ namespace Pinetime { Controllers::Ble& bleController, Controllers::DateTime& dateTimeController, Drivers::WatchdogView& watchdog, - System::SystemTask& systemTask, Pinetime::Controllers::NotificationManager& notificationManager, Pinetime::Controllers::HeartRateController& heartRateController, Controllers::Settings& settingsController, @@ -64,6 +64,8 @@ namespace Pinetime { void SetFullRefresh(FullRefreshDirections direction); void SetTouchMode(TouchModes mode); + void Register(Pinetime::System::SystemTask* systemTask); + private: Pinetime::Drivers::St7789& lcd; Pinetime::Components::LittleVgl& lvgl; @@ -72,7 +74,7 @@ namespace Pinetime { Pinetime::Controllers::Ble& bleController; Pinetime::Controllers::DateTime& dateTimeController; Pinetime::Drivers::WatchdogView& watchdog; - Pinetime::System::SystemTask& systemTask; + Pinetime::System::SystemTask* systemTask = nullptr; Pinetime::Controllers::NotificationManager& notificationManager; Pinetime::Controllers::HeartRateController& heartRateController; Pinetime::Controllers::Settings& settingsController; @@ -108,6 +110,7 @@ namespace Pinetime { void Refresh(); void ReturnApp(Apps app, DisplayApp::FullRefreshDirections direction, TouchEvents touchEvent); void LoadApp(Apps app, DisplayApp::FullRefreshDirections direction); + void PushMessageToSystemTask(Pinetime::System::Messages message); }; } } diff --git a/src/displayapp/screens/FlashLight.cpp b/src/displayapp/screens/FlashLight.cpp index 4568db40..7db2c6c8 100644 --- a/src/displayapp/screens/FlashLight.cpp +++ b/src/displayapp/screens/FlashLight.cpp @@ -39,14 +39,14 @@ FlashLight::FlashLight(Pinetime::Applications::DisplayApp* app, backgroundAction->user_data = this; lv_obj_set_event_cb(backgroundAction, event_handler); - systemTask.PushMessage(Pinetime::System::SystemTask::Messages::DisableSleeping); + systemTask.PushMessage(Pinetime::System::Messages::DisableSleeping); } FlashLight::~FlashLight() { lv_obj_clean(lv_scr_act()); lv_obj_set_style_local_bg_color(lv_scr_act(), LV_OBJ_PART_MAIN, LV_STATE_DEFAULT, lv_color_hex(0x000000)); brightness.Restore(); - systemTask.PushMessage(Pinetime::System::SystemTask::Messages::EnableSleeping); + systemTask.PushMessage(Pinetime::System::Messages::EnableSleeping); } void FlashLight::OnClickEvent(lv_obj_t* obj, lv_event_t event) { diff --git a/src/displayapp/screens/HeartRate.cpp b/src/displayapp/screens/HeartRate.cpp index 90f6bc26..5689b63e 100644 --- a/src/displayapp/screens/HeartRate.cpp +++ b/src/displayapp/screens/HeartRate.cpp @@ -63,12 +63,12 @@ HeartRate::HeartRate(Pinetime::Applications::DisplayApp* app, label_startStop = lv_label_create(btn_startStop, nullptr); UpdateStartStopButton(isHrRunning); if (isHrRunning) - systemTask.PushMessage(Pinetime::System::SystemTask::Messages::DisableSleeping); + systemTask.PushMessage(Pinetime::System::Messages::DisableSleeping); } HeartRate::~HeartRate() { lv_obj_clean(lv_scr_act()); - systemTask.PushMessage(Pinetime::System::SystemTask::Messages::EnableSleeping); + systemTask.PushMessage(Pinetime::System::Messages::EnableSleeping); } bool HeartRate::Refresh() { @@ -95,12 +95,12 @@ void HeartRate::OnStartStopEvent(lv_event_t event) { if (heartRateController.State() == Controllers::HeartRateController::States::Stopped) { heartRateController.Start(); UpdateStartStopButton(heartRateController.State() != Controllers::HeartRateController::States::Stopped); - systemTask.PushMessage(Pinetime::System::SystemTask::Messages::DisableSleeping); + systemTask.PushMessage(Pinetime::System::Messages::DisableSleeping); lv_obj_set_style_local_text_color(label_hr, LV_LABEL_PART_MAIN, LV_STATE_DEFAULT, LV_COLOR_GREEN); } else { heartRateController.Stop(); UpdateStartStopButton(heartRateController.State() != Controllers::HeartRateController::States::Stopped); - systemTask.PushMessage(Pinetime::System::SystemTask::Messages::EnableSleeping); + systemTask.PushMessage(Pinetime::System::Messages::EnableSleeping); lv_obj_set_style_local_text_color(label_hr, LV_LABEL_PART_MAIN, LV_STATE_DEFAULT, LV_COLOR_GRAY); } } diff --git a/src/displayapp/screens/ScreenList.h b/src/displayapp/screens/ScreenList.h index 73ea4610..ea66bfb2 100644 --- a/src/displayapp/screens/ScreenList.h +++ b/src/displayapp/screens/ScreenList.h @@ -15,12 +15,17 @@ namespace Pinetime { public: ScreenList(DisplayApp* app, uint8_t initScreen, - std::array<std::function<std::unique_ptr<Screen>()>, N>&& screens, + const std::array<std::function<std::unique_ptr<Screen>()>, N>&& screens, ScreenListModes mode) - : Screen(app), initScreen {initScreen}, screens {std::move(screens)}, mode {mode}, current {this->screens[initScreen]()} { - screenIndex = initScreen; + : Screen(app), initScreen {initScreen}, screens {std::move(screens)}, mode {mode}, screenIndex{initScreen}, current {this->screens[initScreen]()} { + } + ScreenList(const ScreenList&) = delete; + ScreenList& operator=(const ScreenList&) = delete; + ScreenList(ScreenList&&) = delete; + ScreenList& operator=(ScreenList&&) = delete; + ~ScreenList() override { lv_obj_clean(lv_scr_act()); } @@ -97,7 +102,7 @@ namespace Pinetime { private: uint8_t initScreen = 0; - std::array<std::function<std::unique_ptr<Screen>()>, N> screens; + const std::array<std::function<std::unique_ptr<Screen>()>, N> screens; ScreenListModes mode = ScreenListModes::UpDown; uint8_t screenIndex = 0; diff --git a/src/displayapp/screens/settings/QuickSettings.cpp b/src/displayapp/screens/settings/QuickSettings.cpp index 3994794d..5db7468c 100644 --- a/src/displayapp/screens/settings/QuickSettings.cpp +++ b/src/displayapp/screens/settings/QuickSettings.cpp @@ -7,12 +7,12 @@ using namespace Pinetime::Applications::Screens; namespace { static void ButtonEventHandler(lv_obj_t* obj, lv_event_t event) { - QuickSettings* screen = static_cast<QuickSettings*>(obj->user_data); + auto* screen = static_cast<QuickSettings*>(obj->user_data); screen->OnButtonEvent(obj, event); } static void lv_update_task(struct _lv_task_t* task) { - auto user_data = static_cast<QuickSettings*>(task->user_data); + auto* user_data = static_cast<QuickSettings*>(task->user_data); user_data->UpdateScreen(); } } diff --git a/src/drivers/Bma421.cpp b/src/drivers/Bma421.cpp index 925b66c7..35b2c105 100644 --- a/src/drivers/Bma421.cpp +++ b/src/drivers/Bma421.cpp @@ -103,8 +103,6 @@ Bma421::Values Bma421::Process() { uint8_t activity = 0; bma423_activity_output(&activity, &bma); - NRF_LOG_INFO("MOTION : %d - %d/%d/%d", steps, data.x, data.y, data.z); - // X and Y axis are swapped because of the way the sensor is mounted in the PineTime return {steps, data.y, data.x, data.z}; } diff --git a/src/drivers/SpiMaster.h b/src/drivers/SpiMaster.h index dfc195b7..5045369a 100644 --- a/src/drivers/SpiMaster.h +++ b/src/drivers/SpiMaster.h @@ -10,7 +10,6 @@ namespace Pinetime { namespace Drivers { class SpiMaster { public: - ; enum class SpiModule : uint8_t { SPI0, SPI1 }; enum class BitOrder : uint8_t { Msb_Lsb, Lsb_Msb }; enum class Modes : uint8_t { Mode0, Mode1, Mode2, Mode3 }; diff --git a/src/heartratetask/HeartRateTask.cpp b/src/heartratetask/HeartRateTask.cpp index 36c8cc18..1c21db71 100644 --- a/src/heartratetask/HeartRateTask.cpp +++ b/src/heartratetask/HeartRateTask.cpp @@ -6,7 +6,7 @@ using namespace Pinetime::Applications; HeartRateTask::HeartRateTask(Drivers::Hrs3300& heartRateSensor, Controllers::HeartRateController& controller) - : heartRateSensor {heartRateSensor}, controller {controller}, ppg {static_cast<float>(heartRateSensor.ReadHrs())} { + : heartRateSensor {heartRateSensor}, controller {controller}, ppg{} { messageQueue = xQueueCreate(10, 1); controller.SetHeartRateTask(this); } diff --git a/src/main.cpp b/src/main.cpp index 61194b95..60ed058b 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -34,6 +34,7 @@ #include "components/motor/MotorController.h" #include "components/datetime/DateTimeController.h" #include "components/settings/Settings.h" +#include "components/heartrate/HeartRateController.h" #include "drivers/Spi.h" #include "drivers/SpiMaster.h" #include "drivers/SpiNorFlash.h" @@ -50,8 +51,6 @@ Pinetime::Logging::NrfLogger logger; Pinetime::Logging::DummyLogger logger; #endif -#include <memory> - static constexpr uint8_t pinSpiSck = 2; static constexpr uint8_t pinSpiMosi = 3; static constexpr uint8_t pinSpiMiso = 4; @@ -108,15 +107,59 @@ void ble_manager_set_ble_connection_callback(void (*connection)()); void ble_manager_set_ble_disconnection_callback(void (*disconnection)()); static constexpr uint8_t pinTouchIrq = 28; static constexpr uint8_t pinPowerPresentIrq = 19; -std::unique_ptr<Pinetime::System::SystemTask> systemTask; Pinetime::Controllers::Settings settingsController {spiNorFlash}; Pinetime::Controllers::MotorController motorController {settingsController}; +Pinetime::Controllers::HeartRateController heartRateController; +Pinetime::Applications::HeartRateTask heartRateApp(heartRateSensor, heartRateController); + +Pinetime::Controllers::DateTime dateTimeController; +Pinetime::Drivers::Watchdog watchdog; +Pinetime::Drivers::WatchdogView watchdogView(watchdog); +Pinetime::Controllers::NotificationManager notificationManager; +Pinetime::Controllers::MotionController motionController; +Pinetime::Controllers::TimerController timerController; + +Pinetime::Applications::DisplayApp displayApp(lcd, + lvgl, + touchPanel, + batteryController, + bleController, + dateTimeController, + watchdogView, + notificationManager, + heartRateController, + settingsController, + motorController, + motionController, + timerController); + +Pinetime::System::SystemTask systemTask(spi, + lcd, + spiNorFlash, + twiMaster, + touchPanel, + lvgl, + batteryController, + bleController, + dateTimeController, + timerController, + watchdog, + notificationManager, + motorController, + heartRateSensor, + motionController, + motionSensor, + settingsController, + heartRateController, + displayApp, + heartRateApp); + void nrfx_gpiote_evt_handler(nrfx_gpiote_pin_t pin, nrf_gpiote_polarity_t action) { if (pin == pinTouchIrq) { - systemTask->OnTouchEvent(); + systemTask.OnTouchEvent(); return; } @@ -141,12 +184,12 @@ void vApplicationIdleHook(void) { void DebounceTimerChargeCallback(TimerHandle_t xTimer) { xTimerStop(xTimer, 0); - systemTask->PushMessage(Pinetime::System::SystemTask::Messages::OnChargingEvent); + systemTask.PushMessage(Pinetime::System::Messages::OnChargingEvent); } void DebounceTimerCallback(TimerHandle_t xTimer) { xTimerStop(xTimer, 0); - systemTask->OnButtonPushed(); + systemTask.OnButtonPushed(); } void SPIM0_SPIS0_TWIM0_TWIS0_SPI0_TWI0_IRQHandler(void) { @@ -264,19 +307,7 @@ int main(void) { debounceTimer = xTimerCreate("debounceTimer", 200, pdFALSE, (void*) 0, DebounceTimerCallback); debounceChargeTimer = xTimerCreate("debounceTimerCharge", 200, pdFALSE, (void*) 0, DebounceTimerChargeCallback); - systemTask = std::make_unique<Pinetime::System::SystemTask>(spi, - lcd, - spiNorFlash, - twiMaster, - touchPanel, - lvgl, - batteryController, - bleController, - motorController, - heartRateSensor, - motionSensor, - settingsController); - systemTask->Start(); + systemTask.Start(); nimble_port_init(); vTaskStartScheduler(); diff --git a/src/systemtask/Messages.h b/src/systemtask/Messages.h new file mode 100644 index 00000000..3a195e2d --- /dev/null +++ b/src/systemtask/Messages.h @@ -0,0 +1,26 @@ +#pragma once + +namespace Pinetime { + namespace System { + enum class Messages { + GoToSleep, + GoToRunning, + TouchWakeUp, + OnNewTime, + OnNewNotification, + OnTimerDone, + OnNewCall, + BleConnected, + UpdateTimeOut, + BleFirmwareUpdateStarted, + BleFirmwareUpdateFinished, + OnTouchEvent, + OnButtonEvent, + OnDisplayTaskSleeping, + EnableSleeping, + DisableSleeping, + OnNewDay, + OnChargingEvent + }; + } +} diff --git a/src/systemtask/SystemTask.cpp b/src/systemtask/SystemTask.cpp index 58377764..be484bb4 100644 --- a/src/systemtask/SystemTask.cpp +++ b/src/systemtask/SystemTask.cpp @@ -42,10 +42,18 @@ SystemTask::SystemTask(Drivers::SpiMaster& spi, Components::LittleVgl& lvgl, Controllers::Battery& batteryController, Controllers::Ble& bleController, + Controllers::DateTime& dateTimeController, + Controllers::TimerController& timerController, + Drivers::Watchdog& watchdog, + Pinetime::Controllers::NotificationManager& notificationManager, Pinetime::Controllers::MotorController& motorController, Pinetime::Drivers::Hrs3300& heartRateSensor, + Pinetime::Controllers::MotionController& motionController, Pinetime::Drivers::Bma421& motionSensor, - Controllers::Settings& settingsController) + Controllers::Settings& settingsController, + Pinetime::Controllers::HeartRateController& heartRateController, + Pinetime::Applications::DisplayApp& displayApp, + Pinetime::Applications::HeartRateTask& heartRateApp) : spi {spi}, lcd {lcd}, spiNorFlash {spiNorFlash}, @@ -53,17 +61,20 @@ SystemTask::SystemTask(Drivers::SpiMaster& spi, touchPanel {touchPanel}, lvgl {lvgl}, batteryController {batteryController}, - heartRateController {*this}, bleController {bleController}, - dateTimeController {*this}, - timerController {*this}, - watchdog {}, - watchdogView {watchdog}, + dateTimeController {dateTimeController}, + timerController {timerController}, + watchdog {watchdog}, + notificationManager{notificationManager}, motorController {motorController}, heartRateSensor {heartRateSensor}, motionSensor {motionSensor}, settingsController {settingsController}, - nimbleController(*this, bleController, dateTimeController, notificationManager, batteryController, spiNorFlash, heartRateController) { + heartRateController{heartRateController}, + nimbleController(*this, bleController, dateTimeController, notificationManager, batteryController, spiNorFlash, heartRateController), + motionController{motionController}, + displayApp{displayApp}, + heartRateApp(heartRateApp) { systemTasksMsgQueue = xQueueCreate(10, 1); } @@ -96,9 +107,11 @@ void SystemTask::Work() { twiMaster.Init(); touchPanel.Init(); + dateTimeController.Register(this); batteryController.Init(); motorController.Init(); motionSensor.SoftReset(); + timerController.Register(this); timerController.Init(); // Reset the TWI device because the motion sensor chip most probably crashed it... @@ -108,28 +121,14 @@ void SystemTask::Work() { motionSensor.Init(); settingsController.Init(); - displayApp = std::make_unique<Pinetime::Applications::DisplayApp>(lcd, - lvgl, - touchPanel, - batteryController, - bleController, - dateTimeController, - watchdogView, - *this, - notificationManager, - heartRateController, - settingsController, - motorController, - motionController, - timerController); - displayApp->Start(); + displayApp.Register(this); + displayApp.Start(); - displayApp->PushMessage(Pinetime::Applications::Display::Messages::UpdateBatteryLevel); + displayApp.PushMessage(Pinetime::Applications::Display::Messages::UpdateBatteryLevel); heartRateSensor.Init(); heartRateSensor.Disable(); - heartRateApp = std::make_unique<Pinetime::Applications::HeartRateTask>(heartRateSensor, heartRateController); - heartRateApp->Start(); + heartRateApp.Start(); nrf_gpio_cfg_sense_input(pinButton, (nrf_gpio_pin_pull_t) GPIO_PIN_CNF_PULL_Pulldown, (nrf_gpio_pin_sense_t) GPIO_PIN_CNF_SENSE_High); nrf_gpio_cfg_output(15); @@ -208,9 +207,9 @@ void SystemTask::Work() { spiNorFlash.Wakeup(); lcd.Wakeup(); - displayApp->PushMessage(Pinetime::Applications::Display::Messages::GoToRunning); - displayApp->PushMessage(Pinetime::Applications::Display::Messages::UpdateBatteryLevel); - heartRateApp->PushMessage(Pinetime::Applications::HeartRateTask::Messages::WakeUp); + displayApp.PushMessage(Pinetime::Applications::Display::Messages::GoToRunning); + displayApp.PushMessage(Pinetime::Applications::Display::Messages::UpdateBatteryLevel); + heartRateApp.PushMessage(Pinetime::Applications::HeartRateTask::Messages::WakeUp); isSleeping = false; isWakingUp = false; @@ -230,26 +229,26 @@ void SystemTask::Work() { isGoingToSleep = true; NRF_LOG_INFO("[systemtask] Going to sleep"); xTimerStop(idleTimer, 0); - displayApp->PushMessage(Pinetime::Applications::Display::Messages::GoToSleep); - heartRateApp->PushMessage(Pinetime::Applications::HeartRateTask::Messages::GoToSleep); + displayApp.PushMessage(Pinetime::Applications::Display::Messages::GoToSleep); + heartRateApp.PushMessage(Pinetime::Applications::HeartRateTask::Messages::GoToSleep); break; case Messages::OnNewTime: ReloadIdleTimer(); - displayApp->PushMessage(Pinetime::Applications::Display::Messages::UpdateDateTime); + displayApp.PushMessage(Pinetime::Applications::Display::Messages::UpdateDateTime); break; case Messages::OnNewNotification: if (isSleeping && !isWakingUp) { GoToRunning(); } motorController.SetDuration(35); - displayApp->PushMessage(Pinetime::Applications::Display::Messages::NewNotification); + displayApp.PushMessage(Pinetime::Applications::Display::Messages::NewNotification); break; case Messages::OnTimerDone: if (isSleeping && !isWakingUp) { GoToRunning(); } motorController.SetDuration(35); - displayApp->PushMessage(Pinetime::Applications::Display::Messages::TimerDone); + displayApp.PushMessage(Pinetime::Applications::Display::Messages::TimerDone); break; case Messages::BleConnected: ReloadIdleTimer(); @@ -260,7 +259,7 @@ void SystemTask::Work() { doNotGoToSleep = true; if (isSleeping && !isWakingUp) GoToRunning(); - displayApp->PushMessage(Pinetime::Applications::Display::Messages::BleFirmwareUpdateStarted); + displayApp.PushMessage(Pinetime::Applications::Display::Messages::BleFirmwareUpdateStarted); break; case Messages::BleFirmwareUpdateFinished: doNotGoToSleep = false; @@ -359,7 +358,7 @@ void SystemTask::OnButtonPushed() { if (!isSleeping) { NRF_LOG_INFO("[systemtask] Button pushed"); PushMessage(Messages::OnButtonEvent); - displayApp->PushMessage(Pinetime::Applications::Display::Messages::ButtonPushed); + displayApp.PushMessage(Pinetime::Applications::Display::Messages::ButtonPushed); } else { if (!isWakingUp) { NRF_LOG_INFO("[systemtask] Button pushed, waking up"); @@ -380,7 +379,7 @@ void SystemTask::OnTouchEvent() { return; if (!isSleeping) { PushMessage(Messages::OnTouchEvent); - displayApp->PushMessage(Pinetime::Applications::Display::Messages::TouchEvent); + displayApp.PushMessage(Pinetime::Applications::Display::Messages::TouchEvent); } else if (!isWakingUp) { if (settingsController.getWakeUpMode() == Pinetime::Controllers::Settings::WakeUpMode::None or settingsController.getWakeUpMode() == Pinetime::Controllers::Settings::WakeUpMode::RaiseWrist) @@ -389,7 +388,7 @@ void SystemTask::OnTouchEvent() { } } -void SystemTask::PushMessage(SystemTask::Messages msg) { +void SystemTask::PushMessage(System::Messages msg) { if (msg == Messages::GoToSleep) { isGoingToSleep = true; } diff --git a/src/systemtask/SystemTask.h b/src/systemtask/SystemTask.h index ea41a69d..fa6a949c 100644 --- a/src/systemtask/SystemTask.h +++ b/src/systemtask/SystemTask.h @@ -6,7 +6,6 @@ #include <task.h> #include <timers.h> #include <heartratetask/HeartRateTask.h> -#include <components/heartrate/HeartRateController.h> #include <components/settings/Settings.h> #include <drivers/Bma421.h> #include <components/motion/MotionController.h> @@ -27,6 +26,7 @@ #endif #include "drivers/Watchdog.h" +#include "Messages.h" namespace Pinetime { namespace Drivers { @@ -40,27 +40,6 @@ namespace Pinetime { namespace System { class SystemTask { public: - enum class Messages { - GoToSleep, - GoToRunning, - TouchWakeUp, - OnNewTime, - OnNewNotification, - OnTimerDone, - OnNewCall, - BleConnected, - UpdateTimeOut, - BleFirmwareUpdateStarted, - BleFirmwareUpdateFinished, - OnTouchEvent, - OnButtonEvent, - OnDisplayTaskSleeping, - EnableSleeping, - DisableSleeping, - OnNewDay, - OnChargingEvent - }; - SystemTask(Drivers::SpiMaster& spi, Drivers::St7789& lcd, Pinetime::Drivers::SpiNorFlash& spiNorFlash, @@ -69,10 +48,18 @@ namespace Pinetime { Components::LittleVgl& lvgl, Controllers::Battery& batteryController, Controllers::Ble& bleController, + Controllers::DateTime& dateTimeController, + Controllers::TimerController& timerController, + Drivers::Watchdog& watchdog, + Pinetime::Controllers::NotificationManager& notificationManager, Pinetime::Controllers::MotorController& motorController, Pinetime::Drivers::Hrs3300& heartRateSensor, + Pinetime::Controllers::MotionController& motionController, Pinetime::Drivers::Bma421& motionSensor, - Controllers::Settings& settingsController); + Controllers::Settings& settingsController, + Pinetime::Controllers::HeartRateController& heartRateController, + Pinetime::Applications::DisplayApp& displayApp, + Pinetime::Applications::HeartRateTask& heartRateApp); void Start(); void PushMessage(Messages msg); @@ -96,27 +83,29 @@ namespace Pinetime { Pinetime::Drivers::Cst816S& touchPanel; Pinetime::Components::LittleVgl& lvgl; Pinetime::Controllers::Battery& batteryController; - std::unique_ptr<Pinetime::Applications::DisplayApp> displayApp; - Pinetime::Controllers::HeartRateController heartRateController; - std::unique_ptr<Pinetime::Applications::HeartRateTask> heartRateApp; + Pinetime::Controllers::Ble& bleController; - Pinetime::Controllers::DateTime dateTimeController; - Pinetime::Controllers::TimerController timerController; + Pinetime::Controllers::DateTime& dateTimeController; + Pinetime::Controllers::TimerController& timerController; QueueHandle_t systemTasksMsgQueue; std::atomic<bool> isSleeping {false}; std::atomic<bool> isGoingToSleep {false}; std::atomic<bool> isWakingUp {false}; - Pinetime::Drivers::Watchdog watchdog; - Pinetime::Drivers::WatchdogView watchdogView; - Pinetime::Controllers::NotificationManager notificationManager; + Pinetime::Drivers::Watchdog& watchdog; + Pinetime::Controllers::NotificationManager& notificationManager; Pinetime::Controllers::MotorController& motorController; Pinetime::Drivers::Hrs3300& heartRateSensor; Pinetime::Drivers::Bma421& motionSensor; Pinetime::Controllers::Settings& settingsController; + Pinetime::Controllers::HeartRateController& heartRateController; Pinetime::Controllers::NimbleController nimbleController; Controllers::BrightnessController brightnessController; - Pinetime::Controllers::MotionController motionController; + Pinetime::Controllers::MotionController& motionController; + + Pinetime::Applications::DisplayApp& displayApp; + Pinetime::Applications::HeartRateTask& heartRateApp; + static constexpr uint8_t pinSpiSck = 2; static constexpr uint8_t pinSpiMosi = 3; From ff00873f974cb1400acf7721251167634e60107a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jean-Fran=C3=A7ois=20Milants?= <jf@codingfield.com> Date: Sun, 6 Jun 2021 20:20:55 +0200 Subject: [PATCH 06/58] Fix build for recovery firmware. --- src/displayapp/DisplayAppRecovery.cpp | 7 +++++-- src/displayapp/DisplayAppRecovery.h | 2 +- src/main.cpp | 1 - 3 files changed, 6 insertions(+), 4 deletions(-) diff --git a/src/displayapp/DisplayAppRecovery.cpp b/src/displayapp/DisplayAppRecovery.cpp index 856eafd8..b73d0a85 100644 --- a/src/displayapp/DisplayAppRecovery.cpp +++ b/src/displayapp/DisplayAppRecovery.cpp @@ -14,7 +14,6 @@ DisplayApp::DisplayApp(Drivers::St7789& lcd, Controllers::Ble& bleController, Controllers::DateTime& dateTimeController, Drivers::WatchdogView& watchdog, - System::SystemTask& systemTask, Pinetime::Controllers::NotificationManager& notificationManager, Pinetime::Controllers::HeartRateController& heartRateController, Controllers::Settings& settingsController, @@ -113,4 +112,8 @@ void DisplayApp::PushMessage(Display::Messages msg) { /* Actual macro used here is port specific. */ // TODO : should I do something here? } -} \ No newline at end of file +} + +void DisplayApp::Register(Pinetime::System::SystemTask* systemTask) { + +} diff --git a/src/displayapp/DisplayAppRecovery.h b/src/displayapp/DisplayAppRecovery.h index 2c5a36fb..638c0071 100644 --- a/src/displayapp/DisplayAppRecovery.h +++ b/src/displayapp/DisplayAppRecovery.h @@ -39,7 +39,6 @@ namespace Pinetime { Controllers::Ble& bleController, Controllers::DateTime& dateTimeController, Drivers::WatchdogView& watchdog, - System::SystemTask& systemTask, Pinetime::Controllers::NotificationManager& notificationManager, Pinetime::Controllers::HeartRateController& heartRateController, Controllers::Settings& settingsController, @@ -48,6 +47,7 @@ namespace Pinetime { Pinetime::Controllers::TimerController& timerController); void Start(); void PushMessage(Pinetime::Applications::Display::Messages msg); + void Register(Pinetime::System::SystemTask* systemTask); private: TaskHandle_t taskHandle; diff --git a/src/main.cpp b/src/main.cpp index 60ed058b..52ec9580 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -33,7 +33,6 @@ #include "components/ble/NotificationManager.h" #include "components/motor/MotorController.h" #include "components/datetime/DateTimeController.h" -#include "components/settings/Settings.h" #include "components/heartrate/HeartRateController.h" #include "drivers/Spi.h" #include "drivers/SpiMaster.h" From caca6a5cff0025df80241a09baab28e49720ddf8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jean-Fran=C3=A7ois=20Milants?= <jf@codingfield.com> Date: Thu, 10 Jun 2021 21:19:11 +0200 Subject: [PATCH 07/58] Fix stack corruption when exiting an app (the app was destroyed while it was executing the button handler). --- src/displayapp/DisplayApp.cpp | 8 +++++++- src/displayapp/DisplayApp.h | 3 +++ 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/src/displayapp/DisplayApp.cpp b/src/displayapp/DisplayApp.cpp index ba6dfbd2..99758c92 100644 --- a/src/displayapp/DisplayApp.cpp +++ b/src/displayapp/DisplayApp.cpp @@ -205,6 +205,11 @@ void DisplayApp::Refresh() { } } + if(nextApp != Apps::None) { + LoadApp(nextApp, nextDirection); + nextApp = Apps::None; + } + if (state != States::Idle && touchMode == TouchModes::Polling) { auto info = touchPanel.GetTouchInfo(); if (info.action == 2) { // 2 = contact @@ -223,7 +228,8 @@ void DisplayApp::RunningState() { } void DisplayApp::StartApp(Apps app, DisplayApp::FullRefreshDirections direction) { - LoadApp(app, direction); + nextApp = app; + nextDirection = direction; } void DisplayApp::ReturnApp(Apps app, DisplayApp::FullRefreshDirections direction, TouchEvents touchEvent) { diff --git a/src/displayapp/DisplayApp.h b/src/displayapp/DisplayApp.h index 65abd41a..73a7cc36 100644 --- a/src/displayapp/DisplayApp.h +++ b/src/displayapp/DisplayApp.h @@ -111,6 +111,9 @@ namespace Pinetime { void ReturnApp(Apps app, DisplayApp::FullRefreshDirections direction, TouchEvents touchEvent); void LoadApp(Apps app, DisplayApp::FullRefreshDirections direction); void PushMessageToSystemTask(Pinetime::System::Messages message); + + Apps nextApp = Apps::None; + DisplayApp::FullRefreshDirections nextDirection; }; } } From b1925ff28638dd4b8400c4d0c49d796d8990b1af Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jean-Fran=C3=A7ois=20Milants?= <jf@codingfield.com> Date: Thu, 10 Jun 2021 21:20:27 +0200 Subject: [PATCH 08/58] Minor improvements: use std::make_unique when creating unique_ptr, check the code is running from an IRQ before calling xQueueSendFromISR or xQueueSend) --- src/displayapp/DisplayApp.cpp | 21 ++++++++++++----- src/displayapp/screens/SystemInfo.cpp | 10 ++++---- src/displayapp/screens/settings/Settings.cpp | 4 ++-- src/displayapp/screens/settings/Settings.h | 1 - src/drivers/SpiMaster.cpp | 8 +++---- src/systemtask/SystemTask.cpp | 24 +++++++++++++++----- 6 files changed, 44 insertions(+), 24 deletions(-) diff --git a/src/displayapp/DisplayApp.cpp b/src/displayapp/DisplayApp.cpp index 99758c92..3bfaf2a2 100644 --- a/src/displayapp/DisplayApp.cpp +++ b/src/displayapp/DisplayApp.cpp @@ -45,6 +45,12 @@ using namespace Pinetime::Applications; using namespace Pinetime::Applications::Display; +namespace { + static inline bool in_isr(void) { + return (SCB->ICSR & SCB_ICSR_VECTACTIVE_Msk) != 0; + } +} + DisplayApp::DisplayApp(Drivers::St7789& lcd, Components::LittleVgl& lvgl, Drivers::Cst816S& touchPanel, @@ -364,12 +370,15 @@ void DisplayApp::IdleState() { } void DisplayApp::PushMessage(Messages msg) { - BaseType_t xHigherPriorityTaskWoken; - xHigherPriorityTaskWoken = pdFALSE; - xQueueSendFromISR(msgQueue, &msg, &xHigherPriorityTaskWoken); - if (xHigherPriorityTaskWoken) { - /* Actual macro used here is port specific. */ - // TODO : should I do something here? + if(in_isr()) { + BaseType_t xHigherPriorityTaskWoken; + xHigherPriorityTaskWoken = pdFALSE; + xQueueSendFromISR(msgQueue, &msg, &xHigherPriorityTaskWoken); + if (xHigherPriorityTaskWoken) { + portYIELD_FROM_ISR(xHigherPriorityTaskWoken); + } + } else { + xQueueSend(msgQueue, &msg, portMAX_DELAY); } } diff --git a/src/displayapp/screens/SystemInfo.cpp b/src/displayapp/screens/SystemInfo.cpp index f61d2ff1..a7387dac 100644 --- a/src/displayapp/screens/SystemInfo.cpp +++ b/src/displayapp/screens/SystemInfo.cpp @@ -81,7 +81,7 @@ std::unique_ptr<Screen> SystemInfo::CreateScreen1() { __TIME__); lv_label_set_align(label, LV_LABEL_ALIGN_CENTER); lv_obj_align(label, lv_scr_act(), LV_ALIGN_CENTER, 0, 0); - return std::unique_ptr<Screen>(new Screens::Label(0, 5, app, label)); + return std::make_unique<Screens::Label>(0, 5, app, label); } std::unique_ptr<Screen> SystemInfo::CreateScreen2() { @@ -161,7 +161,7 @@ std::unique_ptr<Screen> SystemInfo::CreateScreen2() { brightnessController.ToString(), resetReason); lv_obj_align(label, lv_scr_act(), LV_ALIGN_CENTER, 0, 0); - return std::unique_ptr<Screen>(new Screens::Label(1, 4, app, label)); + return std::make_unique<Screens::Label>(1, 4, app, label); } std::unique_ptr<Screen> SystemInfo::CreateScreen3() { @@ -195,7 +195,7 @@ std::unique_ptr<Screen> SystemInfo::CreateScreen3() { (int) mon.free_biggest_size, 0); lv_obj_align(label, lv_scr_act(), LV_ALIGN_CENTER, 0, 0); - return std::unique_ptr<Screen>(new Screens::Label(2, 5, app, label)); + return std::make_unique<Screens::Label>(2, 5, app, label); } bool sortById(const TaskStatus_t& lhs, const TaskStatus_t& rhs) { @@ -229,7 +229,7 @@ std::unique_ptr<Screen> SystemInfo::CreateScreen4() { lv_table_set_cell_value(infoTask, i + 1, 2, std::to_string(tasksStatus[i].usStackHighWaterMark).c_str()); } } - return std::unique_ptr<Screen>(new Screens::Label(3, 5, app, infoTask)); + return std::make_unique<Screens::Label>(3, 5, app, infoTask); } std::unique_ptr<Screen> SystemInfo::CreateScreen5() { @@ -245,5 +245,5 @@ std::unique_ptr<Screen> SystemInfo::CreateScreen5() { "#FFFF00 JF002/InfiniTime#"); lv_label_set_align(label, LV_LABEL_ALIGN_CENTER); lv_obj_align(label, lv_scr_act(), LV_ALIGN_CENTER, 0, 0); - return std::unique_ptr<Screen>(new Screens::Label(4, 5, app, label)); + return std::make_unique<Screens::Label>(4, 5, app, label); } diff --git a/src/displayapp/screens/settings/Settings.cpp b/src/displayapp/screens/settings/Settings.cpp index 2c72c832..e63a3584 100644 --- a/src/displayapp/screens/settings/Settings.cpp +++ b/src/displayapp/screens/settings/Settings.cpp @@ -46,7 +46,7 @@ std::unique_ptr<Screen> Settings::CreateScreen1() { {Symbols::clock, "Watch face", Apps::SettingWatchFace}, }}; - return std::unique_ptr<Screen>(new Screens::List(0, 2, app, settingsController, applications)); + return std::make_unique<Screens::List>(0, 2, app, settingsController, applications); } std::unique_ptr<Screen> Settings::CreateScreen2() { @@ -58,5 +58,5 @@ std::unique_ptr<Screen> Settings::CreateScreen2() { {Symbols::list, "About", Apps::SysInfo}, }}; - return std::unique_ptr<Screen>(new Screens::List(1, 2, app, settingsController, applications)); + return std::make_unique<Screens::List>(1, 2, app, settingsController, applications); } diff --git a/src/displayapp/screens/settings/Settings.h b/src/displayapp/screens/settings/Settings.h index 7e332dfe..711a6be6 100644 --- a/src/displayapp/screens/settings/Settings.h +++ b/src/displayapp/screens/settings/Settings.h @@ -16,7 +16,6 @@ namespace Pinetime { bool Refresh() override; - void OnButtonEvent(lv_obj_t* object, lv_event_t event); bool OnTouchEvent(Pinetime::Applications::TouchEvents event) override; private: diff --git a/src/drivers/SpiMaster.cpp b/src/drivers/SpiMaster.cpp index 34fcc08a..e2be5027 100644 --- a/src/drivers/SpiMaster.cpp +++ b/src/drivers/SpiMaster.cpp @@ -132,17 +132,17 @@ void SpiMaster::OnEndEvent() { spiBaseAddress->TASKS_START = 1; } else { + BaseType_t xHigherPriorityTaskWoken = pdFALSE; if (taskToNotify != nullptr) { - BaseType_t xHigherPriorityTaskWoken = pdFALSE; vTaskNotifyGiveFromISR(taskToNotify, &xHigherPriorityTaskWoken); portYIELD_FROM_ISR(xHigherPriorityTaskWoken); } nrf_gpio_pin_set(this->pinCsn); currentBufferAddr = 0; - BaseType_t xHigherPriorityTaskWoken = pdFALSE; - xSemaphoreGiveFromISR(mutex, &xHigherPriorityTaskWoken); - portYIELD_FROM_ISR(xHigherPriorityTaskWoken); + BaseType_t xHigherPriorityTaskWoken2 = pdFALSE; + xSemaphoreGiveFromISR(mutex, &xHigherPriorityTaskWoken2); + portYIELD_FROM_ISR(xHigherPriorityTaskWoken | xHigherPriorityTaskWoken2); } } diff --git a/src/systemtask/SystemTask.cpp b/src/systemtask/SystemTask.cpp index be484bb4..4799624a 100644 --- a/src/systemtask/SystemTask.cpp +++ b/src/systemtask/SystemTask.cpp @@ -27,6 +27,12 @@ using namespace Pinetime::System; +namespace { + static inline bool in_isr(void) { + return (SCB->ICSR & SCB_ICSR_VECTACTIVE_Msk) != 0; + } +} + void IdleTimerCallback(TimerHandle_t xTimer) { NRF_LOG_INFO("IdleTimerCallback"); @@ -392,12 +398,18 @@ void SystemTask::PushMessage(System::Messages msg) { if (msg == Messages::GoToSleep) { isGoingToSleep = true; } - BaseType_t xHigherPriorityTaskWoken; - xHigherPriorityTaskWoken = pdFALSE; - xQueueSendFromISR(systemTasksMsgQueue, &msg, &xHigherPriorityTaskWoken); - if (xHigherPriorityTaskWoken) { - /* Actual macro used here is port specific. */ - // TODO: should I do something here? + + if(in_isr()) { + BaseType_t xHigherPriorityTaskWoken; + xHigherPriorityTaskWoken = pdFALSE; + xQueueSendFromISR(systemTasksMsgQueue, &msg, &xHigherPriorityTaskWoken); + if (xHigherPriorityTaskWoken) { + /* Actual macro used here is port specific. */ + portYIELD_FROM_ISR(xHigherPriorityTaskWoken); + + } + } else { + xQueueSend(systemTasksMsgQueue, &msg, portMAX_DELAY); } } From 049174bd3535d980a2744cbf035e1e33d33b5e39 Mon Sep 17 00:00:00 2001 From: Florian <florian@florian-thinkpad.local> Date: Fri, 11 Jun 2021 01:15:32 +0200 Subject: [PATCH 09/58] replace ScreenList with a single screen in Clock. This removes the tap to switch feature --- src/displayapp/screens/Clock.cpp | 39 +++++++++++++++++--------------- src/displayapp/screens/Clock.h | 4 ++-- 2 files changed, 23 insertions(+), 20 deletions(-) diff --git a/src/displayapp/screens/Clock.cpp b/src/displayapp/screens/Clock.cpp index 14299840..9962a9f4 100644 --- a/src/displayapp/screens/Clock.cpp +++ b/src/displayapp/screens/Clock.cpp @@ -32,22 +32,25 @@ Clock::Clock(DisplayApp* app, notificatioManager {notificatioManager}, settingsController {settingsController}, heartRateController {heartRateController}, - motionController {motionController}, - screens {app, - settingsController.GetClockFace(), - { - [this]() -> std::unique_ptr<Screen> { - return WatchFaceDigitalScreen(); - }, - [this]() -> std::unique_ptr<Screen> { - return WatchFaceAnalogScreen(); - }, - // Examples for more watch faces - //[this]() -> std::unique_ptr<Screen> { return WatchFaceMinimalScreen(); }, - //[this]() -> std::unique_ptr<Screen> { return WatchFaceCustomScreen(); } - }, - Screens::ScreenListModes::LongPress} { - + motionController {motionController} { + + switch (settingsController.GetClockFace()) { + case 0: + screen = WatchFaceDigitalScreen(); + break; + case 1: + screen = WatchFaceAnalogScreen(); + break; + /* + // Examples for more watch faces + case 2: + screen = WatchFaceMinimalScreen(); + break; + case 3: + screen = WatchFaceCustomScreen(); + break; + */ + } settingsController.SetAppMenu(0); } @@ -56,12 +59,12 @@ Clock::~Clock() { } bool Clock::Refresh() { - screens.Refresh(); + screen->Refresh(); return running; } bool Clock::OnTouchEvent(Pinetime::Applications::TouchEvents event) { - return screens.OnTouchEvent(event); + return screen->OnTouchEvent(event); } std::unique_ptr<Screen> Clock::WatchFaceDigitalScreen() { diff --git a/src/displayapp/screens/Clock.h b/src/displayapp/screens/Clock.h index 9879985f..174c73b7 100644 --- a/src/displayapp/screens/Clock.h +++ b/src/displayapp/screens/Clock.h @@ -4,8 +4,8 @@ #include <chrono> #include <cstdint> #include <memory> +#include <components/heartrate/HeartRateController.h> #include "Screen.h" -#include "ScreenList.h" #include "components/datetime/DateTimeController.h" namespace Pinetime { @@ -47,7 +47,7 @@ namespace Pinetime { Controllers::HeartRateController& heartRateController; Controllers::MotionController& motionController; - ScreenList<2> screens; + std::unique_ptr<Screen> screen; std::unique_ptr<Screen> WatchFaceDigitalScreen(); std::unique_ptr<Screen> WatchFaceAnalogScreen(); From 6d524ebea2c97e309633d5e01c3a1e37c182f27d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jean-Fran=C3=A7ois=20Milants?= <jf@codingfield.com> Date: Sat, 12 Jun 2021 10:58:28 +0200 Subject: [PATCH 10/58] Move most of the code from the constructor of the objects statically initialized in main() into Start()/Init() functions to avoid Static Initialization Order Fiasco (https://en.cppreference.com/w/cpp/language/siof). See https://github.com/JF002/InfiniTime/pull/415#issuecomment-859004238. --- src/displayapp/DisplayApp.cpp | 8 +++++--- src/displayapp/DisplayAppRecovery.cpp | 3 ++- src/displayapp/LittleVgl.cpp | 4 ++++ src/displayapp/LittleVgl.h | 2 ++ src/drivers/SpiMaster.cpp | 7 +++++-- src/drivers/SpiMaster.h | 2 +- src/drivers/TwiMaster.cpp | 4 +++- src/drivers/TwiMaster.h | 2 +- src/heartratetask/HeartRateTask.cpp | 5 +++-- src/main.cpp | 2 ++ src/systemtask/SystemTask.cpp | 3 ++- 11 files changed, 30 insertions(+), 12 deletions(-) diff --git a/src/displayapp/DisplayApp.cpp b/src/displayapp/DisplayApp.cpp index 3bfaf2a2..05f171be 100644 --- a/src/displayapp/DisplayApp.cpp +++ b/src/displayapp/DisplayApp.cpp @@ -77,12 +77,14 @@ DisplayApp::DisplayApp(Drivers::St7789& lcd, motorController {motorController}, motionController {motionController}, timerController {timerController} { - msgQueue = xQueueCreate(queueSize, itemSize); - // Start clock when smartwatch boots - LoadApp(Apps::Clock, DisplayApp::FullRefreshDirections::None); } void DisplayApp::Start() { + msgQueue = xQueueCreate(queueSize, itemSize); + + // Start clock when smartwatch boots + LoadApp(Apps::Clock, DisplayApp::FullRefreshDirections::None); + if (pdPASS != xTaskCreate(DisplayApp::Process, "displayapp", 800, this, 0, &taskHandle)) { APP_ERROR_HANDLER(NRF_ERROR_NO_MEM); } diff --git a/src/displayapp/DisplayAppRecovery.cpp b/src/displayapp/DisplayAppRecovery.cpp index b73d0a85..fd517b11 100644 --- a/src/displayapp/DisplayAppRecovery.cpp +++ b/src/displayapp/DisplayAppRecovery.cpp @@ -21,10 +21,11 @@ DisplayApp::DisplayApp(Drivers::St7789& lcd, Pinetime::Controllers::MotionController& motionController, Pinetime::Controllers::TimerController& timerController) : lcd {lcd}, bleController {bleController} { - msgQueue = xQueueCreate(queueSize, itemSize); + } void DisplayApp::Start() { + msgQueue = xQueueCreate(queueSize, itemSize); if (pdPASS != xTaskCreate(DisplayApp::Process, "displayapp", 512, this, 0, &taskHandle)) APP_ERROR_HANDLER(NRF_ERROR_NO_MEM); } diff --git a/src/displayapp/LittleVgl.cpp b/src/displayapp/LittleVgl.cpp index 36df51b4..c069afa2 100644 --- a/src/displayapp/LittleVgl.cpp +++ b/src/displayapp/LittleVgl.cpp @@ -23,6 +23,10 @@ bool touchpad_read(lv_indev_drv_t* indev_drv, lv_indev_data_t* data) { LittleVgl::LittleVgl(Pinetime::Drivers::St7789& lcd, Pinetime::Drivers::Cst816S& touchPanel) : lcd {lcd}, touchPanel {touchPanel}, previousClick {0, 0} { + +} + +void LittleVgl::Init() { lv_init(); InitTheme(); InitDisplay(); diff --git a/src/displayapp/LittleVgl.h b/src/displayapp/LittleVgl.h index 7f7b76e0..41f934a7 100644 --- a/src/displayapp/LittleVgl.h +++ b/src/displayapp/LittleVgl.h @@ -19,6 +19,8 @@ namespace Pinetime { LittleVgl(LittleVgl&&) = delete; LittleVgl& operator=(LittleVgl&&) = delete; + void Init(); + void FlushDisplay(const lv_area_t* area, lv_color_t* color_p); bool GetTouchPadInfo(lv_indev_data_t* ptr); void SetFullRefresh(FullRefreshDirections direction); diff --git a/src/drivers/SpiMaster.cpp b/src/drivers/SpiMaster.cpp index e2be5027..0d5bb83c 100644 --- a/src/drivers/SpiMaster.cpp +++ b/src/drivers/SpiMaster.cpp @@ -7,11 +7,14 @@ using namespace Pinetime::Drivers; SpiMaster::SpiMaster(const SpiMaster::SpiModule spi, const SpiMaster::Parameters& params) : spi {spi}, params {params} { - mutex = xSemaphoreCreateBinary(); - ASSERT(mutex != NULL); } bool SpiMaster::Init() { + if(mutex == nullptr) { + mutex = xSemaphoreCreateBinary(); + ASSERT(mutex != nullptr); + } + /* Configure GPIO pins used for pselsck, pselmosi, pselmiso and pselss for SPI0 */ nrf_gpio_pin_set(params.pinSCK); nrf_gpio_cfg_output(params.pinSCK); diff --git a/src/drivers/SpiMaster.h b/src/drivers/SpiMaster.h index 5045369a..5ea624f2 100644 --- a/src/drivers/SpiMaster.h +++ b/src/drivers/SpiMaster.h @@ -59,7 +59,7 @@ namespace Pinetime { volatile uint32_t currentBufferAddr = 0; volatile size_t currentBufferSize = 0; volatile TaskHandle_t taskToNotify; - SemaphoreHandle_t mutex; + SemaphoreHandle_t mutex = nullptr; }; } } diff --git a/src/drivers/TwiMaster.cpp b/src/drivers/TwiMaster.cpp index 7b6582dd..fc9edf81 100644 --- a/src/drivers/TwiMaster.cpp +++ b/src/drivers/TwiMaster.cpp @@ -9,10 +9,12 @@ using namespace Pinetime::Drivers; // TODO use DMA/IRQ TwiMaster::TwiMaster(const Modules module, const Parameters& params) : module {module}, params {params} { - mutex = xSemaphoreCreateBinary(); } void TwiMaster::Init() { + if(mutex == nullptr) + mutex = xSemaphoreCreateBinary(); + NRF_GPIO->PIN_CNF[params.pinScl] = ((uint32_t) GPIO_PIN_CNF_DIR_Input << GPIO_PIN_CNF_DIR_Pos) | ((uint32_t) GPIO_PIN_CNF_INPUT_Connect << GPIO_PIN_CNF_INPUT_Pos) | ((uint32_t) GPIO_PIN_CNF_PULL_Pullup << GPIO_PIN_CNF_PULL_Pos) | ((uint32_t) GPIO_PIN_CNF_DRIVE_S0D1 << GPIO_PIN_CNF_DRIVE_Pos) | diff --git a/src/drivers/TwiMaster.h b/src/drivers/TwiMaster.h index 1c0648a2..6175b99b 100644 --- a/src/drivers/TwiMaster.h +++ b/src/drivers/TwiMaster.h @@ -31,7 +31,7 @@ namespace Pinetime { ErrorCodes Write(uint8_t deviceAddress, const uint8_t* data, size_t size, bool stop); void FixHwFreezed(); NRF_TWIM_Type* twiBaseAddress; - SemaphoreHandle_t mutex; + SemaphoreHandle_t mutex = nullptr; const Modules module; const Parameters params; static constexpr uint8_t maxDataSize {16}; diff --git a/src/heartratetask/HeartRateTask.cpp b/src/heartratetask/HeartRateTask.cpp index 1c21db71..fddc05d7 100644 --- a/src/heartratetask/HeartRateTask.cpp +++ b/src/heartratetask/HeartRateTask.cpp @@ -7,11 +7,12 @@ using namespace Pinetime::Applications; HeartRateTask::HeartRateTask(Drivers::Hrs3300& heartRateSensor, Controllers::HeartRateController& controller) : heartRateSensor {heartRateSensor}, controller {controller}, ppg{} { - messageQueue = xQueueCreate(10, 1); - controller.SetHeartRateTask(this); } void HeartRateTask::Start() { + messageQueue = xQueueCreate(10, 1); + controller.SetHeartRateTask(this); + if (pdPASS != xTaskCreate(HeartRateTask::Process, "Heartrate", 500, this, 0, &taskHandle)) APP_ERROR_HANDLER(NRF_ERROR_NO_MEM); } diff --git a/src/main.cpp b/src/main.cpp index 52ec9580..4c2c5de8 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -306,6 +306,8 @@ int main(void) { debounceTimer = xTimerCreate("debounceTimer", 200, pdFALSE, (void*) 0, DebounceTimerCallback); debounceChargeTimer = xTimerCreate("debounceTimerCharge", 200, pdFALSE, (void*) 0, DebounceTimerChargeCallback); + lvgl.Init(); + systemTask.Start(); nimble_port_init(); diff --git a/src/systemtask/SystemTask.cpp b/src/systemtask/SystemTask.cpp index 4799624a..38e9793c 100644 --- a/src/systemtask/SystemTask.cpp +++ b/src/systemtask/SystemTask.cpp @@ -81,10 +81,11 @@ SystemTask::SystemTask(Drivers::SpiMaster& spi, motionController{motionController}, displayApp{displayApp}, heartRateApp(heartRateApp) { - systemTasksMsgQueue = xQueueCreate(10, 1); + } void SystemTask::Start() { + systemTasksMsgQueue = xQueueCreate(10, 1); if (pdPASS != xTaskCreate(SystemTask::Process, "MAIN", 350, this, 0, &taskHandle)) APP_ERROR_HANDLER(NRF_ERROR_NO_MEM); } From 346d20db52823eeed01d81cee4f413b753fbec9e Mon Sep 17 00:00:00 2001 From: JF002 <JF002@users.noreply.github.com> Date: Sat, 12 Jun 2021 11:02:54 +0200 Subject: [PATCH 11/58] Rewrite MemoryAnalysis.md with up to date information. (#411) Rewrite MemoryAnalysis.md with up to date information. --- doc/MemoryAnalysis.md | 325 ++++++++++++++++---- doc/memoryAnalysis/linkermapviz.png | Bin 0 -> 55661 bytes doc/memoryAnalysis/mapfile.png | Bin 0 -> 111302 bytes doc/memoryAnalysis/puncover-all-symbols.png | Bin 0 -> 78193 bytes doc/memoryAnalysis/puncover.png | Bin 0 -> 217193 bytes 5 files changed, 268 insertions(+), 57 deletions(-) create mode 100644 doc/memoryAnalysis/linkermapviz.png create mode 100644 doc/memoryAnalysis/mapfile.png create mode 100644 doc/memoryAnalysis/puncover-all-symbols.png create mode 100644 doc/memoryAnalysis/puncover.png diff --git a/doc/MemoryAnalysis.md b/doc/MemoryAnalysis.md index 95bd611c..3251c98d 100644 --- a/doc/MemoryAnalysis.md +++ b/doc/MemoryAnalysis.md @@ -1,7 +1,274 @@ # Memory analysis +The PineTime is equipped with the following memories: + - The internal RAM : **64KB** + - The internal Flash : **512KB** + - The external (SPI) Flash : **4MB** + +Note that the NRF52832 cannot execute code stored in the external flash : we need to store the whole firmware in the internal flash memory, and use the external one to store graphicals assets, fonts... + +This document describes how the RAM and Flash memories are used in InfiniTime and how to analyze and monitor their usage. It was written in the context of [this memory analysis effort](https://github.com/JF002/InfiniTime/issues/313). + +## Code sections +A binary is composed of multiple sections. Most of the time, these sections are : .text, .rodata, .data and .bss but more sections can be defined in the linker script. + +Here is a small description of these sections and where they end up in memory: + + - **TEXT** = code (FLASH) + - **RODATA** = constants (FLASH) + - **DATA** = initialized variables (FLASH + RAM) + - **BSS** = uninitialized variables (RAM) + + +## Internal FLASH +The internal flash memory stores the whole firmware: code, variable that are not default-initialized, constants... + +The content of the flash memory can be easily analyzed thanks to the MAP file generated by the compiler. This file lists all the symbols from the program along with their size and location (section and addresses) in RAM and FLASH. + +![Map file](./memoryAnalysis/mapfile.png) + +As you can see on the picture above, this file contains a lot of information and is not easily readable by a human being. Fortunately, you can easily find tools that parse and display the content of the MAP file in a more understandable way. + +In this analysis, I used [Linkermapviz](https://github.com/PromyLOPh/linkermapviz). + +### Linkermapviz + +[Linkermapviz](https://github.com/PromyLOPh/linkermapviz) parses the MAP file and displays its content in a graphical way into an HTML page: + +![linkermapviz](./memoryAnalysis/linkermapviz.png) + +Using this tool, you can easily see the size of each symbol relative to the other one, and check what is using most of the space,... + +Also, as Linkermapviz is written in Python, you can easily modify it to adapt it to your firmware, export data in another format,... For example, [I modified it to parse the contents of the MAP file and export it in a CSV file](https://github.com/JF002/InfiniTime/issues/313#issuecomment-842338620). I could later on open this file in LibreOffice Calc and use sort/filter functionality to search for specific symbols in specific files... + +### Puncover +[Puncover](https://github.com/HBehrens/puncover) is another useful tools that analyses the binary file generated by the compiler (the .out file that contains all debug information). It provides valuable information about the symbols (data and code): name, position, size, max stack of each functions, callers, callees... +![Puncover](./memoryAnalysis/puncover.png) + +Puncover is really easy to install: + + - clone the repo and cd into the cloned directory + - setup a venv + - `python -m virtualenv venv` + - `source venv/bin/activate` + - Install : `pip install .` + - Run : `puncover --gcc_tools_base=/path/to/gcc-arm-none-eabi-9-2020-q2-update/bin/arm-none-eabi- --elf_file /path/to/build/directory/src/pinetime-app-1.1.0.out --src_root /path/to/sources --build_dir /path/to/build/directory` + - Replace + * `/path/to/gcc-arm-none-eabi-9-2020-q2-update/bin` with the path to your gcc-arm-none-eabi toolchain + * `/path/to/build/directory/src/pinetime-app-1.1.0.out` with the path to the binary generated by GCC (.out file) + * `/path/to/sources` with the path to the root folder of the sources (checkout directory) + * `/path/to/build/directory` with the path to the build directory + - Launch a browser at http://localhost:5000/ + +### Analysis +Using the MAP file and tools, we can easily see what symbols are using most of the FLASH memory space. In this case, with no surprise, fonts and graphics are the biggest flash space consumer. + +![Puncover](./memoryAnalysis/puncover-all-symbols.png) + +This way, you can easily check what needs to be optimized : we should find a way to store big static data (like fonts and graphics) in the external flash memory, for example. + +It's always a good idea to check the flash memory space when working on the project : this way, you can easily check that your developments are using a reasonable amount of space. + +### Links + - Analysis with linkermapviz : https://github.com/JF002/InfiniTime/issues/313#issuecomment-842338620 + - Analysis with Puncover : https://github.com/JF002/InfiniTime/issues/313#issuecomment-847311392 + +## RAM +RAM memory contains all the data that can be modified at run-time: variables, stack, heap... + +### Data +RAM memory can be *statically* allocated, meaning that the size and position of the data are known at compile-time: + +You can easily analyze the memory used by variables declared in the global scope using the MAP. You'll find them in the .BSS or .DATA sections. Linkermapviz and Puncover can be used to analyze their memory usage. + +Variables declared in the scope of a function will be allocated on the stack. It means that the stack usage will vary according to the state of the program, and cannot be easily analyzed at compile time. +``` +uint8_t buffer[1024] + +int main() { + int a; +} +``` + +#### Analysis +In Infinitime 1.1, the biggest buffers are the buffers allocated for LVGL (14KB) and the one for FreeRTOS (16KB). Nimble also allocated 9KB of RAM. + +### Stack +The stack will be used for everything except tasks, which have their own stack allocated by FreeRTOS. The stack is 8192B and is allocated in the [linker script](https://github.com/JF002/InfiniTime/blob/develop/nrf_common.ld#L148). +An easy way to monitor its usage is by filling the section with a known pattern at boot time, then use the firmware and dump the memory. You can then check the maximum stack usage by checking the address from the beginning of the stack that were overwritten. + +#### Fill the stack section by a known pattern: +Edit <NRFSDK>/modules/nrfx/mdk/gcc_startup_nrf52.S and add the following code after the copy of the data from read only memory to RAM at around line 243: + +``` +/* Loop to copy data from read only memory to RAM. + * The ranges of copy from/to are specified by following symbols: + * __etext: LMA of start of the section to copy from. Usually end of text + * __data_start__: VMA of start of the section to copy to. + * __bss_start__: VMA of end of the section to copy to. Normally __data_end__ is used, but by using __bss_start__ + * the user can add their own initialized data section before BSS section with the INTERT AFTER command. + * + * All addresses must be aligned to 4 bytes boundary. + */ + ldr r1, =__etext + ldr r2, =__data_start__ + ldr r3, =__bss_start__ + + subs r3, r3, r2 + ble .L_loop1_done + +.L_loop1: + subs r3, r3, #4 + ldr r0, [r1,r3] + str r0, [r2,r3] + bgt .L_loop1 + +.L_loop1_done: + + +/* Add this code to fill the stack section with 0xFFEEDDBB */ +ldr r0, =__StackLimit + ldr r1, =8192 +ldr r2, =0xFFEEDDBB +.L_fill: +str r2, [r0] +adds r0, 4 +subs r1, 4 +bne .L_fill +/* -- */ +``` + +#### Dump RAM memory and check usage +Dumping the content of the ram is easy using JLink debugger and `nrfjprog`: + +``` +nrfjprog --readram ram.bin +``` + +You can then display the file using objdump: + +``` +hexdump ram.bin -v | less +``` + +The stack is positionned at the end of the RAM -> 0xFFFF. Its size is 8192 bytes, so the end of the stack is at 0xE000. +On the following dump, the maximum stack usage is 520 bytes (0xFFFF - 0xFDF8): + +``` +000fdb0 ddbb ffee ddbb ffee ddbb ffee ddbb ffee +000fdc0 ddbb ffee ddbb ffee ddbb ffee ddbb ffee +000fdd0 ddbb ffee ddbb ffee ddbb ffee ddbb ffee +000fde0 ddbb ffee ddbb ffee ddbb ffee ddbb ffee +000fdf0 ddbb ffee ddbb ffee ffff ffff c24b 0003 +000fe00 ffff ffff ffff ffff ffff ffff 0000 0000 +000fe10 0018 0000 0000 0000 0000 0000 fe58 2000 +000fe20 0000 0000 0000 00ff ddbb 00ff 0018 0000 +000fe30 929c 2000 0000 0000 0018 0000 0000 0000 +000fe40 92c4 2000 0458 2000 0000 0000 80e7 0003 +000fe50 0000 0000 8cd9 0003 ddbb ffee ddbb ffee +000fe60 00dc 2000 92c4 2000 0005 0000 929c 2000 +000fe70 007f 0000 feb0 2000 92c4 2000 feb8 2000 +000fe80 ddbb ffee 0005 0000 929c 2000 0000 0000 +000fe90 aca0 2000 0000 0000 0028 0000 418b 0005 +000fea0 02f4 2000 001f 0000 0000 0000 0013 0000 +000feb0 b5a8 2000 2199 0005 b5a8 2000 2201 0005 +000fec0 b5a8 2000 001e 0000 0000 0000 0013 0000 +000fed0 b5b0 2000 0fe0 0006 b5a8 2000 0000 0000 +000fee0 0013 0000 2319 0005 0013 0000 0000 0000 +000fef0 0000 0000 3b1c 2000 3b1c 2000 d0e3 0000 +000ff00 4b70 2000 54ac 2000 4b70 2000 ffff ffff +000ff10 0000 0000 1379 0003 6578 2000 0d75 0003 +000ff20 6578 2000 ffff ffff 0000 0000 1379 0003 +000ff30 000c 0000 cfeb 0002 39a1 2000 a824 2000 +000ff40 0015 0000 cfeb 0002 39a1 2000 a824 2000 +000ff50 39a1 2000 0015 0000 001b 0000 b4b9 0002 +000ff60 0000 0000 a9f4 2000 4b70 2000 0d75 0003 +000ff70 4b70 2000 ffff ffff 0000 0000 1379 0003 +000ff80 ed00 e000 a820 2000 1000 4001 7fc0 2000 +000ff90 7f64 2000 75a7 0001 a884 2000 7b04 2000 +000ffa0 a8c0 2000 0000 0000 0000 0000 0000 0000 +000ffb0 7fc0 2000 7f64 2000 8024 2000 a5a5 a5a5 +000ffc0 ed00 e000 3fd5 0001 0000 0000 72c0 2000 +000ffd0 0000 0000 72e4 2000 3f65 0001 7f64 2000 +000ffe0 0000 2001 0000 0000 ef30 e000 0010 0000 +000fff0 7fc0 2000 4217 0001 3f0a 0001 0000 6100 +``` + +#### Analysis +According to my experimentations, we don't use the stack that much, and 8192 bytes is probably way too big for InfiniTime! + +#### Links + - https://github.com/JF002/InfiniTime/issues/313#issuecomment-851035070 + +### Heap +The heap is declared in the [linker script](https://github.com/JF002/InfiniTime/blob/develop/nrf_common.ld#L136) and its current size is 8192 bytes. The heap is used for dynamic memory allocation(`malloc()`, `new`...). + +Heap monitoring is not easy, but it seems that we can use the following code to know the current usage of the heap: + +``` +auto m = mallinfo(); +NRF_LOG_INFO("heap : %d", m.uordblks); +``` + +#### Analysis +According to my experimentation, InfiniTime uses ~6000bytes of heap most of the time. Except when the Navigation app is launched, where the heap usage increases to... more than 9500 bytes (meaning that the heap overflows and could potentially corrupt the stack!!!). This is a bug that should be fixed in #362. + +To know exactly what's consuming heap memory, you can `wrap` functions like `malloc()` into your own functions. In this wrapper, you can add logging code or put breakpoints: + +- Add ` -Wl,-wrap,malloc` to the cmake variable `LINK_FLAGS` of the target you want to debug (pinetime-app, most probably) +- Add the following code in `main.cpp` + +``` +extern "C" { +void *__real_malloc (size_t); +void* __wrap_malloc(size_t size) { + return __real_malloc(size); +} +} +``` +Now, your function `__wrap_malloc()` will be called instead of `malloc()`. You can call the actual malloc from the stdlib by calling `__real_malloc()`. + +Using this technique, I was able to trace all malloc calls at boot (boot -> digital watchface): + +- system task = 3464 bytes (SystemTask could potentially be declared as a global variable to avoid heap allocation here) +- string music = 31 (maybe we should not use std::string when not needed, as it does heap allocation) +- ble_att_svr_start = 1720 +- ble gatts start = 40 + 88 +- ble ll task = 24 +- display app = 104 +- digital clock = 96 + 152 +- hr task = 304 + +#### Links + - https://github.com/JF002/InfiniTime/issues/313#issuecomment-851035625 + - https://www.embedded.com/mastering-stack-and-heap-for-system-reliability-part-1-calculating-stack-size/ + - https://www.embedded.com/mastering-stack-and-heap-for-system-reliability-part-2-properly-allocating-stacks/ + - https://www.embedded.com/mastering-stack-and-heap-for-system-reliability-part-3-avoiding-heap-errors/ + +## LVGL +I did a deep analysis of the usage of the buffer dedicated for lvgl (managed by lv_mem). +This buffer is used by lvgl to allocated memory for drivers (display/touch), screens, themes, and all widgets created by the apps. + +The usage of this buffer can be monitored using this code : + +``` +lv_mem_monitor_t mon; +lv_mem_monitor(&mon); +NRF_LOG_INFO("\t Free %d / %d -- max %d", mon.free_size, mon.total_size, mon.max_used); +``` + +The most interesting metric is `mon.max_used` which specifies the maximum number of bytes that were used from this buffer since the initialization of lvgl. +According to my measurements, initializing the theme, display/touch driver and screens cost **4752** bytes! +Then, initializing the digital clock face costs **1541 bytes**. +For example a simple lv_label needs **~140 bytes** of memory. + +I tried to monitor this max value while going through all the apps of InfiniTime 1.1 : the max value I've seen is **5660 bytes**. It means that we could probably **reduce the size of the buffer from 14KB to 6 - 10 KB** (we have to take the fragmentation of the memory into account). +### Links + - https://github.com/JF002/InfiniTime/issues/313#issuecomment-850890064 + + ## FreeRTOS heap and task stack FreeRTOS statically allocate its own heap buffer in a global variable named `ucHeap`. This is an array of *uint8_t*. Its size is specified by the definition `configTOTAL_HEAP_SIZE` in *FreeRTOSConfig.h* -FreeRTOS uses this buffer to allocate memory for tasks stack and all the RTOS object created during runtime (timers, mutexes,...). +FreeRTOS uses this buffer to allocate memory for tasks stack and all the RTOS object created during runtime (timers, mutexes...). The function `xPortGetFreeHeapSize()` returns the amount of memory available in this *ucHeap* buffer. If this value reaches 0, FreeRTOS runs out of memory. @@ -20,59 +287,3 @@ for (int i = 0; i < nb; i++) { ``` -## Global heap -Heap is used for **dynamic memory allocation (malloc() / new)**. NRF SDK defaults the heap size to 8KB. The size of the heap can be specified by defining `__HEAP_SIZE=8192` in *src/CMakeLists.txt*: - -``` -add_definitions(-D__HEAP_SIZE=8192) -``` - -You can trace the dynamic memory allocation by using the flag `--wrap` of the linker. When this flag is enabled, the linker will replace the calls to a specific function by a call to __wrap_the_function(). For example, if you specify `-Wl,-wrap,malloc` in the linker flags, the linker will replace all calls to `void* malloc(size_t)` by calls to `void* __wrap_malloc(size_t)`. This is a function you'll have to define in your code. In this function, you can call `__real_malloc()` to call the actual `malloc()' function. - -This technic allows you to wrap all calls to malloc() with you own code. - -In *src/CMakeLists.txt*: - -``` -set_target_properties(${EXECUTABLE_NAME} PROPERTIES - ... - LINK_FLAGS "-Wl,-wrap,malloc ..." - ... - ) - -``` - -In *main.cpp*: - -``` -uint32_t totalMalloc = 0; -extern "C" { - extern void* __real_malloc(size_t s); - void *__wrap_malloc(size_t s) { - totalMalloc += s; - return __real_malloc(s); - } -} -``` -This function sums all the memory that is allocated during the runtime. You can monitor or log this value. You can also place breakpoints in this function to determine where the dynamic memory allocation occurs in your code. - - -# Global stack -The stack is used to allocate memory used by functions : **parameters and local variables**. NRF SDK defaults the heap size to 8KB. The size of the heap can be specified by defining `__STACK_SIZE=8192` in *src/CMakeLists.txt*: - -``` -add_definitions(-D__STACK_SIZE=8192) -``` - -*NOTE*: FreeRTOS uses its own stack buffer. Thus, the global stack is only used for main() and IRQ handlers. It should be possible to reduce its size to a much lower value. - -**NOTE**: [?] How to track the global stack usage? - -#LittleVGL buffer -*TODO* - -#NimBLE buffers -*TODO* - -#Tools - - https://github.com/eliotstock/memory : display the memory usage (FLASH/RAM) using the .map file from GCC. diff --git a/doc/memoryAnalysis/linkermapviz.png b/doc/memoryAnalysis/linkermapviz.png new file mode 100644 index 0000000000000000000000000000000000000000..8edfc8f9c9b6d4cebbb26319d0c58f527ac2d617 GIT binary patch literal 55661 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 D9n(Ev literal 0 HcmV?d00001 diff --git a/doc/memoryAnalysis/mapfile.png b/doc/memoryAnalysis/mapfile.png new file mode 100644 index 0000000000000000000000000000000000000000..0badd1045c873e976609ad6279500c9c80f4c1bb GIT binary patch literal 111302 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:MBrP7JEcZO`HQwQN;=tanZ3*@* zji(;8NzD`wir>mDaXPhrp3kv3&u1u0+X{m~eIGvAE}x!XjNi+V1XrhB_i^rwWZ%Da z1*+Z35&CGXm-X_)c2l-K4BGHr0^?H=)BZV*_Ic87nRo~Fm2a_u^T{?PxyIJ26(X&Y z^gHNX6-PhbbW(FBY;0P7e|rRY^;dvFKIUL0VQ<w-vIJeOx>EQN)AazQ$*y97WAU<X zx?Y=r`;xzyU@)1(ELh<Fo;Cvpi$57n;JHIqtA!5Ih)G*B8>=0(udWRQ3`9g?#}EqU zTZlxAlqmy=3a-~=q$5%#bc~(L8&r+zH1F6wu@Wqj@D2R`SR0}QV5rV4tgI|H6{Ck$ zq^PQWd#$bCkvh!fFC%~YGJikjZKIsJ!5U=M-*6J1jtjv@HXrNj8)3KHukW*k#8{JO zV|fPo*ljXuESHDgTs`l5H-iceuu@qM@I?76g;J66c!CT#EQjA+(C(}^5yd5XPnDN| z#l>%nFS?r+jqOT521ZsiWqZEj%duI<S3*2tbF50KEet*yJF~+<=G1xPjr#;t2&n?d z?-GM0((%^xsEy2)k`8tz-l;!+Yvus~5f`R()cdxE%LGD?%il2chL=7@5SXeZfXy4o zsQ^c}jh?jj;4Lc0NAQ3X8i8(lQtEU%Gfdss05;86#@!(GZ$Y5a;T4EtBg3!daoH0< zd)$in;Hn_p*FcWGluMmIejpuZeB}abg~`UmZc`3gW#l)ovqE~D9v*@j67upQ$n%EK z#`CGZzdU!%*~ey1hod-(JP517AY<%vSf;hVIhTlt$O{YhmobT|ZL2HXkm^9k%T;qM z(;qIf+^Rh}B(<CiV?O9ODphOG`fbs@)XR8^!itQVuz_jZfQF+HLK_8+@}-9t*Cpn5 zI@I5wJ8>SThZCanCW}&~ZPq3Jcx21v_5x_XE+^!q4JZ#iWj>1P?-}(C?Ruoq(JnUq z{MSKLb@qyqR3cN}75eodb^cq5k<CI;>Ors7_aM;lp0V8A@UJS{4Nb+$LYC|8O4{5P ztG{j(XAeo#>uj1D$K+$|_rFJ6w%-2<{B&CC+NQL!k<hGayQO|LS*`te{o=j7O$uZo zV_;)@D9PeVDvKC)fMqnMndWjVErf_92>A9HiORUozWo4(qS;hf+G>@0%4;)<O1xj> zG>|7?lI@@PS`H71((m<EQv}6V9y5sQo7^YiRH#;pG8(7;oPy03=F@tO=~b&ei+qC% z%0^l}omX<NPQHo%c?}30jI!2DExf=e76-1Zt#a#RC&abJEKmm-{_O?j?o)1~u)dS{ zUG!qk4!2jJ<M5*5Pr0DS-ugXP<flq<^TT-;FO+1U?jviz3j<7CYKwlpUB$3T@Z!y^ zQQl|i*XJzFae07wt0)B3ZND{h#9aR>IB78VXwW5w(0b!Y3P+S){mC=wm2X!}DA>a} zSKU>62PLIC!oo?j>BBxF?Qo?!0OHzA{O|@e#W9j`nE}~O6UcfWPQ#U5MC^3dx3qYq zscUC6gfTLxT;gI;nk=u8(7>_%qxXbB;%7?e+qZ$G&g;os?1Yxnaorg_Npp`ID19Fd ziZZtE<Pfzcl;|4k+%j(0`+6TUVu4*V)M9<3>hm5Rq^nIK{=Ag?!bzfFn}Ni(;!C$u zP@=140IhWA@8<_;Y6(e+wOZD`IlU|#G3}-O2U8P{Rc}DDcwEEFvcL7ot}+v-iyBAm z{s0uB+^7VD+M7n*HYk1HH3=|&k2r?<;bNfo2i7ezXjL9V#bo^Nsy5*RN29%lkos;H zX|e-RRbgkv#m=owyiYwd8#YkfK4_8rN7=A`v-ng<1v^BwyE#si@drd{<kC2;(HGLx zt(0GSG66;q_Z-LCEcN5;5}lz0MTI@3%Pd4sGj54VM`4|ZA{0JG9U9$8NT??oz(j<y zR{rb1*PbEB-fpq^LgVpiE3Bb7<?b$}$*L;p_N(pv=6rv@$ep-~gc*aPssvWwOWb4n zMknEPaeF<ACu|+I3-B6ShB$1wQ1Xm^ceF$_BRDS>xef_wiQsH^*H(w_x{!mD&5PQ7 z)RkQ5>WXq<B9&Q}ntyivQ;fbckHy5CKAzzdA1IFGaSy+8e)QL|8!J8!iOgXSj?r+b z(vi76Lv@Un`UrXDDkI~d5MDNnP<8d0G%k(bQ@5+h5cPtcgw7Ii?<U#?1`m&dj($Xa zueEV<l97_KsOT!t?#!V5)MejXX6P-)^>}i^YS^YGxCbxJb(TEKTlNSQ)Vp@0q2L0T z=VnM+L<h4iqF0k7j~iVN!z4?$3n@UkA%8m>Hv|a#YF}EV<9{oE>Fn$rmrw_@9uz!X z3na0;TLp&7Jbg1}8(3xYJeKLjd$$uht0}XcV7H^%bOpdAu>j6RlkAGgUR>c>P<)28 zUt>THxC01#{hH&nc$BAmLm_T`Cku@422T7uhbQkFwDII4tS{u_Pl)0|l_Vj;|1mBO zdGmJ>HvQ%G68H!l#+M`W?<p=&uxJJMzgRzpOhS<VsZj*Ryxk6lD=oy!z?fHFQ)Nc+ z>n*l5$a~Ri@D}b%esiZCPU(LP#{U^1!+AG1WIeLEKO93`Lq1{9T=Fvg2j%CVDewP$ z|Nr%n_zn>ZQh)*0<msu&Pqnqm^klY%EUtNyJQKk#{}tGYTj2|{SiL-zCt;ns@PF*0 z<D^g>YKV8m84V@eJwvN`bQ8(gW(#_-m1FLB?HhCN@c@jWCsZ~)y|9xTUqh=)`bUbV z^?k;sxU3tRMHZ<DW|R$#<LW_7+p@&z40YRtyKJ>v-CNMoqmvzT51+V&7D6Sde9-}T zj4C2FavGW`uqh3D+(%+QVvokETH}<mC;&Ud(QLCkneH_%u$O(}MUB-Q6dbh>yXhOi zGndKHH$lE0ZHU^-#h!7$2IOB5eW%<n10oY6<!fsH+|`gg)i4GlZ$Qb5*A%mq!!c~@ zF#*p@WDjAR<~)iHi!OALprsn}1UV^ZV|~PEeK^0F$=2YHEc_TRw266jxbgyPdCsNw z=Tr_sAKBr&*U<F|-JYJ>B}WEv;pY~-`8zo<Tkla3O(hc;@WXpeiyeGaCj*U95xQR& z8(8$--=S3za#8=@+KzDd7*%ndwBz;gLw7!uD~2L-r_IR<>_KKLmIs$LOsh67S_>^= zcL!Sx9wr#?nprSyronx4Yi+;pZ=#>$3%8mc4zr~|dCTbeHTnF>Q?&q~Mv#+7gP&~_ zPCGXh-jxL^Du!B|4yWSFX_9e%#K4@N83`y=EX>ZwDjPX&Qaz%aQZl6a4v>IoRlrUn zGNrFU?LvDSc?HA6L(^nt9AGQPz`PcGJ|s}jM0a;hT}}{#GPRbVBN;76n8^YZwqiA% zf*`H+WIlB`Q67o&U!{t}mZ`RP<hnPPk%`B)(Gox8VlaRlV4ybX;u|yVl$})j?cHfL z*5<acm<L$K1TMndz<p-^j!Ulg;Cs;B?-gE?y~&MveYZ!K++SyD4|5mM)sk&o-#)zv z3Kwx07|VP=tC%M2k%C%u?}ZvVI)DFk)x}m1qdFH7E9`c#S!s<M*mtm)4Rv3BRN?3J zi@Nwr^|-pYygU1oP*nP5QL{(IgC&E6TSPtt&jfZI!asDt0UZQ&DS7F}5h0QJnmpVM zWq=n5%Kuk@M$}bF3~*<>op8mrxjG&(m(f+4^`&}d{!}<#JBY;JilCPQZ>Jr8lk8Kq zyCP`&+~_B{tDsAe&i1ZRDfOUbo<sNqcF)qJR$AMUQLQq9#ddfKqOQIN{kJdV2dpsv z#21qSOYb$>$(z3&tfb~X?KNj?e12yCL_M>A46iy&4~OZgl-%=kqo*tSql>8!8k0AG zfmzZ<AcJyEewBe6-Yuz*0kXmaD0_IJ(ZQ<7sE>Rpp%?@xNSiD)w)&jhjcy0w>YZ^C zcM=Y0T+NNtA+lO@N(XQ(<=uoYkaa*`K|M9>0^^2VFPph%e>eRlyw5y3slex_wB5QP zb+Rid6ORbyvTy5TJo=<*{IoSbz9-=2Qt%z4kA>-jEz~b_1f{a=a^_DG)+^{yVuk7$ z>YZghF1nk^zmqpdJWc-<ZAnL#5ZHKEr(<DIk=XibcmIN+>v$n!+7OJ$C5LuKC;3-# z`J)iS8^)F`uzS_KM_6-pxV-aS-|^h~duja0OxV~2t9m3R4l=EWCjgkqm#W2mxuF}# zcebt=iyr7k{AA4zdf6!8)p%<T4}gB+P}$81zr~|#3;X|V_z@W0`A$N^i#tA_YB%xA z0yyV3X48Ok=M>Q_TeK;K9XnO-$7grf7vq-gu8eMs1N{6lZ<xCN^yE;&I*!v`6^+n$ zr9a0*|D5=_^moU{Ek!L|iaoOA>kT&Nqq=|$-rW5qAuhVRU2&5_*t^Q{3_g!ocANj= zsx4R)`;{klT})jz!fwJD?UMK(*3T8yaA*=Z;Ga&$0_reGI=e@02CH3T^eST(u{0so zD^tjGUNiPf-Ji*9<p@-3wr7LhYm(45Wsi*GF2zp}v1ju7!tiiQWkUhpyX}OMHnl;0 zAI$ct<?iJUY5NQNHzD8giNDG?)J}9x%PP+FaW|>feScr416n=QN_&^JOm4#YL#a4q zaNpiG-uE2zhb4?OC~qX2%B{%C0ObWK&_vXBdY-QOWK5ivdRNZ5wZKJ8EhZ2-t7Gd% zV-*X}RECwcoveL-F8Ru84PR$b{rk7#P9XJhE`v3v@5bNoz57nu_42lFzB@%9<*Nd) zOjmt$ko6v>wz{X`K#RiYK-0l8prtz0PcdjSL7*nmLcTA*!oFhaeKBv=>>X}29^I~k zWHA*=$w4z%ylPxTdbpDCbfSJC)4A(~;kIs^sQke0G_r8_Jc}zi8L@As+2Y+{Ob)O# z=Ta_07EI_&u)?Q0oPS&nM~d}MCddHK$lrD5(o}){*2%3rFny(acrWt%`M}SlpNr(S zA4%I|vsRj>puqO|=uXjw9Zh<R6=Nf<UK#s7o@Dh|2huQKk=wQM?CG%HoP4m>XTGBp zERn3g&bV&XF&0lw^2082i<birL7Sz<v`o6ZLfaS_t!=UBs@LumUN<XlAzwk!JIsB< zD&tWutM^mbCo(_g9xoV%CnEzJGlps3<w9eRs5cn<ZwLBv1=;^d&E8I*JUR~6A`MpB zWu*Q@L1&EGLDVTTsD`)-)b)4i|1pacm8G9^uWPe-(fXiQ<B10$U}cP1!nf=(q)Q=q zZ{NnG6loq9PM}QU)bO3O9+~u7D#q83Nc<wEFgC^!N$3G{eTK<1n3F0zkkj);m#5(& zH5;RXrvo2$#{xPLTU;@(2JMS}a2GFSM67oz7$7G1=K^~*ksrH*WbSsk7GGpFj4EA? zJy++T5oO)^`OznI(*fsS8JDsj@4TxWuI;LYD1gqzG8P_6YRdYzJg$xEA3&JD%)Sr5 z*9Jfs!g12Vxw^B{e<e(T3|3rXe7fR<`P$lsbcVIq9*X`3L7U0B$!u9hfV<k^+9Z7@ zZH7kW7^~e$dTJg+29d(Ek=-^(m1FurawwUX&$`X-sl~p9^#!P>dkOx$JcDt1SDm1$ z{1~>a8GzJZLp6X*`PMNioaBYxav7ucQ)e&uD+iK5qjjoQK07t6N580`DPEt4tK!O$ zn4Q(MxQ$-TP5WN2cZ-JpJ^pj(#4$p4X}>CXrDmEH3UT*p{E7ht7M)#%9*-Ja`Bw8% zb2jl+1TwDfBT`pFuECzylaQACJ@7K@T7Oa#ExY@}=mAt{XH7>f=#F`%$e2EEL=su? zdkS7NWz&Toz992wgA#|4(uU(+<F86aA?l#9L_=ex`KAWk<2O;glgrvFzf^wL+1VO- z^AgjYx1{fgfWE9kTeMef?ve|@=F|G$R*Gg1G%B@w?LN{)LE)LwY18j#6P{q#|NPZI zR@$hh#2Y?P@`0-~QF{94gBe>qTGeTH&DIrd7v!7<hfsgllIB*tg5Mob#QI)Rt0V@3 zUWJa|89rDJwTL@*4y&nHz5Jv2f)2BaL|`GGbI%bk!4yOAIFTZ;3f@$^i~AL+sj<RC z)F#mJA&Vag7kmZ};xV{&V{C<;4O%^!LBB4t<5hz3+$4uXQ^BBAug!Z#2&|vh%gd|M zO?l`s6q;0$krT)%`@+_f>^6-e(dVCVPdyOs*@Hr#(>=1<>9!ld!!Cqg;kIvqi|6IE zn!{3rkT?oYdsbPQ^2V`VnIKScGfPG+Eg~u^Oq)dO;n4zZM06-AWt)^&F2-gK!dG&r zj%~$ODI};7L!*Xp{r?AGdgCh$+-Q(>;5&_*3{Re{Y(|Y=Fr)c)*U^&xRZmXP2J&QA z6t}B6^+ce}b+Oka<>7KeK_TZ*9m~25`PdmNiXi=O<F}03jbXLx6|atP<WPFY3J_UE z7pMUyIz5s6k6vOVVD|`s!6Ow51a4(<bs6#cm}Xq=(>%)o>O;x3+m4zuD7pCpT$r<f zg<5s2=)`qEi);@^a>Uck@p0WWvNf}2<Fm-@D9K#xl;`o(XHq>*EHBR1UKgG)n-oy! z2hwfXV%W$t>&KT!d}EI>=&n1)_sIjQlbC>H@F4OF0QS7{<-T~wl)$OFNbsgUvhkDa zePWs|H3YX9+;bv29BRVB|D>naX_lEyR7BsIb}@2fwkSkVM+IC;q!xaDW)w<807>vv z=iC6WAIzPcGmv;B(72q1MM5k&1$026g27`SDWJ6aa)mDaWbe8jSh<(<d+ZMA8Hi;I zSv33l_Y!?R%f4m#*Wu17exBIiD%bJ(3*E{@tCznZ?GeJ`lr+7GH7y}~#l^$nB;xT+ zNvf9su6<}E;9FvWh6u={uxz?<L4(ynJ;8!@0OXA+Xxx~`yZbV$uj<IjRV~3kLJr-4 z+29Y#Nr#<8MD<R<(qD(A({LIEHyVyUY(isJ+ogLrpsL7hU|I$DS5VfRO$>JOr@(s+ zC8I4R)Gpu%>-auDT#5S*iArm*m8`G+kq*zq?$EjMEdk?)A?hqJgadBSA?v`us2r$^ zmLp`CQ2J63q3?paY9R2Uly`RpOGBi`RUPd<DXTS~MG$(-<ZxWJO*-p%l1|~GIPqKi z^ZUble8uZFJ35VZPm*#A6Z3}2PVN)XHv!9m=GrHLdQeodSzi$j4qe~y-Q%zK@TA4w zXW1H9ZFGk&JXp+h{|eYx@8m{Pbe&yd_3R}=aZKANxIiF1?2-Zw_eLb3$0dwME;XA+ z(_rw!5l%K#>Yhl@Q=2cUIz=_Xxt7$uBSzw*BNx>MS}*D50@gicU+$6MuYa>HzPj?- z-Xi+cRTfs_!7pZY9<5kM9jnZw_xK=|sw=8EKnEW3jYsTdcr_U=zd$ZId3Muq3?P^f zvT^W#zX&j)!Rw92A^`*^;)(RM|7QZG`R)Hz0%oj`O{e_3IyLUh(9H0BmRc#<tk(d% zzpAo=5s&-1vzTH)H9A_#>Y}RVoF9<oMgzB+7|bWbn)NZ3tH3wTNiolLkw}eEHs>3& zZ4bLvEAHp@R{Snc_Px{I1vIpXD;3n12`K(YV-kR>_`1GF&=PoeVFzaT-58`@w$F(e zK-t~`LNFgde~Wr#C-aBV>R7jiG&_4EKhqD>zuCIPYFFCYay>ay<TIC+v4E#y&?MeP zuszV|VtVQQ1xP$1AiS>Jn-|RRvN@r)IlnV)%LCN9q8h(5JidtlM1yq}?)|N4MP7qM z!v9@MnP&D*tNJxpV}l0ZZjac&{BR)l9xfED$;C4kB22nl!wsiDUXdj>ld1pWK*93* z5$;_Nn{!q%;@|=r>MKW!f&vpr14U#$2XJzNKr?18SjcW>la3rhPy302BjA{e_-Obl ze3IMkM6cToA;Vs=N>weT?%S}GU4sGZ*JR`{p0c~}RGfaso_(r&EhFu>Hk8I3C9*A1 z2cJ#jT!i#Q@BbU{W6Be?Em9OqA$}$t6H6K%_}TMqj_1~)#8(;!H@KwLg{9Z^Zd0e2 z=NW*GPX!X+@dsw3FxdpG%S5shn>9&P{|+PPzE6fq-_CSkL)r4gU!N-`zcAKO)s3~i zp`q;h6_Q0GC-?LwJ?yuIJa*A9W)N6IU1xvoSfC@N+qG0(Nj38g9R48603WY=K%;eo zlA_jk)ycDzk~m~S&5VW<p8J9VU`jI)S57PQxB29I+e>frp5aJBHJd|{estVojNUGo z19ZRfHYHN!9KdzD5_59x*6!b3f%(4I*#C{`mDvld=M*hdzwc2;eO47$|F8xGDq${Q zZTX`45Cxr){~NtS{vYU_Qc4xa!<r!V<})JXx<=mXf!W^mY2Z%x(y~A7QMu6;`fGMp z^(E9$;{J6SeVl3J^z3LC0)ywKZ{oM=ybsJWO0)O>hrRa<YwBCqy#tCMsDO$nRX}=E z>Aiz==^d2bk=}y^q=QKB(t8QL2kABR-lT*8p$H*BfP@qOYwfewUVE?i?ERiE?}zug z_{5xpaLqX~=NP}|zVGKTwVB(-K=ZGDJ+4udxl2yvpJbrW0Y3Hi)`@#*Y*T9eea||M z6h0!e5sPK(5AGDurLUS1Htp@{xn#1D0094m&1LxRrK`JC!190&<&EH2Qg=(=_a)}@ zK1%+D{eF2LZR6;Y9WiB%f(`mCG|PCZjtzBW$6I<_U(t}2wM87JC@gC3`LA6$nQK$~ zG3A)mflFok4mURd#|{#kq;&OHlF}VahQG}uljkHe-CesEb?<g^f|)cQzr>M!T>WXN z=CG{t5>?sOdRS8oe`4ZEE>%tMMEdYKg_8a!lC<6Y@2mdlf#3|Af71fI;7M&h4+v6u zsCoG8>6<s>uyb<JbBMcoGi)To|42pnl$u&Bi`Ypmauwce4egT<oiz*)Z?A!e7C%D@ z>&zp&I-a7<-GI8_FL8c~nR@bz_ieADa|zpx279|IeXV~jrp`Qw@_PkSyfcgHj;O63 z>SmK5f;aUo#w(f!Am^2gv>tMCFTHfBRK5hU<)Ii)s)rU*TW*?OPI7-oJHLPo(6%pO zx6myWaE{>1$$Xc*&9W#Yx%AE|eNIkJ!qclKmt#@jDs_2z`88XY+1Xk9`WBbRbir?F zGi)w~tNcwbz%Jb0=ob|@uJ@NtX2UM#9=!0Xa0agGBdvPzDa*|641Ju9WPw!#F>)N` zNtiW3DL#1`>jqRWy{}$5g3>yc18sUIKAs?vqhn)7lybHtZ&uCZ2<U>Hzvy3Xu9@yp z%E}x9_sBP>D7JOIUX}WhV6%R-MBX&74abs5-@-YnQtG@a!=6tfO#u3Z*6|p7gI;|o z{kLDx@lJnekH8-JbJ$j}3(5BP13BvibAKO17yOmMxQhPIc<fmeG5?bRIai;Tt!2X+ zzn|V`2nKfiHB^E!!{psX-CLK)pO+j0^Qh3FcXJNa2!_*0NsfTR@+)w(L-$I#vkk}n zvnI;@YZ<F*INv-9e+aD!S+{<>s5&b!ehc&gajr8B-JXN9FxVbaJuTl$<0~$FEl`$A z{jt{L<hMtCZNeut6Eh9XiFql`Wn6`3qg4)JC)QTew^Iz<mv{_bo7=MTUoV?eB2}$e z`@yj>RfjvR>gwg_SF2?!mZr4=;QeH5md_0*xqon~{#EUU?HiK0YEBpK-`hAWWW1`3 z;l~QZFOnL(Aq71U?tmHG^Wf5iT-=;<BGsSx<^Fc{hppb{<VeNWk|<T{SH3ewlnOI) z2iL!3k(q5y1J}CkV6Rd>9DvD5T%&~I)ak0YB$C4GfGLCpx3EHAjBkF5FpYi6qC>*3 zQrex_Nx1FLha0s&GF=O*h{io?H}}7N1C=1Qx#wu1eCl%UldnC^H@B4`;<=>{oZ?*6 zq92n)`8M8iB{XQYGVEXH#$>&%;*tFzzTbMx|0`g=0DhgLy*6Q-<b5n5(PLH8nttj$ z>|5r=KeKXn)%h&K)yA^j{%~hk*1_GMOZN(|p09b3FM%YrK0Q{+RIdsTQ0;c?l{^Qt zg4u;fx5my9SUCWx0Xz1HS|uY{fLaa(RBjO|v$Sa2^!$vDJ^R^8%gwNai32YYHq<I) z0A-a8G#fCc0G;*wRC&cW2TQyP$--QAIdQ!<_;aNRc5BYt-B=X6Q-v-^{JG2nWzlA5 zPj;}X9sU=GK&Wul)M{^f@T)JG*;4#&Q8qGCiEeeVfhwNe)NP(S2x9OVL_<1*TpY=s z-9h>O_n*n5`tA_yF{SN0^68vw)|H`9v_r^TYBy%nSH`UJD&@VXy)XONw}H_(cDUDm zxJ&bw_|p!7orC8HBSC-Jvt6+1o^iQX7iwHvkoGKp7;_f%;KgpmauFwR52awZx*Ajf zs#QH|$Y`{;d9>mQ_TJ3slh|4Cperawa@8!uUHc8I9;SX7O08lqomi!RgR{lYMk}Cc z@^*O|>na!=wM;Ag>XrE>r&+3kmM$4*XS#kSBS{nR>#>smqP~wnMKDlJFtMmq2<w)s zry%8B(5rl+=G&<tMQG%6^qaHlwl!uGF)u9!qHV-f__nxsA1Q0sp7l4;so?+w=TOSl z2tDu2^4BV~*o?LEFV?c<S)xNL-}!a(djo<_1FYuWCM~bMp}PNyEduLSus_-0))~z> zJd`A~7p#IV@sGG+W!AfK)U<um6ovX56b)8oK?~2K6~f9U4fRO;_kZoazK;jMwu6e) z7h6~};Nnj*5qXG^amxb)jB9aAh;;uRANhK|jm_L?JldpoRZU19Q8#`fQS0iV$`$pS z{N$lSqQ&Q}68{dd#43v|f#(tUG`_pLANwrKjs#~A!mk)0Ww^IO+AMYt9RkqhRi+L( z;|AQ|@9|EhciC)=a&}HZw?K>s31mgNrrfv_k?2*Qd^q0zv2^(t8~O4KUL`BVboME8 z^B9bN319OH;NyJs{a9n6SDmBAYj2aNJn1hrD<Jwou4-COs=}X&bp5<n7mb3MpVLBi zTY`FR1xf@#8o~y%jEp)BwyeudCo3>jFZ=Fz^{C4e)8R%r;TKi|x8&KJMi+U;sOQs- z3vPMcDD~sFnmSHG-=8v+b&O#6sJ>t?Y}j6I{_wN)vcSydiziaT5<J9KNss2SF91f+ ziE@&=e#0%;zQj<?FCWtz^;kjL*V|&cRIu)j&5*sNp+{UroPNt=>EOv?o5nAvuBy&9 zyIu@u>+08DQqamqb@E-DFrA%9uwS+Hni+8-;mhafRnHHrjF!7SlUoV7v*~y(x6Zwm zU(J@iru6n6PWryV|ILWa$0S`|{h1WN9bXThooHfZN{6LV6E3AaH{0UVv`{u|<fEV` z=kKW@g7<cA&a1G&vu=uSs}6Z2c1qOip7A_v8?tHR!*4eD<o0tae86Sy#TO88OhRb$ z((IwhEXVIR5}5bj(`wH9eQc;cx~Eg2zM%?Yxs&!PmT~umBiP~f2`r!W9MeX!1uq~W z6s!K1@#zfP$@^ifj}5LU!}H#M))$N=cAZTyb1Vc%4}vO=dPr*Tj)8ge#()`L<aS{< z!jl|`wD#S4x%YPd8*Ho^w=3p(H3ToPyLwe?9Cra{(^c)WnGg!Pt1{x%<zf8t6{?)r zOZZQ7QpssJ>(gOwmm$pIFg(^def6}r1HA|1SJCK&l7~;CM8;@yOjh*QmZult{CC+Q z&9SGo93q*9#U_uR>~MpVrjhd^MRlcNm%J^hh!o5+T)CUa3-gwPB2w9WI#S4#<5rR= zpHviPTb&#Zl|t}41AVL^hdg9Vjg%U<x&8TNZ&p^FlJ~Ygxo7zSQ6pVqHteh)J%T=s zhy>_-yWA-Px6a=l>O_%B<>?4K91?~zE;xU8H8lHXBF=mbDnU+^2(T@dPED5LbiN71 z0dSaHEUP#4H>CM;05=E23_?UUC_YVqqY(Dv@ZK(tSPuybh<f;C&E;J6tiZ1WbU$ji zbaPJ*AP?O3?c!htRKtfO&ihBWO(5?V9%O`cX_h%#n~L<J-ukUt^fJEM>rJ5rjHtrR z7*L^>;`<?l!k;#M0q>Hg=3Q0oZFXIy(kq#)In4yEreo#iJbSoo&EHy>Yp1Ta^hutI zz{teCwH0O)w`P;9J>Am_*mx~-jhvRxo6%J`D;@rPhcD*JGP-8E3oGaw<p9lJhUN+n z{iGNY@8JS$%iO0N1l{pnz@*N5<&(N>bu(C}^5q5IPI!49)7po*`bTj~>=k_Xp<)&U zI3F6sr;^kvI3TQGY_LPWeC7jF@QIv@18o1+lFKQThUS&UGKuEbicBlt<IdCo>VaEN zFxI-z)>gG7O^6N@2d^K<p#{frd-UL-yn%mN@BRK*6t+z!B61$H$B;0<iE3D8zlvQR z#|1p)f}Tj<a6K%mnM%jXFgU=~zBTbY_=&i%z1_Qb3Xdo~0WFjzcAoKp?N;RW9@^7z zxl(eR+fr3i=RR4Xsb>4*8X9XkQ@g^&YGug_CxFf&VgNupp6vWcq6ewg9r5VuM_f$7 zZio{fHEN@0f~F=P5*p(?TP7+{WZh82PW<)UPS-fiqdjG_Kn(VaQs`?SuTX09C^kih zN}Hgtff81#Igx8|H?hL+W7JmN-Z*L2>*8sgH|OMU14CmP-CVsi?CtkzExfJH-!LsW zM>XkFpATYUtZHd|11kfKcI!7mukOxJ%kL2Z#x+t*r<HK($mZh9t{uyTY;VioP{7Zn zD#!u98T1_etyu8@5a}H79e_MUMqUE<qh%nT^^I4w!mkm|p3>kHmoWj&mnhNqNsm4n znCV{IEIqhQK$f$1I~bAkp2z_^xe65LB84Pu|2DU*#Vx;c6@fO>rXl676G`zOtT30U zILxnKb23Grb18}$JG1<hJoUfJz4y~;wuUoudX$1E_GZCW-QKNITaoLw%YkXENQwE$ z8AK_Ezv$=7Z&7%y8X8M)t8|+UhZM^oT~7J<dZ~#s(>O_7;;W`DZCzh0xqqe!v2YqW zC<|ZC-A31h^XYka1dxUG=7;*phFm(_aGF-LHeq(cDcfBJm5*Xw0pcGPjn9|6Z@6~- zHNrLp*}T-U>+*ydraqX3)Jw3(e9e0M6yfYq`ZZ$ljGyz08bn!8=YRTE`rf&;U>Eym zJ@n7vmqo)I!Y9rQ@ptdANq|l$4-Atj^9rRE)k1o|#~m6=h11Q9`e|s~?((dt(szx2 z*+(=$EyF-Q_RNBt`SC|RmO-THd6Kiy*!A-W`VRp&C+9odIlPCpO>)FzrspE${;4e& zC$VePDiz;>G97q}+8!8qE@CZ3Bs#r$JGDP)`baRX!eW*jAeo;@*|V|3EsiBhSu@~r z!Fzt~k}R0@_B>V!0K|PTJyPUL`N>nbLii;G!{fd-%FNwYuwJAtEN{}`UN(I+G`Win zMt!l+a0^eV3B%ow`al4aNwwIa(7H^v+S!(wdMZ?@crZdme)$=}s_GIPqc_V|C<Mz! ztHaK<@$=V83VAWpbH_F&Hk?NMGIZ7%*T3dX0=^*s+(c|x&U(2qZh!Mr%wYXA=<{oT z??h~Atg!tm1n};?%P?Ouzjqj5+|;Pb)4h6~V(-45UO5%jh!I=*;ZLEEL)y<QCjoP2 zx*NVUEjFCyd~U~irgAn~)G+Q0H_scZ?)cx>HNJD$u+{6OR}PJTa&y|6%R!UXkt`7_ z>h~V;B)^k@?`2#Yero=6OR30sN9~a&nCTyHLXzO2m=E;HD4&&;XT{gsrg_&R#<<y- zO<cgQ(UHd(NPd0<E`THkb{By6%jbdZxpy%37QTrkpRit(A(hg}c3Lx<SNn7xaB;vF zv0Bw?B8Irt@A_QHIPNgKVcSgPddvaP)5U2yGaN|{g9i8xZke4yO>Qy8zGc4A&dFI^ zoJJfA#l!H}n)lh{1O1oDcfb6(b5otu*c^x3s>%+^lz1H`%0GYW)8>g<c3zSS_gl!Q zcJ<1Qjb_4=9_r97O96M?R#UU>M8Xa#oVK|dUVmIIVuXas@Y6ml12LU(50i|Bwv(7b zh;aQOw*a%QI4brw7Ms!>>WVBG{HVBH>oWm0CNEBA{PMMM<SpfF6G(5HKLjqoo^6XV zKVN7unofb5#<o`0<}v4h1ULQEbak;mUZy%Q6VBZqSz1j^ES$b-*3d263cbcX7A*2= zuE=X=R2OXSTKK87HsL9d$dd3Nz(Qu2y5at%@55o`;e*dMDsH?mORrB_OjmUYPb)7- z%6`o#_a|fv1w20+;0tA>ENuGS_h-4wWtn-sL`e(2>CX(h*@S>yBv!<T!gQckzj&+) zTcx=g5!p1&cFxuJ@y;;if)s@W{lk`SLSv5rrcBAhmai?yeR@l4G$H=iPmO58QsEZ^ zdU|80JFA&{ynZ|dU!t2;xZ*ucw`m5hd(5Yo$$>ZfX?ADrJa2leIyyR}7w4)v&S#a6 z+L7sFYKbEFw++0Vq04=0p0yjkOFzDWoK+JOO<Xw31wS^ZDrXq$%(^ujGsTnQj`)H4 zh}H#hJ4pe*oNnPNEPBE2#4oCrvvD(<J}PR~AA~miq}w#Mk5G<^eq~Pf`}Z(A4Bv2= zfWR<X_lH<kRD!L5Zbq8_h%tEUCrF8?d3n)4AS||{B{#JOKHRlurki2)W3RW1Ep`HE z8Mn8VP6@BdYJ2}k+@c)GiBR5ppZEyy*DAF7gp!jvQWoX!NLA-W;(&0mRZ#n_wOrHC zN#)Ja7sIXt!5JOfQwYC!nND0%g2px$|27gT(0Hs{x~tXCI&^X`NHj!4&7z;LATzq2 z(n(Dy8O9r!VdbWzJE#8QzCQSoa$+|9(fDA(;zs;hK0!y;1F=PE@w2$Kqw9kfMKR1p zammwzK64M_Q=y<2M^zD@)%HuP$31U!+1|_~_VQ(A0rSL!q^7iWv}fdTPLWn2+ca$8 z2~*J-yR@<hwwbT3RvFQGVon@8*R;}i>Rv%5TB+$7vM<q7+m~N!5@c?Kbe`jqEQLqX z_i1NcxEnqy7}a<ce$(oQ?D|Z-rUx%Lw}GO1d!>r(ocCL{7+sElDW4jw<qzDV^y|01 z9m;zOBTg9<AWwlRAs`8!n6HehE<Y)&)U_xIFTbfSCF4{mURc6Qa>cJab1G6bS`$cP z#jeieiEJw%g4F5rC^4+tM;T%^;CuX2K*BE=e{?1m<N926Y#^wmLd3#F9&xLxT0>Zb z#E1vCy(4Cp8&dK)@S?od_p4b=VSQ>zbgjabeunZCR(!0(NaVkcmbB>*g2|pXPgb5k z(WSCQ%+PK!aRhC<OpOZBKgmYFTSD3I`em|NMkQ|#W5aJ~fg726is>z{8S_eWU{fxQ zYtBW4Mm%}mt+JKIjh>kyZ_Uz9ojlss&4q3`v8yOi)!J`X(bmLkI4SR{GZQnewAHLs zt)#eu1TpD>y6n0V2!9**oDw$n!|{piMOMJez5g`TcGhT&>>QN3pjMRIqn?Tqx>mek zSsGoT`+uO<l?7D5Q0+<h$@#pn&%uu|F*38`zRzLRd+6i(zP0cAo0Y|5K$9pMz1)nb zYj6{)nh&iK_2n*l*tU@_ofrqOl{X8lL%MdanXUNl+cV&up|otbnhNXOLqM)lOD>Of zc2<<Qo_J+$-I_b9<Ah19QFI8F4T`t7!sdXV+-ad!I>|KIZivue)n5C?PfxvH@bV^n zhrr~3cdr8jv3XvX^8U3A4Z3ABfq7Ws_4O`x*9)y6J+7jDvyT>i$R0z|aziTD8P%VC z-@PLGX7A`Yb8Ss#-#3<w_Br-hfI^`H^T3j~79p}iE@<}mzO-o6=LtR$z*SRu)2klW z!}N4%O|KxI+#}knXEfN!{x`D58#O+=OqA`Uig*V581$GFElLU-f7w_Qsd4Tz^Tx3q zoe{xpvVX~--2GtHEb-&H9_e2=&iv<9*-lp6Wjo{F`JA+E@wy+`U$l=dc>F^!T<6~o zbdy&8eULQ4eT62|KMe5?)8nQ39}PIiYaR_Fabeu0lqWz3{52HFFWB1o+b(DI$rq%7 zb2WlE@n_}SJD9=_`6vAg6@&92%DJzt1}hMKihb9A2Y$o}R|Of}qd)4>%Uyopo3C#l zl@$+<R?TV1k1q?o)SuyVc&lpVtScu1u-V;O-?g`4y_MP0k(-|j`ttfS0S*8}DS%xd zPLK5(JF+PYVFEn@JQdag{mc(yk4+Dlu$x1a6?pm_eC^Ua&oI)nm`$c2^SSA(ldu0L z0b<FLA9ietQ4)U7L3Qo!!i-+P^|B{T%-RKy$q3rbYzf8RttgjyuC=#<i`Bp547t3H z94uR16fEVkhv74q9&KgHY&Y(q>$NKG0(QQ~wxJc%3eV4QO6RH_1XyKBUpn>fmHf=o z9XC#;L7*qx$<jpZrq)BSAHJ}c`TG*%;Plw%h-``Bg8Rl-(Bd7XQEpIcKSM!oWiu0O zxrCwrB;9!;>!I(Rp|Mu#Fs*?_&MDysLC5F8ewlQi5%1Tc8*yOWTqZE$g3FlgnzqOr z6djlH%1XYs5yYszw&bv34IlD0N`wKf<Bm<uHcVe~2Q6|JR}89F<^&I5gA=t+TKqTx z9}^=RTie9BMbwoYmjm16S&R^Hk0i~XIZiITq9j+}633#PS8kx$m3(P<BZfE9Th}$} zU~WsUX#FdTHoewC<F4!!Y4xDMb$;^Ha<qXfZ?MP0m8nod{`v@2;I<e!NIVzA?N5X? zqDWFc^ai_S&e<JpsCK3Ngp56>6zZ$Z`Jp7V*e_n#vi@LI@Dvql<_}|`gAiq3CaSMR zzq~+F>|ZmzJU45xD;3@D^e2Zmk!sPbQGtGV^dGn7aL)yfyrijbOSE~jwLOsNDRS1+ zxcpPmZ;kTQ>l=zQLyZ3F)QsDcOIKt)z?Ln8*niS0=t=_r`>F2X)DsEhH3O&15qNTb zq400lEc~!#t<_a+llIiH<(uZTAGyIHvdN-CFMLD_Ix<H#W9vei4{)PQjHN8$VsYLB z0Df&*zgE?fX;sS~U;Z&0`)wF-yX0NfGkmnBE1SBG`!-C^fsfv{rplNz<K$!P=f@4d zSJ#b9?~Yve!$2W^<`T|mBZSA=;c9ZR^+BwwOa?CCLnR`4WV`B6*uW}9{EyEBe>6;A z%r~Kx(W(4RBnq>G8mi3UXa>g#QkZK$meZJ?-s&|gO%qyK`Sf`D0~SU(r9fo?J(CO~ z;!!1hZKR}sfH8U)Vk;_boH*O^dENqFJ=u;0K!R<<)3Y~-fw+M{`-^cYwBIT5etpUE zLoGb}8fwkoCV;K`w*}H3g*oK5Spqj|E>ffO9NgXqgTE!~mr*@>p}vARC<&lu0OM$g z{vJ?P$LFQF^6M|jnhSsCYD$KU$EH^HHrs^T1R@QILLh#q#0*C*)we=RgmOi()M1=< zMdgBINI%jr)BW=^4ioNovE=5|qCDo%d<{0`MdQ>bkK9lDl_~}g?f`n69euWj!f~Ac zyu-JOA5A3Nd-h#Mx~J9nsP@d0KCu4bG$KLXdh<bT4$Us#s@NMIJvmsz#adD$r@Y>m zcqHypqeV#*XFi>LZrH&&NyjQf^HS5!VK&S6uyb{bjk@|uPgr~&X&%o-oJVVbv^uL= ze~P`bQrhH<CJ+L%1Nca9Bf%sp)t99<qqCBmohv-itR|zohFZ|(Mk5KYA8{Gf*N6J{ z>Ik%f<-*k5+H1O5AB3DHHi4_xiSlBt)cLUvZX(K!lpx}ujYc9i@Akl!H^h?V(q`8) zU-+&te#P1!adyuuzaY5il$n#5iXPXma*R_qHEza$OcNKHT8$bK9yfkk*8B-y<n<dO zz)cZp64o~eJItz-c1<)S&TVO!?d={lHCgQvX<=I|i(F*=Xh}i`_$8!9BI^!2<`GS= zvLwPKiMa&`)VThs4~AuDxT3kkxg4JO<kQ}~R8(ESev^3~bT+HT1PokH_LD0kb)9j% zsCyHUhDwirvh%BMt5XHQr0*Yzp$A7v5z1aYk0Z*_(LEC{r8qMBLj@hMZPT;>Ia~9y z-sWKo!7#J52^$H>&)ic)5Vc*B@9663Vs3Svm}?>y_USsNu~1!`FC}6d*)&rMaJ#Tw z?MX*}L(ky5971o+I>(GFppoxD1kd-7kE5W;0#-riP^3bms>`MM8W8DDSy;Sr5-GcT zoe7H_uXHYVakfA3pU`~$|Kqv;PvSY9*I{qTA+t7%lO>70LQnyV%ai%ysh@DYjvc3i zjKFtS(OC>i_CZmU(nHntwH(|ug7H<id^@|=MoI&`=LR*0noC80{F;xovKNzd?#juW znZ>ptjY6lo@@`oINtet5gC90Ct|j?f-NaEE0s!3w#-=-Ka^^Z-ezkz-2~cu=buYK= zADX|6#l&)c*_!7)ko0EYt8lKVYTTEOj*0MVe}km|_<YCnl4cC?5)nx)%(f@uA#8#_ zV~2cgL<7)AVT(=nH5(XoXw#~lzN<Mc?<9z~y}F{1!7M{?Q6^~`H9j%wmk8UQ9y#-X z{`@UI8lfCtN$%cO2crsL=&z1tV&-WS>X``tLilsqYtvYV&Cr7*r$&ePTU>@NwQ!f# zokU^4E(W*sX#7~03&N$Osv79EU%5{+_+lxVl)P+Hd|?gbILlBqR`0^z?j_34l+)7v zhxZB-PDL8Ber(wAb4$#Q=EINf+%dC2ix(qt0l=*Yrz(yDK&JuA=^UVQz;|Fr0r0K7 zs&jv>@|Yl_IYd8^1aW|pCuGWI9&y8ci6y@`j!T~aIrOLLA3uomI%31Y%A0t1v88hS z3cEjhyz!Axl}RYCmvQ`JDj(OP+r!EcGYOtwvhsz!`Nyk_C85Lj8J~s$x!2{ynnn#9 ztm0Y>EVhp&C=V1>A&G2*A-^hC;I7O%Dyypotkc`PPw#vOy%S)wr`(%i(^D3*n=xpL zKK;eE9!G$c5I+Yf%1UY1)}#q{PWJXMDJSdA|41g>IM>q<0B!F<lB;k*DW`8^i{Azv zfP0Df@#bj7T=OdCcIn$C`fx5f?c7(~iEmo-kND_fHjC$l0w-hkqExyA$!7m-_Wh*a zkF-vdP_WrAE!FLN_c$j^9!|*IeYH%qPEbW)ip1yc&fu!u8EB1GVR~A8-81A;=V0O- zl}5-YMD|2kzQrAn@vF7~TuzRZV6MKyyjQjBDfe^ld(p<CHc{;vZvmz`FXsGLj9Q$; z5P!m~kI}<xdEns5rm>ADVxs;lN5=bBdmF<NK<}6JN|*OhPi(a&P*stTAd5p@=j}8b z8Y4~crfoxv0oHI5=jBWinFqeWMlSp4-qdWo+(F{zT!fy-6xsp=#~59>4)4_rS(MW< z?m0yL#TyIzGsx$RGGmphUIj$(CYceIWqAL>;?~D3>z80`5s5B?*eWK+L1ou0DJPv+ z)ncoOsh-E(c!vm5#M@3PY-&)JvYiohCXu<OMg0v}ls0*xW!9hVnOX0+a4#gq_2i3% z_woH%f3d^-*)l+It=nBHnE3_soMu1a(Ef_fN#91=*&#XZ$B=f;Ipf7;I$TMAr}o*= zpI;qplL=?fTX;i(CAT%UP?g~F9)zgJm|>4SR%O{9fwiYW%mkr(*bd{&>jr-SJ(j{W zSj;*TV|6Y*?gkbG@5wbDw`M<OvgY~;oShLu)#JJc=~CSnVzW(~*=xNnk%}YaoFhiB z%W@%(TUvSEqDI^0QK`+h#nJtEfX?((*6U0~MKV0Vb1E$4A?!S+8b3TD0BtbE(QxOE z)`il4E)`$uXsph}Jwp9na(LWs=H2SIjUTfqnb1VP^2liv>~)bn2M7x>8YoRB=Y|ZU zPQDL<_lH~WsL<r7VM?TB>g!8jo9;|wMA~i(I#HK3YxxG~;Rv4lD(%=c?|5BZL!HL2 zrTWMBVv(<gWbTyH=D3UUProoWK3!gJc4pNe>!RLD=7MFSQX9U^uP$02nzP^92{haY z5VS<lfhZizZ))yM1k4kyL))HL!$bk^sL4C?z4-aLdQK98yX@j=Q=PGq|CZ)+Zf>2I znfemdrwdTykycn6u=XT8iQ6l?qE#;X&q5Y1EaHdlsmW6bv$TR*T3Nw#JXdGFKiCrr ziHw~54ztu%i<$NFEQ|T9Ru;b`yl8Y19M7IXU5?e=L_L?r##JXLE#Zx&Y}rBv_i>9< z&g@uU86VT>{wzz5VU=*dklc@Rc%aO$;<_IFXDMquAdG4h5C`7GiriqZC~ghd;{SxC zY-qUCW=O?5#Ml`oA?7x<{Em`v|IemDg)}C4aLX-=8PKM}l{{$K$Mrix$EqOX{Nh!E zC<)Kpaa>hp*6u{R$c){owGuw1d#W)Lylq768!EiFxS9JJv%ojC?{D)hY&ak=Fr==^ zEbyozdDR~-ke$iq{eYn6aCxXXI&;su7ttU^XR(sT#@@Q>W#9^MN>37OE-i<;HLEZ& z+)hE7N0WEC-u}n{=v=yUJEraca-XR_U0=skt&K^|9rS(J>5EKX^Yr87r<4{wY`@l% z^&rG`Nu(ro6cv*GqR&_-oXZ9I&QqF!gI_EXpSU&GpI?yB271czSj{De{K2%tk~5JZ zIy8Cc0s0xRfWWMom~S^zK%YL`XghhJo9%CfIOTW$8;l6r9z37jUK@|e_*K+o<@8DD zP(O-VuQcOUTJ}ur!{hh-w3=F1b8j$osl+bMn-$tqMKM|l&}SGQ!n};W7zZU0N(X_( z3^%SZyGz00t%UMQv&(1IK;|Si3Axprc-Hz}X0Re@fEcx3T}Z$_19%O!<QdO#)i`!w zUPl=@;W`1kj%x$65ekFKx}@jOMkUX6^q$Q5_+3VyZQWMY($UbN#2cSWCQI`#zLxht z)-JNEWGmH<1bmkY2H08*1$l|c%8Mhfibj$5tyn`b?xm8qpEo=rmy0S9J%-gWDW&I` zKfLiq?uFoqbW~xv>DUk=GV+Vs)bhONpz`V}`r|#P(Wph}Q;_}W(X4*BD%q|=OvbD0 z6hez2YpVOoZEK$eOtZ0uXe3>F1NSY%_}_!GT5^GBaA_>o@?vG6@jp9=ell*D=_<?* zLioSNPT~ykH^jyl7vL!YaatKIdQ&njEAGa_$h&VfY8&75eV&Kc^9JkNeu2~#W*J&| zSHBHx5cj~Ast!C_ls2(vAi?B9EO97RdUDov^$8N-4hi3JFEDXoD;FH!E|cg})yIsi z6{fq(a)@93Y(UIRVwGtFPq{~vu@XS>>mHG+@BE%tO7c1~V?}Gu;1xA8EL}YE3O8<c zh6@wrbnxyj?f7)}y4_jSO-T^6p6N4_uw>3#Oq$GAqfu({wQ4nMeYI)sdM$8Ou3HY= zK8I{eYw74N=j2J$YXRO(|EDQ70TyeRoJ|NG9_AlOhkpl_57`34Ma$hNs`vhsd$F&# z433A;Bar9sMX79mwvLTxJks|wSDOyeU`9}%iAFZM<*8Vutk5%5kSpT7!)5AI{709` z6VBLD0WM%bp#p6S-~0*&w;<+c<O%l?MdJgms&+7}(c^Q&8cXSTYoam7zVIM^<(i!l zB&dTgz*RRs(9e6U3XKaB9~v&@5)+3)f{2r6oNv84d}C|N!k9T0dHwL>>eABE@-+I) z+R3Rxx9mzDi@5GT>fv)7He%Q?6ZtlO<@-XHiq7MPA>!k+SP9B)L&}?(wM`K)ICLIC z!!9m~eFPv7h%5P^Pj~7v!`)Ud^}0^PFA;co4qkvWR|8jzu+3!wfsp)t%x~E>i8CJ2 zzbomm(zmBM70u-0OKICYkeqYwm-MIZQW-Mc%R^l9E1NnDAmo`lTZab-9?NlG#3x7x z_iqY366r9!qpDng`MvX`zia3Sa&o@@Yvh*r(d^%_TMk|5zdrB3h2|!lHn1s)MInAh z-#RGo47`KUvVAeB`U%0R{;*_k{97FI{;4F#@^v7YXEO>ZJVcNtf`6y1Tv&ot>tAs- z+z(Hb5{p{frRD4QzD9hHD2z#0Jdz3MY)RIIcldh;#f^K%E8clde4K(lnH6H|fZx;| zUtiHGKqGoA&W4S;Imdz!tE;$Tu$tc$o(~knMZXo||Jv^lsR~OW*|9DuV^>9ELN||R z3;}<b>H*%WD4^hTVabbEn4M2OlV=cT`hNg%%dQ&H)83LNk3tmY9}Op~csPn&>BP!> z7`p3D6L^XfMDA`9XrOs|yqOI5FyRKJwCz<y=k4Ws0YBtkszKhQu9cq8sns(9ekhBd zoH5&_tuEo`n|@hw)(k_pAzj1|R{{-j#%C|kLD%$pSOrr`gE?~gojSX1rAjOow=@%u zX4b8|V`#{;sR&CERI<vc;#QB27IV$fl=<{8NS-96dMP#|m;67HJm-hLQSUNtzB+lu zH;VF<osRb_D2cR4WB;&1dDi0{Yc6cFPB~f$uifpYZ|3=Hs_e|^mRVBbmCy?tOoMq{ z+trQqYDcVh&q}F{3WJVXpX<+m|3=ubNn!6bFej>9Z<Jar)7Hs(tk)j=qk&1F`Rhaa zS}%mgAbhVL0MO-HJv_N=+ZW{oxt<?W<T#F2Jt|)g(6+uGvVc0ss2J)WR>)4*igxM0 z^*Jf~=EJaD3;>XVFLny|w8l%!43uA58kO$Dqv0CZxeOx&^w>>qQhtGhG1f*(wIMgB zeCfIp+UTPlV;q2Fa{E!Dj3NbOWWr|EofOWncT>|S>GEdgThmn{yiLs?mQ57ha&_I~ zd}`q$x|QL#?bFrPEVfyxH78E}7SjuJDQaAd$^@^clJP{IXH>l8jdR?3I`;K58`PHe zDrN7h$VFJ`n8fv>h{9c0(~Ie<fJ^7#PsPcuU((F7k=_0`Dvme+H6b{(NFi}L4Dhdn ze_vd$Tcwu^EBt}R-9OPs*VFGvUm}iSv*os^Q%N`fHS{54_r>IiZWdi!I)mQq!Th5& zH+<&I7qcjrd0T4XBdON>DsK;N-B0>=#7>M^WCIbfV0pxk<}uMm(ehsi+OqlHXQe<e zem|L#y5rTQw5rXDTzl3E;Vq@Tri&l9vER^XN{4nO%Li;W9hJrM{*lk|zAY68EWh!T za@E3$vY7?q?b0X~J?TTX@6-c>jqg0KtzD-WE}ao39M{*VpgQ>RP0u09bcD9@;zyAw z(Ch1Z;R#k}Cld=lmL+}q1msr(t~GY#X!Uxr9lC|hGu)=`fF^d11O?C-6*Hf0&Vu>W z&kqg*!w>ROd{tyie#{YJjn2(4UsrGJ9M)Bib=Kvv)Q;F}=ns$dq_?`Coq1KDK;e8& zxOG-cW>qP#C#CL;qfoI}Wm`mATHA%P4o^|5$hXfF5C>Gl{n`wIkNSR={h_bwzwZBe zd}H@9JQT4cdIj~B&(G$6PFYb9K3{pT@3qN@c$C~b=164{PsDH?($-@LO?mFSm*t`k zg+E2%2&zI>#X>8~6vQXsn=LAI+8N;@@y1m-KNJ;J%9ehWY~)B|jeGwcePHG}^s>LC zcrH@%)Eo@NZqxxJ@E^}e%a~)`8uO#c>|U+WikX%0_59z82JLcx3@Qt+=uVYR!2v#N z$MMF5YG%&4fFAi>OM~PD?S<Te51T{Y*#ZkC_p?FIkQ?nuE|DH@hQ8rPX)mVL+hmDU z3p6X?j{q%uR5>IxVu*CfOfI+0L()DAAApM<_E*usAdIlc%!=vkQ`cwcu2S+^@V)*Y zxh#aaEiAik@)!1IHe4NY-ymZn-Dx)ZFbM$3a2zqGds7QcUon<7S+KQvFhbp=+<r#N z!OvcP%7@sSru4Mj%lfnx<fb$;eCox6ZrVqHZ!QiT?`sszAzOHr6NsICJk8G}R+Wnj z0M9Awfy()Z17>GryUz~BYy}vg38Gxs)>f!6eA;vgm;CSi*1)yEECy_439J%@EFI}v zS*a<=Z@RygL})r!IH4s^(z*O|=I4;K$GHbtMA@_-$xMAc7mf4T-pP~I37rX3lWDb| z5t@W1F3pcw$nehk`_@$lFneDF&QEY01Qd4iFn-ng`yE`B1co5H+z-Dao%GU1aJQY8 z+uBO@%ZT{2%^nB6oIOG@+Zf*{=MJag(d_n1sAy^dbhAVl5k9uZ`Gp8tW?pY*y4Ow+ z=w$Ddf&p`)_Yw2s>(jN#0X*eE;;izT%!cO)rsCfh5jD2~0MG{-+KqBn@Vp96@OKNN zwQxG?M_EC3^4VxX{K(0%8_#@$Z9e}ghsdtUvmPByd6Ab(qi=w|T4&y7ra>M{r-j^S z2YM2X?<3f_z;6;D>UJ_f^IL#ZpU-3ffCozN0n8hdF6iSYGEJ`S#RU;Mj{_!I6=@OG zM|R<&p>y9`oW)(0$|8!@^U{T4cgNa0cttH>#J#zorWf+<Ve~$|g@f1OUyh86*V~IE znuW}PgE1-6r2lgj;{C?uf=eRH)%CK^(+U#km0qT|cObC@6csITZ<*{PG{>Gi(@et; ziH&ELD=1?Hj9-4<KM`7wRjr6sYuA|2%}ml=@igA`!zPZm{BF*6jCJBe=wJ86lhzV? z_weE7(LRI4mOzVw0b#l8yVwbXr?FJY_qrpcKk<-UhAG?+bU9pI_#YLD*5KNqLE#%5 zOH<`1G5D&`ujEYWC5W-Cm>71aJV5a8=Uyh(Ik|6|4zqc_+1u#;IlDL+TRC8&ncG1H zU2P`wzpzT;qU7mAO~%eV-ZI_nBbbw5pQ&A<m8@AwLEGLtD%U=`+DVkz&LbB;H=py3 z!LFRp(u$ROLLp_Lsz!3okpMUR#46Pl<Y#%dXSV_4y0F5z58Dq`feg#j1_c$`wq<4Z z2;?!*_#*=aRUr1cZ984jGrRz5XjdC%HO?$IbWp}W^{w;|{|DlD==Y&AE9>nCUXTX< zkJh*}U4ex;Bd;8J{2$!0(ZbYiKxpLZEMx({Va>Ln?_~KIB=F=!sO1L32daeOQ^rgg ztB;zz3T&%6v3^^uE}r$;dbo5n$KE|Orf1ANvNd}o2_@$kgd|nkN(wMKOhhX<+u{f- z6Sj@tFvRO8X0CDo2&_;cqw$#;LdB2u53q#|9`JllUT%j>(Uj-gOkM6;=udr-wTRT= z{rk1lm9l|a&Vmm?#1y;wX{PhKQ*qpCR0nj*djS_H>-HgccYAC9mXmiE#>0Q{Pgv>6 z$IliLNhL@?^W9J{T_egv^@jgDB5Jw|2t)7e64x<fDyrT2xOMvjYrqx@<qD?R4r{u8 z2R@D}(w?Dl*m>vixRAVF6X4W~++vfUba;T(!N&Go&Ly18*(?_a`V4g)<MnH%k0_|6 z@<_#Bx)#{#3!MD3l962=4ESi-e%m_8Gn)G!m5j}6sZh)3L*GKJ#}lez<coMyWAFK! z50@&~-*~<(IASa{eX*1}aa8VBvxf&LtWOW`Z?8ar$1b2N<Q=FXs&2taYnlsi3WwNu z%YNO45V6V!LGPL@Vgj0iu~nnzACJ$H?FDp&46x*igl(!y+m2<%(qznuW@-WRXD!d2 zFzuJv=&egwFLb|M9H4mT{~&I>W1_6{K037Mh=o~70h-_OLqm8XFq)x_-e-ok?Ve7& zfyb6-l~wRRiX5HLNmkym^Xeu%Ccv|$iwNK_v+BA!D=}x*{<kSl{SB&?!;l|c)U*eK z4g&7P2JOBF8)st7&N~1=a94_Vo)(|>bVH-vRl#1Y=AsFuQrJ4p_c*VoB;HA8hpz*t z77bcxy{Sjw`#9!MfyH_*0eRJs?-_)Vj0`KypC8JUrXzE633`4*-!Ztxf1pz6h0ss^ z#c$E{-$cI3b7k@LnX0h>s@{Hwd!Ly!WTB)U%l*2*K#wNOr0te%Tq9|++7G?C&R%;S zLutVxDTbcz0T1V%#Rn*T?|_3|7pcm@z+A#N(alp$sSa7bj*94*yai!vET@xQY?k7P z!E9hNT7DUz2O_@MLCKZ5frxr&gu)z{CdZj%KfwUx-x{<p|Ihl!O$s=9xZkt?q>qez zWPvKE9%7B2kD)x!34kso$cy0xVxYC*TC-6)uB>={g>-{n)<}^^kYDPob0PJ41LS6P zQ?DFzyotW+`4~`KJmmqj0<)qGdpAm?)QTzvgD-dE!R)VkqU$8`R#INX5&^Uy3s*^N zu&v6|VBfSmFctfDLP<gP<W5(vuR(5{p5;GAR!taPI4XBBcOT&bo}4upyW6>k5&#bB zk%j{Jl$ANA<BdAxQ0+&}lS^}jIg1}ck1>)yLfm`K$lK(AFm2mr;0`gfTdRbZ2c0eh zxx}812mg#Kri)eY-0TojnDeSJ(D=F6)Dy01Rm`5H6`0}H$By4_NxhfPncLUdOMB=n zGt_-I=6szVOB%&dWWVwswVWXqz-DLs_*`gE(J@ThW!~7`+4SYwEqQlLLR?Q2jO|k- zplAMH$SQk&`||{E`r=CB2xi?{M6YP;F2693Rp1U!Rj$tV^i%^@*zz3Yg#9QTYdGR` zEb8<ZzdoaoJDOXm%tC$I6ePJ?Yd#G5uN0Oga7uT#Dm$J7x7b3@o2O()6fb>)g;7O> z_h)7cvtq|mMY-P&TIpd$@EzPedkVT4;X1&;(V2M@J&W+o;3BhUf!lAaV+|DkH|ni} z-!<Ib{Eh=B-=Q+Q&v%!cTui{b(nv`=<O4pcV0h5d*$Uz+K#PR>l89iVqm}S}wIn$P zGYF9Te%D7seBySI<}Z(%<i~<$FA6?4$gNDCV`Is++~kk*Hv5a&5-pH(-bvnBLre|e zSCjpJ7{Ob0&7dG1TMkH5R(xV2_9s(s#+O@3xES`Bi%Us4E8ajz$PhkLAxtP-q2>&? zbs2o5R{6oJdeVFOdYJFENFt?~-ogmxp2#u@T#?iz@OsIN+jVzETf1l?ot4^g#L6vo z<O9mIoQ)mY)*lOkeoASMi4E{Xsu1I1%|xH|xT&>(+rK}}Gt5yXIi_s5A=s@S`T{-% z8sF^^w%sL6jymE>)JiqxiXZmh#=*v`PHD=5H6UMEoGMD^qB36k*L?|5Df~?#;nZdo zX!QuuO^emf{zn|_%<*~&N3x~kR$?}Zsdce9ooEmO;0F6^&a_p-5D9+Y2BELB7y!=^ zNF>>02N2obXzF)Vu@>M}x-9g3pas#Cu{2-etSjn5`S|s0MM=%odr@5~$)!R@wMsUJ zX6*kqNPuJA-cx$=`giK<DHFQnC6s#XGOxh=S6sk<N0}+&a!-*#7l#<!<_7#xABD}$ zwZ&8FJv>T#BsZ{y-!u|AD3DF~W1EI&j@$P``6O0|dWKz3=2cbN7Vi6jsxRZnY+e}x z0p=3Wa3Nioy2%0ZN89aL*XT2%NbR7NW&I%J*8TL~&nzljQqAaz%QB)6*|S#5#neIv z>o2`Snz4_x-}uZsmCQ**fV#pOO^J<9FUdoejfJcOssmLGVBIZ~`e^6*d2oh2yq7+% ze|nQb<Yr+rIo?|>OAMyIn38Gui}!3@QEIU~A-7VbtNctrJ~!je_rJ|A;_rW~+ss}P zf^*1#c<pbc?2!(lVrY4PH!QX(EiR45-GL7ij*4jm^V)q%r+D?qbV^0mc6^Nz)2*~z zK_FVOXI{lWraX5<gq_8)5!~1Y?kFN5Zt;t4h1lOenlC3L9^~)ZIap6~S@l?qb+k|5 z8kX^>^)n@D0n9~QHF{Ep9tEj6<kktXF&zi#RhjBnZ(iApF~qI|qBfO&Ez4gBvLte& zz5Hw>voQ;1;HKqG?)mYwEp{XkJ=Oi2slse*_*++KwvSh3Uh}wdAOofqEy1t(PTalk ziqmHkX{Xe^{Z9hU_jO-B$p$_{sW*Ds>_;bN7h9vZx7Tt4PsZFOlYK7EZ#pWq?x;{W z6m2DA&OQ}j3zxc7H~X|2Go|ln#o>-w>;3_C{5<upXSTGF?sgOalCo0E_uOr?J0k+H zj4*M%MYIPU!-G21Uaae*Bnd?0?lu)^<QTB}AfVo({Vy*3&#KeM5rFXkl#0r)ZuK?< zo1K<kp`|w8>3-ajOQTjuMe0PW3B6wBQVT@7m|OLdUwCzZmKEoRQ;1@?g|5>zQpW3b zsS_)DcPl5qQe?m9@RJa5^sX87{GuUGpXz2*yo{_Y8`WOhJg%Kc=Do9{e()IZ6lwk* z$-oXVFTa*ds7>b3EDUrl?3>rT2bk~YTjb_=h@P=vcT!bsYIE#vYv$VRFOB+J5d(gG z#3FptOXJ*o!gq6(U+~r}DPTuZrQrd<)_)c>W=yYF735ISjFp>SIGxJn!S2?s;k+2O zt25<z=&K^e#pi~p?c+XbK0Oe)UwiBH8f{wI0j$`MW4=WhBxpA4i3?g>V+nV|eM8&W zU-k!b-Uj?7-Nb-dP_@t_czj&kgn*yKuQpxL^JUS{tVScxl8GgWVauR6qLu%k;xy*P zsyHbyAFk<x$N$+`-5sYN-~qd#KA`+Nh0V!kZ3F+^BmEi&OMcHsID<y;|1Pm4p}_rr zkW${o`oRNbuutm0nCv0v|2rQw1&MV>+);a*^=IETK?=ip?mOrHBFjfm1%e!rzXYC_ z3!DFdg1`4-Gx^PD>*0$Xl$VtIC-=NCIc^F_3VHPFd==Z!_q#xD32A~AY=d`6;-0S2 zH9d{wbhE0ws2|Pl@2ZDN5t-5UZ0@yei#UQr1w&ISrgV9Ro-%TZa$5L!zc{GHL|699 zEypJe^>no-%Hfc3;Ck3flTch-4v=fxT+3kS_z3He7r8u~dgKrkb#5<^I=4T{eO1tL z0}UGPrFoBCXkn>`k=@y7XlP~R8DbWUY7z)?r*w*5yXilT;Wqv^EdaM$NaYRXFi-hP zZeTuX>!49qs*c~zCPRUVi2K=Qm!7N&fk*B1OkyGMru+E9K9BZkxaaSY0iAgHlJXv` z>U;B*#_<d_z&c*<2J@_HnfnF_E#QY7{nRtdoOTVE!_p}M=DF1{w;`gSdn%Zf)nKMs zu67b=0y(B_;AlI6D@oz#x*ufU9T}c!c2SCVcvpv24i8)Y_-FIB2lz0Cv^QlJ=Rgn4 z+7#W~?&5n$LR)=UFw=6hx?(oXJP3f&+6(mC*)SgFo628WNuHeZK84LlzM6b+9<mB$ zu6%FQ;K$t7abrk{x9Z<}Mt~U(qJcEUt69W9HT%QQmWbMXfBd_{8&grp5-v(WXG!>f zka&I|6rfEska_O~6tO8gIX;<yZEHJlWVA0s@B5}U8?Nd?H=zqzI^)Ghao7k2(*KF( z^GWJuIqm9|jX4qE!;k^Dgji|*_O^q{AW!-7pSuMg_a$Cr3~bNy2NC`&Se!nL>Ij1t zTaBr1U}a|K=A1Adi<Rv#-vW^!mWMb!NgH>P-v*Tp&tan?7YQBkF;9{(eK|MYFF_TE zpj^|PtTsEDjYGXkgs_uMGx9&^N9WYMLs=BmX=Z*;#SvOhosKt(-g5dQOBN}f6FW$j z60Eutp?L7}-u=82_}{GN!$!VeWu0S;4H_-f1BN+u%L(W_^z`96^zLtk5T0^;Vn+;b z@K`@C%R@KiONk=Vg#mz(1IMPm8vFVfTwYymb_EfZtr=l<_S%Na7B3u0+e)YXr*>BI z6iC5tI)ECq#2#{eZC@dOTlFllEJTaux5l@wC#xa>!|b0@Z!Sa|-m35SR|Gj^9WJe0 zJ)HT=p`?WkAN9n1U$~wzVJ`DCCi^a=Zq&x)7B$pX|GR(s3835Qj;iV8ZbO=GrYU~s zRZRAl=7&qSbEw;(=sCXbRW*d2P?AGIyl!NDFUx{a?6C90e?@USugBkHtgJwLiy+B- za6k=rFBKl+2LL_5#?<WFhOl2<;FqQ1uWghMFeX*i53-(t+$LEP8J#LsBEy9)Ev(kA z8r>RE;6S&4?T*;kq}`7!xZU)+>Sx|bk<nIjF+JDcmgjXS*miE4R4GS&^|z(879s_J zP6uKtMOyxtBcJ<$Za7AU#)MQ2+L+Au3GjKw`M0wpSFp|E`UA-}MEQDZ1)=ZcY{LGk zxahgnsPaic9oZjeiet;Q`I%TH%={X7KdO(RN5`&$Jxt8&w@2z%+&s~LGoODL`$zM+ zwy=b&!SzVr1Yh&ZF0%pUa-EpF--`}WXWAVxaccy-81tEAGMjjsqH?cWt5}l#CN%$^ zZ|9qW3IqS`=3D;pWzJchfmgj-*HJ*5>EU@_#u?`x@$2w4uHt3n*)F{p07MvgtVcY% ze+AFcl=2Ijbxl1!%sY3$$6~Sn3OM629E=DD<!|mIGIVIZV4yZ};#_%X1EhHjclWDe zmWa>ATuLn&q#cWMsgW-4Ps#td#^dE$%&?n<h+5KC(0Uv@^PQ$tIOWjyJT+Of(suQu z9)?r*9{s8z$K@4HBc+HXN#~MZo=y~ER=06RsEw)1Ib^-n^>Uh&D)6OQLn;kE;TGh+ zYbub!8F9?4Kt?+yJp8<tA(!bB^XT@(vhVf1v2FH+&wyZT@1K8xRnIU_kD_jUaE@o7 zeGNW6?$vBhH2P?w;A+*L^l%9@JbTGcbKy8wz|?z-C_76g0sts3WI;N{t$S`ut#58A zYV7Voj@eWDt9QjaZE3fC@m^Ok67_#6bn7OHADu?os4Mg*HfWF#0xw<cwmuhh;H&E{ zs2PzcanmXuv}WvwkkIr%V&Qe1++18$4w1{{bcmL<5xGrH_F72SGC*ef^}9i>M?E_( z7!Qys4X?}QcBswvzW5Yet7OD|f}wUW(S&)(10YLUXFesn{)>F6k~bA^WTna1S8G9! z+<qQSpFp*Asdn#G`tNIHo=fNW&Jk|J12eLG@yp#KF8)uiKLBONZD*o`Ybvj1+Ln4s zhOXo1DE*!UYZ>au22!ky_^JdQA`8}^VIOHvq7y^it69+3W(sLm*npAt1{Mw{bz?@W z1cm>^w{Mdm{RsQ^*#D(Tec`|^AN&ID@PaGkm0I)+QRigH7~0a`u`IQJLm(?EMW>0O z5>$(ezQj&e`OB3AKhR>uuD$u}Nr;v_THnJ&VgEDJ9X=-c#Jl@wocVsMUa4GaeI$Lv zFS2wd1oMLq_nfciS(vTuFchPRxp4OIH(Q(kMcP|OwbiX{zd;HViWevpYbkCm6qjHv zEfn`cfTG1ExYI%@#ogWAT~eIlPH`u=TY`P7&)&~I?|b%s&v(9a80(*mk%VNeIcL`V z-Pd*9`pMwn(<w!-z(0f41VJ9(!!wqu3<zh+QWgA<F7DQDj3@2RpO+(p1mpo$_Hv5z zPjF2R!JDH>Q^~WX{RO82d1`)m0X%M)Z5~=1sYUHK(n8;0zW%tBn%9a%jUBajPqp=6 z%8%q9pfxWSuBOsMXpN1Ut^_1bno8q@0s$mNQEC<{7VtOReaz8ArA|Psr+EHT(_L<> z?cif;ktN*ojS8i_IZ2Jyt1Y78JxNTP>I;{{@L8I*Z{b{)`)vI|uS`!IX-~DTl8mF0 zAA)S<hvbo&X&lpc-WLbLqCcKnQC_Jmh$PJSghR1j0DtIMm+S$w*qH{Xgi38_%~K1P z=XVW7MfE@GN?BX`Q5Q2QpA)?3W4HI~pI>L_Ssz*#H3c@2Ft7=OsYXY+_!rToFz;S& zkx4ZLwMz%NbB9Nn1-t@uOHR|D8CM1DXX`Jr^?nrBwR80~wDztCyej?9fZQa1?KpiP zcYk%&p>R5H196&r0wl#$aBKvq9)B|qyN6xVG>#W7_q<pjxo1!)8A}_!j3?B+v_Nrm zC{OjAgVurXN2eLjF<5xvCL27icqa#Tx=vULBz)6nr(}$>av)H$o<8m4yTl27)Y-(e zSlwM3BBSd?C9DSM!ng(4#bh6IxY+ZuRm&?@UFDZ0Z$f8j(pQpK{dt>s#D{ykYeh;? zjmfu3t4$oaD5@P<Jq;Ua3g){N#04yjS?|$b#=tjrL~d@_V38)%J+&<r#p(IK#^(ai zoILZ5c#{T99*R94WT^Tz;d;qk<x$WfMXwU@%V;N^Axq14*%u-TB6EQo+Snkko09JC z4szpk^@u+WR!VsPs*9tF>kySs*hk%B>SMCb0d@btVODESvVenj<~W_=%0><^s)J(q zW@D3F)G2wm2NDR%0u8^&jCrx=Vb7tJU-tj#-|(H}7*Y^=f;~*hYVpeH^(OtnZ<p6i zIj4KiqD-f*K6Rn2_Xre;l5(A6g1ml5P6M`xmOMQ#A?qIjJl*qU5~3TkU81cZzma%H z1=!79)xBn&W>Ql5sSBEM+%QXkmI6kO*QawKR*rzvadWd{L}#CRRKYWD`j%Pucj?NW zKuwIjVJ+hFZ1g)%!?}pHe>kpFW@JTc>6=}6_VW^|LA5u?Hs5D-&2Na+A{yH<h(Y)u zu});>fE%br;qWpGEd1WvdMyg>!!O_5psiXgbYEqC*Ad~^bh&ZaNEEw3y$15QnrJ|A z6}pFvUC&5RuH+jvp=MTJ;<|U*bayUCt{+-0iE;Ngl%5UZ`|Q;}Kgg2Cn@qW7sA>Dq zrenMLd2D?nt6IlAW1ai1RhsSxugBSTms5bxR(+2Ko8`TOUh7SQA~~T;rqIP`6=Q+; zk9ead7iC-unkHNM=)50_pv5<m91f+QjyhtS5$!~we8~%5g#%7yl+rG7y~bsaY9_>N z_v(MUYO%&rxd9tQ6A&mpGvmF93Dm6kq-%^WDQv#dWy;h0^!)Kh2h&hbn8={hQh}hQ z+l#nn#-iz4r)Xsh9~mNo1LY-W2P=HBhZXC-YH4@vY<esU=ZA17$GI^ekwA0bxXT!_ z${$0oq@Ch;oK|-DqyIdpWrOvs39@gnIjG|zTyu;#Hhj&)q2h@h>SYR%FtQ$A1PmTY znCeaZrL17U)z4kjxGTctx~a7mK!VxLZ#s!7)_Mn`-SKj>a4tmg!O=Num#_%0(ewA{ ztC0=Vj6O2)m|7MHD{&BQWt6l*lzdl4*lV5}DQ%Gfb*a_L#yI@Q7brcf)?oxlxnF}C zC|K~lr=qjdComl-J1dh5#%DELK~H!1Qy>v&ULBIGEvK58PEd#38G7?-SBu<-U~JzZ z<ZesqJzyv1YY`rngy&({QP&;~Wpqi8V+?A)M9fcd$Lgt8)b`ZVmlC00=9BEU1Bg+V z{k7^x-Uz1sX2U1%4)JX!M+&$_PMq?b7i_v&;BIYw_=Y+KDU+1b2{g;D;eszft0W?V z^}^dlK~|4{YDPG5L8ngM&!(Ns;5TNgq7NlPRw)IY3pZCe;Xg`X_w=+0vqB*BP|Z5q zBsb^>smV=8?H{wuN4`PR9L^On=mskXFe`zwgwxLZp+uqLWyb!m;`A)MdcTkRT7?tR z9w*_342HzHX~OAW_UDy601BbI!XUe|Fx`vwc7HM`jNd991nhrS<3pp*yIL5J|E9oS zWfek<UhR%6?6K-q{B^xiKv-p~^eS}$0!%b{7vYCwP5p6)&Y%sa^UP?z0%4wt&pX+3 zxdJYmH18@G57Ns;ps?V24{FW*$QK3N;LbKau8A7Ky7X_Z_1r!9tV1vKXmZwYq$Hsh zP{35b@Q%F*wfL50b6i*T_3N66U1EiWO1A@@`w0<}Rg!2<y<vIJFdQe?OJoW;X1x^R zryb?Hmc!R#SP;n+4bz41xQzoi4Kp*qAwX7CT!eoj&JADPEwWn`Xq#~lFKWoC*?mv* zC15J8ti-Z1d9$mw7SD8$*3{RQ#o0z7;DQ$|6&uh*zuU;!ppM{Xz*B~Pk-l1g-!@3! zRq`109cnaRqO=j<Y&{3tZJy3li}G~M*?(mn7&L>q=<anZRA%jQKN)gZCN$y7Lp!;3 zE-~WAyl5^zA|>sAQJ+Z5F&fovr<JGNs9vG9p~I<(_!P|gF)2Zh+j3`h8->HX=5lL> zFN6p3j)ly(R(+EETSyAeSicg1&bQD6!R~_6%Fzp+=0}BP`7d!(TsrifYi8*@`ZDQP z7SqcG2tw&VK;!L25jKx__e0zd{yol=(I&;oB*hq@@WMWshV)lT2f_rHuvZldJ%g0R z{2R2CoLDR*e@yv`1?b{iiCItPf;;CFb_<n(hqQhWQ9C^CoAoi*l~Poc(a$e`M9ait zk`UA#8+Pn+d+lFiD)QeesobQvE{Z&Ni}p4&&e>m$grv1<o}++3=3MbquXU}>#p$u8 zHp1`N^u8&3|Ekq^hS%w6Fc7qxhB$q`G!$mAX=iTQq<L##gV^)Z_#8J-uiW?4O6GPW z^RjwWp1EMAmR>4nU+X$1tRD{iniLc^Kl;Kr{K!_RK=_+Nkf)1vwl@5|5{AW1`6^p6 zvV3Q_eYQ+lG+{lotdwkbh^p5)NyIREm%cxaIY3PT6b|NijC|9&G-LM`v0=33SI|1d z660=k_F1o`blvTGKyvHygOjHkkzC~dPf{zK414ie<$`fcjBlZj)}<s3)hev0aeg*g z+@?@CHV)-gJvnQ{4tVyA5JlLbdMaisng%`KPVBSfj&qtzSNG!m37R?7Q)?&m5RX&_ z)alvI{z@t4T35j)yV^`aVoYysmGrUoRmChDOr$6otV8+XTQ0^NC!5-Sir%mB+_Nio z-~PB#*Nsy3h2!A918*N6m*6Dg+2|`{@k`8yulgEvU!HVOYjpL1@1wQtdrn}ByDz3< za`t}5h8v=S47+_fy)?_OQUf;el!N3Z5sa`Uw}Fe7PX($)7`>_v$LgDO>-)7VnG~+A zFCz^65iC}MQ2u8g$09bua<d;<RJe<Ft{2~!a@?97jw%(!E~eg(h8h?Gc0Rep_$KO) zP2Ge5I>z5usJvMW^TkiOzk#ao#7bn*=sF82dam|xQn3-C`0%C(IT`Iy;kWY14HCY0 zK1(a3D$|cvnEMeKl^I)tI31)$<>8IHbJLfuG>#awm_KWa349pism-jW_HdlWlW{)4 zrf-4lUbX;z5Bd1g!-BCd9|-VyN8h8cF6uOnL$lERb!A?f#!{A#yAM18znoS7v2mI6 zThD%9?FX9TsL{?#X9tHSaI{@A*Q{fC??v|_0A8FC#a@{HPQOA}{hLv&hB-@LUdJV~ zRHm3BIfsjdU(UYKuDY<KcwA+PSc(;r4Iv?Ka-vedq0=lr{u5`p(@_Y<v4F`Sj3NbE z8(V-lOXA`A)}8K#R&w{E$Nv~-7Nfud<?j`-@9fW?b#tZQVHme~Ip!H^05Ln^J7z43 zM&dj>n|r?26P72nt+55;?vVV#&CTsD?QZYrXk})$O$D&f2^=#1>tAqGg`3+XZV}Vt zP8%dKC!PReuQr?2OL)@Je^OWd#@z5+)_Z%}iEuE4H7(KWIBQx#$3FDuEGMg1&8ck- z<nSCe`)B)_<wZh7q^zhoBJ^WKjkc-v4_}2~6rBBb_ui(Gnw~$O;OsQLak#HkaW5=u z58iX@`<lGl0u;k1Xly;zFiQXFn(zFwTeQVTciH?e`}@|%4#dAgEPb)y{|d3hc%J-! zg;;*K{p&ye;j*7;+y75qpa@oOzzxJ33t#+Xgt<!jgk*i+@4Xa1kjR;_ggZp%aWQc$ z9;&gsc55EzU81w^1ld0!lt9C>dz9+2v@~5Dzkle#6N&(jAf!fuwU2(Yvf5Csg`UQM zc{7~TpRR6!g*$V2%hHFW$i-_ET(YN}UMou)>pB4@czFIO28K%`*2Hh+f5cj%_^7y} zqvIai@oH?CXjD6rekVA7BErb)<dI+Y(VR{8cBSVkYLcp@ZacI_q}zR6?up>;F{9-8 zB4QP8U!V;bjIJ`An`<XlcJZBc!i8;g5bX=%9@7@p=j&4%;9+7bAbkV#cJuqv8ROIt z{wffAi5o)yp3&Jxmc^<rH7ihhYtQ%;ji^XD2uH|$#LMHir*|N?=l$l?s;>W;3c?AR zT)o%DLuY<zc>{0VDGkf&XY}K6H|=_?feOlvhFE~*`OZ9A(q?&<PZ$E~{p27-eDqu+ z<cTcYL|*f^vi>VF_JZXEux*9r$I(~wQ>RvsuhQvv4X!xvYPhSsqu9q`DS&A{vfzE% zb$=Vg9fyK5LLtE(iEl?Ez{+54P!Ic9%qkmt|LJi1qspOGqskNfTQ!9l`_dDyly2dx z#mI=lA@3kE7zDP`o8#6kI^afhxJ9DyVgEM*aUJOR;}=W<Hj2pJ6>K|5`Rh~gudi3l zMY^S!@4rbJYhBcNX@9pf>HK~dd|$C_o=prPd%Rh+BksFc%}{o2RHHDGKP)?{B7v@P zuU}GFJA?&F4)QLa%4lWEOHYALW8mZR!Z*~PQexuboWIi0n803K_#uh)-Slh>Q@Ymr zc9jPHl(OAg6Y+Vkx$^!-voo0jxVLi&Ykt^Tb(ru0-_voGiy>iiFAWg6D|3Tv6Q8Df z=t~8*?uuMQfAylvO}0s!jj&v%#CWh&FKA-?VPQ@idl0ZC?M8{Z?x5Om&3by;xt2O1 z9<`U}|3tR44EE{|`|TiE>(^hC?Ri{;Ecjiq)!!?$wdna3EtM8QTB#;FY&>0luzZ@+ z&NFX#7Io+)Y~r>3jfO+_+6~gf){_<Cj29g0DePpn|4l)GSFeqBpRAL4wRUpt)9`c| zBX2(4rf5AfblX3Ts>nbC{xKwANgrmg-8$VWm{C^?;Yym(+R~HQ`l2OikJsXkEc~GU zNi0Rd3#Xd?bZcm>h(?RjaWyO2!s&B{MKF&Z{g=3@fHL-}r<{N>pM}q=99+OL!Q%wr zC6W31Z<RZw#1B5_=T8Nn*#l0M{DNBAvbOZ8RR@yuPBXL`IjyvmqF3+qdj;G}KcCd= zlPOOOU=Dh%7917hi_Ym8F{EZ`w7O(%Cn>bbnSZhhvy=Vf&-Xed9b6r@5>zx!=mz}x z%iNADC%>6W8f&&RKXUtQWKGz<LMSG+P8#u|96d8+K$21mjw9%+Ed{n_vm#%-j}-Sl zUf(WE7)Nb>my!C^t;eFs`iKFfyj_Y*!!V&K7;z=%y_&OP9Dw^Z>-KeNZu_l!9SsY& zB8Zk_W!!L;0ryhrJ+3j_nf@kvj24x~?mh~Cuzdb?)lP})NDW6@f2@KBnP|O9wkZC$ zM`WA~lb<u6tD2>GLCb%3GA(_n4{qA$#P{RbyEX4<JJ`($<}bs=C*wRA#L}cD+HpJZ z;C^7yBq57eZPsJ%Ip4J^>0Y<b`Nyjt18ms8YwbWQ=$1G@w55dH2CEDqShktCB-;<c z2co)W)tz*v-E1lR61!4KEaSvPPBcZYXH)n<wA5K9Jsc?nn`OMyaXEW4WZsS4*%Nxn zm+SuhhHr6??Lmf;ZJgJ22Lm-!`N7S<x&o8B=Kwa+P&xDN+5O&S8joAGrgeltbsP<F zt}1kYB@~u_qHqqlDAudBdSAeW(&W9drqKkkJURc9wAnInSF`t3Ch~<0d)F^hF4G?W zD_h2-H;9vj4Mh_X-v!+S{^R3IG6zfrwVK3q9y<0ayMbj8b>Tqq4R`lfWs!|pWADYi zCC+P?ZTIG{{zhC$Zfp$%gK|Zwso|$>+JQWeL4Jg+Y2SJF-LB^hxasbLo0%tweNM?m z+Y62Yf=U*e%#Vs0^^SyYCPF9hK%z&rHT@}dw@_`tD!urg2d5s-uLd=%Z-$t>1EwN7 z2R2`2&9x$@hdx9=T0PvgrXN}cpJIRrCc~2s5}nsx;#&10D=c6a!D&M+@%_ptiKh5C zM9N$oYR}Guy5h^Qtx-_q2k9Gm6$KiOa(TZdaD4%pbAmZdrI~3*6eiSa;(Zlm+MLjp z(p8D*K`JU}AWczH!kth!zf$yssG$iuZ^|Iyn?Jdoo2yZCmjR;ohru{Dj0lc2F#lQr zev~$oyL+(q8YuZb`*+f0-gFuZkI;31tHTz{Zg6ycSfl5gcOA8ZN%DM+z)#puN}w<- zhTCN(9mIa9B0WG|BC{AZY9Qie++We`hk?4f#mz9=qv%x_i29x0UC)iqmp|BZos-+m zs>f9z*6YH%DbX*ZirVWUc6%G>z?R)fZ}6*wxN|=Z=2ScS%<>?y=kPPz^@*SE0OBN# z({iOlU6|T%@$|qcWuk$jjYDrT{`8iN?7+k7;~IR)+Dfa%yz=6mc*P67R>zy~`|P-m zav>!xoFYbRIzP)5^C~6H-gIl{2H<O?DAX=o44EafUfeLY20j(GI)~N`4b5Lg$t(Zp zH>eJ(m*Q}BA%fXlKV>}g7^!xr2}{tZe3tPJHLv{5WmwEA?5?LkP^~k>f?7|Q`!cG7 z#0ef!FSU55SdF-5FH0#^^B-=wj}S5;^>nL_MD4vK!xFEGdsDr4H@qaz^M%1f_e1A9 zD=&kD8c3yURLFQ^d-91u)nTGCSz4?fAg4{$#RXySKLFXDY@CYf*1;w}9ks&`LmDzZ zcSK<5pK%)MK+c^iUhdK@g~c8-kL#-6JHhf-L;}L7IaFy1qCihJxO*N}rGkE1mwiYk zpnfqo&7~SC2qs-W9j3r9cH^2gc3%8Bbjw1`8Ry+Rj$AJuo6E}dkf$liO{WkPlxZ$+ zm?%#6PH290O$hRVI@od5zJ^>lH*;-Nh2cygIz1;=o4%Yc-N2Vj6O*Nfy=^fx!IR`0 zRkQu|^7_x^BV?%!lKEU{<ofGqL~0~O?AvyFEcYv+H<~KgV%oDGAAlL9QAJvP#Jnjh zPt}IHY|6E@-{@9hv2a>_*WUMU$6$Gi4tl8$H{KGc(NNqXxR2c%Q<s!wCEwxB&uy9N zZMbq3s+)?wdu6R9c8@zG;<8hs!s6Jl0eJ;Q+=&D{*WmDE>z!mYool=~SW@r%vxdLp z_Uyuy&#R^4c<IYx*>*p#h}g_U%ZWa{IOZig6j3oGXbVq{fU#xn=7|75l)}>TPp4DQ zbR!&je=_C4lSXQ2{kn_Yk-Rdh@*diYGbK$YAs|pJy_D|W+#6*z`L|J6w6P?QdE`zm zR??N%Z&1-PY@L<AKKvOC5LO}P7w`Bp_>_KG#^!6G61=JUHNU?;$fmdRQt8+HC$0p+ z{9m6*=Ye3=7+^Os5$?IZR7Sb2^@vqonC=@c%OI2axbx$8#BcFPBTM+e&NW5CoEl)( zkuc1DM;2BNg;q#%n$ye22O{cI1{l4v^A#1dla+WgsZF;CoqpbL^To}%TjGn9s^2d* zL;m8DivXA87Bi7?JHLA7i>jIkTEE80Z|LY0x<+1^KSKVYyY`JF3`u-%bqYmKj;BKB zZ0h$L8d9xt;NHK}!ZjB%Msz_wp_##}>e%|l_2J4SJDYvtXfKf(1xsb-O&}kd+Vz?| z0MY&wXpA35^J(WdI->*i)@m4Cl<m8q%kML((KC2Jn|;45todmvfK1#I>@a44g&3_U zwb%*8$J4b63X7Y_$E5sQ3*gv%Cb)?3dB7>m(_=qRUR8T5@@(!=H7_HC&vah1Ob>73 z_)`SkfPgmk8^s}*4v?)62=`I_WK#Nh<6dZpUe||%(+D_2Fl4-i^`^x$)+E%$p+?i( z%<FxoHJ6do4_gR0FI**y2l%y((}DB<tc<yDmczX#tcI;TJ4(k%dGs)J-XrFp;C7+4 z!Vq0Z>6fP7bmlo!Ibtewv+()t^3QO>#mvCMcaTqCZ`=uX-j1csU9Ahyh7#Kxkdo{U z-4`d_+Zrt#cp|Js<W*1R3@Lr^(**fwZQwB3MzH%skPjVYjAh(@^hN8d$g9ElCpwWg zE&F|`T6m3{otb`oYvYepxoYdktssRy%Cj?b(FFa81b>6o<g^Dpp+Rv<kyOYc4}j5) zmGN?B`2V19APEin_Q2MkJ~p#)_6_|*EYl`=gRcE{J4g@Ce*VxvW%0d_`N-98e`uz# znjh*B2ZjAgpEc!<uIRf+bjqc=y9J~yn@A<1mp#aI;gU~JA>)nn=I_h7@x}#CQ_NXS zkDH>^HNB!1>0zC_Wk}Et@7~a>S93TZTBTi_NRGSHa}elf6*7(_plFeUz!BV1BQy#6 z`GCXiQwC3OVVE+wuUg~Z;VJK%0uO;=w+p(No2qWKAmygL{v^-qmg2P>_%VkXjW&#@ zA{G@C^8sU5;pQp#kOo^a(Te9$@${7<wC|EWwqD|n+|@8k?4k4apruj&Vb7XGt%tfh zr(McOK)dT#nM_A@xdNlPLy|BWRCFKRe_mV?AKRhUl`K#8`+lD3$}e9`ebgt@$LpM1 z34v0-)nr%0q*TsBY`dbegI1<*ih7wZj+^&m=~Lkur+d=L0qo7t&&Q+H;-{n^MC;Ch z{2GelKMbx2y-mcttMMhUglgd6#>C3KkZH2UrEB3_Rg=scI_sTFSv-IFR9yf7U6~mL zIU6vKgG{NeO&lTJnK<W}x{{eZSf2(y72(eE)4QKVrzk$owzlL4k}_<=VbA_fHE@7@ ztXOr5Xk3ta4@8ehLW-a`<}d0B_<E#Nt#s>h@>5W0>RtBj<5CZsbQb#m<QwcX*)O13 zvGc=D_24Mqv%JqL8Ob=B<FC8Sn$q_Aul?mH#v)HF{Cz1b#zNBuQXCBHzx5XwRM){9 zm7I(3jJpz$c@SV?QY308%`qMAzr~(9r$->ey>_L`sl(2Zoho(3sY26WM+JYE2OIs< z<6hA}e$EUX_|ZY4@U@DMf4W57?i-XtVLy6sc3tu^D;jbdF6n&D3}tc;hF&Sn$_z4{ z`iE>xJzLa6V1f!-YUK8JIY16V9&9R>yXouvx;xEgNo}obU#6xf+w-^He?1xI5s-fK z2>JkWDCcHSqk$02;JhAssv+vd&!=Gubr<4B*>WD{WoaUQ>X1NYUsVMK4i0rKjhgkZ zCPQ7*8f%@<FIAVc8c<n_>5z@TNi3c=Dy1}556UyYH4e{5>EK5N&DHaC_T8Q0=JH2a zX~N9)4cYZEs35!0;3l5Jo1-DCYv+{9kJaXtoMqJ_-RyR+u7A1@mwCeh`U-12zI6-` z1czi(wCG|bzU<N-e3-bEKSG^G)Jg9)#?P^<Dl^T(TSWO<j4+f8J?00HBFmYt`h}J$ z#WV+qCFS`1AzBE(v(4ti-nbn%rn9xY97fgG?tVG;eDt=);L)@V;vPaMjVB^wLq)_r zmX?@ILPDbRtSr@Qw+q&MzItyds(C<6x?=7bb4tV0wUhu~pv#m-@TsfMaztv{fee!( zT&~R^YAi9dSbm@?h_ae1Il4kB`EsVR>!UQ%>!bO1eAs{v01G4y@^Qw;q1jy2;{6@N z2jI`-M=38Sr?qnI!-A>zi>9^6+|~)<<y{IKDP#vM1Oy=%S?`(_?3ki}pwdFjVV#Dp zTqO$Wm_DA*9~{aX8Z!ec=l+o%nFE{cYA*~k09W>&+e`;J!tvId22)@4okwo;M|Ttg z2?=wo#Cga*nbUB)aZiY<x!gqjI|a{#a}!zD;$wZ+3L6oUxvu9bp)J>Hg1WzZgz|_~ zYwsIl4WHVNVYf)Lr#|^KAkSVaA5L;Q{9Hu=1S-g-UE;U2%$Kc0{cPp>-eUP`8)fLr z*US0}!l4+!xv*;ES7A8a2tQuqz1v*HDx>qICGWFREU28tA*%bQ8jWK?ag36>!)CiT zYnUK(D~Eh-@rYFcqTAMArDZai?<=W}GWSJM8)&TxCbrSgB&9LzGczg*fAfYtSYD{P zlMfM0+23aCG`3y0wTao-!hO0gJI7iHExPMJM>%T}d#Vh(?qub?xQnAvOxo>NcJ^>C zS45>fAhr$+ES$e|bEC_Vb0><tqadqGx9td<G(qfZZQQJ^>T|v3`Hjb}<_^b|s%94P zl3hN@vCwTOQgas0s=QWN3GAsC$dC)vBX#hm=Fg&h{qi{DG|k((u-iT~#LH!2U+g@P z2If#+KkdX@&0{glAU6QPFM+IKl}siCTmVivyoUwrSAp|A)^00Vb1pBFueZKhZJWGB z1ZaB8YFBtHL*`$L>UJ*piiM@Qo(Do_d-X-Hx8C&kX7gy7;a0uH5W0)B2F`t<O#I!J z(2A&s%0cUuo{ZJBH;|-|3+)LFZdq%)%q<Xjz8!jZTC+BJvM;DP0azo))8mc%?`!9^ z%!_+}*X-Ixpo8R0@fiI$Tj3#j@3m!(%}vxiFX!$!z&4mcAFEcu#~~26CD}`XAC5V{ zmO9f^ud?Vs)g?><%;qzR;HAB1iiXhbGEAoz&YoW`em&*p*p~OYEjf*>$JDz}3JOu1 zk#^d<t4ToxWwo&VS@g7!MGye!GhNUHeYkgWkEzXNNNw<(41s!bU#K(3a;o4JrIHq3 zT!f5Y?6o9$8m_6g)=RKY#V~jhd&}7Ayy`*ovHaHn&B6Y&^uf_=AlL0BQ{E2lUYu49 zwyk@$?j29P1a(cC3e|?dUq6Td)xc!uBcra<Q^Q;h8xbwT+pRsO8#AcEz=AWZdSEnr zI^}jR016o<ifj|)h=&u87K2+Zv&P*~KmaRS>v6bF+TqgNS8J3Hmz>)dv>9Qg04HDP zyULnMt|EgMgEqGC{eo%0sYDxgw@qBaFZj8+tDLJDH8iGUV`CSU06L0>zI!-YwF<z^ zG+(!7;<$2hXYlKVvd#6l!?fzV#XEC4%3&xaO3c#wbsCMz)j>CnRZ)+I+`D)0#KpxA zKYKr?UQ;j8B(jpZ+i7Zfzd#N1yR$W#{yT@%DXYYlkrx(CEj(KUk9uDATokx5cQ>gd zQ~dQ?(`BzGN(TQ8EHvIc^1{2hq`VP&PIW83f-HQb^H&2TAbw$Er>yL`5&i#L{@eGH z=5Gc(!V_@%uV_>>!lA!E5*F@XF!!I)s01q>|H@Jo^ZU0K;CkSFeLI*W+^07w^v67y zvBdqKF>ZpUZsxbX=Di<IpdqC!+($<ag!vUY{|GZhwUuA|8gS*#|FAl%q4tBu<V4BH zE&+|xlHTfvC0Ij^=H6{21erm}<uVn;IXHS!>plK$?XY+$iZP<CD%HcRcKo<(X;%63 zrUzNGOWJfPeqBxyickHcRIg#GAcjZgLP+B}2sE(*de97=x7DjDC}k743!oXANVLr9 zdsZ63Z5Ss<nc)~q!OG=@G`k$$z`*{A;BYw>zxQ*73ELdhv|RUUy|N?jxSceBXxZQ3 zyDLm5g8s(BzA~8=rNZpbJ`EqUWbKQDM#Z+&n@H`ahTP9<SW&$iIN8q%ry)f&zuJWc zdSFYMirg7}o)yx&(c$o=$Nxw9;DuyeNbw#8V<)}kPGmiEgzwOZYC^=(+JPR+qpA5B zwNTXmN^K!kB*&|DyL^;pd()@iKZpbZd|DS<#>09S!HexN66yHrhU|Ve!F6LFP#Om; z9?vQVl!50Xh@1CPNK|wlg5s5(N^bcfxu=}ObYOj<Rv+cj5zR;k`^(zwF(+)XdFjRS z7bfjkC0Pxn!dCZpo{TJ3x03+`vo_~Oij?<&c*bTzPS%tNo;lDmseDN0{^=~s0P#oR zO%eY81pq^CzTR9V2F=t^HJdJ%Kbx&BUd@$-K-2pr`op}hI+=kShI~5fyHig*|ClM! zto?nw(X0+<QWGZ!D+S@Vi|03kqGkc!@0#tbHJ*H5iYCGLi}AjjnGII2Q#w@_sW-|! z7|$Xp#?hper?b`*iCC(;9aM39!gam~UJ%f$TL}mn*mYTbY&W-aTn^uzCVn~r+(zhl z_MEj3hpH)oKq^CZ3j6O4Y@fV#JLto-NmDCF=qDJ%{u?!RGl7(bTY70~x*9e}i9T4G zx%`kD&?>03xYXn8c2$C}phR!!zN^a4XLPa<2J{+H+lli!eY&T?ws1MC!FV=BDPscl z4*R~8+@KGyve{$kG;O=}#y+^sTv$Jm{OROD&L1G&##b7uMXqvr5i2q3z2g}cT)NbH z9-_BP)nT&O;)aOaytkA!i&HSWpE~{VE~f{KTpAx49bLkF^d}1igKNqo221xNO>3>@ zQo~RemNF<NiT8J!D%lQ&5U}B<w$_o<atsPYeXXi$@z$*&zfi9Ex3ZSnxHZO0zKI(2 z&s0?D+sK>5q_Fz?UjZhXq%j&TJot?zrv!0F+pp}RzFp^Mf2%xgBJz?kBS7&>pHUDd zNj+~fy$%}agr4=0*}V2V{Z;pVpDupmccAj9B`M0!XSU*&E?ox-V@X!0lcB4{mCFya zk}D${t%k|%>pU9QB>KzU-99v-lU1x9MRYJbVqkxp$Ud7@^ZiK862BYL$w(`fBjnOt z{0lwYd-HmjLgZty?0)6<Fc>Ud$fdAw61{}nEFr`Y1M^7Hm_1D<(uj9UC5qcz`Wktn zXo3M+u31@G?P?)M>6es%45!r96v2Ao0sawuq+K5Nf0J%~3)llf)J--|H}QBrvtESV z;nde0j6O=6Wxm_MxNmV(ypKXJ#_JQYFAo>I@(09x>&==|%%h@MlR_S!49_C{weTLS zQV4LHY<CiVWSmt^NDVK)*32Pfv+((Mp8KjF<@$2>mATX2*uzhEf9lkIsh-Dq7R9^! zoc^(tpT|Qdk@Z1c0T<SDdSe1XksnM{!pcUzZ|15gDD)zhOFAjALG9mT6gm@~T5hc> z66}PD{wz8(R(dVH@DL?Y5SFM48An*iSfO@MXbulrJTR|}cxA-~l$R>l^}OH0G?&I1 z!Ro32s^{9`OcjRkKtKABF-N|YHV*<)jtevWC1jDqm{HxGA$ZHm*iZCcmhTjVdy^u( zFvF?tMGk2)a-(q%JyJS3l0+6kpzr3ra?XQIcJbeMjc$L>aQ?MG^gcONYh$PVS<oOg zjlsf5wm4z(5(q>P+uwk1>@ht+M+P<)l5!KsF#j$^Wm04bB>FC=mQ&k4IV7K4p>_Or z-1ozOV4$HZL>22R4_7aS^@QfO2zZ?b*PLI+db&y|40bWr9pZbgFOrij%AY_)y=}Yk zX&CAhLFxh;GEY2C+XF*-rWtu1NhQz?4-&@w$KTd7#5r3_16%hUl=M>!16Gx`nUn`p z_l&x};<}FhF~JrZI1(=5#c^d5nhA*?XDq(zHrn8;Mq*9x!pEgHNJyx*KPKi^9mL^0 zA>C1RVk+r%=|4MKDLnlZSMkUkf99sV{G>ZGTw%ytd2euMd{-eRG3B;HSkNKH@hvv! zCj#kYd3#ya<PR)C9(z+W2}u`ml|4^Ewz{D?X}3$I44<}&1JYWI-H>_GEX*aW1I%gM z*QLyk$7To;tI6%{Nl^OB#pHI<1+e;$dn8TXjw&HvsjJ8Fz`O#U_Ox$`2ckJ_df&$J zN%IlH-O!q8);8N$D>UVro&#vY_t@&rtKTBeLTv?l;JqH2@FtDAW}f2bf8fKRHTiFM zqpD<V!hW0xcorvqG2hx^I&R-o=Dv184<Af2NHu0&m&^5#nU`K@eV+YkZc{GrDWsd- zMIVp(0AheIa~`)F*Dv5mAf5JVRP@`4irnLQET0#SLpLv!xN5cEW<cT*rb>I4t!sKa zjoyBzu<f$T&u($kK?dLx(ZpCAu$y^++xnNuFs<txXOzDNmZlNBC^=|JzpnO2vk9T9 z?kqvwERH{}DlZmDzj&yB1ZrNEKJx62eI}>mTdX?QgsGyOdr1WJ_|(a|gn9ptn2#~- znP{~j?7bbs>-7IhDQ5_VIA0QAJ2UdcgFYb4wrip!zW5Ql5&JZF+^0%Lu*Qj!uJ1%u zSwXy5)mY$twkS~t@rFpmLiX$dnLedyeRyo0(d?5!`prlYpwZVyp8nmv)UtlgHG@$8 zV6EG{-%QkE&GolnJ^ETmw>y%c{SdiaX6FZQsBNaw_NuA%b$R>fscNFqMD8I|I72Wc z+Y2%l9ZbDI*8Z>-w~eUr4|;ZA#|x|ia6Y7CYafC6R9hRi#el{{;Vk0{8nuCsE0xEJ zy7BRrGgOr+82=5@q8A{0d$fhDVJo%pO}E;Z)ca4~5(bU|?JgF>3wIu+8{W7LTCQ@V zUz-K;%bORKqLt=lP=ZOwlnW&mbOb&VXl?v%&>K=H%IR_^X4M`9B`|MKt_7fDE1IEh zO_iQB>)aNLfvMR})kO8%a1;hBg7FNeYGI5<NxoB?*}I#;Pj}DzeFa6??EM5xWizm3 zda^wJ0+-7H?5_I-+RPx^P>#*h*mQ}-^*(sBXY*i}`|!jQsh2NI*Exd}y==pkZ;h`X zte>KR{vAz=$t56of*3iUsMPb7D2Z5}Bv*W^K94E3dGNUWWH|HpA=esg_l{7$IeCZq zJWDgduC`CC;Mui=u1fT|%b!fC5g!IVy$uo1*9LOdo?#@4Gy04y<h#2ctG(n|#%4!# z)Us(PpK!Hnzg8kCV71)xz_&Z15FD6Ob*ex*yFMlT8%$Pf{H6GGrJqW<*W$Zh>1|xN zJ}LVw;ry@@+IM1Bn6;E#yajz@%7o-O-}H}aw&#S_u`HS4m({m9SdL!=#i^;7_susp z{BASsqr1c?inmaT(;r&6*sFbk2B&=e?BKYbp5z|E(Sg+|;E=6nr7M9$B5Th|NrsEF zj4g|-K7<+Dc<oIxru|D8`@Bl?1N|Io^^5mEwY;K>0hX#|CG*{iJ)D=6=DzUiYTEp8 zlsgXWGM(9o+XP(?1N>-{>Bki~a4FY9tOv`G*Xt6~iJ4L*591sFZE4*bt-U$U9y`^_ z^E}`kk85w8YJy~l!iR+4P4-OL$Q9>+#OR~ixX80Y$l<J{@_|R9E>jjB`2ri)M7tu> zdutI9d<;sL<JwIsxFDV7Ofu4sU$I@I*wg41W@XI|pITfi=7Wp$jDU-5pwympY=*%? zJ~tO!>l~YkM6%}5JC}NJ<mTv}jTjv+*&E|`7;L1yDOlR4yuZkdWct{br`j0oCH?1e z)-dwvJ)ljlvbp-K*MDz6SW}$7OrEaBvvszgVgtZ(sJ5e>HII_n7m4|uBKDv_kkkhC zlht7jGSaDjoqT+KKaJzaZLWifnEc-!pL$rYPmnsLgz!%|hm;>ZUR#YcKZqK(5>bI} zx9|PtBnT_O*=)-5a80iqPDS~t<G?UyXY5x;&f&>Zc#?9_y8z8uOX9tqMFjCP$h=wR zml$Lp43U~dp=Bxa)~u_$`D&ZJn>qQ`oK;>lO60nha8c)NLN>MF^NBXT8($4L8t8C& znQJ~ES~GQcB5m(iSc}nV!GF`dI+W}ag#xhZ!7@J{he%FD$NvB|cTy}_S9#Aj<G&XU z?$$o8QCUVKD}x-2xhM4-z`ani59<7&l$eo@94KP^sdbyahpCt>6iM2N?)RNZytzg@ z2b9D)B@@A1dcQTT_oXk6KZ8d{=4a>M`r7a*_fxH0z~wTli(0ZRh=%MRoW~90gGg}Y z*x6fXp6E}d&B3<ky|_N_p(%t2H?#IT71ol`-Lw6;y#pKrf9#^St-ZImY8B#fuFv>{ zgn$EX5aSpkC;E9)$HS9HUYL>J9p9d(uG&dtTk>cGd0G=wd+p^)cK^wD2P36)3d_%y zvSFfY79_62*xg)zmjLEG*-v2kFCxg;4U~ey;%FQS;*B9RyQ8PX*ADXoZRj8$e(CN7 z3N<emc<pV|kURTFo|(E`#&E6;5Xc?I_1&VgMAm~F28PH#h>=k&Xp94vAJUvWnG8A) zOC<@Hwo3A6!b>%VF~il;2dS(nS7%idf&{88z8cNhxyT>b<0Hr1XgaDam%Yb^Xy!rK zO;dw``X#|K^jLsWw6LuBH9k4t!t|S*DXEaavxzt@8^H(VIt3?REELZ=33cR*=^haL zXS6x1mC?GPSFwor^l4-8#9#^e@`Txh#^n%ke%K7qR}H>a*nwi$4AvpotuT$4(M2kh zYJXaD#<A+TMRITYP8+udN26JEw^EKhE(I}_WohZw&HJhk0{@M9sy$BnAaHS@Q3&*B zl4SgF?x<ccPnRWqz2lgI15LiqXTBQ}KBOiT>4Ujb`&7|4T=VDQ3YhsXW|1lczck4s zotwhf>d7KXaI5^C#8>dPjO+`;hhuf<7Y0F=YWUvNZ<7~`ULQ4LfRlmxOheNfal`a1 zHR>>7&Esadfg1cme@9zEfBnw{PXHP}JDt(}wYlM)IahoC`h6|VgHb2FB%SbD)txh6 z-wZl50bpaRW|`E3dUWv7JMV4E(8Uej>iWt?roAn>C=1X<J{#HY09m8wu*5)TN&G;y z85&x8eGSw;Sp>YEUsfdPUTyJGKZ1)Q^|c!lYEAZMvI84-Giod-Gin4+NA9xif!#9W zJQ1;4!{PbaTbZPb7cXvkIIP82zR?s72HUd<>F;S^z`-wm%Vr_^xyOr9pxv9!VDPvV zVbYGu(9~cUxe<bFbnyrb@h&@GoQC@_o5B0<TlL5M<R~{XR%|>?=1YJ&gW63w;;YC& zTJ`8f^3`Cg?An2sT|<<nM(oXCsUZaBO!5|dHvbe~i_cP|;e2xVwDaEqTp_eVm1p$; zUr$HApdsgC^_Pecu{M+K-*B=c-%L*ZV@GjBTPQ5MuBxvt))<!hXB?HFiPee{v8FLd zs(iI7keysKB-fsp<{xysX;HKpi$9gTsTdoY=k9s07kRKgy(GvP=ze5OQ}bIh#?z?h zK(C3qY_2Xjmpg#Coowl}dpx@&hl{7G@Xr1qGMc$(@pf#g_}{dcLOowq)#yKXpQYH+ zv@$#E-EgM3F8=|AU+9xYZe3@qH`)=Ea|gIKSKBTLR+KM8rH#4H_gVr;YWQsajraC+ zl$wn<7)p099xuC(Pf$iUNZ%u7kAJY{!*smdEJvP>4t#V7Vz@o+K=uoHtna+vI33QM zI2<^(X*+J7fagBaidzc%>kf0d_v(0!xnZ6$^$zb5{==bxfjz1gYFo*;VqMQHjmr&n zm5(=#gIaOTHkUAH$%O@{x(F0?eXST-)dwi3kmScncb!3!@}f=b1(&ygWOGDs4F>B& zp-rZ>_2Yj;!RI|GLftd%<yjbeVfu%rluG>*Au>s5p!|VzXb*>gDEQ9P?ikK_s!k=S z_M6ce$U|`MYn>@<R)D+};lP2n{rWee3#S4Uo?hH>9`X2pCJC^fK6Aib{-0r<aeZUs z1>QfN=tqFG`hVtre?9L%fI>x>EmolC?yn8Q$(FUP*><mr`o&Y*mT4N`3laSJ7F*6? zr&wtsjvnE3+qV+l_LL+dGJT@nZNIPmTT7ih0YTn$A4!b`=)9lDSehCm`!C6>Lyq5~ zul4t=`y+z5+2${T#K!28qAL*}O?Mfe@~CbaYgD7zhEiDR`{V_Qg|MHK(36BvMOV;E z03wFB!+{}GG&@DH6#dHHSFi4j9Hjv%q@h*VF|{l4w;{KiUnAAdtyc{?JERyOkk=Mf z8N1^ZvV)4O6KD=ls`K3D<a<vxBXx6zLk|*?6E_=Q|8^)C!fWR@rB%o&dkav%Upsi9 zfcJKsVE)&KLHF0I4o}J4#>W*D_O3pS2R!6~Fixj_H#x~F`<8cOC2K%u5k>vi!zH3w zN13?3H9oKMy4e$xRYF1cnH!(Z!iiN0Lcm{Td{`X6Dg*i%U1_o3v;A%8<Z6>01R|XO z(<9&#@@kcchrRfAe%e2GvFvQJNmS!Ie$yeRUGCx1{KxsCa4(kokGoJ|-S<t8kvV#O zhX>}tMR%Fu0lN~zNaFu2C_R-C43XQsdhRuzrYQvejwwU05+!;W_qFMQRA=Wgy$YTL z){Nw*)<WvXTXGgBjSA}5=po4F$0GDnw&(a$h331#pq~v_m=;t!LH5|Q0?t-PBl=KX z>l$%uSwE1E%Ue!QTch16&O5u-wr6|aV#2zISg(h}-gxF}@&c9OMLL@=hkNb}<C1zQ zTS8j5hD}n7>x9$Ce2eQ5H<RCF<<))pL+U-xrM#9d_!K5>+qe(hg*Us$Lck=lAmysk zMduq^I5(L`H)b8l<k>w@tbljV{aosV$!(kwsgS~Awdi(K9>)<w*16lLPWkB!pA+$F z)$$$q!5lC0kYKR)J>8D?f|{K`Tz1Ru_|iW{Vf8NGeq7PZQe+Us^@$IL;;o#(l4uRx zOs^2;+a6KsrfR2-JjNu>SB8M{`5xP%RR*221Yb|P_)xSg8s~ot*l-yV*a=ZV@=x=v z`jC4%A>yc#Lo?7fQ9Tcu!ZS@oKVJ|l_?vnj&D=fbKBjCr>3S-+<Z)u9jAH=^(^emY zd`^?<K9hP|kNdJfHF6)M72p7Ef6XRK-t>$mqFDAnD(1Hfi6<oHGn4Wmw#t8}a0R5^ z_ARwtekg9P=zjWuR=&f!bzyft&s~<o(D>UGI(ohXW>_3g0?1yTaSsF67DNQfD`ov~ z{#0PBYSCNjw#%bzrPle+;MWoa27e&0S}x;@J<%z~VU~N>;dvp3-MRCo{tse0?Rh<& zauf$ykraJHhcZ{pIc-i4W#2@7-Z>`8GRC!<#9c%eV_B$atId?9uhK#_h(+p}Rsy>_ zMot}SZu9SPXiuJEd(FTcO|9!3NmjY(1r_5OTiPl9j7t~h>UFUsr{bv|2%BiN^W0se zQ(s}2@%6uJM)fBG{z)pWXSB|zgh2$HUQJ#d5pP-aM2{g?%ZU+4;U`==&GD*Pfj<;; zJduNKsKi+w4^D2o%sE+yy7{R$=8OY-+~`dU+rOF3Q_WU+0k)T%LW^{u)k9Oi>6uU# zL}pEf!=@8@Au>ErHeY?ASV8W?ALhNMz_$(abe1k)f{9qb23+8a*X!b~ke`BwuTBRj zz$bPWfR(N%)8<xd{j$FoTm%_d>#xLTc^}DC^O!O1S27jZYDbEt$r)J{WnVF4kO!<B znL=Vp_wQQLO|GF!pxlCC*veA>0G*#FZfjO-W4%3T_K^wDDJj3@ra74^$43mTq%moL zA;J7$?vK?y@-w7ys|8pXLBc(Onb{ZQ+;rvJmZ40jEBv6BWNGuQ;IjyKQymwfU(Se| zHgd2>{Jg}>oZ&nL=JE|=*J80~%bjY$%nW!SOHxD2G#e1X?XyZy)LJb%G>#h2f5F@g zHvob3yCKixgoOhE(jG$WCi;1{1z_H+GvT&@j=j4mbT$LW80{l(aJqdm>?gCLC_iF{ zQvU!e&*s`LNMhkfp4+F?LWJ$tGxteiBt576M-u9S?Ft7(v7sGoO8<lMP^47G|EIQf z(wiacSq&3ZS`I>4>Qq|m`<t4o5WG*&X<;vE!<jh7vpwv<|0ckMF?`i(C3x+wCDng$ zf3vSj_qiS3B^5le$rwA+jdlqB^dooqr$6$5Waae`iTfS#QYUU|EwVw|)YSUsJtOmE zz^Ogk?cTi;&qJWBbF;@jJ`NU9eouZ*2yMNA<7i)%lZ5reUp6;E7*XDta6iboD5QY4 z-mkW&l*w7#+{~4*7iq{%Q8P2euJ@b5RWe{kb43Jk9fH&(vk#Wn`{AC=*4{-O%l^Yl zPoa{d-{^3sFwVAt;is|X>^|Gor@hvYy(dKaf!eP4>Pw)D)Q9h%-_5EpRMuhYAI6bj zCJ2|$=C~|I{o;Pvjc+*rafg$8NbCI5RGM$YU#86<M-N9BtKTK1s9U|FXSO`5y7#Lv z6%!HiXr%w-VR1d>Dv|58<ml#MU9(f8I*BO!PWm8T>uh^e#^f&_?+l#Xj>GHg!YoT+ z;u`|t>SrjWf1K-oG>h5BI>otPzg;yEfB?zj@e%oYFX8igB%oO2t^Ejly$g)M6#mQQ zg1Vt6YfGLw@%@*F0u!QM+lI~@*aI^aBCwh{(}4MlCv|?W$2I1c9avUueINQQKe&fp zO9A=&$#r3M4Oi3LJQ$;@Ny!m5O%~DQm*aTf+PQoBJ_b{TxCRRGQV&{hw_NVVeOP?5 z7V<gMCRJR;d4KUNEDU_}diZwAxGqFV@6+=MmRp2J82O4Lj8st?b9bgr#QFM^#?w>T zCfxvPt*#pdr#+;G8wZ4I*+J#N-gcD}=m4dCfFZF`_8ylZz2pxNyn7~Idr0LUE;KFD za`Dx4%Ij!g*7-1L!?b__(2hsF-)j`mB&_l<KX`dO)GFFa!Bfyb17mL8HJ}jV5q3+~ zzC&cE61)C)@3;#{u`tZa-B3$hDJriHA9D|>_{WDnNaVwmC}$E?aC%^Bf=~_!l*z@5 z`ZXag_qJ;JCt8ySh~sFeXL0fD(wXn}c0rD_rIn#Q(b)ek(uPxrBfwFZr5Yzaizy4x z>^x!R$W}eJE=@tpw}JhJv`WC{#yQj%KWkgBYS~Q;yfl?)W(a-A^8UIenZ*+S=O1ry z9N-OpJnYWpY7#;N<i~j>SM3-+Q}G5$jDKKV+>$$Tqi!wNMbmKLmStU~6tcI5BZd{C zb$Ql*2)+(;4612(C=|x0=!7V?j|VD=JAe6t?fJnav7~7V#g;q?6kIA}MJ)m7ER&dk z7b{YT+EsxjL^DczX-ysLe*@p{QmM830O=T*>HowZp6ecJt6B*`QJQt_pynQO1Qgtk zCh9fk{!3q5UD3j+Y&t#9dNUfUma=){nd5PWDCH8HJ)&b}TO#vD349qF4QWK&BPp`K zzpo8q{J#@2I0XjS@>dck+loua%zj><rO-OoAyLC#Oh)W!;qq_0iqlGUHlee-%lCu8 ze)EmwI7!MUt&N}@X<nKJ<KyD%yUktZ>a8KlYcKc2{Z<vn-)HYQTou&IuJ@U8ra&<- zXy<cs5s*1FMF}=n{mDGo%l<eS=iBQB$U<$k;ufd6yOy0+@tRVgl$GODmv?I`E5|hF zMJx~z0MNMvKIqEvL^r%AY;>aj!#OiQGR5&>M1zPsthnA1ummd$9{yTSF#U6xpR6UT z(SQ(0G@tzI?UIE83=oIyC=O1E_>>pP3G*}u{a;K@>nmKib_{Wq`lw|?S0LwPqkQLA z=Ez_17sig9G%wzxhHA`HKRZi`Oe#Yq7@Fbps4m;^ZrJ>&u6Xolq>#b^ImCGT5$rWv z7z8Z}lp%h+s;;*nGo$?+omPfuc&>GO!<AYP%=7)U+}|0GT{MyR^Wv9Z@Y>Xho6H}8 zvy0s>hPGb1M3amG6?9~tkug>oC}jqx>JV!bZBDRzzY|Q1xzwvTy)*wMku^RS_hoVO ztL~&(twFmK1WGDqL5GtXU63*%zXfR^bZfpKF$k8-T6=fr>tkeo2qNG&SZKG}8GJ>k zmNad}Y@YWMlS8*@zDu3xyMNPt?MAc75b?c`#X<R(G&X#Uf3ZO$FXd0XuX*`&cRr=W z{bWn4B~4yJl%0Y)N5O70Q8;9}1GlTyzNiG#<$;ER%2Q;QcY;y2!U`ZJP!H60yC8zi z#1k3lxxsotR@73=4+5>IH5*ml)MEevbXm9S*IfrE8`o4~4UiV54LKGCIkrT>?OHRu zR0L*ZaUBnn<?uWw9Y-24VfRE1E4u%KpSunDApXXS<kXClg(C6e&Us*-wU&r;srODQ z_Az!}T$yQJD{v#K_vCgc7)>YB1E7f6i_R3Zex(^hMdj9=7?4f>`Mo{hNDfk)Qo}%` zCqR$SC;5+)m-j?^C+Ejz&$IE{BzK3W)p@n#Pi3?-!My+f#e-!S|6M$&I5&yTt*fSs z(H3QjQJ=3$-I3QND$F;we`z~XdD8vF2FM|Vnf#vU8b{Na0HAi24TVKxxav@=+k^jP z*M1G7r<4Zqqk@{<HLqS?E<TON4m;#$8q^eE)x-rTOiYZuxMAkJD=nUvp+Q<`l7OaN zpE$oRfcE}0Z%S8w_+^Ag`c*A?U|rgjS`P3~466x{BG+F1$~kR^JV4DH)ql(!!-mg7 zYrWR<ZQAr^*7;Y$zljk!X3n>RfH?<BXZSiJzP6D|s`^DAg10?<V$5_NXX#F|D)wJ^ z<_(hxRoF#s&?GRqhYy_p*MNIyd$gDCxwz~~yk3>R^xG+uX5~gZh1{CAHU1}fxBsT^ zdyY%lud(1>Z3i5g*zj%j6o0jyk5|7wx~rJ|)7`Z55>Km6eo8%+cvYC;33$Wo`|`3m zfpwOWR*9?DZ}xgBCuw^te7*L>`JT!x>sX=VZp_hJ?)oc=FVUT9Rhy9T;)H{riAk8~ z?PnVq_UyiPe`Vlu<0$4gx)<eTb3OjP6JCGg#_#w#hun4g-giIVJ?O;Qu)}|cs@kfe z`>$X2PBDAy>G3N&=1$WgUi+}wPq(K}{oLN&eDcDTgx{;%SA9FT{z+zV)t_kxo_b&3 zQxv}XU4`4yxBLPIkAWvtnelc-Zu^sedhXI=T|Ke8`Tq0CZ98&Cx_XbO{Qp0}c_(F0 z|F2pP8aCUM9PQ*czqBtequTFJ+Wn=4<$DXJZ@v*Q@7vvX%15~>7h|rgyFc6i%u@Te zwpLkJFWvrZe=9I2=j^S`p2Ee~owKi7IAxbUTlm*=+Wp^#AE1i~gEGDxex1j@%Ky)g zrOmEN4A_?TiS~TTj1DXcy0Xc%e&0>!1;?IUisyghu}x=FW$$de9Y%%=H|1+DU8R-y zYw`P*-yeK;{(e-iIkh2n{-b&MZ(SroTl#S<Mch@l{O07OpS7CbrpHuIeZ&xAGSlje ztnA%){HZeiJ!P^woAz!rcLP@ZcB}6@E{rXD?4_9RaQkz&_L+aG%e!*g!~Q>=IhEZF zUVI!{#lQNW4)6qsr;|OO{do0FE7#Z8rug?N>F2-F-mDGMiC-oYX1mt)yDexl|F-+0 zk9s~mMqhupCg_!Z%Z2=I@N&DQ@eBW-gAJp-J$d!&)}>3AmWu!n^wp1f@J4+;x6Q}z z`R8uPd1gEQS!Vz7(S*t8^Sn2m&8xc)I^1NvS=jzB)9Z4@FW%YlY2{0C`>MZ3RG)LK z`Mc>+xHW(H?XPkFSN8(juokbv6%`d(Sy}fk=7?q8^cu7k`a<diul~K?r{8ldIUDQ$ z*Qw^1|95@st;>IDojI{?xy^~4_g(|<5Bke^Jv{ZnFX%pMogJW|w4(FTu#vQub*8xY zQm^9q^AWZIJGL0KF<SA<|J&=6fzid#;P~&_<r{%wj0`eAK?Bh4`?!D`1SYO$Vqho` ZnYJxgOk|xa@D4-<22WQ%mvv4FO#qeIRtNw9 literal 0 HcmV?d00001 diff --git a/doc/memoryAnalysis/puncover-all-symbols.png b/doc/memoryAnalysis/puncover-all-symbols.png new file mode 100644 index 0000000000000000000000000000000000000000..6a9842485dd9be2906520fe8fbff581137010b01 GIT binary patch literal 78193 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	!L-V=8p+~nY-wO|J$yQ5ahLp?Ps93wHg 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 R&RzaT;k7ET_?7XOe*x&=>bC#@ literal 0 HcmV?d00001 diff --git a/doc/memoryAnalysis/puncover.png b/doc/memoryAnalysis/puncover.png new file mode 100644 index 0000000000000000000000000000000000000000..b32e1784de6eb500c7700679211c7e7511598b1f GIT binary patch literal 217193 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 literal 0 HcmV?d00001 From 8fb543f4c3174372f2f373b342a20d394cb58597 Mon Sep 17 00:00:00 2001 From: Joel Bradshaw <cincodenada@gmail.com> Date: Sat, 12 Jun 2021 02:05:57 -0700 Subject: [PATCH 12/58] Add note about getting GadgetBridge from F-Droid (#358) * Add note about getting GadgetBridge from F-Droid Hopefully this is useful and will save folks some frustration * Add note that GadgetBridge should be downloaded via F-Droid There's an "unofficial" version on the Play Store that is outdated and doesn't have PineTime support * Fix typo * Add starting version, reword a bit Initial support version is a little fuzzy, 0.47 states it's "not yet usable" but changelog doesn't specify when we've crossed the "usable" threshold. --- README.md | 2 +- doc/companionapps/Gadgetbridge.md | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 396d7462..755f1905 100644 --- a/README.md +++ b/README.md @@ -62,7 +62,7 @@ As of now, here is the list of achievements of this project: * Firmware validation * System information - Supported by 3 companion apps (development is in progress): - * [Gadgetbridge](https://codeberg.org/Freeyourgadget/Gadgetbridge/) (on Android) + * [Gadgetbridge](https://codeberg.org/Freeyourgadget/Gadgetbridge/) (on Android via F-Droid) * [Amazfish](https://openrepos.net/content/piggz/amazfish) (on SailfishOS and Linux) * [Siglo](https://github.com/alexr4535/siglo) (on Linux) * **[Experimental]** [WebBLEWatch](https://hubmartin.github.io/WebBLEWatch/) Synchronize time directly from your web browser. [video](https://youtu.be/IakiuhVDdrY) diff --git a/doc/companionapps/Gadgetbridge.md b/doc/companionapps/Gadgetbridge.md index 1a25069c..974e2828 100644 --- a/doc/companionapps/Gadgetbridge.md +++ b/doc/companionapps/Gadgetbridge.md @@ -1,7 +1,7 @@ # Integration with Gadgetbridge [Gadgetbridge](https://gadgetbridge.org/) is an Android application that supports many smartwatches and fitness trackers. -The integration of InfiniTime (previously Pinetime-JF) is now merged into the master branch (https://codeberg.org/Freeyourgadget/Gadgetbridge/). +The integration of InfiniTime (previously Pinetime-JF) is now merged into the master branch (https://codeberg.org/Freeyourgadget/Gadgetbridge/) and initial support is available [starting with version 0.47](https://codeberg.org/Freeyourgadget/Gadgetbridge/src/branch/master/CHANGELOG.md). Note that the official version is only available on F-Droid (as of May 2021), and the unofficial fork available on the Play Store is outdated and does not support Infinitime. ## Features The following features are implemented: From 2c7ad783fc0d37c534050321a13759a28f9b83f0 Mon Sep 17 00:00:00 2001 From: Itai Nelken <70802936+Itai-Nelken@users.noreply.github.com> Date: Sat, 12 Jun 2021 12:06:46 +0300 Subject: [PATCH 13/58] Improvements to /doc/filesInReleaseNotes.md (#357) * Update filesInReleaseNotes.md --- doc/filesInReleaseNotes.md | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/doc/filesInReleaseNotes.md b/doc/filesInReleaseNotes.md index f48a0c10..78c20b51 100644 --- a/doc/filesInReleaseNotes.md +++ b/doc/filesInReleaseNotes.md @@ -1,16 +1,16 @@ # Using the releases -For each new *stable* version of Pinetime, a [release note](https://github.com/JF002/InfiniTime/releases) is created. It contains a description of the main changes in the release and some files you can use to flash the firmware in your Pinetime. +For each new *stable* version of IniniTime, a [release note](https://github.com/JF002/InfiniTime/releases) is created. It contains a description of the main changes in the release and some files you can use to flash the firmware to your Pinetime. This page describes the files from the release notes and how to use them. -**NOTE :** the files included in different could be different. This page describes the release note of [version 0.7.1](https://github.com/JF002/InfiniTime/releases/tag/0.7.1), which is the version that'll probably be pre-programmed at the factory for the next batch of Pinetime devkits. +**NOTE :** the files included in different Releases could be different. This page describes the release notes of [version 0.7.1](https://github.com/JF002/InfiniTime/releases/tag/0.7.1), which is the version that is pre-programmed for the last batches of pinetimes but will be replaced with [1.0.0](https://github.com/jF002/infiniTime/releases/tag/1.0.0) around june 2021. -## Files included in the release note +## Files included in the release notes ### Standalone firmware -This firmware is standalone, meaning that it does not need a bootloader to actually run. It is intended to be flash at offset 0, meaning it will erase any bootloader that might be present in memory. +This firmware is standalone, meaning that it does not need a bootloader to actually run. It is intended to be flashed at offset 0, meaning it will erase any bootloader that might be present in memory. - - **pinetime-app.out** : Output file of GCC containing debug symbols, useful is you want to debug the firmware using GDB. + - **pinetime-app.out** : Output file of GCC containing debug symbols, useful if you want to debug the firmware using GDB. - **pinetime-app.hex** : Firmware in Intel HEX file format. Easier to use because it contains the offset in memory where it must be flashed, you don't need to specify it. - **pintime-app.bin** : Firmware in binary format. When programming it, you have to specify the offset (0x00) in memory where it must be flashed. - **pinetime-app.map** : Map file containing all the symbols, addresses in memory,... @@ -38,7 +38,7 @@ This firmware is a small utility firmware that writes the boot graphic in the ex ### Firmware with bootloader This firmware is intended to be used with our [MCUBoot-based bootloader](../bootloader/README.md). - - **pinetime-mcuboot-app-image.hex** : Firmware wrapped into an MCUBoot image. This is **the** file that must be flashed **@ 0x8000** into flash memory. If the [bootloader](../bootloader/README.md) has been successfully programmed, it should run this firmware after the next reset. + - **pinetime-mcuboot-app-image.hex**: Firmware wrapped into an MCUBoot image. This is **the** file that must be flashed at **0x8000** into the flash memory. If the [bootloader](../bootloader/README.md) has been successfully programmed, it should run this firmware after the next reset. The following files are not directly usable by the bootloader: From 4d1626e3b6133e1b07c67749ac5037905e72270b Mon Sep 17 00:00:00 2001 From: Jonathan Vander Mey <jonathan@vandermey.ca> Date: Sat, 12 Jun 2021 05:07:23 -0400 Subject: [PATCH 14/58] Fix fallthrough on case statement (#403) --- src/drivers/SpiMaster.cpp | 1 + 1 file changed, 1 insertion(+) diff --git a/src/drivers/SpiMaster.cpp b/src/drivers/SpiMaster.cpp index 0d5bb83c..c45e1294 100644 --- a/src/drivers/SpiMaster.cpp +++ b/src/drivers/SpiMaster.cpp @@ -56,6 +56,7 @@ bool SpiMaster::Init() { break; case BitOrder::Lsb_Msb: regConfig = 1; + break; default: return false; } From 772ea0b5916903663ed6e01a7fb439dcc73d61a6 Mon Sep 17 00:00:00 2001 From: Jonathan Vander Mey <jonathan@vandermey.ca> Date: Sat, 12 Jun 2021 05:10:10 -0400 Subject: [PATCH 15/58] Replace raw new expressions with make_unique (#406) Using make_unique avoids needing to repeat type information making it less verbose. Also fixes clang-tidy warning modernize-make-unique. From bf906bd573b37e0bb592221dae6b5f156836a6b6 Mon Sep 17 00:00:00 2001 From: Riku Isokoski <riksu9000@gmail.com> Date: Sat, 12 Jun 2021 12:12:39 +0300 Subject: [PATCH 16/58] Fix scrollbar (#382) --- src/displayapp/screens/SystemInfo.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/displayapp/screens/SystemInfo.cpp b/src/displayapp/screens/SystemInfo.cpp index a7387dac..a0b626e9 100644 --- a/src/displayapp/screens/SystemInfo.cpp +++ b/src/displayapp/screens/SystemInfo.cpp @@ -161,7 +161,7 @@ std::unique_ptr<Screen> SystemInfo::CreateScreen2() { brightnessController.ToString(), resetReason); lv_obj_align(label, lv_scr_act(), LV_ALIGN_CENTER, 0, 0); - return std::make_unique<Screens::Label>(1, 4, app, label); + return std::make_unique<Screens::Label>(1, 5, app, label); } std::unique_ptr<Screen> SystemInfo::CreateScreen3() { From 44d7c6d00f3ec919c6f70d32d084c26539aa58aa Mon Sep 17 00:00:00 2001 From: Roxxor91 <Roxxor91@users.noreply.github.com> Date: Sat, 12 Jun 2021 11:15:39 +0200 Subject: [PATCH 17/58] Update Amazfish.md (#386) Add Navigation feature. --- doc/companionapps/Amazfish.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/doc/companionapps/Amazfish.md b/doc/companionapps/Amazfish.md index eb9daa04..90ad20c2 100644 --- a/doc/companionapps/Amazfish.md +++ b/doc/companionapps/Amazfish.md @@ -8,8 +8,9 @@ The following features are implemented: - Time synchronization - Notifications - Music control + - Navigation with Puremaps ## Demo [This video](https://seafile.codingfield.com/f/21c5d023452740279e36/) shows how to connect to the Pinetime and control the playback of the music on the phone. Amazfish and Sailfish OS are running on the [Pinephone](https://www.pine64.org/pinephone/), another awesome device from Pine64. - \ No newline at end of file + From d4f4ed014cecb600a5fb8541cff1f01bf2c46d54 Mon Sep 17 00:00:00 2001 From: Pekka <85409219+pekkakr@users.noreply.github.com> Date: Sat, 12 Jun 2021 12:16:54 +0300 Subject: [PATCH 18/58] Update buildWithDocker.md (#416) Added a link to instructions for cloning the repo. The purpose was mainly to remind of the git submodule update. --- doc/buildWithDocker.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/doc/buildWithDocker.md b/doc/buildWithDocker.md index 7a2f3727..17fb53d9 100644 --- a/doc/buildWithDocker.md +++ b/doc/buildWithDocker.md @@ -13,7 +13,7 @@ Based on Ubuntu 18.04 with the following build dependencies: The `infinitime-build` image contains all the dependencies you need. The default `CMD` will compile sources found in `/sources`, so you need only mount your code. -This example will build the firmware, generate the MCUBoot image and generate the DFU file. Outputs will be written to **<project_root>/build/output**: +This example will build the firmware, generate the MCUBoot image and generate the DFU file. For cloning the repo, see [these instructions](../doc/buildAndProgram.md#clone-the-repo). Outputs will be written to **<project_root>/build/output**: ```bash cd <project_root> # e.g. cd ./work/Pinetime From 314a8ebba070bd935c795cea2955d494f002797f Mon Sep 17 00:00:00 2001 From: Avamander <avamander@gmail.com> Date: Sat, 12 Jun 2021 12:18:19 +0300 Subject: [PATCH 19/58] Changed the namespace of SystemInfo::sortById to avoid a name conflict (#360) --- src/displayapp/DisplayApp.cpp | 2 -- src/displayapp/screens/SystemInfo.cpp | 2 +- src/displayapp/screens/SystemInfo.h | 3 +++ 3 files changed, 4 insertions(+), 3 deletions(-) diff --git a/src/displayapp/DisplayApp.cpp b/src/displayapp/DisplayApp.cpp index 05f171be..01e26e22 100644 --- a/src/displayapp/DisplayApp.cpp +++ b/src/displayapp/DisplayApp.cpp @@ -331,8 +331,6 @@ void DisplayApp::LoadApp(Apps app, DisplayApp::FullRefreshDirections direction) std::make_unique<Screens::SystemInfo>(this, dateTimeController, batteryController, brightnessController, bleController, watchdog); ReturnApp(Apps::Settings, FullRefreshDirections::Down, TouchEvents::SwipeDown); break; - // - case Apps::FlashLight: currentScreen = std::make_unique<Screens::FlashLight>(this, *systemTask, brightnessController); ReturnApp(Apps::Clock, FullRefreshDirections::Down, TouchEvents::None); diff --git a/src/displayapp/screens/SystemInfo.cpp b/src/displayapp/screens/SystemInfo.cpp index a0b626e9..9ff28288 100644 --- a/src/displayapp/screens/SystemInfo.cpp +++ b/src/displayapp/screens/SystemInfo.cpp @@ -198,7 +198,7 @@ std::unique_ptr<Screen> SystemInfo::CreateScreen3() { return std::make_unique<Screens::Label>(2, 5, app, label); } -bool sortById(const TaskStatus_t& lhs, const TaskStatus_t& rhs) { +bool SystemInfo::sortById(const TaskStatus_t& lhs, const TaskStatus_t& rhs) { return lhs.xTaskNumber < rhs.xTaskNumber; } diff --git a/src/displayapp/screens/SystemInfo.h b/src/displayapp/screens/SystemInfo.h index c0c65554..c61a07a2 100644 --- a/src/displayapp/screens/SystemInfo.h +++ b/src/displayapp/screens/SystemInfo.h @@ -43,6 +43,9 @@ namespace Pinetime { Pinetime::Drivers::WatchdogView& watchdog; ScreenList<5> screens; + + static bool sortById(const TaskStatus_t& lhs, const TaskStatus_t& rhs); + std::unique_ptr<Screen> CreateScreen1(); std::unique_ptr<Screen> CreateScreen2(); std::unique_ptr<Screen> CreateScreen3(); From d7962617e47c221b6274af53b9488e5280c8d2d8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jean-Fran=C3=A7ois=20Milants?= <jf@codingfield.com> Date: Sat, 12 Jun 2021 14:21:29 +0200 Subject: [PATCH 20/58] Clock : initialize the actual clockface in initialization list instead of in the core of the ctro(). --- src/displayapp/screens/Clock.cpp | 31 ++++++++++++------------------- 1 file changed, 12 insertions(+), 19 deletions(-) diff --git a/src/displayapp/screens/Clock.cpp b/src/displayapp/screens/Clock.cpp index 9962a9f4..05e47a39 100644 --- a/src/displayapp/screens/Clock.cpp +++ b/src/displayapp/screens/Clock.cpp @@ -32,25 +32,18 @@ Clock::Clock(DisplayApp* app, notificatioManager {notificatioManager}, settingsController {settingsController}, heartRateController {heartRateController}, - motionController {motionController} { - - switch (settingsController.GetClockFace()) { - case 0: - screen = WatchFaceDigitalScreen(); - break; - case 1: - screen = WatchFaceAnalogScreen(); - break; - /* - // Examples for more watch faces - case 2: - screen = WatchFaceMinimalScreen(); - break; - case 3: - screen = WatchFaceCustomScreen(); - break; - */ - } + motionController {motionController}, + screen {[this, &settingsController]() { + switch (settingsController.GetClockFace()) { + case 0: + return WatchFaceDigitalScreen(); + break; + case 1: + return WatchFaceAnalogScreen(); + break; + } + return WatchFaceDigitalScreen(); + }()} { settingsController.SetAppMenu(0); } From c575754b4283ab1e8a2b1320a97992db6712ac58 Mon Sep 17 00:00:00 2001 From: Bryton Hall <email@bryton.io> Date: Sat, 12 Jun 2021 09:06:58 -0400 Subject: [PATCH 21/58] add basic metronome app (#409) * add basic metronome app * add bpb, tap to bpm, update widgets * use event pressed for bpm tap * move case statement break to the right place * narrow bpm selection range, override touch events * fix arc knob style * re-enable sleeping in destructor --- src/CMakeLists.txt | 2 + src/displayapp/Apps.h | 1 + src/displayapp/DisplayApp.cpp | 8 +- src/displayapp/lv_pinetime_theme.c | 13 ++ src/displayapp/screens/ApplicationList.cpp | 2 +- src/displayapp/screens/Metronome.cpp | 169 +++++++++++++++++++++ src/displayapp/screens/Metronome.h | 34 +++++ 7 files changed, 226 insertions(+), 3 deletions(-) create mode 100644 src/displayapp/screens/Metronome.cpp create mode 100644 src/displayapp/screens/Metronome.h diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index c72f7c9c..71909d7d 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -396,6 +396,7 @@ list(APPEND SOURCE_FILES displayapp/screens/FirmwareUpdate.cpp displayapp/screens/Music.cpp displayapp/screens/Navigation.cpp + displayapp/screens/Metronome.cpp displayapp/screens/Motion.cpp displayapp/screens/FirmwareValidation.cpp displayapp/screens/ApplicationList.cpp @@ -592,6 +593,7 @@ set(INCLUDE_FILES displayapp/Apps.h displayapp/screens/Notifications.h displayapp/screens/HeartRate.h + displayapp/screens/Metronome.h displayapp/screens/Motion.h displayapp/screens/Timer.h drivers/St7789.h diff --git a/src/displayapp/Apps.h b/src/displayapp/Apps.h index 2df517f8..684e3a46 100644 --- a/src/displayapp/Apps.h +++ b/src/displayapp/Apps.h @@ -21,6 +21,7 @@ namespace Pinetime { HeartRate, Navigation, StopWatch, + Metronome, Motion, Steps, QuickSettings, diff --git a/src/displayapp/DisplayApp.cpp b/src/displayapp/DisplayApp.cpp index 01e26e22..cd25c979 100644 --- a/src/displayapp/DisplayApp.cpp +++ b/src/displayapp/DisplayApp.cpp @@ -18,6 +18,7 @@ #include "displayapp/screens/Paddle.h" #include "displayapp/screens/StopWatch.h" #include "displayapp/screens/Meter.h" +#include "displayapp/screens/Metronome.h" #include "displayapp/screens/Music.h" #include "displayapp/screens/Navigation.h" #include "displayapp/screens/Notifications.h" @@ -318,7 +319,7 @@ void DisplayApp::LoadApp(Apps app, DisplayApp::FullRefreshDirections direction) currentScreen = std::make_unique<Screens::SettingDisplay>(this, settingsController); ReturnApp(Apps::Settings, FullRefreshDirections::Down, TouchEvents::SwipeDown); break; - case Apps::SettingSteps: + case Apps::SettingSteps: currentScreen = std::make_unique<Screens::SettingSteps>(this, settingsController); ReturnApp(Apps::Settings, FullRefreshDirections::Down, TouchEvents::SwipeDown); break; @@ -356,10 +357,13 @@ void DisplayApp::LoadApp(Apps app, DisplayApp::FullRefreshDirections direction) case Apps::HeartRate: currentScreen = std::make_unique<Screens::HeartRate>(this, heartRateController, *systemTask); break; + case Apps::Metronome: + currentScreen = std::make_unique<Screens::Metronome>(this, motorController, systemTask); + break; case Apps::Motion: currentScreen = std::make_unique<Screens::Motion>(this, motionController); break; - case Apps::Steps: + case Apps::Steps: currentScreen = std::make_unique<Screens::Steps>(this, motionController, settingsController); break; } diff --git a/src/displayapp/lv_pinetime_theme.c b/src/displayapp/lv_pinetime_theme.c index b003a411..1b8b1980 100644 --- a/src/displayapp/lv_pinetime_theme.c +++ b/src/displayapp/lv_pinetime_theme.c @@ -48,6 +48,7 @@ static lv_style_t style_sw_bg; static lv_style_t style_sw_indic; static lv_style_t style_sw_knob; static lv_style_t style_arc_bg; +static lv_style_t style_arc_knob; static lv_style_t style_arc_indic; static lv_style_t style_table_cell; static lv_style_t style_pad_small; @@ -191,6 +192,7 @@ static void basic_init(void) { lv_style_set_text_line_space(&style_ddlist_list, LV_STATE_DEFAULT, LV_VER_RES / 25); lv_style_set_shadow_width(&style_ddlist_list, LV_STATE_DEFAULT, LV_VER_RES / 20); lv_style_set_shadow_color(&style_ddlist_list, LV_STATE_DEFAULT, LV_PINETIME_GRAY); + lv_style_set_bg_color(&style_ddlist_list, LV_STATE_DEFAULT, LV_PINETIME_GRAY); style_init_reset(&style_ddlist_selected); lv_style_set_bg_opa(&style_ddlist_selected, LV_STATE_DEFAULT, LV_OPA_COVER); @@ -239,6 +241,13 @@ static void basic_init(void) { lv_style_set_line_color(&style_arc_bg, LV_STATE_DEFAULT, LV_PINETIME_GRAY); lv_style_set_line_width(&style_arc_bg, LV_STATE_DEFAULT, LV_DPX(25)); lv_style_set_line_rounded(&style_arc_bg, LV_STATE_DEFAULT, true); + lv_style_set_pad_all(&style_arc_bg, LV_STATE_DEFAULT, LV_DPX(5)); + + lv_style_reset(&style_arc_knob); + lv_style_set_radius(&style_arc_knob, LV_STATE_DEFAULT, LV_RADIUS_CIRCLE); + lv_style_set_bg_opa(&style_arc_knob, LV_STATE_DEFAULT, LV_OPA_COVER); + lv_style_set_bg_color(&style_arc_knob, LV_STATE_DEFAULT, LV_PINETIME_LIGHT_GRAY); + lv_style_set_pad_all(&style_arc_knob, LV_STATE_DEFAULT, LV_DPX(5)); style_init_reset(&style_table_cell); lv_style_set_border_color(&style_table_cell, LV_STATE_DEFAULT, LV_PINETIME_GRAY); @@ -447,6 +456,10 @@ static void theme_apply(lv_obj_t* obj, lv_theme_style_t name) { lv_obj_clean_style_list(obj, LV_ARC_PART_INDIC); list = lv_obj_get_style_list(obj, LV_ARC_PART_INDIC); _lv_style_list_add_style(list, &style_arc_indic); + + lv_obj_clean_style_list(obj, LV_ARC_PART_KNOB); + list = lv_obj_get_style_list(obj, LV_ARC_PART_KNOB); + _lv_style_list_add_style(list, &style_arc_knob); break; case LV_THEME_SWITCH: diff --git a/src/displayapp/screens/ApplicationList.cpp b/src/displayapp/screens/ApplicationList.cpp index d599f5cc..d434c177 100644 --- a/src/displayapp/screens/ApplicationList.cpp +++ b/src/displayapp/screens/ApplicationList.cpp @@ -63,7 +63,7 @@ std::unique_ptr<Screen> ApplicationList::CreateScreen2() { {Symbols::paddle, Apps::Paddle}, {"2", Apps::Twos}, {"M", Apps::Motion}, - {"", Apps::None}, + {"b", Apps::Metronome}, {"", Apps::None}, }}; diff --git a/src/displayapp/screens/Metronome.cpp b/src/displayapp/screens/Metronome.cpp new file mode 100644 index 00000000..c536e301 --- /dev/null +++ b/src/displayapp/screens/Metronome.cpp @@ -0,0 +1,169 @@ +#include "Metronome.h" + +#include "Screen.h" +#include "Symbols.h" +#include "lvgl/lvgl.h" +#include "FreeRTOSConfig.h" +#include "task.h" + +#include <string> +#include <tuple> + +using namespace Pinetime::Applications::Screens; + +namespace { + float calculateDelta(const TickType_t startTime, const TickType_t currentTime) { + TickType_t delta = 0; + // Take care of overflow + if (startTime > currentTime) { + delta = 0xffffffff - startTime; + delta += (currentTime + 1); + } else { + delta = currentTime - startTime; + } + return static_cast<float>(delta) / static_cast<float>(configTICK_RATE_HZ); + } + + static void eventHandler(lv_obj_t* obj, lv_event_t event) { + Metronome* screen = static_cast<Metronome*>(obj->user_data); + screen->OnEvent(obj, event); + } + + lv_obj_t* createLabel(const char* name, lv_obj_t* reference, lv_align_t align, lv_font_t* font, uint8_t x = 0, uint8_t y = 0) { + lv_obj_t* label = lv_label_create(lv_scr_act(), nullptr); + lv_obj_set_style_local_text_font(label, LV_LABEL_PART_MAIN, LV_STATE_DEFAULT, font); + lv_obj_set_style_local_text_color(label, LV_LABEL_PART_MAIN, LV_STATE_DEFAULT, LV_COLOR_GRAY); + lv_label_set_text(label, name); + lv_obj_align(label, reference, align, x, y); + + return label; + } +} + +Metronome::Metronome(DisplayApp* app, Controllers::MotorController& motorController, System::SystemTask& systemTask) + : Screen(app), running {true}, currentState {States::Stopped}, startTime {}, motorController {motorController}, systemTask {systemTask} { + + bpmArc = lv_arc_create(lv_scr_act(), nullptr); + bpmArc->user_data = this; + lv_obj_set_event_cb(bpmArc, eventHandler); + lv_arc_set_bg_angles(bpmArc, 0, 270); + lv_arc_set_rotation(bpmArc, 135); + lv_arc_set_range(bpmArc, 40, 220); + lv_arc_set_value(bpmArc, bpm); + lv_obj_set_size(bpmArc, 210, 210); + lv_arc_set_adjustable(bpmArc, true); + lv_obj_align(bpmArc, lv_scr_act(), LV_ALIGN_IN_TOP_MID, 0, 7); + + bpmValue = createLabel(std::to_string(lv_arc_get_value(bpmArc)).c_str(), bpmArc, LV_ALIGN_IN_TOP_MID, &jetbrains_mono_76, 0, 55); + bpmLegend = createLabel("bpm", bpmValue, LV_ALIGN_OUT_BOTTOM_MID, &jetbrains_mono_bold_20, 0, 0); + + bpmTap = lv_btn_create(lv_scr_act(), nullptr); + bpmTap->user_data = this; + lv_obj_set_event_cb(bpmTap, eventHandler); + lv_obj_set_style_local_bg_opa(bpmTap, LV_BTN_PART_MAIN, LV_STATE_DEFAULT, LV_OPA_TRANSP); + lv_obj_set_height(bpmTap, 80); + lv_obj_align(bpmTap, bpmValue, LV_ALIGN_IN_TOP_MID, 0, 0); + + bpbDropdown = lv_dropdown_create(lv_scr_act(), nullptr); + bpbDropdown->user_data = this; + lv_obj_set_event_cb(bpbDropdown, eventHandler); + lv_obj_set_style_local_pad_left(bpbDropdown, LV_DROPDOWN_PART_MAIN, LV_STATE_DEFAULT, 20); + lv_obj_set_style_local_pad_left(bpbDropdown, LV_DROPDOWN_PART_LIST, LV_STATE_DEFAULT, 20); + lv_obj_align(bpbDropdown, lv_scr_act(), LV_ALIGN_IN_BOTTOM_LEFT, 15, -4); + lv_dropdown_set_options(bpbDropdown, "1\n2\n3\n4\n5\n6\n7\n8\n9"); + lv_dropdown_set_selected(bpbDropdown, bpb - 1); + bpbLegend = lv_label_create(bpbDropdown, nullptr); + lv_label_set_text(bpbLegend, "bpb"); + lv_obj_align(bpbLegend, bpbDropdown, LV_ALIGN_IN_RIGHT_MID, -15, 0); + + playPause = lv_btn_create(lv_scr_act(), nullptr); + playPause->user_data = this; + lv_obj_set_event_cb(playPause, eventHandler); + lv_obj_align(playPause, lv_scr_act(), LV_ALIGN_IN_BOTTOM_RIGHT, -15, -10); + lv_obj_set_height(playPause, 39); + playPauseLabel = lv_label_create(playPause, nullptr); + lv_label_set_text(playPauseLabel, Symbols::play); + + app->SetTouchMode(DisplayApp::TouchModes::Polling); +} + +Metronome::~Metronome() { + app->SetTouchMode(DisplayApp::TouchModes::Gestures); + systemTask.PushMessage(Pinetime::System::SystemTask::Messages::EnableSleeping); + lv_obj_clean(lv_scr_act()); +} + +bool Metronome::OnTouchEvent(Pinetime::Applications::TouchEvents event) { + return true; +} + +bool Metronome::Refresh() { + switch (currentState) { + case States::Stopped: { + break; + } + case States::Running: { + if (calculateDelta(startTime, xTaskGetTickCount()) >= (60.0 / bpm)) { + counter--; + startTime -= 60.0 / bpm; + startTime = xTaskGetTickCount(); + if (counter == 0) { + counter = bpb; + motorController.SetDuration(90); + } else { + motorController.SetDuration(30); + } + } + break; + } + } + return running; +} + +void Metronome::OnEvent(lv_obj_t* obj, lv_event_t event) { + switch (event) { + case LV_EVENT_VALUE_CHANGED: { + if (obj == bpmArc) { + bpm = lv_arc_get_value(bpmArc); + lv_label_set_text_fmt(bpmValue, "%03d", bpm); + } else if (obj == bpbDropdown) { + bpb = lv_dropdown_get_selected(obj) + 1; + } + break; + } + case LV_EVENT_PRESSED: { + if (obj == bpmTap) { + float timeDelta = calculateDelta(tappedTime, xTaskGetTickCount()); + if (tappedTime == 0 || timeDelta > 3) { + tappedTime = xTaskGetTickCount(); + } else { + bpm = ceil(60.0 / timeDelta); + lv_arc_set_value(bpmArc, bpm); + lv_label_set_text_fmt(bpmValue, "%03d", bpm); + tappedTime = xTaskGetTickCount(); + } + } + break; + } + case LV_EVENT_CLICKED: { + if (obj == playPause) { + currentState = (currentState == States::Stopped ? States::Running : States::Stopped); + switch (currentState) { + case States::Stopped: { + lv_label_set_text(playPauseLabel, Symbols::play); + systemTask.PushMessage(Pinetime::System::SystemTask::Messages::EnableSleeping); + break; + } + case States::Running: { + lv_label_set_text(playPauseLabel, Symbols::pause); + systemTask.PushMessage(Pinetime::System::SystemTask::Messages::DisableSleeping); + startTime = xTaskGetTickCount(); + counter = 1; + break; + } + } + } + break; + } + } +} diff --git a/src/displayapp/screens/Metronome.h b/src/displayapp/screens/Metronome.h new file mode 100644 index 00000000..3a1f1084 --- /dev/null +++ b/src/displayapp/screens/Metronome.h @@ -0,0 +1,34 @@ +#pragma once + +#include "systemtask/SystemTask.h" +#include "components/motor/MotorController.h" + +#include <array> + +namespace Pinetime::Applications::Screens { + + class Metronome : public Screen { + public: + Metronome(DisplayApp* app, Controllers::MotorController& motorController, System::SystemTask& systemTask); + ~Metronome() override; + bool Refresh() override; + bool OnTouchEvent(TouchEvents event) override; + void OnEvent(lv_obj_t* obj, lv_event_t event); + enum class States { Running, Stopped }; + + private: + bool running; + States currentState; + TickType_t startTime; + TickType_t tappedTime = 0; + Controllers::MotorController& motorController; + System::SystemTask& systemTask; + uint16_t bpm = 120; + uint8_t bpb = 4; + uint8_t counter = 1; + + lv_obj_t *bpmArc, *bpmTap, *bpmValue, *bpmLegend; + lv_obj_t *bpbDropdown, *bpbLegend; + lv_obj_t *playPause, *playPauseLabel; + }; +} From d6fcbe960e595e53e3f24cbaae0cbb0505ad6dc2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jean-Fran=C3=A7ois=20Milants?= <jf@codingfield.com> Date: Sat, 12 Jun 2021 15:14:14 +0200 Subject: [PATCH 22/58] Fix build issues since Metronome app has been merged. --- src/displayapp/DisplayApp.cpp | 2 +- src/displayapp/screens/Metronome.cpp | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/displayapp/DisplayApp.cpp b/src/displayapp/DisplayApp.cpp index cd25c979..ab73969d 100644 --- a/src/displayapp/DisplayApp.cpp +++ b/src/displayapp/DisplayApp.cpp @@ -358,7 +358,7 @@ void DisplayApp::LoadApp(Apps app, DisplayApp::FullRefreshDirections direction) currentScreen = std::make_unique<Screens::HeartRate>(this, heartRateController, *systemTask); break; case Apps::Metronome: - currentScreen = std::make_unique<Screens::Metronome>(this, motorController, systemTask); + currentScreen = std::make_unique<Screens::Metronome>(this, motorController, *systemTask); break; case Apps::Motion: currentScreen = std::make_unique<Screens::Motion>(this, motionController); diff --git a/src/displayapp/screens/Metronome.cpp b/src/displayapp/screens/Metronome.cpp index c536e301..7bfbccb7 100644 --- a/src/displayapp/screens/Metronome.cpp +++ b/src/displayapp/screens/Metronome.cpp @@ -89,7 +89,7 @@ Metronome::Metronome(DisplayApp* app, Controllers::MotorController& motorControl Metronome::~Metronome() { app->SetTouchMode(DisplayApp::TouchModes::Gestures); - systemTask.PushMessage(Pinetime::System::SystemTask::Messages::EnableSleeping); + systemTask.PushMessage(System::Messages::EnableSleeping); lv_obj_clean(lv_scr_act()); } @@ -151,12 +151,12 @@ void Metronome::OnEvent(lv_obj_t* obj, lv_event_t event) { switch (currentState) { case States::Stopped: { lv_label_set_text(playPauseLabel, Symbols::play); - systemTask.PushMessage(Pinetime::System::SystemTask::Messages::EnableSleeping); + systemTask.PushMessage(System::Messages::EnableSleeping); break; } case States::Running: { lv_label_set_text(playPauseLabel, Symbols::pause); - systemTask.PushMessage(Pinetime::System::SystemTask::Messages::DisableSleeping); + systemTask.PushMessage(System::Messages::DisableSleeping); startTime = xTaskGetTickCount(); counter = 1; break; From dbc2d234058226c42b79e35cb8f6576ac3bf709f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jean-Fran=C3=A7ois=20Milants?= <jf@codingfield.com> Date: Sat, 12 Jun 2021 18:00:42 +0200 Subject: [PATCH 23/58] Add Init() in DummyuLittleVgl to fix recovery firmware --- src/displayapp/DummyLittleVgl.h | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/displayapp/DummyLittleVgl.h b/src/displayapp/DummyLittleVgl.h index 96cf153f..016165b8 100644 --- a/src/displayapp/DummyLittleVgl.h +++ b/src/displayapp/DummyLittleVgl.h @@ -19,6 +19,10 @@ namespace Pinetime { LittleVgl(LittleVgl&&) = delete; LittleVgl& operator=(LittleVgl&&) = delete; + void Init() { + + } + void FlushDisplay(const lv_area_t* area, lv_color_t* color_p) { } bool GetTouchPadInfo(lv_indev_data_t* ptr) { From 006771699fc5c1a0906920fd16998ec5295227ac Mon Sep 17 00:00:00 2001 From: Jonathan Vander Mey <jonathan@vandermey.ca> Date: Mon, 24 May 2021 18:16:30 -0400 Subject: [PATCH 24/58] Remove infinitime-nb.c from source list Was causing compiler warning for unused constant variable when being compiled. This feel is directly included where it's needed so it doesn't need to be separately compiled anyways. --- src/CMakeLists.txt | 2 -- 1 file changed, 2 deletions(-) diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 71909d7d..7721d6b8 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -532,7 +532,6 @@ list(APPEND RECOVERY_SOURCE_FILES systemtask/SystemTask.cpp drivers/TwiMaster.cpp components/gfx/Gfx.cpp - displayapp/icons/infinitime/infinitime-nb.c components/rle/RleDecoder.cpp components/heartrate/HeartRateController.cpp heartratetask/HeartRateTask.cpp @@ -559,7 +558,6 @@ list(APPEND RECOVERYLOADER_SOURCE_FILES drivers/St7789.cpp components/brightness/BrightnessController.cpp - displayapp/icons/infinitime/infinitime-nb.c recoveryLoader.cpp ) From e90e8c7426f9a44e696b208a5b393a60476a3d43 Mon Sep 17 00:00:00 2001 From: Jonathan Vander Mey <jonathan@vandermey.ca> Date: Mon, 24 May 2021 18:17:56 -0400 Subject: [PATCH 25/58] Fix signed/unsigned comparison warning Changed type of encodedBufferIndex to size_t to eliminate warning. It is fine as a size_t as its only ever compared to another size_t and used as an array index. --- src/components/rle/RleDecoder.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/components/rle/RleDecoder.h b/src/components/rle/RleDecoder.h index 0f607fb8..31c1ed10 100644 --- a/src/components/rle/RleDecoder.h +++ b/src/components/rle/RleDecoder.h @@ -21,7 +21,7 @@ namespace Pinetime { const uint8_t* buffer; size_t size; - int encodedBufferIndex = 0; + size_t encodedBufferIndex = 0; int y = 0; uint16_t bp = 0; uint16_t foregroundColor = 0xffff; From c6dca25b9fa30af989baf748f6c32b38eaa95bac Mon Sep 17 00:00:00 2001 From: JF002 <JF002@users.noreply.github.com> Date: Sat, 19 Jun 2021 20:27:59 +0200 Subject: [PATCH 26/58] Add support for BMA425 acceleration sensor. (#440) * Add support for BMA425 acceleration sensor. --- src/components/motion/MotionController.cpp | 7 + src/components/motion/MotionController.h | 14 + src/displayapp/DisplayApp.cpp | 2 +- src/displayapp/screens/SystemInfo.cpp | 27 +- src/displayapp/screens/SystemInfo.h | 4 +- src/drivers/Bma421.cpp | 9 + src/drivers/Bma421.h | 7 + src/drivers/Bma421_C/bma423.c | 560 ++++++++++++++++++++- src/drivers/Bma421_C/bma423.h | 1 + src/systemtask/SystemTask.cpp | 1 + 10 files changed, 603 insertions(+), 29 deletions(-) diff --git a/src/components/motion/MotionController.cpp b/src/components/motion/MotionController.cpp index e9ee314b..b0dbada4 100644 --- a/src/components/motion/MotionController.cpp +++ b/src/components/motion/MotionController.cpp @@ -34,3 +34,10 @@ bool MotionController::ShouldWakeUp(bool isSleeping) { void MotionController::IsSensorOk(bool isOk) { isSensorOk = isOk; } +void MotionController::Init(Pinetime::Drivers::Bma421::DeviceTypes types) { + switch(types){ + case Drivers::Bma421::DeviceTypes::BMA421: this->deviceType = DeviceTypes::BMA421; break; + case Drivers::Bma421::DeviceTypes::BMA425: this->deviceType = DeviceTypes::BMA425; break; + default: this->deviceType = DeviceTypes::Unknown; break; + } +} diff --git a/src/components/motion/MotionController.h b/src/components/motion/MotionController.h index 3a238262..ff715093 100644 --- a/src/components/motion/MotionController.h +++ b/src/components/motion/MotionController.h @@ -1,11 +1,18 @@ #pragma once #include <cstdint> +#include <drivers/Bma421.h> namespace Pinetime { namespace Controllers { class MotionController { public: + enum class DeviceTypes{ + Unknown, + BMA421, + BMA425, + }; + void Update(int16_t x, int16_t y, int16_t z, uint32_t nbSteps); int16_t X() const { @@ -27,6 +34,12 @@ namespace Pinetime { return isSensorOk; } + DeviceTypes DeviceType() const { + return deviceType; + } + + void Init(Pinetime::Drivers::Bma421::DeviceTypes types); + private: uint32_t nbSteps; int16_t x; @@ -34,6 +47,7 @@ namespace Pinetime { int16_t z; int16_t lastYForWakeUp = 0; bool isSensorOk = false; + DeviceTypes deviceType = DeviceTypes::Unknown; }; } } \ No newline at end of file diff --git a/src/displayapp/DisplayApp.cpp b/src/displayapp/DisplayApp.cpp index ab73969d..de93428c 100644 --- a/src/displayapp/DisplayApp.cpp +++ b/src/displayapp/DisplayApp.cpp @@ -329,7 +329,7 @@ void DisplayApp::LoadApp(Apps app, DisplayApp::FullRefreshDirections direction) break; case Apps::SysInfo: currentScreen = - std::make_unique<Screens::SystemInfo>(this, dateTimeController, batteryController, brightnessController, bleController, watchdog); + std::make_unique<Screens::SystemInfo>(this, dateTimeController, batteryController, brightnessController, bleController, watchdog, motionController); ReturnApp(Apps::Settings, FullRefreshDirections::Down, TouchEvents::SwipeDown); break; case Apps::FlashLight: diff --git a/src/displayapp/screens/SystemInfo.cpp b/src/displayapp/screens/SystemInfo.cpp index 9ff28288..0b16d633 100644 --- a/src/displayapp/screens/SystemInfo.cpp +++ b/src/displayapp/screens/SystemInfo.cpp @@ -7,22 +7,37 @@ #include "components/ble/BleController.h" #include "components/brightness/BrightnessController.h" #include "components/datetime/DateTimeController.h" +#include "components/motion/MotionController.h" #include "drivers/Watchdog.h" using namespace Pinetime::Applications::Screens; +namespace { + const char* ToString(const Pinetime::Controllers::MotionController::DeviceTypes deviceType) { + switch (deviceType) { + case Pinetime::Controllers::MotionController::DeviceTypes::BMA421: + return "BMA421"; + case Pinetime::Controllers::MotionController::DeviceTypes::BMA425: + return "BMA425"; + } + return "???"; + } +} + SystemInfo::SystemInfo(Pinetime::Applications::DisplayApp* app, Pinetime::Controllers::DateTime& dateTimeController, Pinetime::Controllers::Battery& batteryController, Pinetime::Controllers::BrightnessController& brightnessController, Pinetime::Controllers::Ble& bleController, - Pinetime::Drivers::WatchdogView& watchdog) + Pinetime::Drivers::WatchdogView& watchdog, + Pinetime::Controllers::MotionController& motionController) : Screen(app), dateTimeController {dateTimeController}, batteryController {batteryController}, brightnessController {brightnessController}, bleController {bleController}, watchdog {watchdog}, + motionController{motionController}, screens {app, 0, {[this]() -> std::unique_ptr<Screen> { @@ -132,9 +147,7 @@ std::unique_ptr<Screen> SystemInfo::CreateScreen2() { // hack to not use the flot functions from printf uint8_t batteryVoltageBytes[2]; batteryVoltageBytes[1] = static_cast<uint8_t>(batteryVoltage); // truncate whole numbers - batteryVoltageBytes[0] = - static_cast<uint8_t>((batteryVoltage - batteryVoltageBytes[1]) * 100); // remove whole part of flt and shift 2 places over - // + batteryVoltageBytes[0] = static_cast<uint8_t>((batteryVoltage - batteryVoltageBytes[1]) * 100); // remove whole part of flt and shift 2 places over lv_obj_t* label = lv_label_create(lv_scr_act(), nullptr); lv_label_set_recolor(label, true); @@ -144,7 +157,8 @@ std::unique_ptr<Screen> SystemInfo::CreateScreen2() { "#444444 Uptime#\n %02lud %02lu:%02lu:%02lu\n" "#444444 Battery# %d%%/%1i.%02iv\n" "#444444 Backlight# %s\n" - "#444444 Last reset# %s\n", + "#444444 Last reset# %s\n" + "#444444 Accel.# %s\n", dateTimeController.Day(), static_cast<uint8_t>(dateTimeController.Month()), dateTimeController.Year(), @@ -159,7 +173,8 @@ std::unique_ptr<Screen> SystemInfo::CreateScreen2() { batteryVoltageBytes[1], batteryVoltageBytes[0], brightnessController.ToString(), - resetReason); + resetReason, + ToString(motionController.DeviceType())); lv_obj_align(label, lv_scr_act(), LV_ALIGN_CENTER, 0, 0); return std::make_unique<Screens::Label>(1, 5, app, label); } diff --git a/src/displayapp/screens/SystemInfo.h b/src/displayapp/screens/SystemInfo.h index c61a07a2..9d471f61 100644 --- a/src/displayapp/screens/SystemInfo.h +++ b/src/displayapp/screens/SystemInfo.h @@ -27,7 +27,8 @@ namespace Pinetime { Pinetime::Controllers::Battery& batteryController, Pinetime::Controllers::BrightnessController& brightnessController, Pinetime::Controllers::Ble& bleController, - Pinetime::Drivers::WatchdogView& watchdog); + Pinetime::Drivers::WatchdogView& watchdog, + Pinetime::Controllers::MotionController& motionController); ~SystemInfo() override; bool Refresh() override; bool OnButtonPushed() override; @@ -41,6 +42,7 @@ namespace Pinetime { Pinetime::Controllers::BrightnessController& brightnessController; Pinetime::Controllers::Ble& bleController; Pinetime::Drivers::WatchdogView& watchdog; + Pinetime::Controllers::MotionController& motionController; ScreenList<5> screens; diff --git a/src/drivers/Bma421.cpp b/src/drivers/Bma421.cpp index 35b2c105..dd284000 100644 --- a/src/drivers/Bma421.cpp +++ b/src/drivers/Bma421.cpp @@ -42,6 +42,12 @@ void Bma421::Init() { if (ret != BMA4_OK) return; + switch(bma.chip_id) { + case BMA423_CHIP_ID: deviceType = DeviceTypes::BMA421; break; + case BMA425_CHIP_ID: deviceType = DeviceTypes::BMA425; break; + default: deviceType = DeviceTypes::Unknown; break; + } + ret = bma423_write_config_file(&bma); if (ret != BMA4_OK) return; @@ -121,3 +127,6 @@ void Bma421::SoftReset() { nrf_delay_ms(1); } } +Bma421::DeviceTypes Bma421::DeviceType() const { + return deviceType; +} diff --git a/src/drivers/Bma421.h b/src/drivers/Bma421.h index e4d925f5..ace644bd 100644 --- a/src/drivers/Bma421.h +++ b/src/drivers/Bma421.h @@ -6,6 +6,11 @@ namespace Pinetime { class TwiMaster; class Bma421 { public: + enum class DeviceTypes : uint8_t { + Unknown, + BMA421, + BMA425 + }; struct Values { uint32_t steps; int16_t x; @@ -29,6 +34,7 @@ namespace Pinetime { void Write(uint8_t registerAddress, const uint8_t* data, size_t size); bool IsOk() const; + DeviceTypes DeviceType() const; private: void Reset(); @@ -38,6 +44,7 @@ namespace Pinetime { struct bma4_dev bma; bool isOk = false; bool isResetOk = false; + DeviceTypes deviceType = DeviceTypes::Unknown; }; } } \ No newline at end of file diff --git a/src/drivers/Bma421_C/bma423.c b/src/drivers/Bma421_C/bma423.c index 1d782705..7d6c2e0a 100644 --- a/src/drivers/Bma421_C/bma423.c +++ b/src/drivers/Bma421_C/bma423.c @@ -43,6 +43,521 @@ #include "bma423.h" /**\name Feature configuration file */ +const uint8_t bma425_config_file[] = { + 0x80, 0x2e, 0xfd, 0x00, 0x80, 0x2e, 0xff, 0x00, 0xc8, 0x2e, 0x00, 0x2e, + 0x80, 0x2e, 0xfb, 0x00, 0x80, 0x2e, 0xdd, 0xb0, 0x80, 0x2e, 0xfe, 0x00, + 0x80, 0x2e, 0xfc, 0x00, 0x80, 0x2e, 0x0d, 0xb1, 0x50, 0x39, 0x21, 0x2e, + 0xb0, 0xf0, 0x10, 0x30, 0x21, 0x2e, 0x16, 0xf0, 0x80, 0x2e, 0x34, 0xb1, + 0x65, 0x50, 0x4f, 0x52, 0x01, 0x42, 0x3b, 0x80, 0x41, 0x30, 0x01, 0x42, + 0x3c, 0x80, 0x00, 0x2e, 0x01, 0x40, 0x01, 0x42, 0x21, 0x2e, 0xff, 0xaf, + 0xb8, 0x2e, 0x1f, 0x7f, 0x80, 0x2e, 0x18, 0x00, 0x80, 0x2e, 0x18, 0x00, + 0x80, 0x2e, 0x18, 0x00, 0x80, 0x2e, 0x18, 0x00, 0x80, 0x2e, 0x18, 0x00, + 0x80, 0x2e, 0x18, 0x00, 0x80, 0x2e, 0x18, 0x00, 0x80, 0x2e, 0x18, 0x00, + 0x80, 0x2e, 0x18, 0x00, 0x80, 0x2e, 0x18, 0x00, 0x80, 0x2e, 0x18, 0x00, + 0x80, 0x2e, 0x18, 0x00, 0x80, 0x2e, 0x18, 0x00, 0x80, 0x2e, 0x18, 0x00, + 0x80, 0x2e, 0x18, 0x00, 0x80, 0x2e, 0x18, 0x00, 0x80, 0x2e, 0x18, 0x00, + 0x80, 0x2e, 0x18, 0x00, 0x80, 0x2e, 0x18, 0x00, 0x80, 0x2e, 0x18, 0x00, + 0x80, 0x2e, 0x18, 0x00, 0xfd, 0x2d, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x04, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, + 0x00, 0x00, 0x00, 0x08, 0x00, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, + 0x00, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x2e, + 0x55, 0xf0, 0xc0, 0x2e, 0x21, 0x2e, 0x55, 0xf0, 0x30, 0x50, 0x00, 0x30, + 0x51, 0x56, 0x05, 0x30, 0x05, 0x2c, 0xfb, 0x7f, 0x3e, 0xbe, 0xd2, 0xba, + 0xb2, 0xb9, 0x6c, 0x0b, 0x53, 0x0e, 0xf9, 0x2f, 0x53, 0x1a, 0x01, 0x2f, + 0x4d, 0x0e, 0xf5, 0x2f, 0xd2, 0x7f, 0x04, 0x30, 0x1f, 0x2c, 0xe1, 0x7f, + 0xc5, 0x01, 0xa3, 0x03, 0x72, 0x0e, 0x03, 0x2f, 0x72, 0x1a, 0x0f, 0x2f, + 0x79, 0x0f, 0x0d, 0x2f, 0xe1, 0x6f, 0x4f, 0x04, 0x5f, 0xb9, 0xb1, 0xbf, + 0xfa, 0x0b, 0xd2, 0x6f, 0x96, 0x06, 0xb1, 0x25, 0x51, 0xbf, 0xeb, 0x7f, + 0x06, 0x00, 0xb2, 0x25, 0x27, 0x03, 0xdb, 0x7f, 0xcf, 0xbf, 0x3e, 0xbf, + 0x01, 0xb8, 0xd2, 0xba, 0x41, 0xba, 0xb2, 0xb9, 0x07, 0x0a, 0x6e, 0x0b, + 0xc0, 0x90, 0xdf, 0x2f, 0x40, 0x91, 0xdd, 0x2f, 0xfb, 0x6f, 0xd0, 0x5f, + 0xb8, 0x2e, 0x00, 0x31, 0xc0, 0x2e, 0x21, 0x2e, 0xba, 0xf0, 0xc8, 0x2e, + 0xc8, 0x2e, 0xc8, 0x2e, 0xc8, 0x2e, 0xc8, 0x2e, 0xaa, 0x00, 0x05, 0x00, + 0xaa, 0x00, 0x05, 0x00, 0x2d, 0x01, 0xd4, 0x7b, 0x3b, 0x01, 0xdb, 0x7a, + 0x04, 0x00, 0x3f, 0x7b, 0xcd, 0x6c, 0xc3, 0x04, 0x85, 0x09, 0xc3, 0x04, + 0xec, 0xe6, 0x0c, 0x46, 0x01, 0x00, 0x27, 0x00, 0x19, 0x00, 0x96, 0x00, + 0xa0, 0x00, 0x01, 0x00, 0x0c, 0x00, 0xf0, 0x3c, 0x00, 0x01, 0x01, 0x00, + 0x03, 0x00, 0x01, 0x00, 0x0e, 0x00, 0x00, 0x00, 0x06, 0x00, 0x06, 0x00, + 0x00, 0x00, 0x47, 0x28, 0x88, 0x00, 0x54, 0x00, 0x51, 0x00, 0x97, 0x00, + 0xa0, 0x00, 0x80, 0x00, 0x00, 0x40, 0xff, 0x7f, 0x00, 0x80, 0xaf, 0x00, + 0xff, 0x00, 0xff, 0xb7, 0x00, 0x02, 0x00, 0xb0, 0x05, 0x80, 0xb1, 0xf0, + 0x5e, 0xf0, 0xc0, 0x00, 0x59, 0xf0, 0x39, 0xf0, 0x57, 0x00, 0x89, 0xf0, + 0x54, 0x00, 0x00, 0x20, 0x82, 0x00, 0x59, 0x00, 0x5d, 0x00, 0x81, 0x00, + 0xff, 0xfb, 0x52, 0xf0, 0x56, 0xf0, 0x33, 0x09, 0x33, 0x07, 0x00, 0x08, + 0x90, 0x01, 0x00, 0xf8, 0x00, 0x01, 0x02, 0x01, 0x60, 0x00, 0x6a, 0x00, + 0x4c, 0x04, 0xa0, 0x00, 0xe8, 0x03, 0x81, 0x00, 0x82, 0x00, 0xeb, 0x07, + 0xae, 0x07, 0xaa, 0x00, 0x75, 0x00, 0xff, 0x0f, 0xdb, 0x00, 0xb6, 0x01, + 0x70, 0x69, 0x26, 0xd3, 0x9c, 0x07, 0xbc, 0x02, 0x1f, 0x05, 0x9d, 0x00, + 0xa8, 0x05, 0xee, 0x06, 0x01, 0xf0, 0xbc, 0x05, 0x37, 0x08, 0xbb, 0x06, + 0x37, 0xfa, 0xb2, 0x00, 0xff, 0x03, 0x98, 0x2e, 0x15, 0xb0, 0x20, 0x26, + 0x98, 0x2e, 0xf7, 0x00, 0x98, 0x2e, 0xc4, 0xb0, 0x10, 0x30, 0x21, 0x2e, + 0x59, 0xf0, 0x98, 0x2e, 0xb9, 0x00, 0x98, 0x2e, 0x7a, 0xb4, 0x98, 0x2e, + 0x89, 0xb4, 0x00, 0x2e, 0x00, 0x2e, 0xd0, 0x2e, 0x98, 0x2e, 0xa7, 0xb0, + 0x01, 0x2e, 0x58, 0x00, 0x00, 0xb2, 0x1a, 0x2f, 0x00, 0x30, 0x21, 0x2e, + 0x58, 0x00, 0x47, 0x50, 0x98, 0x2e, 0x65, 0xb0, 0x03, 0x2e, 0x1e, 0x01, + 0x47, 0x50, 0x02, 0x30, 0x98, 0x2e, 0x28, 0xb5, 0x03, 0x2e, 0x1f, 0x01, + 0x47, 0x50, 0x12, 0x30, 0x98, 0x2e, 0x28, 0xb5, 0x01, 0x2e, 0x03, 0xf0, + 0x0d, 0xbc, 0x0f, 0xb8, 0x00, 0x90, 0x02, 0x2f, 0x4f, 0x50, 0x21, 0x2e, + 0xbc, 0xf0, 0x01, 0x2e, 0x57, 0x00, 0x00, 0xb2, 0x25, 0x2f, 0x00, 0x30, + 0x21, 0x2e, 0x57, 0x00, 0x49, 0x50, 0x98, 0x2e, 0x65, 0xb0, 0x49, 0x50, + 0x98, 0x2e, 0xc1, 0xb1, 0x49, 0x50, 0x98, 0x2e, 0x34, 0xb6, 0x49, 0x50, + 0x4b, 0x52, 0x98, 0x2e, 0xa4, 0xb4, 0x49, 0x50, 0x4d, 0x52, 0x98, 0x2e, + 0xa4, 0xb4, 0x01, 0x2e, 0x1e, 0x01, 0x0f, 0xbc, 0x0f, 0xb8, 0x00, 0x90, + 0x4f, 0x50, 0x08, 0x2f, 0x03, 0x2e, 0x1f, 0x01, 0x9f, 0xbc, 0x9f, 0xb8, + 0x40, 0x90, 0x02, 0x2f, 0x21, 0x2e, 0xbc, 0xf0, 0x02, 0x2d, 0x21, 0x2e, + 0xba, 0xf0, 0x98, 0x2e, 0xb9, 0x00, 0xaf, 0x2d, 0x10, 0x50, 0xfb, 0x7f, + 0x21, 0x25, 0x98, 0x2e, 0xf4, 0x01, 0xfb, 0x6f, 0x21, 0x25, 0xf0, 0x5f, + 0x10, 0x25, 0x80, 0x2e, 0xbe, 0x00, 0x94, 0x01, 0xdd, 0x03, 0xc0, 0xad, + 0x0b, 0x2f, 0xc0, 0xa8, 0x03, 0x2f, 0xc0, 0x90, 0x07, 0x2f, 0x80, 0xa6, + 0x05, 0x2f, 0x40, 0xa9, 0x12, 0x2f, 0x40, 0x91, 0x01, 0x2f, 0x00, 0xab, + 0x0e, 0x2f, 0xc0, 0xac, 0x00, 0x30, 0x55, 0x52, 0x07, 0x2f, 0xc0, 0xa9, + 0x03, 0x2f, 0xc0, 0x91, 0x03, 0x2f, 0x80, 0xa7, 0x01, 0x2f, 0x40, 0xa1, + 0x05, 0x2f, 0xc0, 0x2e, 0x17, 0x25, 0x06, 0x25, 0xc0, 0x2e, 0xf0, 0x3f, + 0x53, 0x52, 0xb8, 0x2e, 0x83, 0x86, 0x01, 0x30, 0x00, 0x30, 0x94, 0x40, + 0x24, 0x18, 0x06, 0x00, 0x53, 0x0e, 0x4f, 0x02, 0xf9, 0x2f, 0xb8, 0x2e, + 0x80, 0x2e, 0x18, 0x00, 0x80, 0xa8, 0x03, 0x25, 0x10, 0x2f, 0x80, 0x90, + 0x01, 0x2f, 0x41, 0x0e, 0x0c, 0x2f, 0xf3, 0x3f, 0x18, 0x05, 0x05, 0x30, + 0x5d, 0x07, 0x15, 0x0e, 0x03, 0x2f, 0x55, 0x1a, 0x02, 0x2f, 0xcc, 0x0f, + 0x00, 0x2f, 0x58, 0x04, 0x01, 0x25, 0xb8, 0x2e, 0xb8, 0x2e, 0x63, 0x50, + 0x41, 0x30, 0x02, 0x40, 0x51, 0x0a, 0x01, 0x42, 0x18, 0x82, 0x57, 0x50, + 0x60, 0x42, 0x70, 0x3c, 0x59, 0x54, 0x42, 0x42, 0x69, 0x82, 0x82, 0x32, + 0x43, 0x40, 0x18, 0x08, 0x02, 0x0a, 0x40, 0x42, 0x42, 0x80, 0x02, 0x3f, + 0x01, 0x40, 0x10, 0x50, 0x4a, 0x08, 0xfb, 0x7f, 0x11, 0x42, 0x0b, 0x31, + 0x0b, 0x42, 0x3e, 0x80, 0x31, 0x32, 0x01, 0x42, 0x00, 0x2e, 0x01, 0x2e, + 0x40, 0xf0, 0x13, 0x90, 0x20, 0x2f, 0x03, 0x30, 0x5d, 0x50, 0x5b, 0x54, + 0x14, 0x35, 0x06, 0x30, 0x61, 0x52, 0x55, 0x32, 0x1d, 0x1a, 0xe3, 0x22, + 0x18, 0x1a, 0x5f, 0x58, 0xe3, 0x22, 0x04, 0x30, 0xd5, 0x40, 0xb5, 0x0d, + 0xe1, 0xbe, 0x6f, 0xbb, 0x80, 0x91, 0xa9, 0x0d, 0x01, 0x89, 0xb5, 0x23, + 0x10, 0xa1, 0xf7, 0x2f, 0xda, 0x0e, 0x14, 0x35, 0xeb, 0x2f, 0x01, 0x2e, + 0x25, 0x00, 0x70, 0x1a, 0x00, 0x30, 0x21, 0x30, 0x02, 0x2c, 0x08, 0x22, + 0x30, 0x30, 0x00, 0xb2, 0x06, 0x2f, 0x21, 0x2e, 0x59, 0xf0, 0x98, 0x2e, + 0xb9, 0x00, 0x00, 0x2e, 0x00, 0x2e, 0xd0, 0x2e, 0xfb, 0x6f, 0xf0, 0x5f, + 0xb8, 0x2e, 0x70, 0x50, 0x03, 0x2e, 0x22, 0x01, 0xf1, 0x7f, 0x2a, 0x25, + 0xb9, 0x82, 0xe0, 0x7f, 0xdb, 0x7f, 0x00, 0x30, 0x45, 0x30, 0x32, 0x30, + 0x03, 0x30, 0x04, 0x30, 0xf6, 0x6f, 0xf2, 0x09, 0xfc, 0x13, 0xc2, 0xab, + 0xb5, 0x09, 0xc7, 0x23, 0x80, 0xb3, 0xe6, 0x6f, 0xb7, 0x01, 0x00, 0x2e, + 0x8b, 0x41, 0x4b, 0x42, 0x05, 0x2f, 0xc5, 0x7f, 0x05, 0x30, 0x46, 0x40, + 0xae, 0x05, 0xc5, 0x6f, 0x46, 0x42, 0x01, 0x80, 0x23, 0xbd, 0xd3, 0xbe, + 0x03, 0x89, 0x41, 0x82, 0xdf, 0x0c, 0x03, 0xa2, 0xe4, 0x2f, 0xe0, 0x6f, + 0x91, 0x6f, 0x11, 0x42, 0xc3, 0xb2, 0xa1, 0x6f, 0x11, 0x42, 0x00, 0x2e, + 0xb1, 0x6f, 0x01, 0x42, 0x06, 0x2f, 0x00, 0x32, 0x03, 0x2e, 0x59, 0xf0, + 0x08, 0x0a, 0x21, 0x2e, 0x59, 0xf0, 0x06, 0x2d, 0xf1, 0x3d, 0x01, 0x2e, + 0x59, 0xf0, 0x01, 0x08, 0x21, 0x2e, 0x59, 0xf0, 0xdb, 0x6f, 0x90, 0x5f, + 0xb8, 0x2e, 0x69, 0x50, 0x05, 0x2e, 0x00, 0xf0, 0x4f, 0x56, 0xd3, 0x0f, + 0x01, 0x40, 0xf4, 0x33, 0xcc, 0x08, 0x0d, 0x2f, 0xf4, 0x30, 0x94, 0x08, + 0xb9, 0x88, 0x02, 0xa3, 0x04, 0x2f, 0x67, 0x58, 0x4c, 0x0a, 0x87, 0xa2, + 0x05, 0x2c, 0xcb, 0x22, 0x4f, 0x54, 0x4a, 0x0a, 0xf2, 0x3b, 0xca, 0x08, + 0x3c, 0x80, 0x27, 0x2e, 0x59, 0xf0, 0x01, 0x40, 0x01, 0x42, 0xb8, 0x2e, + 0x01, 0x2e, 0xb1, 0xf0, 0x67, 0x52, 0x01, 0x0a, 0x21, 0x2e, 0xb1, 0xf0, + 0x01, 0x2e, 0x1e, 0x01, 0x0f, 0xbc, 0x0f, 0xb8, 0x00, 0x90, 0x4f, 0x50, + 0x08, 0x2f, 0x03, 0x2e, 0x1f, 0x01, 0x9f, 0xbc, 0x9f, 0xb8, 0x40, 0x90, + 0x02, 0x2f, 0xc0, 0x2e, 0x21, 0x2e, 0xbc, 0xf0, 0xc0, 0x2e, 0x21, 0x2e, + 0xba, 0xf0, 0x70, 0x50, 0xf7, 0x7f, 0x00, 0x2e, 0x0f, 0x2e, 0xb8, 0xf0, + 0xf8, 0xbf, 0xff, 0xbb, 0xc0, 0xb3, 0x23, 0x2f, 0xb2, 0x7f, 0x94, 0x7f, + 0xc6, 0x7f, 0xe5, 0x7f, 0xd3, 0x7f, 0xa1, 0x7f, 0x35, 0x30, 0x05, 0x2e, + 0x01, 0xf0, 0x2e, 0xbd, 0x2e, 0xbb, 0x6b, 0x58, 0x6e, 0x05, 0x47, 0x56, + 0x6d, 0x54, 0x11, 0x30, 0x27, 0x41, 0x06, 0x41, 0xf8, 0xbf, 0xbe, 0x0b, + 0xb5, 0x11, 0xd6, 0x42, 0x03, 0x89, 0x5a, 0x0e, 0xf6, 0x2f, 0x23, 0x2e, + 0x58, 0x00, 0x4f, 0x52, 0x23, 0x2e, 0xb8, 0xf0, 0xb2, 0x6f, 0xe5, 0x6f, + 0xd3, 0x6f, 0xa1, 0x6f, 0x94, 0x6f, 0xc6, 0x6f, 0xf7, 0x6f, 0x90, 0x5f, + 0xc8, 0x2e, 0x60, 0x50, 0xc3, 0x7f, 0xd4, 0x7f, 0xe7, 0x7f, 0xf6, 0x7f, + 0xb2, 0x7f, 0xa5, 0x7f, 0x36, 0x30, 0x07, 0x2e, 0x01, 0xf0, 0xbe, 0xbd, + 0xbe, 0xbb, 0x6f, 0x58, 0x77, 0x05, 0x49, 0x56, 0x71, 0x54, 0x27, 0x41, + 0x06, 0x41, 0xf8, 0xbf, 0xbe, 0x0b, 0xb5, 0x11, 0xd6, 0x42, 0x03, 0x89, + 0x5a, 0x0e, 0xf6, 0x2f, 0x12, 0x30, 0x25, 0x2e, 0x57, 0x00, 0x02, 0x31, + 0x25, 0x2e, 0xb8, 0xf0, 0xd4, 0x6f, 0xc3, 0x6f, 0xe7, 0x6f, 0xb2, 0x6f, + 0xa5, 0x6f, 0xf6, 0x6f, 0xa0, 0x5f, 0xc8, 0x2e, 0x1a, 0x24, 0x26, 0x00, + 0x80, 0x2e, 0x65, 0x01, 0x70, 0x50, 0x42, 0x8e, 0xd4, 0x7f, 0xf6, 0x7f, + 0x47, 0x25, 0x1a, 0x18, 0x73, 0x52, 0xf1, 0x00, 0x64, 0x25, 0x01, 0x30, + 0x39, 0x02, 0x94, 0x41, 0x81, 0x41, 0xe2, 0x7f, 0xbe, 0xbb, 0xbd, 0x8d, + 0x02, 0xbd, 0xb5, 0x7f, 0x8e, 0xb5, 0xba, 0x0a, 0xc6, 0x7f, 0xab, 0x7f, + 0x51, 0x25, 0x98, 0x2e, 0xd1, 0x01, 0xd5, 0x6f, 0xe2, 0x6f, 0x2a, 0x18, + 0x73, 0x54, 0xb2, 0x01, 0x02, 0x30, 0xc4, 0x6f, 0x7a, 0x03, 0x12, 0x41, + 0x74, 0x25, 0xd0, 0x7f, 0x52, 0xbc, 0xd3, 0x41, 0x6e, 0xba, 0xde, 0xb6, + 0x20, 0x0b, 0xc7, 0x7f, 0x91, 0x7f, 0x98, 0x2e, 0xd1, 0x01, 0xf2, 0x6f, + 0xd5, 0x6f, 0xca, 0x16, 0x55, 0x18, 0xdd, 0x18, 0x95, 0x6f, 0xea, 0x18, + 0x73, 0x5a, 0x31, 0x25, 0x75, 0x01, 0x01, 0x30, 0x20, 0x25, 0x39, 0x02, + 0x5e, 0xba, 0x82, 0xbc, 0x8e, 0xb6, 0x21, 0x0b, 0x98, 0x2e, 0xd1, 0x01, + 0xe2, 0x6f, 0xb5, 0x6f, 0x2a, 0x18, 0xe0, 0x7f, 0xf1, 0x7f, 0x04, 0x30, + 0x73, 0x54, 0xf2, 0x00, 0x7c, 0x02, 0x85, 0x6f, 0xd0, 0x6f, 0x0d, 0x17, + 0x68, 0x18, 0xe0, 0x18, 0x90, 0x6f, 0xc4, 0x6f, 0xc5, 0x18, 0xeb, 0x6f, + 0xb2, 0x01, 0x1b, 0x43, 0x02, 0x30, 0x7a, 0x03, 0xfb, 0x6f, 0x3d, 0x8f, + 0x0b, 0x43, 0x3e, 0xba, 0x12, 0xbd, 0x52, 0xbc, 0x6e, 0xbb, 0xa2, 0x0a, + 0x9e, 0xb5, 0xde, 0xb6, 0x30, 0x0b, 0xf7, 0x7f, 0x98, 0x2e, 0xd1, 0x01, + 0xf5, 0x6f, 0x31, 0x25, 0xd1, 0x6f, 0x92, 0x6f, 0xab, 0x6f, 0x50, 0x43, + 0x43, 0x43, 0x90, 0x5f, 0x53, 0x56, 0x80, 0x2e, 0x00, 0xb0, 0x10, 0x50, + 0x03, 0x40, 0x19, 0x18, 0x55, 0x56, 0x19, 0x05, 0x36, 0x25, 0xf7, 0x7f, + 0x4a, 0x17, 0x54, 0x18, 0xec, 0x18, 0x09, 0x17, 0x01, 0x30, 0x0c, 0x07, + 0xe2, 0x18, 0xde, 0x00, 0xf2, 0x6f, 0x97, 0x02, 0x51, 0x58, 0xdc, 0x00, + 0x91, 0x02, 0xbf, 0xb8, 0x21, 0xbd, 0x8a, 0x0a, 0xc0, 0x2e, 0x02, 0x42, + 0xf0, 0x5f, 0x09, 0x2e, 0x1d, 0x01, 0x05, 0x2e, 0x1d, 0x01, 0xa3, 0xbc, + 0x44, 0xbe, 0x90, 0x50, 0x4f, 0xb9, 0x07, 0x2e, 0x1d, 0x01, 0x4a, 0x25, + 0x9f, 0xb8, 0x39, 0x8f, 0xb2, 0xbd, 0xf2, 0x7f, 0xbf, 0xb9, 0xeb, 0x7f, + 0x8a, 0x0a, 0x37, 0x89, 0x0b, 0x30, 0x93, 0x0a, 0x8b, 0x7f, 0xcb, 0x43, + 0x0b, 0x43, 0x80, 0xb2, 0xd3, 0x7f, 0xc1, 0x7f, 0x90, 0x2e, 0x6c, 0xb2, + 0x20, 0x25, 0x01, 0x2e, 0x5f, 0x00, 0x01, 0x90, 0x0e, 0x2f, 0x75, 0x52, + 0x01, 0x2e, 0x5c, 0x00, 0xb4, 0x7f, 0xa2, 0x7f, 0x98, 0x2e, 0x72, 0xb2, + 0x00, 0x30, 0x21, 0x2e, 0x5f, 0x00, 0xc1, 0x6f, 0xd3, 0x6f, 0xa2, 0x6f, + 0xb4, 0x6f, 0x0b, 0x30, 0x01, 0x2e, 0x1d, 0x01, 0x06, 0xbc, 0x06, 0xbb, + 0x57, 0x25, 0x01, 0x2e, 0x1d, 0x01, 0x94, 0xb1, 0x05, 0xbc, 0xb6, 0x7f, + 0x0f, 0xbb, 0x79, 0x50, 0x80, 0xb3, 0x0f, 0x2f, 0x0d, 0x2e, 0x1d, 0x01, + 0x7d, 0x5e, 0xb7, 0x09, 0x2d, 0x2e, 0x1d, 0x01, 0x7f, 0x5c, 0x77, 0x5e, + 0x9b, 0x43, 0x9b, 0x43, 0xdb, 0x43, 0x9b, 0x43, 0x1b, 0x42, 0xcb, 0x43, + 0x0b, 0x42, 0x8b, 0x43, 0x40, 0xb2, 0x05, 0x2f, 0x77, 0x50, 0x00, 0x2e, + 0x16, 0x40, 0x0b, 0x40, 0x76, 0x7f, 0x8b, 0x7f, 0xcb, 0x0a, 0x01, 0x2e, + 0x5c, 0x00, 0x75, 0x52, 0x7b, 0x5c, 0x98, 0x2e, 0xbe, 0xb2, 0x90, 0x6f, + 0x00, 0xb2, 0x0b, 0x2f, 0xf0, 0x6f, 0x00, 0xb2, 0x08, 0x2f, 0x77, 0x58, + 0x79, 0x50, 0x12, 0x41, 0x12, 0x42, 0x21, 0x30, 0x04, 0x41, 0x04, 0x42, + 0x23, 0x2e, 0x5e, 0xf0, 0xc0, 0x6f, 0x00, 0xb2, 0x26, 0x2f, 0x74, 0x6f, + 0x80, 0x6f, 0x7f, 0x54, 0x88, 0xbd, 0xc8, 0xb8, 0x4b, 0x0a, 0x94, 0x42, + 0x91, 0x42, 0x90, 0x42, 0x88, 0xba, 0x77, 0x52, 0xf3, 0x6f, 0x54, 0x42, + 0x85, 0x42, 0xc0, 0x90, 0x40, 0x42, 0x15, 0x2f, 0x79, 0x52, 0x00, 0x2e, + 0x52, 0x40, 0x41, 0x40, 0xa2, 0x04, 0x41, 0x06, 0x40, 0xaa, 0x04, 0x2f, + 0x40, 0x90, 0x0b, 0x2f, 0xb1, 0x6f, 0x4a, 0x0f, 0x08, 0x2f, 0xb2, 0x6f, + 0x80, 0xb2, 0x05, 0x2f, 0x79, 0x54, 0x21, 0x30, 0x94, 0x42, 0x80, 0x42, + 0x23, 0x2e, 0x5e, 0xf0, 0xd0, 0x6f, 0x00, 0xb2, 0x13, 0x2f, 0x01, 0x2e, + 0x5b, 0x00, 0x09, 0x2e, 0x81, 0x00, 0x04, 0x1a, 0x0d, 0x2f, 0x81, 0x50, + 0x29, 0x2e, 0x5b, 0x00, 0x24, 0x42, 0x44, 0x30, 0x02, 0x40, 0x02, 0x42, + 0x09, 0x80, 0x00, 0x2e, 0x04, 0x42, 0x03, 0x2d, 0x10, 0x30, 0x21, 0x2e, + 0x5f, 0x00, 0xeb, 0x6f, 0x70, 0x5f, 0xb8, 0x2e, 0x09, 0x86, 0x51, 0x54, + 0xe4, 0x40, 0xc3, 0x80, 0x94, 0x04, 0xc3, 0x40, 0x13, 0x05, 0x05, 0x40, + 0x25, 0x05, 0x8a, 0x17, 0x73, 0x30, 0x73, 0x09, 0x8c, 0x17, 0xf3, 0x08, + 0xe3, 0x00, 0x4c, 0x82, 0x15, 0x01, 0xb3, 0xb5, 0x53, 0x42, 0x8b, 0x16, + 0x43, 0xb6, 0x52, 0x42, 0x4c, 0x17, 0x54, 0x42, 0x55, 0x42, 0x53, 0x42, + 0x52, 0x42, 0x54, 0x42, 0x45, 0x42, 0x6d, 0x82, 0x83, 0x54, 0x52, 0x42, + 0x10, 0x50, 0x85, 0x54, 0x52, 0x42, 0xfb, 0x7f, 0x22, 0x30, 0x87, 0x56, + 0x43, 0x42, 0x44, 0x82, 0x0b, 0x30, 0x52, 0x42, 0x5b, 0x42, 0x7c, 0x84, + 0x4b, 0x42, 0x35, 0x82, 0x90, 0x80, 0x8b, 0x42, 0x0b, 0x42, 0x35, 0x80, + 0x04, 0x30, 0x0b, 0x42, 0x37, 0x80, 0x15, 0x30, 0x60, 0x25, 0x98, 0x2e, + 0xb1, 0xb2, 0x8b, 0x83, 0xfb, 0x6f, 0x65, 0x42, 0xc0, 0x2e, 0x44, 0x42, + 0xf0, 0x5f, 0x05, 0x80, 0x02, 0x30, 0x51, 0x82, 0x02, 0x42, 0x13, 0x30, + 0x41, 0x40, 0x4b, 0x08, 0x89, 0x54, 0x3e, 0x80, 0x51, 0x14, 0xc0, 0x2e, + 0x01, 0x42, 0x00, 0x2e, 0x40, 0x51, 0xd1, 0x7f, 0x12, 0x25, 0x02, 0x30, + 0x42, 0x43, 0x32, 0x30, 0x82, 0x43, 0xc6, 0x7f, 0xe5, 0x7f, 0xb4, 0x7f, + 0xa3, 0x7f, 0x90, 0x7f, 0x8b, 0x7f, 0x98, 0x2e, 0xc6, 0x01, 0xc0, 0x7e, + 0x00, 0xac, 0x01, 0x2f, 0x53, 0x50, 0xc0, 0x7e, 0x00, 0x2e, 0x90, 0x6f, + 0x09, 0x8a, 0xd1, 0x6f, 0x75, 0x7f, 0x4c, 0x82, 0x63, 0x41, 0x65, 0x7f, + 0x11, 0x7f, 0x00, 0x2e, 0x64, 0x41, 0x44, 0x85, 0x52, 0x7f, 0x45, 0x7f, + 0x00, 0x2e, 0xa6, 0x40, 0x80, 0x40, 0x32, 0x7f, 0x82, 0x8e, 0xc2, 0x6e, + 0x45, 0x41, 0xf0, 0x7f, 0x27, 0x7f, 0x02, 0x7f, 0x98, 0x2e, 0x38, 0xb1, + 0x23, 0x6f, 0xd1, 0x6f, 0xc2, 0x40, 0xf9, 0x86, 0x23, 0x7f, 0x80, 0xb2, + 0xe0, 0x7e, 0x0f, 0x2f, 0x32, 0x6f, 0x64, 0x6f, 0x82, 0x40, 0xf2, 0x7f, + 0x50, 0x82, 0x42, 0x6f, 0x50, 0x6f, 0x73, 0x6f, 0x85, 0x40, 0xc3, 0x40, + 0x04, 0x41, 0x06, 0x40, 0xe2, 0x6e, 0x98, 0x2e, 0x38, 0xb1, 0xe0, 0x7e, + 0xf3, 0x31, 0x10, 0x6f, 0x36, 0x80, 0xe1, 0x6e, 0x02, 0x40, 0x71, 0x7f, + 0x51, 0x04, 0x02, 0x30, 0x40, 0xa8, 0x91, 0x04, 0x4a, 0x22, 0x89, 0x16, + 0x93, 0x08, 0x4a, 0x00, 0x95, 0xb4, 0x09, 0x18, 0x8e, 0x16, 0x13, 0x30, + 0x93, 0x08, 0x21, 0x6f, 0x60, 0x7f, 0x4d, 0x86, 0x02, 0x80, 0xb2, 0x00, + 0x41, 0x40, 0x21, 0xb5, 0x50, 0x7f, 0x43, 0x7f, 0x98, 0x2e, 0xa7, 0xb1, + 0x40, 0x6f, 0x62, 0x6f, 0x55, 0x6f, 0x13, 0x40, 0x84, 0x40, 0x01, 0x40, + 0x45, 0x41, 0x42, 0xbe, 0x1d, 0x18, 0x4c, 0x04, 0x31, 0x0f, 0x04, 0x8a, + 0xc0, 0x6f, 0x11, 0x30, 0x02, 0x2f, 0x00, 0x2e, 0x03, 0x2c, 0x01, 0x42, + 0x23, 0x30, 0x03, 0x42, 0x00, 0x2e, 0xd6, 0x6f, 0x44, 0x41, 0x8a, 0x87, + 0x76, 0x8b, 0x00, 0xb3, 0x53, 0x7f, 0x15, 0x2f, 0x04, 0x6f, 0x8b, 0x5e, + 0x8b, 0x8d, 0xe7, 0x01, 0xc0, 0xa5, 0x84, 0x41, 0x01, 0x2f, 0x00, 0xa1, + 0x03, 0x2f, 0xc0, 0xad, 0x08, 0x2f, 0x00, 0xa5, 0x06, 0x2f, 0xc6, 0x40, + 0x81, 0x8d, 0x07, 0x30, 0x3c, 0x05, 0xd6, 0x42, 0x04, 0x2c, 0xc4, 0x42, + 0x02, 0x2c, 0x07, 0x30, 0x07, 0x30, 0x86, 0x86, 0x94, 0x6f, 0xd7, 0x7e, + 0x0e, 0x8d, 0x00, 0x40, 0x74, 0x89, 0xc7, 0x40, 0x02, 0xb2, 0xf9, 0x29, + 0x45, 0x41, 0x86, 0x41, 0xbe, 0x80, 0x21, 0x41, 0x75, 0x23, 0x82, 0x40, + 0xc7, 0x42, 0x45, 0x7f, 0x34, 0x7f, 0x20, 0x7f, 0x98, 0x2e, 0xa7, 0xb1, + 0x31, 0x6f, 0x60, 0x6f, 0x24, 0x6f, 0x22, 0x40, 0x05, 0x41, 0x43, 0x40, + 0x13, 0x01, 0x43, 0x86, 0xac, 0x0f, 0xd1, 0x6f, 0x30, 0x7f, 0x00, 0x2f, + 0x44, 0x42, 0x48, 0x8a, 0x41, 0x88, 0xe1, 0x40, 0x13, 0x7f, 0x04, 0x7f, + 0xf5, 0x7e, 0x98, 0x2e, 0xa7, 0xb1, 0x11, 0x6f, 0x60, 0x6f, 0x34, 0x6f, + 0x42, 0x40, 0x03, 0x40, 0x9a, 0x04, 0x04, 0x41, 0x43, 0x82, 0xa2, 0x0e, + 0x03, 0x6f, 0x00, 0x2f, 0xc2, 0x42, 0x00, 0x2e, 0x41, 0x40, 0x72, 0x6f, + 0x98, 0x2e, 0xa7, 0xb1, 0x25, 0x6f, 0x72, 0x6f, 0x53, 0x41, 0x93, 0x0e, + 0xd1, 0x6f, 0x46, 0x80, 0x1b, 0x30, 0x03, 0x30, 0x0c, 0x2f, 0x04, 0x40, + 0x00, 0x91, 0x42, 0x42, 0x08, 0x2f, 0xf6, 0x6e, 0x44, 0x6f, 0x86, 0x41, + 0xb4, 0x0e, 0x03, 0x2f, 0x02, 0x88, 0xdb, 0x7e, 0x03, 0x43, 0x0b, 0x42, + 0x46, 0x8d, 0x44, 0x41, 0x47, 0x80, 0x05, 0x6f, 0x94, 0x0f, 0x76, 0x7f, + 0x60, 0x7f, 0x02, 0x2f, 0x45, 0x89, 0x42, 0x43, 0x03, 0x43, 0x49, 0x88, + 0xa5, 0x6f, 0x40, 0x91, 0xa4, 0x7f, 0x15, 0x30, 0xe2, 0x6f, 0xd3, 0x6e, + 0x03, 0x2f, 0x04, 0x30, 0x83, 0x42, 0x80, 0x2e, 0x62, 0xb4, 0x04, 0x40, + 0x25, 0x29, 0x04, 0x42, 0x83, 0x42, 0x45, 0x82, 0x94, 0x6f, 0x04, 0x85, + 0xc0, 0xb2, 0x90, 0x2e, 0x4e, 0xb4, 0x15, 0x87, 0x3c, 0x8c, 0xc4, 0x40, + 0x46, 0x7f, 0xc2, 0x86, 0x07, 0x40, 0x86, 0x41, 0xf4, 0xbf, 0x00, 0xb3, + 0x0c, 0x2f, 0x90, 0x6f, 0x16, 0x80, 0x46, 0x25, 0x00, 0x40, 0x57, 0x25, + 0x04, 0x18, 0xae, 0x0e, 0x10, 0x30, 0x06, 0x30, 0x75, 0x25, 0x46, 0x23, + 0x60, 0x6f, 0x64, 0x25, 0xc4, 0x40, 0xfa, 0x86, 0x00, 0xb3, 0x33, 0x7f, + 0x09, 0x2f, 0x93, 0x6f, 0xd8, 0x88, 0x53, 0x6f, 0x04, 0x41, 0xc3, 0x40, + 0xdc, 0x0e, 0x13, 0x30, 0x04, 0x30, 0xdc, 0x22, 0xb3, 0x25, 0x40, 0xb3, + 0x02, 0x2f, 0x3b, 0x25, 0xc0, 0x90, 0x05, 0x2f, 0x91, 0x6f, 0xd0, 0x6f, + 0x98, 0x2e, 0xb1, 0xb2, 0x4d, 0x2c, 0x04, 0x30, 0x8d, 0x88, 0x43, 0x40, + 0x82, 0x40, 0x54, 0x7f, 0xda, 0x0f, 0x04, 0x30, 0x08, 0x2f, 0xc1, 0x80, + 0x40, 0x42, 0xc2, 0x0f, 0x02, 0x2f, 0x00, 0x30, 0xc0, 0x7e, 0x1b, 0x2d, + 0xc0, 0x7e, 0x19, 0x2d, 0xe1, 0xbc, 0x92, 0x6f, 0x4f, 0x04, 0x90, 0x84, + 0x40, 0xa8, 0x21, 0x05, 0x83, 0x40, 0x4c, 0x22, 0x4b, 0x0e, 0xb6, 0x84, + 0x21, 0x30, 0x02, 0x2f, 0x11, 0x30, 0x04, 0x2c, 0xc1, 0x7e, 0xe3, 0x6f, + 0xc1, 0x7e, 0xc1, 0x42, 0x00, 0x2e, 0x00, 0x40, 0x81, 0x40, 0x04, 0xbd, + 0x40, 0x6f, 0x98, 0x2e, 0xa7, 0xb1, 0x50, 0x6f, 0x11, 0x30, 0x02, 0x40, + 0x51, 0x08, 0xc3, 0x6e, 0x03, 0x80, 0x99, 0x15, 0x0b, 0x40, 0xb1, 0x6f, + 0xd0, 0x6f, 0xb6, 0x7f, 0x5b, 0x7f, 0x04, 0x30, 0x59, 0x54, 0x03, 0x30, + 0x11, 0x2c, 0x14, 0x80, 0x55, 0x6f, 0x06, 0x40, 0x75, 0x01, 0x58, 0xbb, + 0x6a, 0x09, 0x05, 0x42, 0xc1, 0x86, 0x47, 0x40, 0x51, 0x25, 0xbe, 0x01, + 0x56, 0x43, 0x00, 0x2e, 0x46, 0x41, 0xf4, 0x03, 0xb6, 0x6f, 0x47, 0x43, + 0x5e, 0x0e, 0xed, 0x2f, 0x31, 0x6f, 0x60, 0x6f, 0x42, 0x40, 0x15, 0x30, + 0x02, 0x82, 0x95, 0x08, 0x04, 0x42, 0x52, 0x42, 0x02, 0x2c, 0x44, 0x42, + 0x04, 0x30, 0x3e, 0x8e, 0x91, 0x6f, 0x4f, 0x8c, 0x02, 0x40, 0x83, 0x41, + 0xb5, 0x8d, 0x93, 0x0e, 0xd0, 0x6f, 0x01, 0x2f, 0x98, 0x2e, 0xb1, 0xb2, + 0x00, 0x2e, 0xc0, 0x41, 0x81, 0x41, 0xc1, 0x0f, 0xc0, 0x6f, 0x01, 0x2f, + 0x04, 0x42, 0x00, 0x2e, 0x70, 0x6f, 0x3c, 0x82, 0x00, 0x40, 0x41, 0x40, + 0x89, 0x16, 0x95, 0x08, 0x4a, 0x00, 0x04, 0xbc, 0x91, 0xb4, 0x01, 0x0e, + 0xe0, 0x6f, 0x07, 0x2f, 0xa1, 0x6f, 0x00, 0x2e, 0x41, 0x40, 0x40, 0xb2, + 0x02, 0x2f, 0xa1, 0x6f, 0x05, 0x42, 0x44, 0x42, 0x00, 0x2e, 0x8b, 0x6f, + 0xc0, 0x5e, 0xb8, 0x2e, 0x10, 0x50, 0x8d, 0x52, 0x4b, 0x50, 0xfb, 0x7f, + 0x98, 0x2e, 0x98, 0xb4, 0x4b, 0x52, 0x45, 0x82, 0x10, 0x30, 0x50, 0x42, + 0x60, 0x30, 0xfb, 0x6f, 0xc0, 0x2e, 0x40, 0x42, 0xf0, 0x5f, 0x10, 0x50, + 0x8f, 0x52, 0x4d, 0x50, 0xfb, 0x7f, 0x98, 0x2e, 0x98, 0xb4, 0x4d, 0x52, + 0x45, 0x82, 0x00, 0x30, 0x50, 0x42, 0x70, 0x30, 0xfb, 0x6f, 0xc0, 0x2e, + 0x40, 0x42, 0xf0, 0x5f, 0x12, 0x30, 0x12, 0x42, 0x02, 0x30, 0x12, 0x42, + 0x12, 0x42, 0x12, 0x42, 0x02, 0x42, 0x03, 0x80, 0x41, 0x84, 0x11, 0x42, + 0x02, 0x42, 0xb8, 0x2e, 0x48, 0x86, 0x90, 0x50, 0xc4, 0x40, 0x42, 0x84, + 0xf2, 0x7f, 0x5a, 0x25, 0x02, 0x41, 0xa2, 0xbf, 0x77, 0x85, 0x06, 0x41, + 0xff, 0xbb, 0x87, 0x42, 0x61, 0xbf, 0x07, 0x41, 0x6f, 0xbb, 0x86, 0x7f, + 0x7f, 0xbb, 0x96, 0x7f, 0xfe, 0x86, 0x86, 0x40, 0x80, 0x91, 0xc3, 0x40, + 0xd3, 0x7f, 0xe0, 0x7f, 0x13, 0x30, 0x05, 0x2f, 0x86, 0x6f, 0x80, 0x91, + 0x02, 0x2f, 0x96, 0x6f, 0x80, 0xb3, 0x60, 0x2f, 0x61, 0x25, 0x57, 0x40, + 0xc1, 0x91, 0xc1, 0x7f, 0x0f, 0x2f, 0x01, 0x30, 0x81, 0x43, 0x00, 0x2e, + 0xf2, 0x6f, 0x13, 0x40, 0x93, 0x42, 0x00, 0x2e, 0x13, 0x40, 0x93, 0x42, + 0x00, 0x2e, 0x00, 0x40, 0x80, 0x42, 0xbd, 0x80, 0xc0, 0x2e, 0x01, 0x42, + 0x70, 0x5f, 0x87, 0x83, 0x7a, 0x8d, 0x45, 0x40, 0x7b, 0x82, 0x45, 0x41, + 0x04, 0x41, 0xd5, 0xbf, 0x43, 0xbe, 0xc3, 0xba, 0xa5, 0x7f, 0x75, 0xba, + 0xb6, 0x7f, 0x05, 0x30, 0x97, 0x40, 0xc0, 0xb3, 0x09, 0x2f, 0x06, 0x40, + 0x47, 0x40, 0xb7, 0x05, 0x07, 0x30, 0x80, 0xa9, 0xfe, 0x05, 0xb7, 0x23, + 0x74, 0x0f, 0x5d, 0x23, 0xb6, 0x6f, 0x41, 0x82, 0x01, 0x80, 0x56, 0x0e, + 0xee, 0x2f, 0x40, 0x40, 0x28, 0x1a, 0xc4, 0x6f, 0xe0, 0x6f, 0xf2, 0x6f, + 0x02, 0x2f, 0x03, 0x30, 0x19, 0x2c, 0x03, 0x43, 0x05, 0x41, 0x6b, 0x29, + 0xa6, 0x6f, 0x05, 0x43, 0x6e, 0x0e, 0x11, 0x2f, 0xd4, 0x6f, 0x00, 0xb3, + 0x03, 0x2f, 0x3f, 0x89, 0xdc, 0x14, 0x27, 0x2e, 0x5e, 0xf0, 0x40, 0x25, + 0x32, 0x25, 0x15, 0x41, 0xd5, 0x42, 0x00, 0x2e, 0x15, 0x41, 0xd5, 0x42, + 0x00, 0x2e, 0x04, 0x41, 0xc4, 0x42, 0x00, 0x2e, 0x00, 0x2e, 0x41, 0x40, + 0x40, 0x90, 0x09, 0x2f, 0x11, 0x40, 0x91, 0x42, 0x00, 0x2e, 0x11, 0x40, + 0x91, 0x42, 0x00, 0x2e, 0x00, 0x40, 0x02, 0x2c, 0x80, 0x42, 0x43, 0x42, + 0x70, 0x5f, 0xb8, 0x2e, 0xb0, 0x50, 0x3a, 0x25, 0xf5, 0x86, 0x91, 0x58, + 0xc4, 0x42, 0x15, 0x30, 0x93, 0x58, 0x4d, 0x09, 0x81, 0x90, 0x64, 0x7f, + 0xf2, 0x7f, 0xeb, 0x7f, 0x02, 0x2f, 0x40, 0xb3, 0x90, 0x2e, 0x05, 0xb6, + 0x15, 0x0b, 0x00, 0xb3, 0x90, 0x2e, 0x05, 0xb6, 0x9a, 0x00, 0xe3, 0x30, + 0xcb, 0x08, 0x81, 0x40, 0x44, 0x84, 0xb1, 0xba, 0x46, 0x86, 0x49, 0x8e, + 0x97, 0x5c, 0xc2, 0x7f, 0x02, 0x84, 0x07, 0x25, 0xd3, 0x7f, 0x2b, 0x2e, + 0xa9, 0x00, 0x84, 0x40, 0xe3, 0x41, 0xe3, 0x04, 0xc4, 0x41, 0xc3, 0x43, + 0x2e, 0x18, 0x95, 0x5a, 0x8b, 0x40, 0x0b, 0x42, 0xb5, 0x00, 0x99, 0x5a, + 0xb2, 0x7f, 0x3a, 0x80, 0x95, 0x00, 0x05, 0x40, 0x41, 0x8b, 0x05, 0x42, + 0x03, 0x8a, 0xa2, 0x7f, 0x43, 0x84, 0x40, 0x41, 0x7b, 0x8b, 0x85, 0x7f, + 0x00, 0xb2, 0xdc, 0x05, 0x91, 0x7f, 0x04, 0x2f, 0xc3, 0x6f, 0x00, 0x2e, + 0xc4, 0x40, 0x01, 0x89, 0xc4, 0x42, 0x47, 0x86, 0x66, 0x41, 0x75, 0x7f, + 0x45, 0x88, 0x42, 0x82, 0x3e, 0x0f, 0x45, 0x41, 0x34, 0x2f, 0x46, 0x40, + 0x3e, 0x0e, 0x26, 0x2f, 0x85, 0x40, 0xc1, 0x33, 0xa9, 0x0e, 0x01, 0x30, + 0x02, 0x2f, 0xc3, 0x40, 0xc0, 0xb2, 0x1b, 0x2f, 0x82, 0x34, 0xaa, 0x0e, + 0x31, 0x2f, 0x01, 0x41, 0x7f, 0x82, 0x43, 0xa2, 0x02, 0x30, 0x02, 0x2f, + 0x00, 0x2e, 0x0c, 0x2c, 0x01, 0x30, 0x00, 0xb2, 0xd0, 0x6f, 0x11, 0x30, + 0x01, 0x2f, 0x02, 0x42, 0x02, 0x2d, 0x01, 0x42, 0x01, 0x30, 0xc0, 0x6f, + 0x00, 0x2e, 0x02, 0x42, 0x3e, 0x81, 0x04, 0x86, 0x02, 0x42, 0x02, 0x43, + 0xc2, 0x42, 0x19, 0x2d, 0xc0, 0x33, 0x80, 0x42, 0x16, 0x2d, 0xa0, 0x6f, + 0x28, 0x04, 0x38, 0x1e, 0x40, 0x42, 0x11, 0x30, 0x90, 0x6f, 0x22, 0x30, + 0x98, 0x2e, 0x08, 0xb6, 0x0c, 0x2c, 0x01, 0x30, 0xa1, 0x6f, 0xa9, 0x00, + 0x90, 0x6f, 0x01, 0x82, 0xba, 0x1c, 0x42, 0x42, 0x21, 0x30, 0x12, 0x30, + 0x98, 0x2e, 0x08, 0xb6, 0x01, 0x30, 0x72, 0x6f, 0xd4, 0xb1, 0xf5, 0xbd, + 0x6b, 0xba, 0x9f, 0x5a, 0x80, 0x40, 0x05, 0x18, 0xf5, 0xbe, 0xe3, 0x0a, + 0xeb, 0xbb, 0x3d, 0x0b, 0x80, 0x6f, 0xe3, 0x00, 0x04, 0x40, 0x63, 0x05, + 0xa1, 0x58, 0x2c, 0x18, 0xf5, 0xbe, 0x83, 0x42, 0xeb, 0xbb, 0xfd, 0x0b, + 0xb2, 0x6f, 0x5a, 0x01, 0xdf, 0x01, 0x7d, 0x1f, 0x15, 0x42, 0x9a, 0x04, + 0x05, 0x40, 0x5d, 0x05, 0x2c, 0x18, 0x75, 0xbe, 0xeb, 0xba, 0x2c, 0x0b, + 0xdc, 0x04, 0x9a, 0x1c, 0x02, 0x42, 0x04, 0x80, 0x00, 0x2e, 0x00, 0x40, + 0x00, 0xb2, 0x10, 0x2f, 0xc2, 0x6f, 0xc0, 0x33, 0x82, 0x40, 0x90, 0x0e, + 0x0b, 0x2f, 0xd1, 0x6f, 0x7e, 0x88, 0x03, 0x81, 0x3c, 0x84, 0x0b, 0x30, + 0x82, 0x86, 0x4b, 0x42, 0x0b, 0x42, 0x0b, 0x43, 0x8b, 0x42, 0xcb, 0x42, + 0x21, 0x30, 0x42, 0xb2, 0x02, 0x30, 0x9d, 0x50, 0x02, 0x22, 0x41, 0xb2, + 0x9b, 0x52, 0x08, 0x22, 0xf1, 0x6f, 0x40, 0x90, 0x11, 0x30, 0x06, 0x2f, + 0x22, 0x30, 0x02, 0x08, 0x00, 0xb2, 0x08, 0x2f, 0x23, 0x2e, 0x5e, 0xf0, + 0x06, 0x2d, 0x01, 0x08, 0x00, 0xb2, 0x02, 0x2f, 0x00, 0x31, 0x21, 0x2e, + 0x5e, 0xf0, 0xeb, 0x6f, 0x50, 0x5f, 0xb8, 0x2e, 0x07, 0x86, 0xfc, 0x88, + 0xc6, 0x40, 0x05, 0x41, 0x31, 0x1a, 0x12, 0x2f, 0x80, 0x91, 0x22, 0x2f, + 0xc1, 0x33, 0x29, 0x0f, 0x0a, 0x2f, 0x06, 0x80, 0x00, 0x2e, 0x00, 0x40, + 0x00, 0xb2, 0x01, 0x2f, 0x44, 0xa9, 0x03, 0x2f, 0x00, 0x30, 0xc0, 0x42, + 0x00, 0x43, 0xb8, 0x2e, 0xc2, 0x42, 0x01, 0x43, 0xb8, 0x2e, 0xc1, 0x33, + 0xa9, 0x0e, 0x0e, 0x2f, 0x43, 0x3c, 0xeb, 0x00, 0xcc, 0xa8, 0x0a, 0x2f, + 0x05, 0x86, 0xc2, 0x80, 0xc3, 0x40, 0x02, 0x42, 0x3c, 0x84, 0xc1, 0x80, + 0x81, 0x42, 0x82, 0x84, 0xc0, 0x2e, 0x80, 0x42, 0x00, 0x2e, 0xb8, 0x2e, + 0x05, 0x2e, 0x20, 0x01, 0x11, 0x30, 0x20, 0x50, 0x91, 0x08, 0xf0, 0x7f, + 0x80, 0xb2, 0xeb, 0x7f, 0x13, 0x2f, 0x01, 0x2e, 0x74, 0x00, 0x01, 0x90, + 0x02, 0x30, 0xa3, 0x50, 0x03, 0x2f, 0x25, 0x2e, 0x74, 0x00, 0x98, 0x2e, + 0xad, 0xb7, 0xf2, 0x6f, 0xa3, 0x52, 0x98, 0x2e, 0x57, 0xb6, 0x00, 0xb2, + 0x06, 0x2f, 0x80, 0x30, 0x21, 0x2e, 0x5e, 0xf0, 0x03, 0x2d, 0x10, 0x30, + 0x21, 0x2e, 0x74, 0x00, 0xeb, 0x6f, 0xe0, 0x5f, 0xb8, 0x2e, 0x30, 0x51, + 0x42, 0x8a, 0xe1, 0x7f, 0x83, 0x88, 0xdb, 0x7f, 0xc5, 0x7f, 0x1a, 0x25, + 0x05, 0x25, 0x93, 0x40, 0x06, 0x40, 0xb3, 0x01, 0x16, 0x42, 0xcb, 0x16, + 0x06, 0x40, 0xf3, 0x02, 0x13, 0x42, 0x54, 0x0e, 0xf5, 0x2f, 0x04, 0x40, + 0x12, 0x30, 0xa2, 0x28, 0x02, 0x42, 0x88, 0xa0, 0x00, 0x30, 0x90, 0x2e, + 0xa9, 0xb7, 0x6d, 0x84, 0x73, 0x88, 0x92, 0x7f, 0x70, 0x7f, 0x84, 0x7f, + 0xa2, 0x7f, 0x70, 0x86, 0xb5, 0x7f, 0x63, 0x7f, 0x75, 0x30, 0xa5, 0x52, + 0xa7, 0x54, 0xbd, 0x50, 0xaf, 0x58, 0xb7, 0x6f, 0xf4, 0x7f, 0x51, 0x7f, + 0x00, 0x2e, 0xd6, 0x41, 0xd4, 0x41, 0xb7, 0x7f, 0xcc, 0x17, 0x7d, 0x09, + 0x75, 0x01, 0x06, 0x30, 0x26, 0x03, 0x4d, 0xbe, 0xd3, 0xba, 0x6c, 0x0b, + 0x28, 0x0e, 0x05, 0x22, 0x2a, 0x0f, 0x90, 0x22, 0xd2, 0x42, 0x43, 0x7f, + 0x32, 0x7f, 0x00, 0x2e, 0xa9, 0x5a, 0xab, 0x58, 0xad, 0x5c, 0xa9, 0x56, + 0x98, 0x2e, 0x38, 0xb1, 0x91, 0x6f, 0x32, 0x6f, 0x50, 0x42, 0x91, 0x7f, + 0xb3, 0x30, 0x10, 0x25, 0x98, 0x2e, 0xdb, 0xb7, 0x71, 0x6f, 0x88, 0x28, + 0x43, 0x6f, 0x80, 0x6f, 0x72, 0x7f, 0x58, 0x0e, 0x51, 0x6f, 0x44, 0x82, + 0xa7, 0x54, 0xbd, 0x50, 0x75, 0x30, 0xaf, 0x58, 0xcd, 0x2f, 0xb1, 0x6f, + 0x46, 0x84, 0xe1, 0x6f, 0x4e, 0x80, 0x81, 0x40, 0xb2, 0x7f, 0x90, 0x7f, + 0x12, 0x30, 0x98, 0x2e, 0xcc, 0xb7, 0xb1, 0x6f, 0x7c, 0x8a, 0xa2, 0x6f, + 0xb5, 0x7f, 0x40, 0x42, 0x98, 0x2e, 0xf4, 0x01, 0x95, 0xbc, 0x0b, 0xb9, + 0x51, 0x0a, 0x62, 0x6f, 0xa1, 0x7f, 0x98, 0x2e, 0xf4, 0x01, 0x95, 0xbc, + 0x0b, 0xb9, 0x11, 0x0a, 0xa1, 0x6f, 0x49, 0x17, 0x48, 0x18, 0x88, 0x16, + 0xe8, 0x18, 0xd1, 0x18, 0x27, 0x25, 0x16, 0x25, 0x80, 0x7f, 0x98, 0x2e, + 0xbe, 0x00, 0xb5, 0x6f, 0xe1, 0x6f, 0x43, 0x41, 0x4b, 0x84, 0x4c, 0x8c, + 0xb0, 0x7f, 0x62, 0x7f, 0x4a, 0x88, 0x7e, 0x8b, 0xc0, 0x90, 0x56, 0x7f, + 0x13, 0x2f, 0x45, 0x7f, 0x34, 0x7f, 0xb3, 0x30, 0xb1, 0x52, 0xb2, 0x6f, + 0x98, 0x2e, 0xdb, 0xb7, 0x71, 0x6f, 0x88, 0x0e, 0x34, 0x6f, 0x45, 0x6f, + 0xe1, 0x6f, 0x06, 0x2f, 0x34, 0x25, 0x1b, 0x30, 0x10, 0x6f, 0x22, 0x6f, + 0xdb, 0x42, 0xd0, 0x42, 0xc2, 0x42, 0x02, 0x30, 0x00, 0x6f, 0x00, 0xa8, + 0x90, 0x05, 0x13, 0x6f, 0x86, 0x23, 0xc0, 0xa8, 0xd3, 0x05, 0xdf, 0x23, + 0xb7, 0x05, 0xb3, 0x5e, 0x37, 0x0f, 0x4d, 0x8c, 0x07, 0x30, 0x19, 0x2f, + 0x44, 0x7f, 0x00, 0x2e, 0x24, 0x6f, 0xb3, 0x5e, 0xa7, 0x0e, 0x44, 0x6f, + 0x07, 0x30, 0x11, 0x2f, 0xc7, 0x5e, 0xdf, 0x00, 0xc1, 0x5e, 0x5f, 0x0e, + 0x02, 0x2f, 0x00, 0x2e, 0x0b, 0x2c, 0x07, 0x30, 0xc9, 0x56, 0x03, 0x00, + 0xc3, 0x56, 0x43, 0x0e, 0x02, 0x2f, 0x00, 0x2e, 0x03, 0x2c, 0x07, 0x30, + 0x82, 0x43, 0x17, 0x30, 0x41, 0x86, 0xc0, 0x91, 0x0e, 0x2f, 0xc0, 0x40, + 0x01, 0x90, 0x09, 0x2f, 0x80, 0x41, 0x14, 0x30, 0x04, 0x28, 0x80, 0x43, + 0x06, 0xa0, 0x03, 0x2f, 0xc8, 0x80, 0xbb, 0x58, 0xc2, 0x42, 0x04, 0x42, + 0x66, 0x2c, 0x00, 0x30, 0x90, 0x6f, 0x00, 0x2e, 0x00, 0x40, 0x00, 0xa8, + 0x00, 0x30, 0x5e, 0x2f, 0x00, 0x41, 0x00, 0xb2, 0x00, 0x30, 0x5a, 0x2f, + 0x49, 0x82, 0xb2, 0x6f, 0x43, 0x7f, 0xb5, 0x7f, 0x94, 0x7f, 0xb3, 0x30, + 0x41, 0x40, 0x98, 0x2e, 0xdb, 0xb7, 0x71, 0x6f, 0x88, 0x0f, 0xb5, 0x6f, + 0xe1, 0x6f, 0x02, 0x30, 0x00, 0x30, 0x4a, 0x2f, 0x80, 0x6f, 0xc5, 0x58, + 0x04, 0x00, 0xbf, 0x58, 0x44, 0x0e, 0x02, 0x2f, 0x00, 0x2e, 0x43, 0x2c, + 0x00, 0x30, 0xa0, 0x6f, 0xb5, 0x58, 0x84, 0x0e, 0x00, 0x30, 0x3c, 0x2f, + 0xb7, 0x54, 0x21, 0x6f, 0xb5, 0x7f, 0x98, 0x2e, 0xcc, 0xb7, 0x10, 0x25, + 0xb3, 0x30, 0x21, 0x25, 0x98, 0x2e, 0xdb, 0xb7, 0x02, 0x6f, 0xa0, 0x7f, + 0xb3, 0x30, 0x12, 0x25, 0x98, 0x2e, 0xdb, 0xb7, 0x12, 0x6f, 0x80, 0x7f, + 0xb3, 0x30, 0x12, 0x25, 0x98, 0x2e, 0xdb, 0xb7, 0x81, 0x6f, 0x88, 0x28, + 0x87, 0x52, 0x98, 0x2e, 0xcc, 0xb7, 0xa1, 0x6f, 0x88, 0x0f, 0xb5, 0x6f, + 0xe1, 0x6f, 0x02, 0x30, 0x00, 0x30, 0x1a, 0x2f, 0x44, 0x6f, 0x00, 0x2e, + 0x00, 0x41, 0x00, 0xb2, 0x0f, 0x2f, 0x64, 0x6f, 0x10, 0x6f, 0x04, 0x41, + 0x84, 0x0e, 0x00, 0x30, 0x0f, 0x2f, 0x54, 0x6f, 0x20, 0x6f, 0x04, 0x41, + 0x84, 0x0f, 0x00, 0x30, 0x09, 0x2f, 0x94, 0x6f, 0x10, 0x30, 0x07, 0x2c, + 0x02, 0x43, 0x08, 0x87, 0xb9, 0x50, 0xd0, 0x42, 0x10, 0x30, 0x00, 0x43, + 0xc2, 0x42, 0x0b, 0x30, 0x4b, 0x43, 0x7a, 0x8b, 0xc4, 0x6f, 0x06, 0x89, + 0x52, 0x43, 0x52, 0x43, 0x6c, 0x0e, 0xfb, 0x2f, 0x78, 0x85, 0x00, 0x2e, + 0x82, 0x40, 0x02, 0x1a, 0x02, 0x2f, 0x00, 0x2e, 0x02, 0x2c, 0x40, 0x42, + 0x00, 0x30, 0x00, 0x2e, 0xdb, 0x6f, 0xd0, 0x5e, 0xb8, 0x2e, 0x08, 0x82, + 0x02, 0x30, 0x12, 0x42, 0x08, 0x86, 0xc2, 0x88, 0x87, 0x5a, 0x12, 0x43, + 0x05, 0x43, 0x02, 0x8b, 0x7c, 0x8d, 0x42, 0x43, 0x14, 0x30, 0xbe, 0x8b, + 0x04, 0x42, 0x45, 0x81, 0x42, 0x43, 0x02, 0x42, 0x35, 0x80, 0xb9, 0x5e, + 0xa5, 0x5a, 0xc7, 0x42, 0x84, 0x43, 0x52, 0x43, 0x12, 0x42, 0x52, 0x43, + 0x12, 0x42, 0x52, 0x43, 0x52, 0x43, 0x41, 0x0e, 0xf7, 0x2f, 0xb8, 0x2e, + 0x0a, 0x0c, 0x55, 0x56, 0x03, 0x09, 0x0a, 0x04, 0x00, 0xb3, 0x07, 0x2f, + 0x88, 0x0c, 0x93, 0x08, 0x80, 0xb2, 0x03, 0x2f, 0x53, 0x50, 0xc0, 0x2e, + 0x40, 0xac, 0x03, 0x22, 0xb8, 0x2e, 0xff, 0x88, 0x10, 0x30, 0x4a, 0x0d, + 0x0a, 0x18, 0x04, 0x15, 0x4c, 0x16, 0x5f, 0xb9, 0x79, 0x08, 0x53, 0x5a, + 0x95, 0x00, 0x34, 0x09, 0x40, 0x90, 0x02, 0x2f, 0x00, 0x91, 0x00, 0x2f, + 0x00, 0x30, 0xd8, 0x00, 0xc0, 0xb2, 0x0b, 0x2f, 0xd0, 0xa0, 0x03, 0x2f, + 0xf0, 0x86, 0xbb, 0x11, 0x07, 0x2c, 0xce, 0x17, 0x01, 0x31, 0x4b, 0x04, + 0x79, 0x14, 0x33, 0x12, 0xfb, 0x11, 0x81, 0x0b, 0xce, 0x16, 0xc0, 0x2e, + 0x7b, 0x1a, 0x16, 0x22, 0x80, 0x2e, 0x18, 0x00, 0x80, 0x2e, 0x18, 0x00, + 0x80, 0x2e, 0x18, 0x00, 0x80, 0x2e, 0x18, 0x00, 0x80, 0x2e, 0x18, 0x00, + 0x80, 0x2e, 0x18, 0x00, 0x80, 0x2e, 0x18, 0x00, 0x80, 0x2e, 0x18, 0x00, + 0x80, 0x2e, 0x18, 0x00, 0x80, 0x2e, 0x18, 0x00, 0x80, 0x2e, 0x18, 0x00, + 0x80, 0x2e, 0x18, 0x00, 0x80, 0x2e, 0x18, 0x00, 0x80, 0x2e, 0x18, 0x00, + 0x80, 0x2e, 0x18, 0x00, 0x80, 0x2e, 0x18, 0x00, 0x80, 0x2e, 0x18, 0x00, + 0x80, 0x2e, 0x18, 0x00, 0x80, 0x2e, 0x18, 0x00, 0x80, 0x2e, 0x18, 0x00, + 0x80, 0x2e, 0x18, 0x00, 0x80, 0x2e, 0x18, 0x00, 0x80, 0x2e, 0x18, 0x00, + 0x80, 0x2e, 0x18, 0x00, 0x80, 0x2e, 0x18, 0x00, 0x80, 0x2e, 0x18, 0x00, + 0x80, 0x2e, 0x18, 0x00, 0x80, 0x2e, 0x18, 0x00, 0x80, 0x2e, 0x18, 0x00, + 0x80, 0x2e, 0x18, 0x00, 0x80, 0x2e, 0x18, 0x00, 0x80, 0x2e, 0x18, 0x00, + 0x80, 0x2e, 0x18, 0x00, 0x80, 0x2e, 0x18, 0x00, 0x80, 0x2e, 0x18, 0x00, + 0x80, 0x2e, 0x18, 0x00, 0x80, 0x2e, 0x18, 0x00, 0x80, 0x2e, 0x18, 0x00, + 0x80, 0x2e, 0x18, 0x00, 0x80, 0x2e, 0x18, 0x00, 0x80, 0x2e, 0x18, 0x00, + 0x80, 0x2e, 0x18, 0x00, 0x80, 0x2e, 0x18, 0x00, 0x80, 0x2e, 0x18, 0x00, + 0x80, 0x2e, 0x18, 0x00, 0x80, 0x2e, 0x18, 0x00, 0x80, 0x2e, 0x18, 0x00, + 0x80, 0x2e, 0x18, 0x00, 0x80, 0x2e, 0x18, 0x00, 0x80, 0x2e, 0x18, 0x00, + 0x80, 0x2e, 0x18, 0x00, 0x80, 0x2e, 0x18, 0x00, 0x80, 0x2e, 0x18, 0x00, + 0x80, 0x2e, 0x18, 0x00, 0x80, 0x2e, 0x18, 0x00, 0x80, 0x2e, 0x18, 0x00, + 0x80, 0x2e, 0x18, 0x00, 0x80, 0x2e, 0x18, 0x00, 0x80, 0x2e, 0x18, 0x00, + 0x80, 0x2e, 0x18, 0x00, 0x80, 0x2e, 0x18, 0x00, 0x80, 0x2e, 0x18, 0x00, + 0x80, 0x2e, 0x18, 0x00, 0x80, 0x2e, 0x18, 0x00, 0x80, 0x2e, 0x18, 0x00, + 0x80, 0x2e, 0x18, 0x00, 0x80, 0x2e, 0x18, 0x00, 0x80, 0x2e, 0x18, 0x00, + 0x80, 0x2e, 0x18, 0x00, 0x80, 0x2e, 0x18, 0x00, 0x80, 0x2e, 0x18, 0x00, + 0x80, 0x2e, 0x18, 0x00, 0x80, 0x2e, 0x18, 0x00, 0x80, 0x2e, 0x18, 0x00, + 0x80, 0x2e, 0x18, 0x00, 0x80, 0x2e, 0x18, 0x00, 0x80, 0x2e, 0x18, 0x00, + 0x80, 0x2e, 0x18, 0x00, 0x80, 0x2e, 0x18, 0x00, 0x80, 0x2e, 0x18, 0x00, + 0x80, 0x2e, 0x18, 0x00, 0x80, 0x2e, 0x18, 0x00, 0x80, 0x2e, 0x18, 0x00, + 0x80, 0x2e, 0x18, 0x00, 0x80, 0x2e, 0x18, 0x00, 0x80, 0x2e, 0x18, 0x00, + 0x80, 0x2e, 0x18, 0x00, 0x80, 0x2e, 0x18, 0x00, 0x80, 0x2e, 0x18, 0x00, + 0x80, 0x2e, 0x18, 0x00, 0x80, 0x2e, 0x18, 0x00, 0x80, 0x2e, 0x18, 0x00, + 0x80, 0x2e, 0x18, 0x00, 0x80, 0x2e, 0x18, 0x00, 0x80, 0x2e, 0x18, 0x00, + 0x80, 0x2e, 0x18, 0x00, 0x80, 0x2e, 0x18, 0x00, 0x80, 0x2e, 0x18, 0x00, + 0x80, 0x2e, 0x18, 0x00, 0x80, 0x2e, 0x18, 0x00, 0x80, 0x2e, 0x18, 0x00, + 0x80, 0x2e, 0x18, 0x00, 0x80, 0x2e, 0x18, 0x00, 0x80, 0x2e, 0x18, 0x00, + 0x80, 0x2e, 0x18, 0x00, 0x80, 0x2e, 0x18, 0x00, 0x80, 0x2e, 0x18, 0x00, + 0x80, 0x2e, 0x18, 0x00, 0x80, 0x2e, 0x18, 0x00, 0x80, 0x2e, 0x18, 0x00, + 0x80, 0x2e, 0x18, 0x00, 0x80, 0x2e, 0x18, 0x00, 0x80, 0x2e, 0x18, 0x00, + 0x80, 0x2e, 0x18, 0x00, 0x80, 0x2e, 0x18, 0x00, 0x80, 0x2e, 0x18, 0x00, + 0x80, 0x2e, 0x18, 0x00, 0x80, 0x2e, 0x18, 0x00, 0x80, 0x2e, 0x18, 0x00, + 0x80, 0x2e, 0x18, 0x00, 0x80, 0x2e, 0x18, 0x00, 0x80, 0x2e, 0x18, 0x00, + 0x80, 0x2e, 0x18, 0x00, 0x80, 0x2e, 0x18, 0x00, 0x80, 0x2e, 0x18, 0x00, + 0x80, 0x2e, 0x18, 0x00, 0x80, 0x2e, 0x18, 0x00, 0x80, 0x2e, 0x18, 0x00, + 0x80, 0x2e, 0x18, 0x00, 0x80, 0x2e, 0x18, 0x00, 0x80, 0x2e, 0x18, 0x00, + 0x80, 0x2e, 0x18, 0x00, 0x80, 0x2e, 0x18, 0x00, 0x80, 0x2e, 0x18, 0x00, + 0x80, 0x2e, 0x18, 0x00, 0x80, 0x2e, 0x18, 0x00, 0x80, 0x2e, 0x18, 0x00, + 0x80, 0x2e, 0x18, 0x00, 0x80, 0x2e, 0x18, 0x00, 0x80, 0x2e, 0x18, 0x00, + 0x80, 0x2e, 0x18, 0x00, 0x80, 0x2e, 0x18, 0x00, 0x80, 0x2e, 0x18, 0x00, + 0x80, 0x2e, 0x18, 0x00, 0x80, 0x2e, 0x18, 0x00, 0x80, 0x2e, 0x18, 0x00, + 0x80, 0x2e, 0x18, 0x00, 0x80, 0x2e, 0x18, 0x00, 0x80, 0x2e, 0x18, 0x00, + 0x80, 0x2e, 0x18, 0x00, 0x80, 0x2e, 0x18, 0x00, 0x80, 0x2e, 0x18, 0x00, + 0x80, 0x2e, 0x18, 0x00, 0x80, 0x2e, 0x18, 0x00, 0x80, 0x2e, 0x18, 0x00, + 0x80, 0x2e, 0x18, 0x00, 0x80, 0x2e, 0x18, 0x00, 0x80, 0x2e, 0x18, 0x00, + 0x80, 0x2e, 0x18, 0x00, 0x80, 0x2e, 0x18, 0x00, 0x80, 0x2e, 0x18, 0x00, + 0x80, 0x2e, 0x18, 0x00, 0x80, 0x2e, 0x18, 0x00, 0x80, 0x2e, 0x18, 0x00, + 0x80, 0x2e, 0x18, 0x00, 0x80, 0x2e, 0x18, 0x00, 0x80, 0x2e, 0x18, 0x00, + 0x80, 0x2e, 0x18, 0x00, 0x80, 0x2e, 0x18, 0x00, 0x80, 0x2e, 0x18, 0x00, + 0x80, 0x2e, 0x18, 0x00, 0x80, 0x2e, 0x18, 0x00, 0x80, 0x2e, 0x18, 0x00, + 0x80, 0x2e, 0x18, 0x00, 0x80, 0x2e, 0x18, 0x00, 0x80, 0x2e, 0x18, 0x00, + 0x80, 0x2e, 0x18, 0x00, 0x80, 0x2e, 0x18, 0x00, 0x80, 0x2e, 0x18, 0x00, + 0x80, 0x2e, 0x18, 0x00, 0x80, 0x2e, 0x18, 0x00, 0x80, 0x2e, 0x18, 0x00, + 0x80, 0x2e, 0x18, 0x00, 0x80, 0x2e, 0x18, 0x00, 0x80, 0x2e, 0x18, 0x00, + 0x80, 0x2e, 0x18, 0x00, 0x80, 0x2e, 0x18, 0x00, 0x80, 0x2e, 0x18, 0x00, + 0x80, 0x2e, 0x18, 0x00, 0x80, 0x2e, 0x18, 0x00, 0x80, 0x2e, 0x18, 0x00, + 0x80, 0x2e, 0x18, 0x00, 0x80, 0x2e, 0x18, 0x00, 0x80, 0x2e, 0x18, 0x00, + 0x80, 0x2e, 0x18, 0x00, 0x80, 0x2e, 0x18, 0x00, 0x80, 0x2e, 0x18, 0x00, + 0x80, 0x2e, 0x18, 0x00, 0x80, 0x2e, 0x18, 0x00, 0x80, 0x2e, 0x18, 0x00, + 0x80, 0x2e, 0x18, 0x00, 0x80, 0x2e, 0x18, 0x00, 0x80, 0x2e, 0x18, 0x00, + 0x80, 0x2e, 0x18, 0x00, 0x80, 0x2e, 0x18, 0x00, 0x80, 0x2e, 0x18, 0x00, + 0x80, 0x2e, 0x18, 0x00, 0x80, 0x2e, 0x18, 0x00, 0x80, 0x2e, 0x18, 0x00, + 0x80, 0x2e, 0x18, 0x00, 0x80, 0x2e, 0x18, 0x00, 0x80, 0x2e, 0x18, 0x00, + 0x80, 0x2e, 0x18, 0x00, 0x80, 0x2e, 0x18, 0x00, 0x80, 0x2e, 0x18, 0x00, + 0x80, 0x2e, 0x18, 0x00, 0x80, 0x2e, 0x18, 0x00, 0x80, 0x2e, 0x18, 0x00, + 0x80, 0x2e, 0x18, 0x00, 0x80, 0x2e, 0x18, 0x00, 0x80, 0x2e, 0x18, 0x00, + 0x80, 0x2e, 0x18, 0x00, 0x80, 0x2e, 0x18, 0x00, 0x80, 0x2e, 0x18, 0x00, + 0x80, 0x2e, 0x18, 0x00, 0x80, 0x2e, 0x18, 0x00, 0x80, 0x2e, 0x18, 0x00, + 0x80, 0x2e, 0x18, 0x00, 0x80, 0x2e, 0x18, 0x00, 0x80, 0x2e, 0x18, 0x00, + 0x80, 0x2e, 0x18, 0x00, 0x80, 0x2e, 0x18, 0x00, 0x80, 0x2e, 0x18, 0x00, + 0x80, 0x2e, 0x18, 0x00, 0x80, 0x2e, 0x18, 0x00, 0x80, 0x2e, 0x18, 0x00, + 0x80, 0x2e, 0x18, 0x00, 0x80, 0x2e, 0x18, 0x00, 0x80, 0x2e, 0x18, 0x00, + 0x80, 0x2e, 0x18, 0x00, 0x80, 0x2e, 0x18, 0x00, 0x80, 0x2e, 0x18, 0x00, + 0x80, 0x2e, 0x18, 0x00, 0x80, 0x2e, 0x18, 0x00, 0x80, 0x2e, 0x18, 0x00, + 0x80, 0x2e, 0x18, 0x00, 0x80, 0x2e, 0x18, 0x00, 0x80, 0x2e, 0x18, 0x00, + 0x80, 0x2e, 0x18, 0x00, 0x80, 0x2e, 0x18, 0x00, 0x80, 0x2e, 0x18, 0x00, + 0x80, 0x2e, 0x18, 0x00, 0x80, 0x2e, 0x18, 0x00, 0x80, 0x2e, 0x18, 0x00, + 0x80, 0x2e, 0x18, 0x00, 0x80, 0x2e, 0x18, 0x00, 0x80, 0x2e, 0x18, 0x00 +}; + const uint8_t bma423_config_file[] = { 0x80, 0x2e, 0xfe, 0x00, 0x80, 0x2e, 0xf1, 0x01, 0xc8, 0x2e, 0x00, 0x2e, 0x80, 0x2e, 0xfc, 0x00, 0x80, 0x2e, 0xfb, 0x00, 0x80, 0x2e, 0xff, 0x00, 0x80, 0x2e, 0xfd, 0x00, 0x80, 0x2e, 0x42, 0xb0, 0x50, 0x39, 0x21, 0x2e, 0xb0, 0xf0, @@ -450,7 +965,7 @@ int8_t bma423_init(struct bma4_dev *dev) rslt = bma4_init(dev); if (rslt == BMA4_OK) { - if (dev->chip_id == BMA423_CHIP_ID) + if (dev->chip_id == BMA423_CHIP_ID || dev->chip_id == BMA425_CHIP_ID) { /* Resolution of BMA423 sensor is 12 bit */ dev->resolution = 12; @@ -478,7 +993,7 @@ int8_t bma423_write_config_file(struct bma4_dev *dev) if (dev != NULL) { - if (dev->chip_id == BMA423_CHIP_ID) + if (dev->chip_id == BMA423_CHIP_ID || dev->chip_id == BMA425_CHIP_ID) { /* Configuration stream read/write length boundary * check @@ -492,7 +1007,10 @@ int8_t bma423_write_config_file(struct bma4_dev *dev) } /*Assign stream data */ - dev->config_file_ptr = bma423_config_file; + if(dev->chip_id == BMA423_CHIP_ID) + dev->config_file_ptr = bma423_config_file; + else if(dev->chip_id == BMA425_CHIP_ID) + dev->config_file_ptr = bma425_config_file; rslt = bma4_write_config_file(dev); } else @@ -526,7 +1044,7 @@ int8_t bma423_get_config_id(uint16_t *config_id, struct bma4_dev *dev) if (dev != NULL) { - if (dev->chip_id == BMA423_CHIP_ID) + if (dev->chip_id == BMA423_CHIP_ID || dev->chip_id == BMA425_CHIP_ID) { rslt = bma4_read_regs(BMA4_FEATURE_CONFIG_ADDR, feature_config, BMA423_FEATURE_SIZE, dev); if (rslt == BMA4_OK) @@ -559,7 +1077,7 @@ int8_t bma423_map_interrupt(uint8_t int_line, uint16_t int_map, uint8_t enable, if (dev != NULL) { - if (dev->chip_id == BMA423_CHIP_ID) + if (dev->chip_id == BMA423_CHIP_ID || dev->chip_id == BMA425_CHIP_ID) { if (int_line <= 1) { @@ -593,7 +1111,7 @@ int8_t bma423_read_int_status(uint16_t *int_status, struct bma4_dev *dev) if (dev != NULL) { - if (dev->chip_id == BMA423_CHIP_ID) + if (dev->chip_id == BMA423_CHIP_ID || dev->chip_id == BMA425_CHIP_ID) { /* Read the interrupt status */ rslt = bma4_read_int_status(int_status, dev); @@ -622,7 +1140,7 @@ int8_t bma423_feature_enable(uint8_t feature, uint8_t enable, struct bma4_dev *d if (dev != NULL) { - if (dev->chip_id == BMA423_CHIP_ID) + if (dev->chip_id == BMA423_CHIP_ID || dev->chip_id == BMA425_CHIP_ID) { /* Read feature configuration data */ rslt = bma4_read_regs(BMA4_FEATURE_CONFIG_ADDR, feature_config, len, dev); @@ -669,7 +1187,7 @@ int8_t bma423_set_remap_axes(const struct bma423_axes_remap *remap_data, struct if (dev != NULL) { - if (dev->chip_id == BMA423_CHIP_ID) + if (dev->chip_id == BMA423_CHIP_ID || dev->chip_id == BMA425_CHIP_ID) { rslt = bma4_read_regs(BMA4_FEATURE_CONFIG_ADDR, feature_config, BMA423_FEATURE_SIZE, dev); if (rslt == BMA4_OK) @@ -708,7 +1226,7 @@ int8_t bma423_get_remap_axes(struct bma423_axes_remap *remap_data, struct bma4_d if (dev != NULL) { - if (dev->chip_id == BMA423_CHIP_ID) + if (dev->chip_id == BMA423_CHIP_ID || dev->chip_id == BMA425_CHIP_ID) { rslt = bma4_read_regs(BMA4_FEATURE_CONFIG_ADDR, feature_config, BMA423_FEATURE_SIZE, dev); if (rslt == BMA4_OK) @@ -997,7 +1515,7 @@ int8_t bma423_step_detector_enable(uint8_t enable, struct bma4_dev *dev) if (dev != NULL) { - if (dev->chip_id == BMA423_CHIP_ID) + if (dev->chip_id == BMA423_CHIP_ID || dev->chip_id == BMA425_CHIP_ID) { rslt = bma4_read_regs(BMA4_FEATURE_CONFIG_ADDR, feature_config, BMA423_FEATURE_SIZE, dev); if (rslt == BMA4_OK) @@ -1034,7 +1552,7 @@ int8_t bma423_step_counter_set_watermark(uint16_t step_counter_wm, struct bma4_d if (dev != NULL) { - if (dev->chip_id == BMA423_CHIP_ID) + if (dev->chip_id == BMA423_CHIP_ID || dev->chip_id == BMA425_CHIP_ID) { rslt = bma4_read_regs(BMA4_FEATURE_CONFIG_ADDR, feature_config, BMA423_FEATURE_SIZE, dev); if (rslt == BMA4_OK) @@ -1088,7 +1606,7 @@ int8_t bma423_step_counter_get_watermark(uint16_t *step_counter_wm, struct bma4_ if (dev != NULL) { - if (dev->chip_id == BMA423_CHIP_ID) + if (dev->chip_id == BMA423_CHIP_ID || dev->chip_id == BMA425_CHIP_ID) { rslt = bma4_read_regs(BMA4_FEATURE_CONFIG_ADDR, feature_config, BMA423_FEATURE_SIZE, dev); if (rslt == BMA4_OK) @@ -1125,7 +1643,7 @@ int8_t bma423_reset_step_counter(struct bma4_dev *dev) if (dev != NULL) { - if (dev->chip_id == BMA423_CHIP_ID) + if (dev->chip_id == BMA423_CHIP_ID || dev->chip_id == BMA425_CHIP_ID) { rslt = bma4_read_regs(BMA4_FEATURE_CONFIG_ADDR, feature_config, BMA423_FEATURE_SIZE, dev); if (rslt == BMA4_OK) @@ -1162,7 +1680,7 @@ int8_t bma423_step_counter_output(uint32_t *step_count, struct bma4_dev *dev) if (dev != NULL) { - if (dev->chip_id == BMA423_CHIP_ID) + if (dev->chip_id == BMA423_CHIP_ID || dev->chip_id == BMA425_CHIP_ID) { /* Reads the step counter output data from the * gpio register @@ -1200,7 +1718,7 @@ int8_t bma423_activity_output(uint8_t *activity, struct bma4_dev *dev) if (dev != NULL) { - if (dev->chip_id == BMA423_CHIP_ID) + if (dev->chip_id == BMA423_CHIP_ID || dev->chip_id == BMA425_CHIP_ID) { /* Reads the activity output from the gpio register */ rslt = bma4_read_regs(BMA4_ACTIVITY_OUT_ADDR, &data, 1, dev); @@ -1234,7 +1752,7 @@ int8_t bma423_stepcounter_get_parameter(struct bma423_stepcounter_settings *sett if (dev != NULL) { - if (dev->chip_id == BMA423_CHIP_ID) + if (dev->chip_id == BMA423_CHIP_ID || dev->chip_id == BMA425_CHIP_ID) { rslt = bma4_read_regs(BMA4_FEATURE_CONFIG_ADDR, feature_config, BMA423_FEATURE_SIZE, dev); if (rslt == BMA4_OK) @@ -1269,7 +1787,7 @@ int8_t bma423_stepcounter_set_parameter(const struct bma423_stepcounter_settings if (dev != NULL) { - if (dev->chip_id == BMA423_CHIP_ID) + if (dev->chip_id == BMA423_CHIP_ID || dev->chip_id == BMA425_CHIP_ID) { rslt = bma4_read_regs(BMA4_FEATURE_CONFIG_ADDR, feature_config, BMA423_FEATURE_SIZE, dev); if (rslt == BMA4_OK) @@ -1306,7 +1824,7 @@ int8_t bma423_single_tap_set_sensitivity(uint8_t sensitivity, struct bma4_dev *d if (dev != NULL) { - if (dev->chip_id == BMA423_CHIP_ID) + if (dev->chip_id == BMA423_CHIP_ID || dev->chip_id == BMA425_CHIP_ID) { rslt = bma4_read_regs(BMA4_FEATURE_CONFIG_ADDR, feature_config, BMA423_FEATURE_SIZE, dev); if (rslt == BMA4_OK) @@ -1341,7 +1859,7 @@ int8_t bma423_double_tap_set_sensitivity(uint8_t sensitivity, struct bma4_dev *d if (dev != NULL) { - if (dev->chip_id == BMA423_CHIP_ID) + if (dev->chip_id == BMA423_CHIP_ID || dev->chip_id == BMA425_CHIP_ID) { rslt = bma4_read_regs(BMA4_FEATURE_CONFIG_ADDR, feature_config, BMA423_FEATURE_SIZE, dev); if (rslt == BMA4_OK) @@ -1376,7 +1894,7 @@ int8_t bma423_single_tap_get_sensitivity(uint8_t *sensitivity, struct bma4_dev * if (dev != NULL) { - if (dev->chip_id == BMA423_CHIP_ID) + if (dev->chip_id == BMA423_CHIP_ID || dev->chip_id == BMA425_CHIP_ID) { rslt = bma4_read_regs(BMA4_FEATURE_CONFIG_ADDR, feature_config, BMA423_FEATURE_SIZE, dev); if (rslt == BMA4_OK) @@ -1409,7 +1927,7 @@ int8_t bma423_double_tap_get_sensitivity(uint8_t *sensitivity, struct bma4_dev * if (dev != NULL) { - if (dev->chip_id == BMA423_CHIP_ID) + if (dev->chip_id == BMA423_CHIP_ID || dev->chip_id == BMA425_CHIP_ID) { rslt = bma4_read_regs(BMA4_FEATURE_CONFIG_ADDR, feature_config, BMA423_FEATURE_SIZE, dev); if (rslt == BMA4_OK) diff --git a/src/drivers/Bma421_C/bma423.h b/src/drivers/Bma421_C/bma423.h index 96e5d8e3..b58e0d21 100644 --- a/src/drivers/Bma421_C/bma423.h +++ b/src/drivers/Bma421_C/bma423.h @@ -52,6 +52,7 @@ extern "C" { /**\name Chip ID of BMA423 sensor */ #define BMA423_CHIP_ID UINT8_C(0x11) +#define BMA425_CHIP_ID UINT8_C(0x13) /**\ Configuration ID start position of BMA423 sensor */ #define BMA423_CONFIG_ID_START_ADDR UINT8_C(66) diff --git a/src/systemtask/SystemTask.cpp b/src/systemtask/SystemTask.cpp index 38e9793c..13755f71 100644 --- a/src/systemtask/SystemTask.cpp +++ b/src/systemtask/SystemTask.cpp @@ -126,6 +126,7 @@ void SystemTask::Work() { twiMaster.Init(); motionSensor.Init(); + motionController.Init(motionSensor.DeviceType()); settingsController.Init(); displayApp.Register(this); From 20a24f8cf56551eae1202f8dc5733bd0cf61adbf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jean-Fran=C3=A7ois=20Milants?= <jf@codingfield.com> Date: Sat, 19 Jun 2021 20:59:18 +0200 Subject: [PATCH 27/58] Set version to 1.2.0 --- CMakeLists.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 1a488eaa..f2e467e9 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,5 +1,5 @@ cmake_minimum_required(VERSION 3.10) -project(pinetime VERSION 1.1.0 LANGUAGES C CXX ASM) +project(pinetime VERSION 1.2.0 LANGUAGES C CXX ASM) set(CMAKE_C_STANDARD 99) set(CMAKE_CXX_STANDARD 14) From 572be3e857f86047926f7ccae5a4197958580f98 Mon Sep 17 00:00:00 2001 From: Avamander <avamander@gmail.com> Date: Tue, 22 Jun 2021 21:31:31 +0300 Subject: [PATCH 28/58] Removed an illogical comparison from SystemInfo and St7789 driver (#449) * Removed an illogical comparison --- src/displayapp/screens/SystemInfo.cpp | 3 --- src/drivers/St7789.cpp | 3 ++- 2 files changed, 2 insertions(+), 4 deletions(-) diff --git a/src/displayapp/screens/SystemInfo.cpp b/src/displayapp/screens/SystemInfo.cpp index 0b16d633..1cf895c7 100644 --- a/src/displayapp/screens/SystemInfo.cpp +++ b/src/displayapp/screens/SystemInfo.cpp @@ -141,9 +141,6 @@ std::unique_ptr<Screen> SystemInfo::CreateScreen2() { uptimeSeconds = uptimeSeconds % secondsInAMinute; // TODO handle more than 100 days of uptime - if (batteryPercent == -1) - batteryPercent = 0; - // hack to not use the flot functions from printf uint8_t batteryVoltageBytes[2]; batteryVoltageBytes[1] = static_cast<uint8_t>(batteryVoltage); // truncate whole numbers diff --git a/src/drivers/St7789.cpp b/src/drivers/St7789.cpp index 39218e77..0f1dc02e 100644 --- a/src/drivers/St7789.cpp +++ b/src/drivers/St7789.cpp @@ -140,8 +140,9 @@ void St7789::Uninit() { } void St7789::DrawPixel(uint16_t x, uint16_t y, uint32_t color) { - if ((x < 0) || (x >= Width) || (y < 0) || (y >= Height)) + if (x >= Width || y >= Height) { return; + } SetAddrWindow(x, y, x + 1, y + 1); From ef999e8dd397ea2680e724ea0bd9987a1793a9c1 Mon Sep 17 00:00:00 2001 From: Jonathan Vander Mey <jonathan@vandermey.ca> Date: Tue, 22 Jun 2021 14:34:46 -0400 Subject: [PATCH 29/58] Fix typo in variable names (#430) --- src/displayapp/screens/WatchFaceAnalog.cpp | 8 ++++---- src/displayapp/screens/WatchFaceAnalog.h | 6 +++--- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/src/displayapp/screens/WatchFaceAnalog.cpp b/src/displayapp/screens/WatchFaceAnalog.cpp index 02f1fc2a..0051408c 100644 --- a/src/displayapp/screens/WatchFaceAnalog.cpp +++ b/src/displayapp/screens/WatchFaceAnalog.cpp @@ -30,14 +30,14 @@ WatchFaceAnalog::WatchFaceAnalog(Pinetime::Applications::DisplayApp* app, Controllers::DateTime& dateTimeController, Controllers::Battery& batteryController, Controllers::Ble& bleController, - Controllers::NotificationManager& notificatioManager, + Controllers::NotificationManager& notificationManager, Controllers::Settings& settingsController) : Screen(app), currentDateTime {{}}, dateTimeController {dateTimeController}, batteryController {batteryController}, bleController {bleController}, - notificatioManager {notificatioManager}, + notificationManager {notificationManager}, settingsController {settingsController} { settingsController.SetClockFace(1); @@ -172,7 +172,7 @@ bool WatchFaceAnalog::Refresh() { lv_label_set_text(batteryIcon, BatteryIcon::GetBatteryIcon(batteryPercent)); } - notificationState = notificatioManager.AreNewNotificationsAvailable(); + notificationState = notificationManager.AreNewNotificationsAvailable(); if (notificationState.IsUpdated()) { if (notificationState.Get() == true) @@ -202,4 +202,4 @@ bool WatchFaceAnalog::Refresh() { } return true; -} \ No newline at end of file +} diff --git a/src/displayapp/screens/WatchFaceAnalog.h b/src/displayapp/screens/WatchFaceAnalog.h index 667f6241..96225558 100644 --- a/src/displayapp/screens/WatchFaceAnalog.h +++ b/src/displayapp/screens/WatchFaceAnalog.h @@ -27,7 +27,7 @@ namespace Pinetime { Controllers::DateTime& dateTimeController, Controllers::Battery& batteryController, Controllers::Ble& bleController, - Controllers::NotificationManager& notificatioManager, + Controllers::NotificationManager& notificationManager, Controllers::Settings& settingsController); ~WatchFaceAnalog() override; @@ -79,11 +79,11 @@ namespace Pinetime { Controllers::DateTime& dateTimeController; Controllers::Battery& batteryController; Controllers::Ble& bleController; - Controllers::NotificationManager& notificatioManager; + Controllers::NotificationManager& notificationManager; Controllers::Settings& settingsController; void UpdateClock(); }; } } -} \ No newline at end of file +} From 883700fca13a45b6cb0af4d74e3ef276a2d69283 Mon Sep 17 00:00:00 2001 From: Florian <fgrauper@gmail.com> Date: Tue, 22 Jun 2021 20:56:49 +0200 Subject: [PATCH 30/58] update main font to keep diffs for future changes small (#420) * update font with jetbrains mono v2.225 and the current converter * added the tff file for JetBrains Mono to ensure everybody is using the same version Co-authored-by: Florian <florian@florian-thinkpad.local> --- src/displayapp/fonts/JetBrainsMono-Bold.ttf | Bin 0 -> 173264 bytes src/displayapp/fonts/README.md | 2 +- src/displayapp/fonts/jetbrains_mono_bold_20.c | 390 +++++++++--------- 3 files changed, 204 insertions(+), 188 deletions(-) create mode 100644 src/displayapp/fonts/JetBrainsMono-Bold.ttf diff --git a/src/displayapp/fonts/JetBrainsMono-Bold.ttf b/src/displayapp/fonts/JetBrainsMono-Bold.ttf new file mode 100644 index 0000000000000000000000000000000000000000..0cd1cb66bd193f2b178d0a69a7b0658d76b3a670 GIT binary patch literal 173264 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 OwHaMwcmReuwf+ZCw$sx9 literal 0 HcmV?d00001 diff --git a/src/displayapp/fonts/README.md b/src/displayapp/fonts/README.md index 183ad7e4..08427d51 100644 --- a/src/displayapp/fonts/README.md +++ b/src/displayapp/fonts/README.md @@ -10,7 +10,7 @@ * Size : 20 * Bpp : 1 bit-per-pixel * Do not enable font compression and horizontal subpixel hinting -* Load the file `JetBrainsMono-Bold.tff` and specify the following range : `0x20-0x7f, 0x410-0x44f` +* Load the file `JetBrainsMono-Bold.tff` (use the file in this repo to ensure the version matches) and specify the following range : `0x20-0x7f, 0x410-0x44f` * Add a 2nd font, load the file `FontAwesome5-Solid+Brands+Regular.woff` and specify the following range : `0xf293, 0xf294, 0xf244, 0xf240, 0xf242, 0xf243, 0xf241, 0xf54b, 0xf21e, 0xf1e6, 0xf54b, 0xf017, 0xf129, 0xf03a, 0xf185, 0xf560, 0xf001, 0xf3fd, 0xf069, 0xf1fc, 0xf45d, 0xf59f, 0xf5a0, 0xf029, 0xf027, 0xf028, 0xf6a9, 0xf04b, 0xf04c, 0xf048, 0xf051, 0xf095, 0xf3dd, 0xf04d, 0xf2f2, 0xf024, 0xf252` * Click on Convert, and download the file `jetbrains_mono_bold_20.c` and copy it in `src/DisplayApp/Fonts` diff --git a/src/displayapp/fonts/jetbrains_mono_bold_20.c b/src/displayapp/fonts/jetbrains_mono_bold_20.c index 9174ff48..b001bb7e 100644 --- a/src/displayapp/fonts/jetbrains_mono_bold_20.c +++ b/src/displayapp/fonts/jetbrains_mono_bold_20.c @@ -1,11 +1,15 @@ -#include "lvgl/lvgl.h" - /******************************************************************************* * Size: 20 px * Bpp: 1 * Opts: ******************************************************************************/ +#ifdef LV_LVGL_H_INCLUDE_SIMPLE +#include "lvgl.h" +#else +#include "lvgl/lvgl.h" +#endif + #ifndef JETBRAINS_MONO_BOLD_20 #define JETBRAINS_MONO_BOLD_20 1 #endif @@ -17,707 +21,707 @@ *----------------*/ /*Store the image of the glyphs*/ -static LV_ATTRIBUTE_LARGE_CONST const uint8_t gylph_bitmap[] = { - /* U+20 " " */ +static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = { + /* U+0020 " " */ 0x0, - /* U+21 "!" */ + /* U+0021 "!" */ 0xff, 0xff, 0xff, 0xfc, 0xf, 0xc0, - /* U+22 "\"" */ + /* U+0022 "\"" */ 0xef, 0xdf, 0xbf, 0x7e, 0xfd, 0xc0, - /* U+23 "#" */ + /* U+0023 "#" */ 0x8, 0xc3, 0x10, 0x66, 0x3f, 0xf7, 0xfe, 0x23, 0x4, 0x61, 0x88, 0x31, 0x1f, 0xfb, 0xff, 0x19, 0x82, 0x30, 0xc4, 0x0, - /* U+24 "$" */ - 0x8, 0x2, 0x0, 0x80, 0xfc, 0x7f, 0xba, 0x7e, + /* U+0024 "$" */ + 0x8, 0x2, 0x0, 0x81, 0xfc, 0x7f, 0xba, 0x7e, 0x9f, 0xa0, 0xf8, 0x1f, 0x83, 0xf8, 0x3f, 0x9, 0xfa, 0x7e, 0x9d, 0xfe, 0x7f, 0x2, 0x0, 0x80, 0x20, - /* U+25 "%" */ + /* U+0025 "%" */ 0x78, 0x3f, 0xc6, 0xcc, 0xcc, 0xcc, 0xfd, 0x87, 0xb0, 0x6, 0x0, 0x7e, 0xf, 0xf1, 0xb3, 0x33, 0x33, 0x33, 0x63, 0xfc, 0x1e, - /* U+26 "&" */ + /* U+0026 "&" */ 0x1e, 0xf, 0xe1, 0x8e, 0x30, 0x6, 0x0, 0x60, 0x1e, 0x7, 0xe6, 0xed, 0xdc, 0xf3, 0x9e, 0x73, - 0xcf, 0xfc, 0x79, 0x80, + 0xcf, 0xfc, 0xf9, 0x80, - /* U+27 "'" */ + /* U+0027 "'" */ 0xff, 0xff, 0xc0, - /* U+28 "(" */ + /* U+0028 "(" */ 0x2, 0x1c, 0x79, 0xc7, 0x1e, 0x38, 0x70, 0xe1, 0xc3, 0x87, 0xe, 0x1c, 0x3c, 0x38, 0x3c, 0x3c, 0x38, - /* U+29 ")" */ + /* U+0029 ")" */ 0x1, 0xc3, 0xc3, 0xc1, 0xc3, 0xc3, 0x87, 0xe, 0x1c, 0x38, 0x70, 0xe1, 0xc7, 0xe, 0x79, 0xe3, 0x0, - /* U+2A "*" */ + /* U+002A "*" */ 0xc, 0x3, 0x8, 0xc7, 0xb7, 0x7f, 0x83, 0x1, 0xe0, 0xcc, 0x73, 0x80, 0x0, - /* U+2B "+" */ + /* U+002B "+" */ 0x1c, 0x7, 0x1, 0xc3, 0xff, 0xff, 0xc7, 0x1, 0xc0, 0x70, 0x1c, 0x0, - /* U+2C "," */ + /* U+002C "," */ 0x7b, 0x9c, 0xce, 0x60, - /* U+2D "-" */ + /* U+002D "-" */ 0xff, 0xf0, - /* U+2E "." */ + /* U+002E "." */ 0xff, 0xf0, - /* U+2F "/" */ + /* U+002F "/" */ 0x1, 0xc0, 0x60, 0x38, 0xe, 0x3, 0x1, 0xc0, 0x70, 0x18, 0xe, 0x3, 0x1, 0xc0, 0x70, 0x18, 0xe, 0x3, 0x80, 0xc0, 0x70, 0x18, 0xe, 0x0, - /* U+30 "0" */ + /* U+0030 "0" */ 0x3f, 0x1f, 0xef, 0x3f, 0x87, 0xe1, 0xf8, 0x7f, 0xdf, 0xf7, 0xe1, 0xf8, 0x7e, 0x1f, 0xcf, 0x7f, 0x8f, 0xc0, - /* U+31 "1" */ + /* U+0031 "1" */ 0x1e, 0x3f, 0x3b, 0x99, 0xc8, 0xe0, 0x70, 0x38, 0x1c, 0xe, 0x7, 0x3, 0x81, 0xcf, 0xff, 0xfc, - /* U+32 "2" */ + /* U+0032 "2" */ 0x3e, 0x3f, 0xbc, 0xfc, 0x70, 0x38, 0x1c, 0x1c, 0x1e, 0x1e, 0x1e, 0x1e, 0x1e, 0xf, 0xff, 0xfc, - /* U+33 "3" */ + /* U+0033 "3" */ 0x7f, 0x9f, 0xe0, 0x30, 0x18, 0xc, 0x7, 0xc1, 0xf8, 0xf, 0x1, 0xc0, 0x7e, 0x1f, 0xcf, 0x7f, 0x8f, 0xc0, - /* U+34 "4" */ + /* U+0034 "4" */ 0x7, 0x7, 0x3, 0x83, 0x83, 0x83, 0xc1, 0xcf, 0xe7, 0xe3, 0xff, 0xff, 0xe0, 0x70, 0x38, 0x1c, - /* U+35 "5" */ + /* U+0035 "5" */ 0x7f, 0x9f, 0xe7, 0x1, 0xc0, 0x77, 0x1f, 0xe7, 0x3c, 0x7, 0x1, 0xc0, 0x77, 0x1d, 0xcf, 0x7f, 0x87, 0xc0, - /* U+36 "6" */ + /* U+0036 "6" */ 0xe, 0x3, 0x1, 0xc0, 0x60, 0x38, 0x1d, 0xc7, 0xfb, 0xcf, 0xe1, 0xf8, 0x7e, 0x1f, 0xcf, 0x7f, - 0x87, 0x80, + 0x8f, 0x80, - /* U+37 "7" */ + /* U+0037 "7" */ 0xff, 0xff, 0xfe, 0x1f, 0x86, 0x3, 0x80, 0xe0, 0x30, 0x1c, 0x6, 0x3, 0x80, 0xc0, 0x70, 0x1c, 0x6, 0x0, - /* U+38 "8" */ + /* U+0038 "8" */ 0x3f, 0x1f, 0xef, 0x3f, 0x87, 0xe1, 0xdc, 0xe3, 0xf0, 0xfc, 0x73, 0xb8, 0x7e, 0x1f, 0xcf, 0x7f, 0x8f, 0xc0, - /* U+39 "9" */ + /* U+0039 "9" */ 0x1e, 0x1f, 0xef, 0x3f, 0x87, 0xe1, 0xf8, 0x7f, 0x3d, 0xfe, 0x3b, 0x81, 0xc0, 0x60, 0x38, 0xc, 0x7, 0x0, - /* U+3A ":" */ + /* U+003A ":" */ 0xff, 0x80, 0x0, 0xff, 0x80, - /* U+3B ";" */ + /* U+003B ";" */ 0x7b, 0xde, 0x0, 0x0, 0x0, 0x3, 0xdc, 0xe6, 0x73, 0x0, - /* U+3C "<" */ + /* U+003C "<" */ 0x0, 0x81, 0xc3, 0xe7, 0xcf, 0x6, 0x3, 0xc0, 0x7c, 0xf, 0x81, 0xc0, 0x20, - /* U+3D "=" */ + /* U+003D "=" */ 0xff, 0xff, 0xc0, 0x0, 0x0, 0x7, 0xff, 0xfe, - /* U+3E ">" */ + /* U+003E ">" */ 0x80, 0x70, 0x3e, 0x7, 0xc0, 0xf8, 0xc, 0x1e, 0x3c, 0xf8, 0x70, 0x20, 0x0, - /* U+3F "?" */ + /* U+003F "?" */ 0xfc, 0xfe, 0xf, 0x7, 0x7, 0xf, 0x3e, 0x3c, 0x30, 0x30, 0x0, 0x0, 0x70, 0x70, - /* U+40 "@" */ + /* U+0040 "@" */ 0x1f, 0x7, 0xf9, 0xc3, 0x70, 0x3c, 0x7, 0x8f, 0xf3, 0xfe, 0x63, 0xcc, 0x79, 0x8f, 0x31, 0xe6, 0x3c, 0xff, 0x8e, 0xf8, 0x3, 0x80, 0x3e, 0x3, 0xc0, - /* U+41 "A" */ + /* U+0041 "A" */ 0x1e, 0x7, 0x81, 0xe0, 0xfc, 0x3f, 0xc, 0xc3, 0x31, 0xce, 0x73, 0x9f, 0xe7, 0xfb, 0x87, 0xe1, 0xf0, 0x30, - /* U+42 "B" */ + /* U+0042 "B" */ 0xfe, 0x3f, 0xce, 0x3b, 0x8e, 0xe3, 0xb8, 0xcf, 0xe3, 0xfc, 0xe3, 0xb8, 0x7e, 0x1f, 0x8f, 0xff, 0xbf, 0xc0, - /* U+43 "C" */ + /* U+0043 "C" */ 0x3f, 0x1f, 0xef, 0x3f, 0x87, 0xe0, 0x38, 0xe, 0x3, 0x80, 0xe0, 0x38, 0xe, 0x1f, 0xcf, 0x7f, 0x8f, 0xc0, - /* U+44 "D" */ + /* U+0044 "D" */ 0xfe, 0x7f, 0xb9, 0xfc, 0x7e, 0x3f, 0x1f, 0x8f, 0xc7, 0xe3, 0xf1, 0xf8, 0xfc, 0xff, 0xf7, 0xf0, - /* U+45 "E" */ + /* U+0045 "E" */ 0xff, 0xff, 0xf8, 0x1c, 0xe, 0x7, 0x3, 0xfd, 0xfe, 0xe0, 0x70, 0x38, 0x1c, 0xf, 0xff, 0xfc, - /* U+46 "F" */ + /* U+0046 "F" */ 0xff, 0xff, 0xf8, 0x1c, 0xe, 0x7, 0x3, 0xff, 0xff, 0xe0, 0x70, 0x38, 0x1c, 0xe, 0x7, 0x0, - /* U+47 "G" */ - 0x3f, 0x1f, 0xef, 0x1f, 0x87, 0xe0, 0x38, 0xe, + /* U+0047 "G" */ + 0x3f, 0x1f, 0xef, 0x3f, 0x87, 0xe0, 0x38, 0xe, 0x7f, 0x9f, 0xe1, 0xf8, 0x7e, 0x1f, 0xcf, 0x7f, 0x8f, 0xc0, - /* U+48 "H" */ + /* U+0048 "H" */ 0xe3, 0xf1, 0xf8, 0xfc, 0x7e, 0x3f, 0x1f, 0xff, 0xff, 0xe3, 0xf1, 0xf8, 0xfc, 0x7e, 0x3f, 0x1c, - /* U+49 "I" */ + /* U+0049 "I" */ 0xff, 0xff, 0x1c, 0x1c, 0x1c, 0x1c, 0x1c, 0x1c, 0x1c, 0x1c, 0x1c, 0x1c, 0xff, 0xff, - /* U+4A "J" */ + /* U+004A "J" */ 0x1f, 0xc7, 0xf0, 0x1c, 0x7, 0x1, 0xc0, 0x70, 0x1c, 0x7, 0x1, 0xc0, 0x7e, 0x1f, 0xcf, 0x7f, 0x8f, 0xc0, - /* U+4B "K" */ + /* U+004B "K" */ 0xe1, 0xf8, 0x7e, 0x3b, 0x8e, 0xe7, 0x39, 0xcf, 0xe3, 0xf8, 0xe7, 0x39, 0xce, 0x3b, 0x8e, 0xe1, 0xf8, 0x70, - /* U+4C "L" */ + /* U+004C "L" */ 0xe0, 0x70, 0x38, 0x1c, 0xe, 0x7, 0x3, 0x81, 0xc0, 0xe0, 0x70, 0x38, 0x1c, 0xf, 0xff, 0xfc, - /* U+4D "M" */ + /* U+004D "M" */ 0xe1, 0xf8, 0x7f, 0x3f, 0xcf, 0xd2, 0xf7, 0xbd, 0xef, 0x33, 0xc0, 0xf0, 0x3c, 0xf, 0x3, 0xc0, 0xf0, 0x30, - /* U+4E "N" */ - 0xe1, 0xf0, 0xfc, 0x7e, 0x3d, 0x9e, 0xcf, 0x67, - 0x9b, 0xcd, 0xe6, 0xf1, 0xf8, 0xfc, 0x3e, 0x1c, + /* U+004E "N" */ + 0xe1, 0xf0, 0xfc, 0x7e, 0x3f, 0x9e, 0xcf, 0x67, + 0x9b, 0xcd, 0xe6, 0xf1, 0xf8, 0xfc, 0x7e, 0x1c, - /* U+4F "O" */ + /* U+004F "O" */ 0x3e, 0x3f, 0xb8, 0xfc, 0x7e, 0x3f, 0x1f, 0x8f, 0xc7, 0xe3, 0xf1, 0xf8, 0xfc, 0x77, 0xf1, 0xf0, - /* U+50 "P" */ + /* U+0050 "P" */ 0xff, 0x3f, 0xee, 0x3f, 0x87, 0xe1, 0xf8, 0xff, 0xfb, 0xfc, 0xe0, 0x38, 0xe, 0x3, 0x80, 0xe0, 0x38, 0x0, - /* U+51 "Q" */ + /* U+0051 "Q" */ 0x3f, 0x1f, 0xef, 0x3f, 0x87, 0xe1, 0xf8, 0x7e, 0x1f, 0x87, 0xe1, 0xf8, 0x7e, 0x1f, 0xcf, 0x7f, 0x8f, 0x80, 0x70, 0xe, 0x3, 0x80, 0x70, - /* U+52 "R" */ + /* U+0052 "R" */ 0xff, 0x3f, 0xee, 0x3f, 0x87, 0xe1, 0xf8, 0xff, 0xfb, 0xf8, 0xe6, 0x39, 0xce, 0x33, 0x8e, 0xe3, 0xb8, 0x70, - /* U+53 "S" */ + /* U+0053 "S" */ 0x3f, 0x1f, 0xee, 0x3f, 0x87, 0xe0, 0x3c, 0x7, 0xf0, 0xfe, 0x3, 0xc0, 0x7e, 0x1f, 0xcf, 0x7f, 0x8f, 0xc0, - /* U+54 "T" */ + /* U+0054 "T" */ 0xff, 0xff, 0xf0, 0xe0, 0x38, 0xe, 0x3, 0x80, 0xe0, 0x38, 0xe, 0x3, 0x80, 0xe0, 0x38, 0xe, 0x3, 0x80, - /* U+55 "U" */ + /* U+0055 "U" */ 0xe3, 0xf1, 0xf8, 0xfc, 0x7e, 0x3f, 0x1f, 0x8f, 0xc7, 0xe3, 0xf1, 0xf8, 0xfc, 0x77, 0xf1, 0xf0, - /* U+56 "V" */ + /* U+0056 "V" */ 0xc0, 0xf8, 0x7e, 0x1d, 0x86, 0x61, 0x9c, 0xe7, 0x38, 0xcc, 0x33, 0xf, 0xc3, 0xf0, 0x78, 0x1e, 0x7, 0x80, - /* U+57 "W" */ + /* U+0057 "W" */ 0xce, 0x79, 0xcf, 0x29, 0xe5, 0x3c, 0xa7, 0xd5, 0xda, 0xb3, 0x56, 0x7b, 0xcf, 0x79, 0xef, 0x38, 0xe7, 0x1c, 0xe3, 0x80, - /* U+58 "X" */ + /* U+0058 "X" */ 0xe1, 0xd8, 0x67, 0x38, 0xcc, 0x3f, 0x7, 0x81, 0xe0, 0x78, 0x1e, 0xf, 0xc3, 0x31, 0xce, 0xe1, 0xf8, 0x70, - /* U+59 "Y" */ + /* U+0059 "Y" */ 0xe0, 0xfc, 0x1d, 0xc7, 0x38, 0xe3, 0xb8, 0x77, 0x6, 0xc0, 0xf8, 0xe, 0x1, 0xc0, 0x38, 0x7, 0x0, 0xe0, 0x1c, 0x0, - /* U+5A "Z" */ + /* U+005A "Z" */ 0xff, 0xff, 0xc0, 0xe0, 0xe0, 0x70, 0x70, 0x70, 0x38, 0x38, 0x38, 0x1c, 0x1c, 0xf, 0xff, 0xfc, - /* U+5B "[" */ + /* U+005B "[" */ 0xff, 0xfe, 0x38, 0xe3, 0x8e, 0x38, 0xe3, 0x8e, 0x38, 0xe3, 0x8e, 0x38, 0xff, 0xf0, - /* U+5C "\\" */ + /* U+005C "\\" */ 0xe0, 0x18, 0x7, 0x1, 0xc0, 0x30, 0xe, 0x3, 0x80, 0x60, 0x1c, 0x3, 0x0, 0xe0, 0x38, 0x6, 0x1, 0xc0, 0x70, 0xc, 0x3, 0x80, 0x60, 0x1c, - /* U+5D "]" */ + /* U+005D "]" */ 0xff, 0xf1, 0xc7, 0x1c, 0x71, 0xc7, 0x1c, 0x71, 0xc7, 0x1c, 0x71, 0xc7, 0xff, 0xf0, - /* U+5E "^" */ + /* U+005E "^" */ 0xc, 0x7, 0x81, 0xe0, 0xfc, 0x33, 0x1c, 0xe6, 0x19, 0x86, - /* U+5F "_" */ + /* U+005F "_" */ 0xff, 0xff, 0xf0, - /* U+60 "`" */ + /* U+0060 "`" */ 0xe3, 0x8c, - /* U+61 "a" */ + /* U+0061 "a" */ 0x1f, 0x1f, 0xe7, 0x1c, 0x7, 0x3f, 0xdf, 0xfe, 0x1f, 0x87, 0xe3, 0xff, 0xf3, 0xdc, - /* U+62 "b" */ + /* U+0062 "b" */ 0xe0, 0x70, 0x38, 0x1d, 0xcf, 0xf7, 0x1f, 0x8f, 0xc7, 0xe3, 0xf1, 0xf8, 0xfc, 0x7f, 0xf7, 0x70, - /* U+63 "c" */ + /* U+0063 "c" */ 0x3e, 0x3f, 0xb8, 0xfc, 0x7e, 0x7, 0x3, 0x81, 0xc7, 0xe3, 0xbf, 0x8f, 0x80, - /* U+64 "d" */ + /* U+0064 "d" */ 0x3, 0x81, 0xc0, 0xe7, 0x77, 0xff, 0x1f, 0x8f, 0xc7, 0xe3, 0xf1, 0xf8, 0xfc, 0x77, 0xf9, 0xdc, - /* U+65 "e" */ + /* U+0065 "e" */ 0x3e, 0x3f, 0xb8, 0xfc, 0x7f, 0xff, 0xff, 0x81, 0xc0, 0xe3, 0xbf, 0x8f, 0x80, - /* U+66 "f" */ + /* U+0066 "f" */ 0xf, 0xc7, 0xf1, 0xc0, 0x70, 0xff, 0xff, 0xf1, 0xc0, 0x70, 0x1c, 0x7, 0x1, 0xc0, 0x70, 0x1c, 0x7, 0x0, - /* U+67 "g" */ + /* U+0067 "g" */ 0x3b, 0xbf, 0xfd, 0xfc, 0x7e, 0x3f, 0x1f, 0x8f, 0xc7, 0xf7, 0xbf, 0xce, 0xe0, 0x70, 0x39, 0xf8, 0xf8, - /* U+68 "h" */ + /* U+0068 "h" */ 0xe0, 0x70, 0x38, 0x1d, 0xcf, 0xf7, 0x1f, 0x8f, 0xc7, 0xe3, 0xf1, 0xf8, 0xfc, 0x7e, 0x3f, 0x1c, - /* U+69 "i" */ + /* U+0069 "i" */ 0x1c, 0x7, 0x1, 0xc0, 0x0, 0x0, 0x3f, 0xf, 0xc0, 0x70, 0x1c, 0x7, 0x1, 0xc0, 0x70, 0x1c, 0x7, 0xf, 0xff, 0xff, - /* U+6A "j" */ + /* U+006A "j" */ 0x7, 0x7, 0x7, 0x0, 0xff, 0xff, 0x7, 0x7, 0x7, 0x7, 0x7, 0x7, 0x7, 0x7, 0x7, 0x7, 0xf, 0xfe, 0xfc, - /* U+6B "k" */ + /* U+006B "k" */ 0xe0, 0x38, 0xe, 0x3, 0x87, 0xe3, 0xb8, 0xee, 0x73, 0xf8, 0xfe, 0x39, 0xce, 0x33, 0x8e, 0xe1, 0xb8, 0x70, - /* U+6C "l" */ + /* U+006C "l" */ 0xfe, 0x1f, 0xc0, 0x38, 0x7, 0x0, 0xe0, 0x1c, 0x3, 0x80, 0x70, 0xe, 0x1, 0xc0, 0x38, 0x7, 0x0, 0x7e, 0x7, 0xc0, - /* U+6D "m" */ + /* U+006D "m" */ 0xd9, 0xbf, 0xfc, 0xcf, 0x33, 0xcc, 0xf3, 0x3c, 0xcf, 0x33, 0xcc, 0xf3, 0x3c, 0xcc, - /* U+6E "n" */ + /* U+006E "n" */ 0xee, 0x7f, 0xb8, 0xfc, 0x7e, 0x3f, 0x1f, 0x8f, 0xc7, 0xe3, 0xf1, 0xf8, 0xe0, - /* U+6F "o" */ + /* U+006F "o" */ 0x3e, 0x3f, 0xb8, 0xfc, 0x7e, 0x3f, 0x1f, 0x8f, 0xc7, 0xe3, 0xbf, 0x8f, 0x80, - /* U+70 "p" */ + /* U+0070 "p" */ 0xee, 0x7f, 0xb8, 0xfc, 0x7e, 0x3f, 0x1f, 0x8f, 0xc7, 0xe3, 0xff, 0xbb, 0x9c, 0xe, 0x7, 0x3, 0x80, - /* U+71 "q" */ + /* U+0071 "q" */ 0x3b, 0xbf, 0xf8, 0xfc, 0x7e, 0x3f, 0x1f, 0x8f, 0xc7, 0xe3, 0xbf, 0xce, 0xe0, 0x70, 0x38, 0x1c, 0xe, - /* U+72 "r" */ - 0xee, 0x7f, 0xb8, 0xfc, 0x7e, 0x3f, 0x3, 0x81, + /* U+0072 "r" */ + 0xee, 0x7f, 0xb9, 0xfc, 0x7e, 0x3f, 0x3, 0x81, 0xc0, 0xe0, 0x70, 0x38, 0x0, - /* U+73 "s" */ + /* U+0073 "s" */ 0x1f, 0x1f, 0xf7, 0x1d, 0xc0, 0x7c, 0xf, 0xe0, 0x3c, 0x7, 0x71, 0xdf, 0xe3, 0xf0, - /* U+74 "t" */ + /* U+0074 "t" */ 0x1c, 0x7, 0x1, 0xc3, 0xff, 0xff, 0xc7, 0x1, 0xc0, 0x70, 0x1c, 0x7, 0x1, 0xc0, 0x70, 0x1f, 0xc3, 0xf0, - /* U+75 "u" */ + /* U+0075 "u" */ 0xe3, 0xf1, 0xf8, 0xfc, 0x7e, 0x3f, 0x1f, 0x8f, 0xc7, 0xe3, 0xbf, 0x8f, 0x80, - /* U+76 "v" */ + /* U+0076 "v" */ 0xe0, 0xf8, 0x76, 0x19, 0x86, 0x73, 0x8c, 0xc3, 0x30, 0xfc, 0x1e, 0x7, 0x81, 0xe0, - /* U+77 "w" */ + /* U+0077 "w" */ 0xe6, 0x36, 0x66, 0x66, 0x66, 0xf6, 0x6f, 0x66, 0x96, 0x69, 0x62, 0x94, 0x39, 0xc3, 0x9c, 0x39, 0xc0, - /* U+78 "x" */ + /* U+0078 "x" */ 0xe1, 0xdc, 0xe3, 0x30, 0xfc, 0x1e, 0x7, 0x81, - 0xe0, 0xfc, 0x73, 0x9c, 0x6e, 0x1c, + 0xe0, 0xfc, 0x73, 0x9c, 0xee, 0x1c, - /* U+79 "y" */ + /* U+0079 "y" */ 0xe1, 0xf8, 0x76, 0x19, 0xce, 0x73, 0x8c, 0xc3, 0xf0, 0x7c, 0x1e, 0x7, 0x80, 0xe0, 0x30, 0x1c, 0x6, 0x3, 0x80, - /* U+7A "z" */ + /* U+007A "z" */ 0xff, 0xff, 0xc0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0x7f, 0xff, 0xe0, - /* U+7B "{" */ + /* U+007B "{" */ 0x3, 0x87, 0xc3, 0x81, 0xc0, 0xe0, 0x70, 0x38, 0x1c, 0xfc, 0x7e, 0x3, 0x81, 0xc0, 0xe0, 0x70, 0x38, 0x1c, 0xf, 0x81, 0xc0, - /* U+7C "|" */ + /* U+007C "|" */ 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfc, - /* U+7D "}" */ + /* U+007D "}" */ 0xf0, 0x3e, 0x1, 0xc0, 0x70, 0x1c, 0x7, 0x1, 0xc0, 0x70, 0xf, 0xc3, 0xf1, 0xc0, 0x70, 0x1c, 0x7, 0x1, 0xc0, 0x70, 0xf8, 0x3c, 0x0, - /* U+7E "~" */ + /* U+007E "~" */ 0x78, 0xff, 0x3c, 0xcf, 0x3f, 0xc7, 0x80, - /* U+410 "А" */ + /* U+0410 "А" */ 0x1e, 0x7, 0x81, 0xe0, 0xfc, 0x3f, 0xc, 0xc3, 0x31, 0xce, 0x73, 0x9f, 0xe7, 0xfb, 0x87, 0xe1, 0xf0, 0x30, - /* U+411 "Б" */ + /* U+0411 "Б" */ 0xff, 0xbf, 0xee, 0x3, 0x80, 0xe0, 0x3f, 0xcf, 0xfb, 0x8f, 0xe1, 0xf8, 0x7e, 0x1f, 0x8f, 0xff, - 0xbf, 0x80, + 0xbf, 0xc0, - /* U+412 "В" */ + /* U+0412 "В" */ 0xfe, 0x3f, 0xce, 0x3b, 0x8e, 0xe3, 0xb8, 0xcf, 0xe3, 0xfc, 0xe3, 0xb8, 0x7e, 0x1f, 0x8f, 0xff, 0xbf, 0xc0, - /* U+413 "Г" */ + /* U+0413 "Г" */ 0xff, 0xff, 0xf8, 0x1c, 0xe, 0x7, 0x3, 0x81, 0xc0, 0xe0, 0x70, 0x38, 0x1c, 0xe, 0x7, 0x0, - /* U+414 "Д" */ + /* U+0414 "Д" */ 0x3f, 0xc7, 0xf8, 0xe7, 0x1c, 0xe3, 0x9c, 0x73, 0x8e, 0x71, 0xce, 0x39, 0xc7, 0x38, 0xe7, 0x38, 0xef, 0xff, 0xff, 0xf8, 0x3f, 0x7, 0xe0, 0xe0, - /* U+415 "Е" */ + /* U+0415 "Е" */ 0xff, 0xff, 0xf8, 0x1c, 0xe, 0x7, 0x3, 0xfd, 0xfe, 0xe0, 0x70, 0x38, 0x1c, 0xf, 0xff, 0xfc, - /* U+416 "Ж" */ + /* U+0416 "Ж" */ 0xe6, 0x76, 0x66, 0x66, 0x67, 0x66, 0x36, 0xc3, 0x6c, 0x3f, 0xc3, 0x6c, 0x36, 0xc7, 0x6e, 0x66, 0x66, 0x66, 0x66, 0x6c, 0x63, - /* U+417 "З" */ + /* U+0417 "З" */ 0x1f, 0xf, 0xf3, 0xc7, 0x0, 0x60, 0x1c, 0x1e, 0x3, 0xf0, 0xe, 0x0, 0xe0, 0x1f, 0x83, 0xf8, 0xf7, 0xfc, 0x3e, 0x0, - /* U+418 "И" */ + /* U+0418 "И" */ 0xc3, 0xe3, 0xf1, 0xf8, 0xfc, 0xde, 0x6f, 0x37, 0xb3, 0xd9, 0xfc, 0xfc, 0x7e, 0x3e, 0x1f, 0xc, - /* U+419 "Й" */ + /* U+0419 "Й" */ 0x63, 0x31, 0x8f, 0x83, 0x80, 0x6, 0x1f, 0x1f, 0x8f, 0xc7, 0xe7, 0xf3, 0x79, 0xbd, 0x9e, 0xcf, 0xe7, 0xe3, 0xf1, 0xf8, 0xf8, 0x60, - /* U+41A "К" */ + /* U+041A "К" */ 0xe1, 0xf8, 0x7e, 0x3b, 0x8e, 0xe7, 0x39, 0xcf, 0xe3, 0xf8, 0xe7, 0x39, 0xce, 0x3b, 0x8e, 0xe1, 0xf8, 0x70, - /* U+41B "Л" */ + /* U+041B "Л" */ 0x3f, 0xcf, 0xf3, 0x9c, 0xe7, 0x39, 0xce, 0x73, 0x9c, 0xe7, 0x39, 0xce, 0x73, 0x9d, 0xe7, 0xf1, 0xf8, 0x70, - /* U+41C "М" */ + /* U+041C "М" */ 0xe1, 0xf8, 0x7f, 0x3f, 0xcf, 0xd2, 0xf7, 0xbd, 0xef, 0x33, 0xc0, 0xf0, 0x3c, 0xf, 0x3, 0xc0, 0xf0, 0x30, - /* U+41D "Н" */ + /* U+041D "Н" */ 0xe3, 0xf1, 0xf8, 0xfc, 0x7e, 0x3f, 0x1f, 0xff, 0xff, 0xe3, 0xf1, 0xf8, 0xfc, 0x7e, 0x3f, 0x1c, - /* U+41E "О" */ + /* U+041E "О" */ 0x3e, 0x3f, 0xb8, 0xfc, 0x7e, 0x3f, 0x1f, 0x8f, 0xc7, 0xe3, 0xf1, 0xf8, 0xfc, 0x77, 0xf1, 0xf0, - /* U+41F "П" */ + /* U+041F "П" */ 0xff, 0xff, 0xf8, 0xfc, 0x7e, 0x3f, 0x1f, 0x8f, 0xc7, 0xe3, 0xf1, 0xf8, 0xfc, 0x7e, 0x3f, 0x1c, - /* U+420 "Р" */ + /* U+0420 "Р" */ 0xff, 0x3f, 0xee, 0x3f, 0x87, 0xe1, 0xf8, 0xff, 0xfb, 0xfc, 0xe0, 0x38, 0xe, 0x3, 0x80, 0xe0, 0x38, 0x0, - /* U+421 "С" */ + /* U+0421 "С" */ 0x3f, 0x1f, 0xef, 0x3f, 0x87, 0xe0, 0x38, 0xe, 0x3, 0x80, 0xe0, 0x38, 0xe, 0x1f, 0xcf, 0x7f, 0x8f, 0xc0, - /* U+422 "Т" */ + /* U+0422 "Т" */ 0xff, 0xff, 0xf0, 0xe0, 0x38, 0xe, 0x3, 0x80, 0xe0, 0x38, 0xe, 0x3, 0x80, 0xe0, 0x38, 0xe, 0x3, 0x80, - /* U+423 "У" */ + /* U+0423 "У" */ 0xe1, 0xf8, 0x76, 0x19, 0xce, 0x33, 0x8c, 0xc3, 0xb0, 0x7c, 0x1e, 0x3, 0x80, 0xc0, 0x70, 0x1c, 0x6, 0x0, - /* U+424 "Ф" */ + /* U+0424 "Ф" */ 0xc, 0xf, 0xc7, 0xfb, 0xb7, 0xcc, 0xf3, 0x3c, 0xcf, 0x33, 0xcc, 0xf3, 0x3c, 0xcf, 0xb7, 0x7f, 0x8f, 0xc0, 0xc0, 0x30, - /* U+425 "Х" */ + /* U+0425 "Х" */ 0xe1, 0xd8, 0x67, 0x38, 0xcc, 0x3f, 0x7, 0x81, 0xe0, 0x78, 0x1e, 0xf, 0xc3, 0x31, 0xce, 0xe1, 0xf8, 0x70, - /* U+426 "Ц" */ + /* U+0426 "Ц" */ 0xe3, 0xb8, 0xee, 0x3b, 0x8e, 0xe3, 0xb8, 0xee, 0x3b, 0x8e, 0xe3, 0xb8, 0xee, 0x3b, 0x8e, 0xff, 0xff, 0xf0, 0x1c, 0x7, 0x1, 0xc0, - /* U+427 "Ч" */ + /* U+0427 "Ч" */ 0xe3, 0xf1, 0xf8, 0xfc, 0x7e, 0x3f, 0x1f, 0xce, 0xff, 0x3f, 0x81, 0xc0, 0xe0, 0x70, 0x38, 0x1c, - /* U+428 "Ш" */ + /* U+0428 "Ш" */ 0xcc, 0xf3, 0x3c, 0xcf, 0x33, 0xcc, 0xf3, 0x3c, 0xcf, 0x33, 0xcc, 0xf3, 0x3c, 0xcf, 0x33, 0xff, 0xff, 0xf0, - /* U+429 "Щ" */ + /* U+0429 "Щ" */ 0xcc, 0xd9, 0x9b, 0x33, 0x66, 0x6c, 0xcd, 0x99, 0xb3, 0x36, 0x66, 0xcc, 0xd9, 0x9b, 0x33, 0x66, 0x6f, 0xff, 0xff, 0xc0, 0x18, 0x3, - /* U+42A "Ъ" */ + /* U+042A "Ъ" */ 0xfc, 0xf, 0xc0, 0x1c, 0x1, 0xc0, 0x1c, 0x1, 0xfc, 0x1f, 0xe1, 0xcf, 0x1c, 0x71, 0xc7, 0x1c, - 0x71, 0xcf, 0x1f, 0xe1, 0xf8, + 0x71, 0xcf, 0x1f, 0xe1, 0xfc, - /* U+42B "Ы" */ + /* U+042B "Ы" */ 0xc0, 0xf0, 0x3c, 0xf, 0x3, 0xc0, 0xfe, 0x3f, 0xcf, 0x3b, 0xc6, 0xf1, 0xbc, 0x6f, 0x3b, 0xfc, 0xfe, 0x30, - /* U+42C "Ь" */ + /* U+042C "Ь" */ 0xe0, 0x38, 0xe, 0x3, 0x80, 0xe0, 0x3f, 0xcf, 0xfb, 0x8f, 0xe1, 0xf8, 0x7e, 0x1f, 0x8f, 0xff, 0xbf, 0x80, - /* U+42D "Э" */ + /* U+042D "Э" */ 0x3e, 0x3f, 0xb8, 0xfc, 0x70, 0x38, 0x1c, 0x7e, 0x3f, 0x3, 0x81, 0xf8, 0xfc, 0x77, 0xf1, 0xf0, - /* U+42E "Ю" */ + /* U+042E "Ю" */ 0xc7, 0xb3, 0xfc, 0xcf, 0x33, 0xcc, 0xff, 0x3f, 0xcf, 0x33, 0xcc, 0xf3, 0x3c, 0xcf, 0x33, 0xcf, 0xf1, 0xe0, - /* U+42F "Я" */ + /* U+042F "Я" */ 0x3f, 0xdf, 0xff, 0x1f, 0x87, 0xe1, 0xfc, 0x77, 0xfc, 0x7f, 0x19, 0xce, 0x73, 0x1d, 0xc7, 0x71, 0xf8, 0x70, - /* U+430 "а" */ + /* U+0430 "а" */ 0x1f, 0x1f, 0xe7, 0x1c, 0x7, 0x3f, 0xdf, 0xfe, 0x1f, 0x87, 0xe3, 0xff, 0xf3, 0xdc, - /* U+431 "б" */ + /* U+0431 "б" */ 0x1f, 0x3f, 0x9c, 0x1c, 0xe, 0xe7, 0xfb, 0x8f, 0xc7, 0xe3, 0xf1, 0xf8, 0xfc, 0x77, 0xf1, 0xf0, - /* U+432 "в" */ + /* U+0432 "в" */ 0xff, 0x3f, 0xee, 0x3b, 0x8e, 0xfe, 0x3f, 0xee, 0x1f, 0x87, 0xe1, 0xff, 0xef, 0xf0, - /* U+433 "г" */ + /* U+0433 "г" */ 0xff, 0xff, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, - /* U+434 "д" */ + /* U+0434 "д" */ 0x3f, 0xc7, 0xf8, 0xe7, 0x1c, 0xe3, 0x9c, 0x73, 0x8e, 0x71, 0xce, 0x71, 0xdf, 0xff, 0xff, 0xf0, 0x7e, 0xf, 0xc1, 0xc0, - /* U+435 "е" */ + /* U+0435 "е" */ 0x3e, 0x3f, 0xb8, 0xfc, 0x7f, 0xff, 0xff, 0x81, 0xc0, 0xe3, 0xbf, 0x8f, 0x80, - /* U+436 "ж" */ + /* U+0436 "ж" */ 0xe6, 0x76, 0x66, 0x66, 0x63, 0x6c, 0x36, 0xc3, - 0xfc, 0x36, 0xc3, 0x6c, 0x66, 0x66, 0x66, 0xe6, + 0xfc, 0x36, 0xc3, 0x6e, 0x66, 0x66, 0x66, 0xe6, 0x70, - /* U+437 "з" */ + /* U+0437 "з" */ 0x3f, 0x1f, 0xfe, 0x1c, 0x7, 0x1f, 0x87, 0xe0, 0x1c, 0x7, 0xe1, 0xdf, 0xe3, 0xf0, - /* U+438 "и" */ + /* U+0438 "и" */ 0xc3, 0xe3, 0xf1, 0xf9, 0xfc, 0xde, 0xef, 0x67, 0xb3, 0xf1, 0xf8, 0xf8, 0x60, - /* U+439 "й" */ + /* U+0439 "й" */ 0x63, 0x31, 0x8f, 0x83, 0x80, 0x6, 0x1f, 0x1f, 0x8f, 0xcf, 0xe6, 0xf7, 0x7b, 0x3f, 0x9f, 0x8f, 0xc7, 0xc3, - /* U+43A "к" */ + /* U+043A "к" */ 0xe1, 0xf8, 0xee, 0x33, 0x9c, 0xfe, 0x3f, 0x8e, 0x73, 0x9c, 0xe3, 0xb8, 0x6e, 0x1c, - /* U+43B "л" */ + /* U+043B "л" */ 0x3f, 0xcf, 0xf3, 0x9c, 0xe7, 0x39, 0xce, 0x73, 0x9c, 0xe7, 0x39, 0xfc, 0x7e, 0x1c, - /* U+43C "м" */ + /* U+043C "м" */ 0xe1, 0xf8, 0x7f, 0x3f, 0xcf, 0xda, 0xf7, 0xbd, 0xef, 0x33, 0xc0, 0xf0, 0x3c, 0xc, - /* U+43D "н" */ + /* U+043D "н" */ 0xe3, 0xf1, 0xf8, 0xfc, 0x7e, 0x3f, 0xff, 0xff, 0xc7, 0xe3, 0xf1, 0xf8, 0xe0, - /* U+43E "о" */ + /* U+043E "о" */ 0x3e, 0x3f, 0xb8, 0xfc, 0x7e, 0x3f, 0x1f, 0x8f, 0xc7, 0xe3, 0xbf, 0x8f, 0x80, - /* U+43F "п" */ + /* U+043F "п" */ 0xff, 0xff, 0xf8, 0xfc, 0x7e, 0x3f, 0x1f, 0x8f, 0xc7, 0xe3, 0xf1, 0xf8, 0xe0, - /* U+440 "р" */ + /* U+0440 "р" */ 0xee, 0x7f, 0xb8, 0xfc, 0x7e, 0x3f, 0x1f, 0x8f, 0xc7, 0xe3, 0xff, 0xbb, 0x9c, 0xe, 0x7, 0x3, 0x80, - /* U+441 "с" */ + /* U+0441 "с" */ 0x3e, 0x3f, 0xb8, 0xfc, 0x7e, 0x7, 0x3, 0x81, 0xc7, 0xe3, 0xbf, 0x8f, 0x80, - /* U+442 "т" */ + /* U+0442 "т" */ 0xff, 0xff, 0xf0, 0xe0, 0x38, 0xe, 0x3, 0x80, 0xe0, 0x38, 0xe, 0x3, 0x80, 0xe0, - /* U+443 "у" */ + /* U+0443 "у" */ 0xe1, 0xf8, 0x76, 0x19, 0xce, 0x73, 0x8c, 0xc3, 0xf0, 0x7c, 0x1e, 0x7, 0x80, 0xe0, 0x30, 0x1c, 0x6, 0x3, 0x80, - /* U+444 "ф" */ + /* U+0444 "ф" */ 0xc, 0x3, 0x0, 0xc0, 0xfc, 0x7f, 0xbb, 0x7c, 0xcf, 0x33, 0xcc, 0xf3, 0x3c, 0xcf, 0xb7, 0x7f, 0x8f, 0xc0, 0xc0, 0x30, 0xc, 0x3, 0x0, - /* U+445 "х" */ + /* U+0445 "х" */ 0xe1, 0xdc, 0xe3, 0x30, 0xfc, 0x1e, 0x7, 0x81, - 0xe0, 0xfc, 0x73, 0x9c, 0x6e, 0x1c, + 0xe0, 0xfc, 0x73, 0x9c, 0xee, 0x1c, - /* U+446 "ц" */ + /* U+0446 "ц" */ 0xe3, 0xb8, 0xee, 0x3b, 0x8e, 0xe3, 0xb8, 0xee, 0x3b, 0x8e, 0xe3, 0xbf, 0xff, 0xfc, 0x7, 0x1, 0xc0, 0x70, - /* U+447 "ч" */ + /* U+0447 "ч" */ 0xe3, 0xf1, 0xf8, 0xfc, 0x7e, 0x3b, 0xfc, 0xfe, 0x7, 0x3, 0x81, 0xc0, 0xe0, - /* U+448 "ш" */ + /* U+0448 "ш" */ 0xcc, 0xf3, 0x3c, 0xcf, 0x33, 0xcc, 0xf3, 0x3c, 0xcf, 0x33, 0xcc, 0xff, 0xff, 0xfc, - /* U+449 "щ" */ + /* U+0449 "щ" */ 0xcc, 0xd9, 0x9b, 0x33, 0x66, 0x6c, 0xcd, 0x99, 0xb3, 0x36, 0x66, 0xcc, 0xdf, 0xff, 0xff, 0x80, 0x30, 0x6, - /* U+44A "ъ" */ + /* U+044A "ъ" */ 0xfc, 0xf, 0xc0, 0x1c, 0x1, 0xc0, 0x1f, 0xc1, 0xfe, 0x1c, 0x71, 0xc7, 0x1c, 0x71, 0xfe, 0x1f, 0xc0, - /* U+44B "ы" */ + /* U+044B "ы" */ 0xc0, 0xf0, 0x3c, 0xf, 0x3, 0xf8, 0xff, 0x3c, - 0x6f, 0x1b, 0xc6, 0xff, 0x3f, 0x8c, + 0xef, 0x1b, 0xc6, 0xff, 0x3f, 0x8c, - /* U+44C "ь" */ + /* U+044C "ь" */ 0xe0, 0x38, 0xe, 0x3, 0x80, 0xff, 0x3f, 0xee, 0x1f, 0x87, 0xe1, 0xff, 0xef, 0xf0, - /* U+44D "э" */ + /* U+044D "э" */ 0x3e, 0x3f, 0xb8, 0xe0, 0x70, 0xf8, 0x7c, 0xf, 0xc7, 0xe7, 0xbf, 0x8f, 0x80, - /* U+44E "ю" */ + /* U+044E "ю" */ 0xc7, 0xb3, 0xfc, 0xcf, 0x33, 0xfc, 0xff, 0x3c, 0xcf, 0x33, 0xcc, 0xf3, 0xfc, 0x78, - /* U+44F "я" */ + /* U+044F "я" */ 0x3f, 0xbf, 0xf8, 0xfc, 0x7e, 0x3b, 0xfc, 0xfe, 0x77, 0x33, 0xb9, 0xf8, 0xe0, @@ -727,7 +731,7 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t gylph_bitmap[] = { 0xfc, 0x70, 0x7e, 0x7, 0x7, 0x0, 0x70, 0x70, 0x7, 0x7, 0x0, 0x70, 0x70, 0x7, 0x7, 0x0, 0x70, 0x70, 0x7f, 0x7, 0xf, 0xf7, 0xf0, 0xff, - 0xff, 0x7, 0xef, 0xf0, 0x0, 0xff, 0x0, 0x3, + 0xff, 0x7, 0xef, 0xf0, 0x10, 0xff, 0x0, 0x3, 0xc0, 0x0, /* U+F017 "" */ @@ -739,11 +743,11 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t gylph_bitmap[] = { 0x1, 0xff, 0xc0, 0x1f, 0xf0, 0x0, 0x70, 0x0, /* U+F024 "" */ - 0x70, 0x0, 0xf, 0x80, 0x0, 0xf8, 0x0, 0xf, + 0x70, 0x0, 0xf, 0x80, 0x0, 0xf9, 0x0, 0xf, 0xff, 0xf, 0x7f, 0xff, 0xf7, 0xff, 0xff, 0x7f, 0xff, 0xf7, 0xff, 0xff, 0x7f, 0xff, 0xf7, 0xff, 0xff, 0x7f, 0xff, 0xf7, 0xff, 0xff, 0x7f, 0xff, - 0xf7, 0xff, 0xff, 0x7f, 0x7f, 0xe7, 0x0, 0x78, + 0xf7, 0xff, 0xff, 0x7f, 0xff, 0xe7, 0x0, 0xf8, 0x70, 0x0, 0x7, 0x0, 0x0, 0x70, 0x0, 0x7, 0x0, 0x0, @@ -869,35 +873,35 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t gylph_bitmap[] = { 0x7f, 0xff, 0xff, 0x7f, 0xff, 0xff, 0xb8, 0x0, 0x1, 0xfd, 0xff, 0xfe, 0xfe, 0xff, 0xff, 0x7f, 0x7f, 0xff, 0x9f, 0xbf, 0xff, 0xcf, 0xdf, 0xff, - 0xe7, 0xe0, 0x0, 0x7, 0xf0, 0x0, 0x3, 0xff, + 0xef, 0xe0, 0x0, 0x7, 0xf0, 0x0, 0x3, 0xff, 0xff, 0xff, 0xcf, 0xff, 0xff, 0xe0, /* U+F241 "" */ 0x7f, 0xff, 0xff, 0x7f, 0xff, 0xff, 0xb8, 0x0, 0x1, 0xfd, 0xff, 0xe0, 0xfe, 0xff, 0xf0, 0x7f, 0x7f, 0xf8, 0x1f, 0xbf, 0xfc, 0xf, 0xdf, 0xfe, - 0x7, 0xe0, 0x0, 0x7, 0xf0, 0x0, 0x3, 0xff, + 0xf, 0xe0, 0x0, 0x7, 0xf0, 0x0, 0x3, 0xff, 0xff, 0xff, 0xcf, 0xff, 0xff, 0xe0, /* U+F242 "" */ 0x7f, 0xff, 0xff, 0x7f, 0xff, 0xff, 0xb8, 0x0, 0x1, 0xfd, 0xfe, 0x0, 0xfe, 0xff, 0x0, 0x7f, 0x7f, 0x80, 0x1f, 0xbf, 0xc0, 0xf, 0xdf, 0xe0, - 0x7, 0xe0, 0x0, 0x7, 0xf0, 0x0, 0x3, 0xff, + 0xf, 0xe0, 0x0, 0x7, 0xf0, 0x0, 0x3, 0xff, 0xff, 0xff, 0xcf, 0xff, 0xff, 0xe0, /* U+F243 "" */ 0x7f, 0xff, 0xff, 0x7f, 0xff, 0xff, 0xb8, 0x0, 0x1, 0xfd, 0xf0, 0x0, 0xfe, 0xf8, 0x0, 0x7f, 0x7c, 0x0, 0x1f, 0xbe, 0x0, 0xf, 0xdf, 0x0, - 0x7, 0xe0, 0x0, 0x7, 0xf0, 0x0, 0x3, 0xff, + 0xf, 0xe0, 0x0, 0x7, 0xf0, 0x0, 0x3, 0xff, 0xff, 0xff, 0xcf, 0xff, 0xff, 0xe0, /* U+F244 "" */ 0x7f, 0xff, 0xff, 0x7f, 0xff, 0xff, 0xb8, 0x0, 0x1, 0xfc, 0x0, 0x0, 0xfe, 0x0, 0x0, 0x7f, 0x0, 0x0, 0x1f, 0x80, 0x0, 0xf, 0xc0, 0x0, - 0x7, 0xe0, 0x0, 0x7, 0xf0, 0x0, 0x3, 0xff, + 0xf, 0xe0, 0x0, 0x7, 0xf0, 0x0, 0x3, 0xff, 0xff, 0xff, 0xcf, 0xff, 0xff, 0xe0, /* U+F252 "" */ @@ -933,9 +937,9 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t gylph_bitmap[] = { 0x78, 0xf, 0xe0, 0x1e, 0x7, 0xf0, 0x3, 0xc1, 0xf8, 0x0, 0xf0, 0x78, 0x0, 0x3c, 0x3c, 0x0, 0xf, 0xbe, 0x0, 0x1, 0xfe, 0x0, 0x0, 0x7e, - 0x0, 0x1c, 0x1f, 0x0, 0x7f, 0x3, 0xc0, 0x7f, + 0x0, 0x1c, 0x1f, 0x0, 0x7f, 0x3, 0xc0, 0x3f, 0xf0, 0xf0, 0x1f, 0xfc, 0x3c, 0xf, 0xfe, 0x7, - 0x87, 0xfe, 0x1, 0xe3, 0xf8, 0x0, 0x70, 0x0, + 0x87, 0xfe, 0x1, 0xe3, 0xf8, 0x0, 0x70, 0x80, 0x0, 0x10, /* U+F3FD "" */ @@ -1240,9 +1244,14 @@ static const lv_font_fmt_txt_cmap_t cmaps[] = * ALL CUSTOM DATA *--------------------*/ +#if LV_VERSION_CHECK(8, 0, 0) /*Store all the custom data of the font*/ +static lv_font_fmt_txt_glyph_cache_t cache; +static const lv_font_fmt_txt_dsc_t font_dsc = { +#else static lv_font_fmt_txt_dsc_t font_dsc = { - .glyph_bitmap = gylph_bitmap, +#endif + .glyph_bitmap = glyph_bitmap, .glyph_dsc = glyph_dsc, .cmaps = cmaps, .kern_dsc = NULL, @@ -1250,7 +1259,10 @@ static lv_font_fmt_txt_dsc_t font_dsc = { .cmap_num = 3, .bpp = 1, .kern_classes = 0, - .bitmap_format = 0 + .bitmap_format = 0, +#if LV_VERSION_CHECK(8, 0, 0) + .cache = &cache +#endif }; @@ -1259,7 +1271,11 @@ static lv_font_fmt_txt_dsc_t font_dsc = { *----------------*/ /*Initialize a public general font descriptor*/ +#if LV_VERSION_CHECK(8, 0, 0) +const lv_font_t jetbrains_mono_bold_20 = { +#else lv_font_t jetbrains_mono_bold_20 = { +#endif .get_glyph_dsc = lv_font_get_glyph_dsc_fmt_txt, /*Function pointer to get glyph's data*/ .get_glyph_bitmap = lv_font_get_bitmap_fmt_txt, /*Function pointer to get glyph's bitmap*/ .line_height = 23, /*The maximum line height required by the font*/ From 0045fb16b66b008c13888312b92688dcb7535a0c Mon Sep 17 00:00:00 2001 From: Neil O'Fix <69880003+nlfx@users.noreply.github.com> Date: Sat, 26 Jun 2021 18:53:32 +0000 Subject: [PATCH 31/58] SPI flash sleep if bootloader >= 1.0.0 (#322) * Retrieve and display bootloader version - Display bootloader version on System Info screen - Enable SPI flash sleep mode if bootloader version >= 1.0.0 * Wait for SPI flash to wakeup before starting OTA DFU --- src/BootloaderVersion.cpp | 30 ++++++++++++++++++--------- src/BootloaderVersion.h | 15 +++++++++----- src/components/ble/DfuService.cpp | 5 +++++ src/displayapp/screens/SystemInfo.cpp | 11 ++++++---- src/main.cpp | 4 ++++ src/systemtask/SystemTask.h | 4 ++++ 6 files changed, 50 insertions(+), 19 deletions(-) diff --git a/src/BootloaderVersion.cpp b/src/BootloaderVersion.cpp index 5eba7a1d..07a1da4e 100644 --- a/src/BootloaderVersion.cpp +++ b/src/BootloaderVersion.cpp @@ -1,26 +1,36 @@ #include <cstdint> +#include <cstdio> #include "BootloaderVersion.h" using namespace Pinetime; -// NOTE : current bootloader does not export its version to the application firmware. +// NOTE : version < 1.0.0 of bootloader does not export its version to the application firmware. -uint32_t BootloaderVersion::Major() { - return 0; +uint32_t BootloaderVersion::version = 0; +char BootloaderVersion::versionString[BootloaderVersion::VERSION_STR_LEN] = "0.0.0"; + +const uint32_t BootloaderVersion::Major() { + return (BootloaderVersion::version >> 16u) & 0xff; } -uint32_t BootloaderVersion::Minor() { - return 0; +const uint32_t BootloaderVersion::Minor() { + return (BootloaderVersion::version >> 8u) & 0xff; } -uint32_t BootloaderVersion::Patch() { - return 0; +const uint32_t BootloaderVersion::Patch() { + return BootloaderVersion::version & 0xff; } const char* BootloaderVersion::VersionString() { - return "0.0.0"; + return BootloaderVersion::versionString; } -bool BootloaderVersion::IsValid() { - return false; +const bool BootloaderVersion::IsValid() { + return BootloaderVersion::version >= 0x00010000; +} + +void BootloaderVersion::SetVersion(uint32_t v) { + BootloaderVersion::version = v; + snprintf(BootloaderVersion::versionString, BootloaderVersion::VERSION_STR_LEN, "%ld.%ld.%ld", + BootloaderVersion::Major(), BootloaderVersion::Minor(), BootloaderVersion::Patch()); } diff --git a/src/BootloaderVersion.h b/src/BootloaderVersion.h index c1ede0f5..f8127414 100644 --- a/src/BootloaderVersion.h +++ b/src/BootloaderVersion.h @@ -3,10 +3,15 @@ namespace Pinetime { class BootloaderVersion { public: - static uint32_t Major(); - static uint32_t Minor(); - static uint32_t Patch(); + static const uint32_t Major(); + static const uint32_t Minor(); + static const uint32_t Patch(); static const char* VersionString(); - static bool IsValid(); + static const bool IsValid(); + static void SetVersion(uint32_t v); + private: + static uint32_t version; + static constexpr size_t VERSION_STR_LEN = 12; + static char versionString[VERSION_STR_LEN]; }; -} \ No newline at end of file +} diff --git a/src/components/ble/DfuService.cpp b/src/components/ble/DfuService.cpp index cec194cc..e6bcea81 100644 --- a/src/components/ble/DfuService.cpp +++ b/src/components/ble/DfuService.cpp @@ -121,6 +121,11 @@ int DfuService::WritePacketHandler(uint16_t connectionHandle, os_mbuf* om) { NRF_LOG_INFO( "[DFU] -> Start data received : SD size : %d, BT size : %d, app size : %d", softdeviceSize, bootloaderSize, applicationSize); + // wait until SystemTask has finished waking up all devices + while (systemTask.IsSleeping()) { + vTaskDelay(50); // 50ms + } + dfuImage.Erase(); uint8_t data[] {16, 1, 1}; diff --git a/src/displayapp/screens/SystemInfo.cpp b/src/displayapp/screens/SystemInfo.cpp index 1cf895c7..60e53ad6 100644 --- a/src/displayapp/screens/SystemInfo.cpp +++ b/src/displayapp/screens/SystemInfo.cpp @@ -3,6 +3,7 @@ #include "../DisplayApp.h" #include "Label.h" #include "Version.h" +#include "BootloaderVersion.h" #include "components/battery/BatteryController.h" #include "components/ble/BleController.h" #include "components/brightness/BrightnessController.h" @@ -83,17 +84,19 @@ std::unique_ptr<Screen> SystemInfo::CreateScreen1() { lv_label_set_recolor(label, true); lv_label_set_text_fmt(label, "#FFFF00 InfiniTime#\n\n" - "#444444 Version# %ld.%ld.%ld\n\n" - "#444444 Short Ref# %s\n\n" + "#444444 Version# %ld.%ld.%ld\n" + "#444444 Short Ref# %s\n" "#444444 Build date#\n" "%s\n" - "%s\n", + "%s\n\n" + "#444444 Bootloader# %s", Version::Major(), Version::Minor(), Version::Patch(), Version::GitCommitHash(), __DATE__, - __TIME__); + __TIME__, + BootloaderVersion::VersionString()); lv_label_set_align(label, LV_LABEL_ALIGN_CENTER); lv_obj_align(label, lv_scr_act(), LV_ALIGN_CENTER, 0, 0); return std::make_unique<Screens::Label>(0, 5, app, label); diff --git a/src/main.cpp b/src/main.cpp index 4c2c5de8..5832a78f 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -28,6 +28,7 @@ #include <drivers/Hrs3300.h> #include <drivers/Bma421.h> +#include "BootloaderVersion.h" #include "components/battery/BatteryController.h" #include "components/ble/BleController.h" #include "components/ble/NotificationManager.h" @@ -306,6 +307,9 @@ int main(void) { debounceTimer = xTimerCreate("debounceTimer", 200, pdFALSE, (void*) 0, DebounceTimerCallback); debounceChargeTimer = xTimerCreate("debounceTimerCharge", 200, pdFALSE, (void*) 0, DebounceTimerChargeCallback); + // retrieve version stored by bootloader + Pinetime::BootloaderVersion::SetVersion(NRF_TIMER2->CC[0]); + lvgl.Init(); systemTask.Start(); diff --git a/src/systemtask/SystemTask.h b/src/systemtask/SystemTask.h index fa6a949c..f563640c 100644 --- a/src/systemtask/SystemTask.h +++ b/src/systemtask/SystemTask.h @@ -73,6 +73,10 @@ namespace Pinetime { return nimbleController; }; + bool IsSleeping() const { + return isSleeping; + } + private: TaskHandle_t taskHandle; From f317d54218659af437d840d00fd349e7919a243f Mon Sep 17 00:00:00 2001 From: kieranc <kieranc@gmail.com> Date: Tue, 29 Jun 2021 20:20:27 +0200 Subject: [PATCH 32/58] Add PineTimeStyle watchface (#334) * PineTimeStyle * Move GPL license header * Add step count gauge - replaces heartrate in sidebar * Enable 12/24h functionality * Set step gauge outer to be white when step goal is reached * Add font source file * Move static needle_colors array to member variable * Add documentation on generating a font * Replace .ttf with Google version, add link to font page Co-authored-by: JF002 <JF002@users.noreply.github.com> --- src/CMakeLists.txt | 4 + src/displayapp/fonts/README.md | 18 + src/displayapp/fonts/open_sans_light.c | 1261 +++++++++++++++++ src/displayapp/fonts/open_sans_light.ttf | Bin 0 -> 101696 bytes src/displayapp/screens/Clock.cpp | 14 + src/displayapp/screens/Clock.h | 1 + src/displayapp/screens/PineTimeStyle.cpp | 340 +++++ src/displayapp/screens/PineTimeStyle.h | 86 ++ .../screens/settings/SettingWatchFace.cpp | 9 + src/libs/lv_conf.h | 1 + 10 files changed, 1734 insertions(+) create mode 100644 src/displayapp/fonts/open_sans_light.c create mode 100644 src/displayapp/fonts/open_sans_light.ttf create mode 100644 src/displayapp/screens/PineTimeStyle.cpp create mode 100644 src/displayapp/screens/PineTimeStyle.h diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 7721d6b8..aca86543 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -235,6 +235,7 @@ set(LVGL_SRC libs/lvgl/src/lv_widgets/lv_cont.h libs/lvgl/src/lv_widgets/lv_cpicker.h libs/lvgl/src/lv_widgets/lv_dropdown.h + libs/lvgl/src/lv_widgets/lv_gauge.h libs/lvgl/src/lv_widgets/lv_img.h libs/lvgl/src/lv_widgets/lv_imgbtn.h libs/lvgl/src/lv_widgets/lv_keyboard.h @@ -321,6 +322,7 @@ set(LVGL_SRC libs/lvgl/src/lv_widgets/lv_cont.c libs/lvgl/src/lv_widgets/lv_cpicker.c libs/lvgl/src/lv_widgets/lv_dropdown.c + libs/lvgl/src/lv_widgets/lv_gauge.c libs/lvgl/src/lv_widgets/lv_img.c libs/lvgl/src/lv_widgets/lv_imgbtn.c libs/lvgl/src/lv_widgets/lv_keyboard.c @@ -423,6 +425,7 @@ list(APPEND SOURCE_FILES displayapp/icons/bg_clock.c displayapp/screens/WatchFaceAnalog.cpp displayapp/screens/WatchFaceDigital.cpp + displayapp/screens/PineTimeStyle.cpp ## @@ -473,6 +476,7 @@ list(APPEND SOURCE_FILES displayapp/fonts/jetbrains_mono_76.c displayapp/fonts/jetbrains_mono_42.c displayapp/fonts/lv_font_sys_48.c + displayapp/fonts/open_sans_light.c displayapp/lv_pinetime_theme.c systemtask/SystemTask.cpp diff --git a/src/displayapp/fonts/README.md b/src/displayapp/fonts/README.md index 08427d51..13b61b8e 100644 --- a/src/displayapp/fonts/README.md +++ b/src/displayapp/fonts/README.md @@ -2,6 +2,7 @@ * [Jetbrains Mono](https://www.jetbrains.com/fr-fr/lp/mono/) * [Awesome font from LVGL](https://lvgl.io/assets/others/FontAwesome5-Solid+Brands+Regular.woff) +* [Open Sans Light from Google](https://fonts.google.com/specimen/Open+Sans) ## Generate the fonts: @@ -14,6 +15,8 @@ * Add a 2nd font, load the file `FontAwesome5-Solid+Brands+Regular.woff` and specify the following range : `0xf293, 0xf294, 0xf244, 0xf240, 0xf242, 0xf243, 0xf241, 0xf54b, 0xf21e, 0xf1e6, 0xf54b, 0xf017, 0xf129, 0xf03a, 0xf185, 0xf560, 0xf001, 0xf3fd, 0xf069, 0xf1fc, 0xf45d, 0xf59f, 0xf5a0, 0xf029, 0xf027, 0xf028, 0xf6a9, 0xf04b, 0xf04c, 0xf048, 0xf051, 0xf095, 0xf3dd, 0xf04d, 0xf2f2, 0xf024, 0xf252` * Click on Convert, and download the file `jetbrains_mono_bold_20.c` and copy it in `src/DisplayApp/Fonts` +* Add the font .c file path to src/CMakeLists.txt +* Add an LV_FONT_DECLARE line in src/libs/lv_conf.h Add new symbols: @@ -28,6 +31,21 @@ Add new symbols: static constexpr const char* newSymbol = "\xEF\x86\x85"; ``` +## Simple method to generate a font + +If you want to generate a basic font containing only numbers and letters, you can use the above settings but instead of specifying a range, simply list the characters you need in the Symbols field and leave the range blank. This is the approach used for the PineTimeStyle watchface. +This works well for fonts which will only be used to display numbers, but will fail if you try to add a colon or other punctuation. + +* Open the [LVGL font converter](https://lvgl.io/tools/fontconverter) +* Name : open_sans_light +* Size : 150 +* Bpp : 1 bit-per-pixel +* Do not enable font compression and horizontal subpixel hinting +* Load the file `open_sans_light.tff` (use the file in this repo to ensure the version matches) and specify the following symbols : `0123456789` +* Click on Convert, and download the file `open_sans_light.c` and copy it in `src/DisplayApp/Fonts` +* Add the font .c file path to src/CMakeLists.txt (search for jetbrains to find the appropriate location/format) +* Add an LV_FONT_DECLARE line in src/libs/lv_conf.h (as above) + #### Navigation font To create the navigtion.ttf I use the web app [icomoon](https://icomoon.io/app) diff --git a/src/displayapp/fonts/open_sans_light.c b/src/displayapp/fonts/open_sans_light.c new file mode 100644 index 00000000..15f0ddf6 --- /dev/null +++ b/src/displayapp/fonts/open_sans_light.c @@ -0,0 +1,1261 @@ +/******************************************************************************* + * Size: 150 px + * Bpp: 1 + * Opts: + ******************************************************************************/ + +#ifdef LV_LVGL_H_INCLUDE_SIMPLE +#include "lvgl.h" +#else +#include "lvgl/lvgl.h" +#endif + +#ifndef OPEN_SANS_LIGHT +#define OPEN_SANS_LIGHT 1 +#endif + +#if OPEN_SANS_LIGHT + +/*----------------- + * BITMAPS + *----------------*/ + +/*Store the image of the glyphs*/ +static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = { + /* U+0030 "0" */ + 0x0, 0x0, 0x0, 0xf, 0xff, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x7, 0xff, 0xff, 0xc0, 0x0, + 0x0, 0x0, 0x0, 0x1, 0xff, 0xff, 0xff, 0x80, + 0x0, 0x0, 0x0, 0x0, 0x3f, 0xff, 0xff, 0xff, + 0x0, 0x0, 0x0, 0x0, 0x7, 0xff, 0xff, 0xff, + 0xfe, 0x0, 0x0, 0x0, 0x0, 0x7f, 0xff, 0xff, + 0xff, 0xf8, 0x0, 0x0, 0x0, 0xf, 0xff, 0xe0, + 0x3, 0xff, 0xf0, 0x0, 0x0, 0x0, 0xff, 0xf8, + 0x0, 0x3, 0xff, 0xc0, 0x0, 0x0, 0xf, 0xfe, + 0x0, 0x0, 0x7, 0xff, 0x0, 0x0, 0x0, 0xff, + 0xe0, 0x0, 0x0, 0xf, 0xfc, 0x0, 0x0, 0x7, + 0xfe, 0x0, 0x0, 0x0, 0x3f, 0xf0, 0x0, 0x0, + 0x7f, 0xc0, 0x0, 0x0, 0x0, 0xff, 0x80, 0x0, + 0x7, 0xfc, 0x0, 0x0, 0x0, 0x1, 0xfe, 0x0, + 0x0, 0x7f, 0xc0, 0x0, 0x0, 0x0, 0xf, 0xf8, + 0x0, 0x3, 0xfe, 0x0, 0x0, 0x0, 0x0, 0x3f, + 0xc0, 0x0, 0x3f, 0xe0, 0x0, 0x0, 0x0, 0x0, + 0xff, 0x0, 0x1, 0xfe, 0x0, 0x0, 0x0, 0x0, + 0x3, 0xfc, 0x0, 0x1f, 0xf0, 0x0, 0x0, 0x0, + 0x0, 0x1f, 0xe0, 0x0, 0xff, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x7f, 0x80, 0xf, 0xf8, 0x0, 0x0, + 0x0, 0x0, 0x3, 0xfc, 0x0, 0x7f, 0x80, 0x0, + 0x0, 0x0, 0x0, 0xf, 0xe0, 0x3, 0xfc, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x7f, 0x80, 0x3f, 0xc0, + 0x0, 0x0, 0x0, 0x0, 0x3, 0xfc, 0x1, 0xfe, + 0x0, 0x0, 0x0, 0x0, 0x0, 0xf, 0xf0, 0xf, + 0xf0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x7f, 0x80, + 0xff, 0x0, 0x0, 0x0, 0x0, 0x0, 0x3, 0xfc, + 0x7, 0xf8, 0x0, 0x0, 0x0, 0x0, 0x0, 0xf, + 0xf0, 0x3f, 0xc0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x7f, 0x81, 0xfe, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x3, 0xfc, 0x1f, 0xe0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0xf, 0xe0, 0xff, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x7f, 0x87, 0xf8, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x3, 0xfc, 0x3f, 0xc0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x1f, 0xe1, 0xfe, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0xff, 0x1f, 0xe0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x3, 0xf8, 0xff, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x1f, 0xe7, 0xf8, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0x3f, + 0xc0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x7, 0xf9, + 0xfe, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x3f, + 0xcf, 0xf0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1, + 0xfe, 0x7f, 0x80, 0x0, 0x0, 0x0, 0x0, 0x0, + 0xf, 0xf3, 0xfc, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x7f, 0xbf, 0xc0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x3, 0xfd, 0xfe, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0xf, 0xff, 0xf0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x7f, 0xff, 0x80, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x3, 0xff, 0xfc, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x1f, 0xff, 0xe0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x7, 0xff, 0xf8, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x3f, 0xff, + 0xc0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1, 0xff, + 0xfe, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xf, + 0xff, 0xf0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x7f, 0xff, 0x80, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x3, 0xff, 0xfc, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x1f, 0xff, 0xe0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x7, 0xff, 0xf8, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x3f, 0xff, 0xc0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x1, 0xff, 0xfe, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0xf, 0xff, 0xf0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x7f, 0xff, 0x80, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x3, 0xff, 0xfc, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1f, 0xff, + 0xe0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, + 0xff, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x7, + 0xff, 0xf8, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x3f, 0xff, 0xc0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x1, 0xfe, 0xfe, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x1f, 0xe7, 0xf8, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0xff, 0x3f, 0xc0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x7, 0xf9, 0xfe, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x3f, 0xcf, 0xf0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x1, 0xfe, 0x7f, 0x80, 0x0, + 0x0, 0x0, 0x0, 0x0, 0xf, 0xf3, 0xfc, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x7f, 0x9f, 0xe0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x3, 0xfc, 0x7f, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x3f, 0xe3, + 0xfc, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1, 0xfe, + 0x1f, 0xe0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xf, + 0xf0, 0xff, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x7f, 0x87, 0xf8, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x3, 0xfc, 0x1f, 0xc0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x1f, 0xe0, 0xff, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x1, 0xfe, 0x7, 0xf8, 0x0, 0x0, 0x0, + 0x0, 0x0, 0xf, 0xf0, 0x3f, 0xc0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x7f, 0x80, 0xfe, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x7, 0xfc, 0x7, 0xf8, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x3f, 0xc0, 0x3f, 0xc0, + 0x0, 0x0, 0x0, 0x0, 0x1, 0xfe, 0x0, 0xfe, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x1f, 0xf0, 0x7, + 0xf8, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0x0, + 0x3f, 0xc0, 0x0, 0x0, 0x0, 0x0, 0x7, 0xf8, + 0x0, 0xff, 0x0, 0x0, 0x0, 0x0, 0x0, 0x7f, + 0x80, 0x7, 0xf8, 0x0, 0x0, 0x0, 0x0, 0x3, + 0xfc, 0x0, 0x1f, 0xe0, 0x0, 0x0, 0x0, 0x0, + 0x3f, 0xe0, 0x0, 0xff, 0x0, 0x0, 0x0, 0x0, + 0x1, 0xfe, 0x0, 0x3, 0xfc, 0x0, 0x0, 0x0, + 0x0, 0x1f, 0xf0, 0x0, 0x1f, 0xf0, 0x0, 0x0, + 0x0, 0x1, 0xff, 0x0, 0x0, 0x7f, 0xc0, 0x0, + 0x0, 0x0, 0x1f, 0xf0, 0x0, 0x1, 0xfe, 0x0, + 0x0, 0x0, 0x0, 0xff, 0x80, 0x0, 0xf, 0xf8, + 0x0, 0x0, 0x0, 0xf, 0xf8, 0x0, 0x0, 0x3f, + 0xf0, 0x0, 0x0, 0x1, 0xff, 0x80, 0x0, 0x0, + 0xff, 0xc0, 0x0, 0x0, 0x1f, 0xf8, 0x0, 0x0, + 0x3, 0xff, 0x80, 0x0, 0x3, 0xff, 0x80, 0x0, + 0x0, 0xf, 0xff, 0x0, 0x0, 0x7f, 0xf8, 0x0, + 0x0, 0x0, 0x3f, 0xff, 0x0, 0x1f, 0xff, 0x80, + 0x0, 0x0, 0x0, 0xff, 0xff, 0xff, 0xff, 0xf8, + 0x0, 0x0, 0x0, 0x1, 0xff, 0xff, 0xff, 0xff, + 0x0, 0x0, 0x0, 0x0, 0x7, 0xff, 0xff, 0xff, + 0xf0, 0x0, 0x0, 0x0, 0x0, 0xf, 0xff, 0xff, + 0xfe, 0x0, 0x0, 0x0, 0x0, 0x0, 0xf, 0xff, + 0xff, 0x80, 0x0, 0x0, 0x0, 0x0, 0x0, 0x7, + 0xff, 0xc0, 0x0, 0x0, 0x0, + + /* U+0031 "1" */ + 0x0, 0x0, 0x0, 0xf, 0xe0, 0x0, 0x0, 0x3, + 0xfc, 0x0, 0x0, 0x1, 0xff, 0x80, 0x0, 0x0, + 0x7f, 0xf0, 0x0, 0x0, 0x1f, 0xfe, 0x0, 0x0, + 0xf, 0xff, 0xc0, 0x0, 0x3, 0xff, 0xf8, 0x0, + 0x0, 0xff, 0xbf, 0x0, 0x0, 0x7f, 0xe7, 0xe0, + 0x0, 0x1f, 0xf8, 0xfc, 0x0, 0x7, 0xfe, 0x1f, + 0x80, 0x3, 0xff, 0x83, 0xf0, 0x0, 0xff, 0xc0, + 0xfe, 0x0, 0x3f, 0xf0, 0x1f, 0xc0, 0x1f, 0xfc, + 0x3, 0xf8, 0x7, 0xff, 0x0, 0x7f, 0x1, 0xff, + 0x80, 0xf, 0xe0, 0xff, 0xe0, 0x1, 0xfc, 0x3f, + 0xf8, 0x0, 0x3f, 0x8f, 0xfc, 0x0, 0x7, 0xf7, + 0xff, 0x0, 0x0, 0xff, 0xff, 0xc0, 0x0, 0x1f, + 0xff, 0xf0, 0x0, 0x3, 0xfb, 0xf8, 0x0, 0x0, + 0x7f, 0x3e, 0x0, 0x0, 0xf, 0xe3, 0x80, 0x0, + 0x1, 0xfc, 0x20, 0x0, 0x0, 0x3f, 0x80, 0x0, + 0x0, 0x7, 0xf0, 0x0, 0x0, 0x0, 0xfe, 0x0, + 0x0, 0x0, 0x1f, 0xc0, 0x0, 0x0, 0x3, 0xf8, + 0x0, 0x0, 0x0, 0x7f, 0x0, 0x0, 0x0, 0xf, + 0xe0, 0x0, 0x0, 0x1, 0xfc, 0x0, 0x0, 0x0, + 0x3f, 0x80, 0x0, 0x0, 0x7, 0xf0, 0x0, 0x0, + 0x0, 0xfe, 0x0, 0x0, 0x0, 0x1f, 0xc0, 0x0, + 0x0, 0x3, 0xf8, 0x0, 0x0, 0x0, 0x7f, 0x0, + 0x0, 0x0, 0xf, 0xe0, 0x0, 0x0, 0x1, 0xfc, + 0x0, 0x0, 0x0, 0x3f, 0x80, 0x0, 0x0, 0x7, + 0xf0, 0x0, 0x0, 0x0, 0xfe, 0x0, 0x0, 0x0, + 0x1f, 0xc0, 0x0, 0x0, 0x3, 0xf8, 0x0, 0x0, + 0x0, 0x7f, 0x0, 0x0, 0x0, 0xf, 0xe0, 0x0, + 0x0, 0x1, 0xfc, 0x0, 0x0, 0x0, 0x3f, 0x80, + 0x0, 0x0, 0x7, 0xf0, 0x0, 0x0, 0x0, 0xfe, + 0x0, 0x0, 0x0, 0x1f, 0xc0, 0x0, 0x0, 0x3, + 0xf8, 0x0, 0x0, 0x0, 0x7f, 0x0, 0x0, 0x0, + 0xf, 0xe0, 0x0, 0x0, 0x1, 0xfc, 0x0, 0x0, + 0x0, 0x3f, 0x80, 0x0, 0x0, 0x7, 0xf0, 0x0, + 0x0, 0x0, 0xfe, 0x0, 0x0, 0x0, 0x1f, 0xc0, + 0x0, 0x0, 0x3, 0xf8, 0x0, 0x0, 0x0, 0x7f, + 0x0, 0x0, 0x0, 0xf, 0xe0, 0x0, 0x0, 0x1, + 0xfc, 0x0, 0x0, 0x0, 0x3f, 0x80, 0x0, 0x0, + 0x7, 0xf0, 0x0, 0x0, 0x0, 0xfe, 0x0, 0x0, + 0x0, 0x1f, 0xc0, 0x0, 0x0, 0x3, 0xf8, 0x0, + 0x0, 0x0, 0x7f, 0x0, 0x0, 0x0, 0xf, 0xe0, + 0x0, 0x0, 0x1, 0xfc, 0x0, 0x0, 0x0, 0x3f, + 0x80, 0x0, 0x0, 0x7, 0xf0, 0x0, 0x0, 0x0, + 0xfe, 0x0, 0x0, 0x0, 0x1f, 0xc0, 0x0, 0x0, + 0x3, 0xf8, 0x0, 0x0, 0x0, 0x7f, 0x0, 0x0, + 0x0, 0xf, 0xe0, 0x0, 0x0, 0x1, 0xfc, 0x0, + 0x0, 0x0, 0x3f, 0x80, 0x0, 0x0, 0x7, 0xf0, + 0x0, 0x0, 0x0, 0xfe, 0x0, 0x0, 0x0, 0x1f, + 0xc0, 0x0, 0x0, 0x3, 0xf8, 0x0, 0x0, 0x0, + 0x7f, 0x0, 0x0, 0x0, 0xf, 0xe0, 0x0, 0x0, + 0x1, 0xfc, 0x0, 0x0, 0x0, 0x3f, 0x80, 0x0, + 0x0, 0x7, 0xf0, 0x0, 0x0, 0x0, 0xfe, 0x0, + 0x0, 0x0, 0x1f, 0xc0, 0x0, 0x0, 0x3, 0xf8, + 0x0, 0x0, 0x0, 0x7f, 0x0, 0x0, 0x0, 0xf, + 0xe0, 0x0, 0x0, 0x1, 0xfc, 0x0, 0x0, 0x0, + 0x3f, 0x80, 0x0, 0x0, 0x7, 0xf0, 0x0, 0x0, + 0x0, 0xfe, 0x0, 0x0, 0x0, 0x1f, 0xc0, 0x0, + 0x0, 0x3, 0xf8, 0x0, 0x0, 0x0, 0x7f, 0x0, + 0x0, 0x0, 0xf, 0xe0, 0x0, 0x0, 0x1, 0xfc, + 0x0, 0x0, 0x0, 0x3f, 0x80, + + /* U+0032 "2" */ + 0x0, 0x0, 0x0, 0x7f, 0xfe, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x1, 0xff, 0xff, 0xfc, 0x0, 0x0, + 0x0, 0x0, 0x1, 0xff, 0xff, 0xff, 0xf0, 0x0, + 0x0, 0x0, 0x1, 0xff, 0xff, 0xff, 0xff, 0x80, + 0x0, 0x0, 0x0, 0xff, 0xff, 0xff, 0xff, 0xfc, + 0x0, 0x0, 0x0, 0x7f, 0xff, 0xff, 0xff, 0xff, + 0xe0, 0x0, 0x0, 0x1f, 0xff, 0xf0, 0x1, 0xff, + 0xfe, 0x0, 0x0, 0xf, 0xff, 0xc0, 0x0, 0x3, + 0xff, 0xe0, 0x0, 0x7, 0xff, 0xe0, 0x0, 0x0, + 0x1f, 0xfe, 0x0, 0x1, 0xff, 0xe0, 0x0, 0x0, + 0x0, 0xff, 0xe0, 0x0, 0x7f, 0xf0, 0x0, 0x0, + 0x0, 0xf, 0xfe, 0x0, 0xf, 0xfc, 0x0, 0x0, + 0x0, 0x0, 0xff, 0xc0, 0x0, 0xfe, 0x0, 0x0, + 0x0, 0x0, 0xf, 0xfc, 0x0, 0xf, 0x80, 0x0, + 0x0, 0x0, 0x0, 0xff, 0xc0, 0x1, 0xc0, 0x0, + 0x0, 0x0, 0x0, 0xf, 0xf8, 0x0, 0x10, 0x0, + 0x0, 0x0, 0x0, 0x0, 0xff, 0x80, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x1f, 0xf0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x1, 0xfe, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x3f, 0xe0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x3, 0xfc, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x7f, 0x80, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xf, 0xf0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1, 0xff, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1f, + 0xe0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x3, + 0xfc, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x7f, 0x80, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0xf, 0xf0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x1, 0xfe, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x3f, 0xc0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x7, 0xf8, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0xff, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x1f, 0xe0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x3, 0xfc, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x7f, 0x80, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x1f, 0xf0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x3, 0xfc, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x7f, 0x80, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0xf, 0xf0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x3, 0xfe, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x7f, 0x80, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0xf, 0xf0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x3, 0xfe, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x7f, 0x80, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xf, 0xf0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x3, 0xfe, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x7f, + 0x80, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1f, + 0xf0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x7, + 0xfc, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0xff, 0x80, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x3f, 0xe0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x7, 0xfc, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x1, 0xff, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x7f, 0xe0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0xf, 0xf8, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x3, 0xfe, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0xff, 0x80, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x3f, 0xf0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x7, 0xfc, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x1, 0xff, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x7f, 0xc0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x1f, 0xf8, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x7, 0xfe, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x1, 0xff, 0x80, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x7f, 0xe0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0xf, 0xf8, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x3, 0xff, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xc0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x3f, 0xf0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0xf, 0xfc, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x3, 0xff, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xc0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x3f, 0xf0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xf, 0xfc, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x3, 0xff, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, + 0xc0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x3f, + 0xf0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xf, + 0xfc, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x3, + 0xff, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x7f, 0xc0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x1f, 0xf0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x7, 0xfc, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x1, 0xff, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x7f, 0xc0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x1f, 0xf0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x7, 0xfe, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x1, 0xff, 0x80, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x7f, 0xe0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x1f, 0xf8, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x7, 0xfe, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x1, 0xff, 0x80, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x7f, 0xe0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x1f, 0xf8, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x7, 0xfe, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0xff, 0x80, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x3f, 0xe0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0xf, 0xf8, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x3, 0xfe, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0x80, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x3f, 0xe0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0xf, 0xf8, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x3, 0xfe, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0x80, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x3f, 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, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xf0, + + /* U+0033 "3" */ + 0x0, 0x0, 0x0, 0x1f, 0xff, 0x80, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x7f, 0xff, 0xff, 0xc0, 0x0, + 0x0, 0x0, 0x0, 0x3f, 0xff, 0xff, 0xff, 0x80, + 0x0, 0x0, 0x0, 0x1f, 0xff, 0xff, 0xff, 0xff, + 0x0, 0x0, 0x0, 0xf, 0xff, 0xff, 0xff, 0xff, + 0xf8, 0x0, 0x0, 0x3, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xe0, 0x0, 0x0, 0xff, 0xff, 0xe0, 0x0, + 0xff, 0xff, 0x0, 0x0, 0x3f, 0xff, 0xc0, 0x0, + 0x0, 0xff, 0xf8, 0x0, 0x7, 0xff, 0xe0, 0x0, + 0x0, 0x3, 0xff, 0xc0, 0x1, 0xff, 0xf0, 0x0, + 0x0, 0x0, 0xf, 0xfe, 0x0, 0x3f, 0xfc, 0x0, + 0x0, 0x0, 0x0, 0x7f, 0xf0, 0x7, 0xff, 0x0, + 0x0, 0x0, 0x0, 0x1, 0xff, 0x80, 0x3f, 0xc0, + 0x0, 0x0, 0x0, 0x0, 0xf, 0xfc, 0x1, 0xf8, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x7f, 0xc0, 0xe, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x7, 0xfe, 0x0, + 0xc0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x3f, 0xe0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1, 0xfe, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1f, + 0xf0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0xff, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0xf, 0xf0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0xff, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x7, 0xf8, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x7f, 0x80, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x7, 0xf8, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x7f, 0x80, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x7, 0xf8, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x7f, 0x80, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x7, 0xf8, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x7f, 0x80, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x7, 0xf8, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x7f, 0x80, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xf, 0xf8, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xf, + 0xf0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0xff, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x1f, 0xf0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x1, 0xfe, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x3f, 0xe0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x3, 0xfc, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x7f, 0xc0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0xf, 0xf8, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x1, 0xff, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x3f, 0xf0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x7, 0xfe, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0xff, 0xc0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x3f, 0xf8, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x7, 0xfe, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x1, 0xff, 0xc0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xf8, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x1, 0xff, 0xfe, 0x0, + 0x0, 0x0, 0x0, 0xff, 0xff, 0xff, 0xff, 0x0, + 0x0, 0x0, 0x0, 0xf, 0xff, 0xff, 0xff, 0x80, + 0x0, 0x0, 0x0, 0x0, 0xff, 0xff, 0xff, 0xc0, + 0x0, 0x0, 0x0, 0x0, 0xf, 0xff, 0xff, 0xff, + 0xc0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff, 0xff, + 0xff, 0xc0, 0x0, 0x0, 0x0, 0xf, 0xff, 0xff, + 0xff, 0xff, 0x80, 0x0, 0x0, 0x0, 0x0, 0x0, + 0xf, 0xff, 0xfe, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x3, 0xff, 0xf8, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x7, 0xff, 0xc0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0xf, 0xff, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x3f, 0xf8, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x1, 0xff, 0xc0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x7, 0xfe, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x3f, 0xf0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1, 0xff, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xf, + 0xf8, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0xff, 0x80, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x7, 0xfc, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x3f, 0xc0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x3, 0xfe, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x1f, 0xe0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x1, 0xfe, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x1f, 0xe0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0xff, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0xf, 0xf0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0xf, 0xf0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xf, 0xf0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xf, + 0xf0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0xff, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0xf, 0xf0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0xff, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x1f, 0xf0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x1, 0xfe, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x1f, 0xe0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x1, 0xfe, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x3f, 0xe0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x3, 0xfc, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x7f, 0xc0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x7, 0xfc, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0x80, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0xf, 0xf8, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x1, 0xff, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x3f, 0xe0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x7, 0xfe, + 0x8, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, + 0xc0, 0xe0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x3f, + 0xf8, 0xf, 0x80, 0x0, 0x0, 0x0, 0x0, 0x7, + 0xff, 0x0, 0xff, 0x0, 0x0, 0x0, 0x0, 0x1, + 0xff, 0xe0, 0xf, 0xfe, 0x0, 0x0, 0x0, 0x0, + 0x7f, 0xfc, 0x0, 0xff, 0xfe, 0x0, 0x0, 0x0, + 0x7f, 0xff, 0x80, 0xf, 0xff, 0xff, 0x80, 0x0, + 0xff, 0xff, 0xe0, 0x0, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xfc, 0x0, 0x1, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0x0, 0x0, 0x7, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xc0, 0x0, 0x0, 0xf, 0xff, + 0xff, 0xff, 0xff, 0xe0, 0x0, 0x0, 0x0, 0x7, + 0xff, 0xff, 0xff, 0xe0, 0x0, 0x0, 0x0, 0x0, + 0x1, 0xff, 0xff, 0x80, 0x0, 0x0, 0x0, + + /* U+0034 "4" */ + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x7, 0xfc, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x7, 0xfe, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x7, 0xff, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x3, 0xff, 0x80, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x3, 0xff, + 0xc0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x3, 0xff, 0xe0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x3, 0xfb, 0xf0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x1, 0xfd, 0xf8, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1, 0xfc, + 0xfc, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x1, 0xfc, 0x7e, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0xfe, 0x3f, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0xfe, 0x1f, 0x80, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xfe, + 0xf, 0xc0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x7f, 0x7, 0xe0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x7f, 0x3, 0xf0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x7f, 0x1, 0xf8, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x7f, + 0x80, 0xfc, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x3f, 0x80, 0x7e, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x3f, 0xc0, 0x3f, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x3f, 0xc0, 0x1f, + 0x80, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1f, + 0xc0, 0xf, 0xc0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x1f, 0xc0, 0x7, 0xe0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x1f, 0xe0, 0x3, 0xf0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x1f, 0xe0, 0x1, + 0xf8, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xf, + 0xe0, 0x0, 0xfc, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0xf, 0xf0, 0x0, 0x7e, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0xf, 0xf0, 0x0, 0x3f, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x7, 0xf0, 0x0, + 0x1f, 0x80, 0x0, 0x0, 0x0, 0x0, 0x0, 0x7, + 0xf8, 0x0, 0xf, 0xc0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x7, 0xf8, 0x0, 0x7, 0xe0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x3, 0xf8, 0x0, 0x3, 0xf0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x3, 0xf8, 0x0, + 0x1, 0xf8, 0x0, 0x0, 0x0, 0x0, 0x0, 0x3, + 0xfc, 0x0, 0x0, 0xfc, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x3, 0xfc, 0x0, 0x0, 0x7e, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x1, 0xfc, 0x0, 0x0, 0x3f, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x1, 0xfe, 0x0, + 0x0, 0x1f, 0x80, 0x0, 0x0, 0x0, 0x0, 0x1, + 0xfe, 0x0, 0x0, 0xf, 0xc0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0xfe, 0x0, 0x0, 0x7, 0xe0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0xff, 0x0, 0x0, 0x3, + 0xf0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0x0, + 0x0, 0x1, 0xf8, 0x0, 0x0, 0x0, 0x0, 0x0, + 0xff, 0x0, 0x0, 0x0, 0xfc, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x7f, 0x0, 0x0, 0x0, 0x7e, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x7f, 0x80, 0x0, 0x0, + 0x3f, 0x0, 0x0, 0x0, 0x0, 0x0, 0x7f, 0x80, + 0x0, 0x0, 0x1f, 0x80, 0x0, 0x0, 0x0, 0x0, + 0x3f, 0x80, 0x0, 0x0, 0xf, 0xc0, 0x0, 0x0, + 0x0, 0x0, 0x3f, 0xc0, 0x0, 0x0, 0x7, 0xe0, + 0x0, 0x0, 0x0, 0x0, 0x3f, 0xc0, 0x0, 0x0, + 0x3, 0xf0, 0x0, 0x0, 0x0, 0x0, 0x1f, 0xc0, + 0x0, 0x0, 0x1, 0xf8, 0x0, 0x0, 0x0, 0x0, + 0x1f, 0xe0, 0x0, 0x0, 0x0, 0xfc, 0x0, 0x0, + 0x0, 0x0, 0x1f, 0xe0, 0x0, 0x0, 0x0, 0x7e, + 0x0, 0x0, 0x0, 0x0, 0x1f, 0xe0, 0x0, 0x0, + 0x0, 0x3f, 0x0, 0x0, 0x0, 0x0, 0xf, 0xe0, + 0x0, 0x0, 0x0, 0x1f, 0x80, 0x0, 0x0, 0x0, + 0xf, 0xf0, 0x0, 0x0, 0x0, 0xf, 0xc0, 0x0, + 0x0, 0x0, 0xf, 0xf0, 0x0, 0x0, 0x0, 0x7, + 0xe0, 0x0, 0x0, 0x0, 0x7, 0xf0, 0x0, 0x0, + 0x0, 0x3, 0xf0, 0x0, 0x0, 0x0, 0x7, 0xf8, + 0x0, 0x0, 0x0, 0x1, 0xf8, 0x0, 0x0, 0x0, + 0x7, 0xf8, 0x0, 0x0, 0x0, 0x0, 0xfc, 0x0, + 0x0, 0x0, 0x3, 0xf8, 0x0, 0x0, 0x0, 0x0, + 0x7e, 0x0, 0x0, 0x0, 0x3, 0xfc, 0x0, 0x0, + 0x0, 0x0, 0x3f, 0x0, 0x0, 0x0, 0x3, 0xfc, + 0x0, 0x0, 0x0, 0x0, 0x1f, 0x80, 0x0, 0x0, + 0x3, 0xfc, 0x0, 0x0, 0x0, 0x0, 0xf, 0xc0, + 0x0, 0x0, 0x1, 0xfc, 0x0, 0x0, 0x0, 0x0, + 0x7, 0xe0, 0x0, 0x0, 0x1, 0xfe, 0x0, 0x0, + 0x0, 0x0, 0x3, 0xf0, 0x0, 0x0, 0x1, 0xfe, + 0x0, 0x0, 0x0, 0x0, 0x1, 0xf8, 0x0, 0x0, + 0x0, 0xfe, 0x0, 0x0, 0x0, 0x0, 0x0, 0xfc, + 0x0, 0x0, 0x0, 0xff, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x7e, 0x0, 0x0, 0x0, 0xff, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x3f, 0x0, 0x0, 0x0, 0xff, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x1f, 0x80, 0x0, + 0x0, 0x7f, 0x80, 0x0, 0x0, 0x0, 0x0, 0xf, + 0xc0, 0x0, 0x0, 0x7f, 0x80, 0x0, 0x0, 0x0, + 0x0, 0x7, 0xe0, 0x0, 0x0, 0x7f, 0x80, 0x0, + 0x0, 0x0, 0x0, 0x3, 0xf0, 0x0, 0x0, 0x3f, + 0x80, 0x0, 0x0, 0x0, 0x0, 0x1, 0xf8, 0x0, + 0x0, 0x3f, 0xc0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0xfc, 0x0, 0x0, 0x3f, 0xc0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x7e, 0x0, 0x0, 0x1f, 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, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x1, 0xfc, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0xfe, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x7f, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x3f, + 0x80, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x1f, 0xc0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0xf, 0xe0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x7, 0xf0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x3, + 0xf8, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x1, 0xfc, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0xfe, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x7f, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x3f, 0x80, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x1f, 0xc0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0xf, 0xe0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x7, 0xf0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x3, 0xf8, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x1, 0xfc, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0xfe, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x7f, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x3f, 0x80, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x1f, 0xc0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0xf, 0xe0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x7, + 0xf0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x3, 0xf8, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x1, 0xfc, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xfe, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x7f, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x3f, 0x80, 0x0, 0x0, + + /* U+0035 "5" */ + 0x1, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xe0, + 0x0, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf8, + 0x0, 0x1f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, + 0x0, 0x7, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0x80, 0x1, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xe0, 0x0, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xf8, 0x0, 0x1f, 0xc0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x7, 0xf0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x1, 0xfc, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x7f, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x3f, 0xc0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0xf, 0xf0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x3, 0xfc, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0xff, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x3f, 0x80, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0xf, 0xe0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x3, 0xf8, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0xfe, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x3f, 0x80, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0xf, 0xe0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x3, 0xf8, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x1, 0xfe, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x7f, 0x80, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1f, 0xe0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x7, 0xf8, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1, 0xfe, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x7f, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1f, + 0xc0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x7, + 0xf0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1, + 0xfc, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x7f, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x1f, 0xc0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0xf, 0xf0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x3, 0xfc, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0xff, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x3f, 0xc0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0xf, 0xf0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x3, 0xfc, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0xfe, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x3f, 0x80, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0xf, 0xe0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x3, 0xf8, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0xfe, 0x0, 0x7f, 0xff, 0x80, + 0x0, 0x0, 0x0, 0x3f, 0x8f, 0xff, 0xff, 0xff, + 0x0, 0x0, 0x0, 0x1f, 0xff, 0xff, 0xff, 0xff, + 0xfc, 0x0, 0x0, 0x7, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xc0, 0x0, 0x1, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xfc, 0x0, 0x0, 0x7f, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xc0, 0x0, 0xf, 0xff, 0xf0, 0x0, + 0x3f, 0xff, 0xfc, 0x0, 0x1, 0xfe, 0x0, 0x0, + 0x0, 0x7f, 0xff, 0x80, 0x0, 0x18, 0x0, 0x0, + 0x0, 0x3, 0xff, 0xf0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x3f, 0xfe, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x3, 0xff, 0xc0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x3f, 0xf8, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x7, 0xff, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0xff, 0xe0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x1f, 0xfc, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x3, 0xff, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x7f, 0xe0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0xf, 0xf8, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x1, 0xff, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x7f, 0xc0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xf, 0xf0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x3, 0xfe, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, + 0x80, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1f, + 0xe0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x7, + 0xf8, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1, + 0xff, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x3f, 0xc0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0xf, 0xf0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x3, 0xfc, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0xff, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x3f, 0xc0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0xf, 0xf0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x3, 0xfc, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0xff, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x3f, 0xc0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0xf, 0xf0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x3, 0xfc, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0xff, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x7f, 0x80, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x1f, 0xe0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x7, 0xf8, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x1, 0xfe, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0xff, 0x80, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x3f, 0xc0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x1f, 0xf0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x7, 0xfc, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x3, 0xfe, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0x80, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x7f, 0xc0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x3f, 0xf0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x1f, 0xf8, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x7, 0xfc, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x7, 0xff, 0x3, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x3, 0xff, 0x80, + 0xf0, 0x0, 0x0, 0x0, 0x0, 0x1, 0xff, 0xc0, + 0x3f, 0x0, 0x0, 0x0, 0x0, 0x1, 0xff, 0xe0, + 0xf, 0xf0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xf0, + 0x3, 0xff, 0x80, 0x0, 0x0, 0x1, 0xff, 0xf8, + 0x0, 0xff, 0xfc, 0x0, 0x0, 0x3, 0xff, 0xfc, + 0x0, 0x3f, 0xff, 0xfc, 0x0, 0xf, 0xff, 0xfc, + 0x0, 0xf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, + 0x0, 0x0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, + 0x0, 0x0, 0x7, 0xff, 0xff, 0xff, 0xff, 0xfe, + 0x0, 0x0, 0x0, 0x3f, 0xff, 0xff, 0xff, 0xfc, + 0x0, 0x0, 0x0, 0x0, 0xff, 0xff, 0xff, 0xf8, + 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff, 0xc0, + 0x0, 0x0, 0x0, + + /* U+0036 "6" */ + 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xfe, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff, 0xff, + 0x80, 0x0, 0x0, 0x0, 0x0, 0x7f, 0xff, 0xff, + 0xfc, 0x0, 0x0, 0x0, 0x0, 0xf, 0xff, 0xff, + 0xff, 0xe0, 0x0, 0x0, 0x0, 0x3, 0xff, 0xff, + 0xff, 0xff, 0x0, 0x0, 0x0, 0x0, 0x3f, 0xff, + 0xff, 0xff, 0xf8, 0x0, 0x0, 0x0, 0x7, 0xff, + 0xfc, 0x0, 0xf, 0xc0, 0x0, 0x0, 0x0, 0xff, + 0xfe, 0x0, 0x0, 0x2, 0x0, 0x0, 0x0, 0xf, + 0xff, 0x80, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0xff, 0xf0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0xf, 0xfe, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0xff, 0xc0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0xf, 0xfc, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0xff, 0x80, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0xf, 0xf8, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0xff, 0x80, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0xf, 0xf8, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x7f, 0x80, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x7, 0xfc, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x7f, 0xc0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x3, 0xfc, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x3f, 0xc0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1, 0xfe, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1f, + 0xe0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0xff, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0xf, 0xf0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x7f, 0x80, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x7, 0xf8, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x3f, 0xc0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x1, 0xfc, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x1f, 0xe0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0xfe, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x7, 0xf0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x7f, 0x80, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x3, 0xf8, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1f, 0xc0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1, 0xfe, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xf, + 0xf0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x7f, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x3, 0xf8, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x3f, 0xc0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x1, 0xfe, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0xf, 0xe0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x7f, 0x0, 0x0, 0x3, 0xff, + 0xe0, 0x0, 0x0, 0x3, 0xf8, 0x0, 0x1, 0xff, + 0xff, 0xf0, 0x0, 0x0, 0x1f, 0xc0, 0x0, 0x7f, + 0xff, 0xff, 0xf0, 0x0, 0x0, 0xfe, 0x0, 0xf, + 0xff, 0xff, 0xff, 0xf0, 0x0, 0xf, 0xf0, 0x1, + 0xff, 0xff, 0xff, 0xff, 0xc0, 0x0, 0x7f, 0x0, + 0x3f, 0xff, 0xff, 0xff, 0xff, 0x80, 0x3, 0xf8, + 0x3, 0xff, 0xf0, 0x1, 0xff, 0xfe, 0x0, 0x1f, + 0xc0, 0x7f, 0xf8, 0x0, 0x0, 0xff, 0xf8, 0x0, + 0xfe, 0x7, 0xfe, 0x0, 0x0, 0x1, 0xff, 0xe0, + 0x7, 0xf0, 0x7f, 0xc0, 0x0, 0x0, 0x3, 0xff, + 0x80, 0x3f, 0x87, 0xf8, 0x0, 0x0, 0x0, 0x7, + 0xfe, 0x1, 0xfc, 0x7f, 0x80, 0x0, 0x0, 0x0, + 0x1f, 0xf8, 0xf, 0xe7, 0xf8, 0x0, 0x0, 0x0, + 0x0, 0x7f, 0xe0, 0x7f, 0x7f, 0x0, 0x0, 0x0, + 0x0, 0x1, 0xff, 0x3, 0xff, 0xf0, 0x0, 0x0, + 0x0, 0x0, 0x7, 0xfc, 0x1f, 0xff, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x1f, 0xf0, 0xff, 0xf8, 0x0, + 0x0, 0x0, 0x0, 0x0, 0xff, 0x8f, 0xff, 0x80, + 0x0, 0x0, 0x0, 0x0, 0x3, 0xfc, 0x7f, 0xf8, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x1f, 0xf3, 0xff, + 0x80, 0x0, 0x0, 0x0, 0x0, 0x0, 0x7f, 0x9f, + 0xfc, 0x0, 0x0, 0x0, 0x0, 0x0, 0x3, 0xfc, + 0xff, 0xc0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1f, + 0xf3, 0xfe, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x7f, 0x9f, 0xe0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x3, 0xfc, 0xff, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x1f, 0xe7, 0xf8, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0xff, 0xbf, 0xc0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x3, 0xfd, 0xfe, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x1f, 0xef, 0xf0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0xff, 0x7f, 0x80, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x7, 0xfb, 0xfc, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x3f, 0xdf, 0xe0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x1, 0xfe, 0xff, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xf, 0xf7, + 0xf8, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x7f, + 0x9f, 0xc0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x3, + 0xfc, 0xfe, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x1f, 0xe7, 0xf0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0xff, 0x3f, 0xc0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x7, 0xf8, 0xfe, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x3f, 0xc7, 0xf0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x3, 0xfc, 0x3f, 0x80, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x1f, 0xe1, 0xfe, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0xff, 0x7, 0xf0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x7, 0xf8, 0x3f, 0xc0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x3f, 0xc1, 0xfe, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x3, 0xfc, 0x7, + 0xf8, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1f, 0xe0, + 0x3f, 0xc0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, + 0x0, 0xff, 0x0, 0x0, 0x0, 0x0, 0x0, 0xf, + 0xf0, 0x7, 0xf8, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x7f, 0x80, 0x1f, 0xe0, 0x0, 0x0, 0x0, 0x0, + 0x7, 0xfc, 0x0, 0xff, 0x80, 0x0, 0x0, 0x0, + 0x0, 0x3f, 0xc0, 0x3, 0xfc, 0x0, 0x0, 0x0, + 0x0, 0x3, 0xfe, 0x0, 0x1f, 0xf0, 0x0, 0x0, + 0x0, 0x0, 0x3f, 0xe0, 0x0, 0x7f, 0xc0, 0x0, + 0x0, 0x0, 0x3, 0xfe, 0x0, 0x1, 0xff, 0x0, + 0x0, 0x0, 0x0, 0x3f, 0xf0, 0x0, 0x7, 0xfc, + 0x0, 0x0, 0x0, 0x3, 0xff, 0x0, 0x0, 0x3f, + 0xf8, 0x0, 0x0, 0x0, 0x3f, 0xf0, 0x0, 0x0, + 0xff, 0xe0, 0x0, 0x0, 0x3, 0xff, 0x0, 0x0, + 0x3, 0xff, 0xc0, 0x0, 0x0, 0x7f, 0xf0, 0x0, + 0x0, 0xf, 0xff, 0x80, 0x0, 0x1f, 0xff, 0x0, + 0x0, 0x0, 0x1f, 0xff, 0xc0, 0xf, 0xff, 0xf0, + 0x0, 0x0, 0x0, 0x7f, 0xff, 0xff, 0xff, 0xfe, + 0x0, 0x0, 0x0, 0x0, 0xff, 0xff, 0xff, 0xff, + 0xe0, 0x0, 0x0, 0x0, 0x3, 0xff, 0xff, 0xff, + 0xfc, 0x0, 0x0, 0x0, 0x0, 0x7, 0xff, 0xff, + 0xff, 0x80, 0x0, 0x0, 0x0, 0x0, 0x7, 0xff, + 0xff, 0xe0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1, + 0xff, 0xe0, 0x0, 0x0, 0x0, + + /* U+0037 "7" */ + 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, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xfc, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x3f, 0xc0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x1, 0xfe, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x1f, 0xe0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0xf, 0xf0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x7f, 0x80, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x7, 0xfc, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x3f, + 0xc0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1, + 0xfe, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x1f, 0xe0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0xff, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0xf, 0xf0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x7f, 0x80, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x7, 0xfc, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x3f, 0xc0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x3, 0xfe, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x1f, 0xe0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0xf, 0xf0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x7f, 0x80, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x7, 0xf8, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x3f, + 0xc0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x3, + 0xfe, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x1f, 0xe0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0xff, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0xf, 0xf0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x7f, 0x80, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x7, 0xf8, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x3f, 0xc0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x3, 0xfe, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x1f, 0xe0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x1, 0xff, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0xf, 0xf0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x7f, 0x80, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x7, 0xf8, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x3f, + 0xc0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x3, + 0xfe, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x1f, 0xe0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x1, 0xff, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0xf, 0xf0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x7f, 0x80, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x7, 0xf8, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x3f, 0xc0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x3, 0xfc, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x1f, 0xe0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x1, 0xff, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0xf, 0xf0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0x80, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x7, 0xf8, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x3f, + 0xc0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x3, + 0xfc, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x1f, 0xe0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x1, 0xff, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0xf, 0xf0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0xff, 0x80, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x7, 0xf8, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x7f, 0xc0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x3, 0xfc, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x1f, 0xe0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x1, 0xff, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0xf, 0xf0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0x80, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x7, 0xf8, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x7f, + 0xc0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x3, + 0xfc, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x1f, 0xe0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x1, 0xff, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0xf, 0xf0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0xff, 0x80, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x7, 0xf8, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x7f, 0xc0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x3, 0xfc, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x3f, 0xe0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x1, 0xfe, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0xf, 0xf0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0x80, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x7, 0xf8, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x7f, + 0xc0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x3, + 0xfc, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x3f, 0xe0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x1, 0xfe, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0xf, 0xf0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0xff, 0x80, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x7, 0xf8, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x7f, 0xc0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x3, 0xfc, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x3f, 0xe0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x1, 0xfe, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x1f, 0xf0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0x80, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x7, 0xf8, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x7f, + 0xc0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x3, + 0xfc, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x3f, 0xe0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x1, 0xfe, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x1f, 0xf0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0xff, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0xf, 0xf8, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x7f, 0xc0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x3, 0xfc, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, + + /* U+0038 "8" */ + 0x0, 0x0, 0x0, 0x1f, 0xff, 0x80, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x3f, 0xff, 0xff, 0x80, 0x0, + 0x0, 0x0, 0x0, 0x1f, 0xff, 0xff, 0xff, 0x0, + 0x0, 0x0, 0x0, 0x7, 0xff, 0xff, 0xff, 0xfc, + 0x0, 0x0, 0x0, 0x1, 0xff, 0xff, 0xff, 0xff, + 0xf0, 0x0, 0x0, 0x0, 0x3f, 0xff, 0xff, 0xff, + 0xff, 0xc0, 0x0, 0x0, 0xf, 0xff, 0xf0, 0x1, + 0xff, 0xfe, 0x0, 0x0, 0x1, 0xff, 0xf0, 0x0, + 0x1, 0xff, 0xf0, 0x0, 0x0, 0x3f, 0xf8, 0x0, + 0x0, 0x3, 0xff, 0x80, 0x0, 0x7, 0xfe, 0x0, + 0x0, 0x0, 0xf, 0xfc, 0x0, 0x0, 0xff, 0xc0, + 0x0, 0x0, 0x0, 0x7f, 0xe0, 0x0, 0x1f, 0xf8, + 0x0, 0x0, 0x0, 0x3, 0xff, 0x0, 0x1, 0xff, + 0x0, 0x0, 0x0, 0x0, 0x1f, 0xf8, 0x0, 0x3f, + 0xe0, 0x0, 0x0, 0x0, 0x0, 0xff, 0x80, 0x7, + 0xfc, 0x0, 0x0, 0x0, 0x0, 0x7, 0xfc, 0x0, + 0x7f, 0x80, 0x0, 0x0, 0x0, 0x0, 0x3f, 0xc0, + 0x7, 0xf8, 0x0, 0x0, 0x0, 0x0, 0x3, 0xfc, + 0x0, 0xff, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1f, + 0xe0, 0xf, 0xf0, 0x0, 0x0, 0x0, 0x0, 0x1, + 0xfe, 0x0, 0xff, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x1f, 0xe0, 0x1f, 0xe0, 0x0, 0x0, 0x0, 0x0, + 0x1, 0xff, 0x1, 0xfe, 0x0, 0x0, 0x0, 0x0, + 0x0, 0xf, 0xf0, 0x1f, 0xe0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0xff, 0x1, 0xfe, 0x0, 0x0, 0x0, + 0x0, 0x0, 0xf, 0xf0, 0x1f, 0xe0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0xff, 0x1, 0xfe, 0x0, 0x0, + 0x0, 0x0, 0x0, 0xf, 0xf0, 0x1f, 0xe0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0xff, 0x1, 0xfe, 0x0, + 0x0, 0x0, 0x0, 0x0, 0xf, 0xf0, 0x1f, 0xe0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0x1, 0xfe, + 0x0, 0x0, 0x0, 0x0, 0x0, 0xf, 0xf0, 0x1f, + 0xf0, 0x0, 0x0, 0x0, 0x0, 0x1, 0xfe, 0x0, + 0xff, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1f, 0xe0, + 0xf, 0xf0, 0x0, 0x0, 0x0, 0x0, 0x1, 0xfe, + 0x0, 0xff, 0x80, 0x0, 0x0, 0x0, 0x0, 0x3f, + 0xe0, 0x7, 0xf8, 0x0, 0x0, 0x0, 0x0, 0x3, + 0xfc, 0x0, 0x7f, 0xc0, 0x0, 0x0, 0x0, 0x0, + 0x7f, 0xc0, 0x7, 0xfe, 0x0, 0x0, 0x0, 0x0, + 0x7, 0xf8, 0x0, 0x3f, 0xf0, 0x0, 0x0, 0x0, + 0x0, 0xff, 0x80, 0x1, 0xff, 0x0, 0x0, 0x0, + 0x0, 0x1f, 0xf0, 0x0, 0x1f, 0xf8, 0x0, 0x0, + 0x0, 0x3, 0xfe, 0x0, 0x0, 0xff, 0xe0, 0x0, + 0x0, 0x0, 0x7f, 0xc0, 0x0, 0x7, 0xff, 0x0, + 0x0, 0x0, 0xf, 0xf8, 0x0, 0x0, 0x3f, 0xf8, + 0x0, 0x0, 0x1, 0xff, 0x80, 0x0, 0x1, 0xff, + 0xe0, 0x0, 0x0, 0x7f, 0xe0, 0x0, 0x0, 0xf, + 0xff, 0x80, 0x0, 0x1f, 0xfc, 0x0, 0x0, 0x0, + 0x7f, 0xfe, 0x0, 0x3, 0xff, 0x80, 0x0, 0x0, + 0x1, 0xff, 0xf8, 0x0, 0xff, 0xe0, 0x0, 0x0, + 0x0, 0xf, 0xff, 0xe0, 0x3f, 0xfc, 0x0, 0x0, + 0x0, 0x0, 0x3f, 0xff, 0x9f, 0xff, 0x0, 0x0, + 0x0, 0x0, 0x0, 0xff, 0xff, 0xff, 0xc0, 0x0, + 0x0, 0x0, 0x0, 0x3, 0xff, 0xff, 0xf0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0xf, 0xff, 0xfc, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff, 0xf0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x7f, 0xff, 0xff, + 0xc0, 0x0, 0x0, 0x0, 0x0, 0x1f, 0xff, 0xff, + 0xff, 0x0, 0x0, 0x0, 0x0, 0x7, 0xff, 0xe7, + 0xff, 0xfc, 0x0, 0x0, 0x0, 0x0, 0xff, 0xf8, + 0xf, 0xff, 0xf0, 0x0, 0x0, 0x0, 0x3f, 0xfe, + 0x0, 0x3f, 0xff, 0xc0, 0x0, 0x0, 0x7, 0xff, + 0x80, 0x0, 0xff, 0xfe, 0x0, 0x0, 0x1, 0xff, + 0xe0, 0x0, 0x3, 0xff, 0xf8, 0x0, 0x0, 0x3f, + 0xf8, 0x0, 0x0, 0x7, 0xff, 0xc0, 0x0, 0x7, + 0xfe, 0x0, 0x0, 0x0, 0x3f, 0xfe, 0x0, 0x0, + 0xff, 0xc0, 0x0, 0x0, 0x0, 0xff, 0xf0, 0x0, + 0x1f, 0xf8, 0x0, 0x0, 0x0, 0x3, 0xff, 0x80, + 0x3, 0xff, 0x0, 0x0, 0x0, 0x0, 0x1f, 0xfc, + 0x0, 0x7f, 0xc0, 0x0, 0x0, 0x0, 0x0, 0xff, + 0xe0, 0xf, 0xfc, 0x0, 0x0, 0x0, 0x0, 0x3, + 0xff, 0x0, 0xff, 0x80, 0x0, 0x0, 0x0, 0x0, + 0x1f, 0xf0, 0x1f, 0xf0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0xff, 0x81, 0xfe, 0x0, 0x0, 0x0, 0x0, + 0x0, 0xf, 0xf8, 0x3f, 0xe0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x7f, 0xc3, 0xfc, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x3, 0xfc, 0x7f, 0xc0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x3f, 0xe7, 0xf8, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x3, 0xfe, 0x7f, 0x80, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x1f, 0xe7, 0xf8, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x1, 0xfe, 0xff, 0x80, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x1f, 0xff, 0xf0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xf, 0xff, + 0xf0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, + 0xff, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xf, + 0xff, 0xf0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0xff, 0xff, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0xf, 0xff, 0xf0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0xff, 0xff, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0xf, 0xff, 0xf0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0xf, 0xff, 0xf0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x1, 0xfe, 0x7f, 0x80, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x1f, 0xe7, 0xf8, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x1, 0xfe, 0x7f, 0x80, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x3f, 0xe7, 0xfc, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x3, 0xfc, 0x3f, 0xc0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x7f, 0xc3, 0xfe, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x7, 0xf8, 0x1f, + 0xe0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0x81, + 0xff, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1f, 0xf0, + 0xf, 0xf8, 0x0, 0x0, 0x0, 0x0, 0x3, 0xff, + 0x0, 0xff, 0xc0, 0x0, 0x0, 0x0, 0x0, 0x7f, + 0xe0, 0x7, 0xfe, 0x0, 0x0, 0x0, 0x0, 0xf, + 0xfc, 0x0, 0x3f, 0xf0, 0x0, 0x0, 0x0, 0x1, + 0xff, 0x80, 0x3, 0xff, 0xc0, 0x0, 0x0, 0x0, + 0x7f, 0xf0, 0x0, 0x1f, 0xff, 0x0, 0x0, 0x0, + 0x1f, 0xfe, 0x0, 0x0, 0x7f, 0xfe, 0x0, 0x0, + 0xf, 0xff, 0xc0, 0x0, 0x3, 0xff, 0xfe, 0x0, + 0xf, 0xff, 0xf8, 0x0, 0x0, 0x1f, 0xff, 0xff, + 0xff, 0xff, 0xfe, 0x0, 0x0, 0x0, 0x7f, 0xff, + 0xff, 0xff, 0xff, 0xc0, 0x0, 0x0, 0x1, 0xff, + 0xff, 0xff, 0xff, 0xf0, 0x0, 0x0, 0x0, 0x7, + 0xff, 0xff, 0xff, 0xf8, 0x0, 0x0, 0x0, 0x0, + 0x7, 0xff, 0xff, 0xfc, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x7, 0xff, 0xf8, 0x0, 0x0, 0x0, + + /* U+0039 "9" */ + 0x0, 0x0, 0x0, 0x1f, 0xfe, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x3f, 0xff, 0xfe, 0x0, 0x0, + 0x0, 0x0, 0x0, 0xf, 0xff, 0xff, 0xfc, 0x0, + 0x0, 0x0, 0x0, 0x3, 0xff, 0xff, 0xff, 0xf0, + 0x0, 0x0, 0x0, 0x0, 0xff, 0xff, 0xff, 0xff, + 0xc0, 0x0, 0x0, 0x0, 0x3f, 0xff, 0xff, 0xff, + 0xfe, 0x0, 0x0, 0x0, 0x7, 0xff, 0xf0, 0x3, + 0xff, 0xf8, 0x0, 0x0, 0x0, 0xff, 0xf0, 0x0, + 0x3, 0xff, 0xc0, 0x0, 0x0, 0x1f, 0xfc, 0x0, + 0x0, 0xf, 0xfe, 0x0, 0x0, 0x3, 0xff, 0x0, + 0x0, 0x0, 0x3f, 0xf0, 0x0, 0x0, 0x7f, 0xc0, + 0x0, 0x0, 0x0, 0xff, 0x80, 0x0, 0xf, 0xf8, + 0x0, 0x0, 0x0, 0x7, 0xfc, 0x0, 0x1, 0xff, + 0x0, 0x0, 0x0, 0x0, 0x3f, 0xe0, 0x0, 0x3f, + 0xe0, 0x0, 0x0, 0x0, 0x1, 0xfe, 0x0, 0x3, + 0xfc, 0x0, 0x0, 0x0, 0x0, 0xf, 0xf0, 0x0, + 0x7f, 0xc0, 0x0, 0x0, 0x0, 0x0, 0x7f, 0x80, + 0xf, 0xf8, 0x0, 0x0, 0x0, 0x0, 0x7, 0xf8, + 0x0, 0xff, 0x0, 0x0, 0x0, 0x0, 0x0, 0x3f, + 0xc0, 0x1f, 0xf0, 0x0, 0x0, 0x0, 0x0, 0x1, + 0xfc, 0x1, 0xfe, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x1f, 0xe0, 0x1f, 0xe0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0xfe, 0x3, 0xfc, 0x0, 0x0, 0x0, 0x0, + 0x0, 0xf, 0xf0, 0x3f, 0xc0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x7f, 0x3, 0xfc, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x7, 0xf0, 0x7f, 0x80, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x3f, 0x87, 0xf8, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x3, 0xf8, 0x7f, 0x80, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x3f, 0x87, 0xf8, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x1, 0xfc, 0xff, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x1f, 0xcf, 0xf0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x1, 0xfc, 0xff, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1f, 0xcf, + 0xf0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1, 0xfe, + 0xff, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xf, + 0xef, 0xf0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0xfe, 0xff, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0xf, 0xef, 0xf0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0xfe, 0xff, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0xf, 0xef, 0xf0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0xfe, 0xff, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0xf, 0xff, 0xf0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0xf, 0xff, 0xf0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0xff, 0xff, 0x80, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x1f, 0xf7, 0xf8, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x1, 0xff, 0x7f, 0x80, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x1f, 0xf7, 0xf8, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x3, 0xff, 0x7f, + 0xc0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x3f, 0xf3, + 0xfc, 0x0, 0x0, 0x0, 0x0, 0x0, 0x7, 0xff, + 0x3f, 0xc0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x7f, + 0xf3, 0xfe, 0x0, 0x0, 0x0, 0x0, 0x0, 0xf, + 0xff, 0x1f, 0xe0, 0x0, 0x0, 0x0, 0x0, 0x1, + 0xff, 0xf1, 0xff, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x3f, 0xff, 0xf, 0xf8, 0x0, 0x0, 0x0, 0x0, + 0x7, 0xf7, 0xf0, 0xff, 0x80, 0x0, 0x0, 0x0, + 0x0, 0xfe, 0x7f, 0x7, 0xfc, 0x0, 0x0, 0x0, + 0x0, 0x1f, 0xc7, 0xf0, 0x7f, 0xe0, 0x0, 0x0, + 0x0, 0x3, 0xf8, 0x7f, 0x3, 0xff, 0x80, 0x0, + 0x0, 0x0, 0xff, 0xf, 0xf0, 0x1f, 0xfc, 0x0, + 0x0, 0x0, 0x1f, 0xe0, 0xff, 0x0, 0xff, 0xf0, + 0x0, 0x0, 0x7, 0xfc, 0xf, 0xf0, 0x7, 0xff, + 0xc0, 0x0, 0x3, 0xff, 0x80, 0xfe, 0x0, 0x3f, + 0xff, 0xc0, 0x3, 0xff, 0xf0, 0xf, 0xe0, 0x1, + 0xff, 0xff, 0xff, 0xff, 0xfc, 0x0, 0xfe, 0x0, + 0x7, 0xff, 0xff, 0xff, 0xff, 0x0, 0xf, 0xe0, + 0x0, 0x1f, 0xff, 0xff, 0xff, 0xe0, 0x0, 0xfe, + 0x0, 0x0, 0x7f, 0xff, 0xff, 0xf0, 0x0, 0xf, + 0xe0, 0x0, 0x0, 0xff, 0xff, 0xf8, 0x0, 0x1, + 0xfe, 0x0, 0x0, 0x0, 0xff, 0xf8, 0x0, 0x0, + 0x1f, 0xe0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x1, 0xfc, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x1f, 0xc0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x1, 0xfc, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x3f, 0xc0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x3, 0xfc, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x3f, 0x80, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x3, 0xf8, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x7f, 0x80, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x7, 0xf8, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x7f, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0xf, 0xf0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xf, 0xe0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1, 0xfe, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1f, + 0xe0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x3, + 0xfc, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x3f, 0xc0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x7, 0xfc, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x7f, 0x80, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0xf, 0xf8, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0xff, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x1f, 0xf0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x3, 0xfe, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x3f, 0xc0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x7, 0xfc, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0xff, 0x80, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x1f, 0xf0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x3, 0xff, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x7f, 0xe0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0xf, 0xfc, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x1, 0xff, 0x80, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x7f, 0xf0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xf, 0xfe, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x3, 0xff, + 0xc0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1, 0xff, + 0xf8, 0x0, 0x0, 0x1, 0x80, 0x0, 0x0, 0xff, + 0xff, 0x0, 0x0, 0x0, 0x1f, 0xe0, 0x0, 0xff, + 0xff, 0xc0, 0x0, 0x0, 0x1, 0xff, 0xff, 0xff, + 0xff, 0xf0, 0x0, 0x0, 0x0, 0x1f, 0xff, 0xff, + 0xff, 0xfc, 0x0, 0x0, 0x0, 0x1, 0xff, 0xff, + 0xff, 0xff, 0x0, 0x0, 0x0, 0x0, 0x1f, 0xff, + 0xff, 0xff, 0xc0, 0x0, 0x0, 0x0, 0x0, 0xff, + 0xff, 0xff, 0xc0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x7f, 0xff, 0x80, 0x0, 0x0, 0x0, 0x0 +}; + + +/*--------------------- + * GLYPH DESCRIPTION + *--------------------*/ + +static const lv_font_fmt_txt_glyph_dsc_t glyph_dsc[] = { + {.bitmap_index = 0, .adv_w = 0, .box_w = 0, .box_h = 0, .ofs_x = 0, .ofs_y = 0} /* id = 0 reserved */, + {.bitmap_index = 0, .adv_w = 1370, .box_w = 69, .box_h = 110, .ofs_x = 8, .ofs_y = -1}, + {.bitmap_index = 949, .adv_w = 1370, .box_w = 35, .box_h = 107, .ofs_x = 15, .ofs_y = 0}, + {.bitmap_index = 1418, .adv_w = 1370, .box_w = 67, .box_h = 108, .ofs_x = 8, .ofs_y = 0}, + {.bitmap_index = 2323, .adv_w = 1370, .box_w = 68, .box_h = 110, .ofs_x = 7, .ofs_y = -1}, + {.bitmap_index = 3258, .adv_w = 1370, .box_w = 81, .box_h = 108, .ofs_x = 3, .ofs_y = -1}, + {.bitmap_index = 4352, .adv_w = 1370, .box_w = 66, .box_h = 108, .ofs_x = 10, .ofs_y = -1}, + {.bitmap_index = 5243, .adv_w = 1370, .box_w = 69, .box_h = 110, .ofs_x = 9, .ofs_y = -1}, + {.bitmap_index = 6192, .adv_w = 1370, .box_w = 69, .box_h = 106, .ofs_x = 8, .ofs_y = 0}, + {.bitmap_index = 7107, .adv_w = 1370, .box_w = 68, .box_h = 110, .ofs_x = 9, .ofs_y = -1}, + {.bitmap_index = 8042, .adv_w = 1370, .box_w = 68, .box_h = 110, .ofs_x = 8, .ofs_y = -1} +}; + +/*--------------------- + * CHARACTER MAPPING + *--------------------*/ + + + +/*Collect the unicode lists and glyph_id offsets*/ +static const lv_font_fmt_txt_cmap_t cmaps[] = +{ + { + .range_start = 48, .range_length = 10, .glyph_id_start = 1, + .unicode_list = NULL, .glyph_id_ofs_list = NULL, .list_length = 0, .type = LV_FONT_FMT_TXT_CMAP_FORMAT0_TINY + } +}; + + + +/*-------------------- + * ALL CUSTOM DATA + *--------------------*/ + +#if LV_VERSION_CHECK(8, 0, 0) +/*Store all the custom data of the font*/ +static lv_font_fmt_txt_glyph_cache_t cache; +static const lv_font_fmt_txt_dsc_t font_dsc = { +#else +static lv_font_fmt_txt_dsc_t font_dsc = { +#endif + .glyph_bitmap = glyph_bitmap, + .glyph_dsc = glyph_dsc, + .cmaps = cmaps, + .kern_dsc = NULL, + .kern_scale = 0, + .cmap_num = 1, + .bpp = 1, + .kern_classes = 0, + .bitmap_format = 0, +#if LV_VERSION_CHECK(8, 0, 0) + .cache = &cache +#endif +}; + + +/*----------------- + * PUBLIC FONT + *----------------*/ + +/*Initialize a public general font descriptor*/ +#if LV_VERSION_CHECK(8, 0, 0) +const lv_font_t open_sans_light = { +#else +lv_font_t open_sans_light = { +#endif + .get_glyph_dsc = lv_font_get_glyph_dsc_fmt_txt, /*Function pointer to get glyph's data*/ + .get_glyph_bitmap = lv_font_get_bitmap_fmt_txt, /*Function pointer to get glyph's bitmap*/ + .line_height = 110, /*The maximum line height required by the font*/ + .base_line = 1, /*Baseline measured from the bottom of the line*/ +#if !(LVGL_VERSION_MAJOR == 6 && LVGL_VERSION_MINOR == 0) + .subpx = LV_FONT_SUBPX_NONE, +#endif +#if LV_VERSION_CHECK(7, 4, 0) + .underline_position = -11, + .underline_thickness = 7, +#endif + .dsc = &font_dsc /*The custom font data. Will be accessed by `get_glyph_bitmap/dsc` */ +}; + + + +#endif /*#if OPEN_SANS_LIGHT*/ + diff --git a/src/displayapp/fonts/open_sans_light.ttf b/src/displayapp/fonts/open_sans_light.ttf new file mode 100644 index 0000000000000000000000000000000000000000..6580d3a169e895d914f159c060b947e36746f275 GIT binary patch literal 101696 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�&3U2Au+dUh$> z@K5h8H@a@$72dD@q`s{FnT=z8(YQ7SZEKhZMfIMNzeKEo5M47o7C~=!I#Yp&rH54V zSR}hCYC<QN37B0S>q6V7p+&9`OQCDV=Yj2r17eXw!Y9)4d~hOljgRZ&Rh2`fsTOl{ zLrv?BBm4Fpd1W8C)H4vbdq2Uzb$inF*ST)pmUF}LPtTnB^t0a)^#rR3RzHl@PZ6Tg z5K!<CaCbW#rqqCpG@r4$jxlSBQ?mN1+gcmRw%~Dzx7z$1WWdSX_a;``=@BwAg?6kR zry|ykooTV$ehpx8&w%`W`Zs@l=by^{WA2-7aXs{Ca%@4X`UMM~m3Fs|JpS#MN2O;m zGRobB<)2}rjfm!$ynvhY>-Aoimgdb!Px9G9QIls_9XQeqA-m5T0MAY!t}l2&oi;+Q zCbVTm3YY{Ih8Y(|uy*>1I2|^UsR`i)mL0$+?rt0~B4e7x7+pGLoJ-g9$tAD7h?3># z_B&oiNc~FlfXgp)FTZY*vvvKZn(>EUBZi&Uo8%L!8GaBdqR#Nzq}WAx<{AFXk~5Ff zO=uk>e|**q3mFVeXG(GQS<E9prB2nYhfibLYj(hyeUtLk9u&NyXj$`@ctA&;y3;h; zR5xbe$nFI_%jPUoKD#Mv*<O3EuHCyEMp`D~oo1=e#=bkd5}vK$F$1pqQOIPV)@u$y zY*sWB4u_(jb5aD{Nvf#(p0j7<a)~(b>|>1c0k!el;1wD}B-^XKLa5eW;Y>(Xs#*P> zOVvue0(ET<l1vrb>e?W6Wk3C1>vs|czRG288$%B6y?y{>XbI{j^FxXvnv#mMld?ru zzEW1Ih@nufBxUB>3UdnqQIjj{g-oHUE|7@^Tb_nQ=eL$oCWX{NYtkl@MgsI6zV$)d zJ9~;bWG(SJa2M}djVmh%2^3o=s$@kkxFWYbIKBC@#}9ur_MYh#lMC|)EgbsZ*Xqyz znRo9<xq9=w)9TN^pBT2Ne}3hp!r2eho~j;=&NxF2o5}hgV!=(B$@N*O>S}eTx<PHq zFDc1qo7n<LiB-XHeU^Wt`uR)hv+6yXRiHctjT`_%SGG+Eq_`B&)cYNFJ$bZtmtPl5 zwFyGNXV=+XCPfOMeA16B7iLD%p#zW&W~-fQ*nr@=DR%qZ=oxiOlnW|##nByqPRn*Z zI$d2h<DJM9UFMkEcQn7VQMY$b{mUOr6K(x#a#Zw<#9o-CzB}SU7GQ72UQj3O1>R&e zreQomvJKHQ`DaK8LgSej?cui&Ts#<=bs%9z900*I7tn;TzoG%KLQz0s7|<GRFgQfP zfo^R_JWmJ7fmol`8Va`N^D6=fOGqnR=z&IWnVK)qxy^4vMu?4WW}m4c7HVbUS>Zc% zCVJfWvy7t$5C2{LRsMkWRbLvX?tba@S5C^S&%D2L`+c{^N8YHQUI-GdA&RzIw6|mA zz{fCK(PZGT$*!Ti$Nf`Tvcn`t$%QPNZIaanP&dJ5H>2w{(cRj9;CRFmL0YQ#i~C?) zw7}{?H>=h*LWK++Iw7XAThz;WH^eJy-_Jj9WD9P&^TvndiZSY1-ahjEn6FxYREP4W z2%He==r$qB6cWZqyGyzxofEb09@*mb1eJ_*oy(7Ab1B|{j(Cg*_;b~DfzC))?JWl# zmzpk!c4X4e!L;ho<4xrk%7z58)h{~Kg*$<4^^y9vdcUmodHdO7*5$8%&fBWYQ#r!b z8|ofHxVnyA8t?G#$!3k7L?##Sp;#-A!xf%@)02{dE_6jf7|W3yQnJD+vJsH3e!DSb z#PS=BI=x-zwF2$U>JZ=uz;kb_zKFL_TyQ=LN)4#^1t+NVzZAdAGyZi}5Y??sO>C;0 zSx)qQpl7i3#*)3qoML5cpZNCE8&?+G?qNZukNt?0QRFM83;0k8|K7pz@AFD{oGAQ3 z3*ED@>s-ji7XT^A;4qtzyp{+7$m%e7+zvgc1T4z%y2+Ln%X+|u0>KDDS&BKM85g$z z;cjZJ=xDoWTSE0ANYfx#9A@ZVLDWWC`cmTy>fh#x3yZ|Yg|P^O&Ivj)#l5kS^hN9o zlH=v~8heh%*igeIp%H|SZD2IZEI35;`x#9<xuuN__*sTwbry@6npz!ZO5Sq0a(=f5 z=}J&&@gYI90LhoMq=@kKw0G7w-tyLTc4Qvww<uSa3`#t7c>Jnb=nLznXQ3;{T#NCL zZT>md%8lFC6fJS0#nY{z%Slesqe8)@)7wmFveTpCM@bDNnJwtWBrG<M&1MEPKebAk zv1X8bFH;p>!UgFh07)L=3YM4mAk~>zzxX-O){%I>(De9Z<6iaHJXQ>Fs%BAUeyr!^ zv0}DzS!TK;gSg%kUjU<6Dz3-67O?D#rxjm95)j&qBNft2rbYX@g(PidoxoP&t7`@{ ztT)M=8UQeg(^6UI8SQLv-s;@yJm^%MPMh0q7ZIzpd6V3H$uTGFf1E&}vq<L`wA0!{ zEb?QG04LuAX$O08>dDoOEq`x5sXm9p+<asTN{fT>oj^<Wcl-;j+H{JEES@Ddj9!g- zAkn8RRQ4kdk%4NjJ|UJKOcgUS0Pbhd1F%?c_Xm}5W=3k7)tTxf7KqgJ)b6R07Y+Yu zc7xx=g6U~#>BH;NDC5dAI0V6>3HF41?65zYKdYT>*lwZ=DBQ?H^KHt6T`q;){lqdb z_GB>mJ9XHy`)5pQoOye}ZTE(!XU<(wlYaY*b%iq?xI!H+9cu+{oU*?*_K7s)M)j}i z^X&7D^JB^4mxXg@s6qDHeK%K1Vn%I!>}TyB$j5LGg77KkMlVWZq11qwo=%gr*}XnY z6PV_i8CGY&Sy`7Z0+KY49vB^v{Zb$hv>SY0mKq8Mfo~q9cBpfwd9L)Ki%cR_GlDTo zf2Ub?nq(gkO0TRdT{Uw}*OiO2n=+TK%wIcmRrd)k4eCym4vb(E<%+TDI(@I%Yt*OM z_=V%(#)rl&P<OD(6_@wXvBhI+)%eZQ16&RMYDBmyIyhkWXERtiVkDwX(&x_z2GeLi z)55yET&FcPBNa5*5g`L-9qF`;EQ8%IrMbc^B;{mf<qWUOitnhuJP9{0zN3jd*TLeT z3zwKLzQaMKjqN;TzOisw64#LSSNF9#{Hh10cfD!m?OoSDfc;&(d}I*&n>wIG6`Gr+ zY;}P2R_kNz5!&Q;<Uu!WRLj`sw>HNj;)#Np4YbGg*L96Wa64CtdD!Sv@q4M8fSnG* z7r#8(H^uJDV%eFnI&=7u_WIIOQz6dnzF;Ow{hU_pb7h^Flb#+n*nLvao5|9o>~I+P z1mXBrx6Qx!f|EaQ?gaFG-hQ7mcjXoJ-l=QqidW58(`C`}{Kothi}KbsuSzQIqTYzU zoh9mB*!z(T6B(<nD4BT;ZT;LT0$Zq>O<Uh@T6X*@U&r?!b-C&ccx!JULwHNHW@za} zVx+5(rL&|7I!{`pxYtDkj8(&pxYv==i-wk0R1B)FtB8WLtzu|YjO6A<s_F`JD{@6U z{<=RGswp=&Fmz~Pb=^=o05q>aoGqQ7eBM{3*=#%+t!1GpO4ZpG<qLz;03<e^hd^CC zXEH^=4Y_r)z~h+-csA|y4{^i1EKWqHy_lZ#akRES{kc{B<lc2J*UX(eqGfp3IhCWI zoVe-!BOiSCq&lP>x^4LDP5pOO&AEEw%8T;CDZ%2IL!NkDLvjo4y!+5oPUDd3+l+?r z%oLAv+0rE~R_mJES$+c7t@jvX)h_3Vs}|H+$C-!MI}gHM39I)><w_-T0k=iR2F<RF zp<-x2cK$_1n=2`lU3}3{<FLxy3VQ{r(<;g{h727#1buo#LqlP{3>{i-F7Gz9PACVX zWx3t!O{uIyBaEfeYmT~tap(&YDu4uRU(a~&T05*hVw~l$GU>9l-Mz#Lx8q?T%M&R9 zLm(AdXax*<*v)Z(42lX<;-svM|4!dw{m%i+*wB)E(e>2}mtDG|PdG0aC~h9W<QJFE zdHJ0!%Pwh%zB_J6)xf4PAN08XmOV!vy}kpOMt^fKdcAYp(nVvjbVDX|Jq2iu)T?G} zxZCIG)32<%RSY#pL~B#S>{%Z7teJBfIF<nV8i<hxm1c{1d?=1qjGym-Y1PiZMfO!P zeE)nupw|GRgXkH!?toNk_f_~N`{w!3Zi_==G=h2y`Cy=twUN7%z;0^?Ot}ACI(LWy zF@j!l35={p@!XhD4>looIl9>VhBGfA9K_(}ePff$t?JjEBSPxjRu`hK-PHHh=ae+S z)%=5{vm(rbqCw@bcrD!a!7P#-0ImkyqFw-a6ts@rAM#iDNBJ=ezh5$$VD2I^ga*&H zj^Y1l7Hxqc7ZRCesJ2CNPY;8!LqzD)vubGf5naqCzx<a6U$lweJC1aY2dT$np?`gF z{3mJO2Zs*77xzjnh*kS2zv?yUbqYGdll*2#bDc{gBhoB!3R7!2cj!DayGWIDs})DF z3>uxEM)^Qdzdpt4ef6===d$LDv$~Gi6CFKyc=s+{lo>sjZ#?rc3YmL-vuykKqUYdk zQTqfqyo{`CNyWPPP}>A>W}t&B3QO`cyVX?*e?UQat)d5a2Re-)1C|~U=(K$}i4exN z6SkLsm|vGYa%I-w>ON_~U~0jjhzheP7Jg>zHQ%yDb61oa#v7(AY5f>+5&Tgs6c-V% z#$fc)5_u=09@Hb3$-^G;9yv*+xQ4hY{u+dPwby8UbaaMQk1>SU22~_?7sf`rc27-B zO3z46qA0MSOUlSouxzRM=?Dh{6jpK@0exwdbMmX}P_f+R?LgF0Fsq}RK*5dkPBKUJ zN0}e=e>QMLiAV_RVQWjMmX?(%7WGv`Ex%LW2Jn^xD!bd6FMjyvS3muD>Z_mR)y;q2 z?a`SoVb<wtQc2C6k>x{r4=f(hFRu)zeVaO$-NdGYMfo;$KH6koQXc`Q@&KIr5$fKs z+D|PR9sWgp<&5)|CB3}0j>0LkDJl<y5JLg>kz-gRDmF>RYQZvFb#|w60yPs<Ej2ot z4@g%h(A6_Ca?%8kNigL|UGkCxe!U+#5t#p3898=X*f~V87nhl^w8-L&`vUE<k%NZ- zoE%avLTK?qHpxT)tT<ehCi5d0;t=5n;Mb_rIibF;e&ekg<^^fj>#Ur4y~C=!KvOF{ z<NxhT=crN6Z+`jpOJiwxl=F)}um*?J%hQGr53=>FKkLVC4h|lirY=$s0`vSY!O<gw zSdS2x2daZzaz+Q$Cup8a&pskI%J*QN5pACSKt?vWovhkCtx{etpC{5>lHM22$fkK_ zbC*}s4gcdjQJhT^L2wx0<}^E>3vpp>o)j&K@M-Gg#uG2PhY#{RfAYgaw(1eCm;Tzi za_a{7(BbZl_iw$!J7l2uj{C%n@72EtD~AMG?l=Ep;b3)jQ2pqe!#@WrE7N{Gbm-@_ z0RvJ|0n6pGet@As=z$!0ov<Q0)aWZO9yPjqI6OM9te=!x?5OjZCr+pvG^oEY$}uW^ zlw=$=s<dicnNaE|6`fLPj-?={psFsIE(z`&)VZZ2o|l~7A)ZGhAhfSqNmvi0NXiS* z7u{Z|M<zBMe$Z!?`JmZoOXCIv|ADf9S|qnqWRLi@Q0R@?xRRd4jfMsDWn=j?W>haK zV)#?2q!YK*-#L8T1CtMbxPQz468_u%?C0Xz=IMz92@6{0w+tLNFuPa9gqh7f8m?Kq zu==9D6}?$A5dBbu_dkaQk!t)<J)myU-7$80uous-_)|hzLk1Nkr`vm184NQPrt~bN zU4ULeH}UVNS?DX&2-ihN7I&>27KjjzuGxolYWH5lYRu!t*7WPwr?PTHccBoK0*=BT z3ngRWAo~dBkVa59$OynN`HY@48!8a%!bV4uM}+?AA|lelZ&rJ7)me^G#C%vHJzhrS zj&|fi`+?&|IQw)G^*PuP&F;Vs@z7nSmWXvho`*Btd?U`;32q*C+z83ixa_ZAT=L*$ z%WE=fs@B}JZ^ztOmtD4F&ox($tO?aDpRsxDKi|9BKE1hoNIXHsg4P9BZ5kYIU;gZJ z#Bm(^n6S2>Hvd20eE0RhfnR_3_3!z$1=p$S<La;KC(1#}W}#j_$>-$htU*QPSZ$** zzS=xDr5~UNmJQDQf@r^_oc_fHE|(J}&UzC9*~R6i!GqimTS2MQ*}YUT8m&>Iy%H$a z=F(_t-_pKSb>ULkYwK>Ss>|!%;h@tYhwb<G9zBlcYw4a&A#9THT*iBm2MEW%O5Fcn z0c~aZXiMqqy)0#KlvqYj_<ss+>*c^Bi}B}?z#o<WUvX|NR`!	qX4T%!&2^ey%mu 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 B=BEGv literal 0 HcmV?d00001 diff --git a/src/displayapp/screens/Clock.cpp b/src/displayapp/screens/Clock.cpp index 05e47a39..e0684976 100644 --- a/src/displayapp/screens/Clock.cpp +++ b/src/displayapp/screens/Clock.cpp @@ -14,6 +14,7 @@ #include "../DisplayApp.h" #include "WatchFaceDigital.h" #include "WatchFaceAnalog.h" +#include "PineTimeStyle.h" using namespace Pinetime::Applications::Screens; @@ -41,6 +42,9 @@ Clock::Clock(DisplayApp* app, case 1: return WatchFaceAnalogScreen(); break; + case 2: + return PineTimeStyleScreen(); + break; } return WatchFaceDigitalScreen(); }()} { @@ -76,6 +80,16 @@ std::unique_ptr<Screen> Clock::WatchFaceAnalogScreen() { app, dateTimeController, batteryController, bleController, notificatioManager, settingsController); } +std::unique_ptr<Screen> Clock::PineTimeStyleScreen() { + return std::make_unique<Screens::PineTimeStyle>(app, + dateTimeController, + batteryController, + bleController, + notificatioManager, + settingsController, + motionController); +} + /* // Examples for more watch faces std::unique_ptr<Screen> Clock::WatchFaceMinimalScreen() { diff --git a/src/displayapp/screens/Clock.h b/src/displayapp/screens/Clock.h index 174c73b7..a48feea1 100644 --- a/src/displayapp/screens/Clock.h +++ b/src/displayapp/screens/Clock.h @@ -50,6 +50,7 @@ namespace Pinetime { std::unique_ptr<Screen> screen; std::unique_ptr<Screen> WatchFaceDigitalScreen(); std::unique_ptr<Screen> WatchFaceAnalogScreen(); + std::unique_ptr<Screen> PineTimeStyleScreen(); // Examples for more watch faces // std::unique_ptr<Screen> WatchFaceMinimalScreen(); diff --git a/src/displayapp/screens/PineTimeStyle.cpp b/src/displayapp/screens/PineTimeStyle.cpp new file mode 100644 index 00000000..678099c0 --- /dev/null +++ b/src/displayapp/screens/PineTimeStyle.cpp @@ -0,0 +1,340 @@ +/* + * This file is part of the Infinitime distribution (https://github.com/JF002/Infinitime). + * Copyright (c) 2021 Kieran Cawthray. + * + * This program 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, version 3. + * + * This program 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 <http://www.gnu.org/licenses/>. + * + * PineTimeStyle watchface for Infinitime created by Kieran Cawthray + * Based on WatchFaceDigital + * Style/layout copied from TimeStyle for Pebble by Dan Tilden (github.com/tilden) + */ + +#include "PineTimeStyle.h" +#include <date/date.h> +#include <lvgl/lvgl.h> +#include <cstdio> +#include "BatteryIcon.h" +#include "BleIcon.h" +#include "NotificationIcon.h" +#include "Symbols.h" +#include "components/battery/BatteryController.h" +#include "components/ble/BleController.h" +#include "components/ble/NotificationManager.h" +#include "components/motion/MotionController.h" +#include "components/settings/Settings.h" +#include "../DisplayApp.h" + +using namespace Pinetime::Applications::Screens; + +PineTimeStyle::PineTimeStyle(DisplayApp* app, + Controllers::DateTime& dateTimeController, + Controllers::Battery& batteryController, + Controllers::Ble& bleController, + Controllers::NotificationManager& notificatioManager, + Controllers::Settings& settingsController, + Controllers::MotionController& motionController) + : Screen(app), + currentDateTime {{}}, + dateTimeController {dateTimeController}, + batteryController {batteryController}, + bleController {bleController}, + notificatioManager {notificatioManager}, + settingsController {settingsController}, + motionController {motionController} { + + /* This sets the watchface number to return to after leaving the menu */ + settingsController.SetClockFace(2); + + displayedChar[0] = 0; + displayedChar[1] = 0; + displayedChar[2] = 0; + displayedChar[3] = 0; + displayedChar[4] = 0; + + /* Create a 200px wide background rectangle */ + + timebar = lv_obj_create(lv_scr_act(), nullptr); + lv_obj_set_style_local_bg_color(timebar, LV_BTN_PART_MAIN, LV_STATE_DEFAULT, lv_color_hex(0x000000)); + lv_obj_set_style_local_radius(timebar, LV_BTN_PART_MAIN, LV_STATE_DEFAULT, 0); + lv_obj_set_size(timebar, 200, 240); + lv_obj_align(timebar, lv_scr_act(), LV_ALIGN_IN_TOP_LEFT, 5, 0); + + /* Display the time */ + + timeDD1 = lv_label_create(lv_scr_act(), nullptr); + lv_obj_set_style_local_text_font(timeDD1, LV_LABEL_PART_MAIN, LV_STATE_DEFAULT, &open_sans_light); + lv_obj_set_style_local_text_color(timeDD1, LV_LABEL_PART_MAIN, LV_STATE_DEFAULT, lv_color_hex(0x008080)); + lv_label_set_text(timeDD1, "12"); + lv_obj_align(timeDD1, timebar, LV_ALIGN_IN_TOP_MID, 5, 5); + + timeDD2 = lv_label_create(lv_scr_act(), nullptr); + lv_obj_set_style_local_text_font(timeDD2, LV_LABEL_PART_MAIN, LV_STATE_DEFAULT, &open_sans_light); + lv_obj_set_style_local_text_color(timeDD2, LV_LABEL_PART_MAIN, LV_STATE_DEFAULT, lv_color_hex(0x008080)); + lv_label_set_text(timeDD2, "34"); + lv_obj_align(timeDD2, timebar, LV_ALIGN_IN_BOTTOM_MID, 5, -5); + + timeAMPM = lv_label_create(lv_scr_act(), nullptr); + lv_obj_set_style_local_text_color(timeAMPM, LV_LABEL_PART_MAIN, LV_STATE_DEFAULT, lv_color_hex(0x008080)); + lv_obj_set_style_local_text_line_space(timeAMPM, LV_LABEL_PART_MAIN, LV_STATE_DEFAULT, -3); + lv_label_set_text(timeAMPM, ""); + lv_obj_align(timeAMPM, timebar, LV_ALIGN_IN_BOTTOM_LEFT, 2, -20); + + /* Create a 40px wide bar down the right side of the screen */ + + sidebar = lv_obj_create(lv_scr_act(), nullptr); + lv_obj_set_style_local_bg_color(sidebar, LV_BTN_PART_MAIN, LV_STATE_DEFAULT, lv_color_hex(0x008080)); + lv_obj_set_style_local_radius(sidebar, LV_BTN_PART_MAIN, LV_STATE_DEFAULT, 0); + lv_obj_set_size(sidebar, 40, 240); + lv_obj_align(sidebar, lv_scr_act(), LV_ALIGN_IN_TOP_RIGHT, 0, 0); + + /* Display icons */ + + batteryIcon = lv_label_create(lv_scr_act(), nullptr); + lv_obj_set_style_local_text_color(batteryIcon, LV_LABEL_PART_MAIN, LV_STATE_DEFAULT, lv_color_hex(0x000000)); + lv_label_set_text(batteryIcon, Symbols::batteryFull); + lv_obj_align(batteryIcon, sidebar, LV_ALIGN_IN_TOP_MID, 0, 2); + + batteryPlug = lv_label_create(lv_scr_act(), nullptr); + lv_obj_set_style_local_text_color(batteryPlug, LV_LABEL_PART_MAIN, LV_STATE_DEFAULT, lv_color_hex(0x000000)); + lv_obj_align(batteryPlug, sidebar, LV_ALIGN_IN_TOP_MID, 0, 2); + + bleIcon = lv_label_create(lv_scr_act(), nullptr); + lv_obj_set_style_local_text_color(bleIcon, LV_LABEL_PART_MAIN, LV_STATE_DEFAULT, lv_color_hex(0x000000)); + lv_obj_align(bleIcon, sidebar, LV_ALIGN_IN_TOP_MID, 0, 25); + + notificationIcon = lv_label_create(lv_scr_act(), nullptr); + lv_obj_set_style_local_text_color(notificationIcon, LV_LABEL_PART_MAIN, LV_STATE_DEFAULT, lv_color_hex(0x000000)); + lv_obj_align(notificationIcon, sidebar, LV_ALIGN_IN_TOP_MID, 0, 40); + + /* Calendar icon */ + + calendarOuter = lv_obj_create(lv_scr_act(), nullptr); + lv_obj_set_style_local_bg_color(calendarOuter, LV_BTN_PART_MAIN, LV_STATE_DEFAULT, lv_color_hex(0x000000)); + lv_obj_set_style_local_radius(calendarOuter, LV_BTN_PART_MAIN, LV_STATE_DEFAULT, 0); + lv_obj_set_size(calendarOuter, 34, 34); + lv_obj_align(calendarOuter, sidebar, LV_ALIGN_CENTER, 0, 0); + + calendarInner = lv_obj_create(lv_scr_act(), nullptr); + lv_obj_set_style_local_bg_color(calendarInner, LV_BTN_PART_MAIN, LV_STATE_DEFAULT, lv_color_hex(0xffffff)); + lv_obj_set_style_local_radius(calendarInner, LV_BTN_PART_MAIN, LV_STATE_DEFAULT, 0); + lv_obj_set_size(calendarInner, 27, 27); + lv_obj_align(calendarInner, calendarOuter, LV_ALIGN_CENTER, 0, 0); + + calendarBar1 = lv_obj_create(lv_scr_act(), nullptr); + lv_obj_set_style_local_bg_color(calendarBar1, LV_BTN_PART_MAIN, LV_STATE_DEFAULT, lv_color_hex(0x000000)); + lv_obj_set_style_local_radius(calendarBar1, LV_BTN_PART_MAIN, LV_STATE_DEFAULT, 0); + lv_obj_set_size(calendarBar1, 3, 12); + lv_obj_align(calendarBar1, calendarOuter, LV_ALIGN_IN_TOP_MID, -6, -3); + + calendarBar2 = lv_obj_create(lv_scr_act(), nullptr); + lv_obj_set_style_local_bg_color(calendarBar2, LV_BTN_PART_MAIN, LV_STATE_DEFAULT, lv_color_hex(0x000000)); + lv_obj_set_style_local_radius(calendarBar2, LV_BTN_PART_MAIN, LV_STATE_DEFAULT, 0); + lv_obj_set_size(calendarBar2, 3, 12); + lv_obj_align(calendarBar2, calendarOuter, LV_ALIGN_IN_TOP_MID, 6, -3); + + calendarCrossBar1 = lv_obj_create(lv_scr_act(), nullptr); + lv_obj_set_style_local_bg_color(calendarCrossBar1, LV_BTN_PART_MAIN, LV_STATE_DEFAULT, lv_color_hex(0x000000)); + lv_obj_set_style_local_radius(calendarCrossBar1, LV_BTN_PART_MAIN, LV_STATE_DEFAULT, 0); + lv_obj_set_size(calendarCrossBar1, 8, 3); + lv_obj_align(calendarCrossBar1, calendarBar1, LV_ALIGN_IN_BOTTOM_MID, 0, 0); + + calendarCrossBar2 = lv_obj_create(lv_scr_act(), nullptr); + lv_obj_set_style_local_bg_color(calendarCrossBar2, LV_BTN_PART_MAIN, LV_STATE_DEFAULT, lv_color_hex(0x000000)); + lv_obj_set_style_local_radius(calendarCrossBar2, LV_BTN_PART_MAIN, LV_STATE_DEFAULT, 0); + lv_obj_set_size(calendarCrossBar2, 8, 3); + lv_obj_align(calendarCrossBar2, calendarBar2, LV_ALIGN_IN_BOTTOM_MID, 0, 0); + + /* Display date */ + + dateDayOfWeek = lv_label_create(lv_scr_act(), nullptr); + lv_obj_set_style_local_text_color(dateDayOfWeek, LV_LABEL_PART_MAIN, LV_STATE_DEFAULT, lv_color_hex(0x000000)); + lv_label_set_text(dateDayOfWeek, "THU"); + lv_obj_align(dateDayOfWeek, sidebar, LV_ALIGN_CENTER, 0, -34); + + dateDay = lv_label_create(lv_scr_act(), nullptr); + lv_obj_set_style_local_text_color(dateDay, LV_LABEL_PART_MAIN, LV_STATE_DEFAULT, lv_color_hex(0x000000)); + lv_label_set_text(dateDay, "25"); + lv_obj_align(dateDay, sidebar, LV_ALIGN_CENTER, 0, 3); + + dateMonth = lv_label_create(lv_scr_act(), nullptr); + lv_obj_set_style_local_text_color(dateMonth, LV_LABEL_PART_MAIN, LV_STATE_DEFAULT, lv_color_hex(0x000000)); + lv_label_set_text(dateMonth, "MAR"); + lv_obj_align(dateMonth, sidebar, LV_ALIGN_CENTER, 0, 32); + + // Step count gauge + needle_colors[0] = LV_COLOR_WHITE; + stepGauge = lv_gauge_create(lv_scr_act(), nullptr); + lv_gauge_set_needle_count(stepGauge, 1, needle_colors); + lv_obj_set_size(stepGauge, 40, 40); + lv_obj_align(stepGauge, sidebar, LV_ALIGN_IN_BOTTOM_MID, 0, 0); + lv_gauge_set_scale(stepGauge, 360, 11, 0); + lv_gauge_set_angle_offset(stepGauge, 180); + lv_gauge_set_critical_value(stepGauge, (settingsController.GetStepsGoal() / 100)); + lv_gauge_set_range(stepGauge, 0, (settingsController.GetStepsGoal() / 100)); + lv_gauge_set_value(stepGauge, 0, 0); + + lv_obj_set_style_local_pad_right(stepGauge, LV_GAUGE_PART_MAIN, LV_STATE_DEFAULT, 3); + lv_obj_set_style_local_pad_left(stepGauge, LV_GAUGE_PART_MAIN, LV_STATE_DEFAULT, 3); + lv_obj_set_style_local_pad_bottom(stepGauge, LV_GAUGE_PART_MAIN, LV_STATE_DEFAULT, 3); + lv_obj_set_style_local_line_opa(stepGauge, LV_GAUGE_PART_MAIN, LV_STATE_DEFAULT, LV_OPA_COVER); + lv_obj_set_style_local_scale_width(stepGauge, LV_GAUGE_PART_MAIN, LV_STATE_DEFAULT, 4); + lv_obj_set_style_local_line_width(stepGauge, LV_GAUGE_PART_MAIN, LV_STATE_DEFAULT, 4); + lv_obj_set_style_local_line_color(stepGauge, LV_GAUGE_PART_MAIN, LV_STATE_DEFAULT, LV_COLOR_BLACK); + lv_obj_set_style_local_line_opa(stepGauge, LV_GAUGE_PART_NEEDLE, LV_STATE_DEFAULT, LV_OPA_COVER); + lv_obj_set_style_local_line_width(stepGauge, LV_GAUGE_PART_NEEDLE, LV_STATE_DEFAULT, 4); + lv_obj_set_style_local_pad_inner(stepGauge, LV_GAUGE_PART_NEEDLE, LV_STATE_DEFAULT, 4); + + backgroundLabel = lv_label_create(lv_scr_act(), nullptr); + lv_obj_set_click(backgroundLabel, true); + lv_label_set_long_mode(backgroundLabel, LV_LABEL_LONG_CROP); + lv_obj_set_size(backgroundLabel, 240, 240); + lv_obj_set_pos(backgroundLabel, 0, 0); + lv_label_set_text(backgroundLabel, ""); +} + +PineTimeStyle::~PineTimeStyle() { + lv_obj_clean(lv_scr_act()); +} + +bool PineTimeStyle::Refresh() { + batteryPercentRemaining = batteryController.PercentRemaining(); + if (batteryPercentRemaining.IsUpdated()) { + auto batteryPercent = batteryPercentRemaining.Get(); + if (batteryController.IsCharging()) { + auto isCharging = batteryController.IsCharging() || batteryController.IsPowerPresent(); + lv_label_set_text(batteryPlug, BatteryIcon::GetPlugIcon(isCharging)); + lv_obj_realign(batteryPlug); + lv_label_set_text(batteryIcon, ""); + } else { + lv_label_set_text(batteryIcon, BatteryIcon::GetBatteryIcon(batteryPercent)); + lv_label_set_text(batteryPlug, ""); + } + } + + bleState = bleController.IsConnected(); + if (bleState.IsUpdated()) { + if (bleState.Get() == true) { + lv_label_set_text(bleIcon, BleIcon::GetIcon(true)); + lv_obj_realign(bleIcon); + } else { + lv_label_set_text(bleIcon, BleIcon::GetIcon(false)); + } + } + + notificationState = notificatioManager.AreNewNotificationsAvailable(); + if (notificationState.IsUpdated()) { + if (notificationState.Get() == true) { + lv_label_set_text(notificationIcon, NotificationIcon::GetIcon(true)); + lv_obj_realign(notificationIcon); + } else { + lv_label_set_text(notificationIcon, NotificationIcon::GetIcon(false)); + } + } + + currentDateTime = dateTimeController.CurrentDateTime(); + + if (currentDateTime.IsUpdated()) { + auto newDateTime = currentDateTime.Get(); + + auto dp = date::floor<date::days>(newDateTime); + auto time = date::make_time(newDateTime - dp); + auto yearMonthDay = date::year_month_day(dp); + + auto year = (int) yearMonthDay.year(); + auto month = static_cast<Pinetime::Controllers::DateTime::Months>((unsigned) yearMonthDay.month()); + auto day = (unsigned) yearMonthDay.day(); + auto dayOfWeek = static_cast<Pinetime::Controllers::DateTime::Days>(date::weekday(yearMonthDay).iso_encoding()); + + int hour = time.hours().count(); + auto minute = time.minutes().count(); + + char minutesChar[3]; + sprintf(minutesChar, "%02d", static_cast<int>(minute)); + + char hoursChar[3]; + char ampmChar[5]; + + if (settingsController.GetClockType() == Controllers::Settings::ClockType::H24) { + sprintf(hoursChar, "%02d", hour); + } else { + if (hour == 0 && hour != 12) { + hour = 12; + sprintf(ampmChar, "A\nM"); + } else if (hour == 12 && hour != 0) { + hour = 12; + sprintf(ampmChar, "P\nM"); + } else if (hour < 12 && hour != 0) { + sprintf(ampmChar, "A\nM"); + } else if (hour > 12 && hour != 0) { + hour = hour - 12; + sprintf(ampmChar, "P\nM"); + } + sprintf(hoursChar, "%02d", hour); + } + + if (hoursChar[0] != displayedChar[0] || hoursChar[1] != displayedChar[1] || minutesChar[0] != displayedChar[2] || + minutesChar[1] != displayedChar[3]) { + displayedChar[0] = hoursChar[0]; + displayedChar[1] = hoursChar[1]; + displayedChar[2] = minutesChar[0]; + displayedChar[3] = minutesChar[1]; + + char hourStr[3]; + char minStr[3]; + + if (settingsController.GetClockType() == Controllers::Settings::ClockType::H12) { + lv_label_set_text(timeAMPM, ampmChar); + } + + /* Display the time as 2 pairs of digits */ + sprintf(hourStr, "%c%c", hoursChar[0], hoursChar[1]); + lv_label_set_text(timeDD1, hourStr); + + sprintf(minStr, "%c%c", minutesChar[0], minutesChar[1]); + lv_label_set_text(timeDD2, minStr); + } + + if ((year != currentYear) || (month != currentMonth) || (dayOfWeek != currentDayOfWeek) || (day != currentDay)) { + char dayOfWeekStr[4]; + char dayStr[3]; + char monthStr[4]; + + sprintf(dayOfWeekStr, "%s", dateTimeController.DayOfWeekShortToString()); + sprintf(dayStr, "%d", day); + sprintf(monthStr, "%s", dateTimeController.MonthShortToString()); + + lv_label_set_text(dateDayOfWeek, dayOfWeekStr); + lv_label_set_text(dateDay, dayStr); + lv_obj_realign(dateDay); + lv_label_set_text(dateMonth, monthStr); + + currentYear = year; + currentMonth = month; + currentDayOfWeek = dayOfWeek; + currentDay = day; + } + } + + stepCount = motionController.NbSteps(); + motionSensorOk = motionController.IsSensorOk(); + if (stepCount.IsUpdated() || motionSensorOk.IsUpdated()) { + lv_gauge_set_value(stepGauge, 0, (stepCount.Get() / 100)); + lv_obj_realign(stepGauge); + if (stepCount.Get() > settingsController.GetStepsGoal()) { + lv_obj_set_style_local_line_color(stepGauge, LV_GAUGE_PART_MAIN, LV_STATE_DEFAULT, LV_COLOR_WHITE); + lv_obj_set_style_local_scale_grad_color(stepGauge, LV_GAUGE_PART_MAIN, LV_STATE_DEFAULT, LV_COLOR_WHITE); + } + } + + return running; +} \ No newline at end of file diff --git a/src/displayapp/screens/PineTimeStyle.h b/src/displayapp/screens/PineTimeStyle.h new file mode 100644 index 00000000..70794cc5 --- /dev/null +++ b/src/displayapp/screens/PineTimeStyle.h @@ -0,0 +1,86 @@ +#pragma once + +#include <lvgl/src/lv_core/lv_obj.h> +#include <chrono> +#include <cstdint> +#include <memory> +#include "Screen.h" +#include "ScreenList.h" +#include "components/datetime/DateTimeController.h" + +namespace Pinetime { + namespace Controllers { + class Settings; + class Battery; + class Ble; + class NotificationManager; + class HeartRateController; + } + + namespace Applications { + namespace Screens { + class PineTimeStyle : public Screen { + public: + PineTimeStyle(DisplayApp* app, + Controllers::DateTime& dateTimeController, + Controllers::Battery& batteryController, + Controllers::Ble& bleController, + Controllers::NotificationManager& notificatioManager, + Controllers::Settings& settingsController, + Controllers::MotionController& motionController); + ~PineTimeStyle() override; + + bool Refresh() override; + + void OnObjectEvent(lv_obj_t* pObj, lv_event_t i); + + private: + char displayedChar[5]; + + uint16_t currentYear = 1970; + Pinetime::Controllers::DateTime::Months currentMonth = Pinetime::Controllers::DateTime::Months::Unknown; + Pinetime::Controllers::DateTime::Days currentDayOfWeek = Pinetime::Controllers::DateTime::Days::Unknown; + uint8_t currentDay = 0; + + DirtyValue<int> batteryPercentRemaining {}; + DirtyValue<bool> bleState {}; + DirtyValue<std::chrono::time_point<std::chrono::system_clock, std::chrono::nanoseconds>> currentDateTime {}; + DirtyValue<bool> motionSensorOk {}; + DirtyValue<uint32_t> stepCount {}; + DirtyValue<bool> notificationState {}; + + lv_obj_t* timebar; + lv_obj_t* sidebar; + lv_obj_t* timeDD1; + lv_obj_t* timeDD2; + lv_obj_t* timeAMPM; + lv_obj_t* dateDayOfWeek; + lv_obj_t* dateDay; + lv_obj_t* dateMonth; + lv_obj_t* backgroundLabel; + lv_obj_t* batteryIcon; + lv_obj_t* bleIcon; + lv_obj_t* batteryPlug; + lv_obj_t* calendarOuter; + lv_obj_t* calendarInner; + lv_obj_t* calendarBar1; + lv_obj_t* calendarBar2; + lv_obj_t* calendarCrossBar1; + lv_obj_t* calendarCrossBar2; + lv_obj_t* heartbeatIcon; + lv_obj_t* heartbeatValue; + lv_obj_t* heartbeatBpm; + lv_obj_t* notificationIcon; + lv_obj_t* stepGauge; + lv_color_t needle_colors[1]; + + Controllers::DateTime& dateTimeController; + Controllers::Battery& batteryController; + Controllers::Ble& bleController; + Controllers::NotificationManager& notificatioManager; + Controllers::Settings& settingsController; + Controllers::MotionController& motionController; + }; + } + } +} diff --git a/src/displayapp/screens/settings/SettingWatchFace.cpp b/src/displayapp/screens/settings/SettingWatchFace.cpp index 457cebf6..3e73489d 100644 --- a/src/displayapp/screens/settings/SettingWatchFace.cpp +++ b/src/displayapp/screens/settings/SettingWatchFace.cpp @@ -58,6 +58,15 @@ SettingWatchFace::SettingWatchFace(Pinetime::Applications::DisplayApp* app, Pine lv_checkbox_set_checked(cbOption[optionsTotal], true); } + optionsTotal++; + cbOption[optionsTotal] = lv_checkbox_create(container1, nullptr); + lv_checkbox_set_text_static(cbOption[optionsTotal], " PineTimeStyle"); + cbOption[optionsTotal]->user_data = this; + lv_obj_set_event_cb(cbOption[optionsTotal], event_handler); + if (settingsController.GetClockFace() == 2) { + lv_checkbox_set_checked(cbOption[optionsTotal], true); + } + optionsTotal++; } diff --git a/src/libs/lv_conf.h b/src/libs/lv_conf.h index 761baba2..a03a4833 100644 --- a/src/libs/lv_conf.h +++ b/src/libs/lv_conf.h @@ -417,6 +417,7 @@ typedef void* lv_indev_drv_user_data_t; /*Type of user data in the in LV_FONT_DECLARE(jetbrains_mono_extrabold_compressed) \ LV_FONT_DECLARE(jetbrains_mono_42) \ LV_FONT_DECLARE(jetbrains_mono_76) \ + LV_FONT_DECLARE(open_sans_light) \ LV_FONT_DECLARE(lv_font_sys_48) /* Enable it if you have fonts with a lot of characters. From 2f479e5fc7688ae47e99c0f4aead87c9cdc29123 Mon Sep 17 00:00:00 2001 From: Avamander <avamander@gmail.com> Date: Fri, 25 Jun 2021 01:07:40 +0300 Subject: [PATCH 33/58] Fixed a bunch of format specifiers --- src/displayapp/screens/Steps.cpp | 6 +++--- src/displayapp/screens/SystemInfo.cpp | 4 ++-- src/displayapp/screens/Timer.cpp | 6 +++--- src/displayapp/screens/settings/SettingSteps.cpp | 6 +++--- 4 files changed, 11 insertions(+), 11 deletions(-) diff --git a/src/displayapp/screens/Steps.cpp b/src/displayapp/screens/Steps.cpp index b485c975..cc78813f 100644 --- a/src/displayapp/screens/Steps.cpp +++ b/src/displayapp/screens/Steps.cpp @@ -30,8 +30,8 @@ Steps::Steps( lSteps = lv_label_create(lv_scr_act(), nullptr); lv_obj_set_style_local_text_color(lSteps, LV_LABEL_PART_MAIN, LV_STATE_DEFAULT, lv_color_hex(0x00FF00)); - lv_obj_set_style_local_text_font(lSteps, LV_LABEL_PART_MAIN, LV_STATE_DEFAULT, &jetbrains_mono_42); - lv_label_set_text_fmt(lSteps, "%li", stepsCount); + lv_obj_set_style_local_text_font(lSteps, LV_LABEL_PART_MAIN, LV_STATE_DEFAULT, &jetbrains_mono_42); + lv_label_set_text_fmt(lSteps, "%li", stepsCount); lv_obj_align(lSteps, nullptr, LV_ALIGN_CENTER, 0, -20); lv_obj_t * lstepsL = lv_label_create(lv_scr_act(), nullptr); @@ -41,7 +41,7 @@ Steps::Steps( lv_obj_t * lstepsGoal = lv_label_create(lv_scr_act(), nullptr); lv_obj_set_style_local_text_color(lstepsGoal, LV_LABEL_PART_MAIN, LV_STATE_DEFAULT, LV_COLOR_CYAN); - lv_label_set_text_fmt(lstepsGoal,"Goal\n%i", settingsController.GetStepsGoal()); + lv_label_set_text_fmt(lstepsGoal, "Goal\n%lu", settingsController.GetStepsGoal()); lv_label_set_align(lstepsGoal, LV_LABEL_ALIGN_CENTER); lv_obj_align(lstepsGoal, lSteps, LV_ALIGN_OUT_BOTTOM_MID, 0, 60); diff --git a/src/displayapp/screens/SystemInfo.cpp b/src/displayapp/screens/SystemInfo.cpp index 60e53ad6..f70b67fd 100644 --- a/src/displayapp/screens/SystemInfo.cpp +++ b/src/displayapp/screens/SystemInfo.cpp @@ -192,11 +192,11 @@ std::unique_ptr<Screen> SystemInfo::CreateScreen3() { "\n" "#444444 LVGL Memory#\n" " #444444 used# %d (%d%%)\n" - " #444444 max used# %d\n" + " #444444 max used# %lu\n" " #444444 frag# %d%%\n" " #444444 free# %d" "\n" - "#444444 Steps# %li", + "#444444 Steps# %i", bleAddr[5], bleAddr[4], bleAddr[3], diff --git a/src/displayapp/screens/Timer.cpp b/src/displayapp/screens/Timer.cpp index 260a17ef..99e979ba 100644 --- a/src/displayapp/screens/Timer.cpp +++ b/src/displayapp/screens/Timer.cpp @@ -63,8 +63,8 @@ Timer::Timer(DisplayApp* app, Controllers::TimerController& timerController) lv_obj_set_style_local_text_color(time, LV_LABEL_PART_MAIN, LV_STATE_DEFAULT, LV_COLOR_GRAY); uint32_t seconds = timerController.GetTimeRemaining() / 1000; - lv_label_set_text_fmt(time, "%02d:%02d", seconds / 60, seconds % 60); - + lv_label_set_text_fmt(time, "%02lu:%02lu", seconds / 60, seconds % 60); + lv_obj_align(time, lv_scr_act(), LV_ALIGN_IN_LEFT_MID, 0, -20); btnPlayPause = lv_btn_create(lv_scr_act(), nullptr); @@ -90,7 +90,7 @@ Timer::~Timer() { bool Timer::Refresh() { if (timerController.IsRunning()) { uint32_t seconds = timerController.GetTimeRemaining() / 1000; - lv_label_set_text_fmt(time, "%02d:%02d", seconds / 60, seconds % 60); + lv_label_set_text_fmt(time, "%02lu:%02lu", seconds / 60, seconds % 60); } return running; } diff --git a/src/displayapp/screens/settings/SettingSteps.cpp b/src/displayapp/screens/settings/SettingSteps.cpp index b7c024f1..faa843e6 100644 --- a/src/displayapp/screens/settings/SettingSteps.cpp +++ b/src/displayapp/screens/settings/SettingSteps.cpp @@ -45,7 +45,7 @@ SettingSteps::SettingSteps( stepValue = lv_label_create(lv_scr_act(), NULL); lv_obj_set_style_local_text_font(stepValue, LV_LABEL_PART_MAIN, LV_STATE_DEFAULT, &jetbrains_mono_42); - lv_label_set_text_fmt(stepValue,"%i", settingsController.GetStepsGoal()); + lv_label_set_text_fmt(stepValue, "%lu", settingsController.GetStepsGoal()); lv_label_set_align(stepValue, LV_LABEL_ALIGN_CENTER); lv_obj_align(stepValue, lv_scr_act(), LV_ALIGN_CENTER, 0, -10); @@ -81,7 +81,7 @@ void SettingSteps::UpdateSelected(lv_obj_t *object, lv_event_t event) { value += 1000; if ( value <= 500000 ) { settingsController.SetStepsGoal(value); - lv_label_set_text_fmt(stepValue,"%i", settingsController.GetStepsGoal()); + lv_label_set_text_fmt(stepValue, "%lu", settingsController.GetStepsGoal()); lv_obj_align(stepValue, lv_scr_act(), LV_ALIGN_CENTER, 0, -10); } } @@ -90,7 +90,7 @@ void SettingSteps::UpdateSelected(lv_obj_t *object, lv_event_t event) { value -= 1000; if ( value >= 1000 ) { settingsController.SetStepsGoal(value); - lv_label_set_text_fmt(stepValue,"%i", settingsController.GetStepsGoal()); + lv_label_set_text_fmt(stepValue, "%lu", settingsController.GetStepsGoal()); lv_obj_align(stepValue, lv_scr_act(), LV_ALIGN_CENTER, 0, -10); } } From bdb5965f1a3432a4f24b5fc566973bf4ab811b08 Mon Sep 17 00:00:00 2001 From: Avamander <avamander@gmail.com> Date: Fri, 25 Jun 2021 00:40:55 +0300 Subject: [PATCH 34/58] static_cast cleanup --- src/components/battery/BatteryController.cpp | 2 +- src/displayapp/screens/SystemInfo.cpp | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/components/battery/BatteryController.cpp b/src/components/battery/BatteryController.cpp index bc146457..b153b980 100644 --- a/src/components/battery/BatteryController.cpp +++ b/src/components/battery/BatteryController.cpp @@ -14,7 +14,7 @@ Battery::Battery() { } void Battery::Init() { - nrf_gpio_cfg_input(chargingPin, (nrf_gpio_pin_pull_t) GPIO_PIN_CNF_PULL_Pullup); + nrf_gpio_cfg_input(chargingPin, static_cast<nrf_gpio_pin_pull_t> GPIO_PIN_CNF_PULL_Pullup); } void Battery::Update() { diff --git a/src/displayapp/screens/SystemInfo.cpp b/src/displayapp/screens/SystemInfo.cpp index f70b67fd..1e90bf40 100644 --- a/src/displayapp/screens/SystemInfo.cpp +++ b/src/displayapp/screens/SystemInfo.cpp @@ -203,11 +203,11 @@ std::unique_ptr<Screen> SystemInfo::CreateScreen3() { bleAddr[2], bleAddr[1], bleAddr[0], - (int) mon.total_size - mon.free_size, + static_cast<int>(mon.total_size - mon.free_size), mon.used_pct, mon.max_used, mon.frag_pct, - (int) mon.free_biggest_size, + static_cast<int>(mon.free_biggest_size), 0); lv_obj_align(label, lv_scr_act(), LV_ALIGN_CENTER, 0, 0); return std::make_unique<Screens::Label>(2, 5, app, label); From 69894853acdbae83f3a04da976af0a5794046742 Mon Sep 17 00:00:00 2001 From: Avamander <avamander@gmail.com> Date: Fri, 25 Jun 2021 00:39:15 +0300 Subject: [PATCH 35/58] Improved CLion configuration --- .idea/codeStyles/Project.xml | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/.idea/codeStyles/Project.xml b/.idea/codeStyles/Project.xml index 7bdfbcb1..9c99b664 100644 --- a/.idea/codeStyles/Project.xml +++ b/.idea/codeStyles/Project.xml @@ -12,6 +12,29 @@ <option name="SPACE_BEFORE_REFERENCE_IN_DECLARATION" value="false" /> <option name="SPACE_AFTER_REFERENCE_IN_DECLARATION" value="true" /> </Objective-C> + <Objective-C-extensions> + <rules> + <rule entity="NAMESPACE" visibility="ANY" specifier="ANY" prefix="" style="PASCAL_CASE" suffix="" /> + <rule entity="MACRO" visibility="ANY" specifier="ANY" prefix="" style="SCREAMING_SNAKE_CASE" suffix="" /> + <rule entity="CLASS" visibility="ANY" specifier="ANY" prefix="" style="PASCAL_CASE" suffix="" /> + <rule entity="STRUCT" visibility="ANY" specifier="ANY" prefix="" style="CAMEL_CASE" suffix="" /> + <rule entity="ENUM" visibility="ANY" specifier="ANY" prefix="" style="CAMEL_CASE" suffix="" /> + <rule entity="ENUMERATOR" visibility="ANY" specifier="ANY" prefix="" style="PASCAL_CASE" suffix="" /> + <rule entity="TYPEDEF" visibility="ANY" specifier="ANY" prefix="" style="CAMEL_CASE" suffix="" /> + <rule entity="UNION" visibility="ANY" specifier="ANY" prefix="" style="CAMEL_CASE" suffix="" /> + <rule entity="CLASS_MEMBER_FUNCTION" visibility="ANY" specifier="ANY" prefix="" style="PASCAL_CASE" suffix="" /> + <rule entity="STRUCT_MEMBER_FUNCTION" visibility="ANY" specifier="ANY" prefix="" style="CAMEL_CASE" suffix="" /> + <rule entity="CLASS_MEMBER_FIELD" visibility="ANY" specifier="ANY" prefix="" style="CAMEL_CASE" suffix="" /> + <rule entity="STRUCT_MEMBER_FIELD" visibility="ANY" specifier="ANY" prefix="" style="CAMEL_CASE" suffix="" /> + <rule entity="GLOBAL_FUNCTION" visibility="ANY" specifier="ANY" prefix="" style="PASCAL_CASE" suffix="" /> + <rule entity="GLOBAL_VARIABLE" visibility="ANY" specifier="ANY" prefix="" style="CAMEL_CASE" suffix="" /> + <rule entity="PARAMETER" visibility="ANY" specifier="ANY" prefix="" style="CAMEL_CASE" suffix="" /> + <rule entity="LOCAL_VARIABLE" visibility="ANY" specifier="ANY" prefix="" style="CAMEL_CASE" suffix="" /> + </rules> + </Objective-C-extensions> + <clangFormatSettings> + <option name="ENABLED" value="true" /> + </clangFormatSettings> <codeStyleSettings language="ObjectiveC"> <option name="RIGHT_MARGIN" value="140" /> <option name="IF_BRACE_FORCE" value="3" /> From dea4beba13b539cc6a8660b35922d703ea794a47 Mon Sep 17 00:00:00 2001 From: Avamander <avamander@gmail.com> Date: Thu, 10 Jun 2021 00:46:25 +0300 Subject: [PATCH 36/58] Disabled new Clang-Tidy checks that are too noisy --- .clang-tidy | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.clang-tidy b/.clang-tidy index 8a7d38f0..e6acf447 100644 --- a/.clang-tidy +++ b/.clang-tidy @@ -1,4 +1,5 @@ Checks: '*, + -altera-unroll-loops, -llvmlibc-callee-namespace, -llvm-header-guard, -llvm-namespace-comment, @@ -23,6 +24,7 @@ Checks: '*, -hicpp-avoid-c-arrays, -hicpp-uppercase-literal-suffix, -hicpp-no-array-decay, + -hicpp-vararg, -cert-err58-cpp, -cert-err60-cpp' CheckOptions: From d1842a36861d1b0f0bd19a8b6d3efa633e419c61 Mon Sep 17 00:00:00 2001 From: Avamander <avamander@gmail.com> Date: Sat, 26 Jun 2021 21:55:26 +0300 Subject: [PATCH 37/58] Disabled a few more unnecessary warnings, sorted a bit --- .clang-tidy | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/.clang-tidy b/.clang-tidy index e6acf447..8b9e7c0c 100644 --- a/.clang-tidy +++ b/.clang-tidy @@ -15,18 +15,20 @@ Checks: '*, -cppcoreguidelines-avoid-magic-numbers, -cppcoreguidelines-avoid-non-const-global-variables, -cppcoreguidelines-avoid-c-arrays, + -cppcoreguidelines-special-member-functions, -readability-magic-numbers, -readability-uppercase-literal-suffix, -modernize-use-trailing-return-type, -modernize-avoid-c-arrays, - -hicpp-signed-bitwise, - -hicpp-no-assembler, -hicpp-avoid-c-arrays, -hicpp-uppercase-literal-suffix, - -hicpp-no-array-decay, -hicpp-vararg, + -hicpp-no-assembler, + -hicpp-no-array-decay, + -hicpp-signed-bitwise, + -hicpp-special-member-functions, -cert-err58-cpp, -cert-err60-cpp' CheckOptions: - key: readability-function-cognitive-complexity.Threshold - value: 100 \ No newline at end of file + value: 100 From 7075b7f264d1c5ae3a2b7d2fc26e1d0ad36b2616 Mon Sep 17 00:00:00 2001 From: Riku Isokoski <riksu9000@gmail.com> Date: Wed, 23 Jun 2021 13:08:51 +0300 Subject: [PATCH 38/58] Fix call notification button alignment --- src/displayapp/screens/Notifications.cpp | 32 +++++++++--------------- 1 file changed, 12 insertions(+), 20 deletions(-) diff --git a/src/displayapp/screens/Notifications.cpp b/src/displayapp/screens/Notifications.cpp index 1a1729ea..38b12420 100644 --- a/src/displayapp/screens/Notifications.cpp +++ b/src/displayapp/screens/Notifications.cpp @@ -163,10 +163,10 @@ Notifications::NotificationItem::NotificationItem(const char* title, lv_obj_set_style_local_border_width(container1, LV_CONT_PART_MAIN, LV_STATE_DEFAULT, 0); lv_obj_set_pos(container1, 0, 50); - lv_obj_set_width(container1, 240); - lv_obj_set_height(container1, 190); + lv_obj_set_size(container1, LV_HOR_RES, 190); lv_cont_set_layout(container1, LV_LAYOUT_COLUMN_LEFT); + lv_cont_set_fit(container1, LV_FIT_NONE); lv_obj_t* alert_count = lv_label_create(lv_scr_act(), nullptr); lv_label_set_text_fmt(alert_count, "%i/%i", notifNr, notifNb); @@ -198,6 +198,7 @@ Notifications::NotificationItem::NotificationItem(const char* title, lv_label_set_text(alert_subject, msg); } break; case Controllers::NotificationManager::Categories::IncomingCall: { + lv_obj_set_height(container1, 108); lv_obj_t* alert_subject = lv_label_create(container1, nullptr); lv_obj_set_style_local_text_color(alert_subject, LV_LABEL_PART_MAIN, LV_STATE_DEFAULT, LV_COLOR_ORANGE); lv_label_set_long_mode(alert_subject, LV_LABEL_LONG_BREAK); @@ -210,38 +211,29 @@ Notifications::NotificationItem::NotificationItem(const char* title, lv_obj_set_width(alert_caller, LV_HOR_RES - 20); lv_label_set_text(alert_caller, msg); - lv_obj_t* callBtnContainer = lv_cont_create(container1, NULL); - lv_obj_set_width(callBtnContainer, 240); - lv_obj_set_height(callBtnContainer, 90); - lv_cont_set_layout(callBtnContainer, LV_LAYOUT_ROW_MID); - - lv_obj_set_style_local_bg_color(callBtnContainer, LV_CONT_PART_MAIN, LV_STATE_DEFAULT, lv_color_hex(0x222222)); - lv_obj_set_style_local_pad_all(callBtnContainer, LV_CONT_PART_MAIN, LV_STATE_DEFAULT, 0); - lv_obj_set_style_local_margin_top(callBtnContainer, LV_CONT_PART_MAIN, LV_STATE_DEFAULT, 40); - lv_obj_set_style_local_margin_left(callBtnContainer, LV_CONT_PART_MAIN, LV_STATE_DEFAULT, -8); - lv_obj_set_style_local_pad_inner(callBtnContainer, LV_CONT_PART_MAIN, LV_STATE_DEFAULT, 5); - lv_obj_set_style_local_border_width(callBtnContainer, LV_CONT_PART_MAIN, LV_STATE_DEFAULT, 0); - - bt_accept = lv_btn_create(callBtnContainer, nullptr); + bt_accept = lv_btn_create(lv_scr_act(), nullptr); bt_accept->user_data = this; lv_obj_set_event_cb(bt_accept, AcceptIncomingCallEventHandler); - lv_obj_set_size(bt_accept, (LV_HOR_RES / 3) - 5, 80); + lv_obj_set_size(bt_accept, 76, 76); + lv_obj_align(bt_accept, NULL, LV_ALIGN_IN_BOTTOM_LEFT, 0, 0); label_accept = lv_label_create(bt_accept, nullptr); lv_label_set_text(label_accept, Symbols::phone); lv_obj_set_style_local_bg_color(bt_accept, LV_LABEL_PART_MAIN, LV_STATE_DEFAULT, LV_COLOR_GREEN); - bt_reject = lv_btn_create(callBtnContainer, nullptr); + bt_reject = lv_btn_create(lv_scr_act(), nullptr); bt_reject->user_data = this; lv_obj_set_event_cb(bt_reject, RejectIncomingCallEventHandler); - lv_obj_set_size(bt_reject, (LV_HOR_RES / 3) - 5, 80); + lv_obj_set_size(bt_reject, 76, 76); + lv_obj_align(bt_reject, NULL, LV_ALIGN_IN_BOTTOM_MID, 0, 0); label_reject = lv_label_create(bt_reject, nullptr); lv_label_set_text(label_reject, Symbols::phoneSlash); lv_obj_set_style_local_bg_color(bt_reject, LV_LABEL_PART_MAIN, LV_STATE_DEFAULT, LV_COLOR_RED); - bt_mute = lv_btn_create(callBtnContainer, nullptr); + bt_mute = lv_btn_create(lv_scr_act(), nullptr); bt_mute->user_data = this; lv_obj_set_event_cb(bt_mute, MuteIncomingCallEventHandler); - lv_obj_set_size(bt_mute, (LV_HOR_RES / 3) - 5, 80); + lv_obj_set_size(bt_mute, 76, 76); + lv_obj_align(bt_mute, NULL, LV_ALIGN_IN_BOTTOM_RIGHT, 0, 0); label_mute = lv_label_create(bt_mute, nullptr); lv_label_set_text(label_mute, Symbols::volumMute); lv_obj_set_style_local_bg_color(bt_mute, LV_LABEL_PART_MAIN, LV_STATE_DEFAULT, LV_COLOR_GRAY); From 38f40034b0a200586429a3d8329479ad13d84d94 Mon Sep 17 00:00:00 2001 From: Riku Isokoski <riksu9000@gmail.com> Date: Fri, 2 Jul 2021 18:30:32 +0300 Subject: [PATCH 39/58] Float voltage to int (#444) * Change voltage float to millivolt integer * Explain the ADC to milliVolts conversion --- src/components/battery/BatteryController.cpp | 14 +++++++++----- src/components/battery/BatteryController.h | 6 +++--- src/displayapp/screens/BatteryInfo.cpp | 17 ++--------------- src/displayapp/screens/BatteryInfo.h | 2 +- src/displayapp/screens/SystemInfo.cpp | 12 ++---------- 5 files changed, 17 insertions(+), 34 deletions(-) diff --git a/src/components/battery/BatteryController.cpp b/src/components/battery/BatteryController.cpp index b153b980..02901dd8 100644 --- a/src/components/battery/BatteryController.cpp +++ b/src/components/battery/BatteryController.cpp @@ -55,17 +55,21 @@ void Battery::SaadcInit() { void Battery::SaadcEventHandler(nrfx_saadc_evt_t const* p_event) { - const float battery_max = 4.18; // maximum voltage of battery ( max charging voltage is 4.21 ) - const float battery_min = 3.20; // minimum voltage of battery before shutdown ( depends on the battery ) + const uint16_t battery_max = 4180; // maximum voltage of battery ( max charging voltage is 4.21 ) + const uint16_t battery_min = 3200; // minimum voltage of battery before shutdown ( depends on the battery ) if (p_event->type == NRFX_SAADC_EVT_DONE) { APP_ERROR_CHECK(nrfx_saadc_buffer_convert(&saadc_value, 1)); - voltage = (static_cast<float>(p_event->data.done.p_buffer[0]) * 2.04f) / (1024 / 3.0f); - voltage = roundf(voltage * 100) / 100; + // A hardware voltage divider divides the battery voltage by 2 + // ADC gain is 1/5 + // thus adc_voltage = battery_voltage / 2 * gain = battery_voltage / 10 + // reference_voltage is 0.6V + // p_event->data.done.p_buffer[0] = (adc_voltage / reference_voltage) * 1024 + voltage = p_event->data.done.p_buffer[0] * 6000 / 1024; - percentRemaining = static_cast<int>(((voltage - battery_min) / (battery_max - battery_min)) * 100); + percentRemaining = (voltage - battery_min) * 100 / (battery_max - battery_min); percentRemaining = std::max(percentRemaining, 0); percentRemaining = std::min(percentRemaining, 100); diff --git a/src/components/battery/BatteryController.h b/src/components/battery/BatteryController.h index 04bcf6b8..26e24938 100644 --- a/src/components/battery/BatteryController.h +++ b/src/components/battery/BatteryController.h @@ -50,7 +50,7 @@ namespace Pinetime { return percentRemainingBuffer.GetAverage(); } - float Voltage() const { + uint16_t Voltage() const { return voltage; } @@ -71,7 +71,7 @@ namespace Pinetime { static constexpr uint32_t chargingPin = 12; static constexpr uint32_t powerPresentPin = 19; static constexpr nrf_saadc_input_t batteryVoltageAdcInput = NRF_SAADC_INPUT_AIN7; - float voltage = 0.0f; + uint16_t voltage = 0; int percentRemaining = -1; bool isCharging = false; @@ -86,4 +86,4 @@ namespace Pinetime { uint8_t samples = 0; }; } -} \ No newline at end of file +} diff --git a/src/displayapp/screens/BatteryInfo.cpp b/src/displayapp/screens/BatteryInfo.cpp index 1ab8b0ad..87c8b4bb 100644 --- a/src/displayapp/screens/BatteryInfo.cpp +++ b/src/displayapp/screens/BatteryInfo.cpp @@ -46,16 +46,9 @@ BatteryInfo::BatteryInfo(Pinetime::Applications::DisplayApp* app, Pinetime::Cont lv_label_set_align(percent, LV_LABEL_ALIGN_LEFT); lv_obj_align(percent, nullptr, LV_ALIGN_CENTER, 0, -60); - // hack to not use the flot functions from printf - uint8_t batteryVoltageBytes[2]; - batteryVoltageBytes[1] = static_cast<uint8_t>(batteryVoltage); // truncate whole numbers - batteryVoltageBytes[0] = - static_cast<uint8_t>((batteryVoltage - batteryVoltageBytes[1]) * 100); // remove whole part of flt and shift 2 places over - // - voltage = lv_label_create(lv_scr_act(), nullptr); lv_obj_set_style_local_text_color(voltage, LV_LABEL_PART_MAIN, LV_STATE_DEFAULT, lv_color_hex(0xC6A600)); - lv_label_set_text_fmt(voltage, "%1i.%02i volts", batteryVoltageBytes[1], batteryVoltageBytes[0]); + lv_label_set_text_fmt(voltage, "%1i.%02i volts", batteryVoltage / 1000, batteryVoltage % 1000 / 10); lv_label_set_align(voltage, LV_LABEL_ALIGN_CENTER); lv_obj_align(voltage, nullptr, LV_ALIGN_CENTER, 0, 95); @@ -129,13 +122,7 @@ void BatteryInfo::UpdateScreen() { } lv_obj_align(status, charging_bar, LV_ALIGN_OUT_BOTTOM_MID, 0, 20); - // hack to not use the flot functions from printf - uint8_t batteryVoltageBytes[2]; - batteryVoltageBytes[1] = static_cast<uint8_t>(batteryVoltage); // truncate whole numbers - batteryVoltageBytes[0] = - static_cast<uint8_t>((batteryVoltage - batteryVoltageBytes[1]) * 100); // remove whole part of flt and shift 2 places over - // - lv_label_set_text_fmt(voltage, "%1i.%02i volts", batteryVoltageBytes[1], batteryVoltageBytes[0]); + lv_label_set_text_fmt(voltage, "%1i.%02i volts", batteryVoltage / 1000, batteryVoltage % 1000 / 10); } bool BatteryInfo::Refresh() { diff --git a/src/displayapp/screens/BatteryInfo.h b/src/displayapp/screens/BatteryInfo.h index 8805db58..346dc571 100644 --- a/src/displayapp/screens/BatteryInfo.h +++ b/src/displayapp/screens/BatteryInfo.h @@ -37,7 +37,7 @@ namespace Pinetime { int8_t animation = 0; int8_t batteryPercent = -1; - float batteryVoltage = 0.0f; + uint16_t batteryVoltage = 0; }; } } diff --git a/src/displayapp/screens/SystemInfo.cpp b/src/displayapp/screens/SystemInfo.cpp index 1e90bf40..5ae3a595 100644 --- a/src/displayapp/screens/SystemInfo.cpp +++ b/src/displayapp/screens/SystemInfo.cpp @@ -104,8 +104,6 @@ std::unique_ptr<Screen> SystemInfo::CreateScreen1() { std::unique_ptr<Screen> SystemInfo::CreateScreen2() { auto batteryPercent = static_cast<uint8_t>(batteryController.PercentRemaining()); - float batteryVoltage = batteryController.Voltage(); - auto resetReason = [this]() { switch (watchdog.ResetReason()) { case Drivers::Watchdog::ResetReasons::Watchdog: @@ -144,18 +142,13 @@ std::unique_ptr<Screen> SystemInfo::CreateScreen2() { uptimeSeconds = uptimeSeconds % secondsInAMinute; // TODO handle more than 100 days of uptime - // hack to not use the flot functions from printf - uint8_t batteryVoltageBytes[2]; - batteryVoltageBytes[1] = static_cast<uint8_t>(batteryVoltage); // truncate whole numbers - batteryVoltageBytes[0] = static_cast<uint8_t>((batteryVoltage - batteryVoltageBytes[1]) * 100); // remove whole part of flt and shift 2 places over - lv_obj_t* label = lv_label_create(lv_scr_act(), nullptr); lv_label_set_recolor(label, true); lv_label_set_text_fmt(label, "#444444 Date# %02d/%02d/%04d\n" "#444444 Time# %02d:%02d:%02d\n" "#444444 Uptime#\n %02lud %02lu:%02lu:%02lu\n" - "#444444 Battery# %d%%/%1i.%02iv\n" + "#444444 Battery# %d%%/%03imV\n" "#444444 Backlight# %s\n" "#444444 Last reset# %s\n" "#444444 Accel.# %s\n", @@ -170,8 +163,7 @@ std::unique_ptr<Screen> SystemInfo::CreateScreen2() { uptimeMinutes, uptimeSeconds, batteryPercent, - batteryVoltageBytes[1], - batteryVoltageBytes[0], + batteryController.Voltage(), brightnessController.ToString(), resetReason, ToString(motionController.DeviceType())); From 4e435e93e0b4db101f9232661ee4147a90084df0 Mon Sep 17 00:00:00 2001 From: Bryton Hall <email@bryton.io> Date: Fri, 2 Jul 2021 11:34:32 -0400 Subject: [PATCH 40/58] and metronome icon (#439) * add drum icon for metronome app --- src/displayapp/fonts/README.md | 2 +- src/displayapp/fonts/jetbrains_mono_bold_20.c | 21 ++++++++++++++----- src/displayapp/screens/ApplicationList.cpp | 2 +- src/displayapp/screens/Symbols.h | 1 + 4 files changed, 19 insertions(+), 7 deletions(-) diff --git a/src/displayapp/fonts/README.md b/src/displayapp/fonts/README.md index 13b61b8e..ec4beb88 100644 --- a/src/displayapp/fonts/README.md +++ b/src/displayapp/fonts/README.md @@ -13,7 +13,7 @@ * Do not enable font compression and horizontal subpixel hinting * Load the file `JetBrainsMono-Bold.tff` (use the file in this repo to ensure the version matches) and specify the following range : `0x20-0x7f, 0x410-0x44f` * Add a 2nd font, load the file `FontAwesome5-Solid+Brands+Regular.woff` and specify the following - range : `0xf293, 0xf294, 0xf244, 0xf240, 0xf242, 0xf243, 0xf241, 0xf54b, 0xf21e, 0xf1e6, 0xf54b, 0xf017, 0xf129, 0xf03a, 0xf185, 0xf560, 0xf001, 0xf3fd, 0xf069, 0xf1fc, 0xf45d, 0xf59f, 0xf5a0, 0xf029, 0xf027, 0xf028, 0xf6a9, 0xf04b, 0xf04c, 0xf048, 0xf051, 0xf095, 0xf3dd, 0xf04d, 0xf2f2, 0xf024, 0xf252` + range : `0xf293, 0xf294, 0xf244, 0xf240, 0xf242, 0xf243, 0xf241, 0xf54b, 0xf21e, 0xf1e6, 0xf54b, 0xf017, 0xf129, 0xf03a, 0xf185, 0xf560, 0xf001, 0xf3fd, 0xf069, 0xf1fc, 0xf45d, 0xf59f, 0xf5a0, 0xf029, 0xf027, 0xf028, 0xf6a9, 0xf04b, 0xf04c, 0xf048, 0xf051, 0xf095, 0xf3dd, 0xf04d, 0xf2f2, 0xf024, 0xf252, 0xf569` * Click on Convert, and download the file `jetbrains_mono_bold_20.c` and copy it in `src/DisplayApp/Fonts` * Add the font .c file path to src/CMakeLists.txt * Add an LV_FONT_DECLARE line in src/libs/lv_conf.h diff --git a/src/displayapp/fonts/jetbrains_mono_bold_20.c b/src/displayapp/fonts/jetbrains_mono_bold_20.c index b001bb7e..98243bb4 100644 --- a/src/displayapp/fonts/jetbrains_mono_bold_20.c +++ b/src/displayapp/fonts/jetbrains_mono_bold_20.c @@ -979,6 +979,16 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = { 0x1f, 0xf0, 0x0, 0xfe, 0x0, 0x7, 0xc0, 0x0, 0x38, 0x0, 0x1, 0x0, 0x0, + /* U+F569 "" */ + 0x0, 0x0, 0x4, 0x0, 0x0, 0x3c, 0x0, 0x0, + 0xf0, 0x0, 0x7, 0xc0, 0x1f, 0xfe, 0x3, 0xff, + 0xfe, 0xf, 0x87, 0xfe, 0x38, 0x3e, 0xe, 0xc0, + 0xf8, 0x7, 0x81, 0xc0, 0xf, 0x0, 0x0, 0x1f, + 0x80, 0x0, 0xff, 0xe0, 0xf, 0xff, 0xff, 0xff, + 0xf9, 0xff, 0xf3, 0xf3, 0xe3, 0xe7, 0xe7, 0xc7, + 0xce, 0xcf, 0x8f, 0x98, 0x9f, 0x1f, 0x20, 0x3e, + 0x3e, 0x0, 0x4, 0x60, 0x0, + /* U+F59F "" */ 0x0, 0x78, 0x0, 0x7, 0xf8, 0x0, 0x1f, 0xe0, 0x0, 0xff, 0xc0, 0x3, 0xff, 0x0, 0xf, 0xfc, @@ -1204,9 +1214,10 @@ static const lv_font_fmt_txt_glyph_dsc_t glyph_dsc[] = { {.bitmap_index = 3750, .adv_w = 320, .box_w = 20, .box_h = 20, .ofs_x = 0, .ofs_y = -2}, {.bitmap_index = 3800, .adv_w = 400, .box_w = 25, .box_h = 19, .ofs_x = 0, .ofs_y = -2}, {.bitmap_index = 3860, .adv_w = 320, .box_w = 20, .box_h = 21, .ofs_x = 0, .ofs_y = -3}, - {.bitmap_index = 3913, .adv_w = 360, .box_w = 22, .box_h = 20, .ofs_x = 0, .ofs_y = -2}, - {.bitmap_index = 3968, .adv_w = 360, .box_w = 22, .box_h = 19, .ofs_x = 0, .ofs_y = -2}, - {.bitmap_index = 4021, .adv_w = 320, .box_w = 20, .box_h = 15, .ofs_x = 0, .ofs_y = 0} + {.bitmap_index = 3913, .adv_w = 360, .box_w = 23, .box_h = 21, .ofs_x = 0, .ofs_y = -3}, + {.bitmap_index = 3974, .adv_w = 360, .box_w = 22, .box_h = 20, .ofs_x = 0, .ofs_y = -2}, + {.bitmap_index = 4029, .adv_w = 360, .box_w = 22, .box_h = 19, .ofs_x = 0, .ofs_y = -2}, + {.bitmap_index = 4082, .adv_w = 320, .box_w = 20, .box_h = 15, .ofs_x = 0, .ofs_y = 0} }; /*--------------------- @@ -1218,7 +1229,7 @@ static const uint16_t unicode_list_2[] = { 0x4a, 0x4b, 0x4c, 0x50, 0x68, 0x94, 0x128, 0x184, 0x1e5, 0x1fb, 0x21d, 0x23f, 0x240, 0x241, 0x242, 0x243, 0x251, 0x292, 0x293, 0x2f1, 0x3dc, 0x3fc, 0x45c, 0x54a, - 0x55f, 0x59e, 0x59f, 0x6a8 + 0x55f, 0x568, 0x59e, 0x59f, 0x6a8 }; /*Collect the unicode lists and glyph_id offsets*/ @@ -1234,7 +1245,7 @@ static const lv_font_fmt_txt_cmap_t cmaps[] = }, { .range_start = 61441, .range_length = 1705, .glyph_id_start = 160, - .unicode_list = unicode_list_2, .glyph_id_ofs_list = NULL, .list_length = 36, .type = LV_FONT_FMT_TXT_CMAP_SPARSE_TINY + .unicode_list = unicode_list_2, .glyph_id_ofs_list = NULL, .list_length = 37, .type = LV_FONT_FMT_TXT_CMAP_SPARSE_TINY } }; diff --git a/src/displayapp/screens/ApplicationList.cpp b/src/displayapp/screens/ApplicationList.cpp index d434c177..78c7cd9a 100644 --- a/src/displayapp/screens/ApplicationList.cpp +++ b/src/displayapp/screens/ApplicationList.cpp @@ -63,7 +63,7 @@ std::unique_ptr<Screen> ApplicationList::CreateScreen2() { {Symbols::paddle, Apps::Paddle}, {"2", Apps::Twos}, {"M", Apps::Motion}, - {"b", Apps::Metronome}, + {Symbols::drum, Apps::Metronome}, {"", Apps::None}, }}; diff --git a/src/displayapp/screens/Symbols.h b/src/displayapp/screens/Symbols.h index 8d55f693..c9d61541 100644 --- a/src/displayapp/screens/Symbols.h +++ b/src/displayapp/screens/Symbols.h @@ -40,6 +40,7 @@ namespace Pinetime { static constexpr const char* stopWatch = "\xEF\x8B\xB2"; static constexpr const char* hourGlass = "\xEF\x89\x92"; static constexpr const char* lapsFlag = "\xEF\x80\xA4"; + static constexpr const char* drum = "\xEF\x95\xA9"; // lv_font_sys_48.c static constexpr const char* settings = "\xEE\xA4\x82"; // e902 From e28516002b831a8e6f252f6aa08b8a390b9b7c68 Mon Sep 17 00:00:00 2001 From: Jonathan Vander Mey <jonathan@vandermey.ca> Date: Mon, 7 Jun 2021 18:52:27 -0400 Subject: [PATCH 41/58] Eliminate reinterpret_casting --- src/components/ble/MusicService.cpp | 52 ++++++++++++++--------------- 1 file changed, 26 insertions(+), 26 deletions(-) diff --git a/src/components/ble/MusicService.cpp b/src/components/ble/MusicService.cpp index c420a576..1c7d93a6 100644 --- a/src/components/ble/MusicService.cpp +++ b/src/components/ble/MusicService.cpp @@ -23,63 +23,63 @@ int MusicCallback(uint16_t conn_handle, uint16_t attr_handle, struct ble_gatt_ac } Pinetime::Controllers::MusicService::MusicService(Pinetime::System::SystemTask& system) : m_system(system) { - characteristicDefinition[0] = {.uuid = reinterpret_cast<ble_uuid_t*>(&msEventCharUuid), + characteristicDefinition[0] = {.uuid = &msEventCharUuid.u, .access_cb = MusicCallback, .arg = this, .flags = BLE_GATT_CHR_F_NOTIFY, .val_handle = &eventHandle}; - characteristicDefinition[1] = {.uuid = reinterpret_cast<ble_uuid_t*>(&msStatusCharUuid), + characteristicDefinition[1] = {.uuid = &msStatusCharUuid.u, .access_cb = MusicCallback, .arg = this, .flags = BLE_GATT_CHR_F_WRITE | BLE_GATT_CHR_F_READ}; - characteristicDefinition[2] = {.uuid = reinterpret_cast<ble_uuid_t*>(&msTrackCharUuid), + characteristicDefinition[2] = {.uuid = &msTrackCharUuid.u, .access_cb = MusicCallback, .arg = this, .flags = BLE_GATT_CHR_F_WRITE | BLE_GATT_CHR_F_READ}; - characteristicDefinition[3] = {.uuid = reinterpret_cast<ble_uuid_t*>(&msArtistCharUuid), + characteristicDefinition[3] = {.uuid = &msArtistCharUuid.u, .access_cb = MusicCallback, .arg = this, .flags = BLE_GATT_CHR_F_WRITE | BLE_GATT_CHR_F_READ}; - characteristicDefinition[4] = {.uuid = reinterpret_cast<ble_uuid_t*>(&msAlbumCharUuid), + characteristicDefinition[4] = {.uuid = &msAlbumCharUuid.u, .access_cb = MusicCallback, .arg = this, .flags = BLE_GATT_CHR_F_WRITE | BLE_GATT_CHR_F_READ}; - characteristicDefinition[5] = {.uuid = reinterpret_cast<ble_uuid_t*>(&msPositionCharUuid), + characteristicDefinition[5] = {.uuid = &msPositionCharUuid.u, .access_cb = MusicCallback, .arg = this, .flags = BLE_GATT_CHR_F_WRITE | BLE_GATT_CHR_F_READ}; - characteristicDefinition[6] = {.uuid = reinterpret_cast<ble_uuid_t*>(&msTotalLengthCharUuid), + characteristicDefinition[6] = {.uuid = &msTotalLengthCharUuid.u, .access_cb = MusicCallback, .arg = this, .flags = BLE_GATT_CHR_F_WRITE | BLE_GATT_CHR_F_READ}; - characteristicDefinition[7] = {.uuid = reinterpret_cast<ble_uuid_t*>(&msTotalLengthCharUuid), + characteristicDefinition[7] = {.uuid = &msTotalLengthCharUuid.u, .access_cb = MusicCallback, .arg = this, .flags = BLE_GATT_CHR_F_WRITE | BLE_GATT_CHR_F_READ}; - characteristicDefinition[8] = {.uuid = reinterpret_cast<ble_uuid_t*>(&msTrackNumberCharUuid), + characteristicDefinition[8] = {.uuid = &msTrackNumberCharUuid.u, .access_cb = MusicCallback, .arg = this, .flags = BLE_GATT_CHR_F_WRITE | BLE_GATT_CHR_F_READ}; - characteristicDefinition[9] = {.uuid = reinterpret_cast<ble_uuid_t*>(&msTrackTotalCharUuid), + characteristicDefinition[9] = {.uuid = &msTrackTotalCharUuid.u, .access_cb = MusicCallback, .arg = this, .flags = BLE_GATT_CHR_F_WRITE | BLE_GATT_CHR_F_READ}; - characteristicDefinition[10] = {.uuid = reinterpret_cast<ble_uuid_t*>(&msPlaybackSpeedCharUuid), + characteristicDefinition[10] = {.uuid = &msPlaybackSpeedCharUuid.u, .access_cb = MusicCallback, .arg = this, .flags = BLE_GATT_CHR_F_WRITE | BLE_GATT_CHR_F_READ}; - characteristicDefinition[11] = {.uuid = reinterpret_cast<ble_uuid_t*>(&msRepeatCharUuid), + characteristicDefinition[11] = {.uuid = &msRepeatCharUuid.u, .access_cb = MusicCallback, .arg = this, .flags = BLE_GATT_CHR_F_WRITE | BLE_GATT_CHR_F_READ}; - characteristicDefinition[12] = {.uuid = reinterpret_cast<ble_uuid_t*>(&msShuffleCharUuid), + characteristicDefinition[12] = {.uuid = &msShuffleCharUuid.u, .access_cb = MusicCallback, .arg = this, .flags = BLE_GATT_CHR_F_WRITE | BLE_GATT_CHR_F_READ}; characteristicDefinition[13] = {0}; serviceDefinition[0] = { - .type = BLE_GATT_SVC_TYPE_PRIMARY, .uuid = reinterpret_cast<ble_uuid_t*>(&msUuid), .characteristics = characteristicDefinition}; + .type = BLE_GATT_SVC_TYPE_PRIMARY, .uuid = &msUuid.u, .characteristics = characteristicDefinition}; serviceDefinition[1] = {0}; artistName = "Waiting for"; @@ -109,27 +109,27 @@ int Pinetime::Controllers::MusicService::OnCommand(uint16_t conn_handle, uint16_ data[notifSize] = '\0'; os_mbuf_copydata(ctxt->om, 0, notifSize, data); char* s = &data[0]; - if (ble_uuid_cmp(ctxt->chr->uuid, reinterpret_cast<ble_uuid_t*>(&msArtistCharUuid)) == 0) { + if (ble_uuid_cmp(ctxt->chr->uuid, &msArtistCharUuid.u) == 0) { artistName = s; - } else if (ble_uuid_cmp(ctxt->chr->uuid, reinterpret_cast<ble_uuid_t*>(&msTrackCharUuid)) == 0) { + } else if (ble_uuid_cmp(ctxt->chr->uuid, &msTrackCharUuid.u) == 0) { trackName = s; - } else if (ble_uuid_cmp(ctxt->chr->uuid, reinterpret_cast<ble_uuid_t*>(&msAlbumCharUuid)) == 0) { + } else if (ble_uuid_cmp(ctxt->chr->uuid, &msAlbumCharUuid.u) == 0) { albumName = s; - } else if (ble_uuid_cmp(ctxt->chr->uuid, reinterpret_cast<ble_uuid_t*>(&msStatusCharUuid)) == 0) { + } else if (ble_uuid_cmp(ctxt->chr->uuid, &msStatusCharUuid.u) == 0) { playing = s[0]; - } else if (ble_uuid_cmp(ctxt->chr->uuid, reinterpret_cast<ble_uuid_t*>(&msRepeatCharUuid)) == 0) { + } else if (ble_uuid_cmp(ctxt->chr->uuid, &msRepeatCharUuid.u) == 0) { repeat = s[0]; - } else if (ble_uuid_cmp(ctxt->chr->uuid, reinterpret_cast<ble_uuid_t*>(&msShuffleCharUuid)) == 0) { + } else if (ble_uuid_cmp(ctxt->chr->uuid, &msShuffleCharUuid.u) == 0) { shuffle = s[0]; - } else if (ble_uuid_cmp(ctxt->chr->uuid, reinterpret_cast<ble_uuid_t*>(&msPositionCharUuid)) == 0) { + } else if (ble_uuid_cmp(ctxt->chr->uuid, &msPositionCharUuid.u) == 0) { trackProgress = (s[0] << 24) | (s[1] << 16) | (s[2] << 8) | s[3]; - } else if (ble_uuid_cmp(ctxt->chr->uuid, reinterpret_cast<ble_uuid_t*>(&msTotalLengthCharUuid)) == 0) { + } else if (ble_uuid_cmp(ctxt->chr->uuid, &msTotalLengthCharUuid.u) == 0) { trackLength = (s[0] << 24) | (s[1] << 16) | (s[2] << 8) | s[3]; - } else if (ble_uuid_cmp(ctxt->chr->uuid, reinterpret_cast<ble_uuid_t*>(&msTrackNumberCharUuid)) == 0) { + } else if (ble_uuid_cmp(ctxt->chr->uuid, &msTrackNumberCharUuid.u) == 0) { trackNumber = (s[0] << 24) | (s[1] << 16) | (s[2] << 8) | s[3]; - } else if (ble_uuid_cmp(ctxt->chr->uuid, reinterpret_cast<ble_uuid_t*>(&msTrackTotalCharUuid)) == 0) { + } else if (ble_uuid_cmp(ctxt->chr->uuid, &msTrackTotalCharUuid.u) == 0) { tracksTotal = (s[0] << 24) | (s[1] << 16) | (s[2] << 8) | s[3]; - } else if (ble_uuid_cmp(ctxt->chr->uuid, reinterpret_cast<ble_uuid_t*>(&msPlaybackSpeedCharUuid)) == 0) { + } else if (ble_uuid_cmp(ctxt->chr->uuid, &msPlaybackSpeedCharUuid.u) == 0) { playbackSpeed = static_cast<float>(((s[0] << 24) | (s[1] << 16) | (s[2] << 8) | s[3])) / 100.0f; } } @@ -174,4 +174,4 @@ void Pinetime::Controllers::MusicService::event(char event) { } ble_gattc_notify_custom(connectionHandle, eventHandle, om); -} \ No newline at end of file +} From 4217a8cb650048252b6d294c9358a0c8de3b16f0 Mon Sep 17 00:00:00 2001 From: Jonathan Vander Mey <jonathan@vandermey.ca> Date: Sat, 12 Jun 2021 18:58:53 -0400 Subject: [PATCH 42/58] Make MusicService UUID objects static constexpr --- src/components/ble/MusicService.cpp | 31 +++++++++++++++++++++++++++++ src/components/ble/MusicService.h | 22 -------------------- 2 files changed, 31 insertions(+), 22 deletions(-) diff --git a/src/components/ble/MusicService.cpp b/src/components/ble/MusicService.cpp index 1c7d93a6..5dfea503 100644 --- a/src/components/ble/MusicService.cpp +++ b/src/components/ble/MusicService.cpp @@ -18,6 +18,37 @@ #include "MusicService.h" #include "systemtask/SystemTask.h" +namespace { + // 0000yyxx-78fc-48fe-8e23-433b3a1942d0 + constexpr ble_uuid128_t CharUuid(uint8_t x, uint8_t y) { + return ble_uuid128_t{ + .u = {.type = BLE_UUID_TYPE_128}, + .value = { 0xd0, 0x42, 0x19, 0x3a, 0x3b, 0x43, 0x23, 0x8e, 0xfe, 0x48, 0xfc, 0x78, x, y, 0x00, 0x00 } + }; + } + + // 00000000-78fc-48fe-8e23-433b3a1942d0 + constexpr ble_uuid128_t BaseUuid() { + return CharUuid(0x00, 0x00); + } + + constexpr ble_uuid128_t msUuid {BaseUuid()}; + + constexpr ble_uuid128_t msEventCharUuid {CharUuid(0x01, 0x00)}; + constexpr ble_uuid128_t msStatusCharUuid {CharUuid(0x02, 0x00)}; + constexpr ble_uuid128_t msArtistCharUuid {CharUuid(0x03, 0x00)}; + constexpr ble_uuid128_t msTrackCharUuid {CharUuid(0x04, 0x00)}; + constexpr ble_uuid128_t msAlbumCharUuid {CharUuid(0x05, 0x00)}; + constexpr ble_uuid128_t msPositionCharUuid {CharUuid(0x06, 0x00)}; + constexpr ble_uuid128_t msTotalLengthCharUuid {CharUuid(0x07, 0x00)}; + constexpr ble_uuid128_t msTrackNumberCharUuid {CharUuid(0x08, 0x00)}; + constexpr ble_uuid128_t msTrackTotalCharUuid {CharUuid(0x09, 0x00)}; + constexpr ble_uuid128_t msPlaybackSpeedCharUuid {CharUuid(0x0a, 0x00)}; + constexpr ble_uuid128_t msRepeatCharUuid {CharUuid(0x0b, 0x00)}; + constexpr ble_uuid128_t msShuffleCharUuid {CharUuid(0x0c, 0x00)}; + +} + int MusicCallback(uint16_t conn_handle, uint16_t attr_handle, struct ble_gatt_access_ctxt* ctxt, void* arg) { return static_cast<Pinetime::Controllers::MusicService*>(arg)->OnCommand(conn_handle, attr_handle, ctxt); } diff --git a/src/components/ble/MusicService.h b/src/components/ble/MusicService.h index 0b5a7464..a611c51d 100644 --- a/src/components/ble/MusicService.h +++ b/src/components/ble/MusicService.h @@ -26,18 +26,11 @@ #undef max #undef min -// 00000000-78fc-48fe-8e23-433b3a1942d0 -#define MUSIC_SERVICE_UUID_BASE \ - { 0xd0, 0x42, 0x19, 0x3a, 0x3b, 0x43, 0x23, 0x8e, 0xfe, 0x48, 0xfc, 0x78, 0x00, 0x00, 0x00, 0x00 } -#define MUSIC_SERVICE_CHAR_UUID(x, y) \ - { 0xd0, 0x42, 0x19, 0x3a, 0x3b, 0x43, 0x23, 0x8e, 0xfe, 0x48, 0xfc, 0x78, x, y, 0x00, 0x00 } - namespace Pinetime { namespace System { class SystemTask; } namespace Controllers { - class MusicService { public: explicit MusicService(Pinetime::System::SystemTask& system); @@ -73,21 +66,6 @@ namespace Pinetime { enum MusicStatus { NotPlaying = 0x00, Playing = 0x01 }; private: - ble_uuid128_t msUuid {.u = {.type = BLE_UUID_TYPE_128}, .value = MUSIC_SERVICE_UUID_BASE}; - - ble_uuid128_t msEventCharUuid {.u = {.type = BLE_UUID_TYPE_128}, .value = MUSIC_SERVICE_CHAR_UUID(0x01, 0x00)}; - ble_uuid128_t msStatusCharUuid {.u = {.type = BLE_UUID_TYPE_128}, .value = MUSIC_SERVICE_CHAR_UUID(0x02, 0x00)}; - ble_uuid128_t msArtistCharUuid {.u = {.type = BLE_UUID_TYPE_128}, .value = MUSIC_SERVICE_CHAR_UUID(0x03, 0x00)}; - ble_uuid128_t msTrackCharUuid {.u = {.type = BLE_UUID_TYPE_128}, .value = MUSIC_SERVICE_CHAR_UUID(0x04, 0x00)}; - ble_uuid128_t msAlbumCharUuid {.u = {.type = BLE_UUID_TYPE_128}, .value = MUSIC_SERVICE_CHAR_UUID(0x05, 0x00)}; - ble_uuid128_t msPositionCharUuid {.u = {.type = BLE_UUID_TYPE_128}, .value = MUSIC_SERVICE_CHAR_UUID(0x06, 0x00)}; - ble_uuid128_t msTotalLengthCharUuid {.u = {.type = BLE_UUID_TYPE_128}, .value = MUSIC_SERVICE_CHAR_UUID(0x07, 0x00)}; - ble_uuid128_t msTrackNumberCharUuid {.u = {.type = BLE_UUID_TYPE_128}, .value = MUSIC_SERVICE_CHAR_UUID(0x08, 0x00)}; - ble_uuid128_t msTrackTotalCharUuid {.u = {.type = BLE_UUID_TYPE_128}, .value = MUSIC_SERVICE_CHAR_UUID(0x09, 0x00)}; - ble_uuid128_t msPlaybackSpeedCharUuid {.u = {.type = BLE_UUID_TYPE_128}, .value = MUSIC_SERVICE_CHAR_UUID(0x0a, 0x00)}; - ble_uuid128_t msRepeatCharUuid {.u = {.type = BLE_UUID_TYPE_128}, .value = MUSIC_SERVICE_CHAR_UUID(0x0b, 0x00)}; - ble_uuid128_t msShuffleCharUuid {.u = {.type = BLE_UUID_TYPE_128}, .value = MUSIC_SERVICE_CHAR_UUID(0x0c, 0x00)}; - struct ble_gatt_chr_def characteristicDefinition[14]; struct ble_gatt_svc_def serviceDefinition[2]; From d13b0a7ec54e9149b353563bef70f4ecee92cc3f Mon Sep 17 00:00:00 2001 From: Jonathan Vander Mey <jonathan@vandermey.ca> Date: Sat, 12 Jun 2021 18:59:14 -0400 Subject: [PATCH 43/58] Move local-only function into anonymous namespace --- src/components/ble/MusicService.cpp | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/src/components/ble/MusicService.cpp b/src/components/ble/MusicService.cpp index 5dfea503..4d7e950f 100644 --- a/src/components/ble/MusicService.cpp +++ b/src/components/ble/MusicService.cpp @@ -47,10 +47,9 @@ namespace { constexpr ble_uuid128_t msRepeatCharUuid {CharUuid(0x0b, 0x00)}; constexpr ble_uuid128_t msShuffleCharUuid {CharUuid(0x0c, 0x00)}; -} - -int MusicCallback(uint16_t conn_handle, uint16_t attr_handle, struct ble_gatt_access_ctxt* ctxt, void* arg) { - return static_cast<Pinetime::Controllers::MusicService*>(arg)->OnCommand(conn_handle, attr_handle, ctxt); + int MusicCallback(uint16_t conn_handle, uint16_t attr_handle, struct ble_gatt_access_ctxt* ctxt, void* arg) { + return static_cast<Pinetime::Controllers::MusicService*>(arg)->OnCommand(conn_handle, attr_handle, ctxt); + } } Pinetime::Controllers::MusicService::MusicService(Pinetime::System::SystemTask& system) : m_system(system) { From 8031cd1b4044823fb243b7ba2b2785de2a877fad Mon Sep 17 00:00:00 2001 From: Jonathan Vander Mey <jonathan@vandermey.ca> Date: Sat, 12 Jun 2021 19:04:13 -0400 Subject: [PATCH 44/58] Inititialize members in class declaration Also added initializers for previously unintialized members. --- src/components/ble/MusicService.cpp | 10 ---------- src/components/ble/MusicService.h | 24 ++++++++++++------------ 2 files changed, 12 insertions(+), 22 deletions(-) diff --git a/src/components/ble/MusicService.cpp b/src/components/ble/MusicService.cpp index 4d7e950f..74fe9522 100644 --- a/src/components/ble/MusicService.cpp +++ b/src/components/ble/MusicService.cpp @@ -111,16 +111,6 @@ Pinetime::Controllers::MusicService::MusicService(Pinetime::System::SystemTask& serviceDefinition[0] = { .type = BLE_GATT_SVC_TYPE_PRIMARY, .uuid = &msUuid.u, .characteristics = characteristicDefinition}; serviceDefinition[1] = {0}; - - artistName = "Waiting for"; - albumName = ""; - trackName = "track information.."; - playing = false; - repeat = false; - shuffle = false; - playbackSpeed = 1.0f; - trackProgress = 0; - trackLength = 0; } void Pinetime::Controllers::MusicService::Init() { diff --git a/src/components/ble/MusicService.h b/src/components/ble/MusicService.h index a611c51d..1ad9a420 100644 --- a/src/components/ble/MusicService.h +++ b/src/components/ble/MusicService.h @@ -69,23 +69,23 @@ namespace Pinetime { struct ble_gatt_chr_def characteristicDefinition[14]; struct ble_gatt_svc_def serviceDefinition[2]; - uint16_t eventHandle; + uint16_t eventHandle {}; - std::string artistName; - std::string albumName; - std::string trackName; + std::string artistName {"Waiting for"}; + std::string albumName {}; + std::string trackName {"track information.."}; - bool playing; + bool playing {false}; - int trackProgress; - int trackLength; - int trackNumber; - int tracksTotal; + int trackProgress {0}; + int trackLength {0}; + int trackNumber {}; + int tracksTotal {}; - float playbackSpeed; + float playbackSpeed {1.0f}; - bool repeat; - bool shuffle; + bool repeat {false}; + bool shuffle {false}; Pinetime::System::SystemTask& m_system; }; From 217f16d18976a6304e411c00f2ccd72f4bd831a7 Mon Sep 17 00:00:00 2001 From: Riku Isokoski <riksu9000@gmail.com> Date: Thu, 24 Jun 2021 13:33:15 +0300 Subject: [PATCH 45/58] Improve paddle game --- src/displayapp/screens/Paddle.cpp | 154 ++++++++---------------------- src/displayapp/screens/Paddle.h | 22 ++--- 2 files changed, 50 insertions(+), 126 deletions(-) diff --git a/src/displayapp/screens/Paddle.cpp b/src/displayapp/screens/Paddle.cpp index 161f175b..5a939ac7 100644 --- a/src/displayapp/screens/Paddle.cpp +++ b/src/displayapp/screens/Paddle.cpp @@ -4,98 +4,31 @@ using namespace Pinetime::Applications::Screens; -namespace { - const uint8_t paddle_map[] = { - 0xfc, 0xfe, 0xfc, 0xff, /*Color of index 0*/ - 0xff, 0xff, 0xff, 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, - }; - - const uint8_t ball_map[] = { - 0x6f, 0xed, 0x6f, 0xed, 0x6f, 0xed, 0x6f, 0xed, 0x6f, 0xed, 0x6f, 0xed, 0x6f, 0xed, 0x6f, 0xed, 0x6f, 0xed, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x6f, 0xed, 0x6f, 0xed, 0x6f, 0xed, 0x6f, 0xed, 0x6f, 0xed, 0x6f, 0xed, 0x6f, 0xed, - 0x6f, 0xed, 0x6f, 0xed, 0x6f, 0xed, 0x6f, 0xed, 0x6f, 0xed, 0x6f, 0xed, 0x6f, 0xed, 0x6f, 0xed, 0x6f, 0xed, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x6f, 0xed, 0x6f, 0xed, - 0x6f, 0xed, 0x6f, 0xed, 0x6f, 0xed, 0x6f, 0xed, 0x6f, 0xed, 0x6f, 0xed, 0x6f, 0xed, 0x6f, 0xed, 0x6f, 0xed, 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, 0x6f, 0xed, 0x6f, 0xed, 0x6f, 0xed, 0x6f, 0xed, 0x6f, 0xed, 0x6f, 0xed, 0x6f, 0xed, 0x6f, 0xed, 0x6f, 0xed, 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, 0x6f, 0xed, 0x6f, 0xed, 0x6f, 0xed, 0x6f, 0xed, 0x6f, 0xed, 0x6f, 0xed, 0x6f, 0xed, - 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, 0x6f, 0xed, 0x6f, 0xed, 0x6f, 0xed, 0x6f, 0xed, - 0x6f, 0xed, 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, 0xff, 0xff, 0xff, 0x6f, 0xed, - 0x6f, 0xed, 0x6f, 0xed, 0x6f, 0xed, 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, 0xff, - 0xff, 0xff, 0xff, 0xff, 0x6f, 0xed, 0x6f, 0xed, 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, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x6f, 0xed, 0x6f, 0xed, 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, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x6f, 0xed, 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, 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, - 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, 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, 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, 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, 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, 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, 0x6f, 0xed, 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, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x6f, 0xed, - 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, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0x6f, 0xed, 0x6f, 0xed, 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, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0x6f, 0xed, 0x6f, 0xed, 0x6f, 0xed, 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, 0xff, 0xff, 0xff, 0x6f, 0xed, 0x6f, 0xed, 0x6f, 0xed, 0x6f, 0xed, 0x6f, 0xed, 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, 0x6f, 0xed, 0x6f, 0xed, 0x6f, 0xed, 0x6f, 0xed, 0x6f, 0xed, 0x6f, 0xed, 0x6f, 0xed, - 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, 0x6f, 0xed, 0x6f, 0xed, 0x6f, 0xed, 0x6f, 0xed, 0x6f, 0xed, 0x6f, 0xed, - 0x6f, 0xed, 0x6f, 0xed, 0x6f, 0xed, 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, 0x6f, 0xed, 0x6f, 0xed, 0x6f, 0xed, 0x6f, 0xed, 0x6f, 0xed, - 0x6f, 0xed, 0x6f, 0xed, 0x6f, 0xed, 0x6f, 0xed, 0x6f, 0xed, 0x6f, 0xed, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x6f, 0xed, 0x6f, 0xed, 0x6f, 0xed, 0x6f, 0xed, - 0x6f, 0xed, 0x6f, 0xed, 0x6f, 0xed, 0x6f, 0xed, 0x6f, 0xed, 0x6f, 0xed, 0x6f, 0xed, 0x6f, 0xed, 0x6f, 0xed, 0x6f, 0xed, 0x6f, 0xed, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x6f, 0xed, 0x6f, 0xed, 0x6f, 0xed, 0x6f, 0xed, - 0x6f, 0xed, 0x6f, 0xed, 0x6f, 0xed, 0x6f, 0xed, - }; -} - Paddle::Paddle(Pinetime::Applications::DisplayApp* app, Pinetime::Components::LittleVgl& lvgl) : Screen(app), lvgl {lvgl} { app->SetTouchMode(DisplayApp::TouchModes::Polling); + background = lv_obj_create(lv_scr_act(), nullptr); + lv_obj_set_size(background, LV_HOR_RES + 1, LV_VER_RES); + lv_obj_set_pos(background, -1, 0); + lv_obj_set_style_local_radius(background, LV_BTN_PART_MAIN, LV_STATE_DEFAULT, 0); + lv_obj_set_style_local_bg_color(background, LV_BTN_PART_MAIN, LV_STATE_DEFAULT, LV_COLOR_BLACK); + lv_obj_set_style_local_border_color(background, LV_BTN_PART_MAIN, LV_STATE_DEFAULT, LV_COLOR_WHITE); + lv_obj_set_style_local_border_width(background, LV_BTN_PART_MAIN, LV_STATE_DEFAULT, 1); + points = lv_label_create(lv_scr_act(), nullptr); + lv_obj_set_style_local_text_font(points, LV_LABEL_PART_MAIN, LV_STATE_DEFAULT, &jetbrains_mono_42); lv_label_set_text(points, "0000"); - lv_obj_set_style_local_text_color(points, LV_LABEL_PART_MAIN, LV_STATE_DEFAULT, lv_color_hex(0x444444)); - lv_obj_align(points, lv_scr_act(), LV_ALIGN_IN_TOP_MID, 0, 0); + lv_obj_align(points, lv_scr_act(), LV_ALIGN_IN_TOP_MID, 0, 10); - paddle.header.always_zero = 0; - paddle.header.w = 4; - paddle.header.h = 60; - paddle.data_size = 68; - paddle.header.cf = LV_IMG_CF_INDEXED_1BIT; - paddle.data = paddle_map; - paddle_image = lv_img_create(lv_scr_act(), nullptr); - lv_img_set_src(paddle_image, &paddle); + paddle = lv_obj_create(lv_scr_act(), nullptr); + lv_obj_set_style_local_bg_color(paddle, LV_BTN_PART_MAIN, LV_STATE_DEFAULT, LV_COLOR_WHITE); + lv_obj_set_style_local_radius(paddle, LV_BTN_PART_MAIN, LV_STATE_DEFAULT, 0); + lv_obj_set_size(paddle, 4, 60); - ball.header.always_zero = 0; - ball.header.w = 24; - ball.header.h = 24; - ball.data_size = 24 * 24 * LV_COLOR_SIZE / 8; - ball.header.cf = LV_IMG_CF_TRUE_COLOR_CHROMA_KEYED; - ball.data = ball_map; - ball_image = lv_img_create(lv_scr_act(), nullptr); - lv_img_set_src(ball_image, &ball); + ball = lv_obj_create(lv_scr_act(), nullptr); + lv_obj_set_style_local_bg_color(ball, LV_BTN_PART_MAIN, LV_STATE_DEFAULT, LV_COLOR_WHITE); + lv_obj_set_style_local_radius(ball, LV_BTN_PART_MAIN, LV_STATE_DEFAULT, LV_RADIUS_CIRCLE); + lv_obj_set_size(ball, ballSize, ballSize); } Paddle::~Paddle() { @@ -105,41 +38,37 @@ Paddle::~Paddle() { } bool Paddle::Refresh() { - if ((counter++ % 5) == 0) { - counter = 0; + ballX += dx; + ballY += dy; - ballX += dx; - ballY += dy; + lv_obj_set_pos(ball, ballX, ballY); - lv_obj_set_pos(ball_image, ballX, ballY); + // checks if it has touched the sides (floor and ceiling) + if (ballY <= 1 || ballY >= LV_VER_RES - ballSize - 2) { + dy *= -1; + } - // checks if it has touched the sides (floor and ceiling) - if (ballY <= 0 || ballY >= 215) { - dy *= -1; - } + // checks if it has touched the side (left side) + if (ballX >= LV_VER_RES - ballSize - 1) { + dx *= -1; + } - // checks if it has touched the side (left side) - if (ballX >= 215) { - dx *= -1; - } - - // checks if it is in the position of the paddle - if (ballY <= (paddleBottomY + 16) && ballY >= (paddleTopY - 8)) { - if (ballX >= 0 && ballX < 4) { - lv_obj_set_pos(ball_image, 5, ballY); + // checks if it is in the position of the paddle + if (dx < 0 && ballX <= 4) { + if (ballX >= -ballSize / 4) { + if (ballY <= (paddlePos + 30 - ballSize / 4) && ballY >= (paddlePos - 30 - ballSize + ballSize / 4)) { dx *= -1; score++; } } - // checks if it has gone behind the paddle - else if (ballX <= -40) { - ballX = 107; - ballY = 107; + else if (ballX <= -ballSize * 2) { + ballX = (LV_HOR_RES - ballSize) / 2; + ballY = (LV_VER_RES - ballSize) / 2; score = 0; } - lv_label_set_text_fmt(points, "%04d", score); } + lv_label_set_text_fmt(points, "%04d", score); return running; } @@ -148,11 +77,8 @@ bool Paddle::OnTouchEvent(Pinetime::Applications::TouchEvents event) { } bool Paddle::OnTouchEvent(uint16_t x, uint16_t y) { - lv_obj_set_pos( - paddle_image, - 0, - y - 30); // sets the center paddle pos. (30px offset) with the the y_coordinate of the finger and defaults the x_coordinate to 0 - paddleTopY = y - 30; // refreshes the upper extreme of the paddle - paddleBottomY = y + 30; // refreshes the lower extreme of the paddle + // sets the center paddle pos. (30px offset) with the the y_coordinate of the finger + lv_obj_set_pos(paddle, 0, y - 30); + paddlePos = y; return true; } diff --git a/src/displayapp/screens/Paddle.h b/src/displayapp/screens/Paddle.h index e133244f..30ab8f94 100644 --- a/src/displayapp/screens/Paddle.h +++ b/src/displayapp/screens/Paddle.h @@ -24,24 +24,22 @@ namespace Pinetime { private: Pinetime::Components::LittleVgl& lvgl; - int paddleBottomY = 90; // bottom extreme of the paddle - int paddleTopY = 150; // top extreme of the paddle + const uint8_t ballSize = 16; - int ballX = 107; // Initial x_coordinate for the ball (12px offset from the center to counteract the ball's 24px size) - int ballY = 107; // Initial y_coordinate for the ball + uint16_t paddlePos = 30; // Paddle center - int dx = 2; // Velocity of the ball in the x_coordinate - int dy = 3; // Velocity of the ball in the y_coordinate + int16_t ballX = (LV_HOR_RES - ballSize) / 2; + int16_t ballY = (LV_VER_RES - ballSize) / 2; - int counter = 0; // init Frame refresh limit counter - int score = 0; + int8_t dx = 2; // Velocity of the ball in the x_coordinate + int8_t dy = 3; // Velocity of the ball in the y_coordinate - lv_img_dsc_t paddle; - lv_img_dsc_t ball; + uint16_t score = 0; lv_obj_t* points; - lv_obj_t* paddle_image; // pointer to paddle image - lv_obj_t* ball_image; // pointer to ball image + lv_obj_t* paddle; + lv_obj_t* ball; + lv_obj_t* background; }; } } From 94aefed98f1c7a70776863ce235db255affd1640 Mon Sep 17 00:00:00 2001 From: Riku Isokoski <riksu9000@gmail.com> Date: Sat, 3 Jul 2021 13:32:35 +0300 Subject: [PATCH 46/58] Condense firmware validation code --- src/displayapp/screens/FirmwareValidation.cpp | 31 ++++++------------- src/displayapp/screens/FirmwareValidation.h | 7 +---- 2 files changed, 10 insertions(+), 28 deletions(-) diff --git a/src/displayapp/screens/FirmwareValidation.cpp b/src/displayapp/screens/FirmwareValidation.cpp index ad37a3df..d9f162d4 100644 --- a/src/displayapp/screens/FirmwareValidation.cpp +++ b/src/displayapp/screens/FirmwareValidation.cpp @@ -16,30 +16,17 @@ namespace { FirmwareValidation::FirmwareValidation(Pinetime::Applications::DisplayApp* app, Pinetime::Controllers::FirmwareValidator& validator) : Screen {app}, validator {validator} { - labelVersionInfo = lv_label_create(lv_scr_act(), nullptr); - lv_obj_align(labelVersionInfo, nullptr, LV_ALIGN_IN_TOP_LEFT, 0, 0); - lv_label_set_text(labelVersionInfo, "Version : "); - lv_label_set_align(labelVersionInfo, LV_LABEL_ALIGN_LEFT); - - labelVersionValue = lv_label_create(lv_scr_act(), nullptr); - lv_obj_align(labelVersionValue, labelVersionInfo, LV_ALIGN_OUT_RIGHT_MID, 0, 0); - lv_label_set_recolor(labelVersionValue, true); - sprintf(version, "%ld.%ld.%ld", Version::Major(), Version::Minor(), Version::Patch()); - lv_label_set_text(labelVersionValue, version); - - labelShortRefInfo = lv_label_create(lv_scr_act(), nullptr); - lv_obj_align(labelShortRefInfo, nullptr, LV_ALIGN_IN_TOP_LEFT, 0, 25); - lv_label_set_text(labelShortRefInfo, "ShortRef : "); - lv_label_set_align(labelShortRefInfo, LV_LABEL_ALIGN_LEFT); - - labelShortRefValue = lv_label_create(lv_scr_act(), nullptr); - lv_obj_align(labelShortRefValue, labelShortRefInfo, LV_ALIGN_OUT_RIGHT_MID, 0, 0); - lv_label_set_recolor(labelShortRefValue, true); - sprintf(shortref, "%s", Version::GitCommitHash()); - lv_label_set_text(labelShortRefValue, shortref); + labelVersion = lv_label_create(lv_scr_act(), nullptr); + lv_label_set_text_fmt(labelVersion, "Version : %d.%d.%d\n" + "ShortRef : %s", + Version::Major(), + Version::Minor(), + Version::Patch(), + Version::GitCommitHash()); + lv_obj_align(labelVersion, nullptr, LV_ALIGN_IN_TOP_LEFT, 0, 0); labelIsValidated = lv_label_create(lv_scr_act(), nullptr); - lv_obj_align(labelIsValidated, nullptr, LV_ALIGN_IN_TOP_LEFT, 0, 50); + lv_obj_align(labelIsValidated, labelVersion, LV_ALIGN_OUT_BOTTOM_LEFT, 0, 0); lv_label_set_recolor(labelIsValidated, true); lv_label_set_long_mode(labelIsValidated, LV_LABEL_LONG_BREAK); lv_obj_set_width(labelIsValidated, 240); diff --git a/src/displayapp/screens/FirmwareValidation.h b/src/displayapp/screens/FirmwareValidation.h index 303c2154..1ef5ba0a 100644 --- a/src/displayapp/screens/FirmwareValidation.h +++ b/src/displayapp/screens/FirmwareValidation.h @@ -23,12 +23,7 @@ namespace Pinetime { private: Pinetime::Controllers::FirmwareValidator& validator; - lv_obj_t* labelVersionInfo; - lv_obj_t* labelVersionValue; - lv_obj_t* labelShortRefInfo; - lv_obj_t* labelShortRefValue; - char version[9]; - char shortref[9]; + lv_obj_t* labelVersion; lv_obj_t* labelIsValidated; lv_obj_t* buttonValidate; lv_obj_t* labelButtonValidate; From 3b0fcc2a73c81bc5e0da301fbbe95fdfd09339de Mon Sep 17 00:00:00 2001 From: Riku Isokoski <riksu9000@gmail.com> Date: Sat, 3 Jul 2021 13:44:12 +0300 Subject: [PATCH 47/58] clang-format --- src/displayapp/screens/FirmwareValidation.cpp | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/src/displayapp/screens/FirmwareValidation.cpp b/src/displayapp/screens/FirmwareValidation.cpp index d9f162d4..1d05be8d 100644 --- a/src/displayapp/screens/FirmwareValidation.cpp +++ b/src/displayapp/screens/FirmwareValidation.cpp @@ -17,12 +17,13 @@ namespace { FirmwareValidation::FirmwareValidation(Pinetime::Applications::DisplayApp* app, Pinetime::Controllers::FirmwareValidator& validator) : Screen {app}, validator {validator} { labelVersion = lv_label_create(lv_scr_act(), nullptr); - lv_label_set_text_fmt(labelVersion, "Version : %d.%d.%d\n" - "ShortRef : %s", - Version::Major(), - Version::Minor(), - Version::Patch(), - Version::GitCommitHash()); + lv_label_set_text_fmt(labelVersion, + "Version : %d.%d.%d\n" + "ShortRef : %s", + Version::Major(), + Version::Minor(), + Version::Patch(), + Version::GitCommitHash()); lv_obj_align(labelVersion, nullptr, LV_ALIGN_IN_TOP_LEFT, 0, 0); labelIsValidated = lv_label_create(lv_scr_act(), nullptr); From ab59b9b8301d95206a2f77a4e32e4f6552361a2e Mon Sep 17 00:00:00 2001 From: Avamander <avamander@gmail.com> Date: Sun, 4 Jul 2021 21:06:50 +0300 Subject: [PATCH 48/58] Whitespace and brace fixes (#456) * Brace style and whitespace fixes * Additional whitespace fixes --- src/components/battery/BatteryController.cpp | 3 +- src/displayapp/screens/Steps.cpp | 29 +++++++++----------- 2 files changed, 15 insertions(+), 17 deletions(-) diff --git a/src/components/battery/BatteryController.cpp b/src/components/battery/BatteryController.cpp index 02901dd8..76ad8cb3 100644 --- a/src/components/battery/BatteryController.cpp +++ b/src/components/battery/BatteryController.cpp @@ -22,8 +22,9 @@ void Battery::Update() { isCharging = !nrf_gpio_pin_read(chargingPin); isPowerPresent = !nrf_gpio_pin_read(powerPresentPin); - if (isReading) + if (isReading) { return; + } // Non blocking read samples = 0; isReading = true; diff --git a/src/displayapp/screens/Steps.cpp b/src/displayapp/screens/Steps.cpp index cc78813f..6aabd30e 100644 --- a/src/displayapp/screens/Steps.cpp +++ b/src/displayapp/screens/Steps.cpp @@ -6,19 +6,19 @@ using namespace Pinetime::Applications::Screens; Steps::Steps( - Pinetime::Applications::DisplayApp *app, + Pinetime::Applications::DisplayApp *app, Controllers::MotionController& motionController, - Controllers::Settings &settingsController) - : Screen(app), + Controllers::Settings &settingsController) + : Screen(app), motionController{motionController}, settingsController{settingsController} { stepsArc = lv_arc_create(lv_scr_act(), nullptr); - lv_obj_set_style_local_bg_opa(stepsArc, LV_ARC_PART_BG, LV_STATE_DEFAULT, LV_OPA_0); - lv_obj_set_style_local_border_width(stepsArc, LV_ARC_PART_BG, LV_STATE_DEFAULT, 2); - lv_obj_set_style_local_radius(stepsArc, LV_ARC_PART_BG, LV_STATE_DEFAULT, 0); - lv_obj_set_style_local_line_color(stepsArc, LV_ARC_PART_INDIC, LV_STATE_DEFAULT, lv_color_hex(0x0000FF)); + lv_obj_set_style_local_bg_opa(stepsArc, LV_ARC_PART_BG, LV_STATE_DEFAULT, LV_OPA_0); + lv_obj_set_style_local_border_width(stepsArc, LV_ARC_PART_BG, LV_STATE_DEFAULT, 2); + lv_obj_set_style_local_radius(stepsArc, LV_ARC_PART_BG, LV_STATE_DEFAULT, 0); + lv_obj_set_style_local_line_color(stepsArc, LV_ARC_PART_INDIC, LV_STATE_DEFAULT, lv_color_hex(0x0000FF)); lv_arc_set_end_angle(stepsArc, 200); lv_obj_set_size(stepsArc, 220, 220); lv_arc_set_range(stepsArc, 0, 500); @@ -36,7 +36,7 @@ Steps::Steps( lv_obj_t * lstepsL = lv_label_create(lv_scr_act(), nullptr); lv_obj_set_style_local_text_color(lstepsL, LV_LABEL_PART_MAIN, LV_STATE_DEFAULT, lv_color_hex(0x111111)); - lv_label_set_text_static(lstepsL, "Steps"); + lv_label_set_text_static(lstepsL, "Steps"); lv_obj_align(lstepsL, lSteps, LV_ALIGN_OUT_BOTTOM_MID, 0, 10); lv_obj_t * lstepsGoal = lv_label_create(lv_scr_act(), nullptr); @@ -45,12 +45,11 @@ Steps::Steps( lv_label_set_align(lstepsGoal, LV_LABEL_ALIGN_CENTER); lv_obj_align(lstepsGoal, lSteps, LV_ALIGN_OUT_BOTTOM_MID, 0, 60); - lv_obj_t * backgroundLabel = lv_label_create(lv_scr_act(), nullptr); + lv_obj_t* backgroundLabel = lv_label_create(lv_scr_act(), nullptr); lv_label_set_long_mode(backgroundLabel, LV_LABEL_LONG_CROP); lv_obj_set_size(backgroundLabel, 240, 240); lv_obj_set_pos(backgroundLabel, 0, 0); lv_label_set_text_static(backgroundLabel, ""); - } Steps::~Steps() { @@ -58,15 +57,13 @@ Steps::~Steps() { } bool Steps::Refresh() { - - stepsCount = motionController.NbSteps(); - lv_label_set_text_fmt(lSteps,"%li", stepsCount); + stepsCount = motionController.NbSteps(); + + lv_label_set_text_fmt(lSteps, "%li", stepsCount); lv_obj_align(lSteps, nullptr, LV_ALIGN_CENTER, 0, -20); - + lv_arc_set_value(stepsArc, int16_t(500 * stepsCount / settingsController.GetStepsGoal())); return running; } - - From 61a4642221fc9fcab6889221e7bf9c29778589f2 Mon Sep 17 00:00:00 2001 From: Riku Isokoski <riksu9000@gmail.com> Date: Sun, 4 Jul 2021 21:23:03 +0300 Subject: [PATCH 49/58] Improve stopwatch (#432) * Improve stopwatch more * Make sure sleep gets reenabled * Cleanup and clang-format --- src/displayapp/DisplayApp.cpp | 2 +- src/displayapp/screens/StopWatch.cpp | 195 ++++++++++++--------------- src/displayapp/screens/StopWatch.h | 16 ++- 3 files changed, 94 insertions(+), 119 deletions(-) diff --git a/src/displayapp/DisplayApp.cpp b/src/displayapp/DisplayApp.cpp index de93428c..04ebd2d3 100644 --- a/src/displayapp/DisplayApp.cpp +++ b/src/displayapp/DisplayApp.cpp @@ -337,7 +337,7 @@ void DisplayApp::LoadApp(Apps app, DisplayApp::FullRefreshDirections direction) ReturnApp(Apps::Clock, FullRefreshDirections::Down, TouchEvents::None); break; case Apps::StopWatch: - currentScreen = std::make_unique<Screens::StopWatch>(this); + currentScreen = std::make_unique<Screens::StopWatch>(this, *systemTask); break; case Apps::Twos: currentScreen = std::make_unique<Screens::Twos>(this); diff --git a/src/displayapp/screens/StopWatch.cpp b/src/displayapp/screens/StopWatch.cpp index 7c128d1b..f4db5d6e 100644 --- a/src/displayapp/screens/StopWatch.cpp +++ b/src/displayapp/screens/StopWatch.cpp @@ -45,17 +45,16 @@ static void stop_lap_event_handler(lv_obj_t* obj, lv_event_t event) { stopWatch->stopLapBtnEventHandler(event); } -StopWatch::StopWatch(DisplayApp* app) +StopWatch::StopWatch(DisplayApp* app, System::SystemTask& systemTask) : Screen(app), + systemTask {systemTask}, running {true}, currentState {States::Init}, - currentEvent {Events::Stop}, startTime {}, oldTimeElapsed {}, currentTimeSeparated {}, lapBuffer {}, - lapNr {}, - lapPressed {false} { + lapNr {} { time = lv_label_create(lv_scr_act(), nullptr); lv_obj_set_style_local_text_font(time, LV_LABEL_PART_MAIN, LV_STATE_DEFAULT, &jetbrains_mono_76); @@ -105,128 +104,100 @@ StopWatch::StopWatch(DisplayApp* app) } StopWatch::~StopWatch() { + systemTask.PushMessage(Pinetime::System::Messages::EnableSleeping); lv_obj_clean(lv_scr_act()); } +void StopWatch::reset() { + currentState = States::Init; + oldTimeElapsed = 0; + lv_obj_set_style_local_text_color(time, LV_LABEL_PART_MAIN, LV_STATE_DEFAULT, LV_COLOR_GRAY); + lv_obj_set_style_local_text_color(msecTime, LV_LABEL_PART_MAIN, LV_STATE_DEFAULT, LV_COLOR_GRAY); + + lv_label_set_text(time, "00:00"); + lv_label_set_text(msecTime, "00"); + + lv_label_set_text(lapOneText, ""); + lv_label_set_text(lapTwoText, ""); + lapBuffer.clearBuffer(); + lapNr = 0; + lv_obj_set_state(btnStopLap, LV_STATE_DISABLED); + lv_obj_set_state(txtStopLap, LV_STATE_DISABLED); +} + +void StopWatch::start() { + lv_obj_set_state(btnStopLap, LV_STATE_DEFAULT); + lv_obj_set_state(txtStopLap, LV_STATE_DEFAULT); + lv_obj_set_style_local_text_color(time, LV_LABEL_PART_MAIN, LV_STATE_DEFAULT, LV_COLOR_GREEN); + lv_obj_set_style_local_text_color(msecTime, LV_LABEL_PART_MAIN, LV_STATE_DEFAULT, LV_COLOR_GREEN); + lv_label_set_text(txtPlayPause, Symbols::pause); + lv_label_set_text(txtStopLap, Symbols::lapsFlag); + startTime = xTaskGetTickCount(); + currentState = States::Running; + systemTask.PushMessage(Pinetime::System::Messages::DisableSleeping); +} + +void StopWatch::pause() { + startTime = 0; + // Store the current time elapsed in cache + oldTimeElapsed += timeElapsed; + currentState = States::Halted; + lv_label_set_text(txtPlayPause, Symbols::play); + lv_label_set_text(txtStopLap, Symbols::stop); + lv_obj_set_style_local_text_color(time, LV_LABEL_PART_MAIN, LV_STATE_DEFAULT, LV_COLOR_YELLOW); + lv_obj_set_style_local_text_color(msecTime, LV_LABEL_PART_MAIN, LV_STATE_DEFAULT, LV_COLOR_YELLOW); + systemTask.PushMessage(Pinetime::System::Messages::EnableSleeping); +} + bool StopWatch::Refresh() { - // @startuml CHIP8_state - // State "Init" as init - // State "Running" as run - // State "Halted" as halt + if (currentState == States::Running) { + timeElapsed = calculateDelta(startTime, xTaskGetTickCount()); + currentTimeSeparated = convertTicksToTimeSegments((oldTimeElapsed + timeElapsed)); - // [*] --> init - // init -> run : press play - // run -> run : press lap - // run --> halt : press pause - // halt --> run : press play - // halt --> init : press stop - // @enduml - // Copy paste the above plantuml text to visualize the state diagram - switch (currentState) { - // Init state when an user first opens the app - // and when a stop/reset button is pressed - case States::Init: { - // The initial default value - lv_label_set_text(time, "00:00"); - lv_label_set_text(msecTime, "00"); - - lv_label_set_text(lapOneText, ""); - lv_label_set_text(lapTwoText, ""); - lapBuffer.clearBuffer(); - lapNr = 0; - - if (currentEvent == Events::Play) { - lv_obj_set_state(btnStopLap, LV_STATE_DEFAULT); - lv_obj_set_state(txtStopLap, LV_STATE_DEFAULT); - - startTime = xTaskGetTickCount(); - currentState = States::Running; - } else { - lv_obj_set_state(btnStopLap, LV_STATE_DISABLED); - lv_obj_set_state(txtStopLap, LV_STATE_DISABLED); - } - break; - } - case States::Running: { - lv_label_set_text(txtPlayPause, Symbols::pause); - lv_label_set_text(txtStopLap, Symbols::lapsFlag); - - const auto timeElapsed = calculateDelta(startTime, xTaskGetTickCount()); - currentTimeSeparated = convertTicksToTimeSegments((oldTimeElapsed + timeElapsed)); - - lv_label_set_text_fmt(time, "%02d:%02d", currentTimeSeparated.mins, currentTimeSeparated.secs); - lv_label_set_text_fmt(msecTime, "%02d", currentTimeSeparated.hundredths); - - if (lapPressed == true) { - if (lapBuffer[1]) { - lv_label_set_text_fmt( - lapOneText, "#%2d %2d:%02d.%02d", (lapNr - 1), lapBuffer[1]->mins, lapBuffer[1]->secs, lapBuffer[1]->hundredths); - } - if (lapBuffer[0]) { - lv_label_set_text_fmt( - lapTwoText, "#%2d %2d:%02d.%02d", lapNr, lapBuffer[0]->mins, lapBuffer[0]->secs, lapBuffer[0]->hundredths); - } - // Reset the bool to avoid setting the text in each cycle until there is a change - lapPressed = false; - } - - if (currentEvent == Events::Pause) { - // Reset the start time - startTime = 0; - // Store the current time elapsed in cache - oldTimeElapsed += timeElapsed; - currentState = States::Halted; - lv_obj_set_style_local_text_color(time, LV_LABEL_PART_MAIN, LV_STATE_DEFAULT, LV_COLOR_YELLOW); - lv_obj_set_style_local_text_color(msecTime, LV_LABEL_PART_MAIN, LV_STATE_DEFAULT, LV_COLOR_YELLOW); - } else { - lv_obj_set_style_local_text_color(time, LV_LABEL_PART_MAIN, LV_STATE_DEFAULT, LV_COLOR_GREEN); - lv_obj_set_style_local_text_color(msecTime, LV_LABEL_PART_MAIN, LV_STATE_DEFAULT, LV_COLOR_GREEN); - } - break; - } - case States::Halted: { - lv_label_set_text(txtPlayPause, Symbols::play); - lv_label_set_text(txtStopLap, Symbols::stop); - - if (currentEvent == Events::Play) { - startTime = xTaskGetTickCount(); - currentState = States::Running; - } - if (currentEvent == Events::Stop) { - currentState = States::Init; - oldTimeElapsed = 0; - lv_obj_set_style_local_text_color(time, LV_LABEL_PART_MAIN, LV_STATE_DEFAULT, LV_COLOR_GRAY); - lv_obj_set_style_local_text_color(msecTime, LV_LABEL_PART_MAIN, LV_STATE_DEFAULT, LV_COLOR_GRAY); - } - break; - } + lv_label_set_text_fmt(time, "%02d:%02d", currentTimeSeparated.mins, currentTimeSeparated.secs); + lv_label_set_text_fmt(msecTime, "%02d", currentTimeSeparated.hundredths); } return running; } void StopWatch::playPauseBtnEventHandler(lv_event_t event) { - if (event == LV_EVENT_CLICKED) { - if (currentState == States::Init) { - currentEvent = Events::Play; - } else { - // Simple Toggle for play/pause - currentEvent = (currentEvent == Events::Play ? Events::Pause : Events::Play); - } + if (event != LV_EVENT_PRESSED) { + return; + } + if (currentState == States::Init) { + start(); + } else if (currentState == States::Running) { + pause(); + } else if (currentState == States::Halted) { + start(); } } void StopWatch::stopLapBtnEventHandler(lv_event_t event) { - if (event == LV_EVENT_CLICKED) { - // If running, then this button is used to save laps - if (currentState == States::Running) { - lapBuffer.addLaps(currentTimeSeparated); - lapNr++; - lapPressed = true; - - } else if (currentState == States::Halted) { - currentEvent = Events::Stop; - } else { - // Not possible to reach here. Do nothing. + if (event != LV_EVENT_PRESSED) { + return; + } + // If running, then this button is used to save laps + if (currentState == States::Running) { + lapBuffer.addLaps(currentTimeSeparated); + lapNr++; + if (lapBuffer[1]) { + lv_label_set_text_fmt( + lapOneText, "#%2d %2d:%02d.%02d", (lapNr - 1), lapBuffer[1]->mins, lapBuffer[1]->secs, lapBuffer[1]->hundredths); } + if (lapBuffer[0]) { + lv_label_set_text_fmt(lapTwoText, "#%2d %2d:%02d.%02d", lapNr, lapBuffer[0]->mins, lapBuffer[0]->secs, lapBuffer[0]->hundredths); + } + } else if (currentState == States::Halted) { + reset(); } } + +bool StopWatch::OnButtonPushed() { + if (currentState == States::Running) { + pause(); + } else { + running = false; + } + return true; +} diff --git a/src/displayapp/screens/StopWatch.h b/src/displayapp/screens/StopWatch.h index ff604361..e132f158 100644 --- a/src/displayapp/screens/StopWatch.h +++ b/src/displayapp/screens/StopWatch.h @@ -8,13 +8,12 @@ #include "portmacro_cmsis.h" #include <array> +#include "systemtask/SystemTask.h" namespace Pinetime::Applications::Screens { enum class States { Init, Running, Halted }; - enum class Events { Play, Pause, Stop }; - struct TimeSeparated_t { int mins; int secs; @@ -63,23 +62,28 @@ namespace Pinetime::Applications::Screens { class StopWatch : public Screen { public: - StopWatch(DisplayApp* app); + StopWatch(DisplayApp* app, System::SystemTask& systemTask); ~StopWatch() override; bool Refresh() override; void playPauseBtnEventHandler(lv_event_t event); void stopLapBtnEventHandler(lv_event_t event); + bool OnButtonPushed() override; + + void reset(); + void start(); + void pause(); private: + Pinetime::System::SystemTask& systemTask; + TickType_t timeElapsed; bool running; States currentState; - Events currentEvent; TickType_t startTime; TickType_t oldTimeElapsed; TimeSeparated_t currentTimeSeparated; // Holds Mins, Secs, millisecs LapTextBuffer_t<2> lapBuffer; - int lapNr; - bool lapPressed; + int lapNr = 0; lv_obj_t *time, *msecTime, *btnPlayPause, *btnStopLap, *txtPlayPause, *txtStopLap; lv_obj_t *lapOneText, *lapTwoText; }; From 99e26bdd4cbafcdeec815ce6435f1830f1d74816 Mon Sep 17 00:00:00 2001 From: Riku Isokoski <riksu9000@gmail.com> Date: Wed, 7 Jul 2021 15:47:47 +0300 Subject: [PATCH 50/58] LVGL use system tick --- src/FreeRTOSConfig.h | 2 +- src/displayapp/screens/BatteryInfo.cpp | 38 ++----------------- src/displayapp/screens/BatteryInfo.h | 3 -- src/displayapp/screens/Tile.cpp | 2 +- .../screens/settings/QuickSettings.cpp | 2 +- src/libs/lv_conf.h | 8 ++-- src/main.cpp | 7 ---- 7 files changed, 11 insertions(+), 51 deletions(-) diff --git a/src/FreeRTOSConfig.h b/src/FreeRTOSConfig.h index 07c152dc..adbbc8f0 100644 --- a/src/FreeRTOSConfig.h +++ b/src/FreeRTOSConfig.h @@ -77,7 +77,7 @@ #define configENABLE_BACKWARD_COMPATIBILITY 1 /* Hook function related definitions. */ -#define configUSE_IDLE_HOOK 1 +#define configUSE_IDLE_HOOK 0 #define configUSE_TICK_HOOK 0 #define configCHECK_FOR_STACK_OVERFLOW 0 #define configUSE_MALLOC_FAILED_HOOK 0 diff --git a/src/displayapp/screens/BatteryInfo.cpp b/src/displayapp/screens/BatteryInfo.cpp index 87c8b4bb..5ea0b6ff 100644 --- a/src/displayapp/screens/BatteryInfo.cpp +++ b/src/displayapp/screens/BatteryInfo.cpp @@ -9,11 +9,6 @@ static void lv_update_task(struct _lv_task_t* task) { user_data->UpdateScreen(); } -static void lv_anim_task(struct _lv_task_t* task) { - auto user_data = static_cast<BatteryInfo*>(task->user_data); - user_data->UpdateAnim(); -} - BatteryInfo::BatteryInfo(Pinetime::Applications::DisplayApp* app, Pinetime::Controllers::Battery& batteryController) : Screen(app), batteryController {batteryController} { @@ -24,12 +19,12 @@ BatteryInfo::BatteryInfo(Pinetime::Applications::DisplayApp* app, Pinetime::Cont lv_obj_set_size(charging_bar, 200, 15); lv_bar_set_range(charging_bar, 0, 100); lv_obj_align(charging_bar, nullptr, LV_ALIGN_CENTER, 0, 10); - lv_bar_set_anim_time(charging_bar, 2000); + lv_bar_set_anim_time(charging_bar, 1000); lv_obj_set_style_local_radius(charging_bar, LV_BAR_PART_BG, LV_STATE_DEFAULT, LV_RADIUS_CIRCLE); lv_obj_set_style_local_bg_color(charging_bar, LV_BAR_PART_BG, LV_STATE_DEFAULT, lv_color_hex(0x222222)); lv_obj_set_style_local_bg_opa(charging_bar, LV_BAR_PART_BG, LV_STATE_DEFAULT, LV_OPA_100); lv_obj_set_style_local_bg_color(charging_bar, LV_BAR_PART_INDIC, LV_STATE_DEFAULT, lv_color_hex(0xFF0000)); - lv_bar_set_value(charging_bar, batteryPercent, LV_ANIM_OFF); + lv_bar_set_value(charging_bar, batteryPercent, LV_ANIM_ON); status = lv_label_create(lv_scr_act(), nullptr); lv_label_set_text_static(status, "Reading Battery status"); @@ -58,40 +53,15 @@ BatteryInfo::BatteryInfo(Pinetime::Applications::DisplayApp* app, Pinetime::Cont lv_obj_set_pos(backgroundLabel, 0, 0); lv_label_set_text_static(backgroundLabel, ""); - taskUpdate = lv_task_create(lv_update_task, 500000, LV_TASK_PRIO_LOW, this); - taskAnim = lv_task_create(lv_anim_task, 1000, LV_TASK_PRIO_LOW, this); + taskUpdate = lv_task_create(lv_update_task, 5000, LV_TASK_PRIO_LOW, this); UpdateScreen(); } BatteryInfo::~BatteryInfo() { lv_task_del(taskUpdate); - lv_task_del(taskAnim); lv_obj_clean(lv_scr_act()); } -void BatteryInfo::UpdateAnim() { - batteryPercent = batteryController.PercentRemaining(); - - if (batteryPercent >= 0) { - if (batteryController.IsCharging() and batteryPercent < 100) { - animation += 1; - if (animation >= 100) { - animation = 0; - } - - } else { - if (animation > batteryPercent) { - animation--; - } - if (animation < batteryPercent) { - animation++; - } - } - - lv_bar_set_value(charging_bar, animation, LV_ANIM_OFF); - } -} - void BatteryInfo::UpdateScreen() { batteryController.Update(); @@ -123,9 +93,9 @@ void BatteryInfo::UpdateScreen() { lv_obj_align(status, charging_bar, LV_ALIGN_OUT_BOTTOM_MID, 0, 20); lv_label_set_text_fmt(voltage, "%1i.%02i volts", batteryVoltage / 1000, batteryVoltage % 1000 / 10); + lv_bar_set_value(charging_bar, batteryPercent, LV_ANIM_ON); } bool BatteryInfo::Refresh() { - return running; } diff --git a/src/displayapp/screens/BatteryInfo.h b/src/displayapp/screens/BatteryInfo.h index 346dc571..32115938 100644 --- a/src/displayapp/screens/BatteryInfo.h +++ b/src/displayapp/screens/BatteryInfo.h @@ -22,7 +22,6 @@ namespace Pinetime { bool Refresh() override; void UpdateScreen(); - void UpdateAnim(); private: Pinetime::Controllers::Battery& batteryController; @@ -33,9 +32,7 @@ namespace Pinetime { lv_obj_t* status; lv_task_t* taskUpdate; - lv_task_t* taskAnim; - int8_t animation = 0; int8_t batteryPercent = -1; uint16_t batteryVoltage = 0; }; diff --git a/src/displayapp/screens/Tile.cpp b/src/displayapp/screens/Tile.cpp index ec36af38..3eb127cc 100644 --- a/src/displayapp/screens/Tile.cpp +++ b/src/displayapp/screens/Tile.cpp @@ -107,7 +107,7 @@ Tile::Tile(uint8_t screenID, lv_obj_set_pos(backgroundLabel, 0, 0); lv_label_set_text_static(backgroundLabel, ""); - taskUpdate = lv_task_create(lv_update_task, 500000, LV_TASK_PRIO_MID, this); + taskUpdate = lv_task_create(lv_update_task, 5000, LV_TASK_PRIO_MID, this); } Tile::~Tile() { diff --git a/src/displayapp/screens/settings/QuickSettings.cpp b/src/displayapp/screens/settings/QuickSettings.cpp index 5db7468c..acc2a27a 100644 --- a/src/displayapp/screens/settings/QuickSettings.cpp +++ b/src/displayapp/screens/settings/QuickSettings.cpp @@ -110,7 +110,7 @@ QuickSettings::QuickSettings(Pinetime::Applications::DisplayApp* app, lv_obj_set_pos(backgroundLabel, 0, 0); lv_label_set_text_static(backgroundLabel, ""); - taskUpdate = lv_task_create(lv_update_task, 500000, LV_TASK_PRIO_MID, this); + taskUpdate = lv_task_create(lv_update_task, 5000, LV_TASK_PRIO_MID, this); } QuickSettings::~QuickSettings() { diff --git a/src/libs/lv_conf.h b/src/libs/lv_conf.h index a03a4833..37824bbd 100644 --- a/src/libs/lv_conf.h +++ b/src/libs/lv_conf.h @@ -293,10 +293,10 @@ typedef void* lv_img_decoder_user_data_t; /* 1: use a custom tick source. * It removes the need to manually update the tick with `lv_tick_inc`) */ -#define LV_TICK_CUSTOM 0 +#define LV_TICK_CUSTOM 1 #if LV_TICK_CUSTOM == 1 -#define LV_TICK_CUSTOM_INCLUDE "Arduino.h" /*Header for the system time function*/ -#define LV_TICK_CUSTOM_SYS_TIME_EXPR (millis()) /*Expression evaluating to current system time in ms*/ +#define LV_TICK_CUSTOM_INCLUDE "FreeRTOS.h" /*Header for the system time function*/ +#define LV_TICK_CUSTOM_SYS_TIME_EXPR (xTaskGetTickCount()) /*Expression evaluating to current system time in ms*/ #endif /*LV_TICK_CUSTOM*/ typedef void* lv_disp_drv_user_data_t; /*Type of user data in the display driver*/ @@ -759,4 +759,4 @@ typedef void* lv_obj_user_data_t; /*--END OF LV_CONF_H--*/ -#endif /*LV_CONF_H*/ \ No newline at end of file +#endif /*LV_CONF_H*/ diff --git a/src/main.cpp b/src/main.cpp index 5832a78f..ebdf0175 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -175,13 +175,6 @@ void nrfx_gpiote_evt_handler(nrfx_gpiote_pin_t pin, nrf_gpiote_polarity_t action portYIELD_FROM_ISR(xHigherPriorityTaskWoken); } -extern "C" { -void vApplicationIdleHook(void) { - if (!isFactory) - lv_tick_inc(1); -} -} - void DebounceTimerChargeCallback(TimerHandle_t xTimer) { xTimerStop(xTimer, 0); systemTask.PushMessage(Pinetime::System::Messages::OnChargingEvent); From 084123b752c74f7b8a6da23cb9bce0ac4efa3715 Mon Sep 17 00:00:00 2001 From: "joaquim.org" <joaquim.org@gmail.com> Date: Sun, 11 Jul 2021 14:06:06 +0100 Subject: [PATCH 51/58] Using littlefs (#438) * add submodule littlefs * base fs * Save settings using littlefs * Small fixes and suggestions from PR * More small fixes from PR suggestions * Code clean up * Change SpiNorFlash functions to be private in FS --- .gitmodules | 3 + src/CMakeLists.txt | 29 +++- src/components/fs/FS.cpp | 197 +++++++++++++++++++++++++++ src/components/fs/FS.h | 71 ++++++++++ src/components/settings/Settings.cpp | 100 +++----------- src/components/settings/Settings.h | 58 ++++---- src/libs/littlefs | 1 + src/libs/lv_conf.h | 4 +- src/main.cpp | 13 +- src/systemtask/SystemTask.cpp | 11 +- src/systemtask/SystemTask.h | 12 +- 11 files changed, 369 insertions(+), 130 deletions(-) create mode 100644 src/components/fs/FS.cpp create mode 100644 src/components/fs/FS.h create mode 160000 src/libs/littlefs diff --git a/.gitmodules b/.gitmodules index 6f6d0e10..815fc022 100644 --- a/.gitmodules +++ b/.gitmodules @@ -1,3 +1,6 @@ [submodule "src/libs/lvgl"] path = src/libs/lvgl url = https://github.com/joaquimorg/lvgl.git +[submodule "src/libs/littlefs"] + path = src/libs/littlefs + url = https://github.com/littlefs-project/littlefs.git diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index aca86543..40e1f2a5 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -166,6 +166,13 @@ set(NIMBLE_SRC libs/mynewt-nimble/nimble/host/util/src/addr.c ) +set(LITTLEFS_SRC + libs/littlefs/lfs_util.h + libs/littlefs/lfs.h + libs/littlefs/lfs_util.c + libs/littlefs/lfs.c + ) + set(LVGL_SRC libs/lv_conf.h libs/lvgl/lvgl.h @@ -465,6 +472,7 @@ list(APPEND SOURCE_FILES components/motor/MotorController.cpp components/settings/Settings.cpp components/timer/TimerController.cpp + components/fs/FS.cpp drivers/Cst816s.cpp FreeRTOS/port.c FreeRTOS/port_cmsis_systick.c @@ -543,6 +551,7 @@ list(APPEND RECOVERY_SOURCE_FILES components/heartrate/Biquad.cpp components/heartrate/Ptagc.cpp components/motor/MotorController.cpp + components/fs/FS.cpp ) list(APPEND RECOVERYLOADER_SOURCE_FILES @@ -801,13 +810,25 @@ target_compile_options(lvgl PRIVATE $<$<COMPILE_LANGUAGE:ASM>: -MP -MD -x assembler-with-cpp> ) +# LITTLEFS_SRC +add_library(littlefs STATIC ${LITTLEFS_SRC}) +target_include_directories(littlefs SYSTEM PUBLIC . ../) +target_include_directories(littlefs SYSTEM PUBLIC ${INCLUDES_FROM_LIBS}) +target_compile_options(littlefs PRIVATE + $<$<AND:$<COMPILE_LANGUAGE:C>,$<CONFIG:DEBUG>>: ${COMMON_FLAGS} -Wno-unused-function -Og -g3> + $<$<AND:$<COMPILE_LANGUAGE:C>,$<CONFIG:RELEASE>>: ${COMMON_FLAGS} -Wno-unused-function -Os> + $<$<AND:$<COMPILE_LANGUAGE:CXX>,$<CONFIG:DEBUG>>: ${COMMON_FLAGS} -Wno-unused-function -Og -g3 -fno-rtti> + $<$<AND:$<COMPILE_LANGUAGE:CXX>,$<CONFIG:RELEASE>>: ${COMMON_FLAGS} -Wno-unused-function -Os -fno-rtti> + $<$<COMPILE_LANGUAGE:ASM>: -MP -MD -x assembler-with-cpp> + ) + # Build autonomous binary (without support for bootloader) set(EXECUTABLE_NAME "pinetime-app") set(EXECUTABLE_FILE_NAME ${EXECUTABLE_NAME}-${pinetime_VERSION_MAJOR}.${pinetime_VERSION_MINOR}.${pinetime_VERSION_PATCH}) set(NRF5_LINKER_SCRIPT "${CMAKE_SOURCE_DIR}/gcc_nrf52.ld") add_executable(${EXECUTABLE_NAME} ${SOURCE_FILES}) set_target_properties(${EXECUTABLE_NAME} PROPERTIES OUTPUT_NAME ${EXECUTABLE_FILE_NAME}) -target_link_libraries(${EXECUTABLE_NAME} nimble nrf-sdk lvgl) +target_link_libraries(${EXECUTABLE_NAME} nimble nrf-sdk lvgl littlefs) target_compile_options(${EXECUTABLE_NAME} PUBLIC $<$<AND:$<COMPILE_LANGUAGE:C>,$<CONFIG:DEBUG>>: ${COMMON_FLAGS} -Og -g3> $<$<AND:$<COMPILE_LANGUAGE:C>,$<CONFIG:RELEASE>>: ${COMMON_FLAGS} -Os> @@ -836,7 +857,7 @@ set(IMAGE_MCUBOOT_FILE_NAME ${EXECUTABLE_MCUBOOT_NAME}-image-${pinetime_VERSION_ set(DFU_MCUBOOT_FILE_NAME ${EXECUTABLE_MCUBOOT_NAME}-dfu-${pinetime_VERSION_MAJOR}.${pinetime_VERSION_MINOR}.${pinetime_VERSION_PATCH}.zip) set(NRF5_LINKER_SCRIPT_MCUBOOT "${CMAKE_SOURCE_DIR}/gcc_nrf52-mcuboot.ld") add_executable(${EXECUTABLE_MCUBOOT_NAME} ${SOURCE_FILES}) -target_link_libraries(${EXECUTABLE_MCUBOOT_NAME} nimble nrf-sdk lvgl) +target_link_libraries(${EXECUTABLE_MCUBOOT_NAME} nimble nrf-sdk lvgl littlefs) set_target_properties(${EXECUTABLE_MCUBOOT_NAME} PROPERTIES OUTPUT_NAME ${EXECUTABLE_MCUBOOT_FILE_NAME}) target_compile_options(${EXECUTABLE_MCUBOOT_NAME} PUBLIC $<$<AND:$<COMPILE_LANGUAGE:C>,$<CONFIG:DEBUG>>: ${COMMON_FLAGS} -Og -g3> @@ -872,7 +893,7 @@ endif() set(EXECUTABLE_RECOVERY_NAME "pinetime-recovery") set(EXECUTABLE_RECOVERY_FILE_NAME ${EXECUTABLE_RECOVERY_NAME}-${pinetime_VERSION_MAJOR}.${pinetime_VERSION_MINOR}.${pinetime_VERSION_PATCH}) add_executable(${EXECUTABLE_RECOVERY_NAME} ${RECOVERY_SOURCE_FILES}) -target_link_libraries(${EXECUTABLE_RECOVERY_NAME} nimble nrf-sdk) +target_link_libraries(${EXECUTABLE_RECOVERY_NAME} nimble nrf-sdk littlefs) set_target_properties(${EXECUTABLE_RECOVERY_NAME} PROPERTIES OUTPUT_NAME ${EXECUTABLE_RECOVERY_FILE_NAME}) target_compile_definitions(${EXECUTABLE_RECOVERY_NAME} PUBLIC "PINETIME_IS_RECOVERY") target_compile_options(${EXECUTABLE_RECOVERY_NAME} PUBLIC @@ -902,7 +923,7 @@ set(EXECUTABLE_RECOVERY_MCUBOOT_FILE_NAME ${EXECUTABLE_RECOVERY_MCUBOOT_NAME}-${ set(IMAGE_RECOVERY_MCUBOOT_FILE_NAME ${EXECUTABLE_RECOVERY_MCUBOOT_NAME}-image-${pinetime_VERSION_MAJOR}.${pinetime_VERSION_MINOR}.${pinetime_VERSION_PATCH}.bin) set(DFU_RECOVERY_MCUBOOT_FILE_NAME ${EXECUTABLE_RECOVERY_MCUBOOT_NAME}-dfu-${pinetime_VERSION_MAJOR}.${pinetime_VERSION_MINOR}.${pinetime_VERSION_PATCH}.zip) add_executable(${EXECUTABLE_RECOVERY_MCUBOOT_NAME} ${RECOVERY_SOURCE_FILES}) -target_link_libraries(${EXECUTABLE_RECOVERY_MCUBOOT_NAME} nimble nrf-sdk) +target_link_libraries(${EXECUTABLE_RECOVERY_MCUBOOT_NAME} nimble nrf-sdk littlefs) set_target_properties(${EXECUTABLE_RECOVERY_MCUBOOT_NAME} PROPERTIES OUTPUT_NAME ${EXECUTABLE_RECOVERY_MCUBOOT_FILE_NAME}) target_compile_definitions(${EXECUTABLE_RECOVERY_MCUBOOT_NAME} PUBLIC "PINETIME_IS_RECOVERY") target_compile_options(${EXECUTABLE_RECOVERY_MCUBOOT_NAME} PUBLIC diff --git a/src/components/fs/FS.cpp b/src/components/fs/FS.cpp new file mode 100644 index 00000000..857e6bf9 --- /dev/null +++ b/src/components/fs/FS.cpp @@ -0,0 +1,197 @@ +#include "FS.h" +#include <cstring> +#include <littlefs/lfs.h> +#include <lvgl/lvgl.h> + +using namespace Pinetime::Controllers; + +FS::FS(Pinetime::Drivers::SpiNorFlash& driver) : + flashDriver{ driver }, + lfsConfig{ + .context = this, + .read = SectorRead, + .prog = SectorProg, + .erase = SectorErase, + .sync = SectorSync, + + .read_size = 16, + .prog_size = 8, + .block_size = blockSize, + .block_count = size / blockSize, + .block_cycles = 1000u, + + .cache_size = 16, + .lookahead_size = 16, + + .name_max = 50, + .attr_max = 50, + } +{ } + + +void FS::Init() { + + // try mount + int err = lfs_mount(&lfs, &lfsConfig); + + // reformat if we can't mount the filesystem + // this should only happen on the first boot + if (err != LFS_ERR_OK) { + lfs_format(&lfs, &lfsConfig); + err = lfs_mount(&lfs, &lfsConfig); + if (err != LFS_ERR_OK) { + return; + } + } + +#ifndef PINETIME_IS_RECOVERY + VerifyResource(); + LVGLFileSystemInit(); +#endif + +} + +void FS::VerifyResource() { + // validate the resource metadata + resourcesValid = true; +} + +int FS::FileOpen(lfs_file_t* file_p, const char* fileName, const int flags) { + return lfs_file_open(&lfs, file_p, fileName, flags); +} + +int FS::FileClose(lfs_file_t* file_p) { + return lfs_file_close(&lfs, file_p); +} + +int FS::FileRead(lfs_file_t* file_p, uint8_t* buff, uint32_t size) { + return lfs_file_read(&lfs, file_p, buff, size); +} + +int FS::FileWrite(lfs_file_t* file_p, const uint8_t* buff, uint32_t size) { + return lfs_file_write(&lfs, file_p, buff, size); +} + +int FS::FileSeek(lfs_file_t* file_p, uint32_t pos) { + return lfs_file_seek(&lfs, file_p, pos, LFS_SEEK_SET); +} + +int FS::FileDelete(const char* fileName) { + return lfs_remove(&lfs, fileName); +} + + +int FS::DirCreate(const char* path) { + return lfs_mkdir(&lfs, path); +} + +// Delete directory and all files inside +int FS::DirDelete(const char* path) { + + lfs_dir_t lfs_dir; + lfs_info entryInfo; + + int err; + err = lfs_dir_open(&lfs, &lfs_dir, path); + if (err) { + return err; + } + while (lfs_dir_read(&lfs, &lfs_dir, &entryInfo)) { + lfs_remove(&lfs, entryInfo.name); + } + lfs_dir_close(&lfs, &lfs_dir); + return LFS_ERR_OK; +} + +/* + + ----------- Interface between littlefs and SpiNorFlash ----------- + +*/ +int FS::SectorSync(const struct lfs_config* c) { + return 0; +} + +int FS::SectorErase(const struct lfs_config* c, lfs_block_t block) { + Pinetime::Controllers::FS& lfs = *(static_cast<Pinetime::Controllers::FS*>(c->context)); + const size_t address = startAddress + (block * blockSize); + lfs.flashDriver.SectorErase(address); + return lfs.flashDriver.EraseFailed() ? -1 : 0; +} + +int FS::SectorProg(const struct lfs_config* c, lfs_block_t block, lfs_off_t off, const void* buffer, lfs_size_t size) { + Pinetime::Controllers::FS& lfs = *(static_cast<Pinetime::Controllers::FS*>(c->context)); + const size_t address = startAddress + (block * blockSize) + off; + lfs.flashDriver.Write(address, (uint8_t*) buffer, size); + return lfs.flashDriver.ProgramFailed() ? -1 : 0; +} + +int FS::SectorRead(const struct lfs_config* c, lfs_block_t block, lfs_off_t off, void* buffer, lfs_size_t size) { + Pinetime::Controllers::FS& lfs = *(static_cast<Pinetime::Controllers::FS*>(c->context)); + const size_t address = startAddress + (block * blockSize) + off; + lfs.flashDriver.Read(address, static_cast<uint8_t*>(buffer), size); + return 0; +} + +/* + + ----------- LVGL filesystem integration ----------- + +*/ + +namespace { + lv_fs_res_t lvglOpen(lv_fs_drv_t* drv, void* file_p, const char* path, lv_fs_mode_t mode) { + + lfs_file_t* file = static_cast<lfs_file_t*>(file_p); + FS* filesys = static_cast<FS*>(drv->user_data); + filesys->FileOpen(file, path, LFS_O_RDONLY); + + if (file->type == 0) { + return LV_FS_RES_FS_ERR; + } + else { + return LV_FS_RES_OK; + } + } + + lv_fs_res_t lvglClose(lv_fs_drv_t* drv, void* file_p) { + FS* filesys = static_cast<FS*>(drv->user_data); + lfs_file_t* file = static_cast<lfs_file_t*>(file_p); + filesys->FileClose(file); + + return LV_FS_RES_OK; + } + + lv_fs_res_t lvglRead(lv_fs_drv_t* drv, void* file_p, void* buf, uint32_t btr, uint32_t* br) { + FS* filesys = static_cast<FS*>(drv->user_data); + lfs_file_t* file = static_cast<lfs_file_t*>(file_p); + filesys->FileRead(file, static_cast<uint8_t*>(buf), btr); + *br = btr; + return LV_FS_RES_OK; + } + + lv_fs_res_t lvglSeek(lv_fs_drv_t* drv, void* file_p, uint32_t pos) { + FS* filesys = static_cast<FS*>(drv->user_data); + lfs_file_t* file = static_cast<lfs_file_t*>(file_p); + filesys->FileSeek(file, pos); + return LV_FS_RES_OK; + } +} + +void FS::LVGLFileSystemInit() { + + lv_fs_drv_t fs_drv; + lv_fs_drv_init(&fs_drv); + + fs_drv.file_size = sizeof(lfs_file_t); + fs_drv.letter = 'F'; + fs_drv.open_cb = lvglOpen; + fs_drv.close_cb = lvglClose; + fs_drv.read_cb = lvglRead; + fs_drv.seek_cb = lvglSeek; + + fs_drv.user_data = this; + + lv_fs_drv_register(&fs_drv); + +} \ No newline at end of file diff --git a/src/components/fs/FS.h b/src/components/fs/FS.h new file mode 100644 index 00000000..1f2eb7e0 --- /dev/null +++ b/src/components/fs/FS.h @@ -0,0 +1,71 @@ +#pragma once + +#include <cstdint> +#include "drivers/SpiNorFlash.h" +#include <littlefs/lfs.h> + +namespace Pinetime { + namespace Controllers { + class FS { + public: + FS(Pinetime::Drivers::SpiNorFlash&); + + void Init(); + void LVGLFileSystemInit(); + + int FileOpen(lfs_file_t* file_p, const char* fileName, const int flags); + int FileClose(lfs_file_t* file_p); + int FileRead(lfs_file_t* file_p, uint8_t* buff, uint32_t size); + int FileWrite(lfs_file_t* file_p, const uint8_t* buff, uint32_t size); + int FileSeek(lfs_file_t* file_p, uint32_t pos); + + int FileDelete(const char* fileName); + + int DirCreate(const char* path); + int DirDelete(const char* path); + + void VerifyResource(); + + private: + + Pinetime::Drivers::SpiNorFlash& flashDriver; + + /* + * External Flash MAP (4 MBytes) + * + * 0x000000 +---------------------------------------+ + * | Bootloader Assets | + * | 256 KBytes | + * | | + * 0x040000 +---------------------------------------+ + * | OTA | + * | 464 KBytes | + * | | + * | | + * | | + * 0x0B4000 +---------------------------------------+ + * | File System | + * | | + * | | + * | | + * | | + * 0x400000 +---------------------------------------+ + * + */ + static constexpr size_t startAddress = 0x0B4000; + static constexpr size_t size = 0x3C0000; + static constexpr size_t blockSize = 4096; + + bool resourcesValid = false; + const struct lfs_config lfsConfig; + + lfs_t lfs; + + static int SectorSync(const struct lfs_config* c); + static int SectorErase(const struct lfs_config* c, lfs_block_t block); + static int SectorProg(const struct lfs_config* c, lfs_block_t block, lfs_off_t off, const void* buffer, lfs_size_t size); + static int SectorRead(const struct lfs_config* c, lfs_block_t block, lfs_off_t off, void* buffer, lfs_size_t size); + + }; + } +} diff --git a/src/components/settings/Settings.cpp b/src/components/settings/Settings.cpp index 071940b8..37c09f91 100644 --- a/src/components/settings/Settings.cpp +++ b/src/components/settings/Settings.cpp @@ -4,108 +4,44 @@ using namespace Pinetime::Controllers; -struct SettingsHeader { - uint8_t isActive; // 0xF1 = Block is active, 0xF0 = Block is inactive - uint16_t version; // Current version, to verify if the saved data is for the current Version -}; - -#define HEADER_SIZE sizeof(SettingsHeader) - -Settings::Settings(Pinetime::Drivers::SpiNorFlash& spiNorFlash) : spiNorFlash {spiNorFlash} { +Settings::Settings(Pinetime::Controllers::FS& fs) : fs {fs} { } void Settings::Init() { // Load default settings from Flash - LoadSettingsFromFlash(); + LoadSettingsFromFile(); } void Settings::SaveSettings() { // verify if is necessary to save if (settingsChanged) { - SaveSettingsToFlash(); + SaveSettingsToFile(); } settingsChanged = false; } -bool Settings::FindHeader() { - SettingsHeader settingsHeader; - uint8_t bufferHead[sizeof(settingsHeader)]; +void Settings::LoadSettingsFromFile() { + SettingsData bufferSettings; + lfs_file_t settingsFile; - for (uint8_t block = 0; block < 10; block++) { - - spiNorFlash.Read(settingsBaseAddr + (block * 0x1000), bufferHead, sizeof(settingsHeader)); - std::memcpy(&settingsHeader, bufferHead, sizeof(settingsHeader)); - if (settingsHeader.isActive == 0xF1 && settingsHeader.version == settingsVersion) { - settingsFlashBlock = block; - return true; - } + if ( fs.FileOpen(&settingsFile, "/settings.dat", LFS_O_RDWR | LFS_O_CREAT) != LFS_ERR_OK) { + return; } - return false; -} - -void Settings::ReadSettingsData() { - uint8_t bufferSettings[sizeof(settings)]; - spiNorFlash.Read(settingsBaseAddr + (settingsFlashBlock * 0x1000) + HEADER_SIZE, bufferSettings, sizeof(settings)); - std::memcpy(&settings, bufferSettings, sizeof(settings)); -} - -void Settings::EraseBlock() { - - spiNorFlash.SectorErase(settingsBaseAddr + (settingsFlashBlock * 0x1000)); -} - -void Settings::SetHeader(bool state) { - SettingsHeader settingsHeader; - uint8_t bufferHead[sizeof(settingsHeader)]; - settingsHeader.isActive = state ? 0xF1 : 0xF0; - settingsHeader.version = settingsVersion; - - std::memcpy(bufferHead, &settingsHeader, sizeof(settingsHeader)); - spiNorFlash.Write(settingsBaseAddr + (settingsFlashBlock * 0x1000), bufferHead, sizeof(settingsHeader)); -} - -void Settings::SaveSettingsData() { - uint8_t bufferSettings[sizeof(settings)]; - std::memcpy(bufferSettings, &settings, sizeof(settings)); - spiNorFlash.Write(settingsBaseAddr + (settingsFlashBlock * 0x1000) + HEADER_SIZE, bufferSettings, sizeof(settings)); -} - -void Settings::LoadSettingsFromFlash() { - - if (settingsFlashBlock == 99) { - // Find current Block, if can't find use default settings and set block to 0 ans save ! - if (FindHeader()) { - ReadSettingsData(); - } else { - SaveSettingsToFlash(); - } - } else { - // Read Settings from flash... - // never used :) - ReadSettingsData(); + fs.FileRead(&settingsFile, reinterpret_cast<uint8_t*>(&bufferSettings), sizeof(settings)); + fs.FileClose(&settingsFile); + if ( bufferSettings.version == settingsVersion ) { + settings = bufferSettings; } } -void Settings::SaveSettingsToFlash() { +void Settings::SaveSettingsToFile() { + lfs_file_t settingsFile; - // calculate where to save... - // mark current to inactive - // erase the new location and save - // set settingsFlashBlock - - // if first time hever, only saves to block 0 and set settingsFlashBlock - - if (settingsFlashBlock != 99) { - SetHeader(false); + if ( fs.FileOpen(&settingsFile, "/settings.dat", LFS_O_RDWR | LFS_O_CREAT) != LFS_ERR_OK) { + return; } - - settingsFlashBlock++; - if (settingsFlashBlock > 9) - settingsFlashBlock = 0; - - EraseBlock(); - SetHeader(true); - SaveSettingsData(); + fs.FileWrite(&settingsFile, reinterpret_cast<uint8_t*>(&settings), sizeof(settings)); + fs.FileClose(&settingsFile); } diff --git a/src/components/settings/Settings.h b/src/components/settings/Settings.h index 4409425b..577455eb 100644 --- a/src/components/settings/Settings.h +++ b/src/components/settings/Settings.h @@ -2,25 +2,26 @@ #include <cstdint> #include "components/datetime/DateTimeController.h" #include "components/brightness/BrightnessController.h" -#include "drivers/SpiNorFlash.h" +#include "components/fs/FS.h" #include "drivers/Cst816s.h" namespace Pinetime { namespace Controllers { class Settings { public: - enum class ClockType { H24, H12 }; - enum class Vibration { ON, OFF }; - enum class WakeUpMode { None, SingleTap, DoubleTap, RaiseWrist }; + enum class ClockType : uint8_t { H24, H12 }; + enum class Vibration : uint8_t { ON, OFF }; + enum class WakeUpMode : uint8_t { None, SingleTap, DoubleTap, RaiseWrist }; - Settings(Pinetime::Drivers::SpiNorFlash& spiNorFlash); + Settings(Pinetime::Controllers::FS& fs); void Init(); void SaveSettings(); void SetClockFace(uint8_t face) { - if (face != settings.clockFace) + if (face != settings.clockFace) { settingsChanged = true; + } settings.clockFace = face; }; uint8_t GetClockFace() const { @@ -42,8 +43,9 @@ namespace Pinetime { }; void SetClockType(ClockType clocktype) { - if (clocktype != settings.clockType) + if (clocktype != settings.clockType) { settingsChanged = true; + } settings.clockType = clocktype; }; ClockType GetClockType() const { @@ -51,8 +53,9 @@ namespace Pinetime { }; void SetVibrationStatus(Vibration status) { - if (status != settings.vibrationStatus) + if (status != settings.vibrationStatus) { settingsChanged = true; + } settings.vibrationStatus = status; }; Vibration GetVibrationStatus() const { @@ -60,8 +63,9 @@ namespace Pinetime { }; void SetScreenTimeOut(uint32_t timeout) { - if (timeout != settings.screenTimeOut) + if (timeout != settings.screenTimeOut) { settingsChanged = true; + } settings.screenTimeOut = timeout; }; uint32_t GetScreenTimeOut() const { @@ -69,8 +73,9 @@ namespace Pinetime { }; void setWakeUpMode(WakeUpMode wakeUp) { - if (wakeUp != settings.wakeUpMode) + if (wakeUp != settings.wakeUpMode) { settingsChanged = true; + } settings.wakeUpMode = wakeUp; }; WakeUpMode getWakeUpMode() const { @@ -78,8 +83,9 @@ namespace Pinetime { }; void SetBrightness(Controllers::BrightnessController::Levels level) { - if (level != settings.brightLevel) + if (level != settings.brightLevel) { settingsChanged = true; + } settings.brightLevel = level; }; Controllers::BrightnessController::Levels GetBrightness() const { @@ -87,25 +93,29 @@ namespace Pinetime { }; void SetStepsGoal( uint32_t goal ) { - if ( goal != settings.stepsGoal ) + if ( goal != settings.stepsGoal ) { settingsChanged = true; + } settings.stepsGoal = goal; }; uint32_t GetStepsGoal() const { return settings.stepsGoal; }; private: - Pinetime::Drivers::SpiNorFlash& spiNorFlash; + Pinetime::Controllers::FS& fs; + + static constexpr uint32_t settingsVersion = 0x0001; struct SettingsData { + uint32_t version = settingsVersion; + uint32_t stepsGoal = 10000; + uint32_t screenTimeOut = 15000; + ClockType clockType = ClockType::H24; Vibration vibrationStatus = Vibration::ON; uint8_t clockFace = 0; - uint32_t stepsGoal = 10000; - uint32_t screenTimeOut = 15000; - WakeUpMode wakeUpMode = WakeUpMode::None; Controllers::BrightnessController::Levels brightLevel = Controllers::BrightnessController::Levels::Medium; @@ -117,20 +127,8 @@ namespace Pinetime { uint8_t appMenu = 0; uint8_t settingsMenu = 0; - // There are 10 blocks of reserved flash to save settings - // to minimize wear, the recording is done in a rotating way by the 10 blocks - uint8_t settingsFlashBlock = 99; // default to indicate it needs to find the active block - - static constexpr uint32_t settingsBaseAddr = 0x3F6000; // Flash Settings Location - static constexpr uint16_t settingsVersion = 0x0100; // Flash Settings Version - - bool FindHeader(); - void ReadSettingsData(); - void EraseBlock(); - void SetHeader(bool state); - void SaveSettingsData(); - void LoadSettingsFromFlash(); - void SaveSettingsToFlash(); + void LoadSettingsFromFile(); + void SaveSettingsToFile(); }; } } \ No newline at end of file diff --git a/src/libs/littlefs b/src/libs/littlefs new file mode 160000 index 00000000..ead50807 --- /dev/null +++ b/src/libs/littlefs @@ -0,0 +1 @@ +Subproject commit ead50807f1ca3fdf2da00b77a0ce02651ded2d13 diff --git a/src/libs/lv_conf.h b/src/libs/lv_conf.h index a03a4833..e85eeb1f 100644 --- a/src/libs/lv_conf.h +++ b/src/libs/lv_conf.h @@ -204,7 +204,7 @@ e.g. "stm32f769xx.h" or "stm32f429xx.h" */ /* 1: Enable file system (might be required for images */ // TODO: Enable FS -#define LV_USE_FILESYSTEM 0 +#define LV_USE_FILESYSTEM 1 #if LV_USE_FILESYSTEM /*Declare the type of the user data of file system drivers (can be e.g. `void *`, `int`, `struct`)*/ typedef void * lv_fs_drv_user_data_t; @@ -236,7 +236,7 @@ typedef void * lv_fs_drv_user_data_t; * With complex image decoders (e.g. PNG or JPG) caching can save the continuous open/decode of images. * However the opened images might consume additional RAM. * LV_IMG_CACHE_DEF_SIZE must be >= 1 */ -#define LV_IMG_CACHE_DEF_SIZE 1 +#define LV_IMG_CACHE_DEF_SIZE 6 /*Declare the type of the user data of image decoder (can be e.g. `void *`, `int`, `struct`)*/ typedef void* lv_img_decoder_user_data_t; diff --git a/src/main.cpp b/src/main.cpp index 5832a78f..1b7015aa 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -35,6 +35,7 @@ #include "components/motor/MotorController.h" #include "components/datetime/DateTimeController.h" #include "components/heartrate/HeartRateController.h" +#include "components/fs/FS.h" #include "drivers/Spi.h" #include "drivers/SpiMaster.h" #include "drivers/SpiNorFlash.h" @@ -108,10 +109,6 @@ void ble_manager_set_ble_disconnection_callback(void (*disconnection)()); static constexpr uint8_t pinTouchIrq = 28; static constexpr uint8_t pinPowerPresentIrq = 19; -Pinetime::Controllers::Settings settingsController {spiNorFlash}; - -Pinetime::Controllers::MotorController motorController {settingsController}; - Pinetime::Controllers::HeartRateController heartRateController; Pinetime::Applications::HeartRateTask heartRateApp(heartRateSensor, heartRateController); @@ -122,6 +119,11 @@ Pinetime::Controllers::NotificationManager notificationManager; Pinetime::Controllers::MotionController motionController; Pinetime::Controllers::TimerController timerController; +Pinetime::Controllers::FS fs {spiNorFlash}; +Pinetime::Controllers::Settings settingsController {fs}; +Pinetime::Controllers::MotorController motorController {settingsController}; + + Pinetime::Applications::DisplayApp displayApp(lcd, lvgl, touchPanel, @@ -155,7 +157,8 @@ Pinetime::System::SystemTask systemTask(spi, settingsController, heartRateController, displayApp, - heartRateApp); + heartRateApp, + fs); void nrfx_gpiote_evt_handler(nrfx_gpiote_pin_t pin, nrf_gpiote_polarity_t action) { if (pin == pinTouchIrq) { diff --git a/src/systemtask/SystemTask.cpp b/src/systemtask/SystemTask.cpp index 13755f71..17e78230 100644 --- a/src/systemtask/SystemTask.cpp +++ b/src/systemtask/SystemTask.cpp @@ -59,7 +59,8 @@ SystemTask::SystemTask(Drivers::SpiMaster& spi, Controllers::Settings& settingsController, Pinetime::Controllers::HeartRateController& heartRateController, Pinetime::Applications::DisplayApp& displayApp, - Pinetime::Applications::HeartRateTask& heartRateApp) + Pinetime::Applications::HeartRateTask& heartRateApp, + Pinetime::Controllers::FS& fs) : spi {spi}, lcd {lcd}, spiNorFlash {spiNorFlash}, @@ -77,10 +78,11 @@ SystemTask::SystemTask(Drivers::SpiMaster& spi, motionSensor {motionSensor}, settingsController {settingsController}, heartRateController{heartRateController}, - nimbleController(*this, bleController, dateTimeController, notificationManager, batteryController, spiNorFlash, heartRateController), motionController{motionController}, displayApp{displayApp}, - heartRateApp(heartRateApp) { + heartRateApp(heartRateApp), + fs{fs}, + nimbleController(*this, bleController, dateTimeController, notificationManager, batteryController, spiNorFlash, heartRateController) { } @@ -107,6 +109,9 @@ void SystemTask::Work() { spi.Init(); spiNorFlash.Init(); spiNorFlash.Wakeup(); + + fs.Init(); + nimbleController.Init(); nimbleController.StartAdvertising(); brightnessController.Init(); diff --git a/src/systemtask/SystemTask.h b/src/systemtask/SystemTask.h index f563640c..bfb97264 100644 --- a/src/systemtask/SystemTask.h +++ b/src/systemtask/SystemTask.h @@ -16,13 +16,15 @@ #include "components/ble/NotificationManager.h" #include "components/motor/MotorController.h" #include "components/timer/TimerController.h" +#include "components/fs/FS.h" + #ifdef PINETIME_IS_RECOVERY #include "displayapp/DisplayAppRecovery.h" #include "displayapp/DummyLittleVgl.h" #else #include "components/settings/Settings.h" #include "displayapp/DisplayApp.h" - #include "displayapp/LittleVgl.h" + #include "displayapp/LittleVgl.h" #endif #include "drivers/Watchdog.h" @@ -59,7 +61,8 @@ namespace Pinetime { Controllers::Settings& settingsController, Pinetime::Controllers::HeartRateController& heartRateController, Pinetime::Applications::DisplayApp& displayApp, - Pinetime::Applications::HeartRateTask& heartRateApp); + Pinetime::Applications::HeartRateTask& heartRateApp, + Pinetime::Controllers::FS& fs); void Start(); void PushMessage(Messages msg); @@ -103,13 +106,14 @@ namespace Pinetime { Pinetime::Drivers::Bma421& motionSensor; Pinetime::Controllers::Settings& settingsController; Pinetime::Controllers::HeartRateController& heartRateController; - Pinetime::Controllers::NimbleController nimbleController; + Controllers::BrightnessController brightnessController; Pinetime::Controllers::MotionController& motionController; Pinetime::Applications::DisplayApp& displayApp; Pinetime::Applications::HeartRateTask& heartRateApp; - + Pinetime::Controllers::FS& fs; + Pinetime::Controllers::NimbleController nimbleController; static constexpr uint8_t pinSpiSck = 2; static constexpr uint8_t pinSpiMosi = 3; From 6a91b83b12ef849f68d54f490153b02f0ecf58dc Mon Sep 17 00:00:00 2001 From: kieranc <kieranc@gmail.com> Date: Sun, 11 Jul 2021 15:08:23 +0200 Subject: [PATCH 52/58] Change step gauge range to 100 and calculate progress as percantage (#468) --- src/displayapp/screens/PineTimeStyle.cpp | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/displayapp/screens/PineTimeStyle.cpp b/src/displayapp/screens/PineTimeStyle.cpp index 678099c0..591f3a49 100644 --- a/src/displayapp/screens/PineTimeStyle.cpp +++ b/src/displayapp/screens/PineTimeStyle.cpp @@ -179,8 +179,8 @@ PineTimeStyle::PineTimeStyle(DisplayApp* app, lv_obj_align(stepGauge, sidebar, LV_ALIGN_IN_BOTTOM_MID, 0, 0); lv_gauge_set_scale(stepGauge, 360, 11, 0); lv_gauge_set_angle_offset(stepGauge, 180); - lv_gauge_set_critical_value(stepGauge, (settingsController.GetStepsGoal() / 100)); - lv_gauge_set_range(stepGauge, 0, (settingsController.GetStepsGoal() / 100)); + lv_gauge_set_critical_value(stepGauge, 100); + lv_gauge_set_range(stepGauge, 0, 100); lv_gauge_set_value(stepGauge, 0, 0); lv_obj_set_style_local_pad_right(stepGauge, LV_GAUGE_PART_MAIN, LV_STATE_DEFAULT, 3); @@ -328,7 +328,7 @@ bool PineTimeStyle::Refresh() { stepCount = motionController.NbSteps(); motionSensorOk = motionController.IsSensorOk(); if (stepCount.IsUpdated() || motionSensorOk.IsUpdated()) { - lv_gauge_set_value(stepGauge, 0, (stepCount.Get() / 100)); + lv_gauge_set_value(stepGauge, 0, (stepCount.Get() / (settingsController.GetStepsGoal() / 100))); lv_obj_realign(stepGauge); if (stepCount.Get() > settingsController.GetStepsGoal()) { lv_obj_set_style_local_line_color(stepGauge, LV_GAUGE_PART_MAIN, LV_STATE_DEFAULT, LV_COLOR_WHITE); From e21f6a7f414d1f832e8fddfeaab3b9de05aa3459 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jean-Fran=C3=A7ois=20Milants?= <jf@codingfield.com> Date: Sun, 11 Jul 2021 16:55:06 +0200 Subject: [PATCH 53/58] Notify battery level every 10 minutes when connected to a BLE host. Refactor battery percent : only use uint8_t to store the battery % remaining. --- src/components/battery/BatteryController.cpp | 13 +--- src/components/battery/BatteryController.h | 18 +++-- .../ble/BatteryInformationService.cpp | 8 ++- .../ble/BatteryInformationService.h | 2 +- src/components/ble/NimbleController.cpp | 6 ++ src/components/ble/NimbleController.h | 3 +- src/displayapp/screens/BatteryIcon.cpp | 3 +- src/displayapp/screens/BatteryIcon.h | 2 +- src/displayapp/screens/BatteryInfo.cpp | 66 ++++++++----------- src/displayapp/screens/BatteryInfo.h | 2 +- src/displayapp/screens/PineTimeStyle.h | 2 +- src/displayapp/screens/SystemInfo.cpp | 2 +- src/displayapp/screens/WatchFaceAnalog.cpp | 1 - src/displayapp/screens/WatchFaceAnalog.h | 2 +- src/displayapp/screens/WatchFaceDigital.h | 2 +- src/systemtask/SystemTask.cpp | 5 ++ src/systemtask/SystemTask.h | 2 + 17 files changed, 71 insertions(+), 68 deletions(-) diff --git a/src/components/battery/BatteryController.cpp b/src/components/battery/BatteryController.cpp index 76ad8cb3..fa476ea3 100644 --- a/src/components/battery/BatteryController.cpp +++ b/src/components/battery/BatteryController.cpp @@ -1,9 +1,7 @@ #include "BatteryController.h" #include <hal/nrf_gpio.h> #include <nrfx_saadc.h> -#include <libraries/log/nrf_log.h> #include <algorithm> -#include <math.h> using namespace Pinetime::Controllers; @@ -18,7 +16,6 @@ void Battery::Init() { } void Battery::Update() { - isCharging = !nrf_gpio_pin_read(chargingPin); isPowerPresent = !nrf_gpio_pin_read(powerPresentPin); @@ -33,13 +30,13 @@ void Battery::Update() { nrfx_saadc_sample(); } -void Battery::adcCallbackStatic(nrfx_saadc_evt_t const* event) { +void Battery::AdcCallbackStatic(nrfx_saadc_evt_t const* event) { instance->SaadcEventHandler(event); } void Battery::SaadcInit() { nrfx_saadc_config_t adcConfig = NRFX_SAADC_DEFAULT_CONFIG; - APP_ERROR_CHECK(nrfx_saadc_init(&adcConfig, adcCallbackStatic)); + APP_ERROR_CHECK(nrfx_saadc_init(&adcConfig, AdcCallbackStatic)); nrf_saadc_channel_config_t adcChannelConfig = {.resistor_p = NRF_SAADC_RESISTOR_DISABLED, .resistor_n = NRF_SAADC_RESISTOR_DISABLED, @@ -55,7 +52,6 @@ void Battery::SaadcInit() { } void Battery::SaadcEventHandler(nrfx_saadc_evt_t const* p_event) { - const uint16_t battery_max = 4180; // maximum voltage of battery ( max charging voltage is 4.21 ) const uint16_t battery_min = 3200; // minimum voltage of battery before shutdown ( depends on the battery ) @@ -69,13 +65,10 @@ void Battery::SaadcEventHandler(nrfx_saadc_evt_t const* p_event) { // reference_voltage is 0.6V // p_event->data.done.p_buffer[0] = (adc_voltage / reference_voltage) * 1024 voltage = p_event->data.done.p_buffer[0] * 6000 / 1024; - percentRemaining = (voltage - battery_min) * 100 / (battery_max - battery_min); - percentRemaining = std::max(percentRemaining, 0); percentRemaining = std::min(percentRemaining, 100); - - percentRemainingBuffer.insert(percentRemaining); + percentRemainingBuffer.Insert(percentRemaining); samples++; if (samples > percentRemainingSamples) { diff --git a/src/components/battery/BatteryController.h b/src/components/battery/BatteryController.h index 26e24938..1333ad0e 100644 --- a/src/components/battery/BatteryController.h +++ b/src/components/battery/BatteryController.h @@ -19,7 +19,7 @@ namespace Pinetime { 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) { + void Insert(const uint8_t num) { head %= cap; arr[head++] = num; if (sz != cap) { @@ -27,13 +27,13 @@ namespace Pinetime { } } - int GetAverage() const { + uint8_t GetAverage() const { int sum = std::accumulate(arr.begin(), arr.end(), 0); - return (sum / sz); + return static_cast<uint8_t>(sum / sz); } private: - std::array<int, N> arr; /**< internal array used to store the values*/ + std::array<uint8_t, 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*/ @@ -46,8 +46,11 @@ namespace Pinetime { void Init(); void Update(); - int PercentRemaining() const { - return percentRemainingBuffer.GetAverage(); + uint8_t PercentRemaining() const { + auto avg = percentRemainingBuffer.GetAverage(); + avg = std::min(avg, static_cast<uint8_t>(100)); + avg = std::max(avg, static_cast<uint8_t>(0)); + return avg; } uint16_t Voltage() const { @@ -57,6 +60,7 @@ namespace Pinetime { bool IsCharging() const { return isCharging; } + bool IsPowerPresent() const { return isPowerPresent; } @@ -80,7 +84,7 @@ namespace Pinetime { void SaadcInit(); void SaadcEventHandler(nrfx_saadc_evt_t const* p_event); - static void adcCallbackStatic(nrfx_saadc_evt_t const* event); + static void AdcCallbackStatic(nrfx_saadc_evt_t const* event); bool isReading = false; uint8_t samples = 0; diff --git a/src/components/ble/BatteryInformationService.cpp b/src/components/ble/BatteryInformationService.cpp index 10a78d67..7f176904 100644 --- a/src/components/ble/BatteryInformationService.cpp +++ b/src/components/ble/BatteryInformationService.cpp @@ -17,7 +17,7 @@ BatteryInformationService::BatteryInformationService(Controllers::Battery& batte characteristicDefinition {{.uuid = (ble_uuid_t*) &batteryLevelUuid, .access_cb = BatteryInformationServiceCallback, .arg = this, - .flags = BLE_GATT_CHR_F_READ, + .flags = BLE_GATT_CHR_F_READ | BLE_GATT_CHR_F_NOTIFY, .val_handle = &batteryLevelHandle}, {0}}, serviceDefinition { @@ -48,4 +48,8 @@ int BatteryInformationService::OnBatteryServiceRequested(uint16_t connectionHand return (res == 0) ? 0 : BLE_ATT_ERR_INSUFFICIENT_RES; } return 0; -} \ No newline at end of file +} +void BatteryInformationService::NotifyBatteryLevel(uint16_t connectionHandle, uint8_t level) { + auto* om = ble_hs_mbuf_from_flat(&level, 1); + ble_gattc_notify_custom(connectionHandle, batteryLevelHandle, om); +} diff --git a/src/components/ble/BatteryInformationService.h b/src/components/ble/BatteryInformationService.h index 7d060909..1303fd6c 100644 --- a/src/components/ble/BatteryInformationService.h +++ b/src/components/ble/BatteryInformationService.h @@ -17,7 +17,7 @@ namespace Pinetime { void Init(); int OnBatteryServiceRequested(uint16_t connectionHandle, uint16_t attributeHandle, ble_gatt_access_ctxt* context); - + void NotifyBatteryLevel(uint16_t connectionHandle, uint8_t level); private: Controllers::Battery& batteryController; static constexpr uint16_t batteryInformationServiceId {0x180F}; diff --git a/src/components/ble/NimbleController.cpp b/src/components/ble/NimbleController.cpp index 2c1d0f99..5eb227bf 100644 --- a/src/components/ble/NimbleController.cpp +++ b/src/components/ble/NimbleController.cpp @@ -235,3 +235,9 @@ void NimbleController::StartDiscovery() { uint16_t NimbleController::connHandle() { return connectionHandle; } + +void NimbleController::NotifyBatteryLevel(uint8_t level) { + if(connectionHandle != BLE_HS_CONN_HANDLE_NONE) { + batteryInformationService.NotifyBatteryLevel(connectionHandle, level); + } +} diff --git a/src/components/ble/NimbleController.h b/src/components/ble/NimbleController.h index 5dd01e42..0cfe983c 100644 --- a/src/components/ble/NimbleController.h +++ b/src/components/ble/NimbleController.h @@ -70,6 +70,7 @@ namespace Pinetime { }; uint16_t connHandle(); + void NotifyBatteryLevel(uint8_t level); private: static constexpr const char* deviceName = "InfiniTime"; @@ -92,7 +93,7 @@ namespace Pinetime { HeartRateService heartRateService; uint8_t addrType; // 1 = Random, 0 = PUBLIC - uint16_t connectionHandle = 0; + uint16_t connectionHandle = BLE_HS_CONN_HANDLE_NONE; ble_uuid128_t dfuServiceUuid { .u {.type = BLE_UUID_TYPE_128}, diff --git a/src/displayapp/screens/BatteryIcon.cpp b/src/displayapp/screens/BatteryIcon.cpp index 6b54a305..bb6626a5 100644 --- a/src/displayapp/screens/BatteryIcon.cpp +++ b/src/displayapp/screens/BatteryIcon.cpp @@ -1,9 +1,10 @@ +#include <cstdint> #include "BatteryIcon.h" #include "Symbols.h" using namespace Pinetime::Applications::Screens; -const char* BatteryIcon::GetBatteryIcon(int batteryPercent) { +const char* BatteryIcon::GetBatteryIcon(uint8_t batteryPercent) { if (batteryPercent > 90) return Symbols::batteryFull; if (batteryPercent > 75) diff --git a/src/displayapp/screens/BatteryIcon.h b/src/displayapp/screens/BatteryIcon.h index 9c192ff7..b370b331 100644 --- a/src/displayapp/screens/BatteryIcon.h +++ b/src/displayapp/screens/BatteryIcon.h @@ -6,7 +6,7 @@ namespace Pinetime { class BatteryIcon { public: static const char* GetUnknownIcon(); - static const char* GetBatteryIcon(int batteryPercent); + static const char* GetBatteryIcon(uint8_t batteryPercent); static const char* GetPlugIcon(bool isCharging); }; } diff --git a/src/displayapp/screens/BatteryInfo.cpp b/src/displayapp/screens/BatteryInfo.cpp index 87c8b4bb..2af024e7 100644 --- a/src/displayapp/screens/BatteryInfo.cpp +++ b/src/displayapp/screens/BatteryInfo.cpp @@ -38,11 +38,7 @@ BatteryInfo::BatteryInfo(Pinetime::Applications::DisplayApp* app, Pinetime::Cont percent = lv_label_create(lv_scr_act(), nullptr); lv_obj_set_style_local_text_font(percent, LV_LABEL_PART_MAIN, LV_STATE_DEFAULT, &jetbrains_mono_76); - if (batteryPercent >= 0) { - lv_label_set_text_fmt(percent, "%02i%%", batteryPercent); - } else { - lv_label_set_text(percent, "--%"); - } + lv_label_set_text_fmt(percent, "%02i%%", batteryPercent); lv_label_set_align(percent, LV_LABEL_ALIGN_LEFT); lv_obj_align(percent, nullptr, LV_ALIGN_CENTER, 0, -60); @@ -72,24 +68,22 @@ BatteryInfo::~BatteryInfo() { void BatteryInfo::UpdateAnim() { batteryPercent = batteryController.PercentRemaining(); - if (batteryPercent >= 0) { - if (batteryController.IsCharging() and batteryPercent < 100) { - animation += 1; - if (animation >= 100) { - animation = 0; - } - - } else { - if (animation > batteryPercent) { - animation--; - } - if (animation < batteryPercent) { - animation++; - } + if (batteryController.IsCharging() and batteryPercent < 100) { + animation += 1; + if (animation >= 100) { + animation = 0; } - lv_bar_set_value(charging_bar, animation, LV_ANIM_OFF); + } else { + if (animation > batteryPercent) { + animation--; + } + if (animation < batteryPercent) { + animation++; + } } + + lv_bar_set_value(charging_bar, animation, LV_ANIM_OFF); } void BatteryInfo::UpdateScreen() { @@ -99,28 +93,22 @@ void BatteryInfo::UpdateScreen() { batteryPercent = batteryController.PercentRemaining(); batteryVoltage = batteryController.Voltage(); - if (batteryPercent >= 0) { - if (batteryController.IsCharging() and batteryPercent < 100) { - lv_obj_set_style_local_bg_color(charging_bar, LV_BAR_PART_INDIC, LV_STATE_DEFAULT, LV_COLOR_RED); - lv_label_set_text_static(status, "Battery charging"); - } else if (batteryPercent == 100) { - lv_obj_set_style_local_bg_color(charging_bar, LV_BAR_PART_INDIC, LV_STATE_DEFAULT, LV_COLOR_BLUE); - lv_label_set_text_static(status, "Battery is fully charged"); - } else if (batteryPercent < 10) { - lv_obj_set_style_local_bg_color(charging_bar, LV_BAR_PART_INDIC, LV_STATE_DEFAULT, LV_COLOR_YELLOW); - lv_label_set_text_static(status, "Battery is low"); - } else { - lv_obj_set_style_local_bg_color(charging_bar, LV_BAR_PART_INDIC, LV_STATE_DEFAULT, LV_COLOR_GREEN); - lv_label_set_text_static(status, "Battery discharging"); - } - - lv_label_set_text_fmt(percent, "%02i%%", batteryPercent); - + if (batteryController.IsCharging() and batteryPercent < 100) { + lv_obj_set_style_local_bg_color(charging_bar, LV_BAR_PART_INDIC, LV_STATE_DEFAULT, LV_COLOR_RED); + lv_label_set_text_static(status, "Battery charging"); + } else if (batteryPercent == 100) { + lv_obj_set_style_local_bg_color(charging_bar, LV_BAR_PART_INDIC, LV_STATE_DEFAULT, LV_COLOR_BLUE); + lv_label_set_text_static(status, "Battery is fully charged"); + } else if (batteryPercent < 10) { + lv_obj_set_style_local_bg_color(charging_bar, LV_BAR_PART_INDIC, LV_STATE_DEFAULT, LV_COLOR_YELLOW); + lv_label_set_text_static(status, "Battery is low"); } else { - lv_label_set_text_static(status, "Reading Battery status"); - lv_label_set_text(percent, "--%"); + lv_obj_set_style_local_bg_color(charging_bar, LV_BAR_PART_INDIC, LV_STATE_DEFAULT, LV_COLOR_GREEN); + lv_label_set_text_static(status, "Battery discharging"); } + lv_label_set_text_fmt(percent, "%02i%%", batteryPercent); + lv_obj_align(status, charging_bar, LV_ALIGN_OUT_BOTTOM_MID, 0, 20); lv_label_set_text_fmt(voltage, "%1i.%02i volts", batteryVoltage / 1000, batteryVoltage % 1000 / 10); } diff --git a/src/displayapp/screens/BatteryInfo.h b/src/displayapp/screens/BatteryInfo.h index 346dc571..da85c6dd 100644 --- a/src/displayapp/screens/BatteryInfo.h +++ b/src/displayapp/screens/BatteryInfo.h @@ -36,7 +36,7 @@ namespace Pinetime { lv_task_t* taskAnim; int8_t animation = 0; - int8_t batteryPercent = -1; + uint8_t batteryPercent = 0; uint16_t batteryVoltage = 0; }; } diff --git a/src/displayapp/screens/PineTimeStyle.h b/src/displayapp/screens/PineTimeStyle.h index 70794cc5..3b4ded1e 100644 --- a/src/displayapp/screens/PineTimeStyle.h +++ b/src/displayapp/screens/PineTimeStyle.h @@ -42,7 +42,7 @@ namespace Pinetime { Pinetime::Controllers::DateTime::Days currentDayOfWeek = Pinetime::Controllers::DateTime::Days::Unknown; uint8_t currentDay = 0; - DirtyValue<int> batteryPercentRemaining {}; + DirtyValue<uint8_t> batteryPercentRemaining {}; DirtyValue<bool> bleState {}; DirtyValue<std::chrono::time_point<std::chrono::system_clock, std::chrono::nanoseconds>> currentDateTime {}; DirtyValue<bool> motionSensorOk {}; diff --git a/src/displayapp/screens/SystemInfo.cpp b/src/displayapp/screens/SystemInfo.cpp index 5ae3a595..f5bf0cc9 100644 --- a/src/displayapp/screens/SystemInfo.cpp +++ b/src/displayapp/screens/SystemInfo.cpp @@ -103,7 +103,7 @@ std::unique_ptr<Screen> SystemInfo::CreateScreen1() { } std::unique_ptr<Screen> SystemInfo::CreateScreen2() { - auto batteryPercent = static_cast<uint8_t>(batteryController.PercentRemaining()); + auto batteryPercent = batteryController.PercentRemaining(); auto resetReason = [this]() { switch (watchdog.ResetReason()) { case Drivers::Watchdog::ResetReasons::Watchdog: diff --git a/src/displayapp/screens/WatchFaceAnalog.cpp b/src/displayapp/screens/WatchFaceAnalog.cpp index 0051408c..b0eb65bc 100644 --- a/src/displayapp/screens/WatchFaceAnalog.cpp +++ b/src/displayapp/screens/WatchFaceAnalog.cpp @@ -165,7 +165,6 @@ void WatchFaceAnalog::UpdateClock() { } bool WatchFaceAnalog::Refresh() { - batteryPercentRemaining = batteryController.PercentRemaining(); if (batteryPercentRemaining.IsUpdated()) { auto batteryPercent = batteryPercentRemaining.Get(); diff --git a/src/displayapp/screens/WatchFaceAnalog.h b/src/displayapp/screens/WatchFaceAnalog.h index 96225558..ac7f0ac5 100644 --- a/src/displayapp/screens/WatchFaceAnalog.h +++ b/src/displayapp/screens/WatchFaceAnalog.h @@ -48,7 +48,7 @@ namespace Pinetime { Pinetime::Controllers::DateTime::Days currentDayOfWeek = Pinetime::Controllers::DateTime::Days::Unknown; uint8_t currentDay = 0; - DirtyValue<float> batteryPercentRemaining {0}; + DirtyValue<uint8_t> batteryPercentRemaining {0}; DirtyValue<std::chrono::time_point<std::chrono::system_clock, std::chrono::nanoseconds>> currentDateTime; DirtyValue<bool> notificationState {false}; diff --git a/src/displayapp/screens/WatchFaceDigital.h b/src/displayapp/screens/WatchFaceDigital.h index 246efc95..76c8d3dc 100644 --- a/src/displayapp/screens/WatchFaceDigital.h +++ b/src/displayapp/screens/WatchFaceDigital.h @@ -45,7 +45,7 @@ namespace Pinetime { Pinetime::Controllers::DateTime::Days currentDayOfWeek = Pinetime::Controllers::DateTime::Days::Unknown; uint8_t currentDay = 0; - DirtyValue<int> batteryPercentRemaining {}; + DirtyValue<uint8_t> batteryPercentRemaining {}; DirtyValue<bool> bleState {}; DirtyValue<std::chrono::time_point<std::chrono::system_clock, std::chrono::nanoseconds>> currentDateTime {}; DirtyValue<bool> motionSensorOk {}; diff --git a/src/systemtask/SystemTask.cpp b/src/systemtask/SystemTask.cpp index 17e78230..eb29638a 100644 --- a/src/systemtask/SystemTask.cpp +++ b/src/systemtask/SystemTask.cpp @@ -330,6 +330,11 @@ void SystemTask::Work() { } } + if (xTaskGetTickCount() - batteryNotificationTick > batteryNotificationPeriod) { + nimbleController.NotifyBatteryLevel(batteryController.PercentRemaining()); + batteryNotificationTick = xTaskGetTickCount(); + } + monitor.Process(); uint32_t systick_counter = nrf_rtc_counter_get(portNRF_RTC_REG); dateTimeController.UpdateTime(systick_counter); diff --git a/src/systemtask/SystemTask.h b/src/systemtask/SystemTask.h index bfb97264..f8cf6370 100644 --- a/src/systemtask/SystemTask.h +++ b/src/systemtask/SystemTask.h @@ -135,6 +135,8 @@ namespace Pinetime { void GoToRunning(); void UpdateMotion(); bool stepCounterMustBeReset = false; + static constexpr TickType_t batteryNotificationPeriod = 1000 * 60 * 10; // 1 tick ~= 1ms. 1ms * 60 * 10 = 10 minutes + TickType_t batteryNotificationTick = 0; #if configUSE_TRACE_FACILITY == 1 SystemMonitor<FreeRtosMonitor> monitor; From 748e31421dddf509339dd01ece80e3a7ac76e04d Mon Sep 17 00:00:00 2001 From: kieranc <kieranc@gmail.com> Date: Sun, 11 Jul 2021 17:48:16 +0200 Subject: [PATCH 54/58] Modify status text in BatteryInfo so it fits on screen (#437) * Modify status text in BatteryInfo so it fits on screen --- src/displayapp/screens/BatteryInfo.cpp | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/displayapp/screens/BatteryInfo.cpp b/src/displayapp/screens/BatteryInfo.cpp index 87c8b4bb..7e055762 100644 --- a/src/displayapp/screens/BatteryInfo.cpp +++ b/src/displayapp/screens/BatteryInfo.cpp @@ -102,16 +102,16 @@ void BatteryInfo::UpdateScreen() { if (batteryPercent >= 0) { if (batteryController.IsCharging() and batteryPercent < 100) { lv_obj_set_style_local_bg_color(charging_bar, LV_BAR_PART_INDIC, LV_STATE_DEFAULT, LV_COLOR_RED); - lv_label_set_text_static(status, "Battery charging"); + lv_label_set_text_static(status, "Charging"); } else if (batteryPercent == 100) { lv_obj_set_style_local_bg_color(charging_bar, LV_BAR_PART_INDIC, LV_STATE_DEFAULT, LV_COLOR_BLUE); - lv_label_set_text_static(status, "Battery is fully charged"); + lv_label_set_text_static(status, "Fully charged"); } else if (batteryPercent < 10) { lv_obj_set_style_local_bg_color(charging_bar, LV_BAR_PART_INDIC, LV_STATE_DEFAULT, LV_COLOR_YELLOW); - lv_label_set_text_static(status, "Battery is low"); + lv_label_set_text_static(status, "Battery low"); } else { lv_obj_set_style_local_bg_color(charging_bar, LV_BAR_PART_INDIC, LV_STATE_DEFAULT, LV_COLOR_GREEN); - lv_label_set_text_static(status, "Battery discharging"); + lv_label_set_text_static(status, "Discharging"); } lv_label_set_text_fmt(percent, "%02i%%", batteryPercent); From 829b16a303fdf1d143e15ad53aa3a39251671fe0 Mon Sep 17 00:00:00 2001 From: Cameron Radmore <radmorecameron@gmail.com> Date: Sun, 11 Jul 2021 13:46:15 -0400 Subject: [PATCH 55/58] Add "metronome" to apps in readme (#479) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 755f1905..bd23c867 100644 --- a/README.md +++ b/README.md @@ -53,6 +53,7 @@ As of now, here is the list of achievements of this project: * Two (2048 clone game) * Stopwatch (with all the necessary functions such as play, pause, lap, stop) * Motion sensor and step counter (displays the number of steps and the state of the motion sensor in real-time) + * Metronome (vibrates to a given bpm with a customizable beats per bar) - User settings: * Display timeout * Wake-up condition From 7fee2c25894a3113a580d98c947048152af977d9 Mon Sep 17 00:00:00 2001 From: wilsonjwco <87050999+wilsonjwco@users.noreply.github.com> Date: Sun, 11 Jul 2021 11:47:24 -0600 Subject: [PATCH 56/58] Update buildAndProgram.md (#477) Corrected typo in example usage of cmake BUILD_DFU option. Changed from -BUILD_DFU=1 to -DBUILD_DFU=1 --- doc/buildAndProgram.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/doc/buildAndProgram.md b/doc/buildAndProgram.md index afd526e0..5fe593ae 100644 --- a/doc/buildAndProgram.md +++ b/doc/buildAndProgram.md @@ -27,7 +27,7 @@ CMake configures the project according to variables you specify the command line **NRFJPROG**|Path to the NRFJProg executable. Used only if `USE_JLINK` is 1.|`-DNRFJPROG=/opt/nrfjprog/nrfjprog` **GDB_CLIENT_BIN_PATH**|Path to arm-none-eabi-gdb executable. Used only if `USE_GDB_CLIENT` is 1.|`-DGDB_CLIENT_BIN_PATH=/home/jf/nrf52/gcc-arm-none-eabi-9-2019-q4-major/bin/arm-none-eabi-gdb` **GDB_CLIENT_TARGET_REMOTE**|Target remote connection string. Used only if `USE_GDB_CLIENT` is 1.|`-DGDB_CLIENT_TARGET_REMOTE=/dev/ttyACM0` -**BUILD_DFU (\*\*)**|Build DFU files while building (needs [adafruit-nrfutil](https://github.com/adafruit/Adafruit_nRF52_nrfutil)).|`-BUILD_DFU=1` +**BUILD_DFU (\*\*)**|Build DFU files while building (needs [adafruit-nrfutil](https://github.com/adafruit/Adafruit_nRF52_nrfutil)).|`-DBUILD_DFU=1` ####(**) Note about **CMAKE_BUILD_TYPE**: By default, this variable is set to *Release*. It compiles the code with size and speed optimizations. We use this value for all the binaries we publish when we [release](https://github.com/JF002/InfiniTime/releases) new versions of InfiniTime. From 4f378e8726fdcff72598aa6ed12eeaa6b3e61355 Mon Sep 17 00:00:00 2001 From: Jonathan Vander Mey <jvandermey@evertz.com> Date: Sun, 11 Jul 2021 14:18:07 -0400 Subject: [PATCH 57/58] Refactor trig functions into LUT (#476) Replaced the use of the standard library trig functions with a LUT-based implementation instead. The standard library implementations produce more accurate results but the usage here doesn't need that. This ends up saving nearly 7kB of binary size. --- src/displayapp/screens/WatchFaceAnalog.cpp | 76 +++++++++++++--------- 1 file changed, 44 insertions(+), 32 deletions(-) diff --git a/src/displayapp/screens/WatchFaceAnalog.cpp b/src/displayapp/screens/WatchFaceAnalog.cpp index 0051408c..c589c320 100644 --- a/src/displayapp/screens/WatchFaceAnalog.cpp +++ b/src/displayapp/screens/WatchFaceAnalog.cpp @@ -5,27 +5,44 @@ #include "Symbols.h" #include "NotificationIcon.h" -#include <cmath> - LV_IMG_DECLARE(bg_clock); using namespace Pinetime::Applications::Screens; -#define HOUR_LENGTH 70 -#define MINUTE_LENGTH 90 -#define SECOND_LENGTH 110 -#define PI 3.14159265358979323846 +namespace { -// ## -static int16_t coordinate_x_relocate(int16_t x) { - return ((x) + LV_HOR_RES / 2); +constexpr auto HOUR_LENGTH = 70; +constexpr auto MINUTE_LENGTH = 90; +constexpr auto SECOND_LENGTH = 110; + +// sin(90) = 1 so the value of _lv_trigo_sin(90) is the scaling factor +const auto LV_TRIG_SCALE = _lv_trigo_sin(90); + +int16_t cosine(int16_t angle) { + return _lv_trigo_sin(angle + 90); } -// ## -static int16_t coordinate_y_relocate(int16_t y) { - return (((y) -LV_HOR_RES / 2) < 0) ? (0 - ((y) -LV_HOR_RES / 2)) : ((y) -LV_HOR_RES / 2); +int16_t sine(int16_t angle) { + return _lv_trigo_sin(angle); } +int16_t coordinate_x_relocate(int16_t x) { + return (x + LV_HOR_RES / 2); +} + +int16_t coordinate_y_relocate(int16_t y) { + return std::abs(y - LV_HOR_RES / 2); +} + +lv_point_t coordinate_relocate(int16_t radius, int16_t angle) { + return lv_point_t{ + .x = coordinate_x_relocate(radius * static_cast<int32_t>(sine(angle)) / LV_TRIG_SCALE), + .y = coordinate_y_relocate(radius * static_cast<int32_t>(cosine(angle)) / LV_TRIG_SCALE) + }; +} + +} // namespace + WatchFaceAnalog::WatchFaceAnalog(Pinetime::Applications::DisplayApp* app, Controllers::DateTime& dateTimeController, Controllers::Battery& batteryController, @@ -123,15 +140,12 @@ void WatchFaceAnalog::UpdateClock() { second = dateTimeController.Seconds(); if (sMinute != minute) { - minute_point[0].x = coordinate_x_relocate(30 * sin(minute * 6 * PI / 180)); - minute_point[0].y = coordinate_y_relocate(30 * cos(minute * 6 * PI / 180)); - minute_point[1].x = coordinate_x_relocate(MINUTE_LENGTH * sin(minute * 6 * PI / 180)); - minute_point[1].y = coordinate_y_relocate(MINUTE_LENGTH * cos(minute * 6 * PI / 180)); + auto const angle = minute * 6; + minute_point[0] = coordinate_relocate(30, angle); + minute_point[1] = coordinate_relocate(MINUTE_LENGTH, angle); - minute_point_trace[0].x = coordinate_x_relocate(5 * sin(minute * 6 * PI / 180)); - minute_point_trace[0].y = coordinate_y_relocate(5 * cos(minute * 6 * PI / 180)); - minute_point_trace[1].x = coordinate_x_relocate(31 * sin(minute * 6 * PI / 180)); - minute_point_trace[1].y = coordinate_y_relocate(31 * cos(minute * 6 * PI / 180)); + minute_point_trace[0] = coordinate_relocate(5, angle); + minute_point_trace[1] = coordinate_relocate(31, angle); lv_line_set_points(minute_body, minute_point, 2); lv_line_set_points(minute_body_trace, minute_point_trace, 2); @@ -140,15 +154,13 @@ void WatchFaceAnalog::UpdateClock() { if (sHour != hour || sMinute != minute) { sHour = hour; sMinute = minute; - hour_point[0].x = coordinate_x_relocate(30 * sin((((hour > 12 ? hour - 12 : hour) * 30) + (minute * 0.5)) * PI / 180)); - hour_point[0].y = coordinate_y_relocate(30 * cos((((hour > 12 ? hour - 12 : hour) * 30) + (minute * 0.5)) * PI / 180)); - hour_point[1].x = coordinate_x_relocate(HOUR_LENGTH * sin((((hour > 12 ? hour - 12 : hour) * 30) + (minute * 0.5)) * PI / 180)); - hour_point[1].y = coordinate_y_relocate(HOUR_LENGTH * cos((((hour > 12 ? hour - 12 : hour) * 30) + (minute * 0.5)) * PI / 180)); + auto const angle = (hour * 30 + minute / 2); - hour_point_trace[0].x = coordinate_x_relocate(5 * sin((((hour > 12 ? hour - 12 : hour) * 30) + (minute * 0.5)) * PI / 180)); - hour_point_trace[0].y = coordinate_y_relocate(5 * cos((((hour > 12 ? hour - 12 : hour) * 30) + (minute * 0.5)) * PI / 180)); - hour_point_trace[1].x = coordinate_x_relocate(31 * sin((((hour > 12 ? hour - 12 : hour) * 30) + (minute * 0.5)) * PI / 180)); - hour_point_trace[1].y = coordinate_y_relocate(31 * cos((((hour > 12 ? hour - 12 : hour) * 30) + (minute * 0.5)) * PI / 180)); + hour_point[0] = coordinate_relocate(30, angle); + hour_point[1] = coordinate_relocate(HOUR_LENGTH, angle); + + hour_point_trace[0] = coordinate_relocate(5, angle); + hour_point_trace[1] = coordinate_relocate(31, angle); lv_line_set_points(hour_body, hour_point, 2); lv_line_set_points(hour_body_trace, hour_point_trace, 2); @@ -156,10 +168,10 @@ void WatchFaceAnalog::UpdateClock() { if (sSecond != second) { sSecond = second; - second_point[0].x = coordinate_x_relocate(20 * sin((180 + second * 6) * PI / 180)); - second_point[0].y = coordinate_y_relocate(20 * cos((180 + second * 6) * PI / 180)); - second_point[1].x = coordinate_x_relocate(SECOND_LENGTH * sin(second * 6 * PI / 180)); - second_point[1].y = coordinate_y_relocate(SECOND_LENGTH * cos(second * 6 * PI / 180)); + auto const angle = second * 6; + + second_point[0] = coordinate_relocate(-20, angle); + second_point[1] = coordinate_relocate(SECOND_LENGTH, angle); lv_line_set_points(second_body, second_point, 2); } } From a5616b0bc8ea385c3c70ae700498c8abe07f647b Mon Sep 17 00:00:00 2001 From: Riku Isokoski <riksu9000@gmail.com> Date: Tue, 13 Jul 2021 21:42:59 +0300 Subject: [PATCH 58/58] Adjust displayapp delay to compensate time spent (#482) --- src/displayapp/DisplayApp.cpp | 11 +++++++++-- src/displayapp/DisplayApp.h | 1 + 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/src/displayapp/DisplayApp.cpp b/src/displayapp/DisplayApp.cpp index 04ebd2d3..6d66afe5 100644 --- a/src/displayapp/DisplayApp.cpp +++ b/src/displayapp/DisplayApp.cpp @@ -114,6 +114,7 @@ uint32_t count = 0; bool toggle = true; void DisplayApp::Refresh() { TickType_t queueTimeout; + TickType_t delta; switch (state) { case States::Idle: IdleState(); @@ -121,7 +122,11 @@ void DisplayApp::Refresh() { break; case States::Running: RunningState(); - queueTimeout = 20; + delta = xTaskGetTickCount() - lastWakeTime; + if (delta > 20) { + delta = 20; + } + queueTimeout = 20 - delta; break; default: queueTimeout = portMAX_DELAY; @@ -129,7 +134,9 @@ void DisplayApp::Refresh() { } Messages msg; - if (xQueueReceive(msgQueue, &msg, queueTimeout)) { + bool messageReceived = xQueueReceive(msgQueue, &msg, queueTimeout); + lastWakeTime = xTaskGetTickCount(); + if (messageReceived) { switch (msg) { case Messages::GoToSleep: brightnessController.Backup(); diff --git a/src/displayapp/DisplayApp.h b/src/displayapp/DisplayApp.h index 73a7cc36..f4573ab7 100644 --- a/src/displayapp/DisplayApp.h +++ b/src/displayapp/DisplayApp.h @@ -114,6 +114,7 @@ namespace Pinetime { Apps nextApp = Apps::None; DisplayApp::FullRefreshDirections nextDirection; + TickType_t lastWakeTime; }; } }