From 3320eae95cb334b62994ad8ca3a364aae08c653a Mon Sep 17 00:00:00 2001 From: Kieran Cawthray Date: Sun, 3 Oct 2021 20:01:46 +0200 Subject: [PATCH 001/188] Initial commit --- src/displayapp/screens/PineTimeStyle.cpp | 270 +++++++++++++++++++++-- src/displayapp/screens/PineTimeStyle.h | 21 +- 2 files changed, 274 insertions(+), 17 deletions(-) diff --git a/src/displayapp/screens/PineTimeStyle.cpp b/src/displayapp/screens/PineTimeStyle.cpp index 6766ecb0..e035f399 100644 --- a/src/displayapp/screens/PineTimeStyle.cpp +++ b/src/displayapp/screens/PineTimeStyle.cpp @@ -37,6 +37,13 @@ using namespace Pinetime::Applications::Screens; +namespace { + static void event_handler(lv_obj_t* obj, lv_event_t event) { + PineTimeStyle* screen = static_cast(obj->user_data); + screen->UpdateSelected(obj, event); + } +} + PineTimeStyle::PineTimeStyle(DisplayApp* app, Controllers::DateTime& dateTimeController, Controllers::Battery& batteryController, @@ -53,16 +60,13 @@ PineTimeStyle::PineTimeStyle(DisplayApp* app, 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 + // 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, Convert(settingsController.GetPTSColorBG())); lv_obj_set_style_local_radius(timebar, LV_BTN_PART_MAIN, LV_STATE_DEFAULT, 0); @@ -97,69 +101,69 @@ PineTimeStyle::PineTimeStyle(DisplayApp* app, // 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_obj_set_style_local_text_color(batteryIcon, LV_LABEL_PART_MAIN, LV_STATE_DEFAULT, LV_COLOR_BLACK); lv_label_set_text(batteryIcon, Symbols::batteryFull); lv_obj_align(batteryIcon, sidebar, LV_ALIGN_IN_TOP_MID, 0, 2); lv_obj_set_auto_realign(batteryIcon, true); 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_set_style_local_text_color(bleIcon, LV_LABEL_PART_MAIN, LV_STATE_DEFAULT, LV_COLOR_BLACK); 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_set_style_local_text_color(notificationIcon, LV_LABEL_PART_MAIN, LV_STATE_DEFAULT, LV_COLOR_BLACK); 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_bg_color(calendarOuter, LV_BTN_PART_MAIN, LV_STATE_DEFAULT, LV_COLOR_BLACK); 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_bg_color(calendarInner, LV_BTN_PART_MAIN, LV_STATE_DEFAULT, LV_COLOR_WHITE); 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_bg_color(calendarBar1, LV_BTN_PART_MAIN, LV_STATE_DEFAULT, LV_COLOR_BLACK); 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_bg_color(calendarBar2, LV_BTN_PART_MAIN, LV_STATE_DEFAULT, LV_COLOR_BLACK); 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_bg_color(calendarCrossBar1, LV_BTN_PART_MAIN, LV_STATE_DEFAULT, LV_COLOR_BLACK); 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_bg_color(calendarCrossBar2, LV_BTN_PART_MAIN, LV_STATE_DEFAULT, LV_COLOR_BLACK); 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_obj_set_style_local_text_color(dateDayOfWeek, LV_LABEL_PART_MAIN, LV_STATE_DEFAULT, LV_COLOR_BLACK); 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_obj_set_style_local_text_color(dateDay, LV_LABEL_PART_MAIN, LV_STATE_DEFAULT, LV_COLOR_BLACK); 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_obj_set_style_local_text_color(dateMonth, LV_LABEL_PART_MAIN, LV_STATE_DEFAULT, LV_COLOR_BLACK); lv_label_set_text(dateMonth, "MAR"); lv_obj_align(dateMonth, sidebar, LV_ALIGN_CENTER, 0, 32); @@ -193,6 +197,100 @@ PineTimeStyle::PineTimeStyle(DisplayApp* app, lv_obj_set_pos(backgroundLabel, 0, 0); lv_label_set_text(backgroundLabel, ""); + btnNextTime = lv_btn_create(lv_scr_act(), nullptr); + btnNextTime->user_data = this; + lv_obj_set_size(btnNextTime, 60, 60); + lv_obj_align(btnNextTime, lv_scr_act(), LV_ALIGN_IN_RIGHT_MID, -15, -80); + lv_obj_set_style_local_bg_opa(btnNextTime, LV_BTN_PART_MAIN, LV_STATE_DEFAULT, LV_OPA_50); + lv_obj_set_style_local_value_str(btnNextTime, LV_BTN_PART_MAIN, LV_STATE_DEFAULT, ">"); + lv_obj_set_event_cb(btnNextTime, event_handler); + lv_obj_set_hidden(btnNextTime, true); + + btnPrevTime = lv_btn_create(lv_scr_act(), nullptr); + btnPrevTime->user_data = this; + lv_obj_set_size(btnPrevTime, 60, 60); + lv_obj_align(btnPrevTime, lv_scr_act(), LV_ALIGN_IN_LEFT_MID, 15, -80); + lv_obj_set_style_local_bg_opa(btnPrevTime, LV_BTN_PART_MAIN, LV_STATE_DEFAULT, LV_OPA_50); + lv_obj_set_style_local_value_str(btnPrevTime, LV_BTN_PART_MAIN, LV_STATE_DEFAULT, "<"); + lv_obj_set_event_cb(btnPrevTime, event_handler); + lv_obj_set_hidden(btnPrevTime, true); + + btnNextBar = lv_btn_create(lv_scr_act(), nullptr); + btnNextBar->user_data = this; + lv_obj_set_size(btnNextBar, 60, 60); + lv_obj_align(btnNextBar, lv_scr_act(), LV_ALIGN_IN_RIGHT_MID, -15, 0); + lv_obj_set_style_local_bg_opa(btnNextBar, LV_BTN_PART_MAIN, LV_STATE_DEFAULT, LV_OPA_50); + lv_obj_set_style_local_value_str(btnNextBar, LV_BTN_PART_MAIN, LV_STATE_DEFAULT, ">"); + lv_obj_set_event_cb(btnNextBar, event_handler); + lv_obj_set_hidden(btnNextBar, true); + + btnPrevBar = lv_btn_create(lv_scr_act(), nullptr); + btnPrevBar->user_data = this; + lv_obj_set_size(btnPrevBar, 60, 60); + lv_obj_align(btnPrevBar, lv_scr_act(), LV_ALIGN_IN_LEFT_MID, 15, 0); + lv_obj_set_style_local_bg_opa(btnPrevBar, LV_BTN_PART_MAIN, LV_STATE_DEFAULT, LV_OPA_50); + lv_obj_set_style_local_value_str(btnPrevBar, LV_BTN_PART_MAIN, LV_STATE_DEFAULT, "<"); + lv_obj_set_event_cb(btnPrevBar, event_handler); + lv_obj_set_hidden(btnPrevBar, true); + + btnNextBG = lv_btn_create(lv_scr_act(), nullptr); + btnNextBG->user_data = this; + lv_obj_set_size(btnNextBG, 60, 60); + lv_obj_align(btnNextBG, lv_scr_act(), LV_ALIGN_IN_RIGHT_MID, -15, 80); + lv_obj_set_style_local_bg_opa(btnNextBG, LV_BTN_PART_MAIN, LV_STATE_DEFAULT, LV_OPA_50); + lv_obj_set_style_local_value_str(btnNextBG, LV_BTN_PART_MAIN, LV_STATE_DEFAULT, ">"); + lv_obj_set_event_cb(btnNextBG, event_handler); + lv_obj_set_hidden(btnNextBG, true); + + btnPrevBG = lv_btn_create(lv_scr_act(), nullptr); + btnPrevBG->user_data = this; + lv_obj_set_size(btnPrevBG, 60, 60); + lv_obj_align(btnPrevBG, lv_scr_act(), LV_ALIGN_IN_LEFT_MID, 15, 80); + lv_obj_set_style_local_bg_opa(btnPrevBG, LV_BTN_PART_MAIN, LV_STATE_DEFAULT, LV_OPA_50); + lv_obj_set_style_local_value_str(btnPrevBG, LV_BTN_PART_MAIN, LV_STATE_DEFAULT, "<"); + lv_obj_set_event_cb(btnPrevBG, event_handler); + lv_obj_set_hidden(btnPrevBG, true); + + btnReset = lv_btn_create(lv_scr_act(), nullptr); + btnReset->user_data = this; + lv_obj_set_size(btnReset, 60, 60); + lv_obj_align(btnReset, lv_scr_act(), LV_ALIGN_CENTER, 0, 80); + lv_obj_set_style_local_bg_opa(btnReset, LV_BTN_PART_MAIN, LV_STATE_DEFAULT, LV_OPA_50); + lv_obj_set_style_local_value_str(btnReset, LV_BTN_PART_MAIN, LV_STATE_DEFAULT, "Rst"); + lv_obj_set_event_cb(btnReset, event_handler); + lv_obj_set_hidden(btnReset, true); + + btnRandom = lv_btn_create(lv_scr_act(), nullptr); + btnRandom->user_data = this; + lv_obj_set_size(btnRandom, 60, 60); + lv_obj_align(btnRandom, lv_scr_act(), LV_ALIGN_CENTER, 0, 0); + lv_obj_set_style_local_bg_opa(btnRandom, LV_BTN_PART_MAIN, LV_STATE_DEFAULT, LV_OPA_50); + lv_obj_set_style_local_value_str(btnRandom, LV_BTN_PART_MAIN, LV_STATE_DEFAULT, "Rnd"); + lv_obj_set_event_cb(btnRandom, event_handler); + lv_obj_set_hidden(btnRandom, true); + + btnClose = lv_btn_create(lv_scr_act(), nullptr); + btnClose->user_data = this; + lv_obj_set_size(btnClose, 60, 60); + lv_obj_align(btnClose, lv_scr_act(), LV_ALIGN_CENTER, 0, -80); + lv_obj_set_style_local_bg_opa(btnClose, LV_BTN_PART_MAIN, LV_STATE_DEFAULT, LV_OPA_50); + lv_obj_set_style_local_value_str(btnClose, LV_BTN_PART_MAIN, LV_STATE_DEFAULT, "X"); + lv_obj_set_event_cb(btnClose, event_handler); + lv_obj_set_hidden(btnClose, true); + + btnSet = lv_btn_create(lv_scr_act(), nullptr); + btnSet->user_data = this; + lv_obj_set_height(btnSet, 150); + lv_obj_set_width(btnSet, 150); + lv_obj_align(btnSet, lv_scr_act(), LV_ALIGN_CENTER, 0, 0); + lv_obj_set_style_local_radius(btnSet, LV_BTN_PART_MAIN, LV_STATE_DEFAULT, 30); + lv_obj_set_style_local_bg_opa(btnSet, LV_BTN_PART_MAIN, LV_STATE_DEFAULT, LV_OPA_50); + lv_obj_set_event_cb(btnSet, event_handler); + lbl_btnSet = lv_label_create(btnSet, nullptr); + lv_obj_set_style_local_text_font(lbl_btnSet, LV_LABEL_PART_MAIN, LV_STATE_DEFAULT, &lv_font_sys_48); + lv_label_set_text_static(lbl_btnSet, Symbols::settings); + lv_obj_set_hidden(btnSet, true); + taskRefresh = lv_task_create(RefreshTaskCallback, LV_DISP_DEF_REFR_PERIOD, LV_TASK_PRIO_MID, this); Refresh(); } @@ -202,6 +300,15 @@ PineTimeStyle::~PineTimeStyle() { lv_obj_clean(lv_scr_act()); } +bool PineTimeStyle::OnTouchEvent(Pinetime::Applications::TouchEvents event) { + if (event == Pinetime::Applications::TouchEvents::LongTap) { + lv_obj_set_hidden(btnSet, false); + savedTick = lv_tick_get(); + return true; + } + return false; +} + void PineTimeStyle::SetBatteryIcon() { auto batteryPercent = batteryPercentRemaining.Get(); lv_label_set_text(batteryIcon, BatteryIcon::GetBatteryIcon(batteryPercent)); @@ -312,4 +419,135 @@ void PineTimeStyle::Refresh() { lv_obj_set_style_local_scale_grad_color(stepGauge, LV_GAUGE_PART_MAIN, LV_STATE_DEFAULT, LV_COLOR_WHITE); } } + if (lv_obj_is_visible(btnSet) == true) { + if ((savedTick > 0) && (lv_tick_get() - savedTick > 5000)) { + lv_obj_set_hidden(btnSet, true); + savedTick = 0; + } + } } + +void PineTimeStyle::UpdateSelected(lv_obj_t* object, lv_event_t event) { + auto valueTime = settingsController.GetPTSColorTime(); + auto valueBar = settingsController.GetPTSColorBar(); + auto valueBG = settingsController.GetPTSColorBG(); + + if (event == LV_EVENT_CLICKED) { + if (object == btnNextTime) { + valueTime = GetNext(valueTime); + + settingsController.SetPTSColorTime(valueTime); + lv_obj_set_style_local_text_color(timeDD1, LV_LABEL_PART_MAIN, LV_STATE_DEFAULT, Convert(valueTime)); + lv_obj_set_style_local_text_color(timeDD2, LV_LABEL_PART_MAIN, LV_STATE_DEFAULT, Convert(valueTime)); + lv_obj_set_style_local_text_color(timeAMPM, LV_LABEL_PART_MAIN, LV_STATE_DEFAULT, Convert(valueTime)); + } + if (object == btnPrevTime) { + valueTime = GetPrevious(valueTime); + settingsController.SetPTSColorTime(valueTime); + lv_obj_set_style_local_text_color(timeDD1, LV_LABEL_PART_MAIN, LV_STATE_DEFAULT, Convert(valueTime)); + lv_obj_set_style_local_text_color(timeDD2, LV_LABEL_PART_MAIN, LV_STATE_DEFAULT, Convert(valueTime)); + lv_obj_set_style_local_text_color(timeAMPM, LV_LABEL_PART_MAIN, LV_STATE_DEFAULT, Convert(valueTime)); + } + if (object == btnNextBar) { + valueBar = GetNext(valueBar); + if(valueBar == Controllers::Settings::Colors::Black) + valueBar = GetNext(valueBar); + settingsController.SetPTSColorBar(valueBar); + lv_obj_set_style_local_bg_color(sidebar, LV_BTN_PART_MAIN, LV_STATE_DEFAULT, Convert(valueBar)); + } + if (object == btnPrevBar) { + valueBar = GetPrevious(valueBar); + if(valueBar == Controllers::Settings::Colors::Black) + valueBar = GetPrevious(valueBar); + settingsController.SetPTSColorBar(valueBar); + lv_obj_set_style_local_bg_color(sidebar, LV_BTN_PART_MAIN, LV_STATE_DEFAULT, Convert(valueBar)); + } + if (object == btnNextBG) { + valueBG = GetNext(valueBG); + settingsController.SetPTSColorBG(valueBG); + lv_obj_set_style_local_bg_color(timebar, LV_BTN_PART_MAIN, LV_STATE_DEFAULT, Convert(valueBG)); + } + if (object == btnPrevBG) { + valueBG = GetPrevious(valueBG); + settingsController.SetPTSColorBG(valueBG); + lv_obj_set_style_local_bg_color(timebar, LV_BTN_PART_MAIN, LV_STATE_DEFAULT, Convert(valueBG)); + } + if (object == btnReset) { + settingsController.SetPTSColorTime(Controllers::Settings::Colors::Teal); + lv_obj_set_style_local_text_color(timeDD1, LV_LABEL_PART_MAIN, LV_STATE_DEFAULT, Convert(Controllers::Settings::Colors::Teal)); + lv_obj_set_style_local_text_color(timeDD2, LV_LABEL_PART_MAIN, LV_STATE_DEFAULT, Convert(Controllers::Settings::Colors::Teal)); + lv_obj_set_style_local_text_color(timeAMPM, LV_LABEL_PART_MAIN, LV_STATE_DEFAULT, Convert(Controllers::Settings::Colors::Teal)); + settingsController.SetPTSColorBar(Controllers::Settings::Colors::Teal); + lv_obj_set_style_local_bg_color(sidebar, LV_BTN_PART_MAIN, LV_STATE_DEFAULT, Convert(Controllers::Settings::Colors::Teal)); + settingsController.SetPTSColorBG(Controllers::Settings::Colors::Black); + lv_obj_set_style_local_bg_color(timebar, LV_BTN_PART_MAIN, LV_STATE_DEFAULT, Convert(Controllers::Settings::Colors::Black)); + } + if (object == btnRandom) { + uint8_t randTime = rand() % 17; + uint8_t randBar = rand() % 17; + uint8_t randBG = rand() % 17; + // Check if the time color is the same as its background, or if the sidebar is black. If so, change them to more useful values. + if (randTime == randBG) { + randBG += 1; + } + if (randBar == 3) { + randBar -= 1; + } + settingsController.SetPTSColorTime(static_cast(randTime)); + lv_obj_set_style_local_text_color(timeDD1, LV_LABEL_PART_MAIN, LV_STATE_DEFAULT, Convert(static_cast(randTime))); + lv_obj_set_style_local_text_color(timeDD2, LV_LABEL_PART_MAIN, LV_STATE_DEFAULT, Convert(static_cast(randTime))); + lv_obj_set_style_local_text_color(timeAMPM, LV_LABEL_PART_MAIN, LV_STATE_DEFAULT, Convert(static_cast(randTime))); + settingsController.SetPTSColorBar(static_cast(randBar)); + lv_obj_set_style_local_bg_color(sidebar, LV_BTN_PART_MAIN, LV_STATE_DEFAULT, Convert(static_cast(randBar))); + settingsController.SetPTSColorBG(static_cast(randBG)); + lv_obj_set_style_local_bg_color(timebar, LV_BTN_PART_MAIN, LV_STATE_DEFAULT, Convert(static_cast(randBG))); + } + if (object == btnClose) { + settingsController.SaveSettings(); + lv_obj_set_hidden(btnNextTime, true); + lv_obj_set_hidden(btnPrevTime, true); + lv_obj_set_hidden(btnNextBar, true); + lv_obj_set_hidden(btnPrevBar, true); + lv_obj_set_hidden(btnNextBG, true); + lv_obj_set_hidden(btnPrevBG, true); + lv_obj_set_hidden(btnReset, true); + lv_obj_set_hidden(btnRandom, true); + lv_obj_set_hidden(btnClose, true); + } + if (object == btnSet) { + lv_obj_set_hidden(btnSet, true); + lv_obj_set_hidden(btnNextTime, false); + lv_obj_set_hidden(btnPrevTime, false); + lv_obj_set_hidden(btnNextBar, false); + lv_obj_set_hidden(btnPrevBar, false); + lv_obj_set_hidden(btnNextBG, false); + lv_obj_set_hidden(btnPrevBG, false); + lv_obj_set_hidden(btnReset, false); + lv_obj_set_hidden(btnRandom, false); + lv_obj_set_hidden(btnClose, false); + } + } +} + +Pinetime::Controllers::Settings::Colors PineTimeStyle::GetNext(Pinetime::Controllers::Settings::Colors color) { + auto colorAsInt = static_cast(color); + Pinetime::Controllers::Settings::Colors nextColor; + if (colorAsInt < 16) { + nextColor = static_cast(colorAsInt + 1); + } else { + nextColor = static_cast(0); + } + return nextColor; +} + +Pinetime::Controllers::Settings::Colors PineTimeStyle::GetPrevious(Pinetime::Controllers::Settings::Colors color) { + auto colorAsInt = static_cast(color); + Pinetime::Controllers::Settings::Colors prevColor; + + if (colorAsInt > 0) { + prevColor = static_cast(colorAsInt - 1); + } else { + prevColor = static_cast(16); + } + return prevColor; +} \ No newline at end of file diff --git a/src/displayapp/screens/PineTimeStyle.h b/src/displayapp/screens/PineTimeStyle.h index ba473806..5274d0c9 100644 --- a/src/displayapp/screens/PineTimeStyle.h +++ b/src/displayapp/screens/PineTimeStyle.h @@ -30,8 +30,12 @@ namespace Pinetime { Controllers::MotionController& motionController); ~PineTimeStyle() override; + bool OnTouchEvent(TouchEvents event) override; + void Refresh() override; + void UpdateSelected(lv_obj_t *object, lv_event_t event); + private: char displayedChar[5]; @@ -39,6 +43,7 @@ namespace Pinetime { Pinetime::Controllers::DateTime::Months currentMonth = Pinetime::Controllers::DateTime::Months::Unknown; Pinetime::Controllers::DateTime::Days currentDayOfWeek = Pinetime::Controllers::DateTime::Days::Unknown; uint8_t currentDay = 0; + uint32_t savedTick = 0; DirtyValue batteryPercentRemaining {}; DirtyValue isCharging {}; @@ -48,6 +53,18 @@ namespace Pinetime { DirtyValue stepCount {}; DirtyValue notificationState {}; + Pinetime::Controllers::Settings::Colors GetNext(Controllers::Settings::Colors color); + Pinetime::Controllers::Settings::Colors GetPrevious(Controllers::Settings::Colors color); + + lv_obj_t* btnNextTime; + lv_obj_t* btnPrevTime; + lv_obj_t* btnNextBar; + lv_obj_t* btnPrevBar; + lv_obj_t* btnNextBG; + lv_obj_t* btnPrevBG; + lv_obj_t* btnReset; + lv_obj_t* btnRandom; + lv_obj_t* btnClose; lv_obj_t* timebar; lv_obj_t* sidebar; lv_obj_t* timeDD1; @@ -67,6 +84,8 @@ namespace Pinetime { lv_obj_t* calendarCrossBar2; lv_obj_t* notificationIcon; lv_obj_t* stepGauge; + lv_obj_t* btnSet; + lv_obj_t* lbl_btnSet; lv_color_t needle_colors[1]; Controllers::DateTime& dateTimeController; @@ -82,4 +101,4 @@ namespace Pinetime { }; } } -} +} \ No newline at end of file From 7d1da9f1f9f507bdee3e9ea7d0f7ad90a905f7d2 Mon Sep 17 00:00:00 2001 From: Kieran Cawthray Date: Sun, 3 Oct 2021 20:11:04 +0200 Subject: [PATCH 002/188] Remove old PineTimeStyle settings app --- src/CMakeLists.txt | 1 - src/displayapp/Apps.h | 3 +- src/displayapp/DisplayApp.cpp | 5 - .../screens/settings/SettingPineTimeStyle.cpp | 318 ------------------ .../screens/settings/SettingPineTimeStyle.h | 56 --- src/displayapp/screens/settings/Settings.cpp | 21 +- 6 files changed, 4 insertions(+), 400 deletions(-) delete mode 100644 src/displayapp/screens/settings/SettingPineTimeStyle.cpp delete mode 100644 src/displayapp/screens/settings/SettingPineTimeStyle.h diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 37ee0848..52f0bc8e 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -432,7 +432,6 @@ list(APPEND SOURCE_FILES displayapp/screens/settings/SettingWakeUp.cpp displayapp/screens/settings/SettingDisplay.cpp displayapp/screens/settings/SettingSteps.cpp - displayapp/screens/settings/SettingPineTimeStyle.cpp ## Watch faces displayapp/icons/bg_clock.c diff --git a/src/displayapp/Apps.h b/src/displayapp/Apps.h index e3aca8cf..6cc36145 100644 --- a/src/displayapp/Apps.h +++ b/src/displayapp/Apps.h @@ -31,8 +31,7 @@ namespace Pinetime { SettingTimeFormat, SettingDisplay, SettingWakeUp, - SettingSteps, - SettingPineTimeStyle + SettingSteps }; } } diff --git a/src/displayapp/DisplayApp.cpp b/src/displayapp/DisplayApp.cpp index 837082dd..cdfe0b85 100644 --- a/src/displayapp/DisplayApp.cpp +++ b/src/displayapp/DisplayApp.cpp @@ -43,7 +43,6 @@ #include "displayapp/screens/settings/SettingWakeUp.h" #include "displayapp/screens/settings/SettingDisplay.h" #include "displayapp/screens/settings/SettingSteps.h" -#include "displayapp/screens/settings/SettingPineTimeStyle.h" #include "libs/lv_conf.h" @@ -365,10 +364,6 @@ void DisplayApp::LoadApp(Apps app, DisplayApp::FullRefreshDirections direction) currentScreen = std::make_unique(this, settingsController); ReturnApp(Apps::Settings, FullRefreshDirections::Down, TouchEvents::SwipeDown); break; - case Apps::SettingPineTimeStyle: - currentScreen = std::make_unique(this, settingsController); - ReturnApp(Apps::Settings, FullRefreshDirections::Down, TouchEvents::SwipeDown); - break; case Apps::BatteryInfo: currentScreen = std::make_unique(this, batteryController); ReturnApp(Apps::Settings, FullRefreshDirections::Down, TouchEvents::SwipeDown); diff --git a/src/displayapp/screens/settings/SettingPineTimeStyle.cpp b/src/displayapp/screens/settings/SettingPineTimeStyle.cpp deleted file mode 100644 index c9af19b6..00000000 --- a/src/displayapp/screens/settings/SettingPineTimeStyle.cpp +++ /dev/null @@ -1,318 +0,0 @@ -#include "SettingPineTimeStyle.h" -#include -#include -#include "displayapp/DisplayApp.h" -#include "displayapp/screens/Symbols.h" - -using namespace Pinetime::Applications::Screens; - -namespace { - static void event_handler(lv_obj_t* obj, lv_event_t event) { - SettingPineTimeStyle* screen = static_cast(obj->user_data); - screen->UpdateSelected(obj, event); - } -} - -SettingPineTimeStyle::SettingPineTimeStyle(Pinetime::Applications::DisplayApp* app, Pinetime::Controllers::Settings& settingsController) - : Screen(app), settingsController {settingsController} { - timebar = lv_obj_create(lv_scr_act(), nullptr); - lv_obj_set_style_local_bg_color(timebar, LV_BTN_PART_MAIN, LV_STATE_DEFAULT, Convert(settingsController.GetPTSColorBG())); - 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, Convert(settingsController.GetPTSColorTime())); - 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, Convert(settingsController.GetPTSColorTime())); - 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, Convert(settingsController.GetPTSColorTime())); - lv_obj_set_style_local_text_line_space(timeAMPM, LV_LABEL_PART_MAIN, LV_STATE_DEFAULT, -3); - lv_label_set_text(timeAMPM, "A\nM"); - 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, Convert(settingsController.GetPTSColorBar())); - 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); - - 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_label_set_text(bleIcon, Symbols::bluetooth); - lv_obj_align(bleIcon, sidebar, LV_ALIGN_IN_TOP_MID, 0, 25); - - // 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, (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); - 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, 3); - 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, ""); - - btnNextTime = lv_btn_create(lv_scr_act(), nullptr); - btnNextTime->user_data = this; - lv_obj_set_size(btnNextTime, 60, 60); - lv_obj_align(btnNextTime, lv_scr_act(), LV_ALIGN_IN_RIGHT_MID, -15, -80); - lv_obj_set_style_local_bg_opa(btnNextTime, LV_BTN_PART_MAIN, LV_STATE_DEFAULT, LV_OPA_30); - lv_obj_set_style_local_value_str(btnNextTime, LV_BTN_PART_MAIN, LV_STATE_DEFAULT, ">"); - lv_obj_set_event_cb(btnNextTime, event_handler); - - btnPrevTime = lv_btn_create(lv_scr_act(), nullptr); - btnPrevTime->user_data = this; - lv_obj_set_size(btnPrevTime, 60, 60); - lv_obj_align(btnPrevTime, lv_scr_act(), LV_ALIGN_IN_LEFT_MID, 15, -80); - lv_obj_set_style_local_bg_opa(btnPrevTime, LV_BTN_PART_MAIN, LV_STATE_DEFAULT, LV_OPA_30); - lv_obj_set_style_local_value_str(btnPrevTime, LV_BTN_PART_MAIN, LV_STATE_DEFAULT, "<"); - lv_obj_set_event_cb(btnPrevTime, event_handler); - - btnNextBar = lv_btn_create(lv_scr_act(), nullptr); - btnNextBar->user_data = this; - lv_obj_set_size(btnNextBar, 60, 60); - lv_obj_align(btnNextBar, lv_scr_act(), LV_ALIGN_IN_RIGHT_MID, -15, 0); - lv_obj_set_style_local_bg_opa(btnNextBar, LV_BTN_PART_MAIN, LV_STATE_DEFAULT, LV_OPA_30); - lv_obj_set_style_local_value_str(btnNextBar, LV_BTN_PART_MAIN, LV_STATE_DEFAULT, ">"); - lv_obj_set_event_cb(btnNextBar, event_handler); - - btnPrevBar = lv_btn_create(lv_scr_act(), nullptr); - btnPrevBar->user_data = this; - lv_obj_set_size(btnPrevBar, 60, 60); - lv_obj_align(btnPrevBar, lv_scr_act(), LV_ALIGN_IN_LEFT_MID, 15, 0); - lv_obj_set_style_local_bg_opa(btnPrevBar, LV_BTN_PART_MAIN, LV_STATE_DEFAULT, LV_OPA_30); - lv_obj_set_style_local_value_str(btnPrevBar, LV_BTN_PART_MAIN, LV_STATE_DEFAULT, "<"); - lv_obj_set_event_cb(btnPrevBar, event_handler); - - btnNextBG = lv_btn_create(lv_scr_act(), nullptr); - btnNextBG->user_data = this; - lv_obj_set_size(btnNextBG, 60, 60); - lv_obj_align(btnNextBG, lv_scr_act(), LV_ALIGN_IN_RIGHT_MID, -15, 80); - lv_obj_set_style_local_bg_opa(btnNextBG, LV_BTN_PART_MAIN, LV_STATE_DEFAULT, LV_OPA_30); - lv_obj_set_style_local_value_str(btnNextBG, LV_BTN_PART_MAIN, LV_STATE_DEFAULT, ">"); - lv_obj_set_event_cb(btnNextBG, event_handler); - - btnPrevBG = lv_btn_create(lv_scr_act(), nullptr); - btnPrevBG->user_data = this; - lv_obj_set_size(btnPrevBG, 60, 60); - lv_obj_align(btnPrevBG, lv_scr_act(), LV_ALIGN_IN_LEFT_MID, 15, 80); - lv_obj_set_style_local_bg_opa(btnPrevBG, LV_BTN_PART_MAIN, LV_STATE_DEFAULT, LV_OPA_30); - lv_obj_set_style_local_value_str(btnPrevBG, LV_BTN_PART_MAIN, LV_STATE_DEFAULT, "<"); - lv_obj_set_event_cb(btnPrevBG, event_handler); - - btnReset = lv_btn_create(lv_scr_act(), nullptr); - btnReset->user_data = this; - lv_obj_set_size(btnReset, 60, 60); - lv_obj_align(btnReset, lv_scr_act(), LV_ALIGN_CENTER, 0, 80); - lv_obj_set_style_local_bg_opa(btnReset, LV_BTN_PART_MAIN, LV_STATE_DEFAULT, LV_OPA_30); - lv_obj_set_style_local_value_str(btnReset, LV_BTN_PART_MAIN, LV_STATE_DEFAULT, "Rst"); - lv_obj_set_event_cb(btnReset, event_handler); - - btnRandom = lv_btn_create(lv_scr_act(), nullptr); - btnRandom->user_data = this; - lv_obj_set_size(btnRandom, 60, 60); - lv_obj_align(btnRandom, lv_scr_act(), LV_ALIGN_CENTER, 0, 0); - lv_obj_set_style_local_bg_opa(btnRandom, LV_BTN_PART_MAIN, LV_STATE_DEFAULT, LV_OPA_30); - lv_obj_set_style_local_value_str(btnRandom, LV_BTN_PART_MAIN, LV_STATE_DEFAULT, "Rnd"); - lv_obj_set_event_cb(btnRandom, event_handler); -} - -SettingPineTimeStyle::~SettingPineTimeStyle() { - lv_obj_clean(lv_scr_act()); - settingsController.SaveSettings(); -} - -void SettingPineTimeStyle::UpdateSelected(lv_obj_t* object, lv_event_t event) { - auto valueTime = settingsController.GetPTSColorTime(); - auto valueBar = settingsController.GetPTSColorBar(); - auto valueBG = settingsController.GetPTSColorBG(); - - if (event == LV_EVENT_CLICKED) { - if (object == btnNextTime) { - valueTime = GetNext(valueTime); - - settingsController.SetPTSColorTime(valueTime); - lv_obj_set_style_local_text_color(timeDD1, LV_LABEL_PART_MAIN, LV_STATE_DEFAULT, Convert(valueTime)); - lv_obj_set_style_local_text_color(timeDD2, LV_LABEL_PART_MAIN, LV_STATE_DEFAULT, Convert(valueTime)); - lv_obj_set_style_local_text_color(timeAMPM, LV_LABEL_PART_MAIN, LV_STATE_DEFAULT, Convert(valueTime)); - } - if (object == btnPrevTime) { - valueTime = GetPrevious(valueTime); - settingsController.SetPTSColorTime(valueTime); - lv_obj_set_style_local_text_color(timeDD1, LV_LABEL_PART_MAIN, LV_STATE_DEFAULT, Convert(valueTime)); - lv_obj_set_style_local_text_color(timeDD2, LV_LABEL_PART_MAIN, LV_STATE_DEFAULT, Convert(valueTime)); - lv_obj_set_style_local_text_color(timeAMPM, LV_LABEL_PART_MAIN, LV_STATE_DEFAULT, Convert(valueTime)); - } - if (object == btnNextBar) { - valueBar = GetNext(valueBar); - if(valueBar == Controllers::Settings::Colors::Black) - valueBar = GetNext(valueBar); - settingsController.SetPTSColorBar(valueBar); - lv_obj_set_style_local_bg_color(sidebar, LV_BTN_PART_MAIN, LV_STATE_DEFAULT, Convert(valueBar)); - } - if (object == btnPrevBar) { - valueBar = GetPrevious(valueBar); - if(valueBar == Controllers::Settings::Colors::Black) - valueBar = GetPrevious(valueBar); - settingsController.SetPTSColorBar(valueBar); - lv_obj_set_style_local_bg_color(sidebar, LV_BTN_PART_MAIN, LV_STATE_DEFAULT, Convert(valueBar)); - } - if (object == btnNextBG) { - valueBG = GetNext(valueBG); - settingsController.SetPTSColorBG(valueBG); - lv_obj_set_style_local_bg_color(timebar, LV_BTN_PART_MAIN, LV_STATE_DEFAULT, Convert(valueBG)); - } - if (object == btnPrevBG) { - valueBG = GetPrevious(valueBG); - settingsController.SetPTSColorBG(valueBG); - lv_obj_set_style_local_bg_color(timebar, LV_BTN_PART_MAIN, LV_STATE_DEFAULT, Convert(valueBG)); - } - if (object == btnReset) { - settingsController.SetPTSColorTime(Controllers::Settings::Colors::Teal); - lv_obj_set_style_local_text_color(timeDD1, LV_LABEL_PART_MAIN, LV_STATE_DEFAULT, Convert(Controllers::Settings::Colors::Teal)); - lv_obj_set_style_local_text_color(timeDD2, LV_LABEL_PART_MAIN, LV_STATE_DEFAULT, Convert(Controllers::Settings::Colors::Teal)); - lv_obj_set_style_local_text_color(timeAMPM, LV_LABEL_PART_MAIN, LV_STATE_DEFAULT, Convert(Controllers::Settings::Colors::Teal)); - settingsController.SetPTSColorBar(Controllers::Settings::Colors::Teal); - lv_obj_set_style_local_bg_color(sidebar, LV_BTN_PART_MAIN, LV_STATE_DEFAULT, Convert(Controllers::Settings::Colors::Teal)); - settingsController.SetPTSColorBG(Controllers::Settings::Colors::Black); - lv_obj_set_style_local_bg_color(timebar, LV_BTN_PART_MAIN, LV_STATE_DEFAULT, Convert(Controllers::Settings::Colors::Black)); - } - if (object == btnRandom) { - uint8_t randTime = rand() % 17; - uint8_t randBar = rand() % 17; - uint8_t randBG = rand() % 17; - // Check if the time color is the same as its background, or if the sidebar is black. If so, change them to more useful values. - if (randTime == randBG) { - randBG += 1; - } - if (randBar == 3) { - randBar -= 1; - } - settingsController.SetPTSColorTime(static_cast(randTime)); - lv_obj_set_style_local_text_color(timeDD1, LV_LABEL_PART_MAIN, LV_STATE_DEFAULT, Convert(static_cast(randTime))); - lv_obj_set_style_local_text_color(timeDD2, LV_LABEL_PART_MAIN, LV_STATE_DEFAULT, Convert(static_cast(randTime))); - lv_obj_set_style_local_text_color(timeAMPM, LV_LABEL_PART_MAIN, LV_STATE_DEFAULT, Convert(static_cast(randTime))); - settingsController.SetPTSColorBar(static_cast(randBar)); - lv_obj_set_style_local_bg_color(sidebar, LV_BTN_PART_MAIN, LV_STATE_DEFAULT, Convert(static_cast(randBar))); - settingsController.SetPTSColorBG(static_cast(randBG)); - lv_obj_set_style_local_bg_color(timebar, LV_BTN_PART_MAIN, LV_STATE_DEFAULT, Convert(static_cast(randBG))); - } - } -} - -Pinetime::Controllers::Settings::Colors SettingPineTimeStyle::GetNext(Pinetime::Controllers::Settings::Colors color) { - auto colorAsInt = static_cast(color); - Pinetime::Controllers::Settings::Colors nextColor; - if (colorAsInt < 16) { - nextColor = static_cast(colorAsInt + 1); - } else { - nextColor = static_cast(0); - } - return nextColor; -} - -Pinetime::Controllers::Settings::Colors SettingPineTimeStyle::GetPrevious(Pinetime::Controllers::Settings::Colors color) { - auto colorAsInt = static_cast(color); - Pinetime::Controllers::Settings::Colors prevColor; - - if (colorAsInt > 0) { - prevColor = static_cast(colorAsInt - 1); - } else { - prevColor = static_cast(16); - } - return prevColor; -} diff --git a/src/displayapp/screens/settings/SettingPineTimeStyle.h b/src/displayapp/screens/settings/SettingPineTimeStyle.h deleted file mode 100644 index 397bd86d..00000000 --- a/src/displayapp/screens/settings/SettingPineTimeStyle.h +++ /dev/null @@ -1,56 +0,0 @@ -#pragma once - -#include -#include -#include "components/settings/Settings.h" -#include "displayapp/screens/Screen.h" - -namespace Pinetime { - - namespace Applications { - namespace Screens { - - class SettingPineTimeStyle : public Screen{ - public: - SettingPineTimeStyle(DisplayApp* app, Pinetime::Controllers::Settings &settingsController); - ~SettingPineTimeStyle() override; - - void UpdateSelected(lv_obj_t *object, lv_event_t event); - - private: - Controllers::Settings& settingsController; - - Pinetime::Controllers::Settings::Colors GetNext(Controllers::Settings::Colors color); - Pinetime::Controllers::Settings::Colors GetPrevious(Controllers::Settings::Colors color); - - lv_obj_t * btnNextTime; - lv_obj_t * btnPrevTime; - lv_obj_t * btnNextBar; - lv_obj_t * btnPrevBar; - lv_obj_t * btnNextBG; - lv_obj_t * btnPrevBG; - lv_obj_t * btnReset; - lv_obj_t * btnRandom; - 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 * calendarOuter; - lv_obj_t * calendarInner; - lv_obj_t * calendarBar1; - lv_obj_t * calendarBar2; - lv_obj_t * calendarCrossBar1; - lv_obj_t * calendarCrossBar2; - lv_obj_t * stepGauge; - lv_color_t needle_colors[1]; - }; - } - } -} diff --git a/src/displayapp/screens/settings/Settings.cpp b/src/displayapp/screens/settings/Settings.cpp index e3319f03..aa422e25 100644 --- a/src/displayapp/screens/settings/Settings.cpp +++ b/src/displayapp/screens/settings/Settings.cpp @@ -18,9 +18,6 @@ Settings::Settings(Pinetime::Applications::DisplayApp* app, Pinetime::Controller }, [this]() -> std::unique_ptr { return CreateScreen2(); - }, - [this]() -> std::unique_ptr { - return CreateScreen3(); }}, Screens::ScreenListModes::UpDown} { } @@ -42,7 +39,7 @@ std::unique_ptr Settings::CreateScreen1() { {Symbols::home, "Watch face", Apps::SettingWatchFace}, }}; - return std::make_unique(0, 3, app, settingsController, applications); + return std::make_unique(0, 2, app, settingsController, applications); } std::unique_ptr Settings::CreateScreen2() { @@ -50,21 +47,9 @@ std::unique_ptr Settings::CreateScreen2() { std::array applications {{ {Symbols::shoe, "Steps", Apps::SettingSteps}, {Symbols::batteryHalf, "Battery", Apps::BatteryInfo}, - {Symbols::paintbrush, "PTS Colors", Apps::SettingPineTimeStyle}, {Symbols::check, "Firmware", Apps::FirmwareValidation}, - }}; - - return std::make_unique(1, 3, app, settingsController, applications); -} - -std::unique_ptr Settings::CreateScreen3() { - - std::array applications {{ {Symbols::list, "About", Apps::SysInfo}, - {Symbols::none, "None", Apps::None}, - {Symbols::none, "None", Apps::None}, - {Symbols::none, "None", Apps::None}, }}; - return std::make_unique(2, 3, app, settingsController, applications); -} + return std::make_unique(1, 2, app, settingsController, applications); +} \ No newline at end of file From 1c86796eac20f6f8c3e6c1973fa080ef15bd7f3f Mon Sep 17 00:00:00 2001 From: Kieran Cawthray Date: Mon, 18 Oct 2021 22:52:53 +0200 Subject: [PATCH 003/188] More duplicate color dodging --- src/displayapp/screens/PineTimeStyle.cpp | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/src/displayapp/screens/PineTimeStyle.cpp b/src/displayapp/screens/PineTimeStyle.cpp index e035f399..ad1b45eb 100644 --- a/src/displayapp/screens/PineTimeStyle.cpp +++ b/src/displayapp/screens/PineTimeStyle.cpp @@ -419,8 +419,8 @@ void PineTimeStyle::Refresh() { lv_obj_set_style_local_scale_grad_color(stepGauge, LV_GAUGE_PART_MAIN, LV_STATE_DEFAULT, LV_COLOR_WHITE); } } - if (lv_obj_is_visible(btnSet) == true) { - if ((savedTick > 0) && (lv_tick_get() - savedTick > 5000)) { + if (lv_obj_get_hidden(btnSet) == false) { + if ((savedTick > 0) && (lv_tick_get() - savedTick > 3000)) { lv_obj_set_hidden(btnSet, true); savedTick = 0; } @@ -435,7 +435,8 @@ void PineTimeStyle::UpdateSelected(lv_obj_t* object, lv_event_t event) { if (event == LV_EVENT_CLICKED) { if (object == btnNextTime) { valueTime = GetNext(valueTime); - + if(valueTime == valueBG) + valueTime = GetNext(valueTime); settingsController.SetPTSColorTime(valueTime); lv_obj_set_style_local_text_color(timeDD1, LV_LABEL_PART_MAIN, LV_STATE_DEFAULT, Convert(valueTime)); lv_obj_set_style_local_text_color(timeDD2, LV_LABEL_PART_MAIN, LV_STATE_DEFAULT, Convert(valueTime)); @@ -443,6 +444,8 @@ void PineTimeStyle::UpdateSelected(lv_obj_t* object, lv_event_t event) { } if (object == btnPrevTime) { valueTime = GetPrevious(valueTime); + if(valueTime == valueBG) + valueTime = GetPrevious(valueTime); settingsController.SetPTSColorTime(valueTime); lv_obj_set_style_local_text_color(timeDD1, LV_LABEL_PART_MAIN, LV_STATE_DEFAULT, Convert(valueTime)); lv_obj_set_style_local_text_color(timeDD2, LV_LABEL_PART_MAIN, LV_STATE_DEFAULT, Convert(valueTime)); @@ -464,11 +467,15 @@ void PineTimeStyle::UpdateSelected(lv_obj_t* object, lv_event_t event) { } if (object == btnNextBG) { valueBG = GetNext(valueBG); + if(valueBG == valueTime) + valueBG = GetNext(valueBG); settingsController.SetPTSColorBG(valueBG); lv_obj_set_style_local_bg_color(timebar, LV_BTN_PART_MAIN, LV_STATE_DEFAULT, Convert(valueBG)); } if (object == btnPrevBG) { valueBG = GetPrevious(valueBG); + if(valueBG == valueTime) + valueBG = GetPrevious(valueBG); settingsController.SetPTSColorBG(valueBG); lv_obj_set_style_local_bg_color(timebar, LV_BTN_PART_MAIN, LV_STATE_DEFAULT, Convert(valueBG)); } From c4ab17f58707771256c6fffd8db63d32e2831610 Mon Sep 17 00:00:00 2001 From: Kieran Cawthray Date: Mon, 18 Oct 2021 23:04:12 +0200 Subject: [PATCH 004/188] Disable DoubleTap when settings buttons are displayed --- src/displayapp/screens/PineTimeStyle.cpp | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/displayapp/screens/PineTimeStyle.cpp b/src/displayapp/screens/PineTimeStyle.cpp index ad1b45eb..6dd8f485 100644 --- a/src/displayapp/screens/PineTimeStyle.cpp +++ b/src/displayapp/screens/PineTimeStyle.cpp @@ -306,6 +306,9 @@ bool PineTimeStyle::OnTouchEvent(Pinetime::Applications::TouchEvents event) { savedTick = lv_tick_get(); return true; } + if ((event == Pinetime::Applications::TouchEvents::DoubleTap) && (lv_obj_get_hidden(btnRandom) == false)) { + return true; + } return false; } From 1c3372b3195168897a0d563690df302848d32f86 Mon Sep 17 00:00:00 2001 From: Kieran Cawthray Date: Mon, 18 Oct 2021 23:29:41 +0200 Subject: [PATCH 005/188] Fix settings merge error --- src/displayapp/screens/settings/Settings.cpp | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/src/displayapp/screens/settings/Settings.cpp b/src/displayapp/screens/settings/Settings.cpp index 46fa50ab..2d05ddeb 100644 --- a/src/displayapp/screens/settings/Settings.cpp +++ b/src/displayapp/screens/settings/Settings.cpp @@ -18,6 +18,9 @@ Settings::Settings(Pinetime::Applications::DisplayApp* app, Pinetime::Controller }, [this]() -> std::unique_ptr { return CreateScreen2(); + }, + [this]() -> std::unique_ptr { + return CreateScreen3(); }}, Screens::ScreenListModes::UpDown} { } @@ -39,7 +42,7 @@ std::unique_ptr Settings::CreateScreen1() { {Symbols::home, "Watch face", Apps::SettingWatchFace}, }}; - return std::make_unique(0, 2, app, settingsController, applications); + return std::make_unique(0, 3, app, settingsController, applications); } std::unique_ptr Settings::CreateScreen2() { @@ -63,5 +66,5 @@ std::unique_ptr Settings::CreateScreen3() { {Symbols::none, "None", Apps::None} }}; - return std::make_unique(1, 2, app, settingsController, applications); + return std::make_unique(2, 3, app, settingsController, applications); } \ No newline at end of file From 994f373a1428d3d82f12ada60ab5bd05dc99f708 Mon Sep 17 00:00:00 2001 From: Kieran Cawthray Date: Tue, 19 Oct 2021 00:22:45 +0200 Subject: [PATCH 006/188] Change gauge needle color when background is white --- src/displayapp/screens/PineTimeStyle.cpp | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/src/displayapp/screens/PineTimeStyle.cpp b/src/displayapp/screens/PineTimeStyle.cpp index 6d4855d2..21599cc4 100644 --- a/src/displayapp/screens/PineTimeStyle.cpp +++ b/src/displayapp/screens/PineTimeStyle.cpp @@ -168,7 +168,11 @@ PineTimeStyle::PineTimeStyle(DisplayApp* app, lv_obj_align(dateMonth, sidebar, LV_ALIGN_CENTER, 0, 32); // Step count gauge - needle_colors[0] = LV_COLOR_WHITE; + if (settingsController.GetPTSColorBar() == Pinetime::Controllers::Settings::Colors::White) { + needle_colors[0] = LV_COLOR_BLACK; + } else { + 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); @@ -458,6 +462,11 @@ void PineTimeStyle::UpdateSelected(lv_obj_t* object, lv_event_t event) { valueBar = GetNext(valueBar); if(valueBar == Controllers::Settings::Colors::Black) valueBar = GetNext(valueBar); + if(valueBar == Controllers::Settings::Colors::White) { + needle_colors[0] = LV_COLOR_BLACK; + } else { + needle_colors[0] = LV_COLOR_WHITE; + } settingsController.SetPTSColorBar(valueBar); lv_obj_set_style_local_bg_color(sidebar, LV_BTN_PART_MAIN, LV_STATE_DEFAULT, Convert(valueBar)); } @@ -465,6 +474,11 @@ void PineTimeStyle::UpdateSelected(lv_obj_t* object, lv_event_t event) { valueBar = GetPrevious(valueBar); if(valueBar == Controllers::Settings::Colors::Black) valueBar = GetPrevious(valueBar); + if(valueBar == Controllers::Settings::Colors::White) { + needle_colors[0] = LV_COLOR_BLACK; + } else { + needle_colors[0] = LV_COLOR_WHITE; + } settingsController.SetPTSColorBar(valueBar); lv_obj_set_style_local_bg_color(sidebar, LV_BTN_PART_MAIN, LV_STATE_DEFAULT, Convert(valueBar)); } From f45e094adf4dee6b226ba122aae9e53f47e1b4d6 Mon Sep 17 00:00:00 2001 From: Kieran Cawthray Date: Wed, 20 Oct 2021 11:25:06 +0200 Subject: [PATCH 007/188] Ensure needle color is visible one reset/randomize --- src/displayapp/screens/PineTimeStyle.cpp | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/displayapp/screens/PineTimeStyle.cpp b/src/displayapp/screens/PineTimeStyle.cpp index 21599cc4..98f15ef0 100644 --- a/src/displayapp/screens/PineTimeStyle.cpp +++ b/src/displayapp/screens/PineTimeStyle.cpp @@ -497,6 +497,7 @@ void PineTimeStyle::UpdateSelected(lv_obj_t* object, lv_event_t event) { lv_obj_set_style_local_bg_color(timebar, LV_BTN_PART_MAIN, LV_STATE_DEFAULT, Convert(valueBG)); } if (object == btnReset) { + needle_colors[0] = LV_COLOR_WHITE; settingsController.SetPTSColorTime(Controllers::Settings::Colors::Teal); lv_obj_set_style_local_text_color(timeDD1, LV_LABEL_PART_MAIN, LV_STATE_DEFAULT, Convert(Controllers::Settings::Colors::Teal)); lv_obj_set_style_local_text_color(timeDD2, LV_LABEL_PART_MAIN, LV_STATE_DEFAULT, Convert(Controllers::Settings::Colors::Teal)); @@ -517,6 +518,11 @@ void PineTimeStyle::UpdateSelected(lv_obj_t* object, lv_event_t event) { if (randBar == 3) { randBar -= 1; } + if (randBar == 0) { + needle_colors[0] = LV_COLOR_BLACK; + } else { + needle_colors[0] = LV_COLOR_WHITE; + } settingsController.SetPTSColorTime(static_cast(randTime)); lv_obj_set_style_local_text_color(timeDD1, LV_LABEL_PART_MAIN, LV_STATE_DEFAULT, Convert(static_cast(randTime))); lv_obj_set_style_local_text_color(timeDD2, LV_LABEL_PART_MAIN, LV_STATE_DEFAULT, Convert(static_cast(randTime))); From 074d3420c812e89e23c95cc36db78749ff553428 Mon Sep 17 00:00:00 2001 From: Kieran Cawthray Date: Wed, 20 Oct 2021 11:30:06 +0200 Subject: [PATCH 008/188] Ensure needle color is visible on reset/randomize --- src/displayapp/screens/PineTimeStyle.cpp | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/displayapp/screens/PineTimeStyle.cpp b/src/displayapp/screens/PineTimeStyle.cpp index 21599cc4..98f15ef0 100644 --- a/src/displayapp/screens/PineTimeStyle.cpp +++ b/src/displayapp/screens/PineTimeStyle.cpp @@ -497,6 +497,7 @@ void PineTimeStyle::UpdateSelected(lv_obj_t* object, lv_event_t event) { lv_obj_set_style_local_bg_color(timebar, LV_BTN_PART_MAIN, LV_STATE_DEFAULT, Convert(valueBG)); } if (object == btnReset) { + needle_colors[0] = LV_COLOR_WHITE; settingsController.SetPTSColorTime(Controllers::Settings::Colors::Teal); lv_obj_set_style_local_text_color(timeDD1, LV_LABEL_PART_MAIN, LV_STATE_DEFAULT, Convert(Controllers::Settings::Colors::Teal)); lv_obj_set_style_local_text_color(timeDD2, LV_LABEL_PART_MAIN, LV_STATE_DEFAULT, Convert(Controllers::Settings::Colors::Teal)); @@ -517,6 +518,11 @@ void PineTimeStyle::UpdateSelected(lv_obj_t* object, lv_event_t event) { if (randBar == 3) { randBar -= 1; } + if (randBar == 0) { + needle_colors[0] = LV_COLOR_BLACK; + } else { + needle_colors[0] = LV_COLOR_WHITE; + } settingsController.SetPTSColorTime(static_cast(randTime)); lv_obj_set_style_local_text_color(timeDD1, LV_LABEL_PART_MAIN, LV_STATE_DEFAULT, Convert(static_cast(randTime))); lv_obj_set_style_local_text_color(timeDD2, LV_LABEL_PART_MAIN, LV_STATE_DEFAULT, Convert(static_cast(randTime))); From 32978b6a06330dcc5b7e757a4ba9d9b5349277f2 Mon Sep 17 00:00:00 2001 From: Kieran Cawthray Date: Wed, 20 Oct 2021 15:36:28 +0200 Subject: [PATCH 009/188] Restore settings order --- src/displayapp/screens/settings/Settings.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/displayapp/screens/settings/Settings.cpp b/src/displayapp/screens/settings/Settings.cpp index 2d05ddeb..40a5a66b 100644 --- a/src/displayapp/screens/settings/Settings.cpp +++ b/src/displayapp/screens/settings/Settings.cpp @@ -49,9 +49,9 @@ std::unique_ptr Settings::CreateScreen2() { std::array applications {{ {Symbols::shoe, "Steps", Apps::SettingSteps}, - {Symbols::batteryHalf, "Battery", Apps::BatteryInfo}, {Symbols::clock, "Set date", Apps::SettingSetDate}, - {Symbols::clock, "Set time", Apps::SettingSetTime} + {Symbols::clock, "Set time", Apps::SettingSetTime}, + {Symbols::batteryHalf, "Battery", Apps::BatteryInfo} }}; return std::make_unique(1, 3, app, settingsController, applications); From 3ed01b33e7303a64615bfc0db2e9d42bb2624bb6 Mon Sep 17 00:00:00 2001 From: Kieran Cawthray Date: Wed, 20 Oct 2021 17:44:10 +0200 Subject: [PATCH 010/188] Improve random color selection, disable longpress when settings are visible --- src/displayapp/screens/PineTimeStyle.cpp | 35 ++++++++++++------------ 1 file changed, 17 insertions(+), 18 deletions(-) diff --git a/src/displayapp/screens/PineTimeStyle.cpp b/src/displayapp/screens/PineTimeStyle.cpp index 98f15ef0..fa9aec1c 100644 --- a/src/displayapp/screens/PineTimeStyle.cpp +++ b/src/displayapp/screens/PineTimeStyle.cpp @@ -305,7 +305,7 @@ PineTimeStyle::~PineTimeStyle() { } bool PineTimeStyle::OnTouchEvent(Pinetime::Applications::TouchEvents event) { - if (event == Pinetime::Applications::TouchEvents::LongTap) { + if ((event == Pinetime::Applications::TouchEvents::LongTap) && (lv_obj_get_hidden(btnRandom) == true)) { lv_obj_set_hidden(btnSet, false); savedTick = lv_tick_get(); return true; @@ -508,29 +508,28 @@ void PineTimeStyle::UpdateSelected(lv_obj_t* object, lv_event_t event) { lv_obj_set_style_local_bg_color(timebar, LV_BTN_PART_MAIN, LV_STATE_DEFAULT, Convert(Controllers::Settings::Colors::Black)); } if (object == btnRandom) { - uint8_t randTime = rand() % 17; - uint8_t randBar = rand() % 17; - uint8_t randBG = rand() % 17; - // Check if the time color is the same as its background, or if the sidebar is black. If so, change them to more useful values. - if (randTime == randBG) { - randBG += 1; + valueTime = static_cast(rand() % 17); + valueBar = static_cast(rand() % 17); + valueBG = static_cast(rand() % 17); + if (valueTime == valueBG) { + valueBG = GetNext(valueBG); } - if (randBar == 3) { - randBar -= 1; + if (valueBar == Controllers::Settings::Colors::Black) { + valueBar = GetPrevious(valueBar); } - if (randBar == 0) { + if (valueBar == Controllers::Settings::Colors::White) { needle_colors[0] = LV_COLOR_BLACK; } else { needle_colors[0] = LV_COLOR_WHITE; } - settingsController.SetPTSColorTime(static_cast(randTime)); - lv_obj_set_style_local_text_color(timeDD1, LV_LABEL_PART_MAIN, LV_STATE_DEFAULT, Convert(static_cast(randTime))); - lv_obj_set_style_local_text_color(timeDD2, LV_LABEL_PART_MAIN, LV_STATE_DEFAULT, Convert(static_cast(randTime))); - lv_obj_set_style_local_text_color(timeAMPM, LV_LABEL_PART_MAIN, LV_STATE_DEFAULT, Convert(static_cast(randTime))); - settingsController.SetPTSColorBar(static_cast(randBar)); - lv_obj_set_style_local_bg_color(sidebar, LV_BTN_PART_MAIN, LV_STATE_DEFAULT, Convert(static_cast(randBar))); - settingsController.SetPTSColorBG(static_cast(randBG)); - lv_obj_set_style_local_bg_color(timebar, LV_BTN_PART_MAIN, LV_STATE_DEFAULT, Convert(static_cast(randBG))); + settingsController.SetPTSColorTime(static_cast(valueTime)); + lv_obj_set_style_local_text_color(timeDD1, LV_LABEL_PART_MAIN, LV_STATE_DEFAULT, Convert(valueTime)); + lv_obj_set_style_local_text_color(timeDD2, LV_LABEL_PART_MAIN, LV_STATE_DEFAULT, Convert(valueTime)); + lv_obj_set_style_local_text_color(timeAMPM, LV_LABEL_PART_MAIN, LV_STATE_DEFAULT, Convert(valueTime)); + settingsController.SetPTSColorBar(static_cast(valueBar)); + lv_obj_set_style_local_bg_color(sidebar, LV_BTN_PART_MAIN, LV_STATE_DEFAULT, Convert(valueBar)); + settingsController.SetPTSColorBG(static_cast(valueBG)); + lv_obj_set_style_local_bg_color(timebar, LV_BTN_PART_MAIN, LV_STATE_DEFAULT, Convert(valueBG)); } if (object == btnClose) { settingsController.SaveSettings(); From 411c10ec317464a79c353dc5c18b805cf4bdf7d0 Mon Sep 17 00:00:00 2001 From: Kieran Cawthray Date: Wed, 20 Oct 2021 18:07:08 +0200 Subject: [PATCH 011/188] Update GetNext/GetPrevious --- src/displayapp/screens/PineTimeStyle.cpp | 13 ++----------- 1 file changed, 2 insertions(+), 11 deletions(-) diff --git a/src/displayapp/screens/PineTimeStyle.cpp b/src/displayapp/screens/PineTimeStyle.cpp index fa9aec1c..a2b94b5e 100644 --- a/src/displayapp/screens/PineTimeStyle.cpp +++ b/src/displayapp/screens/PineTimeStyle.cpp @@ -561,22 +561,13 @@ void PineTimeStyle::UpdateSelected(lv_obj_t* object, lv_event_t event) { Pinetime::Controllers::Settings::Colors PineTimeStyle::GetNext(Pinetime::Controllers::Settings::Colors color) { auto colorAsInt = static_cast(color); Pinetime::Controllers::Settings::Colors nextColor; - if (colorAsInt < 16) { - nextColor = static_cast(colorAsInt + 1); - } else { - nextColor = static_cast(0); - } + nextColor = static_cast((colorAsInt + 1) % 17); return nextColor; } Pinetime::Controllers::Settings::Colors PineTimeStyle::GetPrevious(Pinetime::Controllers::Settings::Colors color) { auto colorAsInt = static_cast(color); Pinetime::Controllers::Settings::Colors prevColor; - - if (colorAsInt > 0) { - prevColor = static_cast(colorAsInt - 1); - } else { - prevColor = static_cast(16); - } + prevColor = static_cast((colorAsInt - 1) % 17); return prevColor; } \ No newline at end of file From 85d494a987e8edfd51fbb0eb6dfa04ea108cbb48 Mon Sep 17 00:00:00 2001 From: Kieran Cawthray Date: Sat, 23 Oct 2021 18:12:41 +0200 Subject: [PATCH 012/188] Revert "Update GetNext/GetPrevious" This reverts commit 411c10ec317464a79c353dc5c18b805cf4bdf7d0. --- src/displayapp/screens/PineTimeStyle.cpp | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/src/displayapp/screens/PineTimeStyle.cpp b/src/displayapp/screens/PineTimeStyle.cpp index a2b94b5e..fa9aec1c 100644 --- a/src/displayapp/screens/PineTimeStyle.cpp +++ b/src/displayapp/screens/PineTimeStyle.cpp @@ -561,13 +561,22 @@ void PineTimeStyle::UpdateSelected(lv_obj_t* object, lv_event_t event) { Pinetime::Controllers::Settings::Colors PineTimeStyle::GetNext(Pinetime::Controllers::Settings::Colors color) { auto colorAsInt = static_cast(color); Pinetime::Controllers::Settings::Colors nextColor; - nextColor = static_cast((colorAsInt + 1) % 17); + if (colorAsInt < 16) { + nextColor = static_cast(colorAsInt + 1); + } else { + nextColor = static_cast(0); + } return nextColor; } Pinetime::Controllers::Settings::Colors PineTimeStyle::GetPrevious(Pinetime::Controllers::Settings::Colors color) { auto colorAsInt = static_cast(color); Pinetime::Controllers::Settings::Colors prevColor; - prevColor = static_cast((colorAsInt - 1) % 17); + + if (colorAsInt > 0) { + prevColor = static_cast(colorAsInt - 1); + } else { + prevColor = static_cast(16); + } return prevColor; } \ No newline at end of file From d5dfa8087679b644c13e1d420b8ef2fc894b3b51 Mon Sep 17 00:00:00 2001 From: Riku Isokoski Date: Mon, 25 Oct 2021 12:53:14 +0300 Subject: [PATCH 013/188] Newer buttonhandler --- src/CMakeLists.txt | 3 + src/buttonhandler/ButtonHandler.cpp | 85 +++++++++++++++++++++++++++++ src/buttonhandler/ButtonHandler.h | 24 ++++++++ src/displayapp/DisplayApp.cpp | 14 +++++ src/displayapp/Messages.h | 3 + src/main.cpp | 24 ++++---- src/systemtask/Messages.h | 7 ++- src/systemtask/SystemTask.cpp | 63 ++++++++++++++------- src/systemtask/SystemTask.h | 7 ++- 9 files changed, 194 insertions(+), 36 deletions(-) create mode 100644 src/buttonhandler/ButtonHandler.cpp create mode 100644 src/buttonhandler/ButtonHandler.h diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index a839e080..e727b2b0 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -507,6 +507,7 @@ list(APPEND SOURCE_FILES components/heartrate/Ptagc.cpp components/heartrate/HeartRateController.cpp + buttonhandler/ButtonHandler.cpp touchhandler/TouchHandler.cpp ) @@ -567,6 +568,7 @@ list(APPEND RECOVERY_SOURCE_FILES components/heartrate/Ptagc.cpp components/motor/MotorController.cpp components/fs/FS.cpp + buttonhandler/ButtonHandler.cpp touchhandler/TouchHandler.cpp ) @@ -681,6 +683,7 @@ set(INCLUDE_FILES components/heartrate/Ptagc.h components/heartrate/HeartRateController.h components/motor/MotorController.h + buttonhandler/ButtonHandler.h touchhandler/TouchHandler.h ) diff --git a/src/buttonhandler/ButtonHandler.cpp b/src/buttonhandler/ButtonHandler.cpp new file mode 100644 index 00000000..997409e5 --- /dev/null +++ b/src/buttonhandler/ButtonHandler.cpp @@ -0,0 +1,85 @@ +#include "ButtonHandler.h" + +using namespace Pinetime::Controllers; + +void ButtonTimerCallback(TimerHandle_t xTimer) { + auto* buttonHandler = static_cast(pvTimerGetTimerID(xTimer)); + buttonHandler->HandleEvent(ButtonHandler::Timer); +} + +void ButtonHandler::Init(Pinetime::System::SystemTask* systemTask) { + this->systemTask = systemTask; + buttonTimer = xTimerCreate("buttonTimer", 0, pdFALSE, this, ButtonTimerCallback); +} + +void ButtonHandler::HandleEvent(events event) { + static constexpr TickType_t doubleClickTime = pdMS_TO_TICKS(200); + static constexpr TickType_t longPressTime = pdMS_TO_TICKS(400); + static constexpr TickType_t longerPressTime = pdMS_TO_TICKS(2000); + + if (systemTask->IsSleeping()) { + // This is for faster wakeup, sacrificing special longpress and doubleclick handling while sleeping + systemTask->PushMessage(System::Messages::GoToRunning); + } else { + systemTask->PushMessage(System::Messages::ReloadIdleTimer); + } + + if (event == Press) { + buttonPressed = true; + } else if (event == Release) { + releaseTime = xTaskGetTickCount(); + buttonPressed = false; + } + + switch (state) { + case Idle: + if (event == Press) { + xTimerChangePeriod(buttonTimer, doubleClickTime, 0); + xTimerStart(buttonTimer, 0); + state = Pressed; + } + break; + case Pressed: + if (event == Press) { + if (xTaskGetTickCount() - releaseTime < doubleClickTime) { + systemTask->PushMessage(System::Messages::OnButtonDoubleClicked); + xTimerStop(buttonTimer, 0); + state = Idle; + } + } else if (event == Release) { + xTimerChangePeriod(buttonTimer, doubleClickTime, 0); + xTimerStart(buttonTimer, 0); + } else if (event == Timer) { + if (buttonPressed) { + xTimerChangePeriod(buttonTimer, longPressTime - doubleClickTime, 0); + xTimerStart(buttonTimer, 0); + state = Holding; + } else { + systemTask->PushMessage(System::Messages::OnButtonPushed); + state = Idle; + } + } + break; + case Holding: + if (event == Release) { + systemTask->PushMessage(System::Messages::OnButtonPushed); + xTimerStop(buttonTimer, 0); + state = Idle; + } else if (event == Timer) { + xTimerChangePeriod(buttonTimer, longerPressTime - longPressTime - doubleClickTime, 0); + xTimerStart(buttonTimer, 0); + systemTask->PushMessage(System::Messages::OnButtonLongPressed); + state = LongHeld; + } + break; + case LongHeld: + if (event == Release) { + xTimerStop(buttonTimer, 0); + state = Idle; + } else if (event == Timer) { + systemTask->PushMessage(System::Messages::OnButtonLongerPressed); + state = Idle; + } + break; + } +} diff --git a/src/buttonhandler/ButtonHandler.h b/src/buttonhandler/ButtonHandler.h new file mode 100644 index 00000000..5d5b57e9 --- /dev/null +++ b/src/buttonhandler/ButtonHandler.h @@ -0,0 +1,24 @@ +#pragma once + +#include "systemtask/SystemTask.h" +#include +#include + +namespace Pinetime { + namespace Controllers { + class ButtonHandler { + public: + enum events { Press, Release, Timer }; + void Init(Pinetime::System::SystemTask* systemTask); + void HandleEvent(events event); + + private: + Pinetime::System::SystemTask* systemTask = nullptr; + TickType_t releaseTime = 0; + TimerHandle_t buttonTimer; + bool buttonPressed = false; + enum states { Idle, Pressed, Holding, LongHeld }; + states state = Idle; + }; + } +} diff --git a/src/displayapp/DisplayApp.cpp b/src/displayapp/DisplayApp.cpp index abe5851e..13ee0045 100644 --- a/src/displayapp/DisplayApp.cpp +++ b/src/displayapp/DisplayApp.cpp @@ -260,6 +260,20 @@ void DisplayApp::Refresh() { } } break; + case Messages::ButtonLongPressed: + if (currentApp != Apps::Clock) { + LoadApp(Apps::Clock, DisplayApp::FullRefreshDirections::Down); + } + break; + case Messages::ButtonLongerPressed: + // Create reboot app and open it instead + LoadApp(Apps::SysInfo, DisplayApp::FullRefreshDirections::Up); + break; + case Messages::ButtonDoubleClicked: + if (currentApp != Apps::Notifications && currentApp != Apps::NotificationsPreview) { + LoadApp(Apps::Notifications, DisplayApp::FullRefreshDirections::Down); + } + break; case Messages::BleFirmwareUpdateStarted: LoadApp(Apps::FirmwareUpdate, DisplayApp::FullRefreshDirections::Down); diff --git a/src/displayapp/Messages.h b/src/displayapp/Messages.h index d48b646f..ab0a0608 100644 --- a/src/displayapp/Messages.h +++ b/src/displayapp/Messages.h @@ -9,6 +9,9 @@ namespace Pinetime { UpdateBleConnection, TouchEvent, ButtonPushed, + ButtonLongPressed, + ButtonLongerPressed, + ButtonDoubleClicked, NewNotification, TimerDone, BleFirmwareUpdateStarted, diff --git a/src/main.cpp b/src/main.cpp index fc772355..b942fd41 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -47,6 +47,7 @@ #include "systemtask/SystemTask.h" #include "drivers/PinMap.h" #include "touchhandler/TouchHandler.h" +#include "buttonhandler/ButtonHandler.h" #if NRF_LOG_ENABLED #include "logging/NrfLogger.h" @@ -96,8 +97,6 @@ TimerHandle_t debounceTimer; TimerHandle_t debounceChargeTimer; Pinetime::Controllers::Battery batteryController; Pinetime::Controllers::Ble bleController; -static constexpr uint8_t pinTouchIrq = Pinetime::PinMap::Cst816sIrq; -static constexpr uint8_t pinPowerPresentIrq = Pinetime::PinMap::PowerPresent; Pinetime::Controllers::HeartRateController heartRateController; Pinetime::Applications::HeartRateTask heartRateApp(heartRateSensor, heartRateController); @@ -110,6 +109,7 @@ Pinetime::Controllers::MotionController motionController; Pinetime::Controllers::TimerController timerController; Pinetime::Controllers::AlarmController alarmController {dateTimeController}; Pinetime::Controllers::TouchHandler touchHandler(touchPanel, lvgl); +Pinetime::Controllers::ButtonHandler buttonHandler; Pinetime::Controllers::FS fs {spiNorFlash}; Pinetime::Controllers::Settings settingsController {fs}; @@ -153,7 +153,8 @@ Pinetime::System::SystemTask systemTask(spi, displayApp, heartRateApp, fs, - touchHandler); + touchHandler, + buttonHandler); /* Variable Declarations for variables in noinit SRAM Increment NoInit_MagicValue upon adding variables to this area @@ -176,11 +177,11 @@ void nrfx_gpiote_evt_handler(nrfx_gpiote_pin_t pin, nrf_gpiote_polarity_t action if (pin == Pinetime::PinMap::PowerPresent and action == NRF_GPIOTE_POLARITY_TOGGLE) { xTimerStartFromISR(debounceChargeTimer, &xHigherPriorityTaskWoken); portYIELD_FROM_ISR(xHigherPriorityTaskWoken); - return; + } else if (pin == Pinetime::PinMap::Button) { + // This activates on button release as well due to bouncing + xTimerStartFromISR(debounceTimer, &xHigherPriorityTaskWoken); + portYIELD_FROM_ISR(xHigherPriorityTaskWoken); } - - xTimerStartFromISR(debounceTimer, &xHigherPriorityTaskWoken); - portYIELD_FROM_ISR(xHigherPriorityTaskWoken); } void DebounceTimerChargeCallback(TimerHandle_t xTimer) { @@ -188,9 +189,8 @@ void DebounceTimerChargeCallback(TimerHandle_t xTimer) { systemTask.PushMessage(Pinetime::System::Messages::OnChargingEvent); } -void DebounceTimerCallback(TimerHandle_t xTimer) { - xTimerStop(xTimer, 0); - systemTask.OnButtonPushed(); +void DebounceTimerCallback(TimerHandle_t /*unused*/) { + systemTask.PushMessage(Pinetime::System::Messages::HandleButtonEvent); } void SPIM0_SPIS0_TWIM0_TWIS0_SPI0_TWI0_IRQHandler(void) { @@ -319,8 +319,8 @@ int main(void) { } nrf_gpio_cfg_default(Pinetime::PinMap::TwiScl); - debounceTimer = xTimerCreate("debounceTimer", 200, pdFALSE, (void*) 0, DebounceTimerCallback); - debounceChargeTimer = xTimerCreate("debounceTimerCharge", 200, pdFALSE, (void*) 0, DebounceTimerChargeCallback); + debounceTimer = xTimerCreate("debounceTimer", 10, pdFALSE, nullptr, DebounceTimerCallback); + debounceChargeTimer = xTimerCreate("debounceTimerCharge", 200, pdFALSE, nullptr, DebounceTimerChargeCallback); // retrieve version stored by bootloader Pinetime::BootloaderVersion::SetVersion(NRF_TIMER2->CC[0]); diff --git a/src/systemtask/Messages.h b/src/systemtask/Messages.h index 5aa218d2..b0bdbf31 100644 --- a/src/systemtask/Messages.h +++ b/src/systemtask/Messages.h @@ -15,12 +15,17 @@ namespace Pinetime { BleFirmwareUpdateStarted, BleFirmwareUpdateFinished, OnTouchEvent, - OnButtonEvent, + OnButtonPushed, + OnButtonLongPressed, + OnButtonLongerPressed, + OnButtonDoubleClicked, + HandleButtonEvent, OnDisplayTaskSleeping, EnableSleeping, DisableSleeping, OnNewDay, OnChargingEvent, + ReloadIdleTimer, SetOffAlarm, StopRinging, MeasureBatteryTimerExpired, diff --git a/src/systemtask/SystemTask.cpp b/src/systemtask/SystemTask.cpp index e0a5907a..b7db0b9d 100644 --- a/src/systemtask/SystemTask.cpp +++ b/src/systemtask/SystemTask.cpp @@ -25,7 +25,6 @@ #include "main.h" #include "BootErrors.h" - #include using namespace Pinetime::System; @@ -77,7 +76,8 @@ SystemTask::SystemTask(Drivers::SpiMaster& spi, Pinetime::Applications::DisplayApp& displayApp, Pinetime::Applications::HeartRateTask& heartRateApp, Pinetime::Controllers::FS& fs, - Pinetime::Controllers::TouchHandler& touchHandler) + Pinetime::Controllers::TouchHandler& touchHandler, + Pinetime::Controllers::ButtonHandler& buttonHandler) : spi {spi}, lcd {lcd}, spiNorFlash {spiNorFlash}, @@ -101,8 +101,15 @@ SystemTask::SystemTask(Drivers::SpiMaster& spi, heartRateApp(heartRateApp), fs {fs}, touchHandler {touchHandler}, - nimbleController(*this, bleController, dateTimeController, notificationManager, - batteryController, spiNorFlash, heartRateController, motionController) { + buttonHandler {buttonHandler}, + nimbleController(*this, + bleController, + dateTimeController, + notificationManager, + batteryController, + spiNorFlash, + heartRateController, + motionController) { } void SystemTask::Start() { @@ -163,6 +170,8 @@ void SystemTask::Work() { heartRateSensor.Disable(); heartRateApp.Start(); + buttonHandler.Init(this); + // Button nrf_gpio_cfg_output(15); nrf_gpio_pin_set(15); @@ -326,9 +335,32 @@ void SystemTask::Work() { ReloadIdleTimer(); displayApp.PushMessage(Pinetime::Applications::Display::Messages::TouchEvent); break; - case Messages::OnButtonEvent: - ReloadIdleTimer(); - displayApp.PushMessage(Pinetime::Applications::Display::Messages::ButtonPushed); + case Messages::OnButtonPushed: + if (!isSleeping && !isGoingToSleep) { + displayApp.PushMessage(Pinetime::Applications::Display::Messages::ButtonPushed); + } + break; + case Messages::OnButtonLongPressed: + if (!isSleeping) { + displayApp.PushMessage(Pinetime::Applications::Display::Messages::ButtonLongPressed); + } + break; + case Messages::OnButtonLongerPressed: + if (!isSleeping) { + displayApp.PushMessage(Pinetime::Applications::Display::Messages::ButtonLongerPressed); + } + break; + case Messages::OnButtonDoubleClicked: + if (!isSleeping) { + displayApp.PushMessage(Pinetime::Applications::Display::Messages::ButtonDoubleClicked); + } + break; + case Messages::HandleButtonEvent: + if (nrf_gpio_pin_read(Pinetime::PinMap::Button) == 0) { + buttonHandler.HandleEvent(Pinetime::Controllers::ButtonHandler::Release); + } else { + buttonHandler.HandleEvent(Pinetime::Controllers::ButtonHandler::Press); + } break; case Messages::OnDisplayTaskSleeping: if (BootloaderVersion::IsValid()) { @@ -366,6 +398,9 @@ void SystemTask::Work() { case Messages::BatteryPercentageUpdated: nimbleController.NotifyBatteryLevel(batteryController.PercentRemaining()); break; + case Messages::ReloadIdleTimer: + ReloadIdleTimer(); + break; default: break; @@ -414,20 +449,6 @@ void SystemTask::UpdateMotion() { } } -void SystemTask::OnButtonPushed() { - if (isGoingToSleep) - return; - if (!isSleeping) { - NRF_LOG_INFO("[systemtask] Button pushed"); - PushMessage(Messages::OnButtonEvent); - } else { - if (!isWakingUp) { - NRF_LOG_INFO("[systemtask] Button pushed, waking up"); - GoToRunning(); - } - } -} - void SystemTask::GoToRunning() { if (isGoingToSleep or (not isSleeping) or isWakingUp) return; diff --git a/src/systemtask/SystemTask.h b/src/systemtask/SystemTask.h index 879c1be8..9967f75c 100644 --- a/src/systemtask/SystemTask.h +++ b/src/systemtask/SystemTask.h @@ -20,6 +20,7 @@ #include "components/alarm/AlarmController.h" #include "components/fs/FS.h" #include "touchhandler/TouchHandler.h" +#include "buttonhandler/ButtonHandler.h" #ifdef PINETIME_IS_RECOVERY #include "displayapp/DisplayAppRecovery.h" @@ -45,6 +46,7 @@ namespace Pinetime { } namespace Controllers { class TouchHandler; + class ButtonHandler; } namespace System { class SystemTask { @@ -71,12 +73,12 @@ namespace Pinetime { Pinetime::Applications::DisplayApp& displayApp, Pinetime::Applications::HeartRateTask& heartRateApp, Pinetime::Controllers::FS& fs, - Pinetime::Controllers::TouchHandler& touchHandler); + Pinetime::Controllers::TouchHandler& touchHandler, + Pinetime::Controllers::ButtonHandler& buttonHandler); void Start(); void PushMessage(Messages msg); - void OnButtonPushed(); void OnTouchEvent(); void OnIdle(); @@ -123,6 +125,7 @@ namespace Pinetime { Pinetime::Applications::HeartRateTask& heartRateApp; Pinetime::Controllers::FS& fs; Pinetime::Controllers::TouchHandler& touchHandler; + Pinetime::Controllers::ButtonHandler& buttonHandler; Pinetime::Controllers::NimbleController nimbleController; static void Process(void* instance); From b19a2a760b74f27c8d3db262bf43437f722f74bd Mon Sep 17 00:00:00 2001 From: Riku Isokoski Date: Mon, 25 Oct 2021 13:40:43 +0300 Subject: [PATCH 014/188] Use enum classes, remove old comment --- src/buttonhandler/ButtonHandler.cpp | 48 ++++++++++++++--------------- src/buttonhandler/ButtonHandler.h | 8 ++--- src/main.cpp | 1 - src/systemtask/SystemTask.cpp | 4 +-- 4 files changed, 30 insertions(+), 31 deletions(-) diff --git a/src/buttonhandler/ButtonHandler.cpp b/src/buttonhandler/ButtonHandler.cpp index 997409e5..b6067d27 100644 --- a/src/buttonhandler/ButtonHandler.cpp +++ b/src/buttonhandler/ButtonHandler.cpp @@ -4,7 +4,7 @@ using namespace Pinetime::Controllers; void ButtonTimerCallback(TimerHandle_t xTimer) { auto* buttonHandler = static_cast(pvTimerGetTimerID(xTimer)); - buttonHandler->HandleEvent(ButtonHandler::Timer); + buttonHandler->HandleEvent(ButtonHandler::Events::Timer); } void ButtonHandler::Init(Pinetime::System::SystemTask* systemTask) { @@ -12,7 +12,7 @@ void ButtonHandler::Init(Pinetime::System::SystemTask* systemTask) { buttonTimer = xTimerCreate("buttonTimer", 0, pdFALSE, this, ButtonTimerCallback); } -void ButtonHandler::HandleEvent(events event) { +void ButtonHandler::HandleEvent(Events event) { static constexpr TickType_t doubleClickTime = pdMS_TO_TICKS(200); static constexpr TickType_t longPressTime = pdMS_TO_TICKS(400); static constexpr TickType_t longerPressTime = pdMS_TO_TICKS(2000); @@ -24,61 +24,61 @@ void ButtonHandler::HandleEvent(events event) { systemTask->PushMessage(System::Messages::ReloadIdleTimer); } - if (event == Press) { + if (event == Events::Press) { buttonPressed = true; - } else if (event == Release) { + } else if (event == Events::Release) { releaseTime = xTaskGetTickCount(); buttonPressed = false; } switch (state) { - case Idle: - if (event == Press) { + case States::Idle: + if (event == Events::Press) { xTimerChangePeriod(buttonTimer, doubleClickTime, 0); xTimerStart(buttonTimer, 0); - state = Pressed; + state = States::Pressed; } break; - case Pressed: - if (event == Press) { + case States::Pressed: + if (event == Events::Press) { if (xTaskGetTickCount() - releaseTime < doubleClickTime) { systemTask->PushMessage(System::Messages::OnButtonDoubleClicked); xTimerStop(buttonTimer, 0); - state = Idle; + state = States::Idle; } - } else if (event == Release) { + } else if (event == Events::Release) { xTimerChangePeriod(buttonTimer, doubleClickTime, 0); xTimerStart(buttonTimer, 0); - } else if (event == Timer) { + } else if (event == Events::Timer) { if (buttonPressed) { xTimerChangePeriod(buttonTimer, longPressTime - doubleClickTime, 0); xTimerStart(buttonTimer, 0); - state = Holding; + state = States::Holding; } else { systemTask->PushMessage(System::Messages::OnButtonPushed); - state = Idle; + state = States::Idle; } } break; - case Holding: - if (event == Release) { + case States::Holding: + if (event == Events::Release) { systemTask->PushMessage(System::Messages::OnButtonPushed); xTimerStop(buttonTimer, 0); - state = Idle; - } else if (event == Timer) { + state = States::Idle; + } else if (event == Events::Timer) { xTimerChangePeriod(buttonTimer, longerPressTime - longPressTime - doubleClickTime, 0); xTimerStart(buttonTimer, 0); systemTask->PushMessage(System::Messages::OnButtonLongPressed); - state = LongHeld; + state = States::LongHeld; } break; - case LongHeld: - if (event == Release) { + case States::LongHeld: + if (event == Events::Release) { xTimerStop(buttonTimer, 0); - state = Idle; - } else if (event == Timer) { + state = States::Idle; + } else if (event == Events::Timer) { systemTask->PushMessage(System::Messages::OnButtonLongerPressed); - state = Idle; + state = States::Idle; } break; } diff --git a/src/buttonhandler/ButtonHandler.h b/src/buttonhandler/ButtonHandler.h index 5d5b57e9..b4c36bda 100644 --- a/src/buttonhandler/ButtonHandler.h +++ b/src/buttonhandler/ButtonHandler.h @@ -8,17 +8,17 @@ namespace Pinetime { namespace Controllers { class ButtonHandler { public: - enum events { Press, Release, Timer }; + enum class Events : uint8_t { Press, Release, Timer }; void Init(Pinetime::System::SystemTask* systemTask); - void HandleEvent(events event); + void HandleEvent(Events event); private: + enum class States : uint8_t { Idle, Pressed, Holding, LongHeld }; Pinetime::System::SystemTask* systemTask = nullptr; TickType_t releaseTime = 0; TimerHandle_t buttonTimer; bool buttonPressed = false; - enum states { Idle, Pressed, Holding, LongHeld }; - states state = Idle; + States state = States::Idle; }; } } diff --git a/src/main.cpp b/src/main.cpp index b942fd41..53f78ce8 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -178,7 +178,6 @@ void nrfx_gpiote_evt_handler(nrfx_gpiote_pin_t pin, nrf_gpiote_polarity_t action xTimerStartFromISR(debounceChargeTimer, &xHigherPriorityTaskWoken); portYIELD_FROM_ISR(xHigherPriorityTaskWoken); } else if (pin == Pinetime::PinMap::Button) { - // This activates on button release as well due to bouncing xTimerStartFromISR(debounceTimer, &xHigherPriorityTaskWoken); portYIELD_FROM_ISR(xHigherPriorityTaskWoken); } diff --git a/src/systemtask/SystemTask.cpp b/src/systemtask/SystemTask.cpp index b7db0b9d..8a4f894e 100644 --- a/src/systemtask/SystemTask.cpp +++ b/src/systemtask/SystemTask.cpp @@ -357,9 +357,9 @@ void SystemTask::Work() { break; case Messages::HandleButtonEvent: if (nrf_gpio_pin_read(Pinetime::PinMap::Button) == 0) { - buttonHandler.HandleEvent(Pinetime::Controllers::ButtonHandler::Release); + buttonHandler.HandleEvent(Pinetime::Controllers::ButtonHandler::Events::Release); } else { - buttonHandler.HandleEvent(Pinetime::Controllers::ButtonHandler::Press); + buttonHandler.HandleEvent(Pinetime::Controllers::ButtonHandler::Events::Press); } break; case Messages::OnDisplayTaskSleeping: From 351c60a13167c05dfdbb0516f84077a4cd6adeec Mon Sep 17 00:00:00 2001 From: Riku Isokoski Date: Mon, 25 Oct 2021 16:57:29 +0300 Subject: [PATCH 015/188] Return button action instead of pushing messages --- src/buttonhandler/ButtonActions.h | 7 +++ src/buttonhandler/ButtonHandler.cpp | 27 +++++------ src/buttonhandler/ButtonHandler.h | 4 +- src/systemtask/Messages.h | 6 +-- src/systemtask/SystemTask.cpp | 70 ++++++++++++++++++----------- src/systemtask/SystemTask.h | 2 + 6 files changed, 66 insertions(+), 50 deletions(-) create mode 100644 src/buttonhandler/ButtonActions.h diff --git a/src/buttonhandler/ButtonActions.h b/src/buttonhandler/ButtonActions.h new file mode 100644 index 00000000..21be441b --- /dev/null +++ b/src/buttonhandler/ButtonActions.h @@ -0,0 +1,7 @@ +#pragma once + +namespace Pinetime { + namespace Controllers { + enum class ButtonActions { None, Click, DoubleClick, LongPress, LongerPress }; + } +} diff --git a/src/buttonhandler/ButtonHandler.cpp b/src/buttonhandler/ButtonHandler.cpp index b6067d27..91e8bbd0 100644 --- a/src/buttonhandler/ButtonHandler.cpp +++ b/src/buttonhandler/ButtonHandler.cpp @@ -3,27 +3,19 @@ using namespace Pinetime::Controllers; void ButtonTimerCallback(TimerHandle_t xTimer) { - auto* buttonHandler = static_cast(pvTimerGetTimerID(xTimer)); - buttonHandler->HandleEvent(ButtonHandler::Events::Timer); + auto* sysTask = static_cast(pvTimerGetTimerID(xTimer)); + sysTask->PushMessage(Pinetime::System::Messages::HandleButtonTimerEvent); } void ButtonHandler::Init(Pinetime::System::SystemTask* systemTask) { - this->systemTask = systemTask; - buttonTimer = xTimerCreate("buttonTimer", 0, pdFALSE, this, ButtonTimerCallback); + buttonTimer = xTimerCreate("buttonTimer", 0, pdFALSE, systemTask, ButtonTimerCallback); } -void ButtonHandler::HandleEvent(Events event) { +ButtonActions ButtonHandler::HandleEvent(Events event) { static constexpr TickType_t doubleClickTime = pdMS_TO_TICKS(200); static constexpr TickType_t longPressTime = pdMS_TO_TICKS(400); static constexpr TickType_t longerPressTime = pdMS_TO_TICKS(2000); - if (systemTask->IsSleeping()) { - // This is for faster wakeup, sacrificing special longpress and doubleclick handling while sleeping - systemTask->PushMessage(System::Messages::GoToRunning); - } else { - systemTask->PushMessage(System::Messages::ReloadIdleTimer); - } - if (event == Events::Press) { buttonPressed = true; } else if (event == Events::Release) { @@ -42,9 +34,9 @@ void ButtonHandler::HandleEvent(Events event) { case States::Pressed: if (event == Events::Press) { if (xTaskGetTickCount() - releaseTime < doubleClickTime) { - systemTask->PushMessage(System::Messages::OnButtonDoubleClicked); xTimerStop(buttonTimer, 0); state = States::Idle; + return ButtonActions::DoubleClick; } } else if (event == Events::Release) { xTimerChangePeriod(buttonTimer, doubleClickTime, 0); @@ -55,21 +47,21 @@ void ButtonHandler::HandleEvent(Events event) { xTimerStart(buttonTimer, 0); state = States::Holding; } else { - systemTask->PushMessage(System::Messages::OnButtonPushed); state = States::Idle; + return ButtonActions::Click; } } break; case States::Holding: if (event == Events::Release) { - systemTask->PushMessage(System::Messages::OnButtonPushed); xTimerStop(buttonTimer, 0); state = States::Idle; + return ButtonActions::Click; } else if (event == Events::Timer) { xTimerChangePeriod(buttonTimer, longerPressTime - longPressTime - doubleClickTime, 0); xTimerStart(buttonTimer, 0); - systemTask->PushMessage(System::Messages::OnButtonLongPressed); state = States::LongHeld; + return ButtonActions::LongPress; } break; case States::LongHeld: @@ -77,9 +69,10 @@ void ButtonHandler::HandleEvent(Events event) { xTimerStop(buttonTimer, 0); state = States::Idle; } else if (event == Events::Timer) { - systemTask->PushMessage(System::Messages::OnButtonLongerPressed); state = States::Idle; + return ButtonActions::LongerPress; } break; } + return ButtonActions::None; } diff --git a/src/buttonhandler/ButtonHandler.h b/src/buttonhandler/ButtonHandler.h index b4c36bda..44b20f19 100644 --- a/src/buttonhandler/ButtonHandler.h +++ b/src/buttonhandler/ButtonHandler.h @@ -1,5 +1,6 @@ #pragma once +#include "ButtonActions.h" #include "systemtask/SystemTask.h" #include #include @@ -10,11 +11,10 @@ namespace Pinetime { public: enum class Events : uint8_t { Press, Release, Timer }; void Init(Pinetime::System::SystemTask* systemTask); - void HandleEvent(Events event); + ButtonActions HandleEvent(Events event); private: enum class States : uint8_t { Idle, Pressed, Holding, LongHeld }; - Pinetime::System::SystemTask* systemTask = nullptr; TickType_t releaseTime = 0; TimerHandle_t buttonTimer; bool buttonPressed = false; diff --git a/src/systemtask/Messages.h b/src/systemtask/Messages.h index b0bdbf31..b7142704 100644 --- a/src/systemtask/Messages.h +++ b/src/systemtask/Messages.h @@ -15,17 +15,13 @@ namespace Pinetime { BleFirmwareUpdateStarted, BleFirmwareUpdateFinished, OnTouchEvent, - OnButtonPushed, - OnButtonLongPressed, - OnButtonLongerPressed, - OnButtonDoubleClicked, HandleButtonEvent, + HandleButtonTimerEvent, OnDisplayTaskSleeping, EnableSleeping, DisableSleeping, OnNewDay, OnChargingEvent, - ReloadIdleTimer, SetOffAlarm, StopRinging, MeasureBatteryTimerExpired, diff --git a/src/systemtask/SystemTask.cpp b/src/systemtask/SystemTask.cpp index 8a4f894e..85cefb6f 100644 --- a/src/systemtask/SystemTask.cpp +++ b/src/systemtask/SystemTask.cpp @@ -335,33 +335,25 @@ void SystemTask::Work() { ReloadIdleTimer(); displayApp.PushMessage(Pinetime::Applications::Display::Messages::TouchEvent); break; - case Messages::OnButtonPushed: - if (!isSleeping && !isGoingToSleep) { - displayApp.PushMessage(Pinetime::Applications::Display::Messages::ButtonPushed); + case Messages::HandleButtonEvent: { + // This is for faster wakeup, sacrificing special longpress and doubleclick handling while sleeping + if (IsSleeping()) { + GoToRunning(); + break; } - break; - case Messages::OnButtonLongPressed: - if (!isSleeping) { - displayApp.PushMessage(Pinetime::Applications::Display::Messages::ButtonLongPressed); - } - break; - case Messages::OnButtonLongerPressed: - if (!isSleeping) { - displayApp.PushMessage(Pinetime::Applications::Display::Messages::ButtonLongerPressed); - } - break; - case Messages::OnButtonDoubleClicked: - if (!isSleeping) { - displayApp.PushMessage(Pinetime::Applications::Display::Messages::ButtonDoubleClicked); - } - break; - case Messages::HandleButtonEvent: + + Controllers::ButtonActions action; if (nrf_gpio_pin_read(Pinetime::PinMap::Button) == 0) { - buttonHandler.HandleEvent(Pinetime::Controllers::ButtonHandler::Events::Release); + action = buttonHandler.HandleEvent(Controllers::ButtonHandler::Events::Release); } else { - buttonHandler.HandleEvent(Pinetime::Controllers::ButtonHandler::Events::Press); + action = buttonHandler.HandleEvent(Controllers::ButtonHandler::Events::Press); } - break; + HandleButtonAction(action); + } break; + case Messages::HandleButtonTimerEvent: { + auto action = buttonHandler.HandleEvent(Controllers::ButtonHandler::Events::Timer); + HandleButtonAction(action); + } break; case Messages::OnDisplayTaskSleeping: if (BootloaderVersion::IsValid()) { // First versions of the bootloader do not expose their version and cannot initialize the SPI NOR FLASH @@ -398,9 +390,6 @@ void SystemTask::Work() { case Messages::BatteryPercentageUpdated: nimbleController.NotifyBatteryLevel(batteryController.PercentRemaining()); break; - case Messages::ReloadIdleTimer: - ReloadIdleTimer(); - break; default: break; @@ -449,6 +438,35 @@ void SystemTask::UpdateMotion() { } } +void SystemTask::HandleButtonAction(Controllers::ButtonActions action) { + if (IsSleeping()) { + return; + } + + ReloadIdleTimer(); + + using Actions = Controllers::ButtonActions; + + switch (action) { + case Actions::Click: + if (!isGoingToSleep) { + displayApp.PushMessage(Applications::Display::Messages::ButtonPushed); + } + break; + case Actions::DoubleClick: + displayApp.PushMessage(Applications::Display::Messages::ButtonDoubleClicked); + break; + case Actions::LongPress: + displayApp.PushMessage(Applications::Display::Messages::ButtonLongPressed); + break; + case Actions::LongerPress: + displayApp.PushMessage(Applications::Display::Messages::ButtonLongerPressed); + break; + default: + break; + } +} + void SystemTask::GoToRunning() { if (isGoingToSleep or (not isSleeping) or isWakingUp) return; diff --git a/src/systemtask/SystemTask.h b/src/systemtask/SystemTask.h index 9967f75c..d6045e9c 100644 --- a/src/systemtask/SystemTask.h +++ b/src/systemtask/SystemTask.h @@ -21,6 +21,7 @@ #include "components/fs/FS.h" #include "touchhandler/TouchHandler.h" #include "buttonhandler/ButtonHandler.h" +#include "buttonhandler/ButtonActions.h" #ifdef PINETIME_IS_RECOVERY #include "displayapp/DisplayAppRecovery.h" @@ -138,6 +139,7 @@ namespace Pinetime { TimerHandle_t measureBatteryTimer; bool doNotGoToSleep = false; + void HandleButtonAction(Controllers::ButtonActions action); void GoToRunning(); void UpdateMotion(); bool stepCounterMustBeReset = false; From 887c409b135bb2f21f2fb5ae70a4d8831049d14d Mon Sep 17 00:00:00 2001 From: Riku Isokoski Date: Mon, 25 Oct 2021 17:13:02 +0300 Subject: [PATCH 016/188] Only wake up on press. Fixes issue with longer press and sleep --- src/systemtask/SystemTask.cpp | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/src/systemtask/SystemTask.cpp b/src/systemtask/SystemTask.cpp index 85cefb6f..51dbc3e3 100644 --- a/src/systemtask/SystemTask.cpp +++ b/src/systemtask/SystemTask.cpp @@ -337,15 +337,14 @@ void SystemTask::Work() { break; case Messages::HandleButtonEvent: { // This is for faster wakeup, sacrificing special longpress and doubleclick handling while sleeping - if (IsSleeping()) { - GoToRunning(); - break; - } - Controllers::ButtonActions action; if (nrf_gpio_pin_read(Pinetime::PinMap::Button) == 0) { action = buttonHandler.HandleEvent(Controllers::ButtonHandler::Events::Release); } else { + if (IsSleeping()) { + GoToRunning(); + break; + } action = buttonHandler.HandleEvent(Controllers::ButtonHandler::Events::Press); } HandleButtonAction(action); From 60a717b1a2272e61dfc4d297998da1c7672a8316 Mon Sep 17 00:00:00 2001 From: Riku Isokoski Date: Mon, 25 Oct 2021 17:45:48 +0300 Subject: [PATCH 017/188] Make it so special actions can be input while sleeping, like in #480 --- src/systemtask/SystemTask.cpp | 12 ++++++++---- src/systemtask/SystemTask.h | 2 ++ 2 files changed, 10 insertions(+), 4 deletions(-) diff --git a/src/systemtask/SystemTask.cpp b/src/systemtask/SystemTask.cpp index 51dbc3e3..0a3f9951 100644 --- a/src/systemtask/SystemTask.cpp +++ b/src/systemtask/SystemTask.cpp @@ -336,16 +336,17 @@ void SystemTask::Work() { displayApp.PushMessage(Pinetime::Applications::Display::Messages::TouchEvent); break; case Messages::HandleButtonEvent: { - // This is for faster wakeup, sacrificing special longpress and doubleclick handling while sleeping Controllers::ButtonActions action; if (nrf_gpio_pin_read(Pinetime::PinMap::Button) == 0) { action = buttonHandler.HandleEvent(Controllers::ButtonHandler::Events::Release); } else { + action = buttonHandler.HandleEvent(Controllers::ButtonHandler::Events::Press); + // This is for faster wakeup, sacrificing special longpress and doubleclick handling while sleeping if (IsSleeping()) { + fastWakeUpDone = true; GoToRunning(); break; } - action = buttonHandler.HandleEvent(Controllers::ButtonHandler::Events::Press); } HandleButtonAction(action); } break; @@ -448,7 +449,8 @@ void SystemTask::HandleButtonAction(Controllers::ButtonActions action) { switch (action) { case Actions::Click: - if (!isGoingToSleep) { + // If the first action after fast wakeup is a click, it should be ignored. + if (!fastWakeUpDone && !isGoingToSleep) { displayApp.PushMessage(Applications::Display::Messages::ButtonPushed); } break; @@ -462,8 +464,10 @@ void SystemTask::HandleButtonAction(Controllers::ButtonActions action) { displayApp.PushMessage(Applications::Display::Messages::ButtonLongerPressed); break; default: - break; + return; } + + fastWakeUpDone = false; } void SystemTask::GoToRunning() { diff --git a/src/systemtask/SystemTask.h b/src/systemtask/SystemTask.h index d6045e9c..412878b1 100644 --- a/src/systemtask/SystemTask.h +++ b/src/systemtask/SystemTask.h @@ -140,6 +140,8 @@ namespace Pinetime { bool doNotGoToSleep = false; void HandleButtonAction(Controllers::ButtonActions action); + bool fastWakeUpDone = false; + void GoToRunning(); void UpdateMotion(); bool stepCounterMustBeReset = false; From 30520d262b8bae9868645462e196027389dce246 Mon Sep 17 00:00:00 2001 From: Riku Isokoski Date: Fri, 29 Oct 2021 13:10:34 +0300 Subject: [PATCH 018/188] Memory savings by replacing strings --- src/displayapp/screens/SystemInfo.cpp | 26 ++++++++++++++------------ src/displayapp/screens/Twos.cpp | 12 +++++++----- 2 files changed, 21 insertions(+), 17 deletions(-) diff --git a/src/displayapp/screens/SystemInfo.cpp b/src/displayapp/screens/SystemInfo.cpp index 343b72bf..dd223b2f 100644 --- a/src/displayapp/screens/SystemInfo.cpp +++ b/src/displayapp/screens/SystemInfo.cpp @@ -209,7 +209,7 @@ std::unique_ptr SystemInfo::CreateScreen4() { static constexpr uint8_t maxTaskCount = 9; TaskStatus_t tasksStatus[maxTaskCount]; - lv_obj_t* infoTask = lv_table_create(lv_scr_act(), NULL); + lv_obj_t* infoTask = lv_table_create(lv_scr_act(), nullptr); lv_table_set_col_cnt(infoTask, 4); lv_table_set_row_cnt(infoTask, maxTaskCount + 1); lv_obj_set_style_local_pad_all(infoTask, LV_TABLE_PART_CELL1, LV_STATE_DEFAULT, 0); @@ -227,35 +227,37 @@ std::unique_ptr SystemInfo::CreateScreen4() { auto nb = uxTaskGetSystemState(tasksStatus, maxTaskCount, nullptr); std::sort(tasksStatus, tasksStatus + nb, sortById); for (uint8_t i = 0; i < nb && i < maxTaskCount; i++) { + char buffer[7] = {0}; - lv_table_set_cell_value(infoTask, i + 1, 0, std::to_string(tasksStatus[i].xTaskNumber).c_str()); - char state[2] = {0}; + sprintf(buffer, "%lu", tasksStatus[i].xTaskNumber); + lv_table_set_cell_value(infoTask, i + 1, 0, buffer); switch (tasksStatus[i].eCurrentState) { case eReady: case eRunning: - state[0] = 'R'; + buffer[0] = 'R'; break; case eBlocked: - state[0] = 'B'; + buffer[0] = 'B'; break; case eSuspended: - state[0] = 'S'; + buffer[0] = 'S'; break; case eDeleted: - state[0] = 'D'; + buffer[0] = 'D'; break; default: - state[0] = 'I'; // Invalid + buffer[0] = 'I'; // Invalid break; } - lv_table_set_cell_value(infoTask, i + 1, 1, state); + buffer[1] = '\0'; + lv_table_set_cell_value(infoTask, i + 1, 1, buffer); lv_table_set_cell_value(infoTask, i + 1, 2, tasksStatus[i].pcTaskName); if (tasksStatus[i].usStackHighWaterMark < 20) { - std::string str1 = std::to_string(tasksStatus[i].usStackHighWaterMark) + " low"; - lv_table_set_cell_value(infoTask, i + 1, 3, str1.c_str()); + sprintf(buffer, "%d low", tasksStatus[i].usStackHighWaterMark); } else { - lv_table_set_cell_value(infoTask, i + 1, 3, std::to_string(tasksStatus[i].usStackHighWaterMark).c_str()); + sprintf(buffer, "%d", tasksStatus[i].usStackHighWaterMark); } + lv_table_set_cell_value(infoTask, i + 1, 3, buffer); } return std::make_unique(3, 5, app, infoTask); } diff --git a/src/displayapp/screens/Twos.cpp b/src/displayapp/screens/Twos.cpp index 4201d501..d12ef906 100644 --- a/src/displayapp/screens/Twos.cpp +++ b/src/displayapp/screens/Twos.cpp @@ -1,10 +1,10 @@ #include "Twos.h" -#include -#include -#include #include -#include +#include +#include +#include #include +#include using namespace Pinetime::Applications::Screens; @@ -265,7 +265,9 @@ void Twos::updateGridDisplay(Tile grid[][4]) { for (int row = 0; row < 4; row++) { for (int col = 0; col < 4; col++) { if (grid[row][col].value) { - lv_table_set_cell_value(gridDisplay, row, col, (std::to_string(grid[row][col].value)).c_str()); + char buffer[7]; + sprintf(buffer, "%d", grid[row][col].value); + lv_table_set_cell_value(gridDisplay, row, col, buffer); } else { lv_table_set_cell_value(gridDisplay, row, col, ""); } From f9613d28c06f96fbc93ccbc59a8f749bbc5f7fa5 Mon Sep 17 00:00:00 2001 From: Reinhold Gschweicher Date: Sat, 30 Oct 2021 22:51:49 +0200 Subject: [PATCH 019/188] MotionService: fix not needed '/' in include --- src/components/ble/MotionService.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/components/ble/MotionService.cpp b/src/components/ble/MotionService.cpp index b4786ab5..50693057 100644 --- a/src/components/ble/MotionService.cpp +++ b/src/components/ble/MotionService.cpp @@ -1,5 +1,5 @@ #include "MotionService.h" -#include "components/motion//MotionController.h" +#include "components/motion/MotionController.h" #include "systemtask/SystemTask.h" using namespace Pinetime::Controllers; From 5e1f4839daff075d6411f41148eb6d5d0543bcee Mon Sep 17 00:00:00 2001 From: Clemens von Molo Date: Sun, 31 Oct 2021 21:23:43 +0100 Subject: [PATCH 020/188] InfiniPaint vibrate on colorchange, fix color rotation --- src/displayapp/DisplayApp.cpp | 2 +- src/displayapp/screens/InfiniPaint.cpp | 7 +++---- src/displayapp/screens/InfiniPaint.h | 6 ++++-- 3 files changed, 8 insertions(+), 7 deletions(-) diff --git a/src/displayapp/DisplayApp.cpp b/src/displayapp/DisplayApp.cpp index abe5851e..04aec4c4 100644 --- a/src/displayapp/DisplayApp.cpp +++ b/src/displayapp/DisplayApp.cpp @@ -410,7 +410,7 @@ void DisplayApp::LoadApp(Apps app, DisplayApp::FullRefreshDirections direction) currentScreen = std::make_unique(this); break; case Apps::Paint: - currentScreen = std::make_unique(this, lvgl); + currentScreen = std::make_unique(this, lvgl,motorController); break; case Apps::Paddle: currentScreen = std::make_unique(this, lvgl); diff --git a/src/displayapp/screens/InfiniPaint.cpp b/src/displayapp/screens/InfiniPaint.cpp index 85a5e826..66391b12 100644 --- a/src/displayapp/screens/InfiniPaint.cpp +++ b/src/displayapp/screens/InfiniPaint.cpp @@ -4,7 +4,7 @@ using namespace Pinetime::Applications::Screens; -InfiniPaint::InfiniPaint(Pinetime::Applications::DisplayApp* app, Pinetime::Components::LittleVgl& lvgl) : Screen(app), lvgl {lvgl} { +InfiniPaint::InfiniPaint(Pinetime::Applications::DisplayApp* app, Pinetime::Components::LittleVgl& lvgl, Pinetime::Controllers::MotorController& motor) : Screen(app), lvgl {lvgl}, motor{motor} { std::fill(b, b + bufferSize, selectColor); } @@ -16,9 +16,6 @@ bool InfiniPaint::OnTouchEvent(Pinetime::Applications::TouchEvents event) { switch (event) { case Pinetime::Applications::TouchEvents::LongTap: switch (color) { - case 0: - selectColor = LV_COLOR_MAGENTA; - break; case 1: selectColor = LV_COLOR_GREEN; break; @@ -43,11 +40,13 @@ bool InfiniPaint::OnTouchEvent(Pinetime::Applications::TouchEvents event) { default: color = 0; + selectColor = LV_COLOR_MAGENTA; break; } std::fill(b, b + bufferSize, selectColor); color++; + motor.RunForDuration(50); return true; default: return true; diff --git a/src/displayapp/screens/InfiniPaint.h b/src/displayapp/screens/InfiniPaint.h index 0a70e033..8a96fc6d 100644 --- a/src/displayapp/screens/InfiniPaint.h +++ b/src/displayapp/screens/InfiniPaint.h @@ -3,6 +3,7 @@ #include #include #include "Screen.h" +#include "components/motor/MotorController.h" namespace Pinetime { namespace Components { @@ -13,7 +14,7 @@ namespace Pinetime { class InfiniPaint : public Screen { public: - InfiniPaint(DisplayApp* app, Pinetime::Components::LittleVgl& lvgl); + InfiniPaint(DisplayApp* app, Pinetime::Components::LittleVgl& lvgl, Controllers::MotorController& motor); ~InfiniPaint() override; @@ -23,12 +24,13 @@ namespace Pinetime { private: Pinetime::Components::LittleVgl& lvgl; + Controllers::MotorController& motor; static constexpr uint16_t width = 10; static constexpr uint16_t height = 10; static constexpr uint16_t bufferSize = width * height; lv_color_t b[bufferSize]; lv_color_t selectColor = LV_COLOR_WHITE; - uint8_t color = 2; + uint8_t color = 3; }; } } From 2d985309760172db00b0b9cb7bd523579413d634 Mon Sep 17 00:00:00 2001 From: Clemens von Molo Date: Mon, 1 Nov 2021 11:46:27 +0100 Subject: [PATCH 021/188] color rotation using modulo, ran clang-format for InfiniPaint --- src/displayapp/DisplayApp.cpp | 2 +- src/displayapp/screens/InfiniPaint.cpp | 11 ++++++++--- src/displayapp/screens/InfiniPaint.h | 6 +++--- 3 files changed, 12 insertions(+), 7 deletions(-) diff --git a/src/displayapp/DisplayApp.cpp b/src/displayapp/DisplayApp.cpp index 04aec4c4..a90a1e5d 100644 --- a/src/displayapp/DisplayApp.cpp +++ b/src/displayapp/DisplayApp.cpp @@ -410,7 +410,7 @@ void DisplayApp::LoadApp(Apps app, DisplayApp::FullRefreshDirections direction) currentScreen = std::make_unique(this); break; case Apps::Paint: - currentScreen = std::make_unique(this, lvgl,motorController); + currentScreen = std::make_unique(this, lvgl, motorController); break; case Apps::Paddle: currentScreen = std::make_unique(this, lvgl); diff --git a/src/displayapp/screens/InfiniPaint.cpp b/src/displayapp/screens/InfiniPaint.cpp index 66391b12..c5ff27b4 100644 --- a/src/displayapp/screens/InfiniPaint.cpp +++ b/src/displayapp/screens/InfiniPaint.cpp @@ -4,7 +4,10 @@ using namespace Pinetime::Applications::Screens; -InfiniPaint::InfiniPaint(Pinetime::Applications::DisplayApp* app, Pinetime::Components::LittleVgl& lvgl, Pinetime::Controllers::MotorController& motor) : Screen(app), lvgl {lvgl}, motor{motor} { +InfiniPaint::InfiniPaint(Pinetime::Applications::DisplayApp* app, + Pinetime::Components::LittleVgl& lvgl, + Pinetime::Controllers::MotorController& motor) + : Screen(app), lvgl {lvgl}, motor {motor} { std::fill(b, b + bufferSize, selectColor); } @@ -15,7 +18,11 @@ InfiniPaint::~InfiniPaint() { bool InfiniPaint::OnTouchEvent(Pinetime::Applications::TouchEvents event) { switch (event) { case Pinetime::Applications::TouchEvents::LongTap: + color = (color + 1) % 8; switch (color) { + case 0: + selectColor = LV_COLOR_MAGENTA; + break; case 1: selectColor = LV_COLOR_GREEN; break; @@ -40,12 +47,10 @@ bool InfiniPaint::OnTouchEvent(Pinetime::Applications::TouchEvents event) { default: color = 0; - selectColor = LV_COLOR_MAGENTA; break; } std::fill(b, b + bufferSize, selectColor); - color++; motor.RunForDuration(50); return true; default: diff --git a/src/displayapp/screens/InfiniPaint.h b/src/displayapp/screens/InfiniPaint.h index 8a96fc6d..fb0bd9be 100644 --- a/src/displayapp/screens/InfiniPaint.h +++ b/src/displayapp/screens/InfiniPaint.h @@ -1,9 +1,9 @@ #pragma once -#include -#include #include "Screen.h" #include "components/motor/MotorController.h" +#include +#include namespace Pinetime { namespace Components { @@ -30,7 +30,7 @@ namespace Pinetime { static constexpr uint16_t bufferSize = width * height; lv_color_t b[bufferSize]; lv_color_t selectColor = LV_COLOR_WHITE; - uint8_t color = 3; + uint8_t color = 2; }; } } From 75f0bbb7ca51fa0aa65c8c3d4081a5e8d8d48c55 Mon Sep 17 00:00:00 2001 From: Clemens von Molo Date: Mon, 1 Nov 2021 12:10:06 +0100 Subject: [PATCH 022/188] change paint vibration to 35ms --- src/displayapp/screens/InfiniPaint.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/displayapp/screens/InfiniPaint.cpp b/src/displayapp/screens/InfiniPaint.cpp index c5ff27b4..271a022f 100644 --- a/src/displayapp/screens/InfiniPaint.cpp +++ b/src/displayapp/screens/InfiniPaint.cpp @@ -51,7 +51,7 @@ bool InfiniPaint::OnTouchEvent(Pinetime::Applications::TouchEvents event) { } std::fill(b, b + bufferSize, selectColor); - motor.RunForDuration(50); + motor.RunForDuration(35); return true; default: return true; From e9c7ab4cfc82172a07c19a0c4877b4afd11412f8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jean-Fran=C3=A7ois=20Milants?= Date: Sat, 6 Nov 2021 19:01:19 +0100 Subject: [PATCH 023/188] Add data validity check and retries in CST816S driver. See https://github.com/InfiniTimeOrg/InfiniTime/issues/763#issuecomment-962436976. --- src/drivers/Cst816s.cpp | 73 +++++++++++++++++++++++++++++------------ src/drivers/Cst816s.h | 7 +++- 2 files changed, 58 insertions(+), 22 deletions(-) diff --git a/src/drivers/Cst816s.cpp b/src/drivers/Cst816s.cpp index 7fc8eca4..46dd96dc 100644 --- a/src/drivers/Cst816s.cpp +++ b/src/drivers/Cst816s.cpp @@ -32,6 +32,18 @@ bool Cst816S::Init() { twiMaster.Read(twiAddress, 0xa7, &dummy, 1); vTaskDelay(5); + static constexpr uint8_t maxRetries = 3; + bool isDeviceOk = false; + uint8_t retries = 0; + do { + isDeviceOk = CheckDeviceIds(); + retries++; + } while(!isDeviceOk && retries < maxRetries); + + if(!isDeviceOk) { + return false; + } + /* [2] EnConLR - Continuous operation can slide around [1] EnConUD - Slide up and down to enable continuous operation @@ -50,21 +62,7 @@ bool Cst816S::Init() { static constexpr uint8_t irqCtl = 0b01110000; twiMaster.Write(twiAddress, 0xFA, &irqCtl, 1); - // There's mixed information about which register contains which information - if (twiMaster.Read(twiAddress, 0xA7, &chipId, 1) == TwiMaster::ErrorCodes::TransactionFailed) { - chipId = 0xFF; - return false; - } - if (twiMaster.Read(twiAddress, 0xA8, &vendorId, 1) == TwiMaster::ErrorCodes::TransactionFailed) { - vendorId = 0xFF; - return false; - } - if (twiMaster.Read(twiAddress, 0xA9, &fwVersion, 1) == TwiMaster::ErrorCodes::TransactionFailed) { - fwVersion = 0xFF; - return false; - } - - return chipId == 0xb4 && vendorId == 0 && fwVersion == 1; + return true; } Cst816S::TouchInfos Cst816S::GetTouchInfo() { @@ -79,18 +77,33 @@ Cst816S::TouchInfos Cst816S::GetTouchInfo() { // This can only be 0 or 1 uint8_t nbTouchPoints = touchData[touchPointNumIndex] & 0x0f; - uint8_t xHigh = touchData[touchXHighIndex] & 0x0f; uint8_t xLow = touchData[touchXLowIndex]; - info.x = (xHigh << 8) | xLow; - + uint16_t x = (xHigh << 8) | xLow; uint8_t yHigh = touchData[touchYHighIndex] & 0x0f; uint8_t yLow = touchData[touchYLowIndex]; - info.y = (yHigh << 8) | yLow; + uint16_t y = (yHigh << 8) | yLow; + Gestures gesture = static_cast(touchData[gestureIndex]); + // Validity check + if(x >= maxX || y >= maxY || + (gesture != Gestures::None && + gesture != Gestures::SlideDown && + gesture != Gestures::SlideUp && + gesture != Gestures::SlideLeft && + gesture != Gestures::SlideRight && + gesture != Gestures::SingleTap && + gesture != Gestures::DoubleTap && + gesture != Gestures::LongPress)) { + info.isValid = false; + return info; + } + + info.x = x; + info.y = y; info.touching = (nbTouchPoints > 0); - info.gesture = static_cast(touchData[gestureIndex]); - + info.gesture = gesture; + info.isValid = true; return info; } @@ -108,3 +121,21 @@ void Cst816S::Wakeup() { Init(); NRF_LOG_INFO("[TOUCHPANEL] Wakeup"); } + +bool Cst816S::CheckDeviceIds() { + // There's mixed information about which register contains which information + if (twiMaster.Read(twiAddress, 0xA7, &chipId, 1) == TwiMaster::ErrorCodes::TransactionFailed) { + chipId = 0xFF; + return false; + } + if (twiMaster.Read(twiAddress, 0xA8, &vendorId, 1) == TwiMaster::ErrorCodes::TransactionFailed) { + vendorId = 0xFF; + return false; + } + if (twiMaster.Read(twiAddress, 0xA9, &fwVersion, 1) == TwiMaster::ErrorCodes::TransactionFailed) { + fwVersion = 0xFF; + return false; + } + + return chipId == 0xb4 && vendorId == 0 && fwVersion == 1; +} diff --git a/src/drivers/Cst816s.h b/src/drivers/Cst816s.h index 0fec8419..507dd4f5 100644 --- a/src/drivers/Cst816s.h +++ b/src/drivers/Cst816s.h @@ -21,7 +21,7 @@ namespace Pinetime { uint16_t y = 0; Gestures gesture = Gestures::None; bool touching = false; - bool isValid = true; + bool isValid = false; }; Cst816S(TwiMaster& twiMaster, uint8_t twiAddress); @@ -45,6 +45,8 @@ namespace Pinetime { return fwVersion; } private: + bool CheckDeviceIds(); + // Unused/Unavailable commented out static constexpr uint8_t gestureIndex = 1; static constexpr uint8_t touchPointNumIndex = 2; @@ -58,6 +60,9 @@ namespace Pinetime { //static constexpr uint8_t touchXYIndex = 7; //static constexpr uint8_t touchMiscIndex = 8; + static constexpr uint8_t maxX = 240; + static constexpr uint8_t maxY = 240; + TwiMaster& twiMaster; uint8_t twiAddress; From 8d61419836bffa7c59cb41c33fe747bafe841af5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jean-Fran=C3=A7ois=20Milants?= Date: Sun, 7 Nov 2021 16:19:06 +0100 Subject: [PATCH 024/188] Fix formatting following the code review. --- src/drivers/Cst816s.cpp | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/drivers/Cst816s.cpp b/src/drivers/Cst816s.cpp index 46dd96dc..4aac19f9 100644 --- a/src/drivers/Cst816s.cpp +++ b/src/drivers/Cst816s.cpp @@ -33,14 +33,14 @@ bool Cst816S::Init() { vTaskDelay(5); static constexpr uint8_t maxRetries = 3; - bool isDeviceOk = false; + bool isDeviceOk; uint8_t retries = 0; do { isDeviceOk = CheckDeviceIds(); retries++; - } while(!isDeviceOk && retries < maxRetries); + } while (!isDeviceOk && retries < maxRetries); - if(!isDeviceOk) { + if (!isDeviceOk) { return false; } From e6edf2155296864114a62cecbd0244c65c020a48 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jean-Fran=C3=A7ois=20Milants?= Date: Sun, 7 Nov 2021 18:00:34 +0100 Subject: [PATCH 025/188] Disable the warning that is displayed when the initialization of the touch controller fails, as some users reported that it was displayed when a valid touch controller was installed. --- src/systemtask/SystemTask.cpp | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/systemtask/SystemTask.cpp b/src/systemtask/SystemTask.cpp index 0a3f9951..f2cc1dfb 100644 --- a/src/systemtask/SystemTask.cpp +++ b/src/systemtask/SystemTask.cpp @@ -144,9 +144,14 @@ void SystemTask::Work() { lcd.Init(); twiMaster.Init(); + /* + * TODO We disable this warning message until we ensure it won't be displayed + * on legitimate PineTime equipped with a compatible touch controller. + * (some users reported false positive). See https://github.com/InfiniTimeOrg/InfiniTime/issues/763 if (!touchPanel.Init()) { bootError = BootErrors::TouchController; } + */ dateTimeController.Register(this); batteryController.Register(this); motorController.Init(); From 76c43ebc82eb1d6580a10f292c83b0b18da135e6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jean-Fran=C3=A7ois=20Milants?= Date: Sun, 7 Nov 2021 20:13:22 +0100 Subject: [PATCH 026/188] Fix previous commit, call touchPanel.Init() even if we disabled the touch controller boot error. --- src/systemtask/SystemTask.cpp | 1 + 1 file changed, 1 insertion(+) diff --git a/src/systemtask/SystemTask.cpp b/src/systemtask/SystemTask.cpp index f2cc1dfb..4b03f9ac 100644 --- a/src/systemtask/SystemTask.cpp +++ b/src/systemtask/SystemTask.cpp @@ -152,6 +152,7 @@ void SystemTask::Work() { bootError = BootErrors::TouchController; } */ + touchPanel.Init(); dateTimeController.Register(this); batteryController.Register(this); motorController.Init(); From 1d6455c28943efc0e51a91e6e7daa9045a372e50 Mon Sep 17 00:00:00 2001 From: Riku Isokoski Date: Tue, 9 Nov 2021 11:38:19 +0200 Subject: [PATCH 027/188] Fix Alarm app crashing on buttonpress --- src/displayapp/screens/Alarm.h | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/displayapp/screens/Alarm.h b/src/displayapp/screens/Alarm.h index 32a14d2f..487ba1d5 100644 --- a/src/displayapp/screens/Alarm.h +++ b/src/displayapp/screens/Alarm.h @@ -40,7 +40,9 @@ namespace Pinetime { Controllers::AlarmController& alarmController; lv_obj_t *time, *btnEnable, *txtEnable, *btnMinutesUp, *btnMinutesDown, *btnHoursUp, *btnHoursDown, *txtMinUp, *txtMinDown, - *txtHrUp, *txtHrDown, *btnRecur, *txtRecur, *btnMessage, *txtMessage, *btnInfo, *txtInfo; + *txtHrUp, *txtHrDown, *btnRecur, *txtRecur, *btnInfo, *txtInfo; + lv_obj_t* txtMessage = nullptr; + lv_obj_t* btnMessage = nullptr; enum class EnableButtonState { On, Off, Alerting }; void SetEnableButtonState(); From bdf7e5293f2fe9eb061940dc841d2b6e4dbe13b2 Mon Sep 17 00:00:00 2001 From: Riku Isokoski Date: Wed, 10 Nov 2021 13:45:49 +0200 Subject: [PATCH 028/188] Fix animation when long pressing on screens adjacent to watch face --- src/displayapp/DisplayApp.cpp | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/src/displayapp/DisplayApp.cpp b/src/displayapp/DisplayApp.cpp index 13ee0045..63afec11 100644 --- a/src/displayapp/DisplayApp.cpp +++ b/src/displayapp/DisplayApp.cpp @@ -262,7 +262,13 @@ void DisplayApp::Refresh() { break; case Messages::ButtonLongPressed: if (currentApp != Apps::Clock) { - LoadApp(Apps::Clock, DisplayApp::FullRefreshDirections::Down); + if (currentApp == Apps::Notifications) { + LoadApp(Apps::Clock, DisplayApp::FullRefreshDirections::Up); + } else if (currentApp == Apps::QuickSettings) { + LoadApp(Apps::Clock, DisplayApp::FullRefreshDirections::LeftAnim); + } else { + LoadApp(Apps::Clock, DisplayApp::FullRefreshDirections::Down); + } } break; case Messages::ButtonLongerPressed: From a57fda6ba4a29866083a1254ffdf92939d00e182 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jean-Fran=C3=A7ois=20Milants?= Date: Thu, 11 Nov 2021 09:54:30 +0100 Subject: [PATCH 029/188] Set version to 1.7.0 --- CMakeLists.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index a8ecb81f..63257ff9 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,5 +1,5 @@ cmake_minimum_required(VERSION 3.10) -project(pinetime VERSION 1.6.0 LANGUAGES C CXX ASM) +project(pinetime VERSION 1.7.0 LANGUAGES C CXX ASM) set(CMAKE_C_STANDARD 99) set(CMAKE_CXX_STANDARD 14) From 39157f2f193a6da9e73fbf459373ea054cb3c162 Mon Sep 17 00:00:00 2001 From: Riku Isokoski Date: Sat, 13 Nov 2021 13:02:00 +0200 Subject: [PATCH 030/188] Close menu with button --- src/displayapp/DisplayApp.cpp | 8 +++--- src/displayapp/screens/Clock.cpp | 4 +++ src/displayapp/screens/Clock.h | 1 + src/displayapp/screens/PineTimeStyle.cpp | 34 ++++++++++++++++-------- src/displayapp/screens/PineTimeStyle.h | 4 ++- 5 files changed, 35 insertions(+), 16 deletions(-) diff --git a/src/displayapp/DisplayApp.cpp b/src/displayapp/DisplayApp.cpp index 342c3879..4e508eed 100644 --- a/src/displayapp/DisplayApp.cpp +++ b/src/displayapp/DisplayApp.cpp @@ -249,10 +249,10 @@ void DisplayApp::Refresh() { } } break; case Messages::ButtonPushed: - if (currentApp == Apps::Clock) { - PushMessageToSystemTask(System::Messages::GoToSleep); - } else { - if (!currentScreen->OnButtonPushed()) { + if (!currentScreen->OnButtonPushed()) { + if (currentApp == Apps::Clock) { + PushMessageToSystemTask(System::Messages::GoToSleep); + } else { LoadApp(returnToApp, returnDirection); brightnessController.Set(settingsController.GetBrightness()); brightnessController.Backup(); diff --git a/src/displayapp/screens/Clock.cpp b/src/displayapp/screens/Clock.cpp index 5a5cd18b..d112241a 100644 --- a/src/displayapp/screens/Clock.cpp +++ b/src/displayapp/screens/Clock.cpp @@ -54,6 +54,10 @@ bool Clock::OnTouchEvent(Pinetime::Applications::TouchEvents event) { return screen->OnTouchEvent(event); } +bool Clock::OnButtonPushed() { + return screen->OnButtonPushed(); +} + std::unique_ptr Clock::WatchFaceDigitalScreen() { return std::make_unique(app, dateTimeController, diff --git a/src/displayapp/screens/Clock.h b/src/displayapp/screens/Clock.h index 648f72da..dffe2a44 100644 --- a/src/displayapp/screens/Clock.h +++ b/src/displayapp/screens/Clock.h @@ -32,6 +32,7 @@ namespace Pinetime { ~Clock() override; bool OnTouchEvent(TouchEvents event) override; + bool OnButtonPushed() override; private: Controllers::DateTime& dateTimeController; diff --git a/src/displayapp/screens/PineTimeStyle.cpp b/src/displayapp/screens/PineTimeStyle.cpp index fa9aec1c..47798ae5 100644 --- a/src/displayapp/screens/PineTimeStyle.cpp +++ b/src/displayapp/screens/PineTimeStyle.cpp @@ -316,6 +316,27 @@ bool PineTimeStyle::OnTouchEvent(Pinetime::Applications::TouchEvents event) { return false; } +void PineTimeStyle::CloseMenu() { + settingsController.SaveSettings(); + lv_obj_set_hidden(btnNextTime, true); + lv_obj_set_hidden(btnPrevTime, true); + lv_obj_set_hidden(btnNextBar, true); + lv_obj_set_hidden(btnPrevBar, true); + lv_obj_set_hidden(btnNextBG, true); + lv_obj_set_hidden(btnPrevBG, true); + lv_obj_set_hidden(btnReset, true); + lv_obj_set_hidden(btnRandom, true); + lv_obj_set_hidden(btnClose, true); +} + +bool PineTimeStyle::OnButtonPushed() { + if (!lv_obj_get_hidden(btnClose)) { + CloseMenu(); + return true; + } + return false; +} + void PineTimeStyle::SetBatteryIcon() { auto batteryPercent = batteryPercentRemaining.Get(); lv_label_set_text(batteryIcon, BatteryIcon::GetBatteryIcon(batteryPercent)); @@ -532,16 +553,7 @@ void PineTimeStyle::UpdateSelected(lv_obj_t* object, lv_event_t event) { lv_obj_set_style_local_bg_color(timebar, LV_BTN_PART_MAIN, LV_STATE_DEFAULT, Convert(valueBG)); } if (object == btnClose) { - settingsController.SaveSettings(); - lv_obj_set_hidden(btnNextTime, true); - lv_obj_set_hidden(btnPrevTime, true); - lv_obj_set_hidden(btnNextBar, true); - lv_obj_set_hidden(btnPrevBar, true); - lv_obj_set_hidden(btnNextBG, true); - lv_obj_set_hidden(btnPrevBG, true); - lv_obj_set_hidden(btnReset, true); - lv_obj_set_hidden(btnRandom, true); - lv_obj_set_hidden(btnClose, true); + CloseMenu(); } if (object == btnSet) { lv_obj_set_hidden(btnSet, true); @@ -579,4 +591,4 @@ Pinetime::Controllers::Settings::Colors PineTimeStyle::GetPrevious(Pinetime::Con prevColor = static_cast(16); } return prevColor; -} \ No newline at end of file +} diff --git a/src/displayapp/screens/PineTimeStyle.h b/src/displayapp/screens/PineTimeStyle.h index 5274d0c9..63dba582 100644 --- a/src/displayapp/screens/PineTimeStyle.h +++ b/src/displayapp/screens/PineTimeStyle.h @@ -31,6 +31,7 @@ namespace Pinetime { ~PineTimeStyle() override; bool OnTouchEvent(TouchEvents event) override; + bool OnButtonPushed() override; void Refresh() override; @@ -96,9 +97,10 @@ namespace Pinetime { Controllers::MotionController& motionController; void SetBatteryIcon(); + void CloseMenu(); lv_task_t* taskRefresh; }; } } -} \ No newline at end of file +} From 2e7b51c8e1cb32833f1d07a499fd6a848f1bf96e Mon Sep 17 00:00:00 2001 From: Riku Isokoski Date: Sat, 13 Nov 2021 13:11:32 +0200 Subject: [PATCH 031/188] clang-format and clang-tidy PineTimeStyle --- src/displayapp/screens/PineTimeStyle.cpp | 52 +++++++++++++----------- src/displayapp/screens/PineTimeStyle.h | 4 +- 2 files changed, 31 insertions(+), 25 deletions(-) diff --git a/src/displayapp/screens/PineTimeStyle.cpp b/src/displayapp/screens/PineTimeStyle.cpp index 47798ae5..7c4ed696 100644 --- a/src/displayapp/screens/PineTimeStyle.cpp +++ b/src/displayapp/screens/PineTimeStyle.cpp @@ -38,8 +38,8 @@ using namespace Pinetime::Applications::Screens; namespace { - static void event_handler(lv_obj_t* obj, lv_event_t event) { - PineTimeStyle* screen = static_cast(obj->user_data); + void event_handler(lv_obj_t* obj, lv_event_t event) { + auto* screen = static_cast(obj->user_data); screen->UpdateSelected(obj, event); } } @@ -169,8 +169,8 @@ PineTimeStyle::PineTimeStyle(DisplayApp* app, // Step count gauge if (settingsController.GetPTSColorBar() == Pinetime::Controllers::Settings::Colors::White) { - needle_colors[0] = LV_COLOR_BLACK; - } else { + needle_colors[0] = LV_COLOR_BLACK; + } else { needle_colors[0] = LV_COLOR_WHITE; } stepGauge = lv_gauge_create(lv_scr_act(), nullptr); @@ -305,7 +305,7 @@ PineTimeStyle::~PineTimeStyle() { } bool PineTimeStyle::OnTouchEvent(Pinetime::Applications::TouchEvents event) { - if ((event == Pinetime::Applications::TouchEvents::LongTap) && (lv_obj_get_hidden(btnRandom) == true)) { + if ((event == Pinetime::Applications::TouchEvents::LongTap) && lv_obj_get_hidden(btnRandom)) { lv_obj_set_hidden(btnSet, false); savedTick = lv_tick_get(); return true; @@ -392,7 +392,7 @@ void PineTimeStyle::Refresh() { char hoursChar[3]; char ampmChar[5]; if (settingsController.GetClockType() == Controllers::Settings::ClockType::H24) { - sprintf(hoursChar, "%02d", hour); + sprintf(hoursChar, "%02d", hour); } else { if (hour == 0 && hour != 12) { hour = 12; @@ -447,7 +447,7 @@ void PineTimeStyle::Refresh() { lv_obj_set_style_local_scale_grad_color(stepGauge, LV_GAUGE_PART_MAIN, LV_STATE_DEFAULT, LV_COLOR_WHITE); } } - if (lv_obj_get_hidden(btnSet) == false) { + if (!lv_obj_get_hidden(btnSet)) { if ((savedTick > 0) && (lv_tick_get() - savedTick > 3000)) { lv_obj_set_hidden(btnSet, true); savedTick = 0; @@ -463,8 +463,9 @@ void PineTimeStyle::UpdateSelected(lv_obj_t* object, lv_event_t event) { if (event == LV_EVENT_CLICKED) { if (object == btnNextTime) { valueTime = GetNext(valueTime); - if(valueTime == valueBG) + if (valueTime == valueBG) { valueTime = GetNext(valueTime); + } settingsController.SetPTSColorTime(valueTime); lv_obj_set_style_local_text_color(timeDD1, LV_LABEL_PART_MAIN, LV_STATE_DEFAULT, Convert(valueTime)); lv_obj_set_style_local_text_color(timeDD2, LV_LABEL_PART_MAIN, LV_STATE_DEFAULT, Convert(valueTime)); @@ -472,8 +473,9 @@ void PineTimeStyle::UpdateSelected(lv_obj_t* object, lv_event_t event) { } if (object == btnPrevTime) { valueTime = GetPrevious(valueTime); - if(valueTime == valueBG) + if (valueTime == valueBG) { valueTime = GetPrevious(valueTime); + } settingsController.SetPTSColorTime(valueTime); lv_obj_set_style_local_text_color(timeDD1, LV_LABEL_PART_MAIN, LV_STATE_DEFAULT, Convert(valueTime)); lv_obj_set_style_local_text_color(timeDD2, LV_LABEL_PART_MAIN, LV_STATE_DEFAULT, Convert(valueTime)); @@ -481,11 +483,12 @@ void PineTimeStyle::UpdateSelected(lv_obj_t* object, lv_event_t event) { } if (object == btnNextBar) { valueBar = GetNext(valueBar); - if(valueBar == Controllers::Settings::Colors::Black) + if (valueBar == Controllers::Settings::Colors::Black) { valueBar = GetNext(valueBar); - if(valueBar == Controllers::Settings::Colors::White) { - needle_colors[0] = LV_COLOR_BLACK; - } else { + } + if (valueBar == Controllers::Settings::Colors::White) { + needle_colors[0] = LV_COLOR_BLACK; + } else { needle_colors[0] = LV_COLOR_WHITE; } settingsController.SetPTSColorBar(valueBar); @@ -493,11 +496,12 @@ void PineTimeStyle::UpdateSelected(lv_obj_t* object, lv_event_t event) { } if (object == btnPrevBar) { valueBar = GetPrevious(valueBar); - if(valueBar == Controllers::Settings::Colors::Black) + if (valueBar == Controllers::Settings::Colors::Black) { valueBar = GetPrevious(valueBar); - if(valueBar == Controllers::Settings::Colors::White) { - needle_colors[0] = LV_COLOR_BLACK; - } else { + } + if (valueBar == Controllers::Settings::Colors::White) { + needle_colors[0] = LV_COLOR_BLACK; + } else { needle_colors[0] = LV_COLOR_WHITE; } settingsController.SetPTSColorBar(valueBar); @@ -505,15 +509,17 @@ void PineTimeStyle::UpdateSelected(lv_obj_t* object, lv_event_t event) { } if (object == btnNextBG) { valueBG = GetNext(valueBG); - if(valueBG == valueTime) + if (valueBG == valueTime) { valueBG = GetNext(valueBG); + } settingsController.SetPTSColorBG(valueBG); lv_obj_set_style_local_bg_color(timebar, LV_BTN_PART_MAIN, LV_STATE_DEFAULT, Convert(valueBG)); } if (object == btnPrevBG) { valueBG = GetPrevious(valueBG); - if(valueBG == valueTime) + if (valueBG == valueTime) { valueBG = GetPrevious(valueBG); + } settingsController.SetPTSColorBG(valueBG); lv_obj_set_style_local_bg_color(timebar, LV_BTN_PART_MAIN, LV_STATE_DEFAULT, Convert(valueBG)); } @@ -545,12 +551,12 @@ void PineTimeStyle::UpdateSelected(lv_obj_t* object, lv_event_t event) { } settingsController.SetPTSColorTime(static_cast(valueTime)); lv_obj_set_style_local_text_color(timeDD1, LV_LABEL_PART_MAIN, LV_STATE_DEFAULT, Convert(valueTime)); - lv_obj_set_style_local_text_color(timeDD2, LV_LABEL_PART_MAIN, LV_STATE_DEFAULT, Convert(valueTime)); - lv_obj_set_style_local_text_color(timeAMPM, LV_LABEL_PART_MAIN, LV_STATE_DEFAULT, Convert(valueTime)); + lv_obj_set_style_local_text_color(timeDD2, LV_LABEL_PART_MAIN, LV_STATE_DEFAULT, Convert(valueTime)); + lv_obj_set_style_local_text_color(timeAMPM, LV_LABEL_PART_MAIN, LV_STATE_DEFAULT, Convert(valueTime)); settingsController.SetPTSColorBar(static_cast(valueBar)); - lv_obj_set_style_local_bg_color(sidebar, LV_BTN_PART_MAIN, LV_STATE_DEFAULT, Convert(valueBar)); + lv_obj_set_style_local_bg_color(sidebar, LV_BTN_PART_MAIN, LV_STATE_DEFAULT, Convert(valueBar)); settingsController.SetPTSColorBG(static_cast(valueBG)); - lv_obj_set_style_local_bg_color(timebar, LV_BTN_PART_MAIN, LV_STATE_DEFAULT, Convert(valueBG)); + lv_obj_set_style_local_bg_color(timebar, LV_BTN_PART_MAIN, LV_STATE_DEFAULT, Convert(valueBG)); } if (object == btnClose) { CloseMenu(); diff --git a/src/displayapp/screens/PineTimeStyle.h b/src/displayapp/screens/PineTimeStyle.h index 63dba582..8d2003c2 100644 --- a/src/displayapp/screens/PineTimeStyle.h +++ b/src/displayapp/screens/PineTimeStyle.h @@ -54,8 +54,8 @@ namespace Pinetime { DirtyValue stepCount {}; DirtyValue notificationState {}; - Pinetime::Controllers::Settings::Colors GetNext(Controllers::Settings::Colors color); - Pinetime::Controllers::Settings::Colors GetPrevious(Controllers::Settings::Colors color); + static Pinetime::Controllers::Settings::Colors GetNext(Controllers::Settings::Colors color); + static Pinetime::Controllers::Settings::Colors GetPrevious(Controllers::Settings::Colors color); lv_obj_t* btnNextTime; lv_obj_t* btnPrevTime; From 71a64974c0783b425efefd091ab7127c42c8724a Mon Sep 17 00:00:00 2001 From: Riku Isokoski Date: Sat, 13 Nov 2021 13:37:52 +0200 Subject: [PATCH 032/188] Remove some clang-tidy checks --- .clang-tidy | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.clang-tidy b/.clang-tidy index df52357d..88ca6c54 100644 --- a/.clang-tidy +++ b/.clang-tidy @@ -1,6 +1,7 @@ Checks: '*, -altera-unroll-loops, -llvmlibc-callee-namespace, + -llvmlibc-implementation-in-namespace, -llvmlibc-restrict-system-libc-headers, -llvm-header-guard, -llvm-namespace-comment, @@ -8,6 +9,7 @@ Checks: '*, -google-runtime-int, -google-readability-namespace-comments, -fuchsia-statically-constructed-objects, + -cppcoreguidelines-prefer-member-initializer, -cppcoreguidelines-pro-bounds-array-to-pointer-decay, -cppcoreguidelines-pro-bounds-constant-array-index, -cppcoreguidelines-pro-type-static-cast-downcast, From 9671a8451fc0bc49fcd06521906d8be53959a74f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jean-Fran=C3=A7ois=20Milants?= Date: Sun, 14 Nov 2021 20:32:25 +0100 Subject: [PATCH 033/188] Fix unresponsive touch panel after update to 1.7 : don't care if device ids are not the ones we expected (until we know more about these communication and IDs issues). --- CMakeLists.txt | 2 +- src/drivers/Cst816s.cpp | 16 +++++----------- 2 files changed, 6 insertions(+), 12 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 63257ff9..b5880666 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,5 +1,5 @@ cmake_minimum_required(VERSION 3.10) -project(pinetime VERSION 1.7.0 LANGUAGES C CXX ASM) +project(pinetime VERSION 1.7.1 LANGUAGES C CXX ASM) set(CMAKE_C_STANDARD 99) set(CMAKE_CXX_STANDARD 14) diff --git a/src/drivers/Cst816s.cpp b/src/drivers/Cst816s.cpp index 4aac19f9..bf51a8ba 100644 --- a/src/drivers/Cst816s.cpp +++ b/src/drivers/Cst816s.cpp @@ -32,17 +32,11 @@ bool Cst816S::Init() { twiMaster.Read(twiAddress, 0xa7, &dummy, 1); vTaskDelay(5); - static constexpr uint8_t maxRetries = 3; - bool isDeviceOk; - uint8_t retries = 0; - do { - isDeviceOk = CheckDeviceIds(); - retries++; - } while (!isDeviceOk && retries < maxRetries); - - if (!isDeviceOk) { - return false; - } + // TODO This function check that the device IDs from the controller are equal to the ones + // we expect. However, it seems to return false positive (probably in case of communication issue). + // Also, it seems that some users have pinetimes that works correctly but that report different device IDs + // Until we know more about this, we'll just read the IDs but not take any action in case they are not 'valid' + CheckDeviceIds(); /* [2] EnConLR - Continuous operation can slide around From a631fa351858f722f8c4ba7992901722acf3f0c9 Mon Sep 17 00:00:00 2001 From: mabuch Date: Mon, 15 Nov 2021 20:41:32 +0100 Subject: [PATCH 034/188] fix Motion Service UUID in doc and code comments --- doc/MotionService.md | 6 +++--- src/components/ble/MotionService.cpp | 4 ++-- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/doc/MotionService.md b/doc/MotionService.md index 0d0a5514..7cec3fba 100644 --- a/doc/MotionService.md +++ b/doc/MotionService.md @@ -3,13 +3,13 @@ The motion service exposes step count and raw X/Y/Z motion value as READ and NOTIFY characteristics. ## Service -The service UUID is **00020000-78fc-48fe-8e23-433b3a1942d0** +The service UUID is **00030000-78fc-48fe-8e23-433b3a1942d0** ## Characteristics -### Step count (UUID 00020001-78fc-48fe-8e23-433b3a1942d0) +### Step count (UUID 00030001-78fc-48fe-8e23-433b3a1942d0) The current number of steps represented as a single `uint32_t` (4 bytes) value. -### Raw motion values (UUID 00020002-78fc-48fe-8e23-433b3a1942d0) +### Raw motion values (UUID 00030002-78fc-48fe-8e23-433b3a1942d0) The current raw motion values. This is a 3 `int16_t` array: - [0] : X diff --git a/src/components/ble/MotionService.cpp b/src/components/ble/MotionService.cpp index b4786ab5..284c60dc 100644 --- a/src/components/ble/MotionService.cpp +++ b/src/components/ble/MotionService.cpp @@ -5,7 +5,7 @@ using namespace Pinetime::Controllers; namespace { - // 0002yyxx-78fc-48fe-8e23-433b3a1942d0 + // 0003yyxx-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}, @@ -13,7 +13,7 @@ namespace { }; } - // 00020000-78fc-48fe-8e23-433b3a1942d0 + // 00030000-78fc-48fe-8e23-433b3a1942d0 constexpr ble_uuid128_t BaseUuid() { return CharUuid(0x00, 0x00); } From c4f2fb2fa478ccd404afc0220e3e8cfe127e58e7 Mon Sep 17 00:00:00 2001 From: Reinhold Gschweicher Date: Mon, 15 Nov 2021 21:09:59 +0100 Subject: [PATCH 035/188] BatteryInfo: remove unused FreeRTOS.h and timer.h includes --- src/displayapp/screens/BatteryInfo.h | 2 -- 1 file changed, 2 deletions(-) diff --git a/src/displayapp/screens/BatteryInfo.h b/src/displayapp/screens/BatteryInfo.h index 63454a26..aaa741ce 100644 --- a/src/displayapp/screens/BatteryInfo.h +++ b/src/displayapp/screens/BatteryInfo.h @@ -1,8 +1,6 @@ #pragma once #include -#include -#include #include "Screen.h" #include From ac7b2da611fa5ef4cc989a9feb027f66c0ebfc6c Mon Sep 17 00:00:00 2001 From: Reinhold Gschweicher Date: Wed, 13 Oct 2021 22:08:35 +0200 Subject: [PATCH 036/188] Update includes to to be relative to src directory Don't use relative imports like `../foo.h` as those depend on the relative position of both files. Rather than that use imports relative to the `src` directory, which explicitly is part of the include directories. --- src/components/alarm/AlarmController.cpp | 2 +- src/components/battery/BatteryController.cpp | 2 +- .../ble/AlertNotificationClient.cpp | 4 +-- src/components/ble/AlertNotificationClient.h | 2 +- .../ble/AlertNotificationService.cpp | 4 +-- .../ble/BatteryInformationService.cpp | 2 +- src/components/ble/BleController.cpp | 2 +- src/components/ble/CurrentTimeClient.cpp | 2 +- src/components/ble/CurrentTimeClient.h | 2 +- src/components/ble/CurrentTimeService.cpp | 2 +- .../ble/DeviceInformationService.cpp | 2 +- src/components/ble/DfuService.cpp | 2 +- src/components/ble/HeartRateService.cpp | 2 +- src/components/ble/ImmediateAlertService.cpp | 4 +-- src/components/ble/MotionService.cpp | 2 +- src/components/ble/MusicService.cpp | 2 +- src/components/ble/NavigationService.cpp | 2 +- src/components/ble/NimbleController.cpp | 2 +- src/components/ble/NimbleController.h | 26 +++++++++---------- src/components/ble/NotificationManager.cpp | 2 +- src/components/ble/ServiceDiscovery.cpp | 4 +-- .../brightness/BrightnessController.cpp | 2 +- .../datetime/DateTimeController.cpp | 2 +- .../firmwarevalidator/FirmwareValidator.cpp | 2 +- src/components/fs/FS.cpp | 2 +- src/components/gfx/Gfx.cpp | 2 +- src/components/heartrate/Biquad.cpp | 2 +- .../heartrate/HeartRateController.cpp | 2 +- src/components/heartrate/Ppg.cpp | 2 +- src/components/heartrate/Ppg.h | 4 +-- src/components/heartrate/Ptagc.cpp | 2 +- src/components/motion/MotionController.cpp | 2 +- src/components/motor/MotorController.cpp | 2 +- src/components/rle/RleDecoder.cpp | 2 +- src/components/settings/Settings.cpp | 2 +- src/components/timer/TimerController.cpp | 2 +- src/displayapp/Colors.cpp | 2 +- src/displayapp/Colors.h | 2 +- src/displayapp/DisplayApp.cpp | 10 +++---- src/displayapp/DisplayApp.h | 8 +++--- src/displayapp/DisplayAppRecovery.cpp | 6 ++--- src/displayapp/DisplayAppRecovery.h | 8 +++--- src/displayapp/LittleVgl.cpp | 4 +-- src/displayapp/lv_pinetime_theme.c | 2 +- src/displayapp/screens/Alarm.cpp | 6 ++--- src/displayapp/screens/Alarm.h | 4 +-- src/displayapp/screens/ApplicationList.cpp | 8 +++--- src/displayapp/screens/ApplicationList.h | 4 +-- src/displayapp/screens/BatteryIcon.cpp | 4 +-- src/displayapp/screens/BatteryInfo.cpp | 4 +-- src/displayapp/screens/BatteryInfo.h | 2 +- src/displayapp/screens/BleIcon.cpp | 4 +-- src/displayapp/screens/Brightness.cpp | 2 +- src/displayapp/screens/Brightness.h | 2 +- src/displayapp/screens/Clock.cpp | 10 +++---- src/displayapp/screens/Clock.h | 2 +- src/displayapp/screens/DropDownDemo.cpp | 4 +-- src/displayapp/screens/DropDownDemo.h | 2 +- src/displayapp/screens/Error.cpp | 2 +- src/displayapp/screens/Error.h | 2 +- src/displayapp/screens/FirmwareUpdate.cpp | 4 +-- src/displayapp/screens/FirmwareUpdate.h | 2 +- src/displayapp/screens/FirmwareValidation.cpp | 4 +-- src/displayapp/screens/FirmwareValidation.h | 2 +- src/displayapp/screens/FlashLight.cpp | 6 ++--- src/displayapp/screens/FlashLight.h | 2 +- src/displayapp/screens/HeartRate.cpp | 6 ++--- src/displayapp/screens/HeartRate.h | 2 +- src/displayapp/screens/InfiniPaint.cpp | 6 ++--- src/displayapp/screens/InfiniPaint.h | 2 +- src/displayapp/screens/Label.cpp | 2 +- src/displayapp/screens/Label.h | 2 +- src/displayapp/screens/List.cpp | 6 ++--- src/displayapp/screens/List.h | 4 +-- src/displayapp/screens/Meter.cpp | 4 +-- src/displayapp/screens/Meter.h | 2 +- src/displayapp/screens/Metronome.cpp | 4 +-- src/displayapp/screens/Motion.cpp | 4 +-- src/displayapp/screens/Motion.h | 2 +- src/displayapp/screens/Music.cpp | 6 ++--- src/displayapp/screens/Music.h | 2 +- src/displayapp/screens/Navigation.cpp | 4 +-- src/displayapp/screens/Navigation.h | 2 +- src/displayapp/screens/NotificationIcon.cpp | 4 +-- src/displayapp/screens/Notifications.cpp | 6 ++--- src/displayapp/screens/Notifications.h | 2 +- src/displayapp/screens/Paddle.cpp | 6 ++--- src/displayapp/screens/Paddle.h | 2 +- src/displayapp/screens/PineTimeStyle.cpp | 12 ++++----- src/displayapp/screens/PineTimeStyle.h | 4 +-- src/displayapp/screens/Screen.cpp | 2 +- src/displayapp/screens/Screen.h | 2 +- src/displayapp/screens/ScreenList.h | 4 +-- src/displayapp/screens/Steps.cpp | 6 ++--- src/displayapp/screens/Steps.h | 2 +- src/displayapp/screens/StopWatch.cpp | 6 ++--- src/displayapp/screens/StopWatch.h | 4 +-- src/displayapp/screens/SystemInfo.cpp | 6 ++--- src/displayapp/screens/SystemInfo.h | 4 +-- src/displayapp/screens/Tile.cpp | 6 ++--- src/displayapp/screens/Tile.h | 4 +-- src/displayapp/screens/Timer.cpp | 8 +++--- src/displayapp/screens/Timer.h | 4 +-- src/displayapp/screens/Twos.cpp | 2 +- src/displayapp/screens/Twos.h | 2 +- src/displayapp/screens/WatchFaceAnalog.cpp | 10 +++---- src/displayapp/screens/WatchFaceAnalog.h | 4 +-- src/displayapp/screens/WatchFaceDigital.cpp | 10 +++---- src/displayapp/screens/WatchFaceDigital.h | 4 +-- .../screens/settings/QuickSettings.cpp | 2 +- .../screens/settings/SettingDisplay.cpp | 2 +- .../screens/settings/SettingPineTimeStyle.cpp | 2 +- .../screens/settings/SettingSetDate.cpp | 2 +- .../screens/settings/SettingSetTime.cpp | 2 +- .../screens/settings/SettingSteps.cpp | 2 +- .../screens/settings/SettingTimeFormat.cpp | 2 +- .../screens/settings/SettingWakeUp.cpp | 2 +- .../screens/settings/SettingWatchFace.cpp | 2 +- src/displayapp/screens/settings/Settings.cpp | 2 +- src/drivers/Bma421.cpp | 4 +-- src/drivers/Cst816s.cpp | 2 +- src/drivers/Cst816s.h | 2 +- src/drivers/DebugPins.cpp | 2 +- src/drivers/Hrs3300.cpp | 2 +- src/drivers/Hrs3300.h | 2 +- src/drivers/InternalFlash.cpp | 2 +- src/drivers/Spi.cpp | 2 +- src/drivers/Spi.h | 2 +- src/drivers/SpiMaster.cpp | 2 +- src/drivers/SpiNorFlash.cpp | 4 +-- src/drivers/St7789.cpp | 4 +-- src/drivers/TwiMaster.cpp | 2 +- src/drivers/Watchdog.cpp | 2 +- src/heartratetask/HeartRateTask.cpp | 2 +- src/logging/DummyLogger.h | 2 +- src/logging/NrfLogger.cpp | 2 +- src/logging/NrfLogger.h | 2 +- src/systemtask/SystemTask.cpp | 2 +- src/systemtask/SystemTask.h | 4 +-- src/touchhandler/TouchHandler.cpp | 2 +- 140 files changed, 243 insertions(+), 243 deletions(-) diff --git a/src/components/alarm/AlarmController.cpp b/src/components/alarm/AlarmController.cpp index 67ca05a9..28b328d5 100644 --- a/src/components/alarm/AlarmController.cpp +++ b/src/components/alarm/AlarmController.cpp @@ -15,7 +15,7 @@ You should have received a copy of the GNU General Public License along with this program. If not, see . */ -#include "AlarmController.h" +#include "components/alarm/AlarmController.h" #include "systemtask/SystemTask.h" #include "app_timer.h" #include "task.h" diff --git a/src/components/battery/BatteryController.cpp b/src/components/battery/BatteryController.cpp index e807f033..c875cb8d 100644 --- a/src/components/battery/BatteryController.cpp +++ b/src/components/battery/BatteryController.cpp @@ -1,4 +1,4 @@ -#include "BatteryController.h" +#include "components/battery/BatteryController.h" #include "drivers/PinMap.h" #include #include diff --git a/src/components/ble/AlertNotificationClient.cpp b/src/components/ble/AlertNotificationClient.cpp index 5e5c25cf..0f850874 100644 --- a/src/components/ble/AlertNotificationClient.cpp +++ b/src/components/ble/AlertNotificationClient.cpp @@ -1,6 +1,6 @@ -#include "AlertNotificationClient.h" +#include "components/ble/AlertNotificationClient.h" #include -#include "NotificationManager.h" +#include "components/ble/NotificationManager.h" #include "systemtask/SystemTask.h" using namespace Pinetime::Controllers; diff --git a/src/components/ble/AlertNotificationClient.h b/src/components/ble/AlertNotificationClient.h index dfba8143..2d6a3873 100644 --- a/src/components/ble/AlertNotificationClient.h +++ b/src/components/ble/AlertNotificationClient.h @@ -7,7 +7,7 @@ #include #undef max #undef min -#include "BleClient.h" +#include "components/ble/BleClient.h" namespace Pinetime { diff --git a/src/components/ble/AlertNotificationService.cpp b/src/components/ble/AlertNotificationService.cpp index 56fc595f..f616cce8 100644 --- a/src/components/ble/AlertNotificationService.cpp +++ b/src/components/ble/AlertNotificationService.cpp @@ -1,8 +1,8 @@ -#include "AlertNotificationService.h" +#include "components/ble/AlertNotificationService.h" #include #include #include -#include "NotificationManager.h" +#include "components/ble/NotificationManager.h" #include "systemtask/SystemTask.h" using namespace Pinetime::Controllers; diff --git a/src/components/ble/BatteryInformationService.cpp b/src/components/ble/BatteryInformationService.cpp index 29178667..b95a88d9 100644 --- a/src/components/ble/BatteryInformationService.cpp +++ b/src/components/ble/BatteryInformationService.cpp @@ -1,5 +1,5 @@ #include -#include "BatteryInformationService.h" +#include "components/ble/BatteryInformationService.h" #include "components/battery/BatteryController.h" using namespace Pinetime::Controllers; diff --git a/src/components/ble/BleController.cpp b/src/components/ble/BleController.cpp index 7c14aeb7..a80c9719 100644 --- a/src/components/ble/BleController.cpp +++ b/src/components/ble/BleController.cpp @@ -1,4 +1,4 @@ -#include "BleController.h" +#include "components/ble/BleController.h" using namespace Pinetime::Controllers; diff --git a/src/components/ble/CurrentTimeClient.cpp b/src/components/ble/CurrentTimeClient.cpp index 90d1f0c7..dd8171b9 100644 --- a/src/components/ble/CurrentTimeClient.cpp +++ b/src/components/ble/CurrentTimeClient.cpp @@ -1,4 +1,4 @@ -#include "CurrentTimeClient.h" +#include "components/ble/CurrentTimeClient.h" #include #include #include "components/datetime/DateTimeController.h" diff --git a/src/components/ble/CurrentTimeClient.h b/src/components/ble/CurrentTimeClient.h index 6424c035..9e48be79 100644 --- a/src/components/ble/CurrentTimeClient.h +++ b/src/components/ble/CurrentTimeClient.h @@ -5,7 +5,7 @@ #undef max #undef min #include -#include "BleClient.h" +#include "components/ble/BleClient.h" namespace Pinetime { namespace Controllers { diff --git a/src/components/ble/CurrentTimeService.cpp b/src/components/ble/CurrentTimeService.cpp index eefb7ec1..e509aeaf 100644 --- a/src/components/ble/CurrentTimeService.cpp +++ b/src/components/ble/CurrentTimeService.cpp @@ -1,4 +1,4 @@ -#include "CurrentTimeService.h" +#include "components/ble/CurrentTimeService.h" #include #include diff --git a/src/components/ble/DeviceInformationService.cpp b/src/components/ble/DeviceInformationService.cpp index 778d6e35..0f47c90f 100644 --- a/src/components/ble/DeviceInformationService.cpp +++ b/src/components/ble/DeviceInformationService.cpp @@ -1,4 +1,4 @@ -#include "DeviceInformationService.h" +#include "components/ble/DeviceInformationService.h" using namespace Pinetime::Controllers; diff --git a/src/components/ble/DfuService.cpp b/src/components/ble/DfuService.cpp index 3d6416fa..71dcc7e6 100644 --- a/src/components/ble/DfuService.cpp +++ b/src/components/ble/DfuService.cpp @@ -1,4 +1,4 @@ -#include "DfuService.h" +#include "components/ble/DfuService.h" #include #include "components/ble/BleController.h" #include "drivers/SpiNorFlash.h" diff --git a/src/components/ble/HeartRateService.cpp b/src/components/ble/HeartRateService.cpp index 75a038a2..f178af79 100644 --- a/src/components/ble/HeartRateService.cpp +++ b/src/components/ble/HeartRateService.cpp @@ -1,4 +1,4 @@ -#include "HeartRateService.h" +#include "components/ble/HeartRateService.h" #include "components/heartrate/HeartRateController.h" #include "systemtask/SystemTask.h" diff --git a/src/components/ble/ImmediateAlertService.cpp b/src/components/ble/ImmediateAlertService.cpp index 17ed1a96..c80b3783 100644 --- a/src/components/ble/ImmediateAlertService.cpp +++ b/src/components/ble/ImmediateAlertService.cpp @@ -1,6 +1,6 @@ -#include "ImmediateAlertService.h" +#include "components/ble/ImmediateAlertService.h" #include -#include "NotificationManager.h" +#include "components/ble/NotificationManager.h" #include "systemtask/SystemTask.h" using namespace Pinetime::Controllers; diff --git a/src/components/ble/MotionService.cpp b/src/components/ble/MotionService.cpp index b4786ab5..0146ae86 100644 --- a/src/components/ble/MotionService.cpp +++ b/src/components/ble/MotionService.cpp @@ -1,4 +1,4 @@ -#include "MotionService.h" +#include "components/ble/MotionService.h" #include "components/motion//MotionController.h" #include "systemtask/SystemTask.h" diff --git a/src/components/ble/MusicService.cpp b/src/components/ble/MusicService.cpp index 74fe9522..3457ce4c 100644 --- a/src/components/ble/MusicService.cpp +++ b/src/components/ble/MusicService.cpp @@ -15,7 +15,7 @@ You should have received a copy of the GNU General Public License along with this program. If not, see . */ -#include "MusicService.h" +#include "components/ble/MusicService.h" #include "systemtask/SystemTask.h" namespace { diff --git a/src/components/ble/NavigationService.cpp b/src/components/ble/NavigationService.cpp index b49148d2..5418b9e5 100644 --- a/src/components/ble/NavigationService.cpp +++ b/src/components/ble/NavigationService.cpp @@ -16,7 +16,7 @@ along with this program. If not, see . */ -#include "NavigationService.h" +#include "components/ble/NavigationService.h" #include "systemtask/SystemTask.h" diff --git a/src/components/ble/NimbleController.cpp b/src/components/ble/NimbleController.cpp index 1bcae1bc..43a8b0d6 100644 --- a/src/components/ble/NimbleController.cpp +++ b/src/components/ble/NimbleController.cpp @@ -1,4 +1,4 @@ -#include "NimbleController.h" +#include "components/ble/NimbleController.h" #include #define min // workaround: nimble's min/max macros conflict with libstdc++ #define max diff --git a/src/components/ble/NimbleController.h b/src/components/ble/NimbleController.h index 76f89ba8..895b87f2 100644 --- a/src/components/ble/NimbleController.h +++ b/src/components/ble/NimbleController.h @@ -7,19 +7,19 @@ #include #undef max #undef min -#include "AlertNotificationClient.h" -#include "AlertNotificationService.h" -#include "BatteryInformationService.h" -#include "CurrentTimeClient.h" -#include "CurrentTimeService.h" -#include "DeviceInformationService.h" -#include "DfuService.h" -#include "ImmediateAlertService.h" -#include "MusicService.h" -#include "NavigationService.h" -#include "ServiceDiscovery.h" -#include "HeartRateService.h" -#include "MotionService.h" +#include "components/ble/AlertNotificationClient.h" +#include "components/ble/AlertNotificationService.h" +#include "components/ble/BatteryInformationService.h" +#include "components/ble/CurrentTimeClient.h" +#include "components/ble/CurrentTimeService.h" +#include "components/ble/DeviceInformationService.h" +#include "components/ble/DfuService.h" +#include "components/ble/ImmediateAlertService.h" +#include "components/ble/MusicService.h" +#include "components/ble/NavigationService.h" +#include "components/ble/ServiceDiscovery.h" +#include "components/ble/HeartRateService.h" +#include "components/ble/MotionService.h" namespace Pinetime { namespace Drivers { diff --git a/src/components/ble/NotificationManager.cpp b/src/components/ble/NotificationManager.cpp index 7ffed300..ec99c4ed 100644 --- a/src/components/ble/NotificationManager.cpp +++ b/src/components/ble/NotificationManager.cpp @@ -1,4 +1,4 @@ -#include "NotificationManager.h" +#include "components/ble/NotificationManager.h" #include #include diff --git a/src/components/ble/ServiceDiscovery.cpp b/src/components/ble/ServiceDiscovery.cpp index b36b241c..03bcfeb4 100644 --- a/src/components/ble/ServiceDiscovery.cpp +++ b/src/components/ble/ServiceDiscovery.cpp @@ -1,6 +1,6 @@ -#include "ServiceDiscovery.h" +#include "components/ble/ServiceDiscovery.h" #include -#include "BleClient.h" +#include "components/ble/BleClient.h" using namespace Pinetime::Controllers; diff --git a/src/components/brightness/BrightnessController.cpp b/src/components/brightness/BrightnessController.cpp index 6c524679..2d9f980a 100644 --- a/src/components/brightness/BrightnessController.cpp +++ b/src/components/brightness/BrightnessController.cpp @@ -1,4 +1,4 @@ -#include "BrightnessController.h" +#include "components/brightness/BrightnessController.h" #include #include "displayapp/screens/Symbols.h" #include "drivers/PinMap.h" diff --git a/src/components/datetime/DateTimeController.cpp b/src/components/datetime/DateTimeController.cpp index e9c5d870..4ac9e1f1 100644 --- a/src/components/datetime/DateTimeController.cpp +++ b/src/components/datetime/DateTimeController.cpp @@ -1,4 +1,4 @@ -#include "DateTimeController.h" +#include "components/datetime/DateTimeController.h" #include #include #include diff --git a/src/components/firmwarevalidator/FirmwareValidator.cpp b/src/components/firmwarevalidator/FirmwareValidator.cpp index 68e66d37..5a63b6b4 100644 --- a/src/components/firmwarevalidator/FirmwareValidator.cpp +++ b/src/components/firmwarevalidator/FirmwareValidator.cpp @@ -1,4 +1,4 @@ -#include "FirmwareValidator.h" +#include "components/firmwarevalidator/FirmwareValidator.h" #include #include "drivers/InternalFlash.h" diff --git a/src/components/fs/FS.cpp b/src/components/fs/FS.cpp index 857e6bf9..1cad4f02 100644 --- a/src/components/fs/FS.cpp +++ b/src/components/fs/FS.cpp @@ -1,4 +1,4 @@ -#include "FS.h" +#include "components/fs/FS.h" #include #include #include diff --git a/src/components/gfx/Gfx.cpp b/src/components/gfx/Gfx.cpp index cf271032..3eaaa3fe 100644 --- a/src/components/gfx/Gfx.cpp +++ b/src/components/gfx/Gfx.cpp @@ -1,4 +1,4 @@ -#include "Gfx.h" +#include "components/gfx/Gfx.h" #include "drivers/St7789.h" using namespace Pinetime::Components; diff --git a/src/components/heartrate/Biquad.cpp b/src/components/heartrate/Biquad.cpp index 0341eda6..b7edd403 100644 --- a/src/components/heartrate/Biquad.cpp +++ b/src/components/heartrate/Biquad.cpp @@ -4,7 +4,7 @@ C++ port Copyright (C) 2021 Jean-François Milants */ -#include "Biquad.h" +#include "components/heartrate/Biquad.h" using namespace Pinetime::Controllers; diff --git a/src/components/heartrate/HeartRateController.cpp b/src/components/heartrate/HeartRateController.cpp index 716813b3..e0d69272 100644 --- a/src/components/heartrate/HeartRateController.cpp +++ b/src/components/heartrate/HeartRateController.cpp @@ -1,4 +1,4 @@ -#include "HeartRateController.h" +#include "components/heartrate/HeartRateController.h" #include #include diff --git a/src/components/heartrate/Ppg.cpp b/src/components/heartrate/Ppg.cpp index fcba3815..c247d1f6 100644 --- a/src/components/heartrate/Ppg.cpp +++ b/src/components/heartrate/Ppg.cpp @@ -6,7 +6,7 @@ #include #include -#include "Ppg.h" +#include "components/heartrate/Ppg.h" using namespace Pinetime::Controllers; /** Original implementation from wasp-os : https://github.com/daniel-thompson/wasp-os/blob/master/wasp/ppg.py */ diff --git a/src/components/heartrate/Ppg.h b/src/components/heartrate/Ppg.h index 00014162..ed79b082 100644 --- a/src/components/heartrate/Ppg.h +++ b/src/components/heartrate/Ppg.h @@ -1,8 +1,8 @@ #pragma once #include -#include "Biquad.h" -#include "Ptagc.h" +#include "components/heartrate/Biquad.h" +#include "components/heartrate/Ptagc.h" namespace Pinetime { namespace Controllers { diff --git a/src/components/heartrate/Ptagc.cpp b/src/components/heartrate/Ptagc.cpp index e358371e..db496a15 100644 --- a/src/components/heartrate/Ptagc.cpp +++ b/src/components/heartrate/Ptagc.cpp @@ -5,7 +5,7 @@ */ #include -#include "Ptagc.h" +#include "components/heartrate/Ptagc.h" using namespace Pinetime::Controllers; diff --git a/src/components/motion/MotionController.cpp b/src/components/motion/MotionController.cpp index a2384d79..cae49105 100644 --- a/src/components/motion/MotionController.cpp +++ b/src/components/motion/MotionController.cpp @@ -1,4 +1,4 @@ -#include "MotionController.h" +#include "components/motion/MotionController.h" using namespace Pinetime::Controllers; diff --git a/src/components/motor/MotorController.cpp b/src/components/motor/MotorController.cpp index f596c718..c794a02c 100644 --- a/src/components/motor/MotorController.cpp +++ b/src/components/motor/MotorController.cpp @@ -1,4 +1,4 @@ -#include "MotorController.h" +#include "components/motor/MotorController.h" #include #include "systemtask/SystemTask.h" #include "app_timer.h" diff --git a/src/components/rle/RleDecoder.cpp b/src/components/rle/RleDecoder.cpp index df2bcb6b..19ebfec0 100644 --- a/src/components/rle/RleDecoder.cpp +++ b/src/components/rle/RleDecoder.cpp @@ -1,4 +1,4 @@ -#include "RleDecoder.h" +#include "components/rle/RleDecoder.h" using namespace Pinetime::Tools; diff --git a/src/components/settings/Settings.cpp b/src/components/settings/Settings.cpp index 37c09f91..ef73ad1c 100644 --- a/src/components/settings/Settings.cpp +++ b/src/components/settings/Settings.cpp @@ -1,4 +1,4 @@ -#include "Settings.h" +#include "components/settings/Settings.h" #include #include diff --git a/src/components/timer/TimerController.cpp b/src/components/timer/TimerController.cpp index 8d5f5c33..79e44d6f 100644 --- a/src/components/timer/TimerController.cpp +++ b/src/components/timer/TimerController.cpp @@ -2,7 +2,7 @@ // Created by florian on 16.05.21. // -#include "TimerController.h" +#include "components/timer/TimerController.h" #include "systemtask/SystemTask.h" #include "app_timer.h" #include "task.h" diff --git a/src/displayapp/Colors.cpp b/src/displayapp/Colors.cpp index f45f0722..93b1aa06 100644 --- a/src/displayapp/Colors.cpp +++ b/src/displayapp/Colors.cpp @@ -1,4 +1,4 @@ -#include "Colors.h" +#include "displayapp/Colors.h" using namespace Pinetime::Applications; using namespace Pinetime::Controllers; diff --git a/src/displayapp/Colors.h b/src/displayapp/Colors.h index 9db7dd20..43e2b801 100644 --- a/src/displayapp/Colors.h +++ b/src/displayapp/Colors.h @@ -1,7 +1,7 @@ #pragma once #include -#include +#include "components/settings/Settings.h" namespace Pinetime { namespace Applications { diff --git a/src/displayapp/DisplayApp.cpp b/src/displayapp/DisplayApp.cpp index 13ee0045..f4d0ce45 100644 --- a/src/displayapp/DisplayApp.cpp +++ b/src/displayapp/DisplayApp.cpp @@ -1,9 +1,9 @@ -#include "DisplayApp.h" +#include "displayapp/DisplayApp.h" #include -#include -#include -#include -#include +#include "displayapp/screens/HeartRate.h" +#include "displayapp/screens/Motion.h" +#include "displayapp/screens/Timer.h" +#include "displayapp/screens/Alarm.h" #include "components/battery/BatteryController.h" #include "components/ble/BleController.h" #include "components/datetime/DateTimeController.h" diff --git a/src/displayapp/DisplayApp.h b/src/displayapp/DisplayApp.h index a87cab0b..39fe6314 100644 --- a/src/displayapp/DisplayApp.h +++ b/src/displayapp/DisplayApp.h @@ -5,9 +5,9 @@ #include #include #include -#include "Apps.h" -#include "LittleVgl.h" -#include "TouchEvents.h" +#include "displayapp/Apps.h" +#include "displayapp/LittleVgl.h" +#include "displayapp/TouchEvents.h" #include "components/brightness/BrightnessController.h" #include "components/motor/MotorController.h" #include "components/firmwarevalidator/FirmwareValidator.h" @@ -17,7 +17,7 @@ #include "components/alarm/AlarmController.h" #include "touchhandler/TouchHandler.h" -#include "Messages.h" +#include "displayapp/Messages.h" #include "BootErrors.h" namespace Pinetime { diff --git a/src/displayapp/DisplayAppRecovery.cpp b/src/displayapp/DisplayAppRecovery.cpp index a42d81a2..fd7017a4 100644 --- a/src/displayapp/DisplayAppRecovery.cpp +++ b/src/displayapp/DisplayAppRecovery.cpp @@ -1,9 +1,9 @@ -#include "DisplayAppRecovery.h" +#include "displayapp/DisplayAppRecovery.h" #include #include #include -#include -#include +#include "components/rle/RleDecoder.h" +#include "touchhandler/TouchHandler.h" #include "displayapp/icons/infinitime/infinitime-nb.c" #include "components/ble/BleController.h" diff --git a/src/displayapp/DisplayAppRecovery.h b/src/displayapp/DisplayAppRecovery.h index 72868159..86e956d1 100644 --- a/src/displayapp/DisplayAppRecovery.h +++ b/src/displayapp/DisplayAppRecovery.h @@ -11,10 +11,10 @@ #include #include #include "BootErrors.h" -#include "TouchEvents.h" -#include "Apps.h" -#include "Messages.h" -#include "DummyLittleVgl.h" +#include "displayapp/TouchEvents.h" +#include "displayapp/Apps.h" +#include "displayapp/Messages.h" +#include "displayapp/DummyLittleVgl.h" namespace Pinetime { namespace Drivers { diff --git a/src/displayapp/LittleVgl.cpp b/src/displayapp/LittleVgl.cpp index 2bd5e57b..e7b58c16 100644 --- a/src/displayapp/LittleVgl.cpp +++ b/src/displayapp/LittleVgl.cpp @@ -1,5 +1,5 @@ -#include "LittleVgl.h" -#include "lv_pinetime_theme.h" +#include "displayapp/LittleVgl.h" +#include "displayapp/lv_pinetime_theme.h" #include #include diff --git a/src/displayapp/lv_pinetime_theme.c b/src/displayapp/lv_pinetime_theme.c index 1b8b1980..1780e64b 100644 --- a/src/displayapp/lv_pinetime_theme.c +++ b/src/displayapp/lv_pinetime_theme.c @@ -6,7 +6,7 @@ /********************* * INCLUDES *********************/ -#include "lv_pinetime_theme.h" +#include "displayapp/lv_pinetime_theme.h" /********************* * DEFINES diff --git a/src/displayapp/screens/Alarm.cpp b/src/displayapp/screens/Alarm.cpp index 6b45a36e..772e5d45 100644 --- a/src/displayapp/screens/Alarm.cpp +++ b/src/displayapp/screens/Alarm.cpp @@ -15,9 +15,9 @@ You should have received a copy of the GNU General Public License along with this program. If not, see . */ -#include "Alarm.h" -#include "Screen.h" -#include "Symbols.h" +#include "displayapp/screens/Alarm.h" +#include "displayapp/screens/Screen.h" +#include "displayapp/screens/Symbols.h" using namespace Pinetime::Applications::Screens; using Pinetime::Controllers::AlarmController; diff --git a/src/displayapp/screens/Alarm.h b/src/displayapp/screens/Alarm.h index 487ba1d5..4b301ce1 100644 --- a/src/displayapp/screens/Alarm.h +++ b/src/displayapp/screens/Alarm.h @@ -17,9 +17,9 @@ */ #pragma once -#include "Screen.h" +#include "displayapp/screens/Screen.h" #include "systemtask/SystemTask.h" -#include "../LittleVgl.h" +#include "displayapp/LittleVgl.h" #include "components/alarm/AlarmController.h" namespace Pinetime { diff --git a/src/displayapp/screens/ApplicationList.cpp b/src/displayapp/screens/ApplicationList.cpp index 5c582f60..29c8affb 100644 --- a/src/displayapp/screens/ApplicationList.cpp +++ b/src/displayapp/screens/ApplicationList.cpp @@ -1,10 +1,10 @@ -#include "ApplicationList.h" +#include "displayapp/screens/ApplicationList.h" #include #include -#include "Symbols.h" -#include "Tile.h" +#include "displayapp/screens/Symbols.h" +#include "displayapp/screens/Tile.h" #include "displayapp/Apps.h" -#include "../DisplayApp.h" +#include "displayapp/DisplayApp.h" using namespace Pinetime::Applications::Screens; diff --git a/src/displayapp/screens/ApplicationList.h b/src/displayapp/screens/ApplicationList.h index 103c38ae..f430a89e 100644 --- a/src/displayapp/screens/ApplicationList.h +++ b/src/displayapp/screens/ApplicationList.h @@ -2,8 +2,8 @@ #include -#include "Screen.h" -#include "ScreenList.h" +#include "displayapp/screens/Screen.h" +#include "displayapp/screens/ScreenList.h" #include "components/datetime/DateTimeController.h" #include "components/settings/Settings.h" #include "components/battery/BatteryController.h" diff --git a/src/displayapp/screens/BatteryIcon.cpp b/src/displayapp/screens/BatteryIcon.cpp index c67bcb23..114b08fa 100644 --- a/src/displayapp/screens/BatteryIcon.cpp +++ b/src/displayapp/screens/BatteryIcon.cpp @@ -1,6 +1,6 @@ #include -#include "BatteryIcon.h" -#include "Symbols.h" +#include "displayapp/screens/BatteryIcon.h" +#include "displayapp/screens/Symbols.h" using namespace Pinetime::Applications::Screens; diff --git a/src/displayapp/screens/BatteryInfo.cpp b/src/displayapp/screens/BatteryInfo.cpp index 44ea7f51..e17de9ab 100644 --- a/src/displayapp/screens/BatteryInfo.cpp +++ b/src/displayapp/screens/BatteryInfo.cpp @@ -1,5 +1,5 @@ -#include "BatteryInfo.h" -#include "../DisplayApp.h" +#include "displayapp/screens/BatteryInfo.h" +#include "displayapp/DisplayApp.h" #include "components/battery/BatteryController.h" using namespace Pinetime::Applications::Screens; diff --git a/src/displayapp/screens/BatteryInfo.h b/src/displayapp/screens/BatteryInfo.h index 63454a26..d7600afe 100644 --- a/src/displayapp/screens/BatteryInfo.h +++ b/src/displayapp/screens/BatteryInfo.h @@ -3,7 +3,7 @@ #include #include #include -#include "Screen.h" +#include "displayapp/screens/Screen.h" #include namespace Pinetime { diff --git a/src/displayapp/screens/BleIcon.cpp b/src/displayapp/screens/BleIcon.cpp index da3d15e7..5058f3eb 100644 --- a/src/displayapp/screens/BleIcon.cpp +++ b/src/displayapp/screens/BleIcon.cpp @@ -1,5 +1,5 @@ -#include "BleIcon.h" -#include "Symbols.h" +#include "displayapp/screens/BleIcon.h" +#include "displayapp/screens/Symbols.h" using namespace Pinetime::Applications::Screens; const char* BleIcon::GetIcon(bool isConnected) { diff --git a/src/displayapp/screens/Brightness.cpp b/src/displayapp/screens/Brightness.cpp index 1278cd62..d9901ae8 100644 --- a/src/displayapp/screens/Brightness.cpp +++ b/src/displayapp/screens/Brightness.cpp @@ -1,4 +1,4 @@ -#include "Brightness.h" +#include "displayapp/screens/Brightness.h" #include using namespace Pinetime::Applications::Screens; diff --git a/src/displayapp/screens/Brightness.h b/src/displayapp/screens/Brightness.h index 14e48592..693570c7 100644 --- a/src/displayapp/screens/Brightness.h +++ b/src/displayapp/screens/Brightness.h @@ -2,7 +2,7 @@ #include #include -#include "Screen.h" +#include "displayapp/screens/Screen.h" #include "components/brightness/BrightnessController.h" namespace Pinetime { diff --git a/src/displayapp/screens/Clock.cpp b/src/displayapp/screens/Clock.cpp index 5a5cd18b..71f01b93 100644 --- a/src/displayapp/screens/Clock.cpp +++ b/src/displayapp/screens/Clock.cpp @@ -1,4 +1,4 @@ -#include "Clock.h" +#include "displayapp/screens/Clock.h" #include #include @@ -6,10 +6,10 @@ #include "components/motion/MotionController.h" #include "components/ble/BleController.h" #include "components/ble/NotificationManager.h" -#include "../DisplayApp.h" -#include "WatchFaceDigital.h" -#include "WatchFaceAnalog.h" -#include "PineTimeStyle.h" +#include "displayapp/DisplayApp.h" +#include "displayapp/screens/WatchFaceDigital.h" +#include "displayapp/screens/WatchFaceAnalog.h" +#include "displayapp/screens/PineTimeStyle.h" using namespace Pinetime::Applications::Screens; diff --git a/src/displayapp/screens/Clock.h b/src/displayapp/screens/Clock.h index 648f72da..2fad1e21 100644 --- a/src/displayapp/screens/Clock.h +++ b/src/displayapp/screens/Clock.h @@ -5,7 +5,7 @@ #include #include #include -#include "Screen.h" +#include "displayapp/screens/Screen.h" #include "components/datetime/DateTimeController.h" namespace Pinetime { diff --git a/src/displayapp/screens/DropDownDemo.cpp b/src/displayapp/screens/DropDownDemo.cpp index 9043c20d..cf239a2f 100644 --- a/src/displayapp/screens/DropDownDemo.cpp +++ b/src/displayapp/screens/DropDownDemo.cpp @@ -1,7 +1,7 @@ -#include "DropDownDemo.h" +#include "displayapp/screens/DropDownDemo.h" #include #include -#include "../DisplayApp.h" +#include "displayapp/DisplayApp.h" using namespace Pinetime::Applications::Screens; diff --git a/src/displayapp/screens/DropDownDemo.h b/src/displayapp/screens/DropDownDemo.h index ff388c57..bcf0f45c 100644 --- a/src/displayapp/screens/DropDownDemo.h +++ b/src/displayapp/screens/DropDownDemo.h @@ -1,7 +1,7 @@ #pragma once #include -#include "Screen.h" +#include "displayapp/screens/Screen.h" #include namespace Pinetime { diff --git a/src/displayapp/screens/Error.cpp b/src/displayapp/screens/Error.cpp index 75946aba..1dbc3447 100644 --- a/src/displayapp/screens/Error.cpp +++ b/src/displayapp/screens/Error.cpp @@ -1,4 +1,4 @@ -#include "Error.h" +#include "displayapp/screens/Error.h" using namespace Pinetime::Applications::Screens; diff --git a/src/displayapp/screens/Error.h b/src/displayapp/screens/Error.h index 20dde7ee..23167545 100644 --- a/src/displayapp/screens/Error.h +++ b/src/displayapp/screens/Error.h @@ -1,6 +1,6 @@ #pragma once -#include "Screen.h" +#include "displayapp/screens/Screen.h" #include "BootErrors.h" #include diff --git a/src/displayapp/screens/FirmwareUpdate.cpp b/src/displayapp/screens/FirmwareUpdate.cpp index 79bda0ba..373fcae4 100644 --- a/src/displayapp/screens/FirmwareUpdate.cpp +++ b/src/displayapp/screens/FirmwareUpdate.cpp @@ -1,7 +1,7 @@ -#include "FirmwareUpdate.h" +#include "displayapp/screens/FirmwareUpdate.h" #include #include "components/ble/BleController.h" -#include "../DisplayApp.h" +#include "displayapp/DisplayApp.h" using namespace Pinetime::Applications::Screens; diff --git a/src/displayapp/screens/FirmwareUpdate.h b/src/displayapp/screens/FirmwareUpdate.h index 8fc86d8c..a61178ce 100644 --- a/src/displayapp/screens/FirmwareUpdate.h +++ b/src/displayapp/screens/FirmwareUpdate.h @@ -1,6 +1,6 @@ #pragma once -#include "Screen.h" +#include "displayapp/screens/Screen.h" #include #include "FreeRTOS.h" diff --git a/src/displayapp/screens/FirmwareValidation.cpp b/src/displayapp/screens/FirmwareValidation.cpp index eef8f919..ea417135 100644 --- a/src/displayapp/screens/FirmwareValidation.cpp +++ b/src/displayapp/screens/FirmwareValidation.cpp @@ -1,8 +1,8 @@ -#include "FirmwareValidation.h" +#include "displayapp/screens/FirmwareValidation.h" #include #include "Version.h" #include "components/firmwarevalidator/FirmwareValidator.h" -#include "../DisplayApp.h" +#include "displayapp/DisplayApp.h" using namespace Pinetime::Applications::Screens; diff --git a/src/displayapp/screens/FirmwareValidation.h b/src/displayapp/screens/FirmwareValidation.h index bfdb096d..278c4adf 100644 --- a/src/displayapp/screens/FirmwareValidation.h +++ b/src/displayapp/screens/FirmwareValidation.h @@ -1,6 +1,6 @@ #pragma once -#include "Screen.h" +#include "displayapp/screens/Screen.h" #include namespace Pinetime { diff --git a/src/displayapp/screens/FlashLight.cpp b/src/displayapp/screens/FlashLight.cpp index dcb31a7f..c4d02643 100644 --- a/src/displayapp/screens/FlashLight.cpp +++ b/src/displayapp/screens/FlashLight.cpp @@ -1,6 +1,6 @@ -#include "FlashLight.h" -#include "../DisplayApp.h" -#include "Symbols.h" +#include "displayapp/screens/FlashLight.h" +#include "displayapp/DisplayApp.h" +#include "displayapp/screens/Symbols.h" using namespace Pinetime::Applications::Screens; diff --git a/src/displayapp/screens/FlashLight.h b/src/displayapp/screens/FlashLight.h index f2c65bbe..e91a1032 100644 --- a/src/displayapp/screens/FlashLight.h +++ b/src/displayapp/screens/FlashLight.h @@ -1,6 +1,6 @@ #pragma once -#include "Screen.h" +#include "displayapp/screens/Screen.h" #include "components/brightness/BrightnessController.h" #include "systemtask/SystemTask.h" #include diff --git a/src/displayapp/screens/HeartRate.cpp b/src/displayapp/screens/HeartRate.cpp index b6ece27f..65d1aa2f 100644 --- a/src/displayapp/screens/HeartRate.cpp +++ b/src/displayapp/screens/HeartRate.cpp @@ -1,8 +1,8 @@ -#include -#include "HeartRate.h" +#include +#include "displayapp/screens/HeartRate.h" #include -#include "../DisplayApp.h" +#include "displayapp/DisplayApp.h" using namespace Pinetime::Applications::Screens; diff --git a/src/displayapp/screens/HeartRate.h b/src/displayapp/screens/HeartRate.h index 7f7d3ad3..d06415ca 100644 --- a/src/displayapp/screens/HeartRate.h +++ b/src/displayapp/screens/HeartRate.h @@ -2,7 +2,7 @@ #include #include -#include "Screen.h" +#include "displayapp/screens/Screen.h" #include #include "systemtask/SystemTask.h" #include diff --git a/src/displayapp/screens/InfiniPaint.cpp b/src/displayapp/screens/InfiniPaint.cpp index 85a5e826..00d224e6 100644 --- a/src/displayapp/screens/InfiniPaint.cpp +++ b/src/displayapp/screens/InfiniPaint.cpp @@ -1,6 +1,6 @@ -#include "InfiniPaint.h" -#include "../DisplayApp.h" -#include "../LittleVgl.h" +#include "displayapp/screens/InfiniPaint.h" +#include "displayapp/DisplayApp.h" +#include "displayapp/LittleVgl.h" using namespace Pinetime::Applications::Screens; diff --git a/src/displayapp/screens/InfiniPaint.h b/src/displayapp/screens/InfiniPaint.h index 0a70e033..322ce757 100644 --- a/src/displayapp/screens/InfiniPaint.h +++ b/src/displayapp/screens/InfiniPaint.h @@ -2,7 +2,7 @@ #include #include -#include "Screen.h" +#include "displayapp/screens/Screen.h" namespace Pinetime { namespace Components { diff --git a/src/displayapp/screens/Label.cpp b/src/displayapp/screens/Label.cpp index 1761a7b5..62ec1f0a 100644 --- a/src/displayapp/screens/Label.cpp +++ b/src/displayapp/screens/Label.cpp @@ -1,4 +1,4 @@ -#include "Label.h" +#include "displayapp/screens/Label.h" using namespace Pinetime::Applications::Screens; diff --git a/src/displayapp/screens/Label.h b/src/displayapp/screens/Label.h index f1e49079..3fe5111f 100644 --- a/src/displayapp/screens/Label.h +++ b/src/displayapp/screens/Label.h @@ -1,6 +1,6 @@ #pragma once -#include "Screen.h" +#include "displayapp/screens/Screen.h" #include namespace Pinetime { diff --git a/src/displayapp/screens/List.cpp b/src/displayapp/screens/List.cpp index 064b47a6..af3f30f6 100644 --- a/src/displayapp/screens/List.cpp +++ b/src/displayapp/screens/List.cpp @@ -1,6 +1,6 @@ -#include "List.h" -#include "../DisplayApp.h" -#include "Symbols.h" +#include "displayapp/screens/List.h" +#include "displayapp/DisplayApp.h" +#include "displayapp/screens/Symbols.h" using namespace Pinetime::Applications::Screens; diff --git a/src/displayapp/screens/List.h b/src/displayapp/screens/List.h index d9f61f29..023de3aa 100644 --- a/src/displayapp/screens/List.h +++ b/src/displayapp/screens/List.h @@ -3,8 +3,8 @@ #include #include #include -#include "Screen.h" -#include "../Apps.h" +#include "displayapp/screens/Screen.h" +#include "displayapp/Apps.h" #include "components/settings/Settings.h" #define MAXLISTITEMS 4 diff --git a/src/displayapp/screens/Meter.cpp b/src/displayapp/screens/Meter.cpp index 57cde9cf..9c853109 100644 --- a/src/displayapp/screens/Meter.cpp +++ b/src/displayapp/screens/Meter.cpp @@ -1,6 +1,6 @@ -#include "Meter.h" +#include "displayapp/screens/Meter.h" #include -#include "../DisplayApp.h" +#include "displayapp/DisplayApp.h" using namespace Pinetime::Applications::Screens; diff --git a/src/displayapp/screens/Meter.h b/src/displayapp/screens/Meter.h index 9b3d1d48..50d9f83c 100644 --- a/src/displayapp/screens/Meter.h +++ b/src/displayapp/screens/Meter.h @@ -1,7 +1,7 @@ #pragma once #include -#include "Screen.h" +#include "displayapp/screens/Screen.h" #include #include diff --git a/src/displayapp/screens/Metronome.cpp b/src/displayapp/screens/Metronome.cpp index 52cb8519..8347e1bb 100644 --- a/src/displayapp/screens/Metronome.cpp +++ b/src/displayapp/screens/Metronome.cpp @@ -1,5 +1,5 @@ -#include "Metronome.h" -#include "Symbols.h" +#include "displayapp/screens/Metronome.h" +#include "displayapp/screens/Symbols.h" using namespace Pinetime::Applications::Screens; diff --git a/src/displayapp/screens/Motion.cpp b/src/displayapp/screens/Motion.cpp index 2f1f7c21..3641110e 100644 --- a/src/displayapp/screens/Motion.cpp +++ b/src/displayapp/screens/Motion.cpp @@ -1,6 +1,6 @@ #include -#include "Motion.h" -#include "../DisplayApp.h" +#include "displayapp/screens/Motion.h" +#include "displayapp/DisplayApp.h" using namespace Pinetime::Applications::Screens; diff --git a/src/displayapp/screens/Motion.h b/src/displayapp/screens/Motion.h index 20a18d02..f6202b5b 100644 --- a/src/displayapp/screens/Motion.h +++ b/src/displayapp/screens/Motion.h @@ -2,7 +2,7 @@ #include #include -#include "Screen.h" +#include "displayapp/screens/Screen.h" #include #include #include diff --git a/src/displayapp/screens/Music.cpp b/src/displayapp/screens/Music.cpp index 47ddb655..8a01a6fe 100644 --- a/src/displayapp/screens/Music.cpp +++ b/src/displayapp/screens/Music.cpp @@ -15,10 +15,10 @@ You should have received a copy of the GNU General Public License along with this program. If not, see . */ -#include "Music.h" -#include "Symbols.h" +#include "displayapp/screens/Music.h" +#include "displayapp/screens/Symbols.h" #include -#include "../DisplayApp.h" +#include "displayapp/DisplayApp.h" #include "components/ble/MusicService.h" #include "displayapp/icons/music/disc.cpp" #include "displayapp/icons/music/disc_f_1.cpp" diff --git a/src/displayapp/screens/Music.h b/src/displayapp/screens/Music.h index 6f2d80a0..f9b4eaab 100644 --- a/src/displayapp/screens/Music.h +++ b/src/displayapp/screens/Music.h @@ -20,7 +20,7 @@ #include #include #include -#include "Screen.h" +#include "displayapp/screens/Screen.h" namespace Pinetime { namespace Controllers { diff --git a/src/displayapp/screens/Navigation.cpp b/src/displayapp/screens/Navigation.cpp index d437cc6d..674362a6 100644 --- a/src/displayapp/screens/Navigation.cpp +++ b/src/displayapp/screens/Navigation.cpp @@ -15,9 +15,9 @@ You should have received a copy of the GNU General Public License along with this program. If not, see . */ -#include "Navigation.h" +#include "displayapp/screens/Navigation.h" #include -#include "../DisplayApp.h" +#include "displayapp/DisplayApp.h" #include "components/ble/NavigationService.h" using namespace Pinetime::Applications::Screens; diff --git a/src/displayapp/screens/Navigation.h b/src/displayapp/screens/Navigation.h index 48f00a76..07674ef1 100644 --- a/src/displayapp/screens/Navigation.h +++ b/src/displayapp/screens/Navigation.h @@ -20,7 +20,7 @@ #include #include #include -#include "Screen.h" +#include "displayapp/screens/Screen.h" #include namespace Pinetime { diff --git a/src/displayapp/screens/NotificationIcon.cpp b/src/displayapp/screens/NotificationIcon.cpp index d8792f9d..0e913ae7 100644 --- a/src/displayapp/screens/NotificationIcon.cpp +++ b/src/displayapp/screens/NotificationIcon.cpp @@ -1,5 +1,5 @@ -#include "NotificationIcon.h" -#include "Symbols.h" +#include "displayapp/screens/NotificationIcon.h" +#include "displayapp/screens/Symbols.h" using namespace Pinetime::Applications::Screens; const char* NotificationIcon::GetIcon(bool newNotificationAvailable) { diff --git a/src/displayapp/screens/Notifications.cpp b/src/displayapp/screens/Notifications.cpp index 4f475813..569c422b 100644 --- a/src/displayapp/screens/Notifications.cpp +++ b/src/displayapp/screens/Notifications.cpp @@ -1,8 +1,8 @@ -#include "Notifications.h" -#include +#include "displayapp/screens/Notifications.h" +#include "displayapp/DisplayApp.h" #include "components/ble/MusicService.h" #include "components/ble/AlertNotificationService.h" -#include "Symbols.h" +#include "displayapp/screens/Symbols.h" using namespace Pinetime::Applications::Screens; extern lv_font_t jetbrains_mono_extrabold_compressed; diff --git a/src/displayapp/screens/Notifications.h b/src/displayapp/screens/Notifications.h index 0b5271e7..cbb7af6c 100644 --- a/src/displayapp/screens/Notifications.h +++ b/src/displayapp/screens/Notifications.h @@ -3,7 +3,7 @@ #include #include #include -#include "Screen.h" +#include "displayapp/screens/Screen.h" #include "components/ble/NotificationManager.h" #include "components/motor/MotorController.h" diff --git a/src/displayapp/screens/Paddle.cpp b/src/displayapp/screens/Paddle.cpp index 26c2368b..aa3420dc 100644 --- a/src/displayapp/screens/Paddle.cpp +++ b/src/displayapp/screens/Paddle.cpp @@ -1,6 +1,6 @@ -#include "Paddle.h" -#include "../DisplayApp.h" -#include "../LittleVgl.h" +#include "displayapp/screens/Paddle.h" +#include "displayapp/DisplayApp.h" +#include "displayapp/LittleVgl.h" using namespace Pinetime::Applications::Screens; diff --git a/src/displayapp/screens/Paddle.h b/src/displayapp/screens/Paddle.h index fc2131a1..3a30eee6 100644 --- a/src/displayapp/screens/Paddle.h +++ b/src/displayapp/screens/Paddle.h @@ -2,7 +2,7 @@ #include #include -#include "Screen.h" +#include "displayapp/screens/Screen.h" namespace Pinetime { namespace Components { diff --git a/src/displayapp/screens/PineTimeStyle.cpp b/src/displayapp/screens/PineTimeStyle.cpp index fa88d459..781a359c 100644 --- a/src/displayapp/screens/PineTimeStyle.cpp +++ b/src/displayapp/screens/PineTimeStyle.cpp @@ -19,21 +19,21 @@ * Style/layout copied from TimeStyle for Pebble by Dan Tilden (github.com/tilden) */ -#include "PineTimeStyle.h" +#include "displayapp/screens/PineTimeStyle.h" #include #include #include #include -#include "BatteryIcon.h" -#include "BleIcon.h" -#include "NotificationIcon.h" -#include "Symbols.h" +#include "displayapp/screens/BatteryIcon.h" +#include "displayapp/screens/BleIcon.h" +#include "displayapp/screens/NotificationIcon.h" +#include "displayapp/screens/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" +#include "displayapp/DisplayApp.h" using namespace Pinetime::Applications::Screens; diff --git a/src/displayapp/screens/PineTimeStyle.h b/src/displayapp/screens/PineTimeStyle.h index ba473806..f8c7c8b4 100644 --- a/src/displayapp/screens/PineTimeStyle.h +++ b/src/displayapp/screens/PineTimeStyle.h @@ -4,8 +4,8 @@ #include #include #include -#include "Screen.h" -#include "ScreenList.h" +#include "displayapp/screens/Screen.h" +#include "displayapp/screens/ScreenList.h" #include "components/datetime/DateTimeController.h" namespace Pinetime { diff --git a/src/displayapp/screens/Screen.cpp b/src/displayapp/screens/Screen.cpp index 6ae5b7bb..bc4cc438 100644 --- a/src/displayapp/screens/Screen.cpp +++ b/src/displayapp/screens/Screen.cpp @@ -1,4 +1,4 @@ -#include "Screen.h" +#include "displayapp/screens/Screen.h" using namespace Pinetime::Applications::Screens; void Screen::RefreshTaskCallback(lv_task_t* task) { diff --git a/src/displayapp/screens/Screen.h b/src/displayapp/screens/Screen.h index ce5741b2..04bb152c 100644 --- a/src/displayapp/screens/Screen.h +++ b/src/displayapp/screens/Screen.h @@ -1,7 +1,7 @@ #pragma once #include -#include "../TouchEvents.h" +#include "displayapp/TouchEvents.h" #include namespace Pinetime { diff --git a/src/displayapp/screens/ScreenList.h b/src/displayapp/screens/ScreenList.h index a9d747aa..e316e360 100644 --- a/src/displayapp/screens/ScreenList.h +++ b/src/displayapp/screens/ScreenList.h @@ -3,8 +3,8 @@ #include #include #include -#include "Screen.h" -#include "../DisplayApp.h" +#include "displayapp/screens/Screen.h" +#include "displayapp/DisplayApp.h" namespace Pinetime { namespace Applications { diff --git a/src/displayapp/screens/Steps.cpp b/src/displayapp/screens/Steps.cpp index c41163ab..916138ed 100644 --- a/src/displayapp/screens/Steps.cpp +++ b/src/displayapp/screens/Steps.cpp @@ -1,7 +1,7 @@ -#include "Steps.h" +#include "displayapp/screens/Steps.h" #include -#include "../DisplayApp.h" -#include "Symbols.h" +#include "displayapp/DisplayApp.h" +#include "displayapp/screens/Symbols.h" using namespace Pinetime::Applications::Screens; diff --git a/src/displayapp/screens/Steps.h b/src/displayapp/screens/Steps.h index d7cf31e1..68daf16d 100644 --- a/src/displayapp/screens/Steps.h +++ b/src/displayapp/screens/Steps.h @@ -2,7 +2,7 @@ #include #include -#include "Screen.h" +#include "displayapp/screens/Screen.h" #include namespace Pinetime { diff --git a/src/displayapp/screens/StopWatch.cpp b/src/displayapp/screens/StopWatch.cpp index 9b27a89d..a260d293 100644 --- a/src/displayapp/screens/StopWatch.cpp +++ b/src/displayapp/screens/StopWatch.cpp @@ -1,8 +1,8 @@ #include "StopWatch.h" -#include "Screen.h" -#include "Symbols.h" -#include "lvgl/lvgl.h" +#include "displayapp/screens/Screen.h" +#include "displayapp/screens/Symbols.h" +#include #include "projdefs.h" #include "FreeRTOSConfig.h" #include "task.h" diff --git a/src/displayapp/screens/StopWatch.h b/src/displayapp/screens/StopWatch.h index 25634e92..0720a586 100644 --- a/src/displayapp/screens/StopWatch.h +++ b/src/displayapp/screens/StopWatch.h @@ -1,8 +1,8 @@ #pragma once -#include "Screen.h" +#include "displayapp/screens/Screen.h" #include "components/datetime/DateTimeController.h" -#include "../LittleVgl.h" +#include "displayapp/LittleVgl.h" #include "FreeRTOS.h" #include "portmacro_cmsis.h" diff --git a/src/displayapp/screens/SystemInfo.cpp b/src/displayapp/screens/SystemInfo.cpp index dd223b2f..350c15cf 100644 --- a/src/displayapp/screens/SystemInfo.cpp +++ b/src/displayapp/screens/SystemInfo.cpp @@ -1,7 +1,7 @@ -#include "SystemInfo.h" +#include "displayapp/screens/SystemInfo.h" #include -#include "../DisplayApp.h" -#include "Label.h" +#include "displayapp/DisplayApp.h" +#include "displayapp/screens/Label.h" #include "Version.h" #include "BootloaderVersion.h" #include "components/battery/BatteryController.h" diff --git a/src/displayapp/screens/SystemInfo.h b/src/displayapp/screens/SystemInfo.h index bfcc3aa4..a382ed8f 100644 --- a/src/displayapp/screens/SystemInfo.h +++ b/src/displayapp/screens/SystemInfo.h @@ -1,8 +1,8 @@ #pragma once #include -#include "Screen.h" -#include "ScreenList.h" +#include "displayapp/screens/Screen.h" +#include "displayapp/screens/ScreenList.h" namespace Pinetime { namespace Controllers { diff --git a/src/displayapp/screens/Tile.cpp b/src/displayapp/screens/Tile.cpp index 1d4f0d0e..ba764a2e 100644 --- a/src/displayapp/screens/Tile.cpp +++ b/src/displayapp/screens/Tile.cpp @@ -1,6 +1,6 @@ -#include "Tile.h" -#include "../DisplayApp.h" -#include "BatteryIcon.h" +#include "displayapp/screens/Tile.h" +#include "displayapp/DisplayApp.h" +#include "displayapp/screens/BatteryIcon.h" using namespace Pinetime::Applications::Screens; diff --git a/src/displayapp/screens/Tile.h b/src/displayapp/screens/Tile.h index 83d3fdf5..4869fef9 100644 --- a/src/displayapp/screens/Tile.h +++ b/src/displayapp/screens/Tile.h @@ -3,8 +3,8 @@ #include #include #include -#include "Screen.h" -#include "../Apps.h" +#include "displayapp/screens/Screen.h" +#include "displayapp/Apps.h" #include "components/datetime/DateTimeController.h" #include "components/settings/Settings.h" #include "components/datetime/DateTimeController.h" diff --git a/src/displayapp/screens/Timer.cpp b/src/displayapp/screens/Timer.cpp index ff3099d5..a5e40195 100644 --- a/src/displayapp/screens/Timer.cpp +++ b/src/displayapp/screens/Timer.cpp @@ -1,8 +1,8 @@ -#include "Timer.h" +#include "displayapp/screens/Timer.h" -#include "Screen.h" -#include "Symbols.h" -#include "lvgl/lvgl.h" +#include "displayapp/screens/Screen.h" +#include "displayapp/screens/Symbols.h" +#include using namespace Pinetime::Applications::Screens; diff --git a/src/displayapp/screens/Timer.h b/src/displayapp/screens/Timer.h index d0fc8ed1..23c87345 100644 --- a/src/displayapp/screens/Timer.h +++ b/src/displayapp/screens/Timer.h @@ -1,9 +1,9 @@ #pragma once -#include "Screen.h" +#include "displayapp/screens/Screen.h" #include "components/datetime/DateTimeController.h" #include "systemtask/SystemTask.h" -#include "../LittleVgl.h" +#include "displayapp/LittleVgl.h" #include "components/timer/TimerController.h" diff --git a/src/displayapp/screens/Twos.cpp b/src/displayapp/screens/Twos.cpp index d12ef906..a1f0ba25 100644 --- a/src/displayapp/screens/Twos.cpp +++ b/src/displayapp/screens/Twos.cpp @@ -1,4 +1,4 @@ -#include "Twos.h" +#include "displayapp/screens/Twos.h" #include #include #include diff --git a/src/displayapp/screens/Twos.h b/src/displayapp/screens/Twos.h index 6d85cff6..48ea0794 100644 --- a/src/displayapp/screens/Twos.h +++ b/src/displayapp/screens/Twos.h @@ -1,7 +1,7 @@ #pragma once #include -#include "Screen.h" +#include "displayapp/screens/Screen.h" namespace Pinetime { namespace Applications { diff --git a/src/displayapp/screens/WatchFaceAnalog.cpp b/src/displayapp/screens/WatchFaceAnalog.cpp index 53e7faf7..510d1139 100644 --- a/src/displayapp/screens/WatchFaceAnalog.cpp +++ b/src/displayapp/screens/WatchFaceAnalog.cpp @@ -1,9 +1,9 @@ #include -#include "WatchFaceAnalog.h" -#include "BatteryIcon.h" -#include "BleIcon.h" -#include "Symbols.h" -#include "NotificationIcon.h" +#include "displayapp/screens/WatchFaceAnalog.h" +#include "displayapp/screens/BatteryIcon.h" +#include "displayapp/screens/BleIcon.h" +#include "displayapp/screens/Symbols.h" +#include "displayapp/screens/NotificationIcon.h" LV_IMG_DECLARE(bg_clock); diff --git a/src/displayapp/screens/WatchFaceAnalog.h b/src/displayapp/screens/WatchFaceAnalog.h index 001414a6..ca0462a6 100644 --- a/src/displayapp/screens/WatchFaceAnalog.h +++ b/src/displayapp/screens/WatchFaceAnalog.h @@ -4,8 +4,8 @@ #include #include #include -#include "Screen.h" -#include "ScreenList.h" +#include "displayapp/screens/Screen.h" +#include "displayapp/screens/ScreenList.h" #include "components/datetime/DateTimeController.h" #include "components/battery/BatteryController.h" #include "components/ble/BleController.h" diff --git a/src/displayapp/screens/WatchFaceDigital.cpp b/src/displayapp/screens/WatchFaceDigital.cpp index 2ecab609..2894812c 100644 --- a/src/displayapp/screens/WatchFaceDigital.cpp +++ b/src/displayapp/screens/WatchFaceDigital.cpp @@ -1,12 +1,12 @@ -#include "WatchFaceDigital.h" +#include "displayapp/screens/WatchFaceDigital.h" #include #include #include -#include "BatteryIcon.h" -#include "BleIcon.h" -#include "NotificationIcon.h" -#include "Symbols.h" +#include "displayapp/screens/BatteryIcon.h" +#include "displayapp/screens/BleIcon.h" +#include "displayapp/screens/NotificationIcon.h" +#include "displayapp/screens/Symbols.h" #include "components/battery/BatteryController.h" #include "components/ble/BleController.h" #include "components/ble/NotificationManager.h" diff --git a/src/displayapp/screens/WatchFaceDigital.h b/src/displayapp/screens/WatchFaceDigital.h index e27545f3..7134efb6 100644 --- a/src/displayapp/screens/WatchFaceDigital.h +++ b/src/displayapp/screens/WatchFaceDigital.h @@ -4,8 +4,8 @@ #include #include #include -#include "Screen.h" -#include "ScreenList.h" +#include "displayapp/screens/Screen.h" +#include "displayapp/screens/ScreenList.h" #include "components/datetime/DateTimeController.h" namespace Pinetime { diff --git a/src/displayapp/screens/settings/QuickSettings.cpp b/src/displayapp/screens/settings/QuickSettings.cpp index dd626072..5d3a9834 100644 --- a/src/displayapp/screens/settings/QuickSettings.cpp +++ b/src/displayapp/screens/settings/QuickSettings.cpp @@ -1,4 +1,4 @@ -#include "QuickSettings.h" +#include "displayapp/screens/settings/QuickSettings.h" #include "displayapp/DisplayApp.h" #include "displayapp/screens/Symbols.h" #include "displayapp/screens/BatteryIcon.h" diff --git a/src/displayapp/screens/settings/SettingDisplay.cpp b/src/displayapp/screens/settings/SettingDisplay.cpp index d8d6c767..666dfb80 100644 --- a/src/displayapp/screens/settings/SettingDisplay.cpp +++ b/src/displayapp/screens/settings/SettingDisplay.cpp @@ -1,4 +1,4 @@ -#include "SettingDisplay.h" +#include "displayapp/screens/settings/SettingDisplay.h" #include #include "displayapp/DisplayApp.h" #include "displayapp/Messages.h" diff --git a/src/displayapp/screens/settings/SettingPineTimeStyle.cpp b/src/displayapp/screens/settings/SettingPineTimeStyle.cpp index c9af19b6..f38ec3bd 100644 --- a/src/displayapp/screens/settings/SettingPineTimeStyle.cpp +++ b/src/displayapp/screens/settings/SettingPineTimeStyle.cpp @@ -1,4 +1,4 @@ -#include "SettingPineTimeStyle.h" +#include "displayapp/screens/settings/SettingPineTimeStyle.h" #include #include #include "displayapp/DisplayApp.h" diff --git a/src/displayapp/screens/settings/SettingSetDate.cpp b/src/displayapp/screens/settings/SettingSetDate.cpp index ba3413ef..8bfded34 100644 --- a/src/displayapp/screens/settings/SettingSetDate.cpp +++ b/src/displayapp/screens/settings/SettingSetDate.cpp @@ -1,4 +1,4 @@ -#include "SettingSetDate.h" +#include "displayapp/screens/settings/SettingSetDate.h" #include #include #include diff --git a/src/displayapp/screens/settings/SettingSetTime.cpp b/src/displayapp/screens/settings/SettingSetTime.cpp index 194bf5eb..5351adeb 100644 --- a/src/displayapp/screens/settings/SettingSetTime.cpp +++ b/src/displayapp/screens/settings/SettingSetTime.cpp @@ -1,4 +1,4 @@ -#include "SettingSetTime.h" +#include "displayapp/screens/settings/SettingSetTime.h" #include #include #include diff --git a/src/displayapp/screens/settings/SettingSteps.cpp b/src/displayapp/screens/settings/SettingSteps.cpp index bec7972b..149840df 100644 --- a/src/displayapp/screens/settings/SettingSteps.cpp +++ b/src/displayapp/screens/settings/SettingSteps.cpp @@ -1,4 +1,4 @@ -#include "SettingSteps.h" +#include "displayapp/screens/settings/SettingSteps.h" #include #include "displayapp/DisplayApp.h" #include "displayapp/screens/Symbols.h" diff --git a/src/displayapp/screens/settings/SettingTimeFormat.cpp b/src/displayapp/screens/settings/SettingTimeFormat.cpp index c99e3a0e..c6bdf401 100644 --- a/src/displayapp/screens/settings/SettingTimeFormat.cpp +++ b/src/displayapp/screens/settings/SettingTimeFormat.cpp @@ -1,4 +1,4 @@ -#include "SettingTimeFormat.h" +#include "displayapp/screens/settings/SettingTimeFormat.h" #include #include "displayapp/DisplayApp.h" #include "displayapp/screens/Screen.h" diff --git a/src/displayapp/screens/settings/SettingWakeUp.cpp b/src/displayapp/screens/settings/SettingWakeUp.cpp index d999004b..8339d9ad 100644 --- a/src/displayapp/screens/settings/SettingWakeUp.cpp +++ b/src/displayapp/screens/settings/SettingWakeUp.cpp @@ -1,4 +1,4 @@ -#include "SettingWakeUp.h" +#include "displayapp/screens/settings/SettingWakeUp.h" #include #include "displayapp/DisplayApp.h" #include "displayapp/screens/Screen.h" diff --git a/src/displayapp/screens/settings/SettingWatchFace.cpp b/src/displayapp/screens/settings/SettingWatchFace.cpp index cdec704c..8e6e7cf4 100644 --- a/src/displayapp/screens/settings/SettingWatchFace.cpp +++ b/src/displayapp/screens/settings/SettingWatchFace.cpp @@ -1,4 +1,4 @@ -#include "SettingWatchFace.h" +#include "displayapp/screens/settings/SettingWatchFace.h" #include #include "displayapp/DisplayApp.h" #include "displayapp/screens/Screen.h" diff --git a/src/displayapp/screens/settings/Settings.cpp b/src/displayapp/screens/settings/Settings.cpp index 1daf311e..392c12e0 100644 --- a/src/displayapp/screens/settings/Settings.cpp +++ b/src/displayapp/screens/settings/Settings.cpp @@ -1,4 +1,4 @@ -#include "Settings.h" +#include "displayapp/screens/settings/Settings.h" #include #include #include "displayapp/screens/List.h" diff --git a/src/drivers/Bma421.cpp b/src/drivers/Bma421.cpp index dd284000..8db64ad8 100644 --- a/src/drivers/Bma421.cpp +++ b/src/drivers/Bma421.cpp @@ -1,7 +1,7 @@ #include #include -#include "Bma421.h" -#include "TwiMaster.h" +#include "drivers/Bma421.h" +#include "drivers/TwiMaster.h" #include using namespace Pinetime::Drivers; diff --git a/src/drivers/Cst816s.cpp b/src/drivers/Cst816s.cpp index bf51a8ba..e9573df1 100644 --- a/src/drivers/Cst816s.cpp +++ b/src/drivers/Cst816s.cpp @@ -1,4 +1,4 @@ -#include "Cst816s.h" +#include "drivers/Cst816s.h" #include #include #include diff --git a/src/drivers/Cst816s.h b/src/drivers/Cst816s.h index 507dd4f5..4a548d45 100644 --- a/src/drivers/Cst816s.h +++ b/src/drivers/Cst816s.h @@ -1,6 +1,6 @@ #pragma once -#include "TwiMaster.h" +#include "drivers/TwiMaster.h" namespace Pinetime { namespace Drivers { diff --git a/src/drivers/DebugPins.cpp b/src/drivers/DebugPins.cpp index 56fd1458..92091280 100644 --- a/src/drivers/DebugPins.cpp +++ b/src/drivers/DebugPins.cpp @@ -1,4 +1,4 @@ -#include "DebugPins.h" +#include "drivers/DebugPins.h" #include #ifdef USE_DEBUG_PINS diff --git a/src/drivers/Hrs3300.cpp b/src/drivers/Hrs3300.cpp index edb9e81d..cecef145 100644 --- a/src/drivers/Hrs3300.cpp +++ b/src/drivers/Hrs3300.cpp @@ -6,7 +6,7 @@ #include #include -#include "Hrs3300.h" +#include "drivers/Hrs3300.h" #include #include diff --git a/src/drivers/Hrs3300.h b/src/drivers/Hrs3300.h index c4f28900..01310c62 100644 --- a/src/drivers/Hrs3300.h +++ b/src/drivers/Hrs3300.h @@ -1,6 +1,6 @@ #pragma once -#include "TwiMaster.h" +#include "drivers/TwiMaster.h" namespace Pinetime { namespace Drivers { diff --git a/src/drivers/InternalFlash.cpp b/src/drivers/InternalFlash.cpp index 0840c6e5..ec5885d5 100644 --- a/src/drivers/InternalFlash.cpp +++ b/src/drivers/InternalFlash.cpp @@ -1,4 +1,4 @@ -#include "InternalFlash.h" +#include "drivers/InternalFlash.h" #include using namespace Pinetime::Drivers; diff --git a/src/drivers/Spi.cpp b/src/drivers/Spi.cpp index a55d2888..e477622b 100644 --- a/src/drivers/Spi.cpp +++ b/src/drivers/Spi.cpp @@ -1,4 +1,4 @@ -#include "Spi.h" +#include "drivers/Spi.h" #include #include diff --git a/src/drivers/Spi.h b/src/drivers/Spi.h index 6875710d..9b6a30f4 100644 --- a/src/drivers/Spi.h +++ b/src/drivers/Spi.h @@ -1,7 +1,7 @@ #pragma once #include #include -#include "SpiMaster.h" +#include "drivers/SpiMaster.h" namespace Pinetime { namespace Drivers { diff --git a/src/drivers/SpiMaster.cpp b/src/drivers/SpiMaster.cpp index c45e1294..747dbc84 100644 --- a/src/drivers/SpiMaster.cpp +++ b/src/drivers/SpiMaster.cpp @@ -1,4 +1,4 @@ -#include "SpiMaster.h" +#include "drivers/SpiMaster.h" #include #include #include diff --git a/src/drivers/SpiNorFlash.cpp b/src/drivers/SpiNorFlash.cpp index 068d1d02..ebe3174c 100644 --- a/src/drivers/SpiNorFlash.cpp +++ b/src/drivers/SpiNorFlash.cpp @@ -1,8 +1,8 @@ -#include "SpiNorFlash.h" +#include "drivers/SpiNorFlash.h" #include #include #include -#include "Spi.h" +#include "drivers/Spi.h" using namespace Pinetime::Drivers; diff --git a/src/drivers/St7789.cpp b/src/drivers/St7789.cpp index 4d81cf27..fd1366f8 100644 --- a/src/drivers/St7789.cpp +++ b/src/drivers/St7789.cpp @@ -1,8 +1,8 @@ -#include "St7789.h" +#include "drivers/St7789.h" #include #include #include -#include "Spi.h" +#include "drivers/Spi.h" using namespace Pinetime::Drivers; diff --git a/src/drivers/TwiMaster.cpp b/src/drivers/TwiMaster.cpp index 76009278..9b456d5f 100644 --- a/src/drivers/TwiMaster.cpp +++ b/src/drivers/TwiMaster.cpp @@ -1,4 +1,4 @@ -#include "TwiMaster.h" +#include "drivers/TwiMaster.h" #include #include #include diff --git a/src/drivers/Watchdog.cpp b/src/drivers/Watchdog.cpp index a6ad263a..d0907a65 100644 --- a/src/drivers/Watchdog.cpp +++ b/src/drivers/Watchdog.cpp @@ -1,4 +1,4 @@ -#include "Watchdog.h" +#include "drivers/Watchdog.h" #include using namespace Pinetime::Drivers; diff --git a/src/heartratetask/HeartRateTask.cpp b/src/heartratetask/HeartRateTask.cpp index fddc05d7..213ab4a7 100644 --- a/src/heartratetask/HeartRateTask.cpp +++ b/src/heartratetask/HeartRateTask.cpp @@ -1,4 +1,4 @@ -#include "HeartRateTask.h" +#include "heartratetask/HeartRateTask.h" #include #include #include diff --git a/src/logging/DummyLogger.h b/src/logging/DummyLogger.h index 8732dff5..1b050b37 100644 --- a/src/logging/DummyLogger.h +++ b/src/logging/DummyLogger.h @@ -1,5 +1,5 @@ #pragma once -#include "Logger.h" +#include "logging/Logger.h" namespace Pinetime { namespace Logging { diff --git a/src/logging/NrfLogger.cpp b/src/logging/NrfLogger.cpp index 1c048f2c..ab54afe9 100644 --- a/src/logging/NrfLogger.cpp +++ b/src/logging/NrfLogger.cpp @@ -1,4 +1,4 @@ -#include "NrfLogger.h" +#include "logging/NrfLogger.h" #include #include diff --git a/src/logging/NrfLogger.h b/src/logging/NrfLogger.h index 060c4e76..21183a3d 100644 --- a/src/logging/NrfLogger.h +++ b/src/logging/NrfLogger.h @@ -1,5 +1,5 @@ #pragma once -#include "Logger.h" +#include "logging/Logger.h" #include #include diff --git a/src/systemtask/SystemTask.cpp b/src/systemtask/SystemTask.cpp index 4b03f9ac..1120b80d 100644 --- a/src/systemtask/SystemTask.cpp +++ b/src/systemtask/SystemTask.cpp @@ -1,4 +1,4 @@ -#include "SystemTask.h" +#include "systemtask/SystemTask.h" #define min // workaround: nimble's min/max macros conflict with libstdc++ #define max #include diff --git a/src/systemtask/SystemTask.h b/src/systemtask/SystemTask.h index 412878b1..e2e6de7f 100644 --- a/src/systemtask/SystemTask.h +++ b/src/systemtask/SystemTask.h @@ -11,7 +11,7 @@ #include #include -#include "SystemMonitor.h" +#include "systemtask/SystemMonitor.h" #include "components/battery/BatteryController.h" #include "components/ble/NimbleController.h" #include "components/ble/NotificationManager.h" @@ -33,7 +33,7 @@ #endif #include "drivers/Watchdog.h" -#include "Messages.h" +#include "systemtask/Messages.h" extern std::chrono::time_point NoInit_BackUpTime; namespace Pinetime { diff --git a/src/touchhandler/TouchHandler.cpp b/src/touchhandler/TouchHandler.cpp index 735b311a..0be33476 100644 --- a/src/touchhandler/TouchHandler.cpp +++ b/src/touchhandler/TouchHandler.cpp @@ -1,4 +1,4 @@ -#include "TouchHandler.h" +#include "touchhandler/TouchHandler.h" using namespace Pinetime::Controllers; From f2918709d92dd49e7e1fffe22be04fc2b47f928b Mon Sep 17 00:00:00 2001 From: Reinhold Gschweicher Date: Wed, 3 Nov 2021 23:02:30 +0100 Subject: [PATCH 037/188] Add missing standard includes --- src/BootloaderVersion.h | 3 +++ src/Version.h.in | 2 ++ src/components/ble/DeviceInformationService.h | 1 + src/displayapp/Messages.h | 1 + src/displayapp/screens/BatteryIcon.h | 1 + src/displayapp/screens/InfiniPaint.h | 1 + src/drivers/PinMap.h | 1 + 7 files changed, 10 insertions(+) diff --git a/src/BootloaderVersion.h b/src/BootloaderVersion.h index f8127414..309c23c3 100644 --- a/src/BootloaderVersion.h +++ b/src/BootloaderVersion.h @@ -1,5 +1,8 @@ #pragma once +#include +#include + namespace Pinetime { class BootloaderVersion { public: diff --git a/src/Version.h.in b/src/Version.h.in index 8cd39c96..0d6219c0 100644 --- a/src/Version.h.in +++ b/src/Version.h.in @@ -2,6 +2,8 @@ @VERSION_EDIT_WARNING@ +#include + namespace Pinetime { class Version { public: diff --git a/src/components/ble/DeviceInformationService.h b/src/components/ble/DeviceInformationService.h index 54b3e961..a269afb4 100644 --- a/src/components/ble/DeviceInformationService.h +++ b/src/components/ble/DeviceInformationService.h @@ -1,4 +1,5 @@ #pragma once +#include #define min // workaround: nimble's min/max macros conflict with libstdc++ #define max #include diff --git a/src/displayapp/Messages.h b/src/displayapp/Messages.h index ab0a0608..29e09eb3 100644 --- a/src/displayapp/Messages.h +++ b/src/displayapp/Messages.h @@ -1,4 +1,5 @@ #pragma once +#include namespace Pinetime { namespace Applications { namespace Display { diff --git a/src/displayapp/screens/BatteryIcon.h b/src/displayapp/screens/BatteryIcon.h index b370b331..bec2e4e0 100644 --- a/src/displayapp/screens/BatteryIcon.h +++ b/src/displayapp/screens/BatteryIcon.h @@ -1,4 +1,5 @@ #pragma once +#include namespace Pinetime { namespace Applications { diff --git a/src/displayapp/screens/InfiniPaint.h b/src/displayapp/screens/InfiniPaint.h index 322ce757..bc0bca24 100644 --- a/src/displayapp/screens/InfiniPaint.h +++ b/src/displayapp/screens/InfiniPaint.h @@ -2,6 +2,7 @@ #include #include +#include // std::fill #include "displayapp/screens/Screen.h" namespace Pinetime { diff --git a/src/drivers/PinMap.h b/src/drivers/PinMap.h index 57964020..579bf38a 100644 --- a/src/drivers/PinMap.h +++ b/src/drivers/PinMap.h @@ -1,4 +1,5 @@ #pragma once +#include namespace Pinetime { namespace PinMap { From 1b937a77b981557015a614c7b806f8ddf62c614e Mon Sep 17 00:00:00 2001 From: Reinhold Gschweicher Date: Wed, 3 Nov 2021 23:08:57 +0100 Subject: [PATCH 038/188] remove unused libs/ prefix from lvgl includes as not needed --- src/displayapp/DummyLittleVgl.h | 6 +++--- src/displayapp/screens/HeartRate.h | 4 ++-- src/displayapp/screens/Motion.cpp | 2 +- src/displayapp/screens/Motion.h | 4 ++-- src/displayapp/screens/WatchFaceAnalog.cpp | 2 +- 5 files changed, 9 insertions(+), 9 deletions(-) diff --git a/src/displayapp/DummyLittleVgl.h b/src/displayapp/DummyLittleVgl.h index 1db51343..47c9e021 100644 --- a/src/displayapp/DummyLittleVgl.h +++ b/src/displayapp/DummyLittleVgl.h @@ -1,8 +1,8 @@ #pragma once -#include -#include -#include +#include +#include +#include #include #include diff --git a/src/displayapp/screens/HeartRate.h b/src/displayapp/screens/HeartRate.h index d06415ca..baa0ccdd 100644 --- a/src/displayapp/screens/HeartRate.h +++ b/src/displayapp/screens/HeartRate.h @@ -5,8 +5,8 @@ #include "displayapp/screens/Screen.h" #include #include "systemtask/SystemTask.h" -#include -#include +#include +#include namespace Pinetime { namespace Controllers { diff --git a/src/displayapp/screens/Motion.cpp b/src/displayapp/screens/Motion.cpp index 3641110e..8162e02f 100644 --- a/src/displayapp/screens/Motion.cpp +++ b/src/displayapp/screens/Motion.cpp @@ -1,4 +1,4 @@ -#include +#include #include "displayapp/screens/Motion.h" #include "displayapp/DisplayApp.h" diff --git a/src/displayapp/screens/Motion.h b/src/displayapp/screens/Motion.h index f6202b5b..d6997409 100644 --- a/src/displayapp/screens/Motion.h +++ b/src/displayapp/screens/Motion.h @@ -4,8 +4,8 @@ #include #include "displayapp/screens/Screen.h" #include -#include -#include +#include +#include #include namespace Pinetime { diff --git a/src/displayapp/screens/WatchFaceAnalog.cpp b/src/displayapp/screens/WatchFaceAnalog.cpp index 510d1139..470fc8e9 100644 --- a/src/displayapp/screens/WatchFaceAnalog.cpp +++ b/src/displayapp/screens/WatchFaceAnalog.cpp @@ -1,4 +1,4 @@ -#include +#include #include "displayapp/screens/WatchFaceAnalog.h" #include "displayapp/screens/BatteryIcon.h" #include "displayapp/screens/BleIcon.h" From 241d36471daaea03215c289f3dc2bdc2860b5053 Mon Sep 17 00:00:00 2001 From: Reinhold Gschweicher Date: Fri, 5 Nov 2021 23:55:34 +0100 Subject: [PATCH 039/188] Move up file header include to top --- src/components/ble/BatteryInformationService.cpp | 2 +- src/components/heartrate/Ppg.cpp | 2 +- src/components/heartrate/Ptagc.cpp | 2 +- src/displayapp/screens/BatteryIcon.cpp | 2 +- src/displayapp/screens/HeartRate.cpp | 2 +- src/displayapp/screens/Motion.cpp | 2 +- src/displayapp/screens/WatchFaceAnalog.cpp | 2 +- src/drivers/Bma421.cpp | 2 +- src/drivers/Hrs3300.cpp | 2 +- 9 files changed, 9 insertions(+), 9 deletions(-) diff --git a/src/components/ble/BatteryInformationService.cpp b/src/components/ble/BatteryInformationService.cpp index b95a88d9..9a3f86f5 100644 --- a/src/components/ble/BatteryInformationService.cpp +++ b/src/components/ble/BatteryInformationService.cpp @@ -1,5 +1,5 @@ -#include #include "components/ble/BatteryInformationService.h" +#include #include "components/battery/BatteryController.h" using namespace Pinetime::Controllers; diff --git a/src/components/heartrate/Ppg.cpp b/src/components/heartrate/Ppg.cpp index c247d1f6..a5d83696 100644 --- a/src/components/heartrate/Ppg.cpp +++ b/src/components/heartrate/Ppg.cpp @@ -4,9 +4,9 @@ C++ port Copyright (C) 2021 Jean-François Milants */ +#include "components/heartrate/Ppg.h" #include #include -#include "components/heartrate/Ppg.h" using namespace Pinetime::Controllers; /** Original implementation from wasp-os : https://github.com/daniel-thompson/wasp-os/blob/master/wasp/ppg.py */ diff --git a/src/components/heartrate/Ptagc.cpp b/src/components/heartrate/Ptagc.cpp index db496a15..1c60bc23 100644 --- a/src/components/heartrate/Ptagc.cpp +++ b/src/components/heartrate/Ptagc.cpp @@ -4,8 +4,8 @@ C++ port Copyright (C) 2021 Jean-François Milants */ -#include #include "components/heartrate/Ptagc.h" +#include using namespace Pinetime::Controllers; diff --git a/src/displayapp/screens/BatteryIcon.cpp b/src/displayapp/screens/BatteryIcon.cpp index 114b08fa..08aaab70 100644 --- a/src/displayapp/screens/BatteryIcon.cpp +++ b/src/displayapp/screens/BatteryIcon.cpp @@ -1,5 +1,5 @@ -#include #include "displayapp/screens/BatteryIcon.h" +#include #include "displayapp/screens/Symbols.h" using namespace Pinetime::Applications::Screens; diff --git a/src/displayapp/screens/HeartRate.cpp b/src/displayapp/screens/HeartRate.cpp index 65d1aa2f..513c40bf 100644 --- a/src/displayapp/screens/HeartRate.cpp +++ b/src/displayapp/screens/HeartRate.cpp @@ -1,5 +1,5 @@ -#include #include "displayapp/screens/HeartRate.h" +#include #include #include "displayapp/DisplayApp.h" diff --git a/src/displayapp/screens/Motion.cpp b/src/displayapp/screens/Motion.cpp index 8162e02f..23eb2765 100644 --- a/src/displayapp/screens/Motion.cpp +++ b/src/displayapp/screens/Motion.cpp @@ -1,5 +1,5 @@ -#include #include "displayapp/screens/Motion.h" +#include #include "displayapp/DisplayApp.h" using namespace Pinetime::Applications::Screens; diff --git a/src/displayapp/screens/WatchFaceAnalog.cpp b/src/displayapp/screens/WatchFaceAnalog.cpp index 470fc8e9..4540c1a8 100644 --- a/src/displayapp/screens/WatchFaceAnalog.cpp +++ b/src/displayapp/screens/WatchFaceAnalog.cpp @@ -1,5 +1,5 @@ -#include #include "displayapp/screens/WatchFaceAnalog.h" +#include #include "displayapp/screens/BatteryIcon.h" #include "displayapp/screens/BleIcon.h" #include "displayapp/screens/Symbols.h" diff --git a/src/drivers/Bma421.cpp b/src/drivers/Bma421.cpp index 8db64ad8..2f60f42f 100644 --- a/src/drivers/Bma421.cpp +++ b/src/drivers/Bma421.cpp @@ -1,6 +1,6 @@ +#include "drivers/Bma421.h" #include #include -#include "drivers/Bma421.h" #include "drivers/TwiMaster.h" #include diff --git a/src/drivers/Hrs3300.cpp b/src/drivers/Hrs3300.cpp index cecef145..c14fe7aa 100644 --- a/src/drivers/Hrs3300.cpp +++ b/src/drivers/Hrs3300.cpp @@ -4,9 +4,9 @@ C++ port Copyright (C) 2021 Jean-François Milants */ +#include "drivers/Hrs3300.h" #include #include -#include "drivers/Hrs3300.h" #include #include From 3a41bff9eaf9cbae6d3864664ad08859ec2d2c44 Mon Sep 17 00:00:00 2001 From: Reinhold Gschweicher Date: Sat, 6 Nov 2021 00:02:17 +0100 Subject: [PATCH 040/188] docs: add non-relative includes to coding standard --- doc/contribute.md | 1 + 1 file changed, 1 insertion(+) diff --git a/doc/contribute.md b/doc/contribute.md index 595a5996..f7b8ea3e 100644 --- a/doc/contribute.md +++ b/doc/contribute.md @@ -94,6 +94,7 @@ If there are no preconfigured rules for your IDE, you can use one of the existin - **Includes** : - files from the project : `#include "relative/path/to/the/file.h"` - external files and std : `#include ` + - use includes relative to included directories like `src`, not relative to the current file. Don't do: `#include "../file.h"` - Only use [primary spellings for operators and tokens](https://en.cppreference.com/w/cpp/language/operator_alternative) - Use auto sparingly. Don't use auto for [fundamental/built-in types](https://en.cppreference.com/w/cpp/language/types) and [fixed width integer types](https://en.cppreference.com/w/cpp/types/integer), except when initializing with a cast to avoid duplicating the type name. - Examples: From 29bb359e90bff68bdfca67bbd42baeac73dae6ae Mon Sep 17 00:00:00 2001 From: Kieran Cawthray Date: Tue, 16 Nov 2021 00:06:13 +0100 Subject: [PATCH 041/188] Fix notification icon alignment --- src/displayapp/screens/PineTimeStyle.cpp | 21 +++++++++++++-------- 1 file changed, 13 insertions(+), 8 deletions(-) diff --git a/src/displayapp/screens/PineTimeStyle.cpp b/src/displayapp/screens/PineTimeStyle.cpp index 7c4ed696..a65d2599 100644 --- a/src/displayapp/screens/PineTimeStyle.cpp +++ b/src/displayapp/screens/PineTimeStyle.cpp @@ -108,11 +108,11 @@ PineTimeStyle::PineTimeStyle(DisplayApp* app, 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_BLACK); - lv_obj_align(bleIcon, sidebar, LV_ALIGN_IN_TOP_MID, 0, 25); + lv_label_set_text(bleIcon, ""); 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_BLACK); - lv_obj_align(notificationIcon, sidebar, LV_ALIGN_IN_TOP_MID, 0, 40); + lv_label_set_text(notificationIcon, ""); // Calendar icon calendarOuter = lv_obj_create(lv_scr_act(), nullptr); @@ -305,12 +305,12 @@ PineTimeStyle::~PineTimeStyle() { } bool PineTimeStyle::OnTouchEvent(Pinetime::Applications::TouchEvents event) { - if ((event == Pinetime::Applications::TouchEvents::LongTap) && lv_obj_get_hidden(btnRandom)) { + if ((event == Pinetime::Applications::TouchEvents::LongTap) && lv_obj_get_hidden(btnClose)) { lv_obj_set_hidden(btnSet, false); savedTick = lv_tick_get(); return true; } - if ((event == Pinetime::Applications::TouchEvents::DoubleTap) && (lv_obj_get_hidden(btnRandom) == false)) { + if ((event == Pinetime::Applications::TouchEvents::DoubleTap) && !lv_obj_get_hidden(btnClose)) { return true; } return false; @@ -359,15 +359,20 @@ void PineTimeStyle::Refresh() { } bleState = bleController.IsConnected(); - if (bleState.IsUpdated()) { + if (bleState.Get()) { lv_label_set_text(bleIcon, BleIcon::GetIcon(bleState.Get())); - lv_obj_realign(bleIcon); + } else { + lv_label_set_text(bleIcon, ""); } notificationState = notificatioManager.AreNewNotificationsAvailable(); - if (notificationState.IsUpdated()) { + if (notificationState.Get()) { lv_label_set_text(notificationIcon, NotificationIcon::GetIcon(notificationState.Get())); - lv_obj_realign(notificationIcon); + lv_obj_align(bleIcon, sidebar, LV_ALIGN_IN_TOP_MID, 8, 25); + lv_obj_align(notificationIcon, sidebar, LV_ALIGN_IN_TOP_MID, -8, 25); + } else { + lv_obj_align(bleIcon, sidebar, LV_ALIGN_IN_TOP_MID, 0, 25); + lv_label_set_text(notificationIcon, ""); } currentDateTime = dateTimeController.CurrentDateTime(); From bea5c60a11a9c5b97045093a356988de90bb46da Mon Sep 17 00:00:00 2001 From: Kieran Cawthray Date: Tue, 16 Nov 2021 18:10:34 +0100 Subject: [PATCH 042/188] Revert "Fix notification icon alignment" This reverts commit 29bb359e90bff68bdfca67bbd42baeac73dae6ae. --- src/displayapp/screens/PineTimeStyle.cpp | 21 ++++++++------------- 1 file changed, 8 insertions(+), 13 deletions(-) diff --git a/src/displayapp/screens/PineTimeStyle.cpp b/src/displayapp/screens/PineTimeStyle.cpp index a65d2599..7c4ed696 100644 --- a/src/displayapp/screens/PineTimeStyle.cpp +++ b/src/displayapp/screens/PineTimeStyle.cpp @@ -108,11 +108,11 @@ PineTimeStyle::PineTimeStyle(DisplayApp* app, 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_BLACK); - lv_label_set_text(bleIcon, ""); + 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_BLACK); - lv_label_set_text(notificationIcon, ""); + lv_obj_align(notificationIcon, sidebar, LV_ALIGN_IN_TOP_MID, 0, 40); // Calendar icon calendarOuter = lv_obj_create(lv_scr_act(), nullptr); @@ -305,12 +305,12 @@ PineTimeStyle::~PineTimeStyle() { } bool PineTimeStyle::OnTouchEvent(Pinetime::Applications::TouchEvents event) { - if ((event == Pinetime::Applications::TouchEvents::LongTap) && lv_obj_get_hidden(btnClose)) { + if ((event == Pinetime::Applications::TouchEvents::LongTap) && lv_obj_get_hidden(btnRandom)) { lv_obj_set_hidden(btnSet, false); savedTick = lv_tick_get(); return true; } - if ((event == Pinetime::Applications::TouchEvents::DoubleTap) && !lv_obj_get_hidden(btnClose)) { + if ((event == Pinetime::Applications::TouchEvents::DoubleTap) && (lv_obj_get_hidden(btnRandom) == false)) { return true; } return false; @@ -359,20 +359,15 @@ void PineTimeStyle::Refresh() { } bleState = bleController.IsConnected(); - if (bleState.Get()) { + if (bleState.IsUpdated()) { lv_label_set_text(bleIcon, BleIcon::GetIcon(bleState.Get())); - } else { - lv_label_set_text(bleIcon, ""); + lv_obj_realign(bleIcon); } notificationState = notificatioManager.AreNewNotificationsAvailable(); - if (notificationState.Get()) { + if (notificationState.IsUpdated()) { lv_label_set_text(notificationIcon, NotificationIcon::GetIcon(notificationState.Get())); - lv_obj_align(bleIcon, sidebar, LV_ALIGN_IN_TOP_MID, 8, 25); - lv_obj_align(notificationIcon, sidebar, LV_ALIGN_IN_TOP_MID, -8, 25); - } else { - lv_obj_align(bleIcon, sidebar, LV_ALIGN_IN_TOP_MID, 0, 25); - lv_label_set_text(notificationIcon, ""); + lv_obj_realign(notificationIcon); } currentDateTime = dateTimeController.CurrentDateTime(); From 1b2a8a5a044d01978854b54fd30ed3737a041e9b Mon Sep 17 00:00:00 2001 From: Kieran Cawthray Date: Tue, 16 Nov 2021 18:18:56 +0100 Subject: [PATCH 043/188] Improve notification icon alignment --- src/displayapp/screens/PineTimeStyle.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/displayapp/screens/PineTimeStyle.cpp b/src/displayapp/screens/PineTimeStyle.cpp index 7c4ed696..0c295032 100644 --- a/src/displayapp/screens/PineTimeStyle.cpp +++ b/src/displayapp/screens/PineTimeStyle.cpp @@ -112,7 +112,7 @@ PineTimeStyle::PineTimeStyle(DisplayApp* app, 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_BLACK); - lv_obj_align(notificationIcon, sidebar, LV_ALIGN_IN_TOP_MID, 0, 40); + lv_obj_align(notificationIcon, sidebar, LV_ALIGN_IN_TOP_MID, 0, 50); // Calendar icon calendarOuter = lv_obj_create(lv_scr_act(), nullptr); From 7322f3286bd4aa15f671e780fa09d36b12ef0f20 Mon Sep 17 00:00:00 2001 From: Arsen6331 Date: Mon, 22 Nov 2021 00:35:50 +0000 Subject: [PATCH 044/188] Add documentation for BLE FS --- doc/BLEFS.md | 167 +++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 167 insertions(+) create mode 100644 doc/BLEFS.md diff --git a/doc/BLEFS.md b/doc/BLEFS.md new file mode 100644 index 00000000..519d84a9 --- /dev/null +++ b/doc/BLEFS.md @@ -0,0 +1,167 @@ +# BLE FS +--- + +The BLE FS protocol in InfiniTime is mostly Adafruit's BLE file transfer protocol, as described in [adafruit/Adafruit_CircuitPython_BLE_File_Transfer](https://github.com/adafruit/Adafruit_CircuitPython_BLE_File_Transfer). There are some deviations, such as the status codes. These will be described later in the document. + +--- + +## UUIDs + +There are two relevant UUIDs in this protocol: the version characteristic, and the raw transfer characteristic. + +### Version + +UUID: `adaf0100-4669-6c65-5472-616e73666572` + +The version characteristic returns the version of the protocol to which the sender adheres. It returns a single unsigned 32-bit integer. The latest version at the time of writing this is 4. + +### Transfer + +UUID: `adaf0200-4669-6c65-5472-616e73666572` + +The transfer characteristic is responsible for all the data transfer between the client and the watch. It supports write and notify. Writing a packet on the characteristic results in a response via notify. + +--- + +## Usage + +The separator for paths is `/`, and absolute paths must start with `/`. + +All of the following commands and responses are transferred via the transfer characteristic + +### Read file + +To begin reading a file, a header must first be sent. The header packet should be formatted like so: + +- Command (single byte): `0x10` +- 1 byte of padding +- Unsigned 16-bit integer encoding the length of the file path. +- Unsigned 32-bit integer encoding the location at which to start reading the first chunk. +- Unsigned 32-bit integer encoding the amount of bytes to be read. +- File path: UTF-8 encoded string that is _not_ null terminated. + +To continue reading the file after this initial packet, the following packet should be sent until all the data has been received. No close command is required after the data has been received. + +- Command (single byte): `0x12` +- Status: `0x01` +- 2 bytes of padding +- Unsigned 32-bit integer encoding the location at which to start reading the next chunk. +- Unsigned 32-bit integer encoding the amount of bytes to be read. This may be different from the size in the header. + +Both of these commands receive the following response: + +- Command (single byte): `0x11` +- Status (signed 8-bit integer) +- 2 bytes of padding +- Unsigned 32-bit integer encoding the offset of this chunk +- Unsigned 32-bit integer encoding the total size of the file +- Unsigned 32-bit integer encoding the amount of data in the current chunk +- Contents of the current chunk + +### Write file + +To begin writing to a file, a header must first be sent. The header packet should be formatted like so: + +- Command (single byte): `0x20` +- 1 byte of padding +- Unsigned 16-bit integer encoding the length of the file path. +- Unsigned 32-bit integer encoding the location at which to start writing to the file. +- Unsigned 64-bit integer encoding the unix timestamp with nanosecond resolution. This will be used as the modification time. At the time of writing, this is not implemented in InfiniTime, but may be in the future. +- Unsigned 32-bit integer encoding the size of the file that will be sent +- File path: UTF-8 encoded string that is _not_ null terminated. + +To continue reading the file after this initial packet, the following packet should be sent until all the data has been sent and a response had been received with 0 free space. No close command is required after the data has been received. + +- Command (single byte): `0x22` +- Status: `0x01` +- 2 bytes of padding. +- Unsigned 32-bit integer encoding the location at which to write the next chunk. +- Unsigned 32-bit integer encoding the amount of bytes to be written. +- Data + +Both of these commands receive the following response: + +- Command (single byte): `0x21` +- Status (signed 8-bit integer) +- 2 bytes of padding +- Unsigned 32-bit integer encoding the current offset in the file +- Unsigned 64-bit integer encoding the unix timestamp with nanosecond resolution. This will be used as the modification time. At the time of writing, this is not implemented in InfiniTime, but may be in the future. +- Unsigned 32-bit integer encoding the amount of data the client can send until the file is full. + +### Delete file + +- Command (single byte): `0x30` +- 1 byte of padding +- Unsigned 16-bit integer encoding the length of the file path. +- File path: UTF-8 encoded string that is _not_ null terminated. + +The response to this packet will be as follows: + +- Command (single byte): `0x31` +- Status (signed 8-bit integer) + +### Make directory + +- Command (single byte): `0x40` +- 1 byte of padding +- Unsigned 16-bit integer encoding the length of the file path. +- 4 bytes of padding +- Unsigned 64-bit integer encoding the unix timestamp with nanosecond resolution. +- File path: UTF-8 encoded string that is _not_ null terminated. + +The response to this packet will be as follows: + +- Command (single byte): `0x41` +- Status (signed 8-bit integer) +- 6 bytes of padding +- Unsigned 64-bit integer encoding the unix timestamp with nanosecond resolution. + +### List directory + +Paths returned by this command are relative to the path given in the request + +- Command (single byte): `0x50` +- 1 byte of padding +- Unsigned 16-bit integer encoding the length of the file path. +- File path: UTF-8 encoded string that is _not_ null terminated. + +The response to this packet will be as follows. Responses will be sent until the final entry, which will have entry number == total entries + +- Command (single byte): `0x51` +- Status (signed 8-bit integer) +- Unsigned 16-bit integer encoding the length of the file path. +- Unsigned 32-bit integer encoding the entry number +- Unsigned 32-bit integer encoding the total amount of entries +- Flags: unsigned 32-bit integer + + Bit 0: Set when entry is a directory + + Bits 1-7: Reserved +- Unsigned 64-bit integer encoding the unix timestamp of the modification time with nanosecond resolution +- Unsigned 32-bit integer encoding the size of the file +- Path: UTF-8 encoded string that is _not_ null terminated. + +### Move file or directory + +- Command (single byte): `0x60` +- 1 byte of padding +- Unsigned 16-bit integer encoding the length of the old path +- Unsigned 16-bit integer encoding the length of the new path +- Old path: UTF-8 encoded string that is _not_ null terminated. +- 1 byte of padding +- Newpath: UTF-8 encoded string that is _not_ null terminated. + +The response to this packet will be as follows: + +- Command (single byte): `0x61` +- Status (signed 8-bit integer) + +--- + +## Deviations + +This section describes the differences between Adafruit's spec and InfiniTime's implementation. + +### Status codes + +The status codes returned by InfiniTime are a signed 8-bit integer, rather than an unsigned one as described in the spec. + +InfiniTime uses LittleFS error codes rather than the ones described in the spec. Those codes can be found in [lfs.h](https://github.com/littlefs-project/littlefs/blob/master/lfs.h#L70). \ No newline at end of file From 47f73269bbf24aeabeacd5190d64133f46372525 Mon Sep 17 00:00:00 2001 From: Arsen6331 Date: Wed, 24 Nov 2021 22:22:04 +0000 Subject: [PATCH 045/188] Add BLE FS docs link to BLE docs --- doc/ble.md | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/doc/ble.md b/doc/ble.md index 8573166f..c36fa62b 100644 --- a/doc/ble.md +++ b/doc/ble.md @@ -9,6 +9,7 @@ This page describes the BLE implementation and API built in this firmware. ### Table of Contents - [BLE Connection](#ble-connection) +- [BLE FS](#ble-fs) - [BLE UUIDs](#ble-uuids) - [BLE Services](#ble-services) - [CTS](#cts) @@ -51,6 +52,13 @@ If **CTS** is detected, it'll request the current time to the companion applicat --- +## BLE FS + +The documentation for BLE FS can be found here: +[BLEFS.md](./BLEFS.md) + +--- + ## BLE UUIDs When possible, InfiniTime tries to implement BLE services defined by the BLE specification. @@ -285,4 +293,4 @@ This characteristic expects a particular format: - Microsecond divided by `1e6*256` (`uint8`) - Binary 0001 (`uint8`) -Write all of these together, encoded as little-endian, to the current time characteristic. \ No newline at end of file +Write all of these together, encoded as little-endian, to the current time characteristic. From 4aaf3d06bceadb05de0d3a9b0de94e4aba215131 Mon Sep 17 00:00:00 2001 From: Riku Isokoski Date: Sat, 6 Nov 2021 14:38:11 +0200 Subject: [PATCH 046/188] Documentation cleanup and reorganization --- README.md | 100 ++-------------- doc/SWD.md | 14 +++ doc/companionapps/Gadgetbridge.md | 10 +- doc/companionapps/NrfconnectOTA.md | 12 -- doc/gettingStarted/gettingStarted-1.0.md | 103 +++-------------- .../ota-gadgetbridge-nrfconnect.md | 109 ------------------ doc/gettingStarted/ota-gadgetbridge.md | 39 +++++++ doc/gettingStarted/ota-nrfconnect.md | 32 +++++ doc/gettingStarted/time-nrfconnect.md | 11 ++ doc/gettingStarted/updating-software.md | 50 ++++++++ images/infinitime-logo-github.jpg | Bin 37430 -> 0 bytes images/infinitime-logo-small.jpg | Bin 0 -> 31710 bytes 12 files changed, 174 insertions(+), 306 deletions(-) create mode 100644 doc/SWD.md delete mode 100644 doc/companionapps/NrfconnectOTA.md delete mode 100644 doc/gettingStarted/ota-gadgetbridge-nrfconnect.md create mode 100644 doc/gettingStarted/ota-gadgetbridge.md create mode 100644 doc/gettingStarted/ota-nrfconnect.md create mode 100644 doc/gettingStarted/time-nrfconnect.md create mode 100644 doc/gettingStarted/updating-software.md delete mode 100644 images/infinitime-logo-github.jpg create mode 100644 images/infinitime-logo-small.jpg diff --git a/README.md b/README.md index 765aa863..22c91b5c 100644 --- a/README.md +++ b/README.md @@ -1,73 +1,18 @@ -# InfiniTime +# [InfiniTime](https://github.com/InfiniTimeOrg/InfiniTime) [![Build PineTime Firmware](https://github.com/InfiniTimeOrg/InfiniTime/workflows/Build%20PineTime%20Firmware/badge.svg?branch=master)](https://github.com/InfiniTimeOrg/InfiniTime/actions) -![InfiniTime logo](images/infinitime-logo.jpg "InfiniTime Logo") +![InfiniTime logo](images/infinitime-logo-small.jpg "InfiniTime Logo") -The goal of this project is to design an open-source firmware for the [Pinetime smartwatch](https://www.pine64.org/pinetime/) : - - - Code written in **modern C++**; - - Build system based on **CMake**; - - Based on **[FreeRTOS 10.0.0](https://freertos.org)** real-time OS. - - Using **[LittleVGL/LVGL 7](https://lvgl.io/)** as UI library... - - ... and **[NimBLE 1.3.0](https://github.com/apache/mynewt-nimble)** as BLE stack. +InfiniTime is an open-source firmware for the [Pinetime smartwatch](https://www.pine64.org/pinetime/) ## New to InfiniTime? - - [Getting started with InfiniTime 1.0 (quick user guide, update bootloader and InfiniTime,...)](doc/gettingStarted/gettingStarted-1.0.md) - - [Flash, upgrade (OTA), time synchronization,...](doc/gettingStarted/ota-gadgetbridge-nrfconnect.md) - -## Overview - -![Pinetime screens](images/1.0.0/collage.png "PinetimeScreens") - -As of now, here is the list of achievements of this project: - - - Fast and optimized LCD driver - - BLE communication - - Rich user interface via display, touchscreen and pushbutton - - Time synchronization via BLE - - Notification via BLE - - Heart rate measurements - - Step counting - - Wake-up on wrist rotation - - Quick actions - * Disable vibration on notification - * Brightness settings - * Flashlight - * Settings - - 3 watch faces: - * Digital - * Analog - * [PineTimeStyle](https://wiki.pine64.org/wiki/PineTimeStyle) - - Multiple 'apps' : - * Music (control the playback of music on your phone) - * Heart rate (measure your heart rate) - * Navigation (displays navigation instructions coming from the companion app) - * Notification (displays the last notification received) - * Paddle (single player pong-like game) - * Twos (2048 clone game) - * Stopwatch - * Steps (displays the number of steps taken) - * Timer (set a countdown timer that will notify you when it expires) - * Metronome (vibrates to a given bpm with a customizable beats per bar) - - User settings: - * Display timeout - * Wake-up condition - * Time format (12/24h) - * Default watch face - * Daily step goal - * Battery status - * Firmware validation - * System information - - Supported by 3 companion apps (development is in progress): - * [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) - * **[Experimental]** [InfiniLink](https://github.com/xan-m/InfiniLink) (on iOS) - - OTA (Over-the-air) update via BLE - - [Bootloader](https://github.com/JF002/pinetime-mcuboot-bootloader) based on [MCUBoot](https://www.mcuboot.com) + - [Getting started with InfiniTime](doc/gettingStarted/gettingStarted-1.0.md) + - [About the software and updating](doc/gettingStarted/updating-software.md) + - Companion apps: + - [Gadgetbridge](doc/companionapps/Gadgetbridge.md) + - [AmazFish](doc/companionapps/Amazfish.md) ## Documentation @@ -84,16 +29,11 @@ As of now, here is the list of achievements of this project: - [Files included in the release notes](doc/filesInReleaseNotes.md) - [Build the project](doc/buildAndProgram.md) - [Flash the firmware using OpenOCD and STLinkV2](doc/openOCD.md) + - [Flash the firmware using SWD interface](doc/SWD.md) - [Build the project with Docker](doc/buildWithDocker.md) - [Build the project with VSCode](doc/buildWithVScode.md) - [Bootloader, OTA and DFU](./bootloader/README.md) - [Stub using NRF52-DK](./doc/PinetimeStubWithNrf52DK.md) - - Logging with JLink RTT. - - Using files from the releases - -### Contribute - - - [How to contribute ?](doc/contribute.md) ### API @@ -103,29 +43,13 @@ As of now, here is the list of achievements of this project: - [Memory analysis](./doc/MemoryAnalysis.md) -### Using the firmware - - - [Integration with Gadgetbridge](doc/companionapps/Gadgetbridge.md) - - [Integration with AmazFish](doc/companionapps/Amazfish.md) - - [Firmware update, OTA](doc/companionapps/NrfconnectOTA.md) - -## TODO - contribute +## Contributing This project is far from being finished, and there are still a lot of things to do for this project to become a firmware usable by the general public. -Here a quick list out of my head of things to do for this project: +Do not hesitate to fork the code, hack it and create pull-requests! - - Improve BLE communication stability and reliability - - Improve OTA and MCUBoot bootloader - - Add more functionalities : Alarm, chronometer, configuration, activities, heart rate logging, games,... - - Add more BLE functionalities : call notifications, agenda, configuration, data logging,... - - Measure power consumption and improve battery life - - Improve documentation, take better pictures and video than mine - - Improve the UI - - Create companion app for multiple OSes (Linux, Android, iOS) and platforms (desktop, ARM, mobile). Do not forget the other devices from Pine64 like [the Pinephone](https://www.pine64.org/pinephone/) and the [Pinebook Pro](https://www.pine64.org/pinebook-pro/). - - Design a simple CI (preferably self-hosted and easy to reproduce). - -Do not hesitate to clone/fork the code, hack it and create pull-requests. I'll do my best to review and merge them :) +Read this page for more information on how you can help: [How to contribute?](doc/contribute.md) ## Licenses diff --git a/doc/SWD.md b/doc/SWD.md new file mode 100644 index 00000000..4146e6ae --- /dev/null +++ b/doc/SWD.md @@ -0,0 +1,14 @@ +# How to flash InfiniTime using the SWD interface +Download the files **bootloader.bin**, **image-x.y.z.bin** and **pinetime-graphics-x.y.z.bin** from the release page: + +![Image file](imageFile.png) + +The bootloader reads a boot logo from the external SPI flash memory. The first step consists of flashing a tool in the MCU that will flash the boot logo into this SPI flash memory. This first step is optional but recommended (the bootloader will display garbage on screen for a few second if you don't do it). +Using your SWD tool, flash **pinetime-graphics-x.y.z.bin** at offset **0x0000**. Reset the MCU and wait for a few second, until the logo is completely drawn on the display. + +Then, using your SWD tool, flash those file at specific offset: + + - bootloader.bin : **0x0000** + - image-x.y.z.bin : **0x8000** + +Reset and voilà, you're running InfiniTime on your PineTime! diff --git a/doc/companionapps/Gadgetbridge.md b/doc/companionapps/Gadgetbridge.md index 974e2828..678fe7a1 100644 --- a/doc/companionapps/Gadgetbridge.md +++ b/doc/companionapps/Gadgetbridge.md @@ -1,13 +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/) 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. +Gadgetbridge supports InfiniTime [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: - - Scanning & detection of Pinetime-JF / InfiniTime - - Connection / disconnection - - Notifications - ## Demo -[This video](https://seafile.codingfield.com/f/0a2920b9d765462385e4/) shows how to scan, connect, send notification (using the debug screen) and disconnect from the Pinetime. +[This video](https://seafile.codingfield.com/f/0a2920b9d765462385e4/) shows how to scan, connect, send notification (using the debug screen) and disconnect from the PineTime. diff --git a/doc/companionapps/NrfconnectOTA.md b/doc/companionapps/NrfconnectOTA.md deleted file mode 100644 index 0fa3cd03..00000000 --- a/doc/companionapps/NrfconnectOTA.md +++ /dev/null @@ -1,12 +0,0 @@ -# OTA using NRFConnect -[NRFConnect](https://www.nordicsemi.com/Software-and-tools/Development-Tools/nRF-Connect-for-mobile) is a powerful application (running on Android and iOS) which allows to scan and connect to BLE devices. - -## Features - - Scanning, connect, disconnect - - Time synchronization - - OTA - -InfiniTime implements the Nordic DFU protocol for the OTA functionality. NRFConnect also supports this protocol. - -# Demo -[This video](https://seafile.codingfield.com/f/a52b69683a05472a90c7/) shows how to use NRFConnect to update the firmware running on the Pinetime. \ No newline at end of file diff --git a/doc/gettingStarted/gettingStarted-1.0.md b/doc/gettingStarted/gettingStarted-1.0.md index 409b7c7b..a6881939 100644 --- a/doc/gettingStarted/gettingStarted-1.0.md +++ b/doc/gettingStarted/gettingStarted-1.0.md @@ -1,91 +1,23 @@ -# Getting started with InfiniTime 1.0 +# Getting started with InfiniTime 1.0.0 -On April 22 2021, InfiniTime and Pine64 [announced the release of InfiniTime 1.0](https://www.pine64.org/2021/04/22/its-time-infinitime-1-0/) and the availability of PineTime smartwatches as *enthusiast grade end-user product*. This page aims to guide you with your first step with your new PineTime. +On April 22 2021, InfiniTime and Pine64 [announced the release of InfiniTime 1.0.0](https://www.pine64.org/2021/04/22/its-time-infinitime-1-0/) and the availability of PineTime smartwatches as *enthusiast grade end-user product*. This page aims to guide you with your first step with your new PineTime. -## Firmware, InfiniTime, Bootloader, Recovery firmware, OTA, DFU... What is it? +It is highly recommended to update the firmware to the latest version when you receive your watch and when a new InfiniTime version is released. More information on updating the firmware [here](/doc/gettingStarted/updating-software.md). -You might have already seen these words by reading the announcement, release notes, or [the wiki guide](https://wiki.pine64.org/wiki/Upgrade_PineTime_to_InfiniTime_1.0.0) and, you may find them misleading if you're not familiar with the project. - -Basically, a **firmware** is just a software running on the embedded hardware of a device, the PineTime in this case. -**InfiniTime** is based on 3 distinct **firmwares**: - - **[InfiniTime](https://github.com/InfiniTimeOrg/InfiniTime)** itself, this is the *application firmware* running on the PineTime. This is the main firmware which provides most of the functionalities you'll use on a daily basis : bluetooth low-energy (BLE) connectivity, applications, watchfaces,... - - **[The bootloader](https://github.com/JF002/pinetime-mcuboot-bootloader)** is responsible for safely applying **updates** of the *application firmware*, reverting them in case of issues and load the recovery firmware when requested. - - **The recovery firmware** is a specific *application firmware* than can be loaded by the bootloader on user request. This firmware can be useful in case of serious issue, when the main application firmware cannot perform an OTA update correctly. Currently, this recovery firmware is based on [InfiniTime 0.14.1](https://github.com/InfiniTimeOrg/InfiniTime/releases/tag/0.14.1). - -**OTA** and **DFU** refer to the update of the firmware over BLE (**B**luetooth **L**ow **E**nergy). **OTA** means **O**ver **T**he **A**ir, this is a functionality that allows the user to update the firmware how their device using a wireless communication like BLE. When we talk about **DFU** (**D**evice **F**irmware **U**pdate), we refer to the file format and protocol used to send the update of the firmware to the watch over-the-air. InfiniTime implement the (legacy) DFU protocol from Nordic Semiconductor (NRF). - -## How to check the version of InfiniTime and the bootloader? - -Since September 2020, all PineTimes (devkits or sealed) are flashed using the **[first iteration of the bootloader](https://github.com/lupyuen/pinetime-rust-mynewt/releases/tag/v4.1.7)** and **[InfiniTime 0.7.1](https://github.com/InfiniTimeOrg/InfiniTime/releases/tag/0.7.1)**. There was no recovery firmware at that time. - -The bootloader only runs when the watch starts (from an empty battery, for example) or after a reset (after a successful OTA or a manual reset - long push on the button). - -You can recognize this first iteration of the bootloader with it greenish **PINETIME** logo. - -![Old bootloader logo](oldbootloaderlogo.jpg) - -You can check the version of InfiniTime by opening the app *SystemInfo*. For version < 1.0: - -![InfiniTime 0.7.1 Application menu](appmenu-071.jpg) -![InfiniTime 0.7.1 version](version-071.jpg) - -And for version >= 1.0 : - -![InfiniTime 1.0 version](version-1.0.jpg) - -PineTime shipped from June 2021 (to be confirmed) will be flashed with the [new version of the bootloader](https://github.com/JF002/pinetime-mcuboot-bootloader/releases/tag/1.0.0), the [recovery firmware](https://github.com/InfiniTimeOrg/InfiniTime/releases/tag/0.14.1) and [InfiniTime 1.0](https://github.com/InfiniTimeOrg/InfiniTime/releases/tag/1.0.0). - -The bootloader is easily recognizable with it white pine cone that is progressively drawn in green. It also displays its own version on the bottom (1.0.0 as of now). - -![Bootloader 1.0](bootloader-1.0.jpg) - -## How to update your PineTime? - -To update your PineTime, you can use one of the compatible companion applications. Here are the main ones: - - - **[Amazfish](https://github.com/piggz/harbour-amazfish)** (Desktop Linux, mobile Linux, SailfishOS, runs on the PinebookPro and the Pinephone) - - **[Gadgetbridge](https://www.gadgetbridge.org/)** (Android) - - **[Siglo](https://github.com/alexr4535/siglo)** (Linux, GTK based) - - **NRFConnect** (closed source, Android & iOS). - -See [this page](ota-gadgetbridge-nrfconnect.md) for more info about the OTA procedure using Gadgetbridge and NRFConnect. - -### From InfiniTime 0.7.1 / old bootloader - -If your PineTime is currently running InfiniTime 0.7.1 and the old bootloader, we strongly recommend you update them to more recent version (Bootloader 1.0.0 and InfiniTime 1.0.0 as of now). We also recommend you install the recovery firmware once the bootloader is up-do-date. - -Using the companion app of your choice, you'll need to apply the OTA procedure for these 3 firmwares in this sequence (failing to follow this specific order might temporarily or permanently brick your device): - - 1. Flash the latest version of InfiniTime. The file to upload is named **pinetime-mcuboot-app-dfu-x.y.z.zip**. Here is the link to [InfiniTime 1.0](https://github.com/InfiniTimeOrg/InfiniTime/releases/download/1.0.0/pinetime-mcuboot-app-dfu-1.0.0.zip). - 2. Update the bootloader by applying the OTA procedure with the file named [**reloader-mcuboot.zip** from the repo of the bootloader](https://github.com/JF002/pinetime-mcuboot-bootloader/releases/download/1.0.0/reloader-mcuboot.zip). - 3. Install the recovery firmware by applying the OTA procedure with the file named [**pinetime-mcuboot-recovery-loader-dfu-0.14.1.zip** from the version 0.14.1 of InfiniTime](https://github.com/InfiniTimeOrg/InfiniTime/releases/download/0.14.1/pinetime-mcuboot-recovery-loader-dfu-0.14.1.zip). - -You'll find more info about this process in [this wiki page](https://wiki.pine64.org/wiki/Upgrade_PineTime_to_InfiniTime_1.0.0). You can also see the procedure in video [here](https://video.codingfield.com/videos/watch/831077c5-16f3-47b4-9b2b-c4bbfecc6529) and [here (from Amazfish)](https://video.codingfield.com/videos/watch/f7bffb3d-a6a1-43c4-8f01-f4aeff4adf9e) - -### From version > 1.0 - -If you are already running the new "1.0.0" bootloader, all you have to do is update your version of InfiniTime when it'll be available. We'll write specific instructions when (if) we release a new version of the bootloader. - -### Firmware validation - -The bootloader requires a (manual) validation of the firmware. If the watch reset with an updated firmware that was not validated, the bootloader will consider it as non-functioning and will revert to the previous version of the firmware. This is a safety feature to prevent bricking your device with a faulty firmware. - -You can validate your updated firmware on InfiniTime >= 1.0 by following this simple procedure: - - - From the watchface, swipe **right** to display the *Quick Actions menu* - - Open the **Settings** app by tapping the *gear* icon on the bottom right - - Swipe down and tap on the entry named **Firmware** - - This app shows the version that is currently running. If it's not validated yet, it displays 2 buttons: - - **Validate** to validate your firmware - - **Reset** to reset the watch and revert to the previously running version of the firmware - -## InfiniTime 1.0 quick user guide +## InfiniTime 1.0.0 quick user guide ### Setting the time -By default, InfiniTime starts on the digital watchface. It'll probably display the epoch time (1 Jan 1970, 00:00). The time will be automatically synchronized once you connect on of the companion app to your PineTime using BLE connectivity. InfiniTime does not provide any way to manually set the time for now. +By default, InfiniTime starts on the digital watchface. It'll probably display the epoch time (1 Jan 1970, 00:00). -### Navigation in the menu +You can sync the time using companion apps. + + - Gadgetbridge automatically synchronizes the time when you connect it to your watch. More information on Gadgetbridge [here](/doc/gettingStarted/ota-gadgetbridge.md) + - You can use NRFConnect to [sync the time](/doc/gettingStarted/time-nrfconnect.md) + - Sync the time with your browser https://hubmartin.github.io/WebBLEWatch/ + - Since InfiniTime 1.7.0, you can set the time in the settings without needing to use a companion app + +## Navigation in the menu ![Quick actions](quickactions.jpg) ![Settings](settings.jpg) @@ -98,14 +30,7 @@ By default, InfiniTime starts on the digital watchface. It'll probably display t - Start the **flashlight** app - Enable/disable vibrations on notifications (Do Not Disturb mode) - Enter the **settings** menu - - Settings - - Display timeout - - Wake up event (Tap, wrist rotation) - - Time format (12/24H) - - Default watchface (digital / analog) - - Battery info - - Firmware validation - - About (system info, firmware version,...) + - Swipe up and down to see all options ### Bootloader diff --git a/doc/gettingStarted/ota-gadgetbridge-nrfconnect.md b/doc/gettingStarted/ota-gadgetbridge-nrfconnect.md deleted file mode 100644 index 57d16218..00000000 --- a/doc/gettingStarted/ota-gadgetbridge-nrfconnect.md +++ /dev/null @@ -1,109 +0,0 @@ -# Flash and upgrade InfiniTime -If you just want to flash or upgrade InfiniTime on your PineTime, this page is for you! - -- [InfiniTime releases and versions](#infinitime-releases-and-versions) -- [How to upgrade Over-The-Air (OTA)](#how-to-upgrade-over-the-air-ota) - - [Using Gadgetbridge](#using-gadgetbridge) - - [Using NRFConnect](#Using-nrfconnect) -- [How to flash InfiniTime using the SWD interface](#how-to-flash-infinitime-using-the-swd-interface) - -## InfiniTime releases and versions -All releases of InfiniTime are available on the [release page of the GitHub repo](https://github.com/InfiniTimeOrg/InfiniTime/releases). - -Versions that are tagged as **RELEASE CANDIDATE** are pre-release versions, that are available for testing before actually releasing a new stable version. If you want to help us debug the project and provide stable versions to other user, you can use them. If you want stable and tested version, you should not flash these release candidate version. - -Release files are available under the *Assets* button. - -## How to upgrade Over-The-Air (OTA) -OTA is the easiest method to upgrade InfiniTime. Note that it's only possible is your PineTime is already running InfiniTime (>= 0.7.1). - -2 companion apps provide support for OTA : - - [Gadgetbridge](https://gadgetbridge.org/) (open source, runs on Android, [available on F-Droid](https://f-droid.org/packages/nodomain.freeyourgadget.gadgetbridge/)). - - [NRFConnect](https://www.nordicsemi.com/Software-and-tools/Development-Tools/nRF-Connect-for-mobile) (close source, runs on Android and iOS). - -Both applications need you to download the **DFU file** of InfiniTime. This file contains the new version of InfiniTime that will be flashed into your device. It's called **dfu-x.y.z.zip** (ex: dfu-0.9.0.zip) in the release note. -![Dfu file](dfuFile.png ) - -### Using Gadgetbridge -Launch Gadgetbridge and tap on the **"+"** button on the bottom right to add a new device: - -![Gadgetbridge 0](gadgetbridge0.jpg) - -Wait for the scan to complete, your PineTime should be detected: - -![Gadgetbridge 1](gadgetbridge1.jpg) - -Tap on it. Gadgdetbridge will pair and connect to your device: - -![Gadgetbridge 2](gadgetbridge2.jpg) - -Now that Gadgetbridge is connected to your PineTime, use a file browser application (I'm using Seafile to browse my NAS) and browse to the DFU file (image-xxx.zip) you downloaded previously. Tap on it and open it using the Gadgetbridge application/firmware installer: - -![Gadgetbridge 3](gadgetbridge3.jpg) - -Read carefully the warning and tap **Install**: - -![Gadgetbridge 4](gadgetbridge4.jpg) - -Wait for the transfer to finish. Your PineTime should reset and reboot with the new version of InfiniTime! - -Don't forget to **validate** your firmware. In the InfiniTime go to the settings (swipe right, select gear icon) and Firmware option and click **validate**. Otherwise after reboot the previous firmware will be used. - -![Gadgetbridge 5](gadgetbridge5.jpg) - -### Using NRFConnect -Open NRFConnect. Swipe down in the *Scanner* tab and wait for your device to appear: - -![NRFConnect 0](nrfconnect0.jpg) - -Tap on the *Connect* button on the right of your device. NRFConnect will connect to your PineTime and discover its characteristics. Tap on the **DFU** button on the top right: - -![NRFConnect 1](nrfconnect1.jpg) - -Select **Distribution packet (ZIP)**: - -![NRFConnect 2](nrfconnect2.jpg) - -Browse to the DFU file you downloaded previously, the DFU transfer will start automatically. When the transfer is finished, your PineTime will reset and restart on the new version of InfiniTime! - -Don't forget to **validate** your firmware. In the InfiniTime go to the settings (swipe right, select gear icon) and Firmware option and click **validate**. Otherwise after reboot the previous firmware will be used. - -![NRFConnect 3](nrfconnect3.jpg) - -## How to flash InfiniTime using the SWD interface -Download the files **bootloader.bin**, **image-x.y.z.bin** and **pinetime-graphics-x.y.z.bin** from the release page: - -![Image file](imageFile.png ) - -The bootloader reads a boot logo from the external SPI flash memory. The first step consists in flashing a tool in the MCU that will flash the boot logo into this SPI flash memory. This first step is optional but recommanded (the bootloader will display garbage on screen for a few second if you don't do it). -Using your SWD tool, flash **pinetime-graphics-x.y.z.bin** at offset **0x0000**. Reset the MCU and wait for a few second, until the logo is completely drawn on the display. - -Then, using your SWD tool, flash those file at specific offset: - - - bootloader.bin : **0x0000** - - image-x.y.z.bin : **0x8000** - -Reset and voilà, you're running InfiniTime on your PineTime! - -If you are using OpenOCD with a STLinkV2, you can find more info [on this page](../openOCD.md). - -## How to synchronize the time - -### Using Gadgetbridge -Good news! Gadgetbridge **automatically** synchronizes the time when connecting to your PineTime! - -### Using any Chromium-based web browser -You can use it from your PC, Mac, Android. Browsers now have BLE support. -https://hubmartin.github.io/WebBLEWatch/ - -### Using NRFConnect -You must enable the **CTS** *GATT server* into NRFConnect so that InfiniTime can synchronize the time with your smartphone. - -Launch NRFConnect, tap the sandwich button on the top left and select *Configure GATT server*: - -![NRFConnect CTS 0](nrfconnectcts0.jpg) - - -Tap *Add service* and select the server configuration *Current Time service*. Tap OK and connect to your PineTime, it should automcatically sync the time once the connection is established! - -![NRFConnect CTS 1](nrfconnectcts1.jpg) diff --git a/doc/gettingStarted/ota-gadgetbridge.md b/doc/gettingStarted/ota-gadgetbridge.md new file mode 100644 index 00000000..971eaad0 --- /dev/null +++ b/doc/gettingStarted/ota-gadgetbridge.md @@ -0,0 +1,39 @@ +# Connecting to Gadgetbridge + +Launch Gadgetbridge and tap on the **"+"** button on the bottom right to add a new device: + +![Gadgetbridge 0](gadgetbridge0.jpg) + +Wait for the scan to complete, your PineTime should be detected: + +![Gadgetbridge 1](gadgetbridge1.jpg) + +Tap on it. Gadgdetbridge will pair and connect to your device: + +![Gadgetbridge 2](gadgetbridge2.jpg) + +# Updating with Gadgetbridge + +## Preparation + +All releases of InfiniTime are available on the [release page of the GitHub repo](https://github.com/InfiniTimeOrg/InfiniTime/releases). + +Release files are available under the *Assets* button. + +You need to download the DFU of the firmware version that you'd like to install, for example `pinetime-mcuboot-app-dfu-1.6.0.zip` + +## Gadgetbridge + +Now that Gadgetbridge is connected to your PineTime, use a file browser application (I'm using Seafile to browse my NAS) and browse to the DFU file (image-xxx.zip) you downloaded previously. Tap on it and open it using the Gadgetbridge application/firmware installer: + +![Gadgetbridge 3](gadgetbridge3.jpg) + +Read carefully the warning and tap **Install**: + +![Gadgetbridge 4](gadgetbridge4.jpg) + +Wait for the transfer to finish. Your PineTime should reset and reboot with the new version of InfiniTime! + +Don't forget to **validate** your firmware. In the InfiniTime go to the settings (swipe right, select gear icon) and Firmware option and click **validate**. Otherwise after reboot the previous firmware will be used. + +![Gadgetbridge 5](gadgetbridge5.jpg) diff --git a/doc/gettingStarted/ota-nrfconnect.md b/doc/gettingStarted/ota-nrfconnect.md new file mode 100644 index 00000000..dbc78296 --- /dev/null +++ b/doc/gettingStarted/ota-nrfconnect.md @@ -0,0 +1,32 @@ +# Updating with NRFConnect + +## Preparation + +All releases of InfiniTime are available on the [release page of the GitHub repo](https://github.com/InfiniTimeOrg/InfiniTime/releases). + +Release files are available under the *Assets* button. + +You need to download the DFU of the firmware version that you'd like to install, for example `pinetime-mcuboot-app-dfu-1.6.0.zip` + +## NRFConnect + +Open NRFConnect. Swipe down in the *Scanner* tab and wait for your device to appear: + +![NRFConnect 0](nrfconnect0.jpg) + +Tap on the *Connect* button on the right of your device. NRFConnect will connect to your PineTime and discover its characteristics. Tap on the **DFU** button on the top right: + +![NRFConnect 1](nrfconnect1.jpg) + +Select **Distribution packet (ZIP)**: + +![NRFConnect 2](nrfconnect2.jpg) + +Browse to the DFU file you downloaded previously, the DFU transfer will start automatically. When the transfer is finished, your PineTime will reset and restart on the new version of InfiniTime! + +Don't forget to **validate** your firmware. In the InfiniTime go to the settings (swipe right, select gear icon) and Firmware option and click **validate**. Otherwise after reboot the previous firmware will be used. + +![NRFConnect 3](nrfconnect3.jpg) + +# Demo +[This video](https://seafile.codingfield.com/f/a52b69683a05472a90c7/) shows how to use NRFConnect to update the firmware running on the Pinetime. diff --git a/doc/gettingStarted/time-nrfconnect.md b/doc/gettingStarted/time-nrfconnect.md new file mode 100644 index 00000000..a30d98f8 --- /dev/null +++ b/doc/gettingStarted/time-nrfconnect.md @@ -0,0 +1,11 @@ +### Syncing time + +You must enable the **CTS** *GATT server* in NRFConnect so that InfiniTime can synchronize the time with your smartphone. + +Launch NRFConnect, tap the sandwich button on the top left and select *Configure GATT server*: + +![NRFConnect CTS 0](nrfconnectcts0.jpg) + +Tap *Add service* and select the server configuration *Current Time service*. Tap OK and connect to your PineTime, it should automcatically sync the time once the connection is established! + +![NRFConnect CTS 1](nrfconnectcts1.jpg) diff --git a/doc/gettingStarted/updating-software.md b/doc/gettingStarted/updating-software.md new file mode 100644 index 00000000..1ad0040c --- /dev/null +++ b/doc/gettingStarted/updating-software.md @@ -0,0 +1,50 @@ +## Firmware, InfiniTime, Bootloader, Recovery firmware, OTA, DFU... What is it? + +You might have already seen these words by reading the announcement, release notes, or [the wiki guide](https://wiki.pine64.org/wiki/Upgrade_PineTime_to_InfiniTime_1.0.0) and, you may find them confusing if you're not familiar with the project. + +Basically, a **firmware** is just a software running on the embedded hardware of a device, the PineTime in this case. +**InfiniTime OS** is based on 3 distinct **firmwares**: + - **[InfiniTime](https://github.com/InfiniTimeOrg/InfiniTime)** itself, this is the *application firmware* running on the PineTime. This is the main firmware which provides most of the functionalities you'll use on a daily basis : bluetooth low-energy (BLE) connectivity, applications, watchfaces,... + - **[The bootloader](https://github.com/JF002/pinetime-mcuboot-bootloader)** is responsible for safely applying **updates** of the *application firmware*, reverting them in case of issues and load the recovery firmware when requested. + - **The recovery firmware** is a specific *application firmware* than can be loaded by the bootloader on user request. This firmware can be useful in case of serious issue, when the main application firmware cannot perform an OTA update correctly. Currently, this recovery firmware is based on [InfiniTime 0.14.1](https://github.com/InfiniTimeOrg/InfiniTime/releases/tag/0.14.1). + +**OTA** and **DFU** refer to the update of the firmware over BLE (**B**luetooth **L**ow **E**nergy). **OTA** means **O**ver **T**he **A**ir, this is a functionality that allows the user to update the firmware how their device using a wireless communication like BLE. When we talk about **DFU** (**D**evice **F**irmware **U**pdate), we refer to the file format and protocol used to send the update of the firmware to the watch over-the-air. InfiniTime implement the (legacy) DFU protocol from Nordic Semiconductor (NRF). + +## How to check the version of InfiniTime and the bootloader? + +You can check the InfiniTime version by first swiping right on the watchface to open quick settings, tapping the cogwheel to open settings, swipe up until you find an entry named "About" and tap on it. + +![InfiniTime 1.0 version](version-1.0.jpg) + +PineTimes shipped after June 2021 will be flashed with the [new version of the bootloader](https://github.com/JF002/pinetime-mcuboot-bootloader/releases/tag/1.0.0), the [recovery firmware](https://github.com/InfiniTimeOrg/InfiniTime/releases/tag/0.14.1) and [InfiniTime 1.0](https://github.com/InfiniTimeOrg/InfiniTime/releases/tag/1.0.0). + +The bootloader only runs when the watch starts (from an empty battery, for example) or after a reset (after a successful OTA or a manual reset - long push on the button). + +The bootloader is easily recognizable with its white pine cone that is progressively drawn in green. It also displays its own version on the bottom (1.0.0 as of now). + +![Bootloader 1.0](bootloader-1.0.jpg) + +## How to update your PineTime? + +To update your PineTime, you can use one of the compatible companion applications. Here are the main ones: + + - **[Amazfish](https://github.com/piggz/harbour-amazfish)** (Desktop Linux, mobile Linux, SailfishOS, runs on the PinebookPro and the Pinephone) + - **[Gadgetbridge](https://www.gadgetbridge.org/)** (Android) + - **[Siglo](https://github.com/alexr4535/siglo)** (Linux, GTK based) + - **NRFConnect** (closed source, Android & iOS) + +We have instructions for updating the software with Gadgetbridge and NRFConnect. + + - [Updating with Gadgetbridge](/doc/gettingStarted/ota-gadgetbridge.md) + - [Updating with NRFConnect](/doc/gettingStarted/ota-nrfconnect.md) + +### Firmware validation + +The bootloader requires a manual validation of the firmware. If the watch reset with an updated firmware that was not validated, the bootloader will consider it as non-functioning and will revert to the previous version of the firmware. This is a safety feature to prevent bricking your device with a faulty firmware. + +You can validate your updated firmware on InfiniTime >= 1.0 by following this simple procedure: + + - From the watchface, swipe **right** to display the *quick settings menu* + - Open settings by tapping the cogwheel on the bottom right + - Swipe up until you find an entry named **Firmware** and tap on it + - This app shows the version that is currently running. If the firmware is not validated yet, you can either validate the running firmware, or reset and revert to the previous firmware version diff --git a/images/infinitime-logo-github.jpg b/images/infinitime-logo-github.jpg deleted file mode 100644 index cf19e35c9e091a46a167174537db651fc32fd78e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 37430 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 literal 0 HcmV?d00001 From cf9332f0e502007fa04e0a4cdf9f0b1a2d97508f Mon Sep 17 00:00:00 2001 From: Riku Isokoski Date: Sat, 6 Nov 2021 14:48:51 +0200 Subject: [PATCH 047/188] Crop and shrink photos --- doc/gettingStarted/appmenu.jpg | Bin 120674 -> 49909 bytes doc/gettingStarted/bootloader-1.0.jpg | Bin 160275 -> 73864 bytes doc/gettingStarted/quickactions.jpg | Bin 114900 -> 50875 bytes doc/gettingStarted/settings.jpg | Bin 130022 -> 57679 bytes doc/gettingStarted/version-1.0.jpg | Bin 116881 -> 56172 bytes 5 files changed, 0 insertions(+), 0 deletions(-) diff --git a/doc/gettingStarted/appmenu.jpg b/doc/gettingStarted/appmenu.jpg index 1e52fe782660bead1a0c716b023917f56adcdad6..5e3d6a8f46532d57e56de254aa144ed932b48eae 100644 GIT binary patch delta 44617 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 z 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 BGynhq delta 116087 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

A8egitka7R?at1+ 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 Qf&5=BefFL%_WXYn0G{4=+W-In diff --git a/doc/gettingStarted/quickactions.jpg b/doc/gettingStarted/quickactions.jpg index 0d92b13464a66bfb76dfdb9513b9c5d5d11999b1..3bbe1622d220d37a9efb977c0b6f73c5a1a1f6df 100644 GIT binary patch delta 45585 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 delta 110270 zcmdnp%Y3DgeS#R1T**XW7FHvb6f+ws!lNcAj+p1v=07%weRHkrF~0l)5# zh8-WJzCOEY|3z(`_q?w+{y6(&Uoc<0;XlKLSv&rO%<8o;nes@p>;kj(#Vf%ZyZkgZ z@Y)1=Woq(RhdBSUv*(&_D)GObA^t~Lsh!Z`ofhkw4=KnC-2R>S&us&{*Gn6*g?k(Y zzqr{iEk69nZPSe}6YezxJ^0V?b>*MZB^IJLig+zW8vTlQO}F`^dHC849xdyO{ojiH z?3bE6__oA2b9x_}X5n#*KdYRqKX&=Zl%9>8$@zV8{`SYgtm+a9lW#RGx0I>6U{o*L zEOJ3?=>c}7S>a8thCHwMMJ`#aH1r6O)8L+${86@WO_Y2D|G(ClIPD!jChWMf#^2`9 z;jf}c(%D7X_A)a~mYb6D+(fu5K~YlVkmk>mCzs8ux?pG>RJN4)+Jr|-SWE@}GsM|V z)z9kw7u^H$=i{9z;h_&)?yfUDez&v#)4KYQ@YE0gY;R3H{rKI{{xe;N<{#-*|FHSO z#^a8@$4&moWiByTcX&!>pmzhi$e!{gihhL-ocGtN@n^*!xY+#u=OxL#eS7V#oLczi zRCP^eSCRSh;DSgB&&Lo)M!A{G<&Jz`o-k+fpOt(D7H18VwU3%_U+dejcw*p&pBVxN zIBXuZ#ncPG_B+YKWZWMmQFz=d$>#E-q(`6q)%WDt2gb;0U$9f}zxVP;eVPB?X?y@xAH! zwlB2Uv))*`$@DvVxZ7s_cHheTy62LlG~b^~g7a?v$?{1_=rVgyw&*|!kHNx2?-;%< z+w@%3f5(ZHWd%+K&o|m;wl=)tbNI7D;J|X}#)CG&c0p_vwyy%16IPzzYO?*5WlVpd zLt88R!pA$7S!h+f4PvhUoIK~7NS~2ig8!FgEb8mknp@A;SCuoCef%nN!Qba%VZ`VC zoj>evF5&vKz`!dGC992du|f6Z~;iqKx9rckLf7Ua`W$aiV z_CY5uzHQ=;pHI^M&A+sH(cVX^{-}HQd^2fD`L@&~nYl66-QrID7FNkq4`u~ko}lsE z?g~%3OhLwhZ%cEy3=A|GFYLIx`_6OawMxYbe4Z?&63><={63tL+Mge%WhQTaZuN;{ znjAfcH$1WAzA&q|S*FR&zwYMB?l+|m>Nh=?`7SE0#V1~PIGHDdvB&aY^867_1P0&Ow%tli*wl~%>o6F1dliBANn-sXQah4s+o_NJh zDKl(cn80VjI};Xveg0*=?nm}6{jIBySE}dEe8Ajb*Suj3)1T+|b5mYP9h>#4yiV_9 zP1N7|J%Vl%k0lj7cz<_JPgS@|TF`=@tLHl`+kE=>rF^@sGH)(Vm14^Hc;@(r{{IZ? zJ<>Z$CI$azU}XMvt?qrX=Z;^qV%}H=*1zR`t^Q22?ZJPB%KcW$=NG$WJWqb=y4cY6 z_U9#^Xa7F_dDYIPXJy`42Bx3Oe=mP-a;1*M#uKZ4E;iX&Kbu=hFs3yjVv_cS8so>_ z)!Gp`OS(%u=g;InV^n+87KT}%4HdYhF+6Hh37S!A@C)9uxnUuM@n-4ECn`8G9D z;JfVJ{-yqx*J+=$v0QgLX~V0)jTKSOqE{R~EMH-FQ`Yw2`pCADc^uDr+WK61mXx#Y zTCBZzR^U@{hF||gE*aEU&tK~$@hdobX`r&8ch~q{_kFkKTm41DPYeIv zcr5duLHzachjG`=t(2c}{=3LF>96Z&mi}%oUSV>4^=3o);K(bryqb$O5Blx(b)U7h zP9)}G6-)g2jPtKUvxQ4U!d(|vq?SgD&bc$=?wwWZF1WL#@2kF2b*xcrPUON}dQG+u ztcv{pE=ftLzV3bSTFBqUQ4%`7>h@{#>X-3~UW@+W#eFj1cC5z*(+v}>*Ihanv8wNf zr0A&=y&}ERJw}t3ztYlr_$tWrWX7rGQKHg;RSUNS1zl5H=ql3IAl9{ik?NdTM>oY! z6&l? zpSt^7y@i&~9=6zn;rJU83E;>GiCd=N5gB%q(6xBu07h7@d??SUmB|!BstL zd=?kqGq8Hzm4CXaNPE_YvMr_2%)E!ic5XkQGJntB-jXBr4A~34UOl%CE0f+?9k@g8 z$~(ipD|cU5+|j(_9%^_jWCibT<$3$P)(97ED=;YVkk#^>vTI?^gY;+Y^Y(<~toxWB zU_Q@?Klsbnl^RKg#}3`hE1P_W|MRcQAuHo5!;kUVRtN1CWBgt;w_zy*XOds^#830C z#BfQyStQFGIDuhl?vwgD!z-Hq8D58fZ~ z?B~)CXHN~h&ir-FvahCXhfU*5tsDPd*S>zaYk7ESgLu@wP>H}o1!l|RXR@ZIWkfdz z@7uOLyFzbCpPHrC+P?Y|i)#ITJ=r<$Riw>Pj@z?Wuq)J+28-$hm^9n6)@MtG%-=Oz z@fhdlhz-B?EqUr4e`nHyhMLO1?X@w3$7le#yVbZGU=8%ujC)+v_+_EpM^x>ltxdue{1x zzv`scHkT8VOaJ|1`?uxVp|tHS`BLYPnB7p(S$;b4^}PA(w6AUJdD54CIAkDu%h8{_VOfA?A2zs%P$td!%Ptk)||_xD2KVZWM+1CA`5&$eXa z)`fX3#~PSC--h;NX?tCYS3WhBPnILqt|dH9bg8n`^`{qJ3*C4B@W!lMJnWNiwTfep zk0Y1IlL!AyqXRB)xm|x(@GGy{E!T;ue;=j4+-*I`U`*ixJA@^Cr&Uk zo@aI4@1D?=qpNSO`S$3}>1Pd|x)V5L9$(t=G>JpuLDv^=c_Ej3GREi2`ER%6x2mLU zIA`%^^{qq4X78H#I8A6hUu595clVzZMja_Uyz(?pz#4Bc;f$mr_nK>>=YKtpGCr$% z-g-_TMVsACve;h^bDRe^}+KMD?Z`ttB$QvK8S{}~kP|1*4j9ht25_wv+hhnHu+O7u0H@{2Jroo(GKtC(BGdY>ev z7k4ePx@I(a@@}h_r;K_ZZ_L!&U~u~UisiK%>Ps#MUDuwjQXMis#XmT9%fF4M-_6{g zUSzggrC^8Mv(-Wold7&B&Y1CF&Q(u=W50b9<4ntE78JfvRn=83mg3r*z4~hXf=Tym z4P)eIol_6qE@Pzmr|P=K9>Lh<9eJ&H=QS&>Gfb38mo-|T|78JBL*@F250f|l$U8sr zK;nOfeyLB1-}kP*yhm8uy!`;Pb!y`E7xile@63EtYHuFX>`|V+*1$NSK(q3z=+ZNO zohiOc+LDf|Tdq1${8UUP_xzc<53m2M5Uw|L@JcaMb*nCY{$a&w_EaMQHp7Ox_rH~9 zr{0)iXeg-elai9c^L54ZipRH(?hAX8KB@A-{A)9H-b#xmEzjzo^7+Kqzgbgv*=*Q2 zDRysJf8xJ-FFi4v$B$$lzE3}Q_n60lxCb0ZEAO73SiR%h?eh<`ukKU)QFY7P{JOcv zc0ncAE%p3U|K+57KXJ~U>r?ig?#UC+iTrEYTs_OB^rd|6{JHn{Mi~OHu_pCebrjRN2{KkIIFFwT$(b+aI!hnSSwctJcaD@Y9cDX!2m7Vw zF_ScN8$2&~N*B$1@@(&QcfJk#t~y88{AXA#ueK^Ibj`eW(e(*nZ3qDtF^Nzs>#2%2cIVALCa-9;doexYYy_ z>r&bK&#g=rU0%a%V^rLnFCP4&q2B9U-PR;!(+e59=4j^VE-PsDyyf|zIp*V%m6LXD zoSJ30S}v^oWj&9J)tzH&tOOneM+a|BOP};f>G(<`o>>p-Gc$JYy6#d~pXT&^=Y{ND zd%_L5v&-%+c{-!ySGc{ai0qY2w<(oL(S0w=9{w;@zqR<^$3Ls>rtO-hw`lu>yBeEb z?(CO6|1eagSoz79Wfvo_tks%5RYK#9n#R&4Yb2AdJy8G6bh>%_`RVN23Z}M4J2qZ; zbA?BAUhw>wHT4gDoS0+lpEpKyORuRv@AzkRljOR`2afJLTf%0zr(Uadhi%{4$b*tE zvYhUGH4XK=`+bMVBWIa+tCWszl;T~#|4GcB^>@Clx-|7phhv(|BtE;GuPdI-*=#(` zy8Y~dm$w!h8#8r&4{3`2^UpL~XI>;v|JH~PRek@KEeZ3V*r6!OA@|r;Yqd}PM&;=` z-rru%>OXJIGvDy`p;n9M`%QIQyW&(>UWk9(_x6yIQ{N3+?c?wI!sJtw|1-#`|GK{M zm4RpB(mTfwNh+1F+stXcwS%+&faEA&$F(@E9>R#)9RFLq5R(uzv< z6?`;px=7N5Ba5bsOktRF(c6_lV(C$l07FepUsVOM?eB7>&U;;+bFsYT)O=gyva;}wFE2#Om)#80)j1Y)hEaXDdE$+rpYJxVTJ_ep z(SB`krS$u}gR%^7{dKpjIB|Tf;xx90!Y1?0Edu;3zpk&>|HwOWOX#!*QyqL=^$6p_u+)B#A?2l&>vePMK`NGKIg}$ zHD}_MAc?0zYxW4ZE6oT=Z)1ObG%7d8JKRb;w@jt~`ONL5PfAVamY1`<@nVhn6;?mx z-s=AhwOmd;w)Tep^>a5CEj;7yc-BOKm(7e>U4F)r8@2nbW>2wiz7yu4iTHQMGi%>IlS2Us{YWH zWjj7^$TreAX}P*a>f=xd0gG3&3}ieY`s=S&XWzt z7pyq5Gyn5Z^%*xF)Rl0oT=7zD*95it5UvLa9(%L4&nZCWN zq&p^6oGDt7YU?Nx!*5yPp}@qKS$FE+qV1(~)vQ$_7fqO&e(aJ}SX#yEs7W^iZd<(5 z_-*{FYx}k7CU3;GYN!5nl~2uo&$WHdrL?)NMcZ%se{a>lS%2%VR#nWSZiSukZx;VP zHogAM3F}$&O-y#kZ*@JAY_7kF-s*ZR@Wa18pYHO49idM}zT0iR+8$H3>U8S?8Lr9YHjEye z*Ia|YF4dnmQetP?+#PCc_zFcT`W%kBNe)YbNJE|_df6V-Om83z=EF;SU zmS0zV|M=daxVhPbJwK;EzN+r|?HeJ|E4|bAGT3b7o%1^=|GCYqp3-O2l^Tp{+-`1c z`TTE7y>iUk{EE)anF9YAmd(F#jd88=MxKC7$7L69t#IyqG<%j)rm+LxIbU6)X$>-d zn#P{43`&0=M@3oIA6w4&pCMax&iuOdnQu1-H15AGDx@iU zT5-PE|HN^%1uTyxm-Fx~n;^_ndeq_yd#1>P13YOBhTHXwe+5YIbz^uv=aP`|IR?y<+BlIs2^1&(NV=xGR3GK}z427P)%M1w8u&9z-3o zf4TgNY4faG9~u9ik+47hS6gUHr%ueJw4O_8D<=A?XK^lJYY>||D=o9wf$yy3lJg={ z7*>9Nb$6$Bp>&nOs)_#@)~wbjIQ%+LY2uyLbAq?aE%_L*@Ra7a=SH;O}kC$4=$Am=heaU_MuP;OW|C|3G@{~_rpd_<-hoT?jWFuv@$!y9x zlOvQ{RSc6%3@nojl66x|lFfBZ3{8!76BARDbuBCn(~=XD43d*lQYSO2cuh`HF}E=? zurx3+F*G-|FflZ-P*QOB^bN2IOD!tS%+Iq`GSV|N&@(boQbKbJlK`^-0|Voi`Ir9{ZDE+gvNmtiZtZh7BXvdA$|hYpwdjKT8PD}|EUWj_FZG^M zf8wc*uh!L+X!-Ly&n>$a!Ln8B%(EyluPNVTUKSVbypu1UyM6lBNmC8$KEK-cUVq>3 zny@@+k*I1hx30Bobx zK8vntSVV_6&-y77wq%Ni$+j;(qv#Ulu5e=E1!K`o34%+eZJBmq+Ko+|`{(_v`r~(N z>(r199>y*rVn;be4sbYay{T*2n6gIEeSXC~zTf`#>E{-d><_+a*FODr?L5vkQMOlB zYPLA8Oj$kagl_$^@QALt<%`d)I;uM9l4Il!rWdYLn^acvaIDxIFlFn57~43(wQ7qR zl|+3c(>j-Q^ekfW=+g95nHJ?KQu)2}^Y6D6Wo2_F);-@|y=UIdcOTX**%Wd@>m~=| z(#q_W91?5Z+RBI|W;h5mO}pyBn0vuXG(o^gkvWe4@Z|?pSF29lu2)#aB+;C)VVhUZ ztq0vYQxsf-7DV_-ANx>#^TX?8U+vVg<-33HnRon)jnRQgQ?rDY`K>QXT(nhamKW!Z zvPX+Ur*W&hVKXtYMH2&EoWiqj_oms- z^wiqH)uocns_|jf!l_3$ojM+ILVNmAi(hpGd!?RcIJ3=KIi+op&ekY_l%%xNL1A6T zTeo^uycR!xKljP&lq=C%XZ;udo8ErKw$991w<=uubnI#sy-h(*E6$cgao;TYytaO| zpY7DCUI#ohv$jsXnsw>0tPYEA)9UHRD}L3bm()JvoSDn*%F!F1=*$(i$WbUu%W;a! z(uE?0_sqNZ-9CNmOjhu;lKH-W_2<9XcV2PAsac*;9wBSI896;oE;YzbkGEEe`l6^~ zC@Qk)X=-V1fQn^oRKuE}mFv|XzWUj?<(_Usz0`X5t?WyuZd%IKy2`bgH7x4EZ6lGe zzNjM~%WwU(wljISX5Qvk`b$6mo*&h!fxpA8!{ zMQ#YFnM{kB?cz4kWncW^%b${$&N^!n;Ib_^G^^tRCzHw|kEMx0YnEl4P?nZD^6~qv zpH=&Ht!_rz7JvQEaO3CfcmEP>6=q)2?UGbYz8%8RcsA!H-|PB|PpdOeMLl(hdYv?5 zo5_}-E+Y}n(8D}i*Mv?#^P_5?`(D0HI)SqS4hUUMJHRHbwb^4@cPLBO#dCe$5juc z6trPYh?umd)ASCdC6(Xh{p*jvd%5Q{WA0{iS+NL_4G|2dHXMvBX<86CS7qBnpB;8~ zxAWD@&#gJRI{E(moAt?0pL}_o8X2&}Xvw9H2|*`)R&5CM`_Hg^?p3Wvi>9ufm@-|n zusKlC$zqyqNL)wPR_`N)Uuq()@9xlv)?X6!X`KWEhmp{#6CJB|E%MZuA|xz*z5d7U z+&y#Gp3RKfZu|4^)NggEyPnK4ObRnh+3_lHVydg;#;j#hdzoXD7A<(;6|`IK<+T>h z)Cr4@^-yX*7~W3YukmC)okuwx0*%k*J>9WFRoZP)nm)rW2&bYt=)7r!8uWD zsrE*eX}@I+7o08nv-^+nyo)-^Zv?W0Ypn^NsK_W7*1|IFh=IbYTYJ8){aAMEr}dMh zZN2%KFP?tgfA#0d%e@;^&6G|w@l85)H8m;9IAQCH@K&!=UCVrD_V(X>5bIeoQSqqi zHZP@)#I>s=94AD+tTm+ON2bPWw)BxFApwkucSz<=EGK^?AGf&2xIP9-XyY@T-pB?_0(6$gHrw%&5rd zBBiYpL$-5isYY|gwfBTY=X%GL_A;79PYII}J!#nPofole!_|ojXM<-wwS4*WKg0Qp z?IB${z04sl?F*N5W;*8hEPT$0nUI4Ob-2;o#B$VN@^>=${N0v>(^iV%jRm- z6BmyKg<(Bwcm-GOTJz;y5ZBG*mVEKK{UXKUy6`B%+)S;N95Aq_ej z3IZ)Bm~J%sGC6KjP|H!&IN}+!WWzL91NYUY=64Nml|Fv?_vc^1SM?vd6oMwS2CxXO z7WFzGdd{&&;&}VH729Le$`%>-Yxf1~ZjN~_?|yt<+&|~@6~$SrJRFNy8XdaCm{^@$ zRGnNDIRhqg1}$-7x;fFC$@hHj+vBre+b#U^skIS~!by|?Zv0_7uB8NxIN~RvCkPfF1MWqlu zO+^vMNaY1r?tVSL{>#DZ_Urb}Q@L;K>324pC0aEqBS3ENS=Xt{b_ULxeR|3)U*A)S z#|(3}dY}LB<&WXBFF&{G1_x!$;AV|*5@=E6a1dxzR1%oV!7!mkk;8L=N6+4ww)Mte z^cPQ`mH4%N_1PD3^K};VXe5d(*m5+nKjhffThYc|yRwDNvQ?@L)_QQSo3(r1zS7TC z`(mD6pKC-RQ z%9U@HS#u)BNQ~1-$F`m~bX|7p>FCH~o9k7zn{!Ny!+q`T=8IMQjT4`n`E2{7;^3r+ z4YOoD8X7uv95zKVuyATzQRL7xnsRGy`|Y3B_ji9>w|VxD{m~Qt{Aaj5Q!hv1itW zPnKHlt&cqJyJn+rd-49i{?DrHFW3D2zWVs{`P2XEt$tMfm;I}~_>7OgcH5Vq_)!0R z|F)SMB09oYrfNB;ax~}F%KuINxjg#!{Nt6&pV?<_ez<<#e}>-w3~n=4>vT*wvF?1Z zeqgcQ*}K{HiM95#H@-e|G+AdE6KnF-l%yjpko?DiUa?LY4CEA!9PO|F0Q<6rad{^O-`@27uC z|M;Kb&8+h?UkPxsOej?pb7*i9Uh>B7`^kHM=TB^X_I|;S{ppUMYB!svPCAxYnil!; zTk*+>-ATXquRs5;?ml6H|RY^}+fZnbu@~dC%+6PPzZ<(|%R(RgBQUw76rb#!M6gZqh zRwg!irf8ixu`zGww!L}Jr)*ZAHY@ghOzrfqHoE(i&5o?|Y@K$BedW7|U7gu6^*bi6 zTze$z>*OT8#5nWk^XlCX*TwyD_FZ}LYvH|G&J|9PLOLr0S`;~T6otGruBdPbaySXJ zNG()MoyZY2{Z-YsYpa@{!l%QxA_ZIjbaC(m1Rt!~1%pMTqLKVCWO_^Fj~49Az3ZuMScmf4q`oT|1c z+pM+ariA4__9tI!79QU&UFuUVR{5_)gjID?DJZq+;Dj3>$ARI zr$1kLMg6a~6DyxzV?X^R_}Od2M2^)ulT?D!T&t$X)ohde^R4pLY1_%y55I`dZ@aDH zvvS%V&e(mMZ=0TdEdJW!Q+cHZw zUH$Iy)L-&y?sdK^6pH*pk{;FUcbos@ceqq@$+`3ID$DGP>yMgGdp75==ER3tpT1uB zvwm@S_r_BZqQxm*6N1(DMm_G|oH$p{EcsHc%)aH{D>RZij6?e+lh?1RvRr4{wd-zr zvR+(X+nl{xUg4!_BG=E<*~g!~Q(b5rslC~9LNJq4f6f)#pYQhve_r$DL*C5UW&6D! ze*DiM{x`?HnXkN*{V>~wMOtAG0Y zqkrB{eD2G-+RQ~!=+~Fp^m*6HESAr^m%aA&`8W3U=Vu+6a5hXQwunFKt;x)p-V>K? z%G+~`XVr$oKGIgAhf98XAAb4s@_fIr*h!O}bvOkluFA~cKJE8cd82c4s_WPPtbgzI zSO4K&{_8*Es@rcq{!_o~!}$~SEe)nO+hSe_RP4+*CQ>CZMwT|*3LaOS-VbbaI2rSZpW>x#N_p-?fB!*Tf97V?9fV6 zV<#?C+X=H`-#@-kH~pEtpWW48`=3YayLTV9SN*HK;#a)%z53)o@1OCXtdBeN^WNP0 zBi~-{H+?rV`g-5@FY%Up_sqY3{zd++{|x%Ke(zKMetg0|>tFeE{#AcDJZSr;r?Iwes&e(s<7kH7x#vnpD4w|l`)YMtL7zx1DB`#;O4_qD&@Oa7^UBYU6v?#Q3#Gmgz(FMIz@{lDU0JGR%< z>i>HGM0WcAkKdmCdHiGl+q%k+^#Ri!RM_syKU3Y7t)aphC8}_1-ljQIXKp%IopWbz z`s?}m-7DT77BQH#Ypdm}+9k{u!IecTXX?$IvomXF&xLJ|>lG{Z)(Otrvo}XLYR9Gn zYOymzT=l;c-mhzZ7J0vY6ctV<2u zvkonh58m_kw4C(3`}1y_E81=RT4~MiKl5wOq!S{m_=9gwdptYLW zeksqLu4ovnbcS`ZL|dszlIf@Ia`X6~eSMI=+^TBf>2P5#Z@o>owOQ6)pZETK&FjDW zGG9%;a`*QhD}VJpHM0!ec4gY>Up)LX_R;CN>u-O2Q+rSNm48m&%UPCzPt}{3bw8+; z$=8q67P>fLTBMThta*J?BOB|*i!P`87k>#~e)e_TeC?K?6Dvx-^8FPK{CUzlYII;@$qt_d586tW29Efh5!+BKi7ezxU# z)PDx`_3l|@-b2R2M-Q554AnCvUmvQSYe z^j5Xq=8p5K=kCsBTR-{suY&LP?tQlhY{gUf*a_Y|O%e1SlqNmQXxV&t= zteySwc-5y{XVpJHzsPi+`qED|nkQ2gFELDrd^Mkc+4*Y254X=g-+cP{=3Du3Kkn_X z?|uG@VNq~#eogMa<^9I@pXbM=uhsahKh^#G+hsrH{^W}Xn|KO|DJo^A%{zU+ZFhTI zGWW-@n3?N6Umkw(-ha|spDj)=bEYlc`+m({!Xs9!$$OQ&zn+m8l&V%c4;9{u#|=YNKye+B1m@n|{{nIgBBd0kn| zoNIYu8q;pp3NM#m_SepNpPxZd*u46<+xug8W#?(nyzadvTWnL#f$-CUW|8+#e6CY} z`o7!reDsWSew)`sUE6SRC6l+r_ci|+H1@x#ynWJm`{~5jpI-m2GOJs6Oa9E?S%2)+ z=Y0ITU*gyOOH6a0FZ!#0=Jc?f3Jq{L7D)`xQB?)$Mv){K6u6-^=p^E{;HGxvVVDp)m-tnb!q90oMg&)xM`d|U9uKhs}sk?;6*XaA#r%eKGz8_&M~@}kr8 zn!nc@8}FZ-efjX$<8S^mwAB1O{OdY&9|Ktn#;Lq`%|1STSZ(R3o`t&Pb z_WW}{Ray7^dHkvRu=S^J&;Mh8W%cQ6E-Du~Cf28(TsJ#-gP*^+_OxZCncH8Ue|_G4 z?wZ0+J$uil$G^CG(!27zWv*O_Rr0a{~0zE+v)FI@-yz^$KS>C=lm-9x$DG4 zC2t{}jjOBEeXmRTNuPPT^xQhL-N&!X?)kQPLa5kgoo&0`yT|tI`f)|F@>)+Juv2Wfh z{%r5@*DwFXFMIaqpS{qRdT)izh2Qr`>tFi8zsS5V?^mUHz4PHipMFn15YM;j^DoQy z=W0bC@0=3hb7I3Z)4X-nlcyX#{d95H)vfpHcD#PR@9F7_pM_RmeY4m4#^aiGX_vNU zOWqj|mxh1v$2#%FA8VxlP1F5dv-}YM z%-ml)?KABB_RK%|`=9aEU!KlE{~6+SpTGH+d+WK4K*{EN67sXNo?Z_8^!G-*_61Oj zS;>*t>yCPP%rd=rT_2enkzbeRiN|H?Zk@xMDt^&c>cDKDtYrmOKzfM`8F=^ErPb0&_`#${(Uijs~m!GRYZP=dtqP8aPo}Tyo zdr#C~s9sT9aAos8qrG!F%%a`rSZ2+OTHp6%S)@?Qg-MD$vS!!HrRJ>HP5pH7++1VH zU$56oZ$0-jd(DznYx>q-UZr}?dv$M5r-sp@x!H@;r)c)ppUXdK@$$LR=cozqex*;l z=Q{N$*M`a7Tn=nP5lcCk0~)5h(qwWmJDDgX(5)meX^pFqtW(a{d0(FV%+|NEynHO> z{59*xQ}-BLt?cX8&wO!h)|tpPJ8~ShN(9|3-H|-QI9p!)xli`_@cyfuFJg;Nz2{Zq z*{Ze5OKB4Wug4_UB!T*=dM?YZDkKSYaySW0R1%1}v1W3>Z0`9km-`;Cne%e!&WUX+XK$YV%xBMCOJBu1rN`#4Gk9|R z+{>1bvrK}aDU%``JDdcjvUUcvNVKf*Xz6h6+Uc-l!?kMLBgH$f`IQu|_Nkv%x9;Wf z#NuAbslGzDb-!f9=A7?p1=gdtmieiEeo1DDPoHf3@xmPUDujIxy@7nWMcR%_T z6BiI4uI~Qwp6Obx)H9!QOXnnY?bqINu72iKzwYV%$#pWbWHmQm{Pn!={i!`G&#lT@ zbM>Ta1kVMBBZ~!E)Fw<|@JyW;sc_50$$=r%rPIYo>ejrDIdOV!rp7s^mG-TBdDuF# zQ7hctJl4GE!K+6zZtTo?wdSUG_w1d%v1#sB`)cRbyi1B~jSY{vdcRLB&#W{!H0e6G zMr2Sui`PsckK6`c2ZqLJky?(@&WeEyK^#opI?8f$B8^Wz4^PhT`dC`)T=C{z)&g6L z*B45!Ez;bsD|W}%OXptNgXD^xGb6Ll^roLn+m|z4>N($?bu+)*kLQy$+`Ok^@x05X z328@LSS2R1Z4y%5z@Vrkv_x>ll0a?;CY@74Cv4}wtnXISE4gv!*u0p%>91^yPR|G} z`jWbpzjkH!q|^P&d{Y*CFFks4S#M5GUdiQn6)#iMOtY{0@iWSwt~^_w04A z&+eTqmL8~dW|0&(g9{hir4$CoCJ`>hEUiTo6NQws?N%3`IT^2azV}Sl$>Mi)^X}Um zb7@wK(lJZ@evh#}reCinWT$TN&!y&~eQS;9tDEfC4BK@#w>$0l#nV@7?Q*K;ZaaBT z-ReiN#eLP&%k1rD?D;mSb*7}$1&x&q3#KHnGA^37zH;k#ei___AL%fBszC zeDu|v?Z&GY+uF^z<~md7sd3PmYnx;5%_^C3%k}iSv*!(RZe0`E^`f(Wm;apA=XqkI zv?AxO$*q<7{3|(ePwu*M>Evgh?rdH3_S06`)lW0Z|}DK;2WE5pTj-(_%GTzr{&~MsVVGI8;*SmTlLT~JGR-oGm`7p=`fj8 z?~T5N=OaIBhAlJe+F*V5uJO#YqxI%eGsGSp)612-rl-;2*e=1En$W;Ckx_t!=}5O2 z!$hUbjXQ6YKApcWU3&fb7j;%!Dqi&$x2LODuJ@kcw5)x<_i3ejWj&!x_d~_*T-fOx zw#WJTl*eD?&P0Vy)aeupQ4|W9rUD*)RAOpb$|yR4HIY$J=_GHo*vrZ}DbMCr)$dlH zcI1o2*NAQMf!~d0Ofp>lwd7dmREeuLGk@)RoiowY_>{KJac!BaF@G*cD8J;%U}2G( z${++9&U6xJVPp`P$l)y1<>aNXT1+x6FZ|ie+_M!Y{PX9S zNd2@Ubn5Dm*wkrBGt+F8t|zOr$LTH;?Ws=@T{_9?6jy_ro95E+)(yd@Rk)fJwx(#a zI;~pOz_`gPH6yXx=!7xPj7^cVF5Q-1^8NShgwsLYl5$5(_RZaJL0On*>EVEFu4gv- z#w0&8UA1*tuT6U8^DQ1C8yOcUayY3la5xDnooeZD5@=b`CUu!-?bK(U6Q}MpjntiV z!g8lk{jWFYi;HftdYs+h)KeVS8=;w!>{{&0GhI({qH5`sU{$eZjiWv)PgbApO-)`D zYCY+Ilh6VVhe;iQO^%1!=46;AI5|u4mHgPgIyK|Nh1V&|bWiW>kL@mHa7fW!DipNm zd##!OGNXvtsa+F$wRB&)#tLfbU1IXyYS=55J~6s2ygqIJnj6`AEz!abb}l9l#CkR@ za+$&*(XF9$WYw9R+lI@J%}vW)eAs#QwBz~htB$@_IxV7Vn3>X@*L}ffb+pMwy;C#8 zLUp2o6;@==I_(g$QFG(vK>Zo(ZCCbQw~RWvMIb^%xyK+=L+6Chv=dG|9wM%ck-f9a z%x+vhd@40(ZFh2gMfs+$MNf|IiWlTltIvW$k z=X{y7SzKtHq>6SJhqYFC?n!}8&fR^}PfZlOwA&_qo#|bpQdSW~h08$-yP6z%+*Wf5 ztZ?cw)n(E%%iZ&}tmNljv;6uENn0Xku}bPllE-JeU9S7$>Y`Ih8XnyGEiHy` zvt3wDE}6Jku9I2Sb=N%8+fx5#OgEU4vFfl_&NPkymnlqhx^)Z%LKw6peq8-=b>?O7 z3y*&D>A7Wg^sR}oiZTmYz4e&81M8FB5pi3bPlxnPyW|ox)j_r z-9F#@^%#4M>8Ul%O9FZ)E3H_n;?u~+x5mR@nwKEMmejiPI+Nn^$bC1@7R-$FH94Xy zvCdU>+a$$OkH^*XR_mNPv1UhWB2S1xW|(S{SJIKhoYts$wznnbR?Ze-F*9$^iFR3}kd~0wkt1dxCSU|MvEJ5a z{kgr{t+tC@I+Apv>uahc&)Sp*rwl*qwF)ZJc(rtx3@&WawRK24%5yr2Av9sfcV=5X>@Rf~-qhkNXZMR=|Gaj}8lFY}jKi@e1DM;J^67#NwEnVDG_SeaRv zLF>vG8JL(^1cg}Hgazsq4cSE$lth&cj2y*`9XM1}1Jq2N#7+L+V&Gt8WME`v66m%v zJJx)f`$XjtCF_VO!n1bYJIWr*T2p0uV)pWGeWerT`&g|veckeOmG!2RDfv$=7hQ8r zPRv&5`h4{uW8U;Ij&6nZd0TC7v%k-HB^sPQ&^#jh|RELzHvL+h zy?*Vf(lwONO>9%;TQ5Ede^~*ZSrY<6uxxUhMiM0OefN;MmK66!R^@wH4m#>RO z`|kGk53rVRd|B5h*YZdI{?aS+x7ptlcy;xqcfE>8czucE%gK&<9G)dIjp5q6bi-f7 zUA>voS(F&QYwy+F`;2RJ1TWV2kfjO=9hbKKq>g_6s zj7$?f?^yDzua)6ZZBF0sF#Vfr)pt;R&x5u>8*UIbJ-+W_8eqZ2qR9@Wu=qWk=($>cE+Y4=(cG>c$ zi0)o#<9hdCnIo%wc~yN`?(Q86OH)D{!#EbLPm#Z~WA*ZwW$oInvqKL}=&Aemo2@Bs z&C{INRjLjCUJ1sPB%RrMY&O4mV3O_cf3An->4Om>Fj!cUNj% zcl`vv;yG*Yd<%c)epq@DgG*`YmF-98&Nwd3@g3YkJni^|xGE_#ob{)%6?>*$FoISwEA>x-&H^IAQ8+b8GfNde+9*`nQE{MpX8a$Gyj`*JY<)wd{}yPnw&s(>Y-3%1ah&R)zVg zE-BgU?q}2!A5)YQmN~Ia>E5d}k?Un!r%sr<;C#}o>uRUIt!@cvJWzi8%C)B(7as0C z8-E~dS4nKgrd>zbzHBeDGvio%>D1{H6ZePx%x@80x8>V^hFuGrxoqm0j;lS`C|1Dm zNxDesd9?cCS;wA>CWP^ZWfev$cj!JSP~N+!V$z(Abp?@LU%vGe{Mu#q@$WU41s996 zO%FycO~`xLaded+Ul3b6`;DmAS2CKvxzq`UY0m9_qG!uw&SCd@`{DD>)$2|@e(?K| z&6aQBJ_S+!RX;Wz-et3pFZA9G#rmc{n>aHpSqisaJsDPd_RYnVD9!`Q3S4G8pPut6 zzxiakQTUPPY)Mha7A0?OKAbdxNoO(Zk&R0jWe-hQwqIinSFKG%*})?U+drI6J^FXg zgsM;LlW)p|r z^|xkSTOP6QAY;m%t_h;e7qX6MOPn#9W|eV+djV56&#FdkA?8R`JEx-~9Vu<%zxD{cTJ5fdy79aZc}o z{j-jGKEHgD=6mY8xWZhiY%$FP%#-u3>r5}X5Hpt}##ifF zxY(Obo1So~)w`ZlPUh`1N}hP=9Z%q?t2Oht-{iY%txRIq;@Ko z{5zH*%h0t&ncoKt!Z@f~32el7oN zRq>bYbtl%H-ukwPKYLNr`%C{Bn6I6B^2W{^%=H3-^94uZ0h7`{(kj2 zr@!r-K4HV86DyZI65QGNR>APVN$X?&mWu-$R!saXZLza&qQ`%RjTtq0-J;@Gt;NMH zuVr`X`ITOo=x!`wFn!^!w;wkhP1-;4L;0b*T;=`GX2e-52z-7i;+r-@PW0XGH8Eo1 z5r!#DyG0M}h!oKao!Ggs!ewhc=em-!ZEB~|7S&HP71?)(`PhGk!aKFG8YexXo^5P7 zAj!S3$Jd`Zh1ahl&{{Huzrk*ehsDi9dKYJVbI-VP+tS9;N-|DP=G1j*r3dr!Hog2) z!@5s);)|--N|!HH_PeCFb|~!CY?j^mc>O2lby0IJ&AO7C@L}J&Fk4Tb-lfNvdaPKw zYM#@jTTLM!>yuRs%`IP^2@-#_QtrF><_QdQ4p!A=Jf3EJ?BpzYeR1Uoxuw~Q`A$nn zr(5>!Ovw!|@YgNk+q_l(^tG70PS+FP9j(5dh>Tx*=*=dEG{NfJ6IV}MQOStub#ha; zoz9mv$w6>Rs`Tv!MW)5M=a)?^$c;|fxT*YV+{>9FuU9KqFS}L$Zfo zz14X_`=G}3%C|Psz;Z>0$&Whw2 z`(M3kxPF|Cu}`sh2lC4GicWG$J};>;VPBJ@R)pSOAGF54E11=8t8;6r-*hXZ%!PHz%Qx}YGyMrVI_u0Ezw6pDe4AHH zc^e#1WLm0P?B%cgE~PM1dr|(U9g(aBo46G=M=rE(T5@H+ze&^={^@>KU%g1XJ#YE( zfH$+A?bEp&#dLH*Y>Gf>zv{)EuIn6^M!go1x>D~D7ByE|^S+wlnH!p`lDpWQZmi5o zt(dm7!SU;NgL5YjXQt$Qobg0vlG(yO{hZvILgVSTU4yzKZff01%-g=(q<5>_hp*xR z*HhNsxi0i7bkcHfmA3y3+^g3#ozOXSM(5BI?g@IXCw6k3S##=%w$Wy7qfJ_`RVSTH z+2r`zbP}JofBiMJ#VSWKzvca0d11bHG;5BT#vsM2_dI`bk6fX@x1ieoAjE^ z*5&yeX8UIEG*|g59F`?&x_;}$$aStKo|bFxjQKb9>eXvruU@@+T@Q9lr1t97t)(Sg zmr64=dTR|Yy{@&o=j^$vl5<_8&U9nFxcyCQ*33E6QrK|aJ#Sib*FN)|AI+ypKAyU6 z>cvSF`l`k=<{o>Zs5Yx>S-3&N%hb+Er+%h}1~AN3<~7^B+IhRl+2cF3vR`GdezI=X zYo&F)Q!i?PtX7@0YyXe>hj)z>bLRTlp5C%DedCw=h5t;KS}rY*_?DBfNM~K|)I&R7 zoYV(#U-N=2~j8_Y0&D^~?c(Ti_TT9afZKm%QsaC2J|Ie^!vB9?0q0?fsFYU_I z+iQQvWY@h(8;TAlmi67WzRME&%Q@KJ`;?MHux~U&tKL5h@ zAG^ek-l^`IQWdys!k5W~x@R|S&0Q^jboq|Belh#nL>>Q*e=)`^H+KZZVdb(yKHHp!iOHt*MehU;GTvXi%HewSXo&FF=zVhGOpZLe! z-~X%rA@gM$PyRS!C)T+-r2fU%UvW!)S6ygL+LWlE|CDd;)E8OJQkqFuEM6^~_D=BZ zzk9PXRVFQ)RqCsJGH2!o-K9cL&&TB>+82~ z-?o3-%JZvkA6QxIb1%p`;?A#Ud*x4PdG^};e%GaIUh4E(dYRSfOSN^M%7XlkO;m7m zTku+0wfosb$+VdBp@G|~j+ulQZkQ4EbA_y*#PfhFpMz& z%vY(auWaRYbd8T@R$IMtg`4}18r^@!HoEV1OurT=2A7)PvvH$YMF>m?t@I?ozca(FPCzY8k_;q*dLl#HPGrnRk z^G;RUX-&87Texc3nrU0-~&Swm|4mQP~3nZBmx!iirVclPG4 znvS{jY@>JM%|ZI3-WmSMtlQDfMGSq z^oKViYQwxbmyxV9J5*cMLgF zL`}Dxt2w_SWy8x48?K&Y`Jz+8x8#b#+zSjhc;)82UbSnb%zVvRs{>}tj8NVFtF0ty z=6{Bb|1y$irUSGcU zca^4cuFB;O-;!hNCT-Z|Rj2v)^rq!$vz66j@>aIZTRTa!;^`#sgZ{7Y?4O?z>-PSx zYhmQ>togA!t1NE{e#qFF>>PdRwcCwd&vq_5DKeq{WNJ!ivSGa&_k`Q#>(1U3k)G~f zY*^a6E8H-8~;o7rk2b+3SYV()q7dHC9aa zKQ;5})VK>lUMHWeoM8HE$)TwkrM^wd{o1cH)fQH#J^cEp=&e)1`?Rn=C98c;4gWI) zl*)5hpK7|fJFb3u(OJ)zWvw#zUi&VVI(F`Y>8ak+8^67qy+CQT)22-wwb!&0WVhW7 zuYCKAHMT`ZMN?IEnDsVS-bW-f8rP zP2o#*5j-9q94ga0{obZP*_atwS3?#}n|a}Y^0cKJ|7tzX3Az;SkzBuI#mcFloPEAs zJpKBwOVPW|-W7A7dlcraUF&&v^;dZg`&~?oRiTcd0{3t4iq-Y_sakjYZd6-y=-QyU z`FYnaT)A*%LTJX@uA^>t2P0V*zKz|zBI9uC+lKv1%pSxodby=4Zq>V~{~2!o71$=w z`}N6F8};pHJ@eA*`;2)ZOQw(2G0YZ%eL~g7WNyy6V+i$or ze^nFTjQ3XZ_K!mo&#rv!cV@cK}UB9ws_x1V=-h$8!tE(!rvlFjfx$^q) z?YB=Jt?s|9T5`R1Ru${gtkPMrDP|>gORj}nd|R~s(v~{^1K(cOEzFsIl5g|MSKr%^|E738@M;=aErR@gnV`lHj!$1aM)Ydc%DgELe<#t`ODqrZ{|Jj zw(FRE=$B~+cYlAX_VCiK>oy$!*dK{qOlFz2%JuU)$n7F7qxoZ+FpD??p4u^mzq~x(Ibu{am~9+V>SJO1G?k zejzRO)%g`Y+rHZBv>%(d;8>)#-10}sK-(rplc_?- zk|yOQPCObKRCn3#ckTS$f7ODW%J={3Ufz;FGq?U@&W6I6{Fop;&Ty8~O(~9C_m@h2 zY3-ez{cFlaxyPL%muBs)*Pi|_B6@*hn#^YL*r@_f>K1*sTNHjcP~>Zx$KqM5ygH>` z1-hMhwPmMPVqfFsqFwH7XJwOTtW5m2)#}L1la{|jEb6%U>%Uyxsd!En>j`JKw|leja9y(IzsO)m1}*(gVgStR%L6ZJz#UqTIayqp=%MFc)QU^ zYn89V<=~JRkLPJ+wLiAydGk0$cjB!`!OO>fWkuy`cV4&}>aVtZML5$b>yXQ@LM}-x zH81s$zx+K)XI*S+D*Q1Ynq^kU7TG;(MH8oXKHr8pf z-})}Qt%jXS_KU7=*c!O(mGtf#pIrJK!k4Svp1$FQ)S7#9uU?*MQYv)u>MpMnvrd@( z)-LMlc>Ux*L-w)@SLW)?lQ^oYFT8r?=Qax|+dESx9Xpws73&`yRByIk{?N2J&y54F z-Zj~^soq{=_M9mfwn+rAtop0At8tfF)8ELcSM(RGD!X$fa+&RsFLw($P4c$PUEsK6 z)m`DR%hE5e^+zttu%6UZ8||?8met?dxP{9@GecM2-+Hg!akb-wqmjEaSVd(t?}bh~ zGFkT6_41Rer|6}vbDMJ9H08*xU6s;P&gSM^+&bmh+AF(CHrE@3Uq0^78z8uA(*}2O zTN{z}OYNJhuL-=o^YiqLw?^epeogS3vf|#cu3cisGX=|96?TeEp{`9$4v568N@ zd%N6vtJSq5)AZ`B)VSA|kMdTBJx={%w`Kp0xH&HbUf=qeu5e{*thwuw%iI0#Uwg&d z^flgl(Kk+zTOD-eB9&Ly-}|&JS5D*$*Uo60J=s5|uxGP;V~RSzT_t~@%ImD>E0?e6T=4Qg!%VZyJHM{g56)EG zD*i|7mEn}xeaznL<>#7zf0x769kZ}G|LrovUH+}vYp=N~f9KonyZXr09jssK{kF`% z$?bVnyQJzBSLdo1wSKEtO)tK5*4F0BBe$TcsXq?hS^1w~>wkvbUzlzSZi`JXbNTVb zV(JCQ+@0K|*o3&Nxe5bUr8^i`~1pEZpwd# zdpf(BxO4wAyed4nciPvU4xNU#>*7C@SOxxPNUSOpn`!rS=f3B+zF1G2pZ}|RS*Gav z>b0-t)-szIU&?@2Z))F?Zc;E^9r?3GK_es2TZo;Y#5Rp1LL>M?C&Bgcw;r z3fuo-i}~y)$qeRkzhBPH z=zS1)T19{URo$p8-Tqx^ceZTabNRCWE4wFkOV?*_o!uY!(!TyXDAAt&SoPzM*_G@c z9HL8h|NWA`TW`kWy!1O8PF!>CI=V{o;o^(S`(|x(zy8_NF)AxoMeo~|z|e~!q1TRE zO?`4uM((5d&diS=E?+df-h?^c|_W0_z-%G#BS9){4ELHxPefInd(~L@9 z|L{J>O^aWN&AhdVZF@%~d+Y3g>X=Q8MXM^)*DPLMHt*V1-|(ZT+qllJAZyi%C$_ntxIK5QyS77m^P}(=qMTcOb#MEn z?cgu;oxFol?$s%$$D+=y*{cp8Y7d<6zvRiRO_#4QpPWC3h>MWajIa zD{fo!%n3G|deOx;wDm&1*aoY~%N}%|yY#XCWnTM3?{HIy!=}D=0_)G4rwptzJF@(m(};q?0s_L>bc-0)%$&P6&hpL z2At(P-+l6hsOGT@{@-rjW1Q~fX38Fu&u+QZ@zv8b+11>Sw}N*XtaPyQKKsR&Cy_*v^#q zi{q-~e>pyz`eT35*|Xb}KdrySZ{@w@n{M`6H7zl*9X}Y8L{r`7{oEld^2tuzd)0Xs z0q>PTnO~;xuex&Y)Uu0#)7?!9jJULBt$4bosjGKSRq(vKe$_#tRU6*rrn@CCUH{T4 zQt!-hQRUO!6JOM^|M{@8{`dZ<%)Dla7uK`2^513VZkzMcknz!jZ>4UUlT$VY?!0*| zbo#C-!P|WoFl`FDe}u2!WXp%7Q&m-~ri$$QwmG~sY~iw?leu=Q*aH-P-HqFRb@#5- zj`~t3KW*FbT{>-<JI&eGd#5j3D`k(~^5px`-jOmT zCZ?h4v#)wd&fg~SChf}X)~cJAkIQX0wbS_SzIgwE?a|sbx}WX27i`OGTzWk>_Iuj9 zuoi*sUe%v6TmLh(yDM;cHC#G5SJU$D+RB*JtkSJK%V+L6^Zm1tS&`BF;A*uci&iY_ zbbHmgsJ^6>zsE&$ZfLaeEX`GNFJD+JS-Z0FQdOJkid*YGN7gy5(316z-0|hH^nK=A z^A2s)Sp0F*rtRMKQ^bxoPW^Rkb>xp}E3C?$Ud@T~Vz8Yqp2(H0vu4)54lZ{|ZKKtz zSIWH)nA!MtZ`Sf9%d?-XNeHc)P#tMFZ;@qmWbn!?zNr^C)q5r^Tdv<;^77wn$LVJy zvR6)s;#*)EE4QfG)NIlt)eBFPRWIHZ5z3srLCU@DclqP4qtRdcPyCx)^LCf!mR;(u zDORl>x4pgWl@-J?COvxoXs2FX=O(SJ=gwjBnk)IHrEmSR(P&ePnq0Y=u7)vo$!JYKTGWQu^Na$;?$Ug#oq zyTUttPvsg}>VsZ^z<&nYy-vs6-)#yNx|=%PTTNHY;IHfaFqell4f<1)nx%HUys$DO zbZW?*G^t3rTWx`Bj_al^47Hi}c4NI+*SxBwChIGg86A~gdHP9BVXHfju4r!c>spt~ znx?Y5zO6gQ6210>Q>92$_l^GyuO!b*&il_$aB6Ov=H%6h)v?Ag+%vQPFgLvkV_0su zQ0$N1x^uEyji73)@R4Py}fY1 z>s77|Q^cnIXSj6JTx?BuPhCWSBVS`qM(lZMp3V)CH%tvSmK`ZsJ;o?Z!k=i;_+LT8TBSA1u#KJSN2FW%vG0{q3U3QI}S0rY)IsN8y{L)zlYF z{6EEBCT%EsTy$WK7;jj9z?F+B7iJwzO%d?NlTX|t4&-}kThl6mAoF!s3XUBDgC<6Cg~y5diFVQ(DgmNXSdH>?H=rF zYO+MlQ^o!6&Qo9NpPEid<( zh7YbCV_eT(`w|lD@Oi{}4P2ebzb-gTh>C#p{WAbDC zWBg-`^f<-0Pp!@j-!iq@Q($pn+|koF^iu?u^yp_xiCk>?af6ZRkU(%!7BBOHS5|Fn z*Dlz#E`ZsgbYj)s2FGtPYyFPKTEBV2>EC&VFWc*wx2wC!`!&m#wypg%qxt#726mD9 zpGr9a(^-Tk^M?Wm}tcIT$u_ zi>))8+MnaJY15{o6@S%#_q6O?sYMPq7NjdU1%#D3`CKcDw3(KAdDru# zk`q@Ldd?|H&babxUTE4@#_vypyq+r^Y+*Ayu2TQ>`M0)7v+v&Dd4987cn0gb`e(Xf zP16IKgDz-gbaH;%Eqd`q73)pb{N8`%KkN_X_cbqgaZQVtJ79fO-1TKk0-d|IX*RuP zTjO+swR&|K^X6Hh6SA*1ZE^gxdq&5a1J_fnQ#<$c`SvVgDsDQhw)4@O%HsRBQ%}0N zn;y7R|M~8TANAQ$JCcj8Zad4Gywywm<<+wvKkqvKW!<{2{oxgXKRC3wBws(3_7C49 zZM5~+{Itu>-rK*tN;$!j^y>AY{F1y)rEdZ@hxs|ai(Ka-$8q4%jf47z8)xpjc*V}# z>-nA=3NcS!N|%@WX7VZ?*nC(jraJEKE!O+SoU*eYh{rU|y^)umUca`#;jiF@)nE1> z`^(>QuQAu0amA(=CE07bFZ;!EU-tUcKG}f#&W?q~*IZVM7R@x%o>v+3C^@{OwekA? zav|P#akm%xtxY}Wbk^NiV%E1Erf;)q_Wq1bJNexxW>-*f-kf*m^tL_JlREG-Hh$?v zZN2F)r=R=JAofM}+6~2Bi)&Jx>iJ_D#TP1_J<8xDxnOS5j_ab=EEZT#oyEI}-;ckF zxtED?7bDZtg1Pz$-}lD9d9<J>Fn5_ijM*J9EK(+wRMA|M8Dr z{dNDTzp@XF7l$?84obhmcw0nj*-nI3j0!1Q*N@(HFnB%(B5=1Y0ZU0S8m_eR`^^td%3mf$(u_|twJYi zE_?dI>crH$(o-awS+7nji`1>SAD-XW{3rR6-mc{O{dYG$*&?txvOBeOVz`Fo(Q>^E z*QF;6TAK`+HXJqi_GZ&2i5=fge*Vrfz3jA(@RD6SBDYFMrnFCT{T;vb&ZZ3~+3#9! z+;#0-)Mo$W`%Cw^{AXzXbM)HGb14@*r-T*yzPNgOfzw^1O((RMTbiu7uK2R9pVQ)i@bH4Tu;oqDZt$se{A!AhRykXi|*!s*#BCzxMEM=gbDJF z-qWxhDVLb^cCn_3-rDJuGWT=jn#uDgCcemPWc0Rh-;o^?*m;_%*|pmt>_u$RoV;0j z&Y^EF|G4`5)!e*wo#9&l86L#1|13UX&FtqM@^7M~0yjjiUaWLx>fGt&dM_8;S6^^x zc48`z92U5wAhV$od#~zyy>hK8??WlOuqF^$!V@acBq<3B^W<8vp~FYKH6RLxIrI`o2Jjo`%my@NYew$ zEm%*8rN+hzh1bn}o0{6`o3Z)m(ekYS443Q|m)NAN8c1Q1L51gkDR!diV9!U9s|w;jinj zw}1bV8J*_v%Kp(`_R_9R9~vFcGEY$3nbLfrLhZHb|04``f((qzOsvdItW3;oEbI&n z42%p+g3K(e0zwJ~iiQqs!XipWj)4J%#*Gt2#hmIBCoNQV4%(=q8k~@H@FIBGF*75h zJ>!%j>7{-_%M$}PsC~Q5WtpC`($SRFa%%J@>xFKG6Kp# z%y;Fdl>4^`mrae{WK+0(y-7jK<;#bA51MC&{;r!KY+ZDo;f8R)?da|8GKQzUU%H>* z+`al;KTCZ@$nN5K3bS`T-p^9k?7v+<&S6&D?Y@8Pu9s(pth{Z>>c3s4s6{y7M(FW6 zi@TRoDiVX=ZmMD2qPB3us=q&;Pcxq?!)TmRvCup-wEyh38q45A@8|Lh-A>j1DV*Trocvq;`_q2yeIfhSEOa|@uJTZpi$^11pbcjaw9IJF$yC!!Is(CN~asY}*sdtC~fv}Hw9 z*i;S{wp%aW$XtHd!gMKoTX00!)TNnGVNv*|EfxTP{Z}bXU;`JS(H;J4rN5;)NpuJL@3;VUEf?A)cU;#A9x4<^ef21_q=f6?ltwcuHcyNH6Qp=AGsr+$~G%?#D7 zJ=F8K-gk*cz~T&FN1pojn&l}^Ezh@iBuA7<{we?Zr}jU?BD<{z-ILybnfmwJA$z`m z-JHkQ6gE9{{$oFP@`i>$$;{BqLv|*I5?L0`u6`)ba-b?tH=U-z=G8Q(Ph1#;JZ zH83q}^}cE`^>0?+=A}Bz@A(J+))5x7SUY{+vzNA^OaE^D%)MeJV{*ha&HD5;7ZNUA zG^&5I;Y{!&gN>!p%RRN3zVce1-Zk%ST+5%uf3}@hv-LgqmD}O>)(d^2uOi>oU$g%k zH!U|?%T&7V<29ui{{IZwm)35TIC}hWt+aCE*(;)MFRhhxH14^b2v}+S%-L*$yNlVc zSF`Vy=T-Bcf4pkxoBs?s7nXXh-?{wVhWh%nQ;&A;ToK`Z`}5r@$ElL-vQAc0v!iZp zTc7>&OY5udU1B$U-L4p}a0q+9vZE^E_N}kg)ypr4u2~U%VY|`>TOVz+E2*oc{ypGl z7CgA7(EjoE_0Qk6FD{5b_@5!r`BH^~{Neu$MQhgR7W|64%XYxIVc}edIaehQwQ@1F z%51rCqP{ca#;x48h1<4Dh2C7WV8YrDueIYJ8nDK59L~$Co|?(@MB-Wphv8aVrj>5J ziToM%yOuk($}e0{caY6=nS=A8-pNNE%u~);89X8IFqeSOnT0!^f|A?fv({Xzu9P2o zd6Y|$)j#3G;*_UaMN@5<8`1+srIjsC^eonON-hZ5om0=m&a*P=(08f5$JQ6FzLRzB zQsZsSs}1o2`xI+D$$;=j&;PefxQKRYDP zbG}WxD{9j`xi_WCBz+gV@+i`G|N99cmTr0e4=!sv{?=&a&GspLFyudPBiP5BQFjLyx$m+n^mEw$D6-tVcgWCia|3c z1c$PIJGDIJ&zy~SibW286c1eTBg?LS`LX^#SN}df#{cKiUhVRz&wSTIZ}mJ8<@>{~ zyz|t8*M~LcK3|q-yj|7rf9ltIs`us?Z_ul^utKV%%_INmDOP!HwRmblc zSADfFMby5XyRfwQ;@$R#tnTLD{7czFUIZMv^|$ChViqHzHe3kgZd9&|MmaYikRA( zmX#VPzw6ju-~3#6*UejP{xdjiVE$-vnm2w{z2?eQZTYgIK3)4ZZQr-uWHl$((?xR+ z&$2sOrF5(Hn3}Jnl}n2eS9_h+q-aL-ZO%%oJ~gE)h15UgP%Cquv_9oan0@np$!)o2 zyA;;HlTEPiv0t=%)6Na+GOh}Q@xPRs{_Wq_^i1|mhxe-Hx8LPD_~a0ia46&So7O8r ztrt(^+P_fm)%D`P2d}L6`<1kgyWrLO3L|620GZO2v!R@b-}0h!bQv?aJ))fYBmy6Y*1zcsTIv_H zxI=CIE;*48UQ<`-=0@Gxx-~oN+EwLgW>?eR#xP`Ir8CHs${e;lI_Yy8f=4%o>sW zMQ`q+<)_L-9&;^C+Iwj0)D>%8v$P}YLtae?HE-uLznZJW`1{?8u9rs@-cHrrtf4sj zmW;xRKAC#qV*bOI|78cQ?7W&fW6ANA>Y5>$yS6%9Sf7*orr?tOk&yNNkJw&yF8R-} za<}&GH=RLCt+r~VKP%we`eM)F82-<}6STTdXynapVd}fSy!@fT94_87UrxVSpwM0y zENj3fCoD&2N{i5CB^ZTm&^9J7vWjDIU3$dK9) zR%_$9R=#%XzD-?Iz24p0*_F>)wO?>?Y3F~210@ZL2@%~n8`VNqRcXyQChIm~#jhq& zsVna?&DPp2czqMEI`kptdHR_S++dEb#{%9|+{QJnb{ePteaXUGY6`{)^+O`T0T5RwUcK=2;wfTqs-4`dMiGO3_zc z(?d42@9OM7|7NRXg!ziRf^vtSvwwu&+p>G-;zhGf{xi&~J({)rnf8S(dA+Y!)i>Es zSupdi@yn-@J7wFAF3pmaEt|Vx!NL<^^|sZYs!i_xUJ)+JtEGBC{f}$bt$SQ+*thc} z+MhH!^F}PG4of6%iygv^sd9};KhHY$!A90n*Jx;Q=`?7 z`JlGIv72!>0vG?e#_Ri4|EA>B0>OYStIyb7`Zs-h?5w8kU%m-vefU-KtN(tg*-2mN z=Pk?ArIpvb>ph(L@VL%hx5sywpITaI1WpWSnA(tdZfpJ0cl&qV_{Po}G&2*_{Noai z@LKBc;e0^zrcsCcoi);_W=vy|&P$AsEzlA#5&&lkL0mi#UL z#*OxWGkp(y6t8cLN_fBM{Jbf8ExW@P6D=pQCv@(W%AQh~4#?k+8Mf1T4-;G3#Aw$+R>p_?N|vz`NEDom#mp>gDfxUD>LeVVf1S)PGLV zRE=Cqw{x@G(%Xb@YiwB&xWQt<6PvfiS)?h1KsyP7LPR_Y5Yu9e9*`7pToI`z_6$5Kt_hL&;rM>V%T}3I+Yon$5bHu|em;?c-RTi=6^c%MLi1LY2P|}LTF~Ap z)o#2m#l)SZ$Tno>hKT%wi{Aa5;C#GlMPGxMNbUo-`p!KSe(%>=JdU2~60&l0nEWP= zmvaM;+6nJoc+`qtc(+!^i>$-np4mnJUbraWp^d6#h^z0d4Uh8=#oy&qKJzrtB1TQi zUctFZm&@|e#bdz}wrB)aUaIJwvq~gzx2XPv;@SB}&F3l2Ygcq{S?Tv?mGZ(>(@&lY zS>Ju4N_;-gjc=j#!drsh%}}TiSRC_1-|6Er3%3=1p@A2@pZUH$YV&!SNMXpEc9xYv zOZ}CnhU9W+)n53c`t9BUkU-PZQ0Z3hUHQ4pF@^peU-WFkwN~8GioNjhxz7h){kKo1 z23kE#{Fi;G*YK=N@qzygDyurLbMt=wQJA>kc3pX;YKWiP!Nh&_DZ27ar>2yinr9ij zV9_e&f(?iBxwDUTUe(HTTj?HhFW{k-m*!LH*0wiIaxypWRrdBSZwgr%IW1v{CRa$S zR#@sxuPKk_^d36=&5@r?ByBK0K4D@vhM#wwlQ8xkdB7c&YkzK9c#o zDnN6c!>atg7qUW2{rf)63Ht8NBdED`HqEm0ufgLNg4Y{U9O0Rr8JAd`-r6=$H zP;_eL);hJ&o#7$(vM)C2AuN~Pv@iU4{NIEB455G9kJUesfBm0>YScS-%Xo$ z`to0U@pyq#XMZ|I%-K=5Nc)Pxz0+?iD)fqv)V*F4vNU{UNU7bWeuG%;bxBnrUDZwf zYYp#T5dU_3HQ&wppWG|H_SBaLm0TY38DiJ0m_Zt?W4x zD)3!s@A1^rUmo;H28Dd!Wjj+Ma_$yyTi@Z37gIvLw=|STbWM2`GL3`dlRxLi`VXyh zmYS^6za6vE)pz?tt;LTXS}>G-1l0{98c&(d1pr13v;H!T^ z8@E9Hp?ya?{!RTR^`BwVZ`t^h*1UoHU81F&L-poIt(bDJC%IgImxT4s+UqX0;dghG zey@|!+96fAX=Qt{a7#hA;eqmv8$x#1FD$MME<9xJ8uI>#E;nb3>0R|r%iEXwGnHMj4f0}pOR&wbgzEz}v*Ra9#frZml|2>`f`{#c#Evlu{YMsKDh9z?^|H*7i#^nwfWu- z-#1M!XE=7P=Cfw8$`fpJh@7?RLBWm1`a-L|DA*OiPAwo4=s5+ zVd~|`ww2+!saL8>Z7lf`-)*RvwIl3l(zjlB&yd^o?S~RoR;^EdCB&k0KySl`2a48? zS9J2uz1*X6h^>T|;pWM|KU|v*)?Z-}h!y7f=IgX;evm}sgmVA&vF|25z5Hu#7T>A2 zhnCg8J#{>BZu=TX*V5jXEU$xpHZ4+7YxUf{M%K#oMf=VLQ*N0^??|pcq4Roul3bx> zUB{l~7V8%7H3_VLD5i09Wt%%E2kUlDzxNprxw(>7_*NaVoS&IjcWP$(HlwoGoO;>) zo3g{?8uhvQPwd)TPt?$%b!v6c zu2z{HMU@?!L)CMZcU5@R*Lm3+Eqgmbd%>gCw*M}^*=TFmr@3FezNE@eZRXGPZ+8!(yxfVdBBHiMU1qc2t~_~*cak<(bku(j`1GP z{Li3rs&|Eo){j#bi8EhIzS63X*EN&>?6)fBWw7>&nvPo&yBd~VXWgwF7MAKWGsLP- z`ZmMV&f^d7du-jNChB!zP2q6IyTdFm=(Ob?-FKO|DxQ6+1z>#!US|%k@(UQ;s>k>Atv{YiVlOqWX1z z-aX`qS)8y^6V&7}n=SXvOsYTSZL)Wm-2QE0a;vq<9Md?iFovuUE9ec|8g~4^58=+j zDS6kYeT%5c$Y@_x>&|t5)$jXkb}Rp8^H}H2zk1`{LAhn~uW-Iu^(ZUk!R+oSPA$R$ zPkMzjT~A*BRp^x(Zt!N`?T&v-3QPO1R-do`bA8u;hO^auagV2E%L*;^UFtQ}+-$DX zb7$*?>&myh5Hr_Uv~OE^3R9o*Dic<2&A8jwxBO=~SuN^+v39cHUsWD9jsFa-)||0> zZ*_A#vy#5c=ecFYPWMgb*)o5dPB_^JCTDGpxpyKd`_!`U*1M9rrwB{WSY=VxFw;dX z@jrvht@_Boo0caZh=z0B>e?py<>EumEvIkzKTTe^BC5noCROgleeQ^Wl{4)Y6i&%A z@sggRnX`(+uSEUbOh2z=MV99daSx`Nar3$yOF5<`l4>^Tx2=24!tle_)1EFnG*kO# z#2Sm0E-ml=C>kxuFfuhY4~eVjb_=QGI?NQSS}W@1U%jb*OWwx0>?;!u?)?or5X*kq z|Fy~8U>n9wM}L*A_gkg8TtNA(xp;fn?mc+h~UCnmpO4D-Bz^q)Z z79SmB+g$}=O6~hSwwf<`)cpO;st4y}IDf5L!rFO+ZA-%{{!Tf@qTXAxAGYVrJs zl{VO0sT(ai`|M%Kt>V^92d4vnek&-b+nI4qjk$X*VPo3l6?0Cl?mo5V(9?*T7)I_X zIl{sDS|zi+*e)&g?NXIfOq!9%wLr&yl~tYi(pi=J>~B^@K3m6d#rEX>mGy?r%by&n z^S)xY>|kk>+*z~vcZ2hiW_y@!=Uy)V&c}ZxH+RRXQ;XI9Gb~E(-#YVz@RS8Bci)K( z>}QdhxQD`r8N`&QCy~47fm@Rx?G!^qgKBU_`u8V9AIXZ z>e~zM1S|@)S!%J|zVuQ?(9z@>r{?RtTY2&D!w-w*>Rp(vdiUaL-zLw{jj`II9+y{q zJO0Y)m4uBhPx5Ss(;-f?Tbs*2IAu(2pXGN({9ei59o(E)}_jYQNTsmo`klPifqdE$VAtv#7WJkc`E|56kj4tUVndIzy*6Z1SeO z*Bl4GMz-iwZ~hh%DZQ{pH$Q1b(cwocuPxUN)z0ahH1lq7K}P86ZDxKeHTJOf9Q8PH zrQ)GTp1`ASX|Ji~8ZYv8ZoVO>uq?4i#4PeI*H)`_bq9l&{AXB|erWTQaxIg~>w_l# z@cMmj)$f!4879@shAsG|e08{z-y_LQeXfM1@;v7Sf$Lhn=WAKhf|dv8)K~DWcs?(9L4;<| zQoorO0yjDb2fMURO%2$zBJhXilU}2x;+hY+X72NJo9Vh@V`{)cr+zaLCBbVYXBWC# z%W@l-WiQNeIwcm+YZA@TQgdNev+(UrWfStJx-NSvv{~m=$cw3Fa}_Vldct)kpfGZx z=844*<~gkV9<9}$@{aSe=26-D;A67fR^P>U>^=HU=arL9D))J7ADtIFEnZHY$+XmO z@mVWy8eDl%E96$l=lo?MYfkKxP4t@UcKEPd=9QcZ^(GVEqNVLFQHH(bN*>=}z%Cb{$x8331f5-a0 zgWS@+y2s=G7Js$cqQ25$ov8GtQ?I6m$9&6JWfr}9(e+DTiVysinfjx}EPQqRjO**Z z%LT4t*x|H4-f!J*lP~46zGji(scyH|_1p2+{}Edq@1O7Jx97aQW8`Yz>DqDYx@K30 zgj<{5^qmr=opU*@>vtA=P)q3sp}Nb*@4nEeOU~P;dM{g()~-8M+^LCNRN88>a^>k4PT_Rr#@J*ifh;P zyt#fS!^3XZFWPoTc>hQDKN?lsZ&ym|zj)CemHvH)ww~&2tLv$uVzW&`W0yK#U2Ded zFBlrLpJCH1 zEql4?-J(SsZXXcL-WF53{%Y&}9|ymS<~!y)ue!d{c}r>Y>NTzP*;n>2zL>EkR57fp z+pKPBcvjc%taW8q6lZSddiC13Y0gI9KLN{D$L@NwYTvC@RlKz-VONi4zR+8<eY~mR_f+T1hue)-iiX}^AMWxyv$OxbQ`g=sZPr!GZfpPIwdG+v z`((}f?V+)=bj9X1SXbTeTAf$FPAsi;b|P!w`N-x**@t2CuHL+PD06#g>Z;u zF)t30^;K_kF2)9|73b@E?K<&US7Us-$Mq@l9raOKZ?1-BUs<((;r_6@8MA*Ungly; zZehK3Givpl>#0|_Wo{0wotj;H`t0_Ho431$+pRX1cYd%Vw#4}CH$B172}cVTA9S0Q zvuIuFl-HYE3*)-FZA>>jipp5Kc`3txhLj@PsMVsi(_TeCvk3cs=I+$+n~Sce{+e=g zdDx~6zprhJY_31bZ#t!r&pj=xhUv_zx8Yp;J;D3a(iNUfsO|0)6Jvf<7S!!K>(!2J zUuOH;2>-hF#q4LBK>gmEsdZaLzg=GIng2F4dumju9P7?YueLhu@~aXJ=i0tAJ+EuQ znw?k00`yiLsN?S4FFG@3tysd{siBL`iDl_cT>o2S{=+Y!ukT;vt6wI2GkeP9Z#nz! zhOO#)SXOpr)#cRV!RL0JR!LisnL68kSJ#58krL~pZl>s5P0Kwfq8QZmU{&~|9T96b zTl;6NS3RV&H8PYr|K5tND?+6W*RJ@_;4=A-)~UHsTA#jbdCj*hf3ftgX{Ba`rKUG? zXO))sE_K^8?eDtfO){a(SFLoP)yLkMxi?&G=OvS8QYJ4pb6k6Q=+3Gg9pChXHtku( z_Bl%7!=HnOaTkMrkftp2mNC z{iCmrf{T<$lo|b%0+>NuzmM zYWTPqPI@eX}js6O>0A$R?Xf2F7~_fwG}@Xd@D69E;r$wqU}2?cR_6P zm6ah;rTT)R@41$KiOXB^ong*#v#IO>JA=)0tUtK!S+hzY`=IDM-NO?orU(1a=3Aze_q{bWadT+Y zn_b&ZT~6DrUAOMVZsWbq-oFJiGqU$*hHiTwdQ|M<-9HmouZ?x$SzaJ7Kr+d_k=^9jS!=^qhu(@^y6UZNXy3&v^_@rWZr^b+ zJa_7^FSipn{np(3)m4V+?wPyRQw`Rt^e@`vuf5`-bFJW#{!$ao9n-FCS>0O_8Mn#n zvr}n|eyGd6)g}LgMCZsJvY1&qYu*#7`wT0LuFl(*J@vW9!!zZ2;$g41yXWjW-SM)< z*lx?gz`vH_oKIxxS$k^oR>yW$X1{$D@==$5xbG9?5-eKRe`o#UNWrZJIo^x;6?Y(Wccc|B!O;@wpQu$qzA5F8p z|1!#$Mg72INn?I9*(rH}xqcgD~CGUw9YOwsu6-hJ0~ z&b(w3zO(&Y_ud2PalU?3^ zZPkgFC$fJhtw=K1F}wcr>WM<(m0wGv_Z+y%b^Mpt>|c9NY|}Woyok4&FYeX4%d;Oi zoyom7SMGyBbJp5BZ%i}yUVBsK`2N|R#Y@s2>3%NQyyeT^C-?l@p0@Yiudgbps5sxe zYR59Wr;#e^x9S5^>!q#xRnFw`3-0awC!Y9Al}AtW+++^ln{mgx>zi_ZWY#m^R9G!{ zuR3q#^haBwa1##7TK$EtXLI|un5hQ#tYF{bdU1#8(|chLC%$`I zb5zdg-fu+}za2Y@BpRgmF!xvl{GM>Hi!bx`a`OYNQ{0cnI&MlXx;8&)k&xSa;nX?% zmfu{JQ7@ue@gSs9@C(jpd%L|SEv-N$cPG{%En}@a*-LpJ?d)m?T z6YL$1Pv4$CdocZM*x#&G4K-okG`(ZkInHda*nHD!V#zy)SzQa9vnO2Lwn%jS-t?u@ z-j}-ntv3jntKGdU>|1o)<=s>EYF{#%ZhQQJb<;hY+gJYvcK_)*<`ds@xb5@>-+v#C zHa{#_v8SoL@{hvuYw1dBw{3Zqz3sN=;RkK;(fc2+I&Z_DVRmM|*b{rxqx?6v2hF`5 zyP~Y~_AVP_4toiES63*R_X@nhu% zzlopXkI&Mx`Ogq?tkCrCbLlgC?_BYFSpJ{E|I7SI+qE^`p4nO*_rBI$Hn%zg$y zcx`Vhs(Wht&zC88d(haqZrLaIrz}503wg9_cTCu^@do4DBmWsxMRt5Y^6hNQG9h2v zZC?ZuQl_rSGv@6)yz`uxGPCtm0rJ; zzdFvl?B(2mcY+~*&YsOKSo3lFt$PpVCP#f_UvxpMbh(zM#K-ljJQGZsqdY_BSQ}>t zJk$KR{;$cq`Xg6u`)%uI=e&4!eQUd({hq4JNxPgycOQ1J_>|=}d%3;pFSm3V>m5ga z$+I>c{uk)mF^ov- z@nPqi1C~?OolEps*PNZ;%58nx>F|Rp=})DbeOV$m{#q8SCuQs$b8$lZU3V-eLfw&`uL=?fpM8<7kjSVtkxMjy*uI%lSgmNlccG8 zCr-I3xtQT;zEtt|@Qo<0Ydd;AZ;Vy%c*)n*zIc1%&BTmTI=AY$S*qk0DI7g+ zQW;xsJd5u|Kq2$V#2eRp-ZpnGyq>x0@a9kb^7~8HsM*^+zfgUR{nIoZ-h$jCh2DE) zwr*Rce~NFq;n9{OA6%8sRy4Egg-4t}WjE>1!uDTAZv5)f7pEWo^Lf>gM+W!Re%^T& zJ+&_3kGfk@l=8%%-SQHpviH{Z_f#upovBLv_h7cT*O&U{XW6o0?L~Htn|UMN98B6E zz{l}SwcRvJ{`h*k>p_0abH6Fu*!P{;t+{E{*_$^VC)#P8Uc7Nb=7;FEbJ|ln6~9%i zl!*8oeAv%p=N*3br`B&~+ATJk6ebZ7nqCTlmzi{!aC5LwNao>1%ENb1PBhh_K_q(!p&skDmebS*~#p9B` zvKZ^4XYXF~~#IrYu^6usp~^Bx@YI`-YnN&LC+-v11-Uqkfl<>x*8mCkLJcDChk{k63V&+bUA zd$&a5MZDAT`!`z7mPS1cn;Nus)2ZJkQ5sdw+%wm2b!A-i>A>f?XDl0Xg=gKeHr^q# z+E|J|^^6&7>fwvKch6X*|HikZ=TYyRH!Zy)q8qu)F7TY)({Hls6HoG|@8U&nHVUTi za<5o4oVPgR7U^CQx!pfI=AF#pYrgmDP2Xj|E4r~J@0HJ);>UaKGex{uzAu}_ow)e& ztADFr@RXFvUzm989ao{dO7HhiyY}5$qnDeU=lt%AdUYHB`5TWeAJO>JQ@!Pkk4*vhEViyQ(aRQ=JoJ)rrO2XtcC-G>o;Bl} z_Yuo_;hP^qrYmmETbs|w|(A1klUT&h*iQk2E` zd+Ijp+FLmSTP`0m`?u;vO~v_rv zXAmZsGv@-6mr%(rz0=d$eYUwTzB}J6k2y=3Pfh8?>4y58kFyo`_E+4#v~2OMJ&V{3 z4{wn6Nu-y1339%kC6q^PS9^>=tJwMc?mAxw!Y(l}BP) zmWjHHqn-VO4?4Y!znNRQc7K;nOWdxs`m1)98|E&)zc9#EfpKScaJ0yunZ<{6W5wm< zT3%KKa#ne^m_9mp*>#@Xxh#vTB_)-b2bK43&pP_PRN&|Syu?jLb~7UW#4PXpv6J)1 z+m){_GFbJ$)KQj_vh!WPaq^9xpbcBkniR*LUO9VzuBg?d$A%R*lXa$R2sYm74$a(R zeep~EmB>3XlI_(F&pk8$GlYk;>t=f1zPdeNYfq-0_`-s-Z~cmo1wEW)w0@!TG8BCo_dzAa<#8hPUNiTPgmcb{$rKf zpTh==SL6xLZ9lwq_6x_7Jkv9CtsnLI>{~t8YuVn7+g0n|$j)?bJnEKwBI9OJaL5~x zpiN5bpl;>P^TWa53sqLp#Pt_RDcQ89IrY@*b zy^P6-<@!mRPXXUNH#+k^EpVR@toDIRU;kL*+&SI*)Gr$yP2Mo0(tP5kHG0#JfWh)ka(7aLCb9|SY&D8@8tHK_03m5hu+umUx zDdRK70sD{^Y^#J7`7SHqJJMuTKX$u`uv~$3#1DzUMebSN=Y4;OIvxD{o>V}b@_9r z?~r?vGR@ucc(}!tHHX|ix!0=rmDMl)5R~{Ki1BGe!Hd(!Yq`qAMJ1DO0U)7Jm$TF|EdHyYu1qSxq)#k`qmTMD1LYt3UVfkKFISY(nz;4a;30 zG23nP`p0?B=I)iuj{&D@GiKGDof3X?-Q9OGmYaiTZ}mM|Qgg@e?eizI<&F(@ zu8;Hcn{%YtcFD(AJ-kz|{AIP-m4c=*Ng z%3DA8Toq`n7kz44?0wW%XU{CNw!QDxrAOx7ZPw|UI`zOO*0hquvtMP-#oZU-$h9}< zTKs6~$6|ZY(x%BvQgj-3>^O5SW3BXzP@fmFVUly}C;SM%z&qhTgExDnUB30?D78v4 z-*fTilf88Er?OwKD|-IRX4^yM83FHJuUE#1_uj1UdFFzO?IbAYzVdo3Yns`G( zRwQjo^86Xij?urfudF&8esx92tNIsPoQ;i{Mft*Ry8KvbIp-5k>XGO}r*cp8)jXJR zN-BK*o$Xt)9Sa_0UNq8RDEp=KAlpmrZ0FQ-6N+_xYK)G2v$%S3kGfHxOyb2f%e^NY zF2pO;U)WVSnJZ2@-SYURtl3??>#}=0)Edfle$3JHdDMDyYtWZ+moI(B+|36k3$sbp zJKcFwHpk=2Rhe|JF;7WxlEmT8(_TN+j#|$RJaXu9-CL0vo=cQ0wad-s zeYvqD*J05g0eGyIk~e_-A8{|sjh<^QbvBFb&>%2VDwSynnVSB`0=t#{F@yt^;7yw)!+ zxy-dmZqmV>j}Kc$v?oe?ESdVg`_=POs~sJy(@vPhtQM`Evg&H+1o3zE_l#}#H1+XV z>Mz_`aACcAg;ILDDa*2u377NU20!IdR(QBLhrj-yxghhBiiywto_0-B7x@0oLrU&H zLsIMJph+gr)=hab*F+_)Trbgf%Ec=R%XjxT&ffIwTh_ukq3ie;N7QD0=9YS?tMF3C z*S+wbsN(y|NayuW6`uZkcdkXmX3KVx6yFM3!W9J*@vw1{8ZV#;H# znqc&;#$GwMq4y0w6%Zr?p?I>QV&_3_0G;K^E-aE3y1xlUEJG{eD$8@j9o8twp_G5`Y!KPyP~>Niw^JN+tuN>`d%sA z3Y+8V^i%1z*@F4*vSoy(8Kf>z0n@;f*FXuc(3{`9xFhu2-7XZtNK zmU+Dqy`jA!{N&Vn&!35HZ14Wen)>BeUuM{mbiF3^vd`H(>GA!cXVfEpO|vcy+HH}l zxR6*k&6{mt`5IR=Nrw_I-fIi)Uhib6xw>3%MKQ{j4f85+vvXOc9ivv&_iz{ zV^*~Wtqi@b71w|NoAw;z8Jf?9jeS}d+vHt5`*gYKk%$|&9!_CzV*Guor=-?5>2bk^ zdiGfs3YzIf&t_eFX7V=Da+%r=_MOXjRIG86ioD&CJ%9Gu$xDOxEH;k2KY8!oS7s+w z;~pM)ylOVn>FK5mmwYl6=kh3wKE8L8x$e5Gkl*WWOpBBM>(swBZQYFXzv`!*(Vks@ zPBQuHG;QFMK%p{Xf|l zjsFZ)TVLHzdwby7Jpu06ci;arsP1g5_ug{#d{9#Sw6&?5W~aqp3Y5KAX({WMXd!V{ zMZvz^baJ%F?8`HruKygE`1q9HtM5NnEIeX(=&X*2yui{!39TvR=C5uon{+XJ-^|nb zi+VTh__;dZGq+9dTbsazd8%q_^otoLf1A_!(e=uP`5$fyFSSu}oP9I2N5Xx&>r?%^ z)47D|wO=UzdYrw>U*JN~EZ4Z$r!p$}%Y@7e_wL)IbLfx+-fYDP2gU5;l}gG z`>Lv8880WrDX{C#=wEpy@BF!&vt)GKGNbQ%Gk#PIN{|f>j$W_((#NCE>O#eDjXvqc zhClDI7FjM4{>b%8Zg0>?3~61%u~8{A2rhnK6tkH z=;>Q+;${KIuWos^zFuGOtM%mMwXYXO?Ca;rHa9-ad%M6`U{!Ei{-y4mjQ84-?aG@w z3Vzoz+ikdIu+hW(kdo0;tLs11Y!|&RRL>I^7g#d0U*bdHaUTB6!CN0XQlwovIN4NN~OsD^$)5dd7Bqwz4y_#WPmGh%~+TL}my-Vu@Ezg;EEXqNAmh-Gq;?4xaF5da$Sr4AJsa4ChJ(P<5&JOWNQ4e+EH}5&^YsB*v+KPmZw^@ zbGmukKOZyud3?6u>3f^a1j=()oShLWQ@nbz=?&ZD_r4Q*4NcE&(cSScOUI5S?duW+ z#jbWC=f!2S_lmt+;ud}6SF!)Jn0n1~ueUyS5H3$Vn=R?q{JJ{O@<4v+SKpkqWpOUW zapBf6&&}$i-+j2~dwKrkHHY`v)U;(P+)p*wap(2ARdJm!IS!{C-mlWjx0b8^x-|3e z-f$0Z?TqJVXEfc)V*JAU>mc(s!#lCx7fJn#Hn>#2^UjvbY26|mf4O%xCo8|yIDF2j zzTj=aw))SZCDQgRYkpeJ(zCJcNM1hkM!WHb>)Q@2uJ!f$WLdPU{DislZ2jUN)!*jl zFKU)LqxNUR?z6R8TUvkG8*j9{|Aap;=IaTT^~>*HZM^^9>CDP2n=ZQdWELOj?sIRR zx_qarN}yR^UU-`6qxXwCd(Iq}VvCy3`rPLAEbfeYne6$uL!Sokz3FJV(!nX2=gB1R z)2byz;1YhOGZ5L0z?mf@f08tzzSDZJ2m7U_+8t)L-qz zdsmB^DYM;lPGh~wu76Y}X5)^Yt^N8ba!)Vi73@4x$LRGw#Op%c{fFDd_1(OlA9(S= zaOb1{3`*x6?$@u`^roL*WvA5Radpp@Z*R7GYBZNsmn^=C}li( z$T;koWmszGzoYld19F61K3zAtB6!lBO`hw-Qr;z#)6V#J_;*Xn&p+H}$<{Bk_mz*E z*OQ)I^A3i*sfpOrqjsaJ;POuEC5DX)p7Lf#FOc@%e$jDvDPOf*{nLvU#;?=JYCA+@Q`Chg_OV3I<=lzxZjFq%znyNc{=k@b2aE)QZI`rCs;QI)&DX=%wvkQ@@MN zW25EVX|-=EIZhPc`t$Z`|7*3~->NzlmmkLL-+O)B-N;8@gle{t^Y7jBa89(M%aec{H&9Jb-3 z;QcFSt_EITsnvV=;<0D1c&9tL%V(>ctN-I(8u@if-nxygQCb&c3wDOQIccM~^Pf-3 z6}~5T^#0Xvd9x*MZJghqX_kxgye^tWthg@YxS(Wy(~=yBXpA!2k>zA9xOW1M!m|piVG}PbL;3x^iHi>4YJ zzMWZpJX=zxZ2kH9+UjDy^3(!)Y}y; zn)i6y{FS$!{W@>7itoANE|G8bpMiVPaVLv@o~ds%=C>9~&T%-Im~uxfAv@;MtXb+0 zvorOougjdt?1>OA*DPuiRyf5MYunW~-!QSBK}wm8-?Dm!PXn*id|@eH-xnh4`x(yM zV_O%o>^;LWws5Yw8D?Ki3%`xu(_xN~-hW)1eJ6pnT-U_=RrL=lw{mn&pcUAm7w(_pJPF?0C zF|*#)^D^)BDP?d=y*nIzs$;hhN1xf`XS2^w(kbR$TleHm$jq#Nr%N5TEUq!tK2_yn z`*BOg<6G}Uoh9wU*iJ~?Y4})Od-~*J8@G4*W?V*hJ=TVc^du+utuJdj&8qot?b{XK zS~(K0E&dn0eaVNJjHiCotFZ5SQm3u(H@NQU#lX{Y0R@pW9~tlZ8xSV1|CRUm)CsDQ zg}E~xHZvEQZVb4(d~ap&W6_#+1)swb@7GEf`I~&VVYfZ2*jo_UC#N&})knVT?Hg?` ze+YY*lXKCYxw-4Wl@qm70uSz6z4};m!ID$I3L2!`7OgV#?FAohfB03x!oPj>ymiY%bS&hrY=3t;7e{NiF|2=dFOS)x>YJ=hlDo`BdXv{<$F7^zNU@kJ-Zu1M|yGmcI5s zYNU2{N_gj`jP9kqM+`oEIxqBZ7T6CIz< z)U!`D{d+EG+x{ii(lUJuW~m?Zzm|3O`@fZc7XMlFQYLs-l{Kqy!N%>^rbQa{@AwnE zA!o|o9rZCb28PFHWV4-qE2<@P|7vS#>Y~M=$4*N29LZNbA`t&3^3`p1r(@sxR@pxB z{k;DCtnCY~)SmFVW71O-yD9eY^htf0QI9A7Ty;FwDtrUabv@NQ)dCqyN3|<{X&)@i z-T5Q)A`UT_u6)*gropJKzj$)I&Y|T~gV|(z7Dqcj`?-93eMQWTxI=f2d%rp7w>YJu zt*W0jP4MFSjOxrg4?~x~>XCO&T3TFiqo*eS$WyD0Q`O(BI#M$A&!2Y{XV-GRYFL!{ zR3bDpYW15%*WX4T-#@oim}N_`bk2G+$Bk0guKo$==X1;{J7b$Kl6b$M?W54uojN5g zH@7_5?z)9J>%^NuruNXW!a4XWGZJyLWS~OFBC>ZTTx{ zy@@ZgdCy6ojQ+c1?)rxH$JbnbG^0L2D>QpsU)17GL$*yzHk+?~uxI0&d)86)`kD(8 z+1ut!-o9>YR`$K^g_&oABsms)>dBt`J?)ZPS7E@N&oTbH44rzP-0|d-1H9 zZGBl?TsyWk2+g{&W9OvqZfoDK!H<<&Z%sAhebi>@9oU{R%f8~hQ^wt>R=4kg?&=5cS737 z1%21Iik(!BVK+Q$%sX*y#c#wp`6=?OduDrm z3yyEC?>@(M<>{(>`|pT-);iUa(^F>ixa;49(~ceKw{-sqR6GgPz3}#7<&Oo%Q=jsc zHwznl^xso`G%hN~Mr6|cN_A%0JCGeu1_6rJ|`_~Tl*ka>ukoRhe{RoicF|#C3nMK@Q8%@G30QnQ{`uCWh^*k!Rd3UO9 zYWs3d-fIKZKgycyZwK+dcW~=5gMraW>l9)*?GIRqkuVkG)+jHSb*)T~5!8y*G9J z#63Z~O}_>0&R|+~RlL_y`~D8rDI2=JuL{jmX1w~=^6)HuDf8evD{P-;b(ZfG;*y*e zCL5Ntd1}BW!__qhrwg$5U;5xC`AE08w4OaRxsdyufqcn`svj2 zx7>eK1n;fY`sw=VV0exADebc#;&t`~th@A9^lXIQp)J`PL>q3ddaGM&Q&F>P*S{lD zw;6Odt&W|Uu|_;$mEo0LLS{?)Qqu}onZ65)^Oa-?-+FJID0k?${5khzwN^MSH=W9M zIW2Wo{mfM6)`zLHg#DM;2i=XR;@6pGr`{btAuP0LW7KNapsTsl!?m@Y?j{*MTh@4B z&8cO-jkR?;*XXUtYb={Or}kBciHOYS6lT$;6F*+v7oE-H>|c0M;%vwJn`PQt-n^N5 zQ+v~H5OQ4v8bVxm>W$v1H|x&b4bLpQw%a61o8PP6u%hkfhTQnb)K%A0&0^kcJ7pTn z^sZWiE5~K!KCuFV&{Fs-UL>M##|1aHYX&MYm>!quB)M!w3u_Jgx&O&v(|It z@lg2tI8wpJ1Wv|h zM&1d{*b>>LS6}c=>uSiVi=lzxc4uCP?mA*nA(xnzaPHj4U$ZtIcKfTY`{Z!dzfU@1 z0V`v7t=1Ji9@MQFs#vhK!Xt$KDim3unJzB8*@a+ii)y;fm!dH3yw zeur!y9x0aVns0jN;qBl@;U~?%PoFz+VdYENccFdU->16uEnB^1MSa=L=-g>Z>sIK5 zt+p_Kni?)zx^~;m811Zen>M|6EuFYHHFR63=eytg>fgP-zp``@DD*@foK|n$G;>C^+ZAY!j_42-@b%{Zu+v0QU zud*-Rc5~nU^9OzGH(%ehY0>oyvC(N=uV$Bq-d=W2w03&vtMmS^?E~B%eksd-Q4${Y z=5nsr_TW&5)mL_HyzTF3{;hre`g0LAW?5T8UtP@J^jmN3)lHjr?OJy#cy(%O?9}yP ztD@>7>H~~duU~vIW7Wzl%Wh9izP3NE(evy1SB!68*Jr=bS-Xg9cW30z5dVw`(;jr^_!vufy_%<%zB9|U zR`LvUM{$aw*@2mpcKx}~f2Ctqg6|cP#|Fs(E6g@`aXn4Cm+Es=LvqWTXO)w)o+jy} zMfsi*T4Na6>FduKV_%fgdRUqyr8IS+OjEgrW!o;vN}F9giU>x7f(h? zw2bn@FAiEVSI&uAw`{$_()OL}Qk0?A^J1O7Ue8Q@r_J zmxc+}PnYbN?vTi1aQj*&XX%j-zJYyBItOO>yt5Yn;v>58Y2D|GFHCtH>O&8FHkxg4 z@0010?Jf^?^_u=TXW_UaSGb^7%_b>liG`>4yCjZx6Eahl70hUVwfsmB(}Z{dDaGwU z>*AAQn}R}}6oOo*RjO~{VdFNQxuM!u`@EBFiFH~-v-JBf4mQGa7Wga z)8%{_=IfM?s;c=d781NM=ai`akvsLP_k2ng<+l`Z)jo4RC4c8Zk;JLoD@z?83AWw2 zv%)bm&Aaw8(<6@U>n7~J%T&JB`B{0_#+$}DKaQ(>)$qQ3;o7dCS9adg6*E(l!V-2q z%k|Xk;87EpskL0p`=f!k9ZTuV6z64W3k08Pnzl&wb(Ht?)_t({)_Ehj;dF06Yc{`2 z{Trvag0AvM!G;`#({hsw%=K)N`U0mum{!3cyInq&)kApkwTDbAS52AKv5V^-=i7uW z{6R&>jaD`rFy<`Y;k{AMJm|@;ecey%1w@_;UOIC|%&VAlQXA`5h9i3WCM^;cYU7bm zINDabY*yFqh!vZj@^~dqeWvPnD2+qV=CA>0x_AA?s6qvcG^Ke5A1&)S=oc~HDO96& zxr*u|r7M@dx#?Z%Fxhyu;EMWM0ZFrq+`d1IBwHpQWpSUUb!gN2Q%37tq#Na$1-OFP z4(>QDm>00~NbIp|8Aq0LylLKI91;@$ts(B<42JW@Mmw8UO_gvkh)e8s$V$?S&}6xi zmKWixzCMPh{*;=;6qf*=JG*8IE55$ynxu1j$?^Nz;Uzy>Ed`!*be%covT)?pwb0 z=q*#Q?psx;l{9JX+M~<#ZAJArvRR4WcaNMSynDf>x69ZM3e4AuGwu8IcEcN^9fr61 zxA?r`I`5oaD;0CzaPf-v!pGiMIsP*!MJ+n^h;?I}V#vmq($BJPtgW23aSr#%)OGO{ z2RauVvoN<0SW%i%YGT@@^sZh|{H4M2ZB{&7Cs%f!{mtpcak-bK_{?f; z4{J`L%Hddrr!l8w&a(+9HYpo;KCWGM^&?08{7sdQ@@H>0N%xy^;8O9Od8`dH>s35X z&qxj0m%Q%XwV7QvUgn4`nr!TlyvHZ;7Tf;J1BNCRT^bUKn{P3m=Irk0p2ZW@+kclK z;C$t#xtFf{)GSW-I@WsXvDY@PQ=ylFr!4j;X0mA1Ft$izT9}tDa3pk5%=O^pGx^#x z8az0dHcxo8KvbAf?7@|?n9X6_mU&@iE8OZO7Du@6n5`1Kd&OhZ-*%fBtc6k=!Fv?XY?7UxL+Q8c^Z}iYZ zxy-~r*C$WR$xGbkpvB@IXvf8{B<5HyjwSOsrVy{ zS6+{1Jie>1ud?vOkwBaIbyIk4Pe$&GXsvQreDk44h zTJI@cWX)7Um0MGPi^(WF_f0`sYYlWQ0qtL2p8k^sn&-k{~<+n?=v`k#m zmeeCg1>UDSt8yD%>%CV^l{>R|)-=<7iaeP|ZZ3Tr@?koQ-la*0ncXg}*dxBgnDz9d zz-3Gh+YLD0*cid+h0H zxoTF(QV+imU-}KZA0;K^sjka1^=qo{c%*b&d*@}-H`8wksGfV>^(R&?oCvaNoSZztH%sK2A@eatzZ88^)RJAA68-?ACXeY1WR61=n5 zr+y#LBJNhP-_JktoSss6y;$P;&i%rCUuu-UP4!kdlK) zJH*6|`qZL5cFs-;QI}{4+1f8SL29$I&Klhr(+}2f6<|&{cpy1!0j~g`Lb^zE`2`UP z`I!aV3O|cHu3B*7Qq)4lJB`uvJi8Mfgxma^%3e zidlaitui}&PxT>(QCak^j^&5$D5>5y+OD%Xbj7sI-IBf~vZu;?tkp!fT)na{V77(f zJho39X+}CMZ5wvjx?Gwh5cJCY!Pl<1BkO&vCpJ#{=dyF^nOn+d3hI4~1rCd=d<)vU z;KjU|DarR1%gjjq&#)+==!nsaQ&WsOo~!zIbUi4)@Ha`+=X20GrEA9pm^wmw8eDeo zUBuoLdTIKRu4j@}9)6onRd0BzrQXNX6R!81M{(=az1er#OS$KS6qfy*x7j)9fcErC zuT2a$jSSufGJBtqoP1L+Q+`iQeQ3PU(r>a3-tVR72p(t+dCav=X|?S!!!RXL=f^=m zqf%Wh-Ul7=K2o*Jzx9!QkopwvI|VD#1y>xlTUj8g^`c)%{FZ3soD1b`X$NMmnXB{g zLPW@;)MFfRn(iHJNl{ar8D1vsyU;86Se?lwuVvNJJ8{~-`&4w|?^!eW+JICgrSIda@Lv1$EMy=Ovm zN*0{3+4Nva!rX5MODh)fUisC*;-1-+xG7>r$H9op=Zs`t?3^>JJ!i%GyBY<{Q-67F zTkOj3qms|TTV>6X6t4T=KSN=5Ql(nv*|}%$ZacRy)pT{wvWU<^9Zs#Toz<+i3%`~g zzsGd$tCnSbv!2|427z1OQ};M*nZdn8^Y28*^+y&&Eb~kj+h24v`-~j3*rzwmUip&NT=HqwM6k-K^?`WhMxBXpwCG_62&DSF)DPqOP?1lMz`0^CK zUEdquA;WKA)Rd^UCy&1_>~K_#_0OJNIkQzu_ItV~_S$_&x%9kp1NZDBZ?_3{8NNBE z>QpUkz*;%8sZGcF;F5sCnTcO#zBuD{z~#h&zniWlW`r%h(Riir*P=3m{ylkLrFRC; zc*tri_VvO(F~jIxt%=2v^_xsrcJ5?a@F={pFL7qG-l5me7womwDQTKCx$05i{+_(H zh_-XWDx${ii+YtO%B+_?rdM2dGMp!={ukQX;cy;1k8uQ}0`##%b9Lzqcqh#`~-hRfz zl69V~+dIB?R4g*N)!aNMxt?Y9&MvEl?m1_KlHy*rW>4S9^G7&k;Zs#z+l3pl#5DvO zK6J$_ndND{Mlf`e*p=12X~m4w1qwx?8;?D+oE>wWMLIKSjbpEox65K#ljiqRKbWPd zT)ER^+_3K8pHn6?ZtG0jvN9zwc+aUYH;ejazh}>P+0-bk5f3po-(eoEW9RW=;q;eU zD}84*Y57U-C|$E=qOq}Z|1Ep9O+u^I{itm9-P88y(GQ_Qrnk$=b|zOg@6DZUa=`L{ zE@wu_gU_0&lTLREHaiwgYPCj9mm7C7)bznHh)x426eYrOG@)>cv z{ljlbPn#AnT_*mC`QIaK7Mmv9r|dfMamMYt8b|+R#ay{sf9dkgG<(TYd_EPayWT`T z-g7SRqu4*MO{QIP*T2o%<9$VM&XbJOljEdQJSu*uhG_>)ZaEn8ZLM3u6V83dFLBO$ zb!)|a#fO*tM8XwAxAxuZRg?Z~z2p{8r9zwUKbQU^Vw)wGeijq^__OQ5e4(wi8=bRn zDm}1%SQyiIL?@xVqARR^-IV_f#lbVA^v|5wzmI9_uT950JK9@+FI0N`T6(gmHiyun+m&YdXRaSu8@@jC$qLa! z3-G_eOyvP35rm+Y?>-m`Pf zp|wIsbv8}vd-^QfiMgyY|EuWchGf;xW{W;mPx&lsWqAK{)y%207nX7_pI>n+ZRHGm z1CC8k{~D;a?(oWXdU#XA{N(N6`tRaLHf6-#uzbj<#~W?)`eWg-WA+X5EYDn*tmr?h zm?nAb^S5~}4b2f>yJnx9{ktiDTj}b~Y3lW-5}4yW>o@OiHDUk#OgNs+N89$nR>?Es z74H?7U9PW9ti5k+yLq~y9)D+@>YRxjW$IlOihL&@oA$|UwTW_l_~VE4v+Pu^{|t+Y z+2X9r_WF0Q9_w(A)=8{MVe8e5+m5T&&5f6LDo@DNo7Oa)vDXp!t`g4891M zhyL!YpID*wZB4Zs&-%FHreJN~i(9fMWO~&mugTp#d2?Xbff%dQ_4~IUf4yQRD_>oj z_nhv6zsrq2Y<-lX@Ot{0?aY3zkHc?;ub!6T-@&zW$Gd|`n|v<3bxPD_bW%LMUT)1j zwtH9O?cy^Sm&eaEc^MtC$A9l!v7sIS}er zYi*Xu3(wUwJpbc@Sbvhvj<}l7#uviVe;c1FxVM6XElp|Zq%=0;2fw^3@f`+_$m)yK@5DSnvKHuv$GqoRz@MGe1wK40y$W>b06EbT{Te*;eSv^VV2 zT0i5_ohesmRMuzB|G1XHLakX}s>4~bUFhy&ev{ytPo{l;-LcF?WYzfAnV~+0$^ZQ7QrF+KNS4dFVAxwPv`$yrZL>|NhTLn5&iLEY z%O>jCeKu_6=-)6!q=b1N$Ml}-lXp3X?Pv_!d8F>s`vYn#9kcEzwf4=~Z_c&%@{+IZ zsms0NUqvmgp82(JBkwQm?}EGnDOV&m=iIbbty4YXw!NZf!|pl19B;gpS}J8DH1|=> zd5wiEZ%%(%7QR3Ds%?F2{`&p@xRWiCezpZ16>&7|3D26nbHB$-o3xytQ9G}`ma5%- zcE+t`lC~WCO;=Azdn(zzxaWwDUcp>Fzo<=H>y`_OGavT8wfeiHrL6v8Kc%(8Q=2;T zH?uf?Phg*TCZkZK>gCQJ3bCG? z^RQxf>)RtHtzrwVEV9b}_T@{{2XDt`wi6{LuTH2wUjIv2!_0lXZH}?*VXk!-4di)4 zwoVhcz-@DH;>$g(@A(gj&j?mLsgZk{?URCL#0))lG1aEOi*p3u^JQFJW;*SmRmru* z?^5S;sGV`Y!xw6x@`lsBXXn@ENoxb@E%Sfh5;HLRwj$W}N@nc>ONJNEC%%7O5Wv1n zj!SNK?}ywt|1C0IQR-z8nF~*AZ+l!FdLhu@!>wD4;T7pB%mS7Z`_v@AFp0BizPH}FU2xgNud~yX0<)ePHCZ2J-dj84VE61lD{f^&@J!v5QevQ1)XE*Wh z-WspiMSK1;RC}vRc2!*c%+YI|df9uHx-QB)z2Ws95d<@aii8>~g%--_J9u~w(%PRf=Wamhk4 zS1!yg%YGTMD8%Whs!*rB$*7PwXb`=z8k@;ndBPQ2ES+1+HA1yX$v!RqM%GsxA->Xa6jj zR`JbVP?c-j&o4^BoAxWk8~8n&e%i?3`q%D)-K$5C6Z?sHxBVt?EPPR-zbnH;HRcr9ht*)XQV`%(q|Gt3Z)JzM@( zPrLY0wwZ7{bKI9RuO>$~pUf*v?XEs8EUm9$d#;`NmAZYH#1~aVy$_*>inpBQ->`x+ zRQPS+v7hZ3EvFYtC*)qeAG`FXq?ed!-*+Letk1?<|3TQOL{{oqAyP-A~DWyoW;GWqp^=DF51%lHM@o%Cv|9kYhu)k1 zGd7xU;q<*mCwpd$_w<>&mKf}f6aLTOUKo9)zSXZ#drno2Ro@$fIOe;xH&#T=nd#ps z^PS`6SB?`3*S71i-#e)KD(pn1%%aQ6=@0ehx^B=eDh(ET?Pn_=rXBDxZME8r$Fg!u z%D-%QUBI_tqHEBX>ksDVvHqH(^rf@C(mpiu>ivr|g|b*>k3Ez);4F}nBRZqw=?=Y{ z71Q37%yO>R-r1q0dvIU6Ccj^Uwcz6b;VD40oOL);29@`IqWX=s^rZ)>nIv{tN&GM z+5^?r*v}s|a$1$XJ-*y|rapj=eg7@)Nz(F#670%C*IwmzvM#u}@%X!>Z~N31b?wkH zIQQF}@!qt{%Rfqg=uJ`IVsYi@#tVhjwhO*7)J)vJ@sXa%mh)-ap}QwddHnmH((CoY z*L&1vIEG*OZIb`~Kf|I)Gkul?f01|oViQv8b0Q<`%KOc~k{CnH)+K5rbi~ekU!POE z%8Y5}tkW*4$GGO+dwQEYs`{*&SdBFM7Wo7F8u#qw{yvkb=mNV%ec-v(N?y}WUD?$4 zb4&29y9eu3nD=^beelTg>lNb(RvVMLi5ArkAmAiPml2Df7>wi znc8~p`X$%99K-%I)TM3Dw{BzY$%>r*(24(4Jwx{yUq%OQ|NjiRQ?)|t8`Bo|GKVEc zJ#9bL>H03xt;!-=Z)XkrkLhwH)l+5br3JbTYwA8`wh2Am`=Q#jT3*KJaQ}j>k4?7g z@IF4UIp&N`T)3ZQ`S!PlcRcr-&#!&Ouv%8|{@(>{ESt>NJQp>P(0;Qgb*6SmYQ}*( z8V4Bv=+{pcz9=XzUO8nVt8lyhy~~wP^rVik`W`(QvG0TNk4$C}&UV9dr)?K*cYl!= zvLZw1UcB%>md*2zd|I%pw^eleMHk&gDM9@PHU~v@Hne=+7r@i9lBeLW-@nNfmfGG{ z$#*v`7Iu;K3(1-G+Sb@;^{TfbC#S`|zNV&g`-)U5MQ!6dk|ul%t+1Bw zJUV-3wO78R(!9oHcAKYLPO+TKuT=Z*!UV^8R%)kvGj{v_yk>LyU7DBP9gDnZmWy1L zipOHBj%1hrooQOf4N$Z;liIM|7O_U^q#Sp!$NJT@Mj;P!dC_# zWY_WT;IG)t_Ql;rhOhH`LKwG>bxG?X1D!XYm$P?v#=I!s@y9I5KGf-;M!kN!vAWEw z<&XEoyXu`h|JK57E$@f;^mp8?D}twYC)AplyK?6&kM6y1we{JNn4q)Q^sOGrggUh) z)*B=!IPe;9one8Fl*4DE<%d%Y){yN2`S0UVPZAi7eSNksM zC`D7<3f0c2cYKfbzTpbbczVI`i$=ZrQ!VC2Qd7AboUb~W?KyrgIIu)iIy-P*>#HxV zC6}y!@fdza6wR)< z;v4&Y|H1y)6Ae=t!&9%6h_StE+`Oaq**4|!U_+iT-3uCb`wiV!A9Qcinsiw8#>t;u z_4d6kcX^Xm8;DKc|9ie)meI`kmlo5D#a7>ra@v^V$ssQB`RVyvYLRC*+&+Ix>6&p3 z=a!ucA@^AK3p0PXZXwtnS}GFv!7xDR9ph=UYk5HnuN;dtasAA7e4q1v#(lnWtroxt!r#1&)m+% zRlOlsG-e+6jYpZMF0~3SuZda1$+vp@)Gz(d5c#a$OnycZ zgGbJaXB|twEVXMrzQDcK!(TNfLZ+;h)l2ieX0c%2^QGP*-udE(Y+URfZ&@qz&-(C@3saQp_iufsl_Dni=KQ?>3>n-KpLKgfj-6S>%6|KrwcftX zGw#>EN>7(w?f9W_yLw~vKOttn*6&RnH;Q$69odt19@+UIL&hYg=}G z6q~uU#mLwH_A3!a-SZo3!WIZB{al(BDW9l*=oF-TBzTWk%(8ku zz4#g3+$lA^?*u;u*c|=+WMhBfto=g2kEWG>7UK_Jy6Ru+s@@Zk2Eo0TkDNa9w!`&! zMAyfn#W`-h?-Jj9yWSbZ`BtX1S~+ZlT?~3mG;}oOqPyvD6)zc$Lx*|LPMpvnKmHpE>Nz+VjrR^|djNn|9Q1 zH|9cyN4;T%0kIR8H%1=rsqzY*EvfbK<&23Ou`HENHMi0jK8AiYx_I$p_+Q`mGoydV zPwM9|>An)aezDSzc{7vOAI%CA`RYla!@)+!hcnK*wP=1y5?RGna zmpjAvjsdU(aYHCv5n==gIVSu}_aR>-t`w9=mGi)Elj0 zCMy>mUE#Aj`Iu7872Ur{Pgl+hIas$fef!JBS6T0{8;7L!9?pKxd{|fH#SPEEJ-@sj z%od2KapIBb-7TY@Ij4QU^``o5-&X^NDsJ>e5!xQ!Rc)g7E z?k`i{?7T50_iWD7&aQ(;Keor|@jQC{TJzxU-?usDa(~~t-btf#;+@^SaJR)4+Y@aiv*4I;~)c59mdDJ)*TQ8MVW z(X%Aq3*o!!SFDZUJErC%Z^##z^nTes{xeKIvpL;t)}y>Ke}Q&#tI*^Kb|jqd{(w!D|TRo2S* zA@Rywq4}Z9davbw`94KHQ#ib6#b!j8TRgwL7Ju$O@1o;$&BS91zRu8jptHr^ur{bbd+O_Jl84Sr zes+Gw$I8<`lGrl5e@@FXJAJd>z47$@vvMD!Y9!**QfIv=scXE}z9hb07F^e1zi9xf>ObWUQ03U~dg z*2`1ZS-VD;y?32|^w;UQ@XhJAtCq=Jn2|k8arM?j=iC6@=i8TPhI!{E+sydd9-;a+ zWY(_7_r$F^F5XC7WSNxbA>PgZD)>3?Vy%`v<`J$QU-y3uS!VHzGw8wvP+L(tp55U; zL#tt3XB+30`o_!pH(f0gw&?T*EfCGuKa^e{^quj@!A)X@`Fl>5cPyUWpqrrG*jN~S zT7UmXnN-6SkC z%@ff}+d8nJ0zU;s!3^B);;g%qg@^o+oR6-xG`*RXyDwf zJ8#1MH?|92t$Y4A*ylgP^$z~`!6Nfk#vHh;^K(Z#e^yf6V;>d27J;x$d)D5{628SQ zbYkf#uN@2QdNvtZRmnfNwY2ks@~@mzE}y&Kg$A-+63v(UP|umQqwGQWmcxr{Tpia} zbgp6Ar#f}A%+HAMsZT^|CvusD#mtgnEf!}uny~j<%Gb^bhfhVNSghH z>&)84*X}vO!n;Rg*4z6>7PTCbIh)VhF16=)8|!7YyhZyyOuF>l*7Dtt&eVcz#pc3G zDni$z!!^T5l45nL{n|Abj? zrJgsh>~!wD$p+8Ufb-NlRMyqUdNmwD>) z%WFb{9q#h2Q4>95zQtgX$>yhevsq&t7HwYrS$@i`X=^rEuB}~anOD{_=RZUB;a%+v zi;I0WOg{Rbq2uruySuT8ZK@e@?0fv$=^TFduj4=3dYl_o4hnwL#nhiR~Ld z%3rEl6luZx)6Ux8(R*jA4tvizwTFz}+gt+HI>zP*=N~f z*XsFKPdcvKAyvXH_^r4^?DfN<9sHH|0>0L0{bw*}*!i31YSkV`GI9Sdtb7;raBuy@SmVybJF|E;KjYbV)loq)Z;#QHzK=Zt)|(d1)2f(gp77q_ zcAxy6MQ7O93v9HGzAvAwIRwoLP1M&UVxFp8Fll-87=~fBKwh-=wi< zYiT)~?kwxd?z4G|=fuVN%G76f{8ijw@%1!g{k!CcGgm%5 zv&1xtCBCAi_j~Jw**%>8G1A+gO%>C67GWY9I`yMS!-?H)`&kyef5s%aF~xYo{26bG zPl`UON>!Q6doC@#cuUuMzT!jbN=b{ljwvlzmTYgZL)-MOUww!Cnr%G0y5^njx<7l0 zG`IS#{|xs&vz!#TSoxoU@3T9{`Hs2uzL%1#bmc3)iW+)WtCl~N($|U2njRXoHTVp} z!p>JU2boSahiAulTiB_d3O_47-<{p)x{$Bx!Z_Cp_gNljmQ9}4yz%>Vj&s-E)rh~> zVQHUa!CGvb#?4oLZgXMqRSll(^Oetje*EX9YR~AyAzwqw;Lt1Tu zeV@-S@jYFCw^8rgL#4YH7Ks)Io6dNB-QV5yZ{mp+=JgxwzQ5&-F0B%|XQOoV=S;!0 zOdI*1iA~QtmOf;9^(dZk!;IY7p+DyNTqy0a=H7mMNkY_78Iv2qCXb?H))y~5EuUc? z5!L!m*t|g3`G-57!Sj#8`G*-Icd^|IU!lPux;A$5YN}_(g@XtF*bNKoD zPrsM=&(OWC|A_giImcujetx^Wx%$N(TeS=46mI0?@7eG){Uht{nMtayKNYsl-sAJ_ zKSN$)z41rJ)#r??XLlMJYrT1Y;olv_cNG@A8S7)`3*IjeIKDGxd+4LcC~eW4?T@Ez zmQ;W8#8vvyI{BDXYpdg;zh}P`m9L+CPc16*!ZyRrKW04R6^YuprCoE?XWm}= zX}ZY1ccBI`lO3Cn7)*Awb#+O~ogtwpv~ttCaCryq?JEz7i=30lxwt~&t#(ULbazK zaX0;^Mo%@1I9hXO!M=k(dAzHm4qr6bp0{&Njh9Sry{xGDiP~ouMQ59Le=geh;qa+_ zXI@86*Gv@cJyLav_YUi^74!1z-`CAbU~v>Z_IJ_VUHUsFgeC8|lErgllKwoN9Wkdi z9pXz`v9|elV&k?j`7gip(^sOy z^i;KrPI_d1oZdU7{`y8yep^5D&xMBdLeF@M*+k+^HShlDx+Lg7A-jK4%rb}fE%)t@ z$Sla>Dw98S+JA}Kjy*X)pGCjQIC8r>|FoQTSBdVu8LIPTBKg_)HzlwzXg5||T(t3# zd6Vza$i`^V(;e|5I{bcZ>lI&%G&nj$J)1dk>k-A8+h=#a=i2*5{6PJExtfiJ%bo~6 zIr8z7`t}uRdM0`O?_xS$MQ^EVJ#y{tso)1|U9P+jzsSaQ-{T)w&dLctCc7S+5r5_x zugv6YTHF3wd`$ZjcX8E{B{~m3+SqsgYc?~MIrU3!dF(x=n{PGVRU38HOq81}#(G}U zTP9JGy{df4s?Q-&T?>SF@Y)M5zgb_h!myvgyVbI4R@bz`&y#Pio%{4c?AxfDw>gT` z`iwpvQRY~7>R*26e6R_(9He2I(qKarv;UgpYOcq+chUtD((T- z=^b;+4Q73QIs1rVv5xFg-`eYGi&}JlT>RA|b$2=cwbxN0ejGQC=pNZ3*JjmyvE^K} zZv8#kli6q1ynmIb|L3{y)0U)1O&_>cuin~l>S0f6XS?Bzy^?%Dx|GR(*cO zXJ=tu%oO3ez18dG*5q=w`F4{|?0VSVE@u-zbL|qr`Z#5`1+8wM|K2%ub9K^n))<@8 zi(zgLKd)e3&#_J8^Y!0hUoPu46&UNCs(evpE5G3W4~dfcV}HXkb>5oBKH&4%lJ0y{ zB#(=)*!0)IJ8zHW3zv8m7_%g<^;tFHixt0Dqxk$Ar}i%NVh^@k{!abW+|cN20(>v8 zGoC1!xnjD_qu{D~-^wr3H#^)|W>)@(Blp#DwfE*-{56L!x`w>sx8G6oTGP_ct>Uw` z*OiP@jqf9Bl~$~q`$*Tg?6POZk6z=Pn{jtf_xxK@b?MBx#^Y<|K3;b7?junSv5Oip z0(XuasnWCl)&4_%!Tq0=_kAB~t&>hLxcb|}FVZ1Nf6RrVv*|Wa4MX?>|^vf zTgl7G*UNj$_5HGcQvOByb&HD_V#r80ZP>ig#Xf{uc3S6#X7R(CNVI^@HDhLiVd z>g(EUx63+ciJ#Y-9+eoi@S)h5*mpg@-IO(5MT?@2`3ZC9&S+LNi8&>`d-C?b>eCk6 z>Tcn#x~L?5O4y=G;*s^sok25XpUOW-OG|aGqj#~cemKi-@ESp?bgp6y;n9~J|b0euji{7_*YcYigloJEea9w$DctpV zM4ZLFrMwg49gj)4IU6|bt{2{w7u)p9kMT$a^WDZ5U(%<=%l)3i_slwb%gU6*?&Wex z3<(8Wj=FD%y2~STb@4TB$J0;W_?Xvi>T6|Uj#yvyW7?0txi$5&PrITRlz*K%t#Z~* z;QW-Zf0KCyFQ}@X4r&aEt;$O}^pyKVZEdo*UURqL60!WS`wpJD+GmaCcid7ieRJgY z;f|nJn)+3ZQ#D_$tm{f$>h(*m|B}4Z@ukOW^VitAUTgm~FCk;;)E0$bBF<+{vQJSi zJo9vxxcggC!TXx!EUlZ$>*qeJGHBH*+g~rVE_Rvhw(I9q6IdG->a8dU7x+Hu?&{Sq zK2=O*+FrQhqC`-^;oRd6Jeq5~ULRV&x%Kz&1LhN29m|bmMIS}$8*1itq*wj+*>|At zW`l%o*u$NywY4sxJI<_G`;+6S&t7@^`46rv%Tir`Wyi#$?pGJJK6n~? zsQtG;qs{hQ(2RYTmKb;beaFS5QO$p9o&G(hs~gf5FwBfM*K>Poxi0lT!^Y{+)tl}W zB)g{`c3ig2?0cO4v+}1~P6@9#IHNQ)DQZ*wgq(rGJwz{_@%JPBNU~S-er} zvfFP0-?G(TnQ=)dn#btWi}q(6Y!1~SmpM0tAJIC`Id_BD{IV)}gM3|A@9IZ+S}BpS zf0wS9wU)nRsm8+<7owHq!|N-;@3yXb{P#xJ6j8GndE-g5?`2NQm^bfGXx}#m!-&G3 zgJC-kywg9NXUvsR-aR!@y1cwA^_!f(OMHgk2UX#dDdlX->bZK8TLJ{$8+fg{w!6(G z+C7c?nRr3r*Xw7t->EN4`Fb)wFMj@!CohlK=hWPIEgNBcPBPGHzoTBHrlz*0+|)0d z;+>0y*B$z9`Ywi{-1^Lh-A!H!@doD&yfi-p2J^7ymu8if%i;H;*-Lw(rbGj9XS0>&J=C^$M|){QKs#jcv;! zg+&_@?@VJ14q4IAsjxI@>G5!}N74)5G4UH7Y(C;_D7?9&TRk|iE$Bak2wM$jblZ0Q zs3|cKGv&3#e!8B%c26n%{p`bqo8>+|o%>vITGXMfbH69gjGLf!A}eO|{`xDYy-W5B z{qcSgx7GU3pYzE-XK6TG>~uKr;;7A1HGyN&r4`D(Y}U6-#HI(!+wV~B;qa+wx#+O;2qVY-nQ>Wni&G~}y(K4V zz`@NDntDcK{l%)@@VR;slMfjLrkHX@{&3i8c4P_fwV%%RoK62OKDf1i>)|uewv9_? zOMa|ha%5^ysD*ETwEaiBi8fvd74tg%Gs-9Umhk=Y+^G52@Nrl`Mx#*7N&ZBwGYT;! zxtbg;&da6L9A{6KVEdcKqFXlo(mpkoeN_T&>${FEdL462?W9dbpV5g@j{}iy^KSe; ze(?CMZ3{y~=Pg-dJSA$%A%ionJjTV9tMxl)<$C|hsBdHb-n1%dyLILCg1BWqOttm8r@|Qcj;KXEZCxc(9;R@gzvGVgzm$kI8M{{${kg2U`tmk`x3&|z z;x5Z5Ex5H`xc67cyYqo(B%X0(uAX9j{)_X%z9SiGQ5}URc^C5DQQI~3;kM*l1-tVV z$2Tz@Q$BfNZv66k*ZqE}UQ;hE^-49G8PKvlL!9+`ffxt#`p%bnt@V-KbFxHFE>Pjv zBk;L)0-KI$qg(Pp%let#75oOw+7WGfu^YVKM@?O~>P;$J=x41Hf~_xJREb>>OmzF! zeJ6fq@Du~noaC!o^;$N*Y~~Ddf6iXqa8oM0QvY6BY#Ev0%22@O0|vKKWd**Nap!iSW)!m?qN~oWkz?OYDrxz zI1u{GvNf&BL2L6p39VJ;C5jokcgVZGm{O2*VT zMs(>0J?%aHNb8!lU+5x(!^P?;cb1CI%=rBC{8t9;>xp+>oLS%;k@zS}@!V1_ri!IE zHiq(@(Q6YBSfp7sWsR57gx0toTdNT7*X1uKY~y+%bjRrtgZT>2os#Ltc!U>7^++r< zT$vwn-msY^yT~3}4lEnuk(4=ik`++TwnbU*$H?tT)ee(=Y+n$ zc|z+L9#ngus$aVx?}8-fyPv&!kHn`$o>9p$Th_5;c~#Uw4WCNRfJHr$-H*Z-ZQr@@ zkjS}1F(+Csgd9_lP3kvVvb#z`U{8!$%jT(Zin9U_=ax-by-QwE(?NfwWL%Hb71PV2 zJNJGOy%evq%{G6j%i={F#Z7wOMc=both+y`RdX+kueP=oS@g)_IMTlL4j6m()p z;uQPwQZU*lz@XQncSBmd<_@n3whL~`^ath`H5*-#IQ`atQ-ZhhMO*2|%MxT4$9uD} zt%@mFx7KA!_oYP=0*>EO>l1v;rplQbpJcgW_u=S7&8{dO_u^32$f;ZkYcr3C99_)qQzb8*(f(0Jmb4k?->`#r29+wu54WP^t!sk>1nAt z%G0#ocQi-4UJ0K0PuM5&$nBLDFOI+5FQ6wi?Umrl!sQF=gWZxI9zcd<&vwhdP7GTkL zEi$V+#!Il=@#TB{Y{PuRkBr%!OWujj-4jqa@9ZwoLm^h{jr$tc^#{K2Db!!Qeu45F zU$6TZjgj3^}rb$1RxMwZ^Ax>Y)Yq6rW2lC2q^@eBm{XYkj5n#GW%^ z5`le{{puXzE+^BTuF{JRcocitu%&W`wwS0)DeEoP(;L)yew}@Cx@DtUVCb20wv;np z`hJQ1vYNLdP1SMwg+{H&Q2iC(x{qv*YgE%?u0A~fl-d-(lmjbNo}8;M3+NAN`sX>N zU32>GG=rSht39$zk7mx@;G4UMbB0>SE=eiFBbOwu&dBpgXc#FZ+GRTYd3Y z+-(>1WDE_{mxlEz?%{R~NELf!^y=}f`#3F* z=SsSY$;1HW6yYP6J3T7ejCFLMC5WZ>b(Wt=Rx_|`lMURmJi8(6**|f7NmouD6i8jnLE=yYzRv&Gw z^Jn=>#pMFe)}>C`9x8a)z`!kFv+6T-m9tlJ!_Mr}jMljk8MR@~i_9?lS+-&^dyc<~ z*;(}TwAF3)<@U}J2lXBnb>Hpko^!*w%GE2iNWnEy^NzUpv;&_Drn6k}c%_kHTFd%y zmc7g_gN{9urKe|F1-ANKQ>|V$p`Ybw%I41XY0>DYp&bx z>#h1l>8o(xw9t?{5_`EVr@8H$AYJyd-Bsg+bF`1d4uvBY9)WEU(+}|)oS8X$(n*15 zWvc59m&tCL;&o~Fq4O+pq89xUuLXU5)H9`o4+~zL@>1}=?==nM9eio3?xp=gnKl=n z_<8?ZS-(iE^HS)Qu9BOng61Xg={{Jlo9%e=cCI)5(1_lA1^o=$Jn!Z)192Y8EJ0;cs z4%#L-TTw)Kf=BJz>sqT4rwaKtMZJ6^wuy1e74>z^hgaAC72Z_d>#=={J5x!%;q5oA zMK`tfs%-Es+)*;&N(RqFRkza$Gt70`Ql^!@T|dorhw3l=p#2*TR}3Ohb|_nJOfEp;lHy|#D%Z=ukY9gUOXQvWl!$tP;R zW&M%GfAN)I(n{UhY2SQ<4kbJlOtAJ*%n4kwZOO7-2O9cI?NyFg-I7@l#G$aJLnUVB zmjfr1>Wb9Td^KFxX)!Y~Oz$k5Ji*1(K)|t{lkbgDpZb($wRjz<&m*ZEv60hc+ha<*!@em@ldLtM;Mi z`Aw|SoSM^BiY{-7teV3ecktlPX?;?i)3|MUmBU$A@O_Or9~Lz8pO)piLrMznb6KQ5 zUgFO*-u<{aMk{ht$0Ey@GdEv4IQ8WeS?d!X`;Fx09efqUcy7<8iY3i2xBvP0pW%se z{YKZf3nuIIsr_e&mv3nFs?XBtSUdBF^52YwE(cdm@fG)N7w&Z`QE159c+&Swz%hBp zsp{PPsVTcROvwxr-n+-HV&Qk^BZe*t>%Ow2KVDL*u~@}CuRvEv;6T0n>!=AY^o7Ic zpR#t}bL`m0WruB|H7ycnc^;S`Z%Tl6MxFeEeUkV z=uTO;!QtN5WOVV85xa~B8 z^nQ3SFfi1sG^jKPFfeH6&$DY*e`9r};O-ly{|x>fx{DY%6qr~hIfOJM_*N!|sm$}} z|JcJjHNoa3OQZd%h6WD?CY{rB&@edq$UyX?t618z-3f-P1Fs|;-etrX!LK(hz=`4A+x&_+sVTR&Oknhy zRj(T~gc>mu%xlt-bZEiUNRZaO#>&oI!O#9RNpW&$InuyhGQ_4O1 z`0rY5DO@MYSQyOm#Jg0bB>t30#u<(^->)tf?BHG!w`-d3(i>6sy?0M3T5&#;T%9#R zc%u9M{98`02YsHJ)o3?m+-9CU?^k#ZKcA}2suKq~?VVI2R2TCU=C#&usC~TgWasuC z^XSSWiXy+GHlL1N_OjsZBgO{{Qf|Is3y9dhtf=K=R;bZtH6{(dj2k|GnfE&gF&yYH zn_b~yaD8FT^yH?NI+YD=KR$jpm=XW5>_m9CV%YRro*hqqzF6rZU37NNYzeXNsp@Oh z^=EJ|OyN*icXsOANlk(r4o2+{cGo+qyxOm}##EFqL4i@sHz;G8)s;AR24|((S&kfG z-!^>+6;*7MpTMB`&(z&hVPmRpOGA!xX|RNaz-7J^^?kMh4ju*ii3`hC?B66JA>c9P zU#qCkcb1YZb)F?=4?N@FFZwzCCR5&|n2B43bYCxhta2tSuY6rOYl0x#t^5+U{qyPr zjekstQFD%4Ub|QD&1y^22@hX0yVgt1Tz<2>>gdK3?h133YZzo`n8=63etl%}Nab|z zMdRc5laEaP&9T6->DpSWUd1o$PtRF}mBzT)(IAq6uIMT-nqp0b6R7nYkd zUCuaZb&{*y$N1&@nGy`%P601fPgpZ=S=IOWLw&yh+Z1o!BAuze7Bh}9NOJgI`D)f> z<&wAlMU|t=hDr8!Ie$7x?0N1NGRJe{pBooLN{fP6Hh11xu=+oPg2D$r$zz@;SSARk zDDyk8KHBg!_``-o-8o866d4&02w8ZVFfcH=vZ-e?Fn%-WIC0(aalxKNF&eEJLLNL# z2N{|i6jJKn+D?hA)p@@#xk!Y4n=uOmgOCR!L-@+A`Fr13+Kqr=O#V1+Qt{v$VEGp;MSpO){WUOe>@@1HPTFp90 z?5j%g*?cr?>w3xPZC<-f<>LH)D()6q&B&<2)Z{m@-=it< zc(&&H2nIt@hi9H42UxFt+3cyx#HcNKRi8;!s3z&zKd-cj>VcY`J@6 zp@Y=>+8pI)3%g#P%cwVWTgMTovVlp3fq{YHG;6EF#bc8d-k7ER?DITs1)3Zf7>#uK7*)1yJ#W_N-WYv(*8-0|k>lPo zU9B$dnIL4!s+I1qcJZKuVyU`hl}w1v@~%gEXOtahsy43>b=d6BP{mpQNYI7-sLS_L zKWtZUUtJTSA@yzhqJyU$c=@I#N=QzQ(%3K~&6VSE?Z%yd*E!GN{`f%k($iJ0r_L*? zs67!ZnfZ1Z=e=07zLZh}--2W|ahC78|Ej%Ov~171YWv8oea7;nMn-RDV`Nm6o`Zw? zl}!nXR*pKXjNvCeHUH)8;?TU^SO1?u)nlXT{LmK{mNIn+Dy|fWj|iK+)wm**UuS_v z$J*D+t6Sf4@(XqRXJ}aXBaB1s@1ki(**rh~nf`L|wsk?S-^-;Z?9Nw9v|c$O<%uAB zM}~G$&%Lf7juyt7J-N$^+<3+QGw{6dnj2)1-@K%=)7x4`n7j4Rg{>_*S{mo%W(U@L z+!HUq^l$HjX&MO(Aq=dHGdYuUs%@k-QDop$lv8h$Mcg5-m2tU zCn;T?k}2Vz+3Cw5-}blVq0z62Q(ky*WHKnI85(?KN%;1lNjWPiVoSh6PZpuHqP7PL zvpf~IIk70@CVD5R>i8Ep@Vrf^S)y?70<#)>y=HLOB)7Kg#2ZyI&CCBEVbBz0U}j(j zpZLYf$Ou00i&0QO(NMuLFtN~}apS~=2QPkbc=+-EEd~xoW=2MPfrYD1u2MV8%N3a6 ztaXS(FHwxs@kM*;iE|q*AL#No75MB(t}O8FV!5nk+bJlJb?#V4KNDMX!J?96e~u&0 z^%p!`ZpJUXrst%b)6)~txw!4`Cw*~fW#XQrX(qJw51?r68& zTzp~EgoPJN9(2rDH@olHk;_NjW-JsFmS?}C&hoh|Bsl!w7K>v?jvm@mqG2aG{l+gd z-3Ja+xi|BQPLEXW3egCgdC?-9OYX?aSZ#}sft+jVKV*cOnQjbGn^Rb~C+S$*hxT^K;L6x@J9L(H=`W7^(7Q13a0gCo~i*B8#~ayel*Vdh00n^#iSM+-ue>ie55obw*72~+=6 z&N07fLbi*Vwy<2=@k5Sg7RQ&jUXn?>vFfNtuE>hoLzk`ko3*5rL^KOGE}ms3`pxd4 zNuc$kmDg-4?D!Yl3=EiedgJM?Dyg(<+5*c2?2^oMd6xwp%#}}m>2lhaQ(1SJx`(z> zw?t--=e*+?JEuI%6Id#xFr{9g@8|TR$JJgKx4S-=eo|q^g>J)%5AGhjC;Xttqa~fw zrES5LquQEhR2+Guc{V<*F>@~P{4LH=a!tr`%Ar#iw(}Gou8b0rS{$WuSJ+JMR9DN# zJ!iQOiYQA-B|Q^b*l}#Z*@b~IWyQUlcvRlE7F5=1Yo{dbbjo_TQ1;Od<$KvV^=6w| zgyjv6bQo^YdsxhQ@GWQd;Wg4rKUST*#IZ*kPjK+GfvkNlPSI-g}Rk z+mVGg&-XqO+ou*Stv7Y*q>b7pLW&Fd4wH zafx}MlskLDq-N(-i?BS=gErPvj?B`MWW7@mI!TyimZGAX+Q&mV{+thIJZH^jKfIx< z&C5|+sb1-HLF^fmtn`RqT8AI}$lasIzhk$RY1@jecLFXS3b?WL;hn&8zJ9|=lla@Z zW?r9X{F<$xM%PYlW_jC;J#xY^N4bx68GmdSxNUJNoZah2M}Lw$yTOB-8&<64d-6=t zsaV8(P0pI#ngL%Q?WnRgwG?MreDHDq#-CQ|#mAetnW|0eyN(=do277ZjpAnkFYcUL zjhk*gw}r%u&0egy8ln2&{)_x$8w+0Zd0m(-@s{_7TA-J@o61AU5>*dX8*MR#uHYpR zo|_CM`W6{JZZ3T^#a|?O%k!>~o_@hzM;}xFI-|+5746$h7Oq}&Pg>Wyn=9}`q~~N& z@zldJnkqUrEY7%is6HdfRi1HrqlVhY^~v-01Z#$OElqlH(O_em^#`$OmTrOejpp5J z4pl6g_N8dTH&>49Y_mnI>}15f&Q0tUuFUb>W)h;DQqtq?^rkgE;)){Qydx_v+|pLg zPUmt|Gr1{O(O==uwS8fGuA`Z%%bws5EgoLHVZKi@9~!j?s+c5u8rAElnC&n%crjb4 z(re>VPQSKoPKwL4+_{uRT~fLEQ?x%$xhODIaG`w1;YAxwy+5dI_~mhAqvF9GN}Kk) zzwyyKQ1alC6M9qA*ry!7sHm3Pv|@5{w8Hg+l5!%EuG7Mtx(+mL4p?)^Blfg->Z5~! zbEFU5R+wz=>V8ovNcB>Ike|2i;$y=kRywLi=&vJfa?_1g*RU5-V$k)HDy=p^!TH#{msxr(?iCi{=zh2 zGv5hG%dJApLZTdddupA$n*ueaL`<5$@}i=Kiz7!zM~6azH(N(BujI0R*CvU889)1e zdN>KRERvY2A}hte#Xn_5M{CP!t?CZ$FDH(yR(jCl;uH|b_e=CsM*qS0ar#Z69&cCH zxtYpF9jaH3XPL3P4(cj)l>y0>cV9aA%PncwN%X}a0WSUZ~f2EwrBt4NVB9B-!d|#UiJnqs7iReIG*K{ zaGm^)HEV86T*T)l;q9V+VoQ!{(iwRh^}>Q3VP>bah0Cq~hCP@a^}~Go<#dNS`;+W1 z^8fypp1d*0efPhO*(MwO=6$$mwnLGVSL#M@OV5U_59{-fbuKxj7P#?#@@kIQQ!jLs zyL5S9q})F6vp-^UcI#?0%|Kd!uX@^N-sJMqtpZ3UMv zN5@Z6TK~>}mdfS*CE2@f@@am2le#eHYK>{#zuNAZx%yY^WMBO7-75axRd$R1mU^|e zoGZ7s-zt@kT{OLVUH#jvIL^%%zBgafk=_w=Xn{#-@1Dgf)=eJj8_m=s4K63UW~|tD z*1{}lYUe@~%S$&`eK0MUbGLI*UGIJ0QcjPO^5uKK?TepxEA;H@(pSCJU+oLOe8~$n z4bJ`8tE~K||E|)VGZ(%cw|kVab;-Bs=k{{C*B8fbE}r}3ce>fbe?j4g>Xj=Nm7o3K zwoPqPrufn5rnvtMKYof&yFdS%e4BRtbAFfaZ5YlYJ#f=pa4%2sSqI`13ecRK|?Z$fR_BJ&o?u=*?WuGi*jmKPpaYx!#3LJSb^`hR9 zZLR{Lo{JV~b_=YN5^8&SVUj`(_!aufS-6j6cM=eSeyk$*&FKW2Ag@tn+Zw|d?^4sq6d%Mr?#djz^ z+7o!ZAXl?)!av~`N4|YixG<~EAYU|%@1kWpQ%39`m6;q$OQdvo51MVb!MSm7Z(HWn zf~w9*zt1+^xN&+BFRPm6j@(b-=Tr`r)F0P1%#AVJ;qUnNVW6vsy4xP-%9=yD3n#d? zot-Atxo}nMop85VXCoriCae_6m3MMURWh;)GCRAINm0G|*~i!Xq7sLV(-!{N=e6XY z{Baj6>CAObQ%WTT3u+{enQl08dSku#w%fsrfSo~mWm&gp?Meps7pQ$?RE@!wgcAoV92MM~%R{3rX z53P-Fym-9a_4kI&Qwno}FG(M}+Nrp|@vcG}Z~uL<(YpXX0^PkJV>>tDo)#y`!z{p;5^-8GXQdFj7s7YR+6 zy1!nt>)^Y~^Dn)>Fh#~UB_b+GTi#{KquZXUtNke7!H9&euLC2r(i zeEQ;nBP}iKgcdOw3f52PHeI628hm4imhpYwM}8YCGCPake0_N1MafU~ck&x|-`=u6 z+^pvJ<{MwKZI4F9-_(E7zAKk#j}SNufHhdOe$Kf;Qea(NH+_T9FS6qt6drKRn`RqlD| z7uR;z?^q-uZP2FGExLDo(VuvyAYCOzb~EcdiLBnJf>e#39`Cf46<-w7S`V&qEXYrK zaV26!L9}AxT>dRy51o^`L}p2AOUa7x_AXkX$l>@yNK5F#E6v0(|K@uNR|EX|dKbHj z1SZxn_i^3uu@ShEoF!)~e?#r3&}+*M&%|Q8^AUdaycZwt?NQU?d61vff6Rz$whUiv zSK`Ih3wQO@$Q{wpb!W;k^)%SDU85k=kpJSB`JP|qhq)+y%$g|RC@3gCpY5}0`?0)k zC+S00(&-O;TC9XqWTa($N^Z(XHTgY!u~1;LO#jztS65e;q{VUkE<&ayzxg-(?%(tK z$hpLFE8Pg+dd@?8^!Vh2W=1{oOHDJ%Np^DDsHoi%$Jyn$aB)viM@+0Cr&m|Y<tZ1JU*>hF|$5Paq9AoOo#dx2ZpGB zQ>$xZyC--!rEsBIH)o~c*0VMH@|Wbiez}Ex+pg&c?yg^)%Eh-WquD)X{p)YSx(h#S ze^bxj{Y`X7jd}0STw7<&)CcrM>KS)elpv zNpEtZJAv%&5ZU2Xjq@O;5*qe|%H!`}qE;>_6SF z>fEFM?*8k3QPzK!z%AaTQy!L??osti+}P2txkBxfhM&Te6j{Eht{1l`nz{UNsyEc_ zT-aN({Xav_m55ronKd)lKS=+6{z+1**m2wSjZ<&ztr36xQz$3f`=#`Txxqzs+`Ou9 z>-}Ha{^gy1y#7JP$@<$pC87OoJ2oCQta~b+cBlAGmeShFW4e#dUoBD@8wH&&9plHRz6UEOYks<9{bkwy8%s{O&1V&xa4W`HGX2B*r~et8o41(8tm{8~ z&$eIbxYDY6M}b*KU0q#$ywfhUtvF>^)oaq?cu=>(NXhwL^orV(EHrcTJ^JbEk*kADBnk=5cBB&T&;&f?gS0&Vw;TA~-#z3M-@y^J`{vL*k8XUBY{ z0AEgSm&NW(j;B7<${ydiXP=Z}X1Tn5+%_xCl}jF(1;!sXSNOC4;&Ja!{~4TC=ii$n zcEtMSw;hun+|%$szfCW7hu*O%GZy=2u0JgCWY<>L+|8>W`AO>un%&CY{o}{?&!4Pc z7X9H`Hg)f0`+5Hv^0?or-L3z2KmMB&$IJ89+GcKArB9<23u5H`ICty}6RxP`P_g5E zB#^D-tv@5;w9Bt5xd}6FS^wiM`B`tF$$B$({rp9Y-2u1aXMeI<{=RJKm-!pDlXbFo zH%-Vi)&BTXBI{1+U;X{ex#AUXT=ZSP{-}-Luvj~(bn)MNVmBsSaq`qz%PZJl-_E|r zZi2T{fFJM05}gkwCq4eTzDYcx*Qcb`&Mf$%+DX<-b)nXVAI1-k6;`;Je)4(x;m_~= zCoXGr`MjtR5Am^FBolCL$6x*U>$-t24R`(c`-k(Gl$EUTL9@2oAA`CSxaeGewRXy)f0HE@{FmG3Z@hPP?T!#h zUwd8sPmzD03jI+#`yuXj{GmnG$!9a|kMIBOqN}s*;^h$8&jxml+8qxU)o`Zw^SEhL zAKNoWRGq-bv#O39)G$%y72;{>S!Ael zb|SBSJ(pwf5sQy+iVwbUG_&bC#LLae7icnJR*G{VPf5Unhf0f|SxVm%y0F8)&Pq+L z>yM+7VPp5eBk;t9Boj(45 zb#;yw9dCLkG0VD6;GRN@lxylYHQzItv$RB{lRJB#&Z>W~VcL;p*H4Vl zO`QjKKRlBY&bs%}dG@9kSB07~!V4qjnB}bTG;!3~x=~TP+1V*0iEXmfj2)#-;zrY7 z#JE4%WwKGeeLtUJy=CjgtB-CfxhP9rSTe)2uj8QNDp%HZ30F)s?tOSK&~$W(uv?Fl zkRnSz=N7flXSZ4lvi`MJF5j=RQc#n9NuX6|(}M|{b_E_g7G%fG)pl{so1+q1iULj* zZO0E?xcXp;SBs&-nnuOTH#Qt!l5JjBwe$N_O@S+BVL@}mcrS_0>29iTU--sxVMj~b zq(gx#szkrIsj1jCz4&3?s#tJ&apKB_i553YyhImTs2KKdG`c=*=E`ZU_booZ*KAv- zba2Io%8mt3oILwyWG8zR+^Q13sC87s>PU-{SgRDji^7F80oUnH5iO?|uIT5I*mFLv zpl#2BU3!(K?1v8h6pj&hvgKJUT`zlX!_5IP1kqJN}F%ubU&>4I{pli^U2pQn83P@$krYagsVR(};CVl~hOUiD`nJ zMl~WT3O!0n%AA4%ll^%Gja!wDM6TwomQ__!=H-br)Ol|5@E{Oe#kIF?`fB| z_MvV4ZfBQ-HFC*K9IM>`fH!s+c9>%^SFs!-;cA z;Ah#o7A2*_9vv%ItXQ1UlnMqFL38W1HRhT=e=XRVCbDAja>MwpcM@}tD7xKKWM5OF z(l+5rWR13-mX@Z+#~&X=0$o#6Q$?rtxg2Y>e)^hoN_c0Jx2{pb!==p^y*^BQlOAa1 zxFx7}ja5XLnQ4Wa9q(&XarTJ?eorrL+O#7qyme`6@}Ynjp&3&JTwEV=sGRVy(a6fE z&w9Kt#&+VwAL@%6>BQY_e?r`VY1ZG)K=Sxyn!p{KGW=cuyg8p zmWPp%o0ASdIN|eV&Ek@!mClM@Yfo!y+rGGQ_K{9~Ve_FW8>jNFOzyddd_=(Y!UogYTtS@%<{_J{F0K1E|+o_sNJfhj#^ z=Dl*Q%Yyn-Qqn%M-1{T%x5-ba(wHna@nYbEmiCS21;6yT4Qda*>`ZbG_q7E0lRI{DZ5m2~EDapu1ufH;z!#1~KNn6K4JGN~; zRkqUF2Lm-9T)28O%;J!^%Q_iBpXG~hOgqw6qTRB{wUsZ)LSI77%$((Hh0z*wmfLdo z^k?MpJ~g^G#gBJcN%p}BvxMVB7H_XpZTryC&Eaw6T(662nD8NvBl}&uKGtswloH;N zHMhcKntnyrgc-B{a&#E7?3p9-S=`8XqiFJlNgAJ~M6SuXlKcMXD&I3Y2dx+BZ0DYS zIiI=opys3h456DgPUB9h5NA1?Xf(mk-uxhkmTF7ql;mLkh@6*-FT!~bFOE7L%(hbE z+Sx$sCygsxR!PlhN%rMjv-QDDUC#SV^@>s-XMN~hoc^x<{}BcaLC};BGXoPNGYd0# z@`sT@5H|TUv2o$Xiv|ZjK<9p#KyyD2w{5!jDee7}oV7digO$~U4xi>}^GOsE&^g!f zx`CyjVD7<`Z>Lf=KK*+BzIva`iQJspb88=HC6DV$`pF^1Wt#^0dh70TGAh7&UMDSiWt8q@}{87wr{E$@^lXw|zC6 z_Vswj*9}Q_Z%(y$mn$x3o@mHcU{^z%Ouk+rx&GRnKjLqO0%Up$AWofn>4*qe)Uu&JSK7UP} z&G95DUq|O0&(quQoX+w5e!fm#--3G`w{_FieukU2hWbVA67P9tmN%Eht$q4^Z^Yih zn|(D3u_63D6 z@A02*3ApWA&2i!G~fk*>Bv; zXWxBF=HdPftIg{hGbg|OT6XKC^VJO&jtzFQf4<##|Kz9GnbQ2g+dU7@Oke2{cC+&I zCh5xPgqaQYm3^}4n93ip&MzKhwiWtxSJ-SPAz=lk!xecthv?Zf*y z8|yx#?Daf0ZMHt&j*6nIkG>w=#9QCoy`66#UsP0V#Po_|$4(d>?qA;)7rWz9(f23S zA1_a`;pcaky3u&>wbf(w<&Et<*FN^_TYR18d<~1wy#%A%xw(g~Pda?te|}2twhz^E zC%2X6Zn&Mzqq_UpoHxI16}M$if705=K`>pP$G z@2KB0iD%=MUAZR(`lW8&`jCEI@`JSZ?Jsjre(x9B-g^CDZfwi>U--Tzx$oV{gy?B&Z)TTs@~fY#RlH}lW$V_h z+hTttTEx1szSlooy{C}xiwTuy)q8LIu(n?|I%n?Jq(jlw50i|T z9JW3w{TL)`_{28)!=>o5OZT4YzB)ST#3$={VivXY!}NVh?w9Y#;V!yu=J9<>v&E~| zDt)uPPp=kAeWl>uA1J%#orRE5y|>=B7uzmRzb6$HReas*=Jw>;$n&l{OH*2}-HP(c z`LZW&;eEMB9}|=6Px1*oExOy3`cxphb_?MlMA zH;qglZk=wS@#cp{?2bz=Ef3jvHl16)erCb+;LiLqF_#pVWV{xU*~Cy0y)I z#?9?ZFE^=uFnq6g_`beGu4?u+)!S=kE2`=$^ZtHwqtENi#MF%zoioi`w!OI*amX?} z;OVP-Z*RYP-@i|K^@`kM|K^D1Kc6HmsQ-p`N zzFocLvD`UY25+~`$t*cP?St=)4>H>)-8#wP*ImZ>R`iM8ywi{T?peEbhV=uJ?b8aXAO2bR;$-U0)ZMn**Zk&t+`Fy9{^_w} z$KGr@J}0-}YQI*`_d_j8Jok3=J&ABI`?xdj59jxutUATZD+2HQ%rAQ%_Ho|#>F4Bx zTKAscl=GolUR+~4-$}bf%XjZ8jHGUEVHd6Y&yb&F`cMAL#{Uey9G!oy>wnFglrCp> zuOMzy$-7AJg=u@z!=6~{eXz{0v66Fe=G$?-LhRSp2d}Q{d++oQkF5Rh^7xwAr_urj z**{^Z?TkF4m~;q{C2 z&4QO-{GtEX|55TmNui2&CysL*{<&pBeY4^v|5ADXnx^>|R{xXO&1)zA@!QWoH@WwJ znO>v3t^7ltZG4^j$;lCZm#&3{o)*8)c;A}ScFXTE9p5Hjqrc8w zeS*#}t3O}0<`};}_k3OGyV~#9Cpjxt{fRr2p1$1lWvhJAy2>9)yoWda-GBS{c~|+E z^k4sM>n9mz3!m9r(0FX~{e!vB)9-xXJ7hoq&YTka)Bn<6vH!DMcYuEZ<6q8)MU~Pw z=Ic#<7dUU)wr!ghYP8+juK)BugTdCz>trLEcUy1bxcgX@?YO6P-|UsMSFc{py?FVV zYWwc*&zQ}>@Ane1f0uUUYi!EG2jWG4B_=FPocU|Dwdw8Guj;GQS4&>+*)TV@b<-cK zcHO!P(?kC(E5FJeJ9%YyyH01{llc{24K{Av7*f-`$Xi|St>?j=0@G$6w5;5EJA%t( z_P=?1BY!+G`y|@Bb?ep}(P5iwBW~OlD>!|1`Qd#W*J38OFMi-+R&HUt?BZnQ{NVL` zktMOZw}PePjFwM$yz|?gPxbd6Zo90k`l`aqn6v28*SjrIbvNzKvj^P1`~5$IK%?DB zS=ZiW_a9w&C)>6_(Z-rWqk zeBsahugXUzO$)9Q{c*QL@Qq5{CEF)%D&AY~*5vm;{$zl$7^Nc z6L|kV^by`)pKv~D`N8Y^zfA9mzxbbFvk?EXH2eLPjkn$8XKvo)(o$0M_uUll^T+CT ze^))c|Kx^-s`H;dzdv_=|NYYf#}9wBTm6x{!r*Jx^!~znsqE_0!uHm~ zJCEHk`!zq^&GXGEv9GL4c0GLk?qgfE`t9BCe(jAj@A%J9b}8=hulnR`5$^FHf870Z zYt8;W`ekR{Z~iuiz3nKwfAZHP_IC+l$%hhCr|3SNQpP`jPoMD5{|rwhe%Uwwb*N!p z|M&O#seH$(E1pia)3l!Mr>`6NIOTrv%=6)Q|K@wU#rDej`?T$3nJoQuXU>&JFFR)* zey_ftdBYaAvc>zWpVe)9{LT1eYyF@947Xe-e15a*+ibbb>o38n?0>?=aQ?=@ms9FBryQ66sPaBSK8VGk_UWsdr&T}X zj&G{ApI80YO!?Q}{GAm~z8^7fmwtCgcVnWCn$hmbeDBuGFOS)G>{@4t8G-;e%}^S{@d{aN~J*YtT;zs!H8vQ}c* z?Tvli&L96X+&URKj`b+7TQ+0XpGal-cu z=_gm8aTH$dUpx6`@NL=pva4man{zB`+gqL_zSftKzO#uf;@1-9 zkLZX0)(=qdSFnoZ`l|EoRFBg6ImubCENwq{hIM||QI9j7dO9~pJ@3a!AOHH;)6-Pv zOl$K_zq57Tg0I

CD&p4o{pNbLqv`D!=%*f9}RD{=8}4rrDliA2Oe4hi7|>={W5A zIZtf$f%z+|ZpKEc*~lr+dA!q2S54}8c$nI?_@dL6Myan$A~x^yefYUa>|=gRe%OY5 zmUqX_E#%#nXrq6`{kEE{xjTv-Y@1iVf*ft`MlfiacuW4 z%k`+5=usb;%h$R4uGYJ|4cl!$esZ#VVzj4f>y{JV!bi4V$@?`uXD-X*9gkTuC-)sY z^Jn?KCyY#2>ysoc{ygojTr%NG@4Y96!cW%r#TP%ZEq=r&UK79m%EM1FdpB<1@VaMq zdJ@LZkut;b}y={#0fKe^%TE89(c zHP5RiujBXWcv+!j*WOfF|Lg9Ox#z0pPfz~QH2F)<{i}cWuP)tMH|5i}pgVu-s~4p0 zI&((-t!Dc4yYE8yS1k5@T+aLEP5q1FuMG@mw*OK&yw1qJc-5IZZ@%C8xA|zB)4@rP z4<+lY*?q#T_U3%Z?)VUV?u}mD!edDW`^zk3m&G2Oe2=^6+qu%M(T}NSsaw0f&5k!; zHaM6Ux^>^On*M^5)eriU?l~QL-?Tki$EWK4{Q6&8IDgl_KO-z=B&Ys!;)eNRDf9F9 z$uD{GJ>vZ3+JDnp3}%$G&ThHcZ)Kk;*L?oTD^9C<({keEE$%tru~wcVU-?xm%B$$| z1X(jlp9dS1!}cxwr(|nk_Nw;5C)?ihjl8?%;*|K_Dw}1L6|cW{PUgY+@3OD#BTqK` zS*TzoXn$){y{D~h{gv8)&AsoA-Hm@~!~D`S!Q(%J|JxGvztihBY>ql#&(mSRe}4a- zrd$5aRnybYcl0g!B)_}sebb#?503F&y7qgzh2C%d-4cg#6f=%_U*{KoFQ<5Vd$&#n zyZZEw%etX&_DKDU(p_@g>L0U+-7Cb?Z{7(GhE{lZs#Jzg4o8TL?VybT0p# zxZ*!U{P)S*-oEX!Zct6C{5-wFcHY7RGxOiXrM&r_S?->$<2G$)p4s8Pot&Si)+s)| zetJGnQ|#P=CZ;#s(X3G>j=x$PK3!dXocYS7Db+T@FYYccX`Om^|2FQh_jB!@ZaySD zQ*94(#Ruk!XH}2y%-K3!ahq)Y!)dh}6=Ih@$eg+E$>Ey4&Vp~>ecUiX#dxaM9vOD` zq@PpVZufTA`)u<}Qcvw)VcgKJdo65UOa7zuvtJpjeU^NQyw0clIAQwLX=0P#v+TA1 z<7IntTdZWkcfl)rO1$rUE7*PL)g_^OKWtA_++W3`eB#?*foMDb$xqJjXW72KA*ZYU z{wgOs>6~{p#?x}w2_+~@wTPG>!(b13ZFUmp5ECdxx2;Z7%`T#?|6KtlF74wzWBYc zw_9~{6YtsVEkE~=@8jC--MLS!9!|`;w?GD%i_O{n+toczY|_>LFz)BPmBKm7ga`1J1FOBUSv7H6OD_}(&k(u)r(k44_` z{(k6H?0nt55hwh2bMWh^7_a6(^SGg8O2aF*Yu7C}CLPZ#D{gpLE|+_8e)`ISDL1?; z**1Az;Y=@Evsv+E`GY)IbCHdl zU>;psdoy#g>MO+)kFTYDwO^viX?v`oS|{CS-x7%e*}FxXXYO6g&vRNwZzuP=+V0mo zzc-(}|I_2)t6d-FelR?y+h)CcOMTp#(EcktYr5HM@5d-BPu$7QQZ3Y6opI(w%m3C3b&fT51ZPT_TZ&ZFB$%(wf&h+HDq~iD7IWp6elgy62 zWbG6_zFX|p12e@N6_V3~ZclJsy+dI0>&ADd{ePP7eSEdYGXG3vSrdoE@0ot)6++TN z^>1d~loBvv`)a#+T7gBu{oU1*6Am}us53abBkqm$o|Y*SCM`c~K3C59;HNt?H_s{E z^YugS`-Y7Lce=u-9xFa*X}-_wX4RvenKrLC+=wffc+B!n#hqP6Ha%w3p6;2YczVm( zw)h{@Ev%xp)g_*oy>(LU>57Qznd&KXX74GTxZ=c~VWEMg0{oq8{kI$=3)#D`D3Ig|5F$IN+{($Zg1 zy;1LN?(H4!4}UGGb-ueepSL2ne(ko44?lghyJ_dm8T(-MhdYYLZeN!VYF%7@Y~q^- ze**e*xA{IWD z_3+ze^`&>$q^`UqtP_1_P3)v2-+1<|RkKR)^7D#ymfUlA+WVtLug*Tav;Be5dHI0H z^@s2GtcyOm(C+rJ_x!RSzb2~Rkufcww)A-s>yph+1g|dnS+>z4Df`g#Lm!VF-ea9@ zdmwdYe$n*E!_kQ+H&^d_*idPmZz-5q@nBZ{ffa}MGcV&?(=yFh;pF$`mgLo^bGtqG zjBcksDQ;*`>D%e8d%Ec6e7&DyrbXu-Hxw+CnpQKV{z?1kt*_f&sGC2&B6+-Zi8^nS z`Z@9a({iWn%Ue)%!uWyN)#kZVcFoVbU2!h<-n!+xt@r(Kc>3w1-D#cQni)l#?nas! zZrT>rZ}EG(?(O4zhc|zaPMr|BePZ7^GkwAI+JZ{vZBH*1-tFCKrn_3WSMP`PGN#}2 zPT!NasG9lk&j)GG`X)Y^2TQ(}v~GE96!-9EMNQB4*2nJ~Ci(7B-aI$)o^5RUv}rTt ze7+v6jZ8C=sXaM|@x<-?u+=vE;?(c?7e!3_dQh!WR_yDkC+2UDPn(l1>z#A%xa6_# zw#Vm~m&erB_+5N|m?!Ls4D?g-iaGf{BYiKGdQUAEpWEcImuhuxbr8ss8&?#K(CqEX|xM?u4|l;2V}@4=?# zD|Y`LBy4*k^|^4H))$u7!U5q78C|Zi>W1C7qWEuxuRgZODX=ppFTLx2irA9dGrw^L zFlsIdXV~i^T9d?XCa0#=x4_psX2RALUt5+Q;h+ zn-|wTU7({Qxnx&4hvIW{!E}97t}E_wHxp}3g|1wixBqpQh{Lg`n{{vQ_-bT4f9EoR zyIyX6(}PY_SadTUTR-{V3hAj+-40Zqf3Rno&5_)Bj4izz9Jn=I!_GZWS}z`9HG@5Q zlVVo$)DDl7jj{(`Ejzs;__44(Psvox?vACip489lzqde|<>Az423L1_UA9YI6(q*| zKIm*~$-xPSm+z1;Ikjzp%ya(VJ2EdQrX`#?UTWaovnIb!AuN}7;}+?jE~oUUtqj`d zIPa)OciibtoqGI8T<+eZZLIIObe*T2$SC@>K}EHky*NO1+flxRb?#TVbc%bNXWT1r ze!$j|wJbNa{uTdWFSdm;{7tq(lOkSRwA}FTk>GZz=8f7-ENf1dawp84Iw|_qp|{hs z++*vOUdgy_$am6(G1htd`hf1hm_Wl&Clg+=nj;s>D!bU!a;BVi`Ok1)RoV2|E^iH~ zXQpYlIH%YbHvO>ZkuG{};CWbZbt9{)kz}r%$o95nWtVyD-qmX@&=(bm?fNKjI(id} z$=VHj*=vqQ+J5KKnPpOJyrjU5MN&FV+eg13ATF{sYsS2yg(-a3kE{r4%avg~r_&wq zc$w~>nW}012iRhpCp2$bDjgH_T}o_5tKezg(>mWOo2*K8uO97KeP`wD>M3USGcI_Y zdaLTRQ;BW%ls?a9nWUxlfe{z`vucEzB(v^GY;h>(Q+3R^K0~)Q*)&wvWjUYS8>N%C zpQv%fotmDayyeHVlkGDSUEVF-5>v<^(l$jbTrcoUbOUczg2=iX9S8P3m?A$#%;D|+ zJN%qi>Mu6veHLu0bvrjLd}fYjdBG8R;eyo5i%hnaxu>0H31NSxZPb@5P_Mo4{*Fi8 zRol2a`%>RpEQmdP$RrfXPX`7-Z*2_9`#wIM@}{L-_lmKlX0OjeTz@rU0AW( zzDeSvk2u?7N9A2iyz62P8ue*CYREa4+B!Xz_f=rm-Q@xk+jTr*lm*Hr`p;e-BvrIJ?%*=t@4W!w}f-BDi2m?&g|9k>T=pHstQ_oF{X@ za_u4Ylb!BATxwZbbuvp=Xtmo29J_im(BxR;Ig5_lb`SI1Cs*z;3yV`X5dY4q!;z!( zarYxdrqfHhJ{0SFn@@UReOY+fj4KuTal!u?RR1#scAQBPE%&RLn5~nn(Xdu(gUP9_ z^%JsG8}oO3w@=AgZtG(q8vV#TgI}ofvyi&fnbZ|)nx&@|MIoZj|bYeoDF z#x1&G3s~>Q8#=_bEn4-!kX4Mc_ajrvwKY8|Hs)G9ANi)fvbpqp1=ppAQ`1-XR54$g zbpIgB)TyVr&iiOK?nw(j@+)~`V8p(slMdxYbGGZGoZ6?}Dpg*{v_8#jdHS8KJ6@uq zF?SsN7boYt;XW*C}oVB{e<>ou>=6w-tCk`k_eiu0-TIW%JcAD(6ry4WAa#`;v z7ww67E%-|7Yp_Rm`wnf}YsVNWzwemE_Gjr78SBPU1=a_xa|}flPM_M#quUqsymJHZ zF(%i`g;QSKS=S`Wvhc4<$kjSQ7NJ+1OaC%*Waf+NcNq7$oeR!Yu9TVd<3b8;2Fpb{jP+SR8zx*__{e0Fx*^x0MaJ>Q8q@E5s9kj2D%87UW3YyV z1((>&U)O)nY`o_BfyLtpkIB&@jY6LAsIcWL)Ro1;UG8$}3o>m!@k+;&&#<6-mYCYo zcdN|VEk9~qc6_$5W7+RVy3FkcyxhJ!^Z)vC#u_kBaM`6Ty+V*XpS@t-0@mvKg})@$ z@hk4`a#|m-onw1s_r>P{;fXa~Jdv|E6+47q)=lIx+~D7pps~TI@9~kM)B99;uPG<3*6Tb`>+|S&XVbB?d4)3@W9J@D z&=)SLb-0#M{7yk^?{c2AXVvDPv6!2BRH^>mj5Ajw6)e~lOm#$>zv`Ua@ubya@xd!r)l+87`!(fl*KPi$PalPXJ=XqbFuJ1@J~dy5 z%i(d+)JcnWNei*%rdb8-?^rb9n6T)x^m-3={yW>bKCCRNcb1+ex$6ARR<~Xs*Hw)o zQd0sxpV?jzabHExUDVjYvFOebR^0++UEOUn7L?7Hl4r*e*!b;~?3`&1JNXSvo^56+ zvs=93wm{XCGgBE3ESo67uq(4Qq4xZr4k4+#lZ6?cZJFvPzbV;iV~23X)l~^Q@^rL= zHw*J9XgyMNFxlg9Ftk2tV!HSdy^YJnJ>Ay(EDp0=roQpOY8Ho^p38U&q!jbomdP&T zFDP#6?zTDp__5f^V9O`3f6Tk+-ZDKvH>G05-k{~bCvr193}s#4Zq&LbTi9fG^bYB5 zanbE%98vREHR*GITrstFr%+HqfwD8h%AJl8Sr2v8HpQ^@`)Dtdmufv%uX;W2!(`Q- zVk7PCIllcb&4gI@M$XXKc$#t1ucmg!Goo`$YK|uCXz1(oF=)9P@L*O+%a#Ux)mhUT z{m<+W6BXY**Khhqy~Asd2c#~EJRp58c~9DoWoutW{JWv~g@t8FBWrRS%LUOZO!v3( ztw`IneBxJ~O}BX_NGtg6ntd{{V_{SMjDw6Cuad4`FPe5CGNj&sO=Q8+Rj*$M#03-= z&3Kw)R+uR4lrzoVoU5@Q*;x4Elg8LURtc%L6-}B)j-NhxLTS~KQi%!m67MYywveYtL`^lTL zrrv#P{9cDIex@rLnO2(}(OUPF+Mx*7ftGaBS>*up;(y?432aPfi__{%AkLcfom~X3cDs8y8nU z-C36C`Zz#3eBx}rnbWEjjz({L5M_EIK|3bLDS2m1{Q=E=iI3t$1s;A5R{FxH=FHa? zx>9?IxCU44;r&(N6*@tIr{diY8;PuBz078Iond}J^^wGzFFPDMTLZ*?T}fTF*K23g z+1?hr~OCDqMp1mV07m>z?e|) znQ`DhgTd|=lf?S>&;NRD)LO9YZbb64g`ar8^Cn1$ty6S6l(VPjY=c0y5##&6CkzVm zRvXARHke3vu(F>qV4C%xVP-R9_>r3Whvwxmk3v3Zo4Mw1?+ABVciw>EI=caXpRKdw z?XGhDt3R4gdNG@&v^*$rRA$IsZZ%VMb?zCrcVPks&&4%5D~@Q^dwo3P7j3rL!C&^k zrMdmj0#%L&OwGOJ)4E}0)Cs}Nl;$zHMMe({WnyZDq}%nm$qw4i3v;`xF%x{O|lTmWLd*b!gFQ-EqPA>h4zcm2Ps?Q>2WPG$q&${(G>C<3(nTz%9|3 z%{()XUfF-`ST9@sox%l+s$y6!nM6!gt)6||Xu7M*grcJ0v&FDX6E$wzW$?pt(YRw|>{N0au7ZvW)KBQFKo z4hFq@x8QE&${4|2#|^?RP2ewl)pYOtTbb0?D}vH{Ch9WnJd(RrW`oqea+j^y6EEn7nnPvy1DryaU73EexP)zC z?dlm5xP7nQv1zhgE^nZ#`rTYn@Yh2Y-r2gf4zCwoS1UPgw#KmX2;0$5R#mZH#ksKu zrgv7ZuE;K~*XAvBxA@QS<`Jjk*7_?<&pQ1kPE9cG*vR(b`7?nQ@m*7#<`fF7XnLfh zdT^UkZ`vxQ#e0(?XVy+|6ThO9`t1zEVzUf&q( zn`3O*ZDQXw7g(OP|J#swvEHTmMD^c;?H8vAT&%emTCgD};rg$G+)JO&ob)=I`{N^< z1bG|Ll>6**kGvD!uGrL)^Ev4Ie}<5CY#%l>`*3o<-0PM(L#F*qm~vO>iU5;$k*Xze zEM4i!<^^k-mLK7$dLNjao5!R&y;NtfkD}W_Ul(5I4zae49jhyhQ&qyIg|4kvlzg?b zX`igH_0oL{f(y>DoS(+cv2wqm*1JaymxCv7xp~IMw?ehPDP#5Voz)AYjUEL}6H+jE znrL7!Rh(;i3g_vg!iNMoxgA(`Mpi1v9B!$9d*Br76VaKj%rlq$-11|JWo+JzhOKJ@ zx>_46rZ#AvI5;Rnz`oFHYjD7NyQOBAJ3c-TWF;$B zJ7$zmQ|4|v5t;O2RWVZmYjjS1!x|S^heh)ev<{Ts*<$jwI4a?r`O(wr6E}9HFswSV zjW6rW1VIj&J8NTnCl>j5T{G9nzohTqu`*txt9@mmOkBO<20M;Vr6+Zm0?*1(L(txvPY+EKdGJb$5fhsV$Ol35ql;r4e)YV zx=Oo{Rd^a>w62by#mqKu({l+2fBTz>hDfLGd&qW7vvppY`8gT&kk3rKZ_UKBPB!k3 zPE^QD>gcQA+EH9mpZ#K5m~F7&^P-lHDI%q-eZ%N^&Q0;$7a?lP2s)3cA`fopX0Q_6sGdPV*d7x zxjcGVe_U>hKVr=CR(|(1>BqkPSB3pD{&?T?J`?ESwYx8WFW;hDA`SI^Wg2&~uXRZs zF<8y_Xv=}t8T*ud6CSkaFcwaecyRUO6`?0(NA?>Xh>Y5q!yfchd&-^}4ZZyVT4H;T zFPmrGp4_LX^f*?F+O z-f&^j3gav896BYx9tjx+C0x0z8<$*LQ2uJE&=!-mzq-m4a^dR_fb;ZWJfe+h!o z90q-7R~_bGnO+lY7!u1BvasUrXJ+P?OlkS&4fQ5ZkhVP{X1-0SYwLBPZENEeB`lqI zT=4q!q6hkwEwz)4Z4X=xK73_~OL!K?@7*n;+5Po~I#;%)9(~22vn;~+*L1FRs%x&P zbwocdD=l}|F$)~u`R4AKy_kWC7DSebYHgP$QwrtiPSMw@t#Pg~r+z*S<& z<=?N37Hejj%}xH#pgPZ;ukPvR%>2YRjWTbJ=odIXjDN?pK*6-O{+qVu-W97}OHLR6 zEdKYIZV>B?9i4%zV)ySn@h)R|!^{f|BJaN%Gq5sVHmREJ;Fu>~f8{xA=;XMk+uqCG z{1fAPc$d(^PaioK{d>l{SR~>@$c}q~Mpq)m(|JQ?tVwd;VYKgsr~fOJ=$8U{{wuRD z{^)qJ?-@gaPM2AAcW~ns$HOe8;VLYrG;fP~YW{BRQ=i?MP$M|mqEtw60?&r+M}3q` zxg3@sTl})=n>PD*;n;ba9l7btbU+=?Qu9?V@4D;%Ny z>{aTA*V`(&vY%P2F&#~`T9-48XJKB6`l`C@4z>`cFzaXQ(mh^q+weMSStM<&zbql3 zv@84(8<%K9e^`>CQA6of{YblnB~E9hVmet@mUP`;f6bzM#q*VMQq!1ptX@9ZJHc?f zCF|iF-B*#9Tc6Jtcx1k5+Qh%kMPIeqx0yIdiS}9*{GRHy*(RXo^xoAefl=>oerJDc zc+Ac2M(h2RUOa2Jb1~NV9$xV^Xc^yP$BO#5Eivn?J2xpO9DZK(K(t_K**fLqdcoz- za``(}?0Rf&`sjv;Lu%w2ho`1ZVvd?hqRIhIQ$sFYGWoVv@Z@4y*S&}0|1&74#xPyj z>&(%|-Ca zu*Ey;lh|L0guRm1^)X#^y<;ig`uQEJ_`K`pO>)h=d+vnu&yt}aK;T^xl zo|WNi)oM0cY<_1fYSOTrPfz!e2lW3Q?8%Z`wMO#D*;$2YM+8q6 z=T>y*YBJl4GOW7vsY&;bm;Q|I+7h3I>y9q7nU&Me>gk;F`PY@a$jVOw)sgCfH*Z+C zY`Pxf5EJR6T{F4mu;kW5YD;y+gq|@@Us<4~cJyX|7At?y`IsbelgEKldwG2{KXT>1 z?sV|lc;V@3o5K?t>T|9f<(_p!_{KYBh5rmsva^n)URw1?;>N?E>0gbW#$PGfDqgU- z$gIBO$`*aWHs#58G)>;UWk@k)|8zbu#Im$dJ2d7v&+0F&mtvUecSJ-92OLnnvqR@c za!__~sqU+_S3cc{XP5o3)iS z%B9FXW6|2iH^z<|rBk&0t~y?x@8Wt?cZ1x6ZEJUUAB!;g&mf>MODm`9P(nw>(pl^e z4l+($x+^l~KZ9ZQ_Nb|nLd~LuFFNJ=zc@;~pLX@52Bqg7O8im*dY=%DR-W zEoe`_bA zQT12XnD`0!nTlxkn@erW?m4z$X<^{Wq)Qenh~oiC>`!L+_wF@pp=oC!=-ug zM?aeiW~NO|dS5w1P`1_UXSS{B-N=){TMug_oXsx`s?pNWTkk5p;@SNxj})c4*FJq8 z-QVGKeT&F*%gt(MU0b;&!Y)P|Z!gzzGCNz=8tP@>{i4-IwRp$etWWJPj1O_bj{ds1o=)Rj>&Uf?J7!J;EYLqq>x}*Di2HQ>jbb(`!5AK-e z)-!Q?&8Zm@oHZX@d?&styz4vjkelS{V-J^ZmYMqM;k4}%cRsUudmgOUi1ga~ETT$j z3cGZYq1TLc3r{ev*>dba$w!`-UYEJWR%8V{_A$v*Pmb5>k?vPo>cX2Dr)tA)u=evl z{QwQ_9Y>^3+_~=G8Mp92>gm$_xeuSEIW=5cdwX}yA(2h<;u^2|L>}Zl?&W`H!{?@p ze_gN3HnmUqEE1G8Iq!C@!-9`aE9-N&>{xDi^YAkHh3Oqv1X7}w+8lf+u|hTC^WKB5 z*Q_qeM2A?P+0V+Q!EkE#zoZqB+Jz_Ao_WKdu47l@#-iz=G)w0>e{QnDDrv>#9DiJ9 z)uq(LxGv2*Kig94@vrU7;oo^UPKDn1smx;Wu}Ls&4Lgrnl1}D6wVV_8V!6Ye;Nn z`Q4-P_=sx453fG;CaqmEmVNo(Hf_wkyyI+cc70K=R`)Uuk@ZS?aF#nEd#d2hK+8s%ntJQ%&t>vJ;Cl~)$gpbG@SR8;PwNHnX;Tc&b9I(8(V=Sk4xlmkHx*KACGHFK%5JAM27TBu>$YR$tkS#A-cPm@(X z?!MCGKVt@4+oPLHIeXL;QcE|ORy%V$d{YwXx_dN``^g?hlX~VyOcy`IDTHm0G&-~1 zYEynwlV(i>Z~G?wvPO?}>$rGzg6^$7f5hw50+~M#KO3pH&9O0iq@HolQ@GV@?VRRK z%=PLl+5I}15&;p_Qy#y1+!Iuw8~MlO)#2zP55oge)%D)?GTeG*&~tE;j`Pz#G48FJ z60AOA7CXzQnf!9o&5f(SxV1~idiIYe$2X|P@+!0~S!R>)_J?EZyppTi)twDbj;o>zC&@jGe#A++7%b{7Qo0jst#PVf8!DgqN@= zU5+>BxNtYwl#7Mix5ZN?-#N|e(MHE}$s8+gnH~6Xe^S7$4e<+8PW71fIvtsy+#dQX zu~UcZ@1l2qioY`|is*>8-kvk#@txuXgDZ_C)ww@A-sr7#O{tsNBe9oN`;^zoJ=^y= zeb%jJ%-i<*PQjKguUNT#i(O^I52iZQA2&L(qJingd7FY#QP+alFLm9|jIwnC-p>k{ z)^xXF)9=-NMyq184~G11`>0>GdDg1GN3+%lzABpeD1s@zb>)U5yH{Lo*?Qx4{uAN- zckC}JT-hF)b$@nSV97M~6VX#IzFYHe0mA_YzqudvUqoE}uBUqM{W~qA*WT=V&zSF# zJk_|X{$h1vaF(Io#pCe;Og!0B%A6Hg{~VFzVeZj+{4C@V%gN)akIV{=n=@)LM)&Q} z{>yRMe^!#XX!g8m3Z^A7>sRRWw{3iolkBX(-Fo=*@f*fMd_0*=8gj=LPJQsAa*Ee1 z*E^eiLl$&CX%9OpBK1zo=*m$qUYAGz8Gdrfw<$^7yjH&;HGEHuTXU~~C~uaHP;yhc zz?YU!0=b2;ob5eNm%Url-Rx{~v5c)ZA>rt=maY3PSeh>nOy4+TZPd+Ui?}1MGS1q| z{FSjx)OqD?%V~cmEwngrOG#pF-EA4yD{ZqyZf%iw;n|aamhqT>%)F;6!JbiWtsipy zaw@o{gv_qYX4~|=UXH;$v`dq}_n7!8rdKK2>AY$C(wyJ=UOwg@pygZ8U#{_FbM%yl zMgp?Ds_&o4u}^D0=oPUb?BnMN+?fm+YozZo8ox-3RXJG``LLl)c!$=HkWx>M;M8js z_XQW}UE5#OC?#`RI`!5&l`C?O4~rVlkFY)MS9#_2j++V3OcPzpPS=}xp8Kh%6lr4i z$cEwP^nx0nQvc4aDd8(h_AR)%GS7eIOR2Q|1$vi`MO<(;NZ0R>RG0Lh{P5$-878k5 zI2>SH9CmEMG=sYo#=FN^yuItouQ@-~NwiJno>lsc%*&1?J2_{D<*t0aZC=nJg&oXD>v zV{mcjlx2@=Zk9}Xo3tvl@${F*Qa^rIfe^04wW9Gs4<;${HGTNc5HwHz5E;6Rqn9IxVImjTwI^*ntP#ym>i`MUx zC}HF1Y|F`CoIm4QWzSXR!(21|K8|Ae_vppyua-QP@^>~*`5dS}W7^h+7iu!$M;5Ir z-kEe-L)~(ES*P@h<^RsxY^z+5d;iFPhS~G%@6>J7-*7(JUn+eKq(qbJf{hk>07ho+Pf^JMGo=Uxh~;#F)i%8_wRn z%p=DCBAkDQ@4Mr^PTg0p3o1^%eB^d$#pdmpX?IBy``XnoqcDr zviQco@qs!`9M|r8>8_Z%>gTLyuOg1=T#1{W!lo3kdSlo7uhQ={-iezT-Fw;-vwa)) z?eDs8ZT@9Et2t$FRxWSf>u%I6fnMKradZ6T~MZEPpclt2QS++PzOtoj-!DnHi^HQG*KhxP%HM4z{OyZRj zJNBHH{%W|8B}7HR(Un*2;|#gfZRs@BFfMR}b!{Xv0bSo++smvDPsbHWxMI34UFfQ(tl9 zY+iq6gYhdC?M^Z7J#zmU;*?hDF5Kv6U;k5Fj)CEGc>2!5u%7U3Z~bB}C!}}WiRzjx z!JNM`VYO+?k11c&XGC$t9h&8**d}(wtmaU`ow#Q)f6v@V^I66rzcTske}-uly&r$B zH`*`ppF!te#UjOpxf`QPe{%isekO6*klVOkWxeswpGTP)Dk9jrMI^(7enqV+GP<(h zXq*Nvs*|?&3qsmG_DFqcdh65?dML4H(~2$PYdeBBEnS~9g>jn_+b!Ox zYYR^sVInxVu$%VwTv72UQIVb?%FvU${JGGM_}#sm7jc z))~L2e0zHELZ6)6>7SXl84tn@H=BJ_YgnYTcGb_Yn1{99I`!)o*zXkP?)oDZXRLdr z=>E@-TDoEmdrn!%e>`sATW7%Cq6JTk zGuy4yMpt%W-4j~B-wJnUUzjMh#N?jf$_XcA95cijb~nVZ=>4?+sin<3WnSuy>@^3Q zgf^YNx+Se7YWB6*yacxTUpt>DaC+!CMJi8_mfBUw@G_Utb;85H!sZ!z9*kZ3^-Cfr z`JZiw+jfjyob6DX({{gCKOU{O=-Fx3@LqJCx0LVW&briyhA#a*_k3g1A|tx424=n8 zvg;XdsMG}COI$0z*DW;oW$$<7!nSR4WvDsRXB^h4({QRQTGKU7p)|lqWi8&z5?j*#bq29+d_iJ*r#uFWS^5 z=;5Lo-|F|^yojs zt3-9?2A>V9^>UJ4g=+7)B7aAt&_?7xL($8wJI`K;@Y(p(1{!ca`IorosZEXt&+M(b zQ;nQ)B z3vSjwU2gbTai{Bzj>x6Ox!(!`a zMHz1t9-FVR4W3z?b$NRDwwIT`GTdXktMcjL`VQe2w~Qvuwas49+NSBi!5=?c!)dQ$ z?8I5zcFBclfimGyo4y;g{N{YOjxG1}n)U+=wTphOa&Wp5ZDlW~s=GR-c-Z$vab@vrTo)g9#cpxL0Q!7w65COu19ptdXOgwY#)v zfu+RhOY?a4F}BJ~6+A4<%~HxS>sj*gP0PfUdUfV%?4DuZvAj2Qo3v6Q_okUl1YRW)#d>pn0frW7V_^Yj(8qZ%qkt=j~3}U$Av+nymN2t&3R14p^I>5l^X_SH|GD zbnTPfQB4x!I~W^wIxhOg#Wv$?Qp!<|2pPfIPi_T0vvR#&RjE0>B<^Rbf?~7xbqOvj z<+%rSK3!e8nlb0xy0;BZ4#M*`hUGrq@kiKc-GiU?EIO+gPiIUFJ9N?Y=Kj}5GL{@+ zx^;8S`!gqM88fzs-mKc|^83o$%B7~I6ZcD``Wf)#Zc@KFT~zMcJCl~XY}5F5p4sbN zU>U=b^^&~;W+|7e&WG7_ zi}H9o@SMLWb*}#0`^$5j)-LdF$ra*ajZ8Hx516VPTP%}mv+i`W$!ZIZhJ=76dsvVD z{^_)C;l-_~vztPuiTtZ^?6a4u)A|^YFoXS1pl6K>U)s-$KQ;#3z1Wmp*gp=UUWSf0Qv_@Idj-B;UDC zFVC~2F)&%&6FOCAbKHCJ$vcNyf34bam+{=3t)jPH%`EEq`LN?>dPk$nfi0{5J>m>! zO$5UCfs5u+y8XmRz69dn4p#R_-*mJa3mB zO){*HQASz`$2;4| zFgw>oubge1>^{q0yXIi2n}C$|`89INz6?P+n%!adN^U&Ln3uvTDlO>opJ5AY*XJs! z7L|n6TmL;ZxXSwH$h0F;k>X+V4O8otO!cp<$mMpLdPtp5@kXv2i-A7(j=u}8)t{K7 zw|M$(*1h(k_OA^=yEDX&3-A7?o3=o#pi=X~>rc;x_HLScVA0|w zk&*jPW$Isv&i@#A`Gazx*v!3kp}YPwu$EQ#blh0su`>1zliG%y8=Gv~4(`~p+fd}~ zm2CB6(wECLm0SyQ1q8oL6i+!+(f0E0di5O}>YvjQz3B%vH?F!|#+ER3W0h|Dd==r%nqM{tT)MlgxLYuCqsc|Tsa-ynC2o!Zv#M*> zoRx|9Ir^jiUb?r#L49+k-;d8aOUjVQzV$~A>aSChh>}oJ4)nSf zeJrA)@6w`~kAjQ4x~i0(&gYu(a{J~v#|~IN{`adhkbU)(@4xzX@%?m?-W1QWM9Fj0 zh9ZTYKF1bG*EXZsv$ZaI?5MElJpbr;!^+Hxqam9`mo0jD&S!^#s9;}y(i-M+kI0&J zTGI}lJ*K5@qIK=sR>N5j>erSyO;RbsuKiRti@jB+c}EO@(JNxd-u}xF!OLjzbu>3wIW=3lQiauH0ZAVCC1RU zWrw-x_7%$MEh0N?Sijxo^ZL^sxViJ}VTu0?CbIMA{tG&PymS30)+}DV_)Ya9d7=@2 zOwV{_|FN7Q-uE!O%#h7TLZ+x7Xn~H>lc=8cg*C_6UkiprA8Zi5I%C@b(RVNPza3ym zxLL^bP&%o0nk_IEpEFiv{6hD+e#htwTQ>zCaMGWjI8S+rhZ>eQ>Y6L;Gru8R9o5GHe` zZi+M8nMtpmo~-*UuU&eGwc9Z*`at8EnEsWiVGTxFJ&|deeG+TS_DY-d2KzZBHgKv1 z#za1iKHVX$wE5~0v#EZGTL(;mMtW>}rWviSd-hVQ8 zF1=hYeb;E-0xQSOJC3cq?_y$nVE((q$=8nm<59c(rsG24t{Kh#fq#lwOm&*g9xZ05 zoI0~H|H_tIKl;4yH7)w^chanDQWeXKb*~*h|DR#%qQwUyd>QSIuVb^>9r#K@+ISjc z>u1q~{e_bko=YtY)X(exEPQ;Ad%n50z}koZ88&Mhif7k9;t|Yt(iJf&Zi5=srB zPpdBn`xxKwX592*TXJlw9Ak>BY7L)WQGN2vu5QcCM?_+kI)cS=fjPl8GBC)Z7%J*ESP#O?Z><{_9Lbr zZ3NhUHQAWZXPFwB_vqWd%c2_=HO^Kp2`KWN-@Rsj)3Ig$86LcNK4bSY#>@k2 zcg3`DnMoeiz4zsGg7GrN1=F+y7no%F#;-_i&p!E|;l`sbNwG7}wzTG7DGoOY<$e^m z=eB^gRq+u6>-fK}O^lX2A)n{x|E_N-*l=`mO|XH4;j5@9h9h39qn6e%M2PH}w|0s_ z+or%*uYXPs`k1(7b9vP{t}WZIH9T^0{jj0wglEVi>5b(Vif6DG{ZP1_wOZfyNJX4b z!^>&>A|Ex3$`K;B=V9F5K7_H#8m_fOImZR#jBVUj3SeAV`s|l3skeqhc>9ia34(++0HLt&7e!k<&20;N4-PDT# z_fi;|w#+V`wzod*F`HY^({~94wpV+F(vF3-CS0I~|1cFvIpnGyb7q64qTZtZ(71$D{};@mQ(i79 zKBDm=*kaMg#-pMdcc!F@yNXt;S2Rb}$0w?T0y?lyllIg*{uu}EFA z;c(#67Ymx-Gv?Y{y`sUnGopUOF>$kPZ{mWkvnUE|UhI`*6dLWEEg^iIi>q-nLvCfX z%L?6v(^jQiVXZJ#l{qzQj?uS@S#?4JCjT@vlhoIqZB1Vw^kuWby$@j=mz>ilypyoM z6f|kZ?UpJa~6SL>}SamaY*E?+6 zw1Ch1%<{Mn?Lu802X}sM<^DSb%!!B2y4FUREHz9FiI+8S5Sst^%$1<2B7QIZO4JUV z4fWE!ufBT55h(`WCM{VLn>$i3ZXAhpRtddu#rbQ~Ld`s{JzR#9CDhjRZ7<{P3hVjG z#`^b~{>1afmMvoGYS9eKKGwcJpgieT+4*|Tkav&N4_~#;e$;30DH*Y_Wc$Wn`#aXS zo14B)3Al3DX2o>2&BxM~h+N4^V}1PLhhoi<1O1XMn>)6qs$I-ou)>;o-b0O|?4bF{ zHYV;FN*7wAx*j}Z<1tiYz14QGH|0qD;r2z%Px4v z`z-eUlG;OaCbJ8D4P^|tsS*5Hw(h|+mPKpM#IBu_Y_R!5g;rLOOr)rKo4~Rfm+Xo1 zN``MX-Uxj&BTB1ZXlIfBCALMAkAK$?>J2Ry4xKvZj&Dc(9+vh08Q6dIeyYi6yE^lQ3kmugoKsJWT^HwkQJ$o0F19bqNXn8^?xx6$#;VvD{Z9fRT+1X2J9Gammsqo8HXsRd8{GQ;&Mg8Rg|J z-W8t|%O~8}dfI=&-uhKj>lc=4h3z}i*y)h=`seZ)tz6&4x$Kgqb(iP1@N8nNIju7J ziu(!Hby-XOECZ`UpY`Orp0B?maz*UOqkyAFWDRP#G}o)`F>e>29VKJStKT?HqV2|` zTgma}5%(%P#*%1j|N5g%}t@{OP?V~4O%eotrW!C!Ov7&Pz=K`Mk3up3@7L?C) zna6*n#H4Y@vy+Q%G}i}PPChNZ+UQNnLoS()gSp{XgcgW~F&M30aqph8;PLi5Cys3U zlz8_Y&py6Kygc3upMN|fktePE;GNylXRDIDb#84t-_)V%rKQBP)#{C3=e0kADHH=B%%K#G>w$vD!SNM(66<)j9r+n;$79{z-ahwr)mi z%rBRn%+DgS1rBBiYZ=T5KXXX5(U|juW@3-vDz5qlgM2m-3t8JUj7&2ZF8vXE@KVp| z%oDYz9=hI;m?L{xi2GMcj3cZ|a)1eMjz}&>Re9s z`LfYQqjw4`9~4`@^!g+EufRf+F?V%W?!F|xO9nZt#S9yygWmF2%Sxwvyz{;4Xx6{}0;`4|$m=jyR6A)|Tm9rr&xE8N+0 zN9yu-fs4OeHYq;kym0whNqv>y?EefE7M<(QggNM#8C`o@sPk6ltJ0geQ~w^YT*z1! zq*M7KJ6ZScC%$Eerl&qSnYt{HEq;fa=;cT8jz6aIu?VCc3Y~r|A@FEQPSRZ2j}Fe= zhTZR&GK*B0R)qZ#eI~kPXKze^F=vIpD6jSGKXq&?)Ka$p@#p=hH(6$S;wRPm<-dX$ zjFx8J{LHFYp>4F>U0B2QN^qOyDgUGMZ~pGwGS7)2CNRC=K!x1mL(j#FPL{_!3sKIM z@&Bu)rX|4jE=uF##Y8TK$7?>-%+fG)J}L0z+r=|IYk1=(Jl)y+BP?puCxu5pA4N@F zmL|j4l^%O}wS{J;tJB4mk~iF~re82UYhK?f-nj9+f$C|&H@jjVtkRkpxgvB)!SaaH z&Uq^iq((b1a6}aC)w^*`Z`q5!QZHc!#&Y(A$07?Rwe~K_`WSY))81^|^uMjmvcV1- z`Atb@le0bk)-AF;bw^}{|Aq;DBJwc>U&543{z*RPoRqwA=G(ew5%!s34$3^Ddm1la z;Zav=YIJfu}zbdN?WYHrk~-Qwq(7} zO8$UWy;n-pj~i|06EK;(HE?3n@s|4^el=-6Q8~m=6j4@h`$)%R&NIdXHpg~4+}-`h zYAcf-XRPS91GCp0zE`U05}Iqty(Y2OB1+Kf@HEe}_oQ=vzxdX0YgdTYj~d5QT+u;R z+#jbt)#P)X`TXpn;}Y7;j9RQ2jyf5jq|=h`TyIU>ERHx3)zD{*^w@QeG372RT6+n@Yw zIG-4#nw7_Tq)y+Y$jV--R8UZN{k{C7S?{V{b4tYrs_UP2a^0~z7^WgqBx05Lqeseap;5iZwAK76vC~TR z4n^*ncxIoBd|-Hd?|%j>yZuM5M$O!&6&CuXuwbTM_Ac!&`_c+ltV?v*p&uA^)GPgp z{@N2(;$Q6+p7XeCdBsLb>#(jHd$hr}KMIDy9877FvDQ1^{Z_ItbXmf7Wm$z_@}!<` z5<9KU?uPcJOnbf1FhuL{N#WN8_1b5a-cQhWoZj|ca_X65op)C(?@H<0H0e^WL#q$# zY6t0uY)Xo}(Wl)+Bc$%9?0TWc#hQ?E(D#|>-4>S><_jL`e!C+PQ?-KW+C8^B)8dV$ zZT8YQuv+4nN7&`1R;x|7Z41r(d#0$h?aITZJ;h%g7|K%jl}d(f+S{>j&3r+}4XOX? zgVmZ=JruL)c;WftTyt?~YZGI~vdIUNXB*Yw49e!dnA%{xjso|2tAB{%ujK zeF}5f@9u5u4?R&ndiu_d??0Bk$I~pRiC8nQw zv|8mq!(4|6L35{WS?P6@H?sZ9lmkaL&tO#wv2o9y$-N=yt=A zXk?`J&As`;Q7A%@TWg`m?%l2T_UQ7hSuP$E+?G10W65m!AGY4kD|#5j4{8)hMw~Uw zP0_ifS$b<4cm3xD4tHnAWnD^qt1cG7@xd|C>vDD~*M^78A&(ku++wHL1-;8Tp8rrW zU}@XL&Ann1g6412GUV*NcwDM$weuOv<4@GIboaOJ^ggnDp7rmP{@6GyUVScM!Oo}8;&p!N z>2B@b_$MIkWcTHTC$$wlHyRWlxwy4!i%a(Lm1$a^O;0uX#=M(udwThEqzUj?$xHT^qQ-xTufg-N$j!rV}|#kXF1o3;ieJk@36Hd$!dn(t6D z`Hgpom*pk4I@djmCKW`k(m3Y2J#~ec=+uJiYr&-c!x*uG+><6Ut{j3rGoIc)`eZP3iS_*%g`%g^$vTSJdBX zJi;_lV6ns2RD-Ad1~PS#{$81nHXVAhZ0e~U^RE9A{JZZ6gWt~jHAnBXRDR~alC)&i z>|BW-&yQ@n;x@4{LeYHHo&6FAxer@sOl6Q2aB3}gS?js)sj6qdWzijTJ7-%}a;8_g zJ>F(#f7tXN=kkg*dtTfyOo-2BT<4jpv_q72cl`*)UrOdplkiBFs)3rsxVJG;bzAbP&b@IH*e};?Gov*kkJ51vUHSIkhRK(~Ykl;2) zT(%-~1#dJLbIY;~CofOgxL~2t!pb#I?oCLH@OhUiw$AaG!lT94)HZD7*3RcXY{cjM zzE{H1R1(FV2X7`EwwU#@1S+1Pszl2`mq z4mp*Pv2@=tT`?Cm7MrhUN;;3MnKZRc^O;bdW!3_b4_8-g>X3C%U~P!rqI|PjV!8db?Ax$+Er%Gj8x(68Tmqyr zHfr!ZSoc)isN0ZL_t<7xZrP1{8kR6G4CyI#-x(7%i;s!Z_u+mn)@<>BS*LjGIcLwg zSJSU~yU*RPJHM^Na8b~%RkMmV32|kuo$yWcY+&S8lb;?8=NS(alm;&M-Ec8ozHHyK z>@!Srd>aj4+2bs$7Q@anZYLH*?G@n4 z@$=_TY_o{t+UX}2IJxp<=!LtbLM*D52KCdN*v>mmW)h5DDRe4lMV&&10N3}P1CN?7 zCp`Zy+b>{Ypcr4kkoRWwL9V3-pZYOaCQE-hbXzwl^VED6cCX?d!%0liORjA3TqP5l z^-)fwshE4x%KX&G-Q_ET-87WiggF#nWJww?E7N&XIqQ4|57)KOX~H?ifP z_?Pzj{|q9RcFo;B{jalIxqxnJV#}smXGEK%b2xt|v0L0ev(Srq+a=}D2~#*f_qzRx zir&>36)t?J@p$&zIBw>$2!$tCj;HdjSJ-xGCXYU6(V`7Gr!*GsiMadR_FDVpcMMBg z^`~uR75qD6?KYR2VbKy{XIdP1cBV;6UE0jOOIhg>qi=oRf&H12Z`f=)xTqmsymhra z@0ty4iGG*1aLkyJb3td)inTo!ZV`GLgiZ7sL^otCp534|v#~%ce9NlU;^!u*ZrBt1 zUT0Iu1evsiKboH|zY-1C`zo8Y-JyeLOB~OkC4w&U3XWUO+HBZ;rR2w~R~h0qr~fd^ z)XT|C&N^K5eP`Re#`-6_%zO5@6)akFWRb{TDXm|vha9z7qwfA%ACPU+x2SQ~9Xi&{OHhr8E19!$|B;7MOF#df_VVcIRf-xtinBBJn7XK& z3s{DSoy^oy>iHdFw6NSw`;kmt1J8Y_C!9x4uM+#uaOZ^LUKzbh2b2Bkt*)$|CaPGO zRd@U6e+FLpz>ELbZuuoWWSVfx#x6c+o!N>DG7_0wFOA0^fuH#(n)Fz$b zvdVaI{8#VKC3oMpvL0S_e)*35XT>5;IqBT}&rpA>m($@q|H}Ui>yEtt*mF~-?9RHl z+fzYt6?}STZ&7?b>?K_@NdRW!y zwed8go8QEegQ+#_MqHClNb??NUlew0DT7nw^wl1oFZ{gMPFb}oZF|R@EBsn_=d`%9 zwirFQ#iBR4zaz0Xaq5ELbBB*k)=GRmb8kZ2vxev_21(KIru*sVA4GjIT*!LtTllOD z*ZMypXRh6t>K?FP?&;-&f(FOFxHjMZn@|(bx@L`AprPe-1?kZ8>w$BWT{`9zHV24i z7S6o0plhu|$hNMa>aH2jltQ^RXMOCjC{V~gykF!$L$I6amXe-yhQdHrHNMEiJL!zF zf~>k-4i&8$fyRe+RL#(n)0)8ObnVvag&xlY84K$}r`r@;PTjm+zjF4r_j1bHl+s=^ zB#4|hK~$qxj)yqE5H7;d94H6lHW0E3Ue27O)y%#(tYluq)paK>K^P_ z^S)R>ReJi@P@O&Rf))r_IP6|MbEQ$6{LaJ&=QFnTx7jUk|5tk|vGdH+C6WfAV(Tn< zr*wvJ2^u%H3)DO5>S*@p1es>2a$H+gr>4@-=2LK3^6=^@8R8llg?r4#+3n~3^IJ5OYa2d78EQz7h#tAyqK4J_s+~Id5w!s@6ukF#AsMx_OnW&BZK3^ zgS|P|rk+W+^J&;qEw|nyc;Zb*Eni~w=6xnx-mnWyL7U8$MsUpHQQMBbcpCwv3P>zip^Qq9@kGl`AGU2lg=iIU3WKZ3(HxjIwdaQb#hMfoKB~1;ryy? zU(d5hzY1=RJP|Egaxb&hsCQNp-^Pxgf8-`#OUVijH*x;B|BR?uIKSR) zxJe}MRno%_#u;Kq%ZvH$=_?&LBg7S8wlL3d!5hJLt&L93 zX&pOOZMF9}bDqm`-|{1DKc;v!9zM0lkx}XXrdAf0#jF7g-m3FkVjQ*hOU$sBnl4%= z7-NxtN8?TNR4eC%RTs9c_;h@#Aq&UKpsVrIBzr_`bETcNmi2snmXh0~`I$$^sYgod zQ1qN@^;ti|+r?aEq&0uG& zRSRDIXXsk7f6hPOXFgN4IRYH`)gBy|t?fyE5P5cDa9{o7oWR!A0Xa8bnQHwq=uc!+)7Dx1iGo27wx`)qwR+Q0#H=5mDOAGracO_;q@SI|E^<8Sz z6#0YO?b#w;>Am+pb03K0OkJ~%F+}J4i<5uSd01XfO_f(P)byIcaoI9){{qXF2!qo+ zUq$ZK3e;>6UD0qNMlJP<_ZimwJBO{5AJ*T|pV_0`mzeN2YFqx?e;M`8RWX@yk2t-~ zXI(H5b)5G+L+MK9G=pd{)<0`jSjM9DcN8JmnA*__-gw3~J9gdDx~D>Of&y!$`lq6+w12dj=-YU$&YmQ*c5=fX0qIMd+bkY99Zv90 zTCn+K%Yrb*pabH}Hy>Wm4V<2pu=keO(NsARSzYT@iw%CfVrpby?UK;3h-ll{;+Da@ zy?V;M9~&4OS&ka*DbRT{wI^?-Y2ryj(aBa!OZ6;&zV#n~V?Zuf~^pw`x?RU3$YB zjDDzvX-7EjDbCn&!FlT(_p`USR;I>m z+LvnG$y2A7{rN}aY{hNW4v{xa1O5nq=P~@Yvn@B~aO2c3PD&SMd>3*$5F3}4n4^5k zK6kC)e}>HlTAwc8VK|u+{i`oP2Y7+yR-79!DD$VPjn!Z5IOLPwhdt^j& z%bM0r6SV4AwWRSL@X=Zs?$jMMqkMyl<2;?&Cmq}|ANm196BBGP9gMZ z{Fm+p?U@ByOeXCtDWB>~W;=gS&z;{$hHP`ehHsuP$Q-ns30eHORaryWbCGW^XAmxt(z5?GX;cBd=j~n)3tyrHJI_Z z$StEz^AnamQ#+VN`(A9zU^Y{;@0DiGUnTP+k@r)mLF1B(YeSVeCN5E0!5$HBT5K$1 zDe(BK|BQcZ$M>(1eWzJ-RQ4VBQ_=dC#VbCCa_sEtb-fhWHE$x*otmRP`*(czli0$& z;*FZ-_5**a{}lVn_kI;M57^eZYW>+C^M!5Cy#3E09%@l9_2(aFd*B(3rk-xxYrPr?4XI3(uU2f>~=+(SDtNda& z_4?W0g|2U&=$MfiGrfn)^-05u0B-LUA}cD48Jj*9JHFUfc*SD}d!T9AhUv#PY^ZNL zQm7F&&1c2!NRgMdhZU}F)+l0*N~o6g@Mh7nc*3t@f9e-!%d=IDOR_s0k`#7cjnxR? zF1lDIyF&BM4biPPLJal`IZR#5u6(~qEPTQ`c3su_>8+aG{bChIc-VX%%eu?TZef^s z(w*OE6<=%f+^rFO_1rN>C$^kgqLX{>-i$=|C3~NW#kjqRZOLu-&Z()>uWz6AC;dOe zfu~b>4YUI^R!r1r+Ef2C^-Gf%XfA@L-T`@B!a z-W44Sp0ioqOFX1q))R8M#Nu4y+-VILcUdmY$?iU4xZO5-;_2P{XO^(2>zD|v*|vO| zaC!d5x^b(#LviuTfb5Ul&KAG=kQg?kc`g#mw za5`~D;9q?+<5XVGvRljCJb9iT_iB85#yQhrqlm??-bsdH&hi>Jd;9-0SajIG`Pr$P zu8SJB*aU0c+G z8de?ic9i{8pDC_>g>8jk$<3RATAP+I>*_HCCiUD?U=hgM6`Auwg>zm36P~B`&>|uwjz4OZ1`@3l=JGJ#noo z^oilS*h$|uT4>Mnw_cQ;v*fDi^oIv@YHxGZ$2Z*Gz4Thq`3v=DT<@$b*brB8MTYyU z*_93NznUKp-j?@AK~L|aP4H5UvvsBGKWaVr>-FN)OWn)NQ|nl_oDwe(XW8QQ%={VC z)}qEq#-%?OE9p9|R;`t@>6^bTbi*|swN!`gzK;^tcX)|hTg0IBtFQ6bl*_K)V_bG| zahqjyt=e5!bTx2l$x*JUt@W#?OE+srH#gsyBHvPUqA+NcLZTnrqKloL0kLP;IWDwi z*=wql-f*AXnY+5=Ni*|J1xB5Xo7QeOxXpL_?#yee({|77R$67gbftK=x$=Qc3)F7T zPGq-uWq0k$)y$BBfVB%}urkDY-&#?S@!+Dy=5h^=Ao22rseBTD4l5L-x+<)w-?iXu zfK=mt^^K`bk5jZwS506s4&8FM>0Z+2y)$BDX4alw-2a0oKktB{(PRzgIcG1tK6RnG zKQZi>T>pyG$*J%D=9-5Wv5cK1Z#7WV5pG~drKh6k@YI-uoasN-PBGyZ1EzBIt z7o>Q0dmV0Z^7$wl6yr1H%HjBs^o23U5@bGyE)$xzxqQ{MgdGc;@A|kkr_L$fdGMpb z>=*vZuVOpzr>9pG`ms%#x!PIX?BrQzdzHm?2MR=_qK;me^e8o5_=?)2V;{g~RY zROo697dFgu-)17{>@-nF-_}LJ!l`xIm6yV2v>u4Fibd^SWpk|j zqwdjnd|E0^6TDs7=5wf@S^3mh&oXO*S*X!9mm6yZzs0@osBdjQb?84s3iBlMJk{Ah zl#8YZ%J{i)T(k*r4+wSS%ib~NN}*-bY0t3B3}WWYi$8H)6v<7TkpJ-+Yly4mBV9qZ z{|tw=z5XDgyYkfJ*0Y95i+atPE(l&Rk`8Ax?C~y|A|~U$*4Ab1#%+Z&8Upg>G3$KN zZ#MdPc#(6`q3*ZSW_8z}QVf<}^eW~-^@e=M(^X%%6*lP{WENm4y@d>^=*Qgw&sHEyBO*o9e&2jYj{w&vuQ)<%9?4n zWG4P+$bZYuxa#;jt5>1dEKKyo9u&AdI=D<`-^wn_cX5+nDKVY;wN3KG`g%A0V`uEY zI#;f_%AgyyBHrk9@e1ws&$06(e*6i0*fzhSGbDaizvvyEE$UOFWHRg?Ir#EjD|+1H zcz(U>(%{=oTD7``A^#@rxi65^={)&(VKU=t(ZbtRdyg6MuTbw_@j2$BPt-j9JAxg2 z{a0?z;3_WyH^%n~N6$GdwpVHEski^MuQD*b{i@HVaPOqc zgOz^nVoo7Dt~zHFn}61DnezFMGecnaGwFFdtqx@#vXXQZ=yl9keMDgj*E1!pX?L>1 z({Gu55nQBo)rXZ|U@mWnzS)iirx(vq+B>7DL8C73fw4^Pp+8}pLv<3a3C_EBmhozJ zKVSV635j+ty?bgi?Vd~v5^yYyusou{(4w>Fvr((!rWIG8+D>`D<3Gb=m)wbABAczd zixyrNjZQetuzjiXM3Z|~te5A$Sw2Igv9jq}WJvHPkrOHxS2OmSxG($CIXUOUjS7!< zH?=>!idj^wb6B0tOMKtK*;8VgQnWWmbj)ORj@1^UMN`Fp@ERW8+04V6y25W}NS8@-BxhyD>KUtlxLW?n|M+wB zlxbE;?OVgLtG&$Xx303D(=_jj1Y6_23wet(SM?iQxe!w7YRtAQMfK=Q!R)7X4DXLD zyRvsH%d{fh#m_>f%B;$0Fh0M7sm1=$^1t=JI(^bk25dX9^*zg(cU+r!Wn%TMR=l=+ z8fj>~z)qpRAu{68Pf2IPzz3Rcrz=nHJ+S-af{+lVw*}5qpRQn&+p@iWMV*8XVOg4u1Tj3&04s7 zv&=Tf)(r)hqcgvCe^|nDcxL0V{_rEB+)K1B%xTu0H)ElIe)HYmO-$_fwPeM=opP=) zcbM2lcURyU70S|VLV~>@ki;C zKWqwddKmEPn1->Y{)el&XJ^hoWpX6q&f*y@TBqeqdfr@F9_ZcU+UaWZ&(u54jYB)R zn`P&Mwr@9kX^DZl9DR;)U%+lIEJ)rZ%qvK5h#f(9o8SipdByIf2 zG4(UMs^3e~70wnt`|>j z8GjFk+CA>ccp&iJC8Xs09cks4)1*7hjyycgDdqZA`=aqx!57oYzv`?@-~6iDZgHIY z68HG7s@Bu>JAPffe3id>ABzz0_A3nhO&t4trmql6_c^kwg@Nr+#~F?!b^m}Pb=>QB z=!zvMdfmPBalPQ%q^&jo83I(-l+SLH>{X6r-}#?`kxxt9@62a*4rMR1hWySssRrBh zi{9Ak1i32+B)`jI+4O3~JH~*gZu>irxUx>rpK7&Nhw=Dyruw+*e@%CyR_tlmF8{V! z*8o#Yy!O(~a)k-2a=kH|`m9vlsXvToj%;!X1t?qn>`L7d9#` za(uif#=v1}Senk#o16bLC`|sv$aY6YkNsDFml5lqUmb1I;qH@IclF8&_yoK4X(7yfSjP)56W3=fufMi!{Ohtd=T+|XNA=PH)v40#XP&sXahZPhkiX*`p`^>Yk#&Cn z>z-GZ3@%B*n{=amUr6j<**i@{M@yE2OZaclzhstd;eFB#j1{6jTNiE8iP3E-$P{H* zoHZ~0`hSMx4_dbakN#{6VF+EhEo4pJ#V9k5a_CLeTjz`RAi@6>w-TlhsMo-Tb8$sRO56WxzhNvfS$z1Q)q}&oJ@v73bb6EyHF;lQk(q(>HKGeW$x)U4G|fcCMT0R#o)|64tpq z=UM(3p0oYnaN0j9u_cN}zTniicEQSff`L(n%?44$_3SJ5XC(0FTddf?U@ki0+Nrg2 zj}-3QbC{9%F!qnx#4B&2+QsD(XMa^I3hquYVVt)x_ejDWw^!A@h94zXxI2s9x<7;K z{de;nA|cmOnix}3Z`upJo4+rCD`g6^so?SshHK{y#Ke3Od@>hAv26KMZ@_%#p+i8e zYxt=dN{$szXG_#qwrfm@lwfP~(dl}z)a3C;$0ru7PY)X%oXBFs^?t_|m6g+;x@I*u zR9sob^|AH!Yh%{%Y+_0jZ2WWZ;7l>4joS+E&)~LT6{r!qdRk#T=cm*=n6->n^ax9AZsh@oqQY@jRao7aw#l;5r^WL5%D8ne+!{p;7DZq#qPK!@Aq3#^E&6 zn&@BMENtiH6cz=XZgqE)?GZPP;9aw8>)qQOCuW$l-?9Fvx$TAI-;U$OCy%G=oaKC2 zA8s{w*L23}t`Dl&Ee{Q*zGJ*C?-jV~@dL7ZjfhI-$Q~&yYwZ+8 zPOC0he?~_#s=-Y!lWT{5u9GxJd*IoSlzhi4Tf*zT0xF9BIQ?*T?C)SOShcV}$7HXM z!TGt4o7R1v5tVpvX-AIN@pra;CHIXFG;?5UuaS3z84QGZlPBCDR>rU~0v{jbr z>}=1f_@$p&>N_1cW^L@5dwSQ+-05rBUYh>cdZ&PK;@g*Ri+mai*M1P56q9!E#6<4$ zKwg&3ElUL!8%&5hv+tz!n$uGo)Oyb|d<>e$6Ds^~;i4(+Lj5{?X;+m@miQg`sldwo zD)`(UHx|ZokEb=t&D_vnr~GisiMP{MuXK9f>z@-MzT%SL+KqRu>RZZfk1fzM61`&d zPBly6Lhon26N~0<$WnBb{~^1({o{@R3*`fg_V}rp=RNTJxFh7^-i)pU5oMMI_mmnx z$Lu?JEi<*W?r}x{uhI#X11jB%B$pOxBt_2En6$sVe-BhR9l201BKbgJTUX%b8h3+cuj$%T?kW4eTZmA2n?0(0#WWgg=&tJ`={mcf59kcd#h9peU znl84e&0H(VLSy3Txd);vS`Dr+teP6Bv}w)_L8&t$mvsVvH}}}bxArc*m$chEv|hR) zJf24;iOb+%gZGLVhdC?U4#d0UHSY=B8T?ewc=P<02>zc6@w$H;mIU=Meieub{>q{7 zL0D5Nm_LwpdCZYldpQ^!N?i&z?>Rk9^7I`GU%iu+fgX0Md!!jlKkHO34{g8WkbX^E zZ1z&VrYw+Xp^|&DI;sBDyJN2f8QTr?4eYpCICst!x|Z!+Bj`NM zWY@HNT#L_$z3R>nSmSHGGIC0Rcm5;6B}})slq|n*nBA4$EN$p}s{CJ9(-emb4r;QN z4ccd2%ibAiojCVz;*I>2YsP?S5a%8>l=^a|nokibSZT>3wq(kP8pt)vv zfsUR?y-ul(PC#*}rbBVyibcAqjrx|$Y{YgqPkEGcIA=WrbJm8-?fm}~j@#?)Ur{6S zfca;LK>$NtcH)L&&V=@}qPm`b2Iq=4^W14-_IdvPuRG_1YYR@U?A+e(!RK{1hiMWLk>^%i<+;le#*6^ z@{F0nR&j{{Td&j4mkBT**;wvg?GbS5QEc~LuX~b}0nf@dGTxT|=D64J% z1rPQuOImj4N8kM5dV#=Wi8^}W;hYQGl-HbMcocX{m0|ZQalOb?mXB^+$uHjVy$+Zo z(zwUF#n-#KJL^BgOXi!$19+d@4?6POs^{7|&+dG-2d@t+exEt0w6tN#SRag@#8K-I`h=VAFrcV0W#v zWcZQI1+DpY3A;L9+4@afoj7knebs8EF#l4PU6NJZm;bm#Tv=E&JHqv5Mbka;f@$i; z0%A<9xwGd)3-0U{(NC%Uvif{6UwB=D`)>V9NsIPQSaKltRYuJI znJvK<9y^bhr{pu9dYTZKene^U3bGPqN|svMCiKXi`h}+FcqcZt z8Q;k`DDqC^B-=XGZCR|0^KN#m*!ru>c2VKydM29%JdZR_&C8f}EkZnyJ44}Z<@CtH zX}jJ)fof^LJO8$j%h8rBm7VwEjuFyJN z>+{I_m15Eg(+=y!UuBj*dZ?-x>!#@4bC@|lTT&_BS$o!7)@K#+1ttYnv&C#ToX_z4 zb9UqIrwR2(ANCurX3V^@N<=t(#*=~)fo&@atGY$lPS0TavHh(v(;kQR@}h%WiPrtH z0TJ4X;o;kYPDUK}&?@<~>F$(_We>vz&k8Dr+9gK9&dd$gvIGquC*tKO^~ zT$jaeH|8u9OI(m7?J4>Bh*{i&{f^Q+_BSoMVev>oYKN?^$~n#m?w~`WF1;ytvV9kBHa`2SK{Mr$h^gk1)py)j zof@t^zMOQ`O(3`N!s%)Cvu~VJZJA)P#C(kP~*v4QyoTsVZ+uHk2!DbDHbUdyIkWS zwsQZWW3`9P)~VjQEF~`SB(cX>s`==Xln>JpVI@@hm^hoyYqqcDG1so2FxX+B46M zSt|AE+6@wa7M?nk^?HG-YW7Fj>T}aqxYqAx-nqWA>FLuMa!va^L+5$!d1i8ZUTSIB z@0l$ccNW|Zy|bpfd9mmf>EzC$MsI!w2d+8Zk+m+F%B($JH+M*G6Ip!R=tYyElf~lV zGY6vPr7d+ow#vfieaGr-9tGxffu*|(SzD(c^{Sq(bCW|>dD+j#lFF&YJblT#ZiH(k zX*xF6Z%mOhsb29)_rYO-2m5C{mFZh*yXF3jR!7qd&zKncOAQ^Q?i9(G^M!8r*?4S^ z;mNp!o5crz+N5ZgZUBpw!HykN!sqDO(B+-LO$#wH6$KmIJL zGw<=*KK7SqGB)*Tsny?2)op{Q{wCmQ68O}WU4i?I8w;rlq(ETwr`PlU{d48XDUhSUZY_YpR!lk-Dbe-{v z1y4)9vbvtu?DXKfKIPEjS1H$@Hsu{Ib84M+FHx(t_e$=wjZMp#CZBl4P_N9iH0l8V zl_KpF-x=D1ZENnFcD!=fTQQ8Iarc$bDM@C>6!e9~{v0@<9{!mB-@;I5)`e^8cmkA8 z`<99vxs!0$SFa+9+O~As)Idok!P|Vcr*5}Ke7OGAg!{@4%}LCxDp6~X zde!r<>|3jI>2}lIGn>=zu;wfdIhwtqDb#_f;}z>dzG;d_j_QP@K6`I_I_u)HYk_+X z@JyP%Xi;h*b5&}d$A$Nk;tIsx3!XW=X~B`GKTbA(H_h&?XiA+goUy#9W991t0inA( zo2Hp}KdM)Xp3>-=bK7vUfy9>5oq5e%GZ@a9+js_@tlwrRAkC*0Gv&I8{}sMR7bfmu zl$aW9Y8ka>WoP>C1FLsTFf)w~C38${NnFtsrkNA23+7*84Jy>_S$oFiBio0<9}ku| zPHo&JA+>7isui(I>U+hmSx>K;Hj^_gPwBFNXQ{JHnyN*@vYFXumftgHJaXaR0|RA- z$ATFYM6OPUfs4o%S`LFp3k@@s|4da%QaYbb||mlY5VJExKB^-DsQ&DP}?O9ktYVJ4zfmPvm(2b zrUc3+3tsp+quoF~N4xD|Z@X~BH2qCXcbWsYJlJD=+U0}NY{S~~QXQd6Urtr%tDfq1 m4%l^jO`}Bl#{#CMFS|ABmho1+irw~lh1P?4=HKoA-vj`-j%+dj diff --git a/doc/gettingStarted/settings.jpg b/doc/gettingStarted/settings.jpg index 510b29ebf4ab608e63ba6fc52039e3bc00872fe0..075708adee18a64c3ff4ae5d61c3c971d0386e5a 100644 GIT binary patch delta 52454 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≠sz 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 z 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 z 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 diff --git a/doc/gettingStarted/version-1.0.jpg b/doc/gettingStarted/version-1.0.jpg index bcfc8c639d1ff99261b058a10340bc47dc198e2a..59655b1a0e92643c215dbecbab414acce65e31da 100644 GIT binary patch delta 50860 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

wHJ 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

PCZRoMb?U9Ta3TD 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�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 delta 112194 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

U(PSEU-X~B?)2|@_H*jn|1$*6S<|`rZQ3$@ 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 z%0A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 j5P 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 Date: Sat, 6 Nov 2021 14:58:10 +0200 Subject: [PATCH 048/188] Reorganization --- doc/gettingStarted/gettingStarted-1.0.md | 18 ++++-------------- doc/gettingStarted/updating-software.md | 11 +++++++++++ 2 files changed, 15 insertions(+), 14 deletions(-) diff --git a/doc/gettingStarted/gettingStarted-1.0.md b/doc/gettingStarted/gettingStarted-1.0.md index a6881939..074c34a5 100644 --- a/doc/gettingStarted/gettingStarted-1.0.md +++ b/doc/gettingStarted/gettingStarted-1.0.md @@ -13,11 +13,12 @@ By default, InfiniTime starts on the digital watchface. It'll probably display t You can sync the time using companion apps. - Gadgetbridge automatically synchronizes the time when you connect it to your watch. More information on Gadgetbridge [here](/doc/gettingStarted/ota-gadgetbridge.md) - - You can use NRFConnect to [sync the time](/doc/gettingStarted/time-nrfconnect.md) + - [Sync the time with NRFConnect](/doc/gettingStarted/time-nrfconnect.md) - Sync the time with your browser https://hubmartin.github.io/WebBLEWatch/ - - Since InfiniTime 1.7.0, you can set the time in the settings without needing to use a companion app -## Navigation in the menu +Since InfiniTime 1.7.0, you can set the time in the settings without needing to use a companion app + +### Navigation in the menu ![Quick actions](quickactions.jpg) ![Settings](settings.jpg) @@ -31,14 +32,3 @@ You can sync the time using companion apps. - Enable/disable vibrations on notifications (Do Not Disturb mode) - Enter the **settings** menu - Swipe up and down to see all options - -### Bootloader - -Most of the time, the bootloader just runs without your intervention (update and load the firmware). - -However, you can enable 2 functionalities using the push button: - - - Push the button until the pine cone is drawn in **blue** to force the rollback of the previous version of the firmware, even if you've already validated the updated one - - Push the button until the pine cone is drawn in **red** to load the recovery firmware. This recovery firmware only provides BLE connectivity and OTA functionality. - -More info about the bootloader in [its project page](https://github.com/JF002/pinetime-mcuboot-bootloader/blob/master/README.md). diff --git a/doc/gettingStarted/updating-software.md b/doc/gettingStarted/updating-software.md index 1ad0040c..52d35164 100644 --- a/doc/gettingStarted/updating-software.md +++ b/doc/gettingStarted/updating-software.md @@ -48,3 +48,14 @@ You can validate your updated firmware on InfiniTime >= 1.0 by following this si - Open settings by tapping the cogwheel on the bottom right - Swipe up until you find an entry named **Firmware** and tap on it - This app shows the version that is currently running. If the firmware is not validated yet, you can either validate the running firmware, or reset and revert to the previous firmware version + +## Bootloader + +Most of the time, the bootloader just runs without your intervention (update and load the firmware). + +However, you can enable 2 functionalities using the push button: + + - Push the button until the pine cone is drawn in **blue** to force the rollback of the previous version of the firmware, even if you've already validated the updated one + - Push the button until the pine cone is drawn in **red** to load the recovery firmware. This recovery firmware only provides BLE connectivity and OTA functionality. + +More info about the bootloader in [its project page](https://github.com/JF002/pinetime-mcuboot-bootloader/blob/master/README.md). From 1d3098baa772176476febb05531a074c0d133b56 Mon Sep 17 00:00:00 2001 From: Riku Isokoski Date: Sat, 6 Nov 2021 15:04:37 +0200 Subject: [PATCH 049/188] Update ui_guidelines --- README.md | 1 + doc/ui_guidelines.md | 5 +---- 2 files changed, 2 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index 22c91b5c..ecda014a 100644 --- a/README.md +++ b/README.md @@ -21,6 +21,7 @@ InfiniTime is an open-source firmware for the [Pinetime smartwatch](https://www. - [How to implement an application](doc/code/Apps.md) - [Generate the fonts and symbols](src/displayapp/fonts/README.md) - [Creating a stopwatch in Pinetime(article)](https://pankajraghav.com/2021/04/03/PINETIME-STOPCLOCK.html) + - [Tips on designing an app UI](doc/ui_guidelines.md) ### Build, flash and debug diff --git a/doc/ui_guidelines.md b/doc/ui_guidelines.md index c267b79b..0cbd39f5 100644 --- a/doc/ui_guidelines.md +++ b/doc/ui_guidelines.md @@ -4,13 +4,10 @@ - Buttons should generally be at least 50px high - Buttons should generally be on the bottom edge - Make interactable objects **big** -- Recommendations for inner padding, aka distance between buttons: - - When aligning 4 objects: 4px, e.g. Settings - - When aligning 3 objects: 6px, e.g. App list - - When aligning 2 objects: 10px, e.g. Quick settings - When using a page indicator, leave 8px for it on the right side - It is acceptable to leave 8px on the left side as well to center the content - Top bar takes at least 20px + padding - Top bar right icons move 8px to the left when using a page indicator +- A black background helps to hide the screen border, allowing the UI to look less cramped when utilizing the entire display area. ![example layouts](./ui/example.png) From 52d19065893f6af66fa0e1c426852b820358f3b5 Mon Sep 17 00:00:00 2001 From: Riku Isokoski Date: Sun, 7 Nov 2021 18:30:29 +0200 Subject: [PATCH 050/188] Separate and update coding conventions and contributing pages --- README.md | 5 ++-- doc/coding-convention.md | 40 +++++++++++++++++++++++++++ doc/contribute.md | 58 ++++++---------------------------------- 3 files changed, 51 insertions(+), 52 deletions(-) create mode 100644 doc/coding-convention.md diff --git a/README.md b/README.md index ecda014a..4b80ef34 100644 --- a/README.md +++ b/README.md @@ -17,6 +17,7 @@ InfiniTime is an open-source firmware for the [Pinetime smartwatch](https://www. ## Documentation ### Develop + - [Coding conventions](/doc/coding-convention.md) - [Rough structure of the code](doc/code/Intro.md) - [How to implement an application](doc/code/Apps.md) - [Generate the fonts and symbols](src/displayapp/fonts/README.md) @@ -48,9 +49,9 @@ InfiniTime is an open-source firmware for the [Pinetime smartwatch](https://www. This project is far from being finished, and there are still a lot of things to do for this project to become a firmware usable by the general public. -Do not hesitate to fork the code, hack it and create pull-requests! +Do not hesitate to fork the code, hack it and create pull-requests! Make sure to read the [coding conventions](/doc/coding-convention.md) -Read this page for more information on how you can help: [How to contribute?](doc/contribute.md) +You don't need to be a programmer to contribute. Read this page for more information on how you can help: [How to contribute?](doc/contribute.md) ## Licenses diff --git a/doc/coding-convention.md b/doc/coding-convention.md new file mode 100644 index 00000000..6672d54d --- /dev/null +++ b/doc/coding-convention.md @@ -0,0 +1,40 @@ +# Coding convention + +## Language + +The language of this project is **C++**, and all new code must be written in C++. (Modern) C++ provides a lot of useful tools and functionalities that are beneficial for embedded software development like `constexpr`, `template` and anything that provides zero-cost abstraction. + +C code is accepted if it comes from another library like FreeRTOS, NimBLE, LVGL or the NRF-SDK. + +## Coding style + +The most important rule to follow is to try to keep the code as easy to read and maintain as possible. + +Using an autoformatter is highly recommended, but make sure it's configured properly. + +There are preconfigured autoformatter rules for: + + * CLion (IntelliJ) in [.idea/codeStyles/Project.xml](/.idea/codeStyles/Project.xml) + * `clang-format` + +Also use `clang-tidy` to check the code for other issues. + +If there are no preconfigured rules for your IDE, you can use one of the existing ones to configure your IDE. + + - **Indentation** : 2 spaces, no tabulation + - **Opening brace** at the end of the line + - **Naming** : Choose self-describing variable name + - **class** : PascalCase + - **namespace** : PascalCase + - **variable** : camelCase, **no** prefix/suffix ('_', 'm_',...) for class members + - **Include guard** : `#pragma once` (no `#ifdef __MODULE__ / #define __MODULE__ / #endif`) + - **Includes** : + - files from the project : `#include "relative/path/to/the/file.h"` + - external files and std : `#include ` + - Only use [primary spellings for operators and tokens](https://en.cppreference.com/w/cpp/language/operator_alternative) + - Use auto sparingly. Don't use auto for [fundamental/built-in types](https://en.cppreference.com/w/cpp/language/types) and [fixed width integer types](https://en.cppreference.com/w/cpp/types/integer), except when initializing with a cast to avoid duplicating the type name. + - Examples: + - `auto* app = static_cast(instance);` + - `auto number = static_cast(variable);` + - `uint8_t returnValue = MyFunction();` + - Use nullptr instead of NULL diff --git a/doc/contribute.md b/doc/contribute.md index 595a5996..70fc567c 100644 --- a/doc/contribute.md +++ b/doc/contribute.md @@ -14,10 +14,6 @@ As the documentation is part of the source code, you can submit your improvement You want to fix a bug, add a cool new functionality or improve the code? See *How to submit a pull request below*. -## Spread the word - -The Pinetime is a cool open source project that deserves to be known. Talk about it around you, on social networks, on your blog,... and let people know that we are working on an open source firmware for a smartwatch! - # How to submit a pull request? ## TL;DR @@ -25,7 +21,7 @@ The Pinetime is a cool open source project that deserves to be known. Talk about - Create a branch from develop - Work on a single subject in this branch. Create multiple branches/pulls-requests if you want to work on multiple subjects (bugs, features,...) - Test your modifications on the actual hardware - - Check the code formatting against our coding conventions and [clang-format](../.clang-format) and [clang-tidy](../.clang-tidy) + - Check your code against the [coding conventions](/doc/coding-convention.md) and [clang-format](../.clang-format) and [clang-tidy](../.clang-tidy) - Clean your code and remove files that are not needed - Write documentation related to your new feature if applicable - Create a pull request and write a great description about it: what does your PR do, why, how,... Add pictures and video if possible @@ -38,9 +34,9 @@ If you want to fix a bug, add functionality or improve the code, you'll first ne When your feature branch is ready, **make sure it actually works** and **do not forget to write documentation** about it if it's relevant. -**Creating a pull request containing modifications that haven't been tested is strongly discouraged.** If, for any reason, you cannot test your modifications but want to publish them anyway, **please mention it in the description**. This way, other contributors might be willing to test it and provide feedback about your code. +**Creating a pull request containing modifications that haven't been tested is strongly discouraged.** If for any reason you cannot test your modifications, but want to publish them anyway, **please mention it in the description**. This way, other contributors might be willing to test it and provide feedback about your code. -Also, before submitting your PR, check the coding style of your code against the **coding conventions** detailed below. This project also provides [clang-format](../.clang-format) and [clang-tidy](../.clang-tidy) configuration files. You can use them to ensure correct formatting of your code. +Before submitting a PR, check your code against our [coding conventions](/doc/coding-convention.md). This project also provides [clang-format](../.clang-format) and [clang-tidy](../.clang-tidy) configuration files. You should use them to ensure correct formatting of your code. Don't forget to check the files you are going to commit and remove those which aren't necessary (config files from your IDE, for example). Remove old comments, commented code,... @@ -52,52 +48,14 @@ Once the pull request is reviewed and accepted, it'll be merged into **develop** ## Why all these rules? -Reviewing pull requests is a **very time consuming task** for the creator of this project ([JF002](https://github.com/JF002)) and for other contributors who take the time to review them. Everything you do to make reviewing easier will **get your PR merged faster**. +Reviewing pull requests is a **very time consuming task**. Everything you do to make reviewing easier will **get your PR merged faster**. -When reviewing PRs, the author and contributors will first look at the **description**. If it's easy to understand what the PR does, why the modification is needed or interesting and how it's done, a good part of the work is already done : we understand the PR and its context. +Reviewers will first look at the **description**. If it's easy to understand what the PR does, why the modification is needed or interesting and how it's done, a good part of the work is already done : we understand the PR and its context. -Then, reviewing **a few files that were modified for a single purpose** is a lot more easier than to review 30 files modified for many reasons (bug fix, UI improvements, typos in doc,...), even if all these changes make sense. Also, it's possible that we agree on some modification but not on some other, so we won't be able to merge the PR because of the changes that are not accepted. +Reviewing **a few files that were modified for a single purpose** is a lot easier than reviewing 30 files modified for many reasons (bug fix, UI improvements, typos in doc,...), even if all the changes make sense. Also, it's possible that we agree on some modification but not on another, so we won't be able to merge the PR because of the changes that are not accepted. -We do our best to keep the code as consistent as possible. If the formatting of the code in your PR is not consistent with our code base, we'll ask you to review it, which will take more time. +We do our best to keep the code as consistent as possible. If the formatting of your code is not consistent with our code base, we'll ask you to review it. -The last step of the review consists of **testing** the modification. If it doesn't work out of the box, we'll ask your to review your code and to ensure that it works as expected. +Lastly the changes are tested. If it doesn't work out of the box, we'll ask your to review your code and to ensure that it works as expected. It's totally normal for a PR to need some more work even after it was created, that's why we review them. But every round trip takes time, so it's good practice to try to reduce them as much as possible by following those simple rules. - -# Coding convention - -## Language - -The language of this project is **C++**, and all new code must be written in C++. (Modern) C++ provides a lot of useful tools and functionalities that are beneficial for embedded software development like `constexpr`, `template` and anything that provides zero-cost abstraction. - -C code is accepted if it comes from another library like FreeRTOS, NimBLE, LVGL or the NRF-SDK. - -## Coding style - -The most important rule to follow is to try to keep the code as easy to read and maintain as possible. - -Using an autoformatter is highly recommended, but make sure it's configured properly. - -There are preconfigured autoformatter rules for: - - * CLion (IntelliJ) in .idea/codeStyles/Project.xml - -If there are no preconfigured rules for your IDE, you can use one of the existing ones to configure your IDE. - - - **Indentation** : 2 spaces, no tabulation - - **Opening brace** at the end of the line - - **Naming** : Choose self-describing variable name - - **class** : PascalCase - - **namespace** : PascalCase - - **variable** : camelCase, **no** prefix/suffix ('_', 'm_',...) for class members - - **Include guard** : `#pragma once` (no `#ifdef __MODULE__ / #define __MODULE__ / #endif`) - - **Includes** : - - files from the project : `#include "relative/path/to/the/file.h"` - - external files and std : `#include ` - - Only use [primary spellings for operators and tokens](https://en.cppreference.com/w/cpp/language/operator_alternative) - - Use auto sparingly. Don't use auto for [fundamental/built-in types](https://en.cppreference.com/w/cpp/language/types) and [fixed width integer types](https://en.cppreference.com/w/cpp/types/integer), except when initializing with a cast to avoid duplicating the type name. - - Examples: - - `auto* app = static_cast(instance);` - - `auto number = static_cast(variable);` - - `uint8_t returnValue = MyFunction();` - - Use nullptr instead of NULL From 2314c41ad66836fe4142d73895ad0ae2ad18651c Mon Sep 17 00:00:00 2001 From: Riku Isokoski Date: Sun, 7 Nov 2021 18:45:24 +0200 Subject: [PATCH 051/188] Reorganize bootloader readme --- bootloader/README.md | 8 +++----- .../firmwareNoValidated.jpg | Bin .../firmwareValidated.jpg | Bin .../firmwareValidationApp.jpg | Bin 4 files changed, 3 insertions(+), 5 deletions(-) rename doc/{companionapps => bootloader}/firmwareNoValidated.jpg (100%) rename doc/{companionapps => bootloader}/firmwareValidated.jpg (100%) rename doc/{companionapps => bootloader}/firmwareValidationApp.jpg (100%) diff --git a/bootloader/README.md b/bootloader/README.md index 9f99602b..1a02ebdc 100644 --- a/bootloader/README.md +++ b/bootloader/README.md @@ -115,8 +115,6 @@ sudo dfu.py -z /home/jf/nrf52/bootloader/dfu.zip -a --leg **Note** : dfu.py is a slightly modified version of [this repo](https://github.com/daniel-thompson/ota-dfu-python). -See [this page](../doc/CompanionApps/NrfconnectOTA.md) for more info about OTA with NRFConect - ### Firmware validation Once the OTA is done, InfiniTime will reset the watch to apply the update. When the watch reboots, the new firmware is running. @@ -126,12 +124,12 @@ If the new firmware is working correctly, open the application menu and tap on t Firmware validation application in the menu: -![Firmware Validation App](../doc/CompanionApps/firmwareValidationApp.jpg "Firmware Validation App") +![Firmware Validation App](../doc/bootloader/firmwareValidationApp.jpg "Firmware Validation App") The firmware is not validated yet. Tap 'Validate' to validate it, or 'Reset' to rollback to the previous version. -![Firmware Not Validated](../doc/CompanionApps/firmwareNoValidated.jpg "Firmware Not Validated") +![Firmware Not Validated](../doc/bootloader/firmwareNoValidated.jpg "Firmware Not Validated") The firmware is validated! -![Firmware Validated](../doc/CompanionApps/firmwareValidated.jpg "Firmware Validated") +![Firmware Validated](../doc/bootloader/firmwareValidated.jpg "Firmware Validated") diff --git a/doc/companionapps/firmwareNoValidated.jpg b/doc/bootloader/firmwareNoValidated.jpg similarity index 100% rename from doc/companionapps/firmwareNoValidated.jpg rename to doc/bootloader/firmwareNoValidated.jpg diff --git a/doc/companionapps/firmwareValidated.jpg b/doc/bootloader/firmwareValidated.jpg similarity index 100% rename from doc/companionapps/firmwareValidated.jpg rename to doc/bootloader/firmwareValidated.jpg diff --git a/doc/companionapps/firmwareValidationApp.jpg b/doc/bootloader/firmwareValidationApp.jpg similarity index 100% rename from doc/companionapps/firmwareValidationApp.jpg rename to doc/bootloader/firmwareValidationApp.jpg From a0c7b48b8eb6f2b59dcaec846c5ed46aeabf1e6a Mon Sep 17 00:00:00 2001 From: Riku Isokoski Date: Sun, 7 Nov 2021 18:55:51 +0200 Subject: [PATCH 052/188] Replace companionapp pages with links. Add companion apps --- README.md | 6 ++++-- doc/companionapps/Amazfish.md | 16 ---------------- doc/companionapps/Gadgetbridge.md | 7 ------- 3 files changed, 4 insertions(+), 25 deletions(-) delete mode 100644 doc/companionapps/Amazfish.md delete mode 100644 doc/companionapps/Gadgetbridge.md diff --git a/README.md b/README.md index 4b80ef34..2214a359 100644 --- a/README.md +++ b/README.md @@ -11,8 +11,10 @@ InfiniTime is an open-source firmware for the [Pinetime smartwatch](https://www. - [Getting started with InfiniTime](doc/gettingStarted/gettingStarted-1.0.md) - [About the software and updating](doc/gettingStarted/updating-software.md) - Companion apps: - - [Gadgetbridge](doc/companionapps/Gadgetbridge.md) - - [AmazFish](doc/companionapps/Amazfish.md) + - [Gadgetbridge](https://gadgetbridge.org/) (Android) + - [AmazFish](https://openrepos.net/content/piggz/amazfish/) (SailfishOS) + - [Siglo](https://github.com/alexr4535/siglo) (Linux) + - [InfiniLink](https://github.com/xan-m/InfiniLink) **[Experimental]** (iOS) ## Documentation diff --git a/doc/companionapps/Amazfish.md b/doc/companionapps/Amazfish.md deleted file mode 100644 index 90ad20c2..00000000 --- a/doc/companionapps/Amazfish.md +++ /dev/null @@ -1,16 +0,0 @@ -# Amazfish -[Amazfish](https://openrepos.net/content/piggz/amazfish) is a companion app that supports many smartwatches and activity trackers running on [SailfishOS](https://sailfishos.org/). - -## Features -The following features are implemented: - - Scanning & detection of Pinetime-JF / InfiniTime - - Connection / disconnection - - 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. - diff --git a/doc/companionapps/Gadgetbridge.md b/doc/companionapps/Gadgetbridge.md deleted file mode 100644 index 678fe7a1..00000000 --- a/doc/companionapps/Gadgetbridge.md +++ /dev/null @@ -1,7 +0,0 @@ -# Integration with Gadgetbridge -[Gadgetbridge](https://gadgetbridge.org/) is an Android application that supports many smartwatches and fitness trackers. - -Gadgetbridge supports InfiniTime [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. - -## Demo -[This video](https://seafile.codingfield.com/f/0a2920b9d765462385e4/) shows how to scan, connect, send notification (using the debug screen) and disconnect from the PineTime. From 88e55b2504f52c7d89f733bf5141bc67e525d908 Mon Sep 17 00:00:00 2001 From: Riku Isokoski Date: Sun, 7 Nov 2021 19:38:54 +0200 Subject: [PATCH 053/188] Update updating instructions --- doc/gettingStarted/ota-gadgetbridge.md | 12 +----------- doc/gettingStarted/ota-nrfconnect.md | 12 +----------- doc/gettingStarted/updating-software.md | 15 +++++++++------ 3 files changed, 11 insertions(+), 28 deletions(-) diff --git a/doc/gettingStarted/ota-gadgetbridge.md b/doc/gettingStarted/ota-gadgetbridge.md index 971eaad0..022b5e4d 100644 --- a/doc/gettingStarted/ota-gadgetbridge.md +++ b/doc/gettingStarted/ota-gadgetbridge.md @@ -14,17 +14,7 @@ Tap on it. Gadgdetbridge will pair and connect to your device: # Updating with Gadgetbridge -## Preparation - -All releases of InfiniTime are available on the [release page of the GitHub repo](https://github.com/InfiniTimeOrg/InfiniTime/releases). - -Release files are available under the *Assets* button. - -You need to download the DFU of the firmware version that you'd like to install, for example `pinetime-mcuboot-app-dfu-1.6.0.zip` - -## Gadgetbridge - -Now that Gadgetbridge is connected to your PineTime, use a file browser application (I'm using Seafile to browse my NAS) and browse to the DFU file (image-xxx.zip) you downloaded previously. Tap on it and open it using the Gadgetbridge application/firmware installer: +Now that Gadgetbridge is connected to your PineTime, use a file browser application and find the DFU file (`pinetime-mcuboot-app-dfu-x.x.x.zip`) you downloaded previously. Tap on it and open it using the Gadgetbridge application/firmware installer: ![Gadgetbridge 3](gadgetbridge3.jpg) diff --git a/doc/gettingStarted/ota-nrfconnect.md b/doc/gettingStarted/ota-nrfconnect.md index dbc78296..800bd6bc 100644 --- a/doc/gettingStarted/ota-nrfconnect.md +++ b/doc/gettingStarted/ota-nrfconnect.md @@ -1,15 +1,5 @@ # Updating with NRFConnect -## Preparation - -All releases of InfiniTime are available on the [release page of the GitHub repo](https://github.com/InfiniTimeOrg/InfiniTime/releases). - -Release files are available under the *Assets* button. - -You need to download the DFU of the firmware version that you'd like to install, for example `pinetime-mcuboot-app-dfu-1.6.0.zip` - -## NRFConnect - Open NRFConnect. Swipe down in the *Scanner* tab and wait for your device to appear: ![NRFConnect 0](nrfconnect0.jpg) @@ -22,7 +12,7 @@ Select **Distribution packet (ZIP)**: ![NRFConnect 2](nrfconnect2.jpg) -Browse to the DFU file you downloaded previously, the DFU transfer will start automatically. When the transfer is finished, your PineTime will reset and restart on the new version of InfiniTime! +Find the DFU file (`pinetime-mcuboot-app-dfu-x.x.x.zip`) you downloaded previously, the DFU transfer will start automatically. When the transfer is finished, your PineTime will reset and restart on the new version of InfiniTime! Don't forget to **validate** your firmware. In the InfiniTime go to the settings (swipe right, select gear icon) and Firmware option and click **validate**. Otherwise after reboot the previous firmware will be used. diff --git a/doc/gettingStarted/updating-software.md b/doc/gettingStarted/updating-software.md index 52d35164..214200a8 100644 --- a/doc/gettingStarted/updating-software.md +++ b/doc/gettingStarted/updating-software.md @@ -26,14 +26,17 @@ The bootloader is easily recognizable with its white pine cone that is progressi ## How to update your PineTime? -To update your PineTime, you can use one of the compatible companion applications. Here are the main ones: +To update your PineTime, you can use one of the compatible companion applications. - - **[Amazfish](https://github.com/piggz/harbour-amazfish)** (Desktop Linux, mobile Linux, SailfishOS, runs on the PinebookPro and the Pinephone) - - **[Gadgetbridge](https://www.gadgetbridge.org/)** (Android) - - **[Siglo](https://github.com/alexr4535/siglo)** (Linux, GTK based) - - **NRFConnect** (closed source, Android & iOS) +The updating process differs slightly on every companion app, so you'll need to familiarize yourself with the companion app of your choice. -We have instructions for updating the software with Gadgetbridge and NRFConnect. +All releases of InfiniTime are available on the [release page of the GitHub repo](https://github.com/InfiniTimeOrg/InfiniTime/releases). + +Release files are available under the *Assets* button. + +To update the firmware, you need to download the DFU of the firmware version that you'd like to install, for example `pinetime-mcuboot-app-dfu-1.6.0.zip`, and flash it with your companion app. + +We have prepared instructions for flashing InfiniTime with Gadgetbridge and NRFConnect. - [Updating with Gadgetbridge](/doc/gettingStarted/ota-gadgetbridge.md) - [Updating with NRFConnect](/doc/gettingStarted/ota-nrfconnect.md) From e53f1bfd668a5c130352616aceb6c660821dc14c Mon Sep 17 00:00:00 2001 From: Riku Isokoski Date: Mon, 8 Nov 2021 17:37:25 +0200 Subject: [PATCH 054/188] Summarize updating-softare --- doc/gettingStarted/updating-software.md | 28 +++++++++++++------------ 1 file changed, 15 insertions(+), 13 deletions(-) diff --git a/doc/gettingStarted/updating-software.md b/doc/gettingStarted/updating-software.md index 214200a8..40586724 100644 --- a/doc/gettingStarted/updating-software.md +++ b/doc/gettingStarted/updating-software.md @@ -1,14 +1,18 @@ ## Firmware, InfiniTime, Bootloader, Recovery firmware, OTA, DFU... What is it? -You might have already seen these words by reading the announcement, release notes, or [the wiki guide](https://wiki.pine64.org/wiki/Upgrade_PineTime_to_InfiniTime_1.0.0) and, you may find them confusing if you're not familiar with the project. +You may have already encountered these words by reading the announcement, release notes, or [the wiki guide](https://wiki.pine64.org/wiki/Upgrade_PineTime_to_InfiniTime_1.0.0) and you may find them confusing if you're not familiar with the project. -Basically, a **firmware** is just a software running on the embedded hardware of a device, the PineTime in this case. -**InfiniTime OS** is based on 3 distinct **firmwares**: - - **[InfiniTime](https://github.com/InfiniTimeOrg/InfiniTime)** itself, this is the *application firmware* running on the PineTime. This is the main firmware which provides most of the functionalities you'll use on a daily basis : bluetooth low-energy (BLE) connectivity, applications, watchfaces,... - - **[The bootloader](https://github.com/JF002/pinetime-mcuboot-bootloader)** is responsible for safely applying **updates** of the *application firmware*, reverting them in case of issues and load the recovery firmware when requested. - - **The recovery firmware** is a specific *application firmware* than can be loaded by the bootloader on user request. This firmware can be useful in case of serious issue, when the main application firmware cannot perform an OTA update correctly. Currently, this recovery firmware is based on [InfiniTime 0.14.1](https://github.com/InfiniTimeOrg/InfiniTime/releases/tag/0.14.1). +A **firmware** is software running on the embedded hardware of a device. -**OTA** and **DFU** refer to the update of the firmware over BLE (**B**luetooth **L**ow **E**nergy). **OTA** means **O**ver **T**he **A**ir, this is a functionality that allows the user to update the firmware how their device using a wireless communication like BLE. When we talk about **DFU** (**D**evice **F**irmware **U**pdate), we refer to the file format and protocol used to send the update of the firmware to the watch over-the-air. InfiniTime implement the (legacy) DFU protocol from Nordic Semiconductor (NRF). +InfiniTime has three distinct firmwares: + + - **[InfiniTime](https://github.com/InfiniTimeOrg/InfiniTime)** is the operating system. + - **[The bootloader](https://github.com/JF002/pinetime-mcuboot-bootloader)** is responsible for safely applying firmware updates and runs before booting into InfiniTime. + - **The recovery firmware** is a special *application firmware* than can be loaded by the bootloader on user request. This firmware can be useful in case of serious issue, when the main application firmware cannot perform an OTA update correctly. + +**OTA** (**O**ver **T**he **A**ir) refers to updating of the firmware over BLE (**B**luetooth **L**ow **E**nergy). This is a functionality that allows the user to update the firmware on their device wirelessly. + +**DFU** (**D**evice **F**irmware **U**pdate) is the file format and protocol used to send the update of the firmware to the watch over-the-air. InfiniTime implement the (legacy) DFU protocol from Nordic Semiconductor (NRF). ## How to check the version of InfiniTime and the bootloader? @@ -18,7 +22,7 @@ You can check the InfiniTime version by first swiping right on the watchface to PineTimes shipped after June 2021 will be flashed with the [new version of the bootloader](https://github.com/JF002/pinetime-mcuboot-bootloader/releases/tag/1.0.0), the [recovery firmware](https://github.com/InfiniTimeOrg/InfiniTime/releases/tag/0.14.1) and [InfiniTime 1.0](https://github.com/InfiniTimeOrg/InfiniTime/releases/tag/1.0.0). -The bootloader only runs when the watch starts (from an empty battery, for example) or after a reset (after a successful OTA or a manual reset - long push on the button). +The bootloader is run right before booting to InfiniTime. The bootloader is easily recognizable with its white pine cone that is progressively drawn in green. It also displays its own version on the bottom (1.0.0 as of now). @@ -30,9 +34,7 @@ To update your PineTime, you can use one of the compatible companion application The updating process differs slightly on every companion app, so you'll need to familiarize yourself with the companion app of your choice. -All releases of InfiniTime are available on the [release page of the GitHub repo](https://github.com/InfiniTimeOrg/InfiniTime/releases). - -Release files are available under the *Assets* button. +All releases of InfiniTime are available on the [release page of the GitHub repo](https://github.com/InfiniTimeOrg/InfiniTime/releases) under assets. To update the firmware, you need to download the DFU of the firmware version that you'd like to install, for example `pinetime-mcuboot-app-dfu-1.6.0.zip`, and flash it with your companion app. @@ -43,14 +45,14 @@ We have prepared instructions for flashing InfiniTime with Gadgetbridge and NRFC ### Firmware validation -The bootloader requires a manual validation of the firmware. If the watch reset with an updated firmware that was not validated, the bootloader will consider it as non-functioning and will revert to the previous version of the firmware. This is a safety feature to prevent bricking your device with a faulty firmware. +Firmware updates must be manually validated. If the firmware isn't validated and the watch resets, the watch will revert to the previous firmware. This is a safety feature to prevent bricking your device with faulty firmware. You can validate your updated firmware on InfiniTime >= 1.0 by following this simple procedure: - From the watchface, swipe **right** to display the *quick settings menu* - Open settings by tapping the cogwheel on the bottom right - Swipe up until you find an entry named **Firmware** and tap on it - - This app shows the version that is currently running. If the firmware is not validated yet, you can either validate the running firmware, or reset and revert to the previous firmware version + - If the firmware is not validated yet, you can either validate the running firmware, or reset and revert to the previous firmware version ## Bootloader From 5eaae4175c19f0e2752d3e27372f5aa578dec980 Mon Sep 17 00:00:00 2001 From: Riku Isokoski Date: Mon, 8 Nov 2021 17:38:21 +0200 Subject: [PATCH 055/188] Fix versioning --- doc/versioning.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/doc/versioning.md b/doc/versioning.md index 48e05043..8b87d473 100644 --- a/doc/versioning.md +++ b/doc/versioning.md @@ -1,6 +1,6 @@ # Versioning -The versioning of this project is based on [Semantic versionning](https://semver.org/) : +The versioning of this project is based on [Semantic versioning](https://semver.org/): - The **patch** is incremented when we fix a bug on a **released** version (most of the time using a **hotfix** branch). - The **minor** is incremented when we release a new version with new features. It corresponds to a merge of **develop** into **master**. - - The **major** should be incremented when a breaking change is made to the application. We still have to define what is a breaking change in the context of this project. For now, I suggest that it stays **0** until we have a fully functioning firmware suited for the final user. \ No newline at end of file + - The **major** should be incremented when a breaking change is made to the application. We still have to define what is a breaking change in the context of this project. From d1583035d9564ca49d00711cf53ad07a35038b7c Mon Sep 17 00:00:00 2001 From: Riku Isokoski Date: Mon, 8 Nov 2021 17:42:42 +0200 Subject: [PATCH 056/188] Link to companion apps --- README.md | 10 +++++----- doc/gettingStarted/updating-software.md | 2 +- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/README.md b/README.md index 2214a359..b85dba33 100644 --- a/README.md +++ b/README.md @@ -10,11 +10,11 @@ InfiniTime is an open-source firmware for the [Pinetime smartwatch](https://www. - [Getting started with InfiniTime](doc/gettingStarted/gettingStarted-1.0.md) - [About the software and updating](doc/gettingStarted/updating-software.md) - - Companion apps: - - [Gadgetbridge](https://gadgetbridge.org/) (Android) - - [AmazFish](https://openrepos.net/content/piggz/amazfish/) (SailfishOS) - - [Siglo](https://github.com/alexr4535/siglo) (Linux) - - [InfiniLink](https://github.com/xan-m/InfiniLink) **[Experimental]** (iOS) +### Companion apps + - [Gadgetbridge](https://gadgetbridge.org/) (Android) + - [AmazFish](https://openrepos.net/content/piggz/amazfish/) (SailfishOS) + - [Siglo](https://github.com/alexr4535/siglo) (Linux) + - [InfiniLink](https://github.com/xan-m/InfiniLink) **[Experimental]** (iOS) ## Documentation diff --git a/doc/gettingStarted/updating-software.md b/doc/gettingStarted/updating-software.md index 40586724..316d77ff 100644 --- a/doc/gettingStarted/updating-software.md +++ b/doc/gettingStarted/updating-software.md @@ -30,7 +30,7 @@ The bootloader is easily recognizable with its white pine cone that is progressi ## How to update your PineTime? -To update your PineTime, you can use one of the compatible companion applications. +To update your PineTime, you can use one of the [compatible companion applications](/README.md#companion-apps). The updating process differs slightly on every companion app, so you'll need to familiarize yourself with the companion app of your choice. From c12fc5e3132f88e2b134f9feed70a8bc1cae5e7f Mon Sep 17 00:00:00 2001 From: Riku Isokoski Date: Mon, 8 Nov 2021 18:11:29 +0200 Subject: [PATCH 057/188] Improvements to Apps.md and Intro.md --- doc/code/Apps.md | 43 ++++++++++++++++++------------------------- doc/code/Intro.md | 2 +- 2 files changed, 19 insertions(+), 26 deletions(-) diff --git a/doc/code/Apps.md b/doc/code/Apps.md index 7c2d7a05..b8e4a3f4 100644 --- a/doc/code/Apps.md +++ b/doc/code/Apps.md @@ -1,11 +1,12 @@ # Apps This page will teach you: -- what apps in InfiniTime are +- what screens and apps are in InfiniTime - how to implement your own app ## Theory -Apps are the things you can launch from the app selection you get by swiping up. -At the moment, settings and even the app launcher itself or the clock are implemented very similarly, this might change in the future though. + +The user interface of InfiniTime is made up of **screens** +Screens that are opened from the app launcher are considered **apps** Every app in InfiniTime is it's own class. An instance of the class is created when the app is launched and destroyed when the user exits the app. They run inside the "displayapp" task (briefly discussed [here](./Intro.md)). @@ -23,27 +24,21 @@ it does not need to override any of these functions, as LVGL can also handle tou If you have any doubts, you can always look at how the other apps are doing things. ### Continuous updating -If your app needs to be updated continuously, yo can do so by overriding the `Refresh()` function in your class +If your app needs to be updated continuously, you can do so by overriding the `Refresh()` function in your class and calling `lv_task_create` inside the constructor. -An example call could look like this:
-`taskRefresh = lv_task_create(RefreshTaskCallback, LV_DISP_DEF_REFR_PERIOD, LV_TASK_PRIO_MID, this);`
+ +An example call could look like this: +```cpp +taskRefresh = lv_task_create(RefreshTaskCallback, LV_DISP_DEF_REFR_PERIOD, LV_TASK_PRIO_MID, this); +``` + With `taskRefresh` being a member variable of your class and of type `lv_task_t*`. Remember to delete the task again using `lv_task_del`. -The function `RefreshTaskCallback` is inherited from screen and just calls your `Refresh` function. - -### Apps with multiple screens -InfiniTime provides a mini-library in [displayapp/screens/ScreenList.h](/src/displayapp/screens/ScreenList.h) -which makes it relatively easy to add multiple screens to your app. -To use it, #include it in the header file of your app and add a ScreenList member to your class. -The template argument should be the number of screens you need. -You will also need to add `CreateScreen` functions that return `std::unique_ptr` -to your class, one for every screen you have. -There are still some things left to to that I won't cover here. -To figure them out, have a look at the "apps" ApplicationList, Settings and SystemInfo. - +The function `RefreshTaskCallback` is inherited from `Screen` and just calls your `Refresh` function. ## Creating your own app -A minimal app could look like this:
+A minimal app could look like this: + MyApp.h: ```cpp #pragma once @@ -66,13 +61,13 @@ namespace Pinetime { MyApp.cpp: ```cpp -#include "MyApp.h" +#include "displayapp/screens/MyApp.h" #include "displayapp/DisplayApp.h" using namespace Pinetime::Applications::Screens; MyApp::MyApp(DisplayApp* app) : Screen(app) { - lv_obj_t* title = lv_label_create(lv_scr_act(), NULL); + lv_obj_t* title = lv_label_create(lv_scr_act(), nullptr); lv_label_set_text_static(title, "My test application"); lv_label_set_align(title, LV_LABEL_ALIGN_CENTER); lv_obj_align(title, lv_scr_act(), LV_ALIGN_CENTER, 0, 0); @@ -95,12 +90,10 @@ Now, go to the function `DisplayApp::LoadApp` and add another case to the switch The case will be the id you gave your app earlier. If your app needs any additional arguments, this is the place to pass them. -If you want your app to be launched from the regular app launcher, go to [displayapp/screens/ApplicationList.cpp](/src/displayapp/screens/ApplicationList.cpp). -Add your app to one of the `CreateScreen` functions, or add another `CreateScreen` function if there are no empty spaces for your app.
-If your app is a setting, do the same procedure in [displayapp/screens/settings/Settings.cpp](/src/displayapp/screens/settings/Settings.cpp). +If you want to add your app in the app launcher, add your app in [displayapp/screens/ApplicationList.cpp](/src/displayapp/screens/ApplicationList.cpp) to one of the `CreateScreen` functions, or add another `CreateScreen` function if there are no empty spaces for your app. If your app is a setting, do the same procedure in [displayapp/screens/settings/Settings.cpp](/src/displayapp/screens/settings/Settings.cpp). You should now be able to [build](../buildAndProgram.md) the firmware and flash it to your PineTime. Yay! Please remember to pay attention to the [UI guidelines](../ui_guidelines.md) -when designing an app that you want to include in mainstream InfiniTime. +when designing an app that you want to be included in InfiniTime. diff --git a/doc/code/Intro.md b/doc/code/Intro.md index 762102fe..6764e588 100644 --- a/doc/code/Intro.md +++ b/doc/code/Intro.md @@ -21,7 +21,7 @@ Both functions are located inside [systemtask/SystemTask.cpp](/src/systemtask/Sy It also starts the **task "displayapp"**, which is responsible for launching and running apps, controlling the screen and handling touch events (or forwarding them to the active app). You can find the "displayapp" task inside [displayapp/DisplayApp.cpp](/src/displayapp/DisplayApp.cpp). There are also other tasks that are responsible for Bluetooth ("ll" and "ble" inside [libs/mynewt-nimble/porting/npl/freertos/src/nimble_port_freertos.c](/src/libs/mynewt-nimble/porting/npl/freertos/src/nimble_port_freertos.c)) -and periodic tasks like heartrate measurements ([heartratetask/HeartRateTask.cpp](/src/heartratetask/HeartRateTask.cpp)).
+and periodic tasks like heartrate measurements ([heartratetask/HeartRateTask.cpp](/src/heartratetask/HeartRateTask.cpp)). While it is possible for you to create your own task when you need it, it is recommended to just add functionality to `SystemTask::Work()` if possible. If you absolutely need to create another task, try to guess how much [stack space](https://www.freertos.org/FAQMem.html#StackSize) (in words/4-byte packets) it will need instead of just typing in a large-ish number. From 3375c4e18764cd0ed1be8898a21695ff60540b22 Mon Sep 17 00:00:00 2001 From: Riku Isokoski Date: Mon, 8 Nov 2021 18:13:27 +0200 Subject: [PATCH 058/188] Add missing periods --- doc/code/Apps.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/doc/code/Apps.md b/doc/code/Apps.md index b8e4a3f4..b1c7d20e 100644 --- a/doc/code/Apps.md +++ b/doc/code/Apps.md @@ -5,8 +5,8 @@ This page will teach you: ## Theory -The user interface of InfiniTime is made up of **screens** -Screens that are opened from the app launcher are considered **apps** +The user interface of InfiniTime is made up of **screens**. +Screens that are opened from the app launcher are considered **apps**. Every app in InfiniTime is it's own class. An instance of the class is created when the app is launched and destroyed when the user exits the app. They run inside the "displayapp" task (briefly discussed [here](./Intro.md)). From a326e22986f69e40572e8ef0c0efde854ea7d386 Mon Sep 17 00:00:00 2001 From: Riku Isokoski Date: Mon, 8 Nov 2021 18:16:28 +0200 Subject: [PATCH 059/188] Add line break --- doc/code/Intro.md | 1 + 1 file changed, 1 insertion(+) diff --git a/doc/code/Intro.md b/doc/code/Intro.md index 6764e588..bf68c7a5 100644 --- a/doc/code/Intro.md +++ b/doc/code/Intro.md @@ -22,6 +22,7 @@ It also starts the **task "displayapp"**, which is responsible for launching and You can find the "displayapp" task inside [displayapp/DisplayApp.cpp](/src/displayapp/DisplayApp.cpp). There are also other tasks that are responsible for Bluetooth ("ll" and "ble" inside [libs/mynewt-nimble/porting/npl/freertos/src/nimble_port_freertos.c](/src/libs/mynewt-nimble/porting/npl/freertos/src/nimble_port_freertos.c)) and periodic tasks like heartrate measurements ([heartratetask/HeartRateTask.cpp](/src/heartratetask/HeartRateTask.cpp)). + While it is possible for you to create your own task when you need it, it is recommended to just add functionality to `SystemTask::Work()` if possible. If you absolutely need to create another task, try to guess how much [stack space](https://www.freertos.org/FAQMem.html#StackSize) (in words/4-byte packets) it will need instead of just typing in a large-ish number. From caec4a560b46f30f08f03ea5cff4c902034956e4 Mon Sep 17 00:00:00 2001 From: Riku Isokoski Date: Mon, 8 Nov 2021 19:14:23 +0200 Subject: [PATCH 060/188] Replace some "we" --- doc/contribute.md | 6 +++--- doc/versioning.md | 4 ++-- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/doc/contribute.md b/doc/contribute.md index 70fc567c..b1be84a4 100644 --- a/doc/contribute.md +++ b/doc/contribute.md @@ -36,7 +36,7 @@ When your feature branch is ready, **make sure it actually works** and **do not **Creating a pull request containing modifications that haven't been tested is strongly discouraged.** If for any reason you cannot test your modifications, but want to publish them anyway, **please mention it in the description**. This way, other contributors might be willing to test it and provide feedback about your code. -Before submitting a PR, check your code against our [coding conventions](/doc/coding-convention.md). This project also provides [clang-format](../.clang-format) and [clang-tidy](../.clang-tidy) configuration files. You should use them to ensure correct formatting of your code. +Before submitting a PR, check your code against the [coding conventions](/doc/coding-convention.md). This project also provides [clang-format](../.clang-format) and [clang-tidy](../.clang-tidy) configuration files. You should use them to ensure correct formatting of your code. Don't forget to check the files you are going to commit and remove those which aren't necessary (config files from your IDE, for example). Remove old comments, commented code,... @@ -54,8 +54,8 @@ Reviewers will first look at the **description**. If it's easy to understand wha Reviewing **a few files that were modified for a single purpose** is a lot easier than reviewing 30 files modified for many reasons (bug fix, UI improvements, typos in doc,...), even if all the changes make sense. Also, it's possible that we agree on some modification but not on another, so we won't be able to merge the PR because of the changes that are not accepted. -We do our best to keep the code as consistent as possible. If the formatting of your code is not consistent with our code base, we'll ask you to review it. +The code base should be kept as consistent as possible. If the formatting of your code is not consistent with the rest of the code base, we'll ask you to review it. -Lastly the changes are tested. If it doesn't work out of the box, we'll ask your to review your code and to ensure that it works as expected. +Lastly the changes are tested. If it doesn't work out of the box, we'll ask you to review your code and to ensure that it works as expected. It's totally normal for a PR to need some more work even after it was created, that's why we review them. But every round trip takes time, so it's good practice to try to reduce them as much as possible by following those simple rules. diff --git a/doc/versioning.md b/doc/versioning.md index 8b87d473..2fa36ab9 100644 --- a/doc/versioning.md +++ b/doc/versioning.md @@ -1,6 +1,6 @@ # Versioning The versioning of this project is based on [Semantic versioning](https://semver.org/): - - The **patch** is incremented when we fix a bug on a **released** version (most of the time using a **hotfix** branch). - - The **minor** is incremented when we release a new version with new features. It corresponds to a merge of **develop** into **master**. + - The **patch** is incremented when a bug is fixed on a **released** version (most of the time using a **hotfix** branch). + - The **minor** is incremented when a new version with new features is released. It corresponds to a merge of **develop** into **master**. - The **major** should be incremented when a breaking change is made to the application. We still have to define what is a breaking change in the context of this project. From 45a90e4967e10b31d148ae9c68123751d0e6bf6b Mon Sep 17 00:00:00 2001 From: Riku Isokoski Date: Thu, 11 Nov 2021 14:26:08 +0200 Subject: [PATCH 061/188] Update getting started. New pics. More information. --- doc/gettingStarted/appmenu-071.jpg | Bin 109376 -> 0 bytes doc/gettingStarted/appmenu.jpg | Bin 49909 -> 0 bytes doc/gettingStarted/gettingStarted-1.0.md | 35 +++++++++++++++++++---- doc/gettingStarted/oldbootloaderlogo.jpg | Bin 116236 -> 0 bytes doc/gettingStarted/quickactions.jpg | Bin 50875 -> 0 bytes doc/gettingStarted/settings.jpg | Bin 57679 -> 0 bytes doc/gettingStarted/ui/applist.jpg | Bin 0 -> 133036 bytes doc/gettingStarted/ui/notifications.jpg | Bin 0 -> 186887 bytes doc/gettingStarted/ui/quicksettings.jpg | Bin 0 -> 135510 bytes doc/gettingStarted/ui/settings.jpg | Bin 0 -> 138145 bytes doc/gettingStarted/ui/watchface.jpg | Bin 0 -> 103055 bytes doc/gettingStarted/version-071.jpg | Bin 111556 -> 0 bytes 12 files changed, 29 insertions(+), 6 deletions(-) delete mode 100644 doc/gettingStarted/appmenu-071.jpg delete mode 100644 doc/gettingStarted/appmenu.jpg delete mode 100644 doc/gettingStarted/oldbootloaderlogo.jpg delete mode 100644 doc/gettingStarted/quickactions.jpg delete mode 100644 doc/gettingStarted/settings.jpg create mode 100644 doc/gettingStarted/ui/applist.jpg create mode 100644 doc/gettingStarted/ui/notifications.jpg create mode 100644 doc/gettingStarted/ui/quicksettings.jpg create mode 100644 doc/gettingStarted/ui/settings.jpg create mode 100644 doc/gettingStarted/ui/watchface.jpg delete mode 100644 doc/gettingStarted/version-071.jpg diff --git a/doc/gettingStarted/appmenu-071.jpg b/doc/gettingStarted/appmenu-071.jpg deleted file mode 100644 index dee7c8f643a911f7380d3f517f244868812566e7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 109376 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%0D-&nSl-Ni z8MM^z@+J|DfbPI7TbnNv_c8H06sj+}+~lO_?kc_csPyraH?16|Y=19vY!&EueD0EY zqPq_hb0e2X?P1QdF12T^53*dmeC)=Z-ib#QEmyS4RNSZtJkFuGAH3qnsTD?vg-%(s zNnD+tVjr*Qi#C*0-!z-0_3!6Ziavg>A9(e6-Jo?|(b> zS@q{%n^q^5Z;_n&=Az(+cOp-!EMBPkJ<)JbX!|Capub9NvcT+{zZpym;}SNohtG&h zI$Wo;=XhK7sn2?npW{*w*FLSB&HHn`X=3xeJvUoxR4cc0{_y%-CN4ia&bjqJ!?xCC zQkFrn$7Jk7cJF5VHDUjO{wuAsPXC>-|KNXyO#+`H|6C4VA-^h1RFiqB**}guTNk^r zKJEL#{-E{p-oqc_!h@f*UUhvM8n|=yd$(uX_j0dVd{lbX^0$g{>-WZ3T;06d?#Y8L z>!os9Sz{BCY^MFR4|n#aaQ{W*ws1AzoaG zCh6N(ehFoTtRS##W|d?(w-xwF-%OJ<^@h0apJMLDO8nyO1U z3>IB#wFn4~3Q@Qc)y$=u_lr)6g-%eq zI)#;kp@V}ZO2j$1iBWdKLd(<}qW+01lvJHGG@Vm&me_{I-_=^6_$=^#ku6J}-@_M7 zU<2CM6#i5Qd1K9Ys7bYUN|}gB!waTz1yhSBg^E}yNgT0oOW+& zHi;B-y>sea@JbIxt2qisC%Z_AIqaU$YcT8R6a~d#xeGr1TR=1o~|KG&MdPdc@@*mcb5Dl&O#Twl|FZwr^86j@d?FLu+gDx?QX9UVYYfX2pxEC)0ej9_$HJopUvNj_=b0lja7kc@@T6 zUU9nN+ABe)u$23$7G9?U*}|+VgPN_k{a7VZvuKIe!nmb-1D=T{7u;T57?8uODiEs4 z2X@BdJ%R33A{vj5%b6YG$Y&8xubr;5TIvg0@8^oFVb%Ko?Fy-46gzdyNs z6BPG}r`uhUp0P~WU0~_wu-X|b@1LztHJY8d!F0Ecu-6BNQ(9u04g20b-jh7}w|Pgq zL(|&brX|mRy=B_I=ya9RY)e*a2LC6Gt{<8^!$oGsw)Q_+{Vis?uepx><|}XG=Pf)F zAh_9(bKO+C3EZN8t(ISv{nYO(eQ}eB#=TY!#SM8|%W@A}&sr$3HR?_4R3}|6u9Bxd ztRhm0VnVyOWQs&R5S9wjS$SsaUGMHxF%f=&MajPxEJ{3-{c7^#KSy7lcrOxo zn@dFFZr>WkeZt{sCF>rw-3aJAd8<;xA*)~I?hSVrp7$aGWw#f2$cNr?6hC?5y+}pi z5#@y(d2SbG>^5Cn&OhzuomQzu0Yzub7&;u3nr2#iOcm&P=E}4@(Iunds>Onm&@(*? z%jSPM_{Gn?Vo}F~<6;&Md7CTL^v=zDw|P$O$?e;gRD0aN`6v7ITRW9PZNqQ-Cw*Qz z;Pe;LW@5B_C5&XZ66x!(555Ape0li#!$x=W?r(>`}y?m?e^N$u%# z*W*>*q~tM+{O0%m_AqEPNk6hQ0|rWO_kJxMQFcco)j z{zXgK_L4Ur#y2teOf+Yvlm<76}4@` zR}KfutERP>a;z1Oc=Phfw(f<&#dGcklqmTf&k}ZFdHizC2jO^agRoiQS#QH%>ikk) zyf5&!w4zfBdyM%Z&Tj7c-Y+_?$_l3ii(D!l4LWTNGgscgb(fd*|01r`M)vf5ag z_^@kDwq|O2<)U!nqEz0QIhVO+7%WL^WleRPv+k96Now#k8@((1kv{(!Ud`+K>FU%f z!@S9A;sMTXo^M{$Rzx}#Gf#^Zzvb>QE7ju$gMV7*BBuGCvI17RX604Od4(AnP5)es z5|y^z?-ks`a?jghhRa%E(}LKQr>9N7Xeq~{aZkqT*y_y5KAs_k-lwjsH7rx9`4$s* z@6t|@SqIXmt(sYxp#OZ|>)8`KxNPq)eE*=2!8aoQ*{K#afl95Awc<^T*6u46)a<;9 zCp=l;RWM=JnT0mH%{pdqwgtAH3{E*!^EBjEl&Raob33!zR=WhGFV$MFqOP^5wjg$u z{49HwFXiXiLf-cN@sXDCobEjF`G1DG4gr_e?0;&%mew=A=zll6y09|x%(f2sjQEU+-xdwdCsYANA%aP_%*Hbqxz(U)usM>KP`OYuIjc-wcIB( zGu!crIew>sht0i?+x)yjt`A zY}UGkAH%9L!(5&T zZL)M;CKe>@sI7H!QLcp6Que76FU*kfThS5F&1lqX^U$a-i6@`(Y1S)ojg!1wc5wY zpy>UUyY>&w8n+zgW;eL}V~ynYdp^EQH|9%*PqUc%)@CYq{j3$&&5msOeERP+7W>o3 zudMnKUFdSTTxq7e#NpY~rr56LKN4Bx?On8|IQ&1uYZ38`lkX(#vgQT)IPJK+h3E8t zhLYHYeY8eXiWpf8_%I>n_=kOZ!(Zll~ffOTRee zTlbwSc^hxX`>kf4{mJ*O=$>EK#8&4-9eZ&&cK!Jb-w3}5Ei7yQYQO&Q^<$MMIzcYYI}9u17AI>e<-LJuzlyDSG#xTRi%IA+OTJTSK`v%kLvS3 zv{v5V*5;*iR>|^+j_&qrTaJofx_n>xm-ekt?WmnoelCl>yLDqw=lm&7o3^acyI&gO zSl+Z_c}LjZ)Vk+4|1;dso*mo~`E-TR?vG6?!uM`lqIqRWjC)6K=-jEvC9hZgyZFTR zwD{ucGV5I>U)blgXvdbb{=L5R-Ne6P(q6xAZT@`e;`4hZx6Ea|X8&EN^_XqL&MVva zPs#|rx*wf&q&DD4VYKnIN7M3WgzR>7-*Y;$wX6Gf;KH*;VuB}DeSH}nRO;0xCCc?> zT}IcIGh0^p<+PRte#sCwjeHb7RnOU9x3@ss(~t3Ba02I<+{r~25f3+B)gancpm`p+P+Q}oWUxuV>wzCDWw6E6GR zR+V>E^ueZ6x>w73_dk#bo_M32@5$SFT^5fU3$yb}&TNg=K5Nn2skdq6@*V5WJ^mPR z>we$ce{zr3<<_jadF8x1>y7Pu9`t6bCD+S&Vr56{q&-L0?RE{@u>95iw}Nj@eB=_$ zI(qL{*)o>ZQd2Wx+S``xi{fHUV-?`aR$Rs5>UBip>dvLp=9`=``*7hzJX^rQ_x!J? zwn>NGT9ZTAx>jOcH4@e2w%(~=sB2_9QP~$?O=9M0`OBE4+ey+01Jn@yi=AFBM!mNb?eb?47oW3Jo zCXf(&JG|uTT@#%Kkp~Tq3oX|M+=#v5+NGd2GfJ1KVN+9xTI-`ZiG1F!Q$(Z`*|NIJ zSQiZsLj&vQnB$MXNS6aF85~kYnCQVn_8#ntTJ=D=nx>7*ZF1lDc8+H z8_u0fv?vV@J-lb-NBf}N0jFicg%>tQn|K-rFvl&nL(~({dm& zds}*n#*MP%`7htO*DUJid$(|5&adVJqRmma@7%6*4V?L8Uey|Jj>U0}CXxIfdIeVd z-DoB!-|9uuDw|yna`>l zBJ31>Zq;|Je(B%ot6N=c@?w5R#O1Q^5TRMm_IUfWuuxHhc+6BFDSNu-?==SgOWBIPny)%9% zR$e;(nETu|c?oyX!~YrXa7!K4(TWt?`Y6!)sYpd0Z?(6-(%hCuW}@6{<}cs<@5Ri% z*k~K0PjhOndX;^@VtPfi;pwtp)7~>%*Gq(pWZZq!yL?KO)$ZS{-4mVOb)Gc@=31^#6^pb@Y-#rqcDzW0lc>-nx-u-xD0Ry}KOH0Sp1B8P8n zcy;B)qxB0t&YBlRyj9zBNk_oboo92Y(4mW8KmIy(;KjCQZCU#!&v_Dyh;VT5#@x4bWPo=+v2O!{dX_AaPbqzw{F27*PrsKeq3+=C|>IG zJC*u~@OdAZe;wNMzWU!ochNmRPFYO7`8&1p*!#yCkIdsG-F`j!yZOg@owXlDpPJUG zJ~g#{eM+nPdfoe~_g-KqUa|X7=iJL%7VnhdUe&iW=lk{jU*?76!J?eD2z6aOaU|UfsC`>JOf_n{IWwdiPsXUvEKC zo^mh$Kda@@Tl$yY%we+9e#kH#}rkVaW`rK#y+v@W)I5E%kx7BA9!v3qf!11gq z-NmexcJ_sDuk!xVHw-IVzwXJo^AYB^CjSZ5G3H;Ay5&%I)InZ>%{r%zrfP+(0h6FX z?5Wn157`7=c*ttce)!Hyp5{*zRwjm-%%5ZCe?ByBuXa}DD_Joe>EgS$`ts}>WKJ=d zIE0IZU5~nwv#>R?Sw;A($^u1e&P~OgeKlVVX8ZP}IheR}Z9c2ueqq9j+ZVUzMJ0*G z=p9?@^nG*iSGPlFF1#zMvUwPEI42{7f7uD;S94n)zAsBU|7vAWs#Ic+0NZ)vhx_0D zX9#^_w)c49^o!rMDneV;+qcf@U$wd|;#y_(O_jfahu8d`_gsJRIpKmimdl*&S5-#` z?u=2`h?MPTA`ub?NddKe_?~k*sl?oU66e1+btsR|g zGF$rcmM@G+lFzINKVOPD}8`2fUN7_r4YR z61>Sup-GynoTYT~E;F|$8jsJrYn3xi)jTRvAt$Tw_|!ZWjl1(~^3S~i#e%ATyo_b= zfw_~vtGuxde0A*4*X4_*YJ9o0)bHX>>BT7;pds2HkB|MlRkiqNpGuB&B4jjoah*u* zQTgINmfFMC$*s1UkNjTTn>T0izOs2d1*!fFAD7qUu~&3$EF zQ>`cNt6IF<*5(6~Y@+)+$(KvL*h>_z?M_*F&nDwmng1Qs>xoxdtS z@Y?T2;2|!NeBRHS$~hio@3fxKagU>P-DBPj3uPyPHWd2`FfcMPvoLdUv2nmBCzu5l zSpHs&v0b!=n$ z;#CLdZA|$y|KW+c_79K!!#~Wem{z5=Yelw1ZCBKaY%#4@6IxAsOk;zDOM7%fE?%3x zCUI`a751==?Pm-<{pWOLYh*<&7u(c+EPQ^l)XDa9SDj{^khh-4XQFnZBrT=H+D*v1=@SHjs=o6cJ@zxNlMGF(%{8M zY&$PL+P&20)%wNG!kv%4uF(@xUhKH`wQtTYQ{TW=-uq!^ris1U5%6!$X_Nck-W&0} zj`wR8+$bq{B!9wBm0pI1D?ei%T`!pH_Ugs$>0&Y;WpeC1FWff`zc?%7V5sKD$U;k< zY2K=nPNr-M$$GNR>$mZpeP_PwZ!F)mlJ(xH59zvmPD_H45nx2H;Gp3gc`@zNgM)rV|fZ9A|>H|&;Z z?!2!L6ARX6ANr@Yt?|8+^jfuaJ+9xW5$E287QPGBe-|_P&N9WR5voDwo<7KbAF^TI zmuG*OCxzc#7+iE~=`YQ$_(cy_<%QTi{T`zC^m~kcYH;yG{!{zjwZB=%+a~d626>4lQeWH}}de^QS-8d|A3M!+j=)Ag{%powFtF#XBngeR}jT(Ym55UM^bl^P}w2 zK+#-vy!{fJH1VvmYSXl(cb8E`1QL`^U$C_Qx1o#rYzdMVC#I- zNekSYFPC|_t|~tnwSQW_G4uSRuQbm4{_UzVkuvblKlJPFtl2pq`BRLRJaCj{iFbLn zJK^Wb`liIJBre$`JS!d?#sQ z5SP8rmYt7}GAz#DxWCELSMApdV_Wry3od5lv(;#77%Fb#T+VXQcfxJG1&g8C6bJJSS351aFO87f&!dTiwTQ_VYT?W5yTr(zYIuEe z`^GB0vuT@mb(L?53tBbh%c~Xr!FE+4kr}ROH&Ub6AI(jc_&MF%PxI9ytxb_D@;>i# zd%3`0(EhN!z|u0WUBbIE|22j!{BhhTYsKE_;eN(@t_GK7W$SXSRQqcGB%Iw{HBi-I z)9z2JxHku@{kh6DP1R}M-?xT^Xs%Jw-&+0ngGx*KKgw%+k6u<6x$v3;x8 z&y&F(RW>f~CUtgyca1v!Sk~-x$YHs1(TwuhrF^X+?-wP0-lDopRBuM`uCArt0`G%W zi`uL1`vskiI{qk|BW~iJhV-C)bu*Sit}v^3<;{bzU;axgS_($bp?ORh|vFYbN*x7QR?(@BSx zJubO&RpeC1eY32Kx0mawt&d??Rry8mTE11@+sKtndaEWKSz_xIF_EEjT~I^4^pm`Y ztO`5yW0op~EZZD(_;p0gOU@On%hl(9o7!)Z9jUcSrzmJ$wMf(KZ(6OU!W?U+F5cdA z?j3h%%;qZs)m-Mn%S8{pe7NrR>O0Fz8h34XoV@lH;O#SH(mv1EoZDJI~(`i7Ye@;WiCEW1*D3W_e^?msI4b zIq|=CZkWlq?)b#}_AkSI9PjbT7#mv5P+qaP@N#FViOQ;FOT5lsSzsac{$NUH{D+O2 zJ44fUm}nKne_2p!^PgeMN~x6$yMBi>?n;;VVomA&Z8zP81Mc+CoF9@7Gi(ZFw_N7XaqQ&hiR?*+NmAyf`*?WftFFuWmw7?%j-lj? z`FrzcNJYf3mB#;g)2e?&En6~8h-c2-wjZ{w(*3zV3SPLr*|#+0bjnq)qn&9>R)l5o z{8DC}^J0nGhOGsWcQ)B}dG*eZS}k%SB&*@k$=dW2Yg#6j?__M>>#u68!V$#H9n;e8 zU-eLON<@Hl;>+_L3qrY8Pd>U!K=kb1)pcjjNThE0QZwy4*ShS?YvEV+$!we#?D=!; zE0v4{zZx<5pP>PN>xFvEQywa9aMbBJIH8nF_dvw6q8aa6)BgNtV6mTJ$Mz!VWlQ>d zANKEupO-HFb9kDj@RbWY#60HD^9}gV;B9(#;UTG)f5e1tyjAgUlby8sQT4^f)NOVm zeocS+tL9F-$)$JeWO8@brI=o{LnGsnVgpj^I6u(_Fn!RbF(JI zJ10=xWdiR!N9V5Fs)~<39!=Z6Vo|W{(S&Y>9sQDhLbgw>uFFNtQMuMHqR7QNuOd#i zTOi_lbN7iOBEH|wDherXP}DY`X93?WsS~W@h!KE2&+%cI&|zgNtG}-<-?lI2RJU+aztFUF3$3 zky+U`370h|n&jE;vVJ?sGC$nWN$%|phVu7Ob9BD#<4OD)v8!tGf}<(79;!26YI}Yx zpYOQj2U+C}D^I4(=DPnaPiWoM{SNIqDqiku{kfj}z9z`GyG&EVf&Uh3+slWJ)81I$ zyUr5vZ4Q(Co8w*|GM0K5J#b0hHfg8(-o#l)JxcbPDdid(CmUId}7|2aN|yw?6Gpc&!i`ovXi*?Pk)Jq;B5Ji5<6mmpm`a zY%-}~oTKvE#M>idY1(qrNsCSz&EF#Kn=(6Ni&>6jr*Ez9?rBP!s}8pwR@!0z@LTn? z&+Ns~-0NO?N-eYg82vFMa^=~S)_EcY(ihdP8bl~1bk07RC8%5IyrGjb)_OzJns?J3 zFLxNE&%C*6Vbwd^Relb+QiffL+iuOvS;PFFL2wIy$>*|rM-&YguFaSnbx}cY5o^El zhLu*v{h2{QswpdG*bCHz+*)R$YI98?ZN*Yk9naqRZzJQQo@z2}d>njasi{#|miO8u z?WWLq$|aBZ)`oI#xf9?Z*DLXS)w`gldO;L0pTSR&`%5dB1AW z+?$%BmKyr`?@P|DYJa(^rF=z2v=!&s#HZqcciNij>^6<_vuEp+^L zJI2ECX0p+&(gp9j;MQe3rI<4DqZ!tm5er@Tq@(iL&+l;&c@<=3c~r*fv39xHEPM3M zhw-WW1V4c}->1(!+9`Os_*Cw~wPhUFoNi26pld8Iw1jEu=Y7sjLnd4tuReR#SK-7&zYl>Y~H7`DzU3KSa8&8?Vo9ty9j&3nro;+{+ zrH^gFN3C>pwmPdPR75Ox$#(f%IBD*xYiEi-&S5%o+44yk$Fvy_N~&6eX*MDtq(iu zZiH?-^zBOD3#V@r=e>0Ny3_OaN|w6P?@Qz}{l9FH&kQeJSiVl|mGk?czZ&Ph#$L&K zm^UNjuHv12AO15u+GBrbkH-9<(zfFnh20$uv)Z5GdQ}zAU2o3xd3UDF zVV?0|QA8Y@h2FWytwxdwN)pFj_6Pj@u5A)=W)9orE@$NnJ!(g@4@wvLwmgt+VGL;0 zky(6UDaVN&580Ch5~CI-GJkJ$*>s@eGUs7o=Gch=-YPP=ypxx7$1^UGd9iPIYvYYb zyH+L@wTJhan-9F)ck<s%F3GVm%ADL3pldKg>g^Ac6KPx%x%990bCkO$H792; z-M7zw+R?piJx0^yTBVCmF4pE>QD5ZurS-$xvK@>U9vS5nXbW7dopmU>O>xb2-My!x zKYR;s;d^SobUm;3;Q)cfZpNp4wW2@Yez`OM_tt+(_iosP?UXicyDDZ_minwKe(9pd z4OWifC6B7Tb}tsb9lHIA;eL7Nr8J*E1z0oQ*pp{ z_oL-Z`rrRP>0SD0W1oJw`_5X4XVE6VL(Ja$C#T7r((vy+r7IkC zBGPgTX83L161sMF-?^pf{~3&K&;4`x1J}u0{~21p`TPG9^Sb;m@f7>dX@B1J{!6{D z%5?M5;d=f}FTVX}5cv>M_Mf3BP}#y_`>~W~{8dNAq!-R@%Bo+s^s2$^oQ<~@yKFi< z(;|tpTyyTF1G3LszklDOzyBZi*X9TNBkZ`pwm;Y(Q3s*yxNEz2yD7*iybNmGdA|SU ze}-FAc#kwOoXY6PZ8>;R?a78CciB&`IGNNfc+NVel;!#3)Z?D{y_?%)H=L7iy6>X7 z|5Tx#-Pe7tC2dzu3%B30+UpSVpW*nr_iNjDHrXorp4FQ^U10a);y&g>PZ>TjMntLV zELnC;?7R)X?hhS-TMVzFpLp=9e3`JlnIlos%)6$YaY5e%!Rj?d)w*FEt-L4b$X6vt=C(e29e^h(4vFpSKmKfdN=HBY17Za_v^T!+Bd$h%J`GVH3 z0nM2gERTfcCc0&>5V`R9(&ETDuT8$U@6tBpoY6e_Q=pHcV$bOxG21f&6$MY0Ok8{W z*q=9YekyNYOu8?YzBu;OtIs= zl%Y%AfgP5-kpiZBG-}N5YJZRoIU(k5T~mL1{-o*khU=|$6d< ze%4#>oAeG{TsYslgyRhBx--f`{EBxbE&2AJfp>;~hQb$-@@1D7E={QR<~y`QG_)#Ug?;P%x!YO#gC1@W6>t`k*!i#KkWZ$Q?((MlU57a* zJIYKZAj#rq$*bH?V$|I*C@#wESK9Ga-r=&;#-}!N})g-+&GOqgbmUdoq zTa$Ca#?@)k)GJr=z8qV_zSf|3`eo<;M;NpO7?>HDzyNfQB_ksP1EZj#p@3sxqC#Qg z#DyCT4t}`!@S{TjbRd$^UUAKdi*I>d7Ao3_UhGenGd!*rF<)f)X2w0;E)q_1EjfwV z4=*&=1$NJCab2P;upw}l?T4u$-BxmKPK6eoeN+4PY0KQWkm5Zf{n31U{?R2V@-Y){oJabFX$BiRG8@g= zf^AG@T*$t#!&XG6Xopim#))6N8pf`i?KPdPu^kSZTDDGH@AFOS!_qX~uACUZBe5dN zA3wP0xt|pKtYzBY6(Pm7W`{?W&=2oVvww;|XXD6k-^4xbr+@duh84Fs+1?-B!+Ghx z)1wm0hd&gqFRC&XaCqPQ)9!Kd6}4EAl(6_GQ?@el-?0Vu5}~kG2TJyY5-&cI^Cy zA5oo#9yu2>u2etqmRWS+;KvG0DcjE#c86xHn#}#j*yjDb>v0pmNvS;Se8}RYR3pz~ z^)&A6Cyg3aS6;j57l9EoZhhQb`yrR7L+jC$k~{mKs%EU4{$PW0&9cDj3-u1ydBsn4 zHjsLAx!o=OpZIYn<;QVy6SkOqJkB_!itWLCjf9T=X)Sh&lJbIu^H~(W`KKJ$K4zKx${e^`EKtY=B9SbfsMBYVz#mL2bVeHzzAEx(bGk+C+mWg*}3UirYD_p|vI z)=KagZ2E9jT_eXQN@y9g`%$As(;v(XT>a)7-`UfBGGA1aLmXYM^SjopSHG}0z2+OI zS;U;okKt|0`CU^r7E5tHZZrJQcKAZC;gl>bErAm|o-J$NCoO)^|GX@R-|N=R?1$H+ z+33&n*47r4XY!fLIpI#yMW5b@59AwJm7F3g_x)7Z-nP^2Xj6InI(glB;UbAn4=-L* zpV%urN&aZ6heC7A8flZC)uyr{dnUIyeMr05v1Usx&wQ38LW=`lKkBIv7dv`mzk|}1 z`7EW!1XBwmW|jm!I@enH#QVm*({Fx@oR{UC&~{w%N1TW9arRBc-~2+qX!~ZLIJ8LP z)XnV@$ron2vb(ujuBhj7&V3UtwB}&SOf}X+Qa>(DiP3%|5WK$Sys3nd$P#Cd%!9@e zsXrgH+_G({dvti_%58~lC!{L%H}0+a?E?M;b*j(W~WwzW+d2N$kx5S7u|9U20 za3!;wX_HOLEs=SP$#l<>`lG3LB(M3_98*6G9tmB${{i)wqfi7ZNP`Yo+(q+2+@={{FMJ;TvI3r;TVw7bd4{ia`qw>zfJ zW$Kc83)RysF^|L#)cKg1{`kRFW?6XHD^BRZiR1eO*_NNEOTN+eP-V8%*TcuPK*|jaDAYSXzgQK^C8Mg}?aweo&M2pN;4sUh~ebTQQ=TfPVYqU=5p|aD$&1|;I z8zrP;j-HC=ym@2Z9hJN)Hc^$MXZIEzsb$&GF=ww3_kF`34=#5Uq_1NtiCWmG2i2e-hyS4uY0F&xV0z0@}2GR(qs{1SH*YoGrrIJe5=|&^R2Ze zQ%0!j6SZ@^48FDn|C~LP*C{wy0feY4j+%@s0ULw|-3M2cI)KfdTW}=E(E3He425*O3s&<5a_yv2(FqlmE1? zzz_HNovxXvw987onf7x3*4~w}CA^ZmZ)<-r>Z#`X^Xc}%IQxT--yaihzwx`qss7+c zj*c>;m)|tDE7xd$(lris`Ov@MvU8l1E|32ql}U>0W1@A$FN(5>-k4-F&rSXQtSMi# z1?OdnyzV;wrt#3?9x1b&wWqyaoSpN*Sxb7?58clkZflInt< z^EQ)&RqL5!jvtW~Xc6!}aP~`-ZCjh(9L_mE@BE2*J99fFL^}-& zIZm8B^8Di|rvujyI0;UiIB~+f&KGn1;(28|1+p~wZ@U?szZ({1w(pzgA(L98f-T)2 zVnnC*cBW0}ndcJYq*UK>;r)Z_HBubXyHpYyZZ}`3K3dkQ=Ar#|Z(sKJqx0%CjS5;t z{9V3iy`ES<{rk7bSK0?%BvThXB;geEFR(vX!|TkU;0Kvb8q*(q6@TzW^uY(^3*r53(l;Jd zFW-DH`tcvR`!9SiPi3F{aaR2cgSG#h()K6#U4P#l{q5+&-)XLgpFcFVPvYe{SmDo@ zAT6o%!C{9LS~)~;sVhXUR<3ux-vv{(C~|<=+gq|63kWBa?K? z{9^xq2G`yH`d=+b=UuO!Y0qf0t#XxV!heQF(b+$o{QoMNYy4gRPwf5#6_d%=3bghg zXgl+J3b?H5I{L!HbBm3eazD^zO@?#Qn<^e_tW|Mal4B98ik9+D&s!{NbUagBj%k=ZSpVSHyVk%eylW0;@ec^Bxt=T zC+D#2vFkl*flJ!fnM8{mFnRvMb@}_ol~T*+r00Ya^JcI*#S zj#qv7zV(Su&Bj9gdRf-WXLnSNZcc4=nG{i@fBePGl~tlke~bQS2;L^~?eiD4`Y$${ ztQ~i9r)|{v&*1(d-(Ax6l+vV6+FBiz`b>A{Xx*5$NnTKCSNs**^B=^VcSxG}%N@It z98eWFBlJafD!{#E*4&V;_XKjrAd5BAM*LFycD=C$;2_MKWAxFki(^g}Gi<3)`- zB4hm3Rc_U+Z)5#Y$6=zzQo=1|&QsIVtg84tCty+XTEA~CmlL}KCVPC5{Lk3A*F=LDQpFY)qDLSJ5ew`aS!#>SC ze^{PPA=FgtUqzkoa_aAbnYW-52aDBq; zV-fS+v|8Lt{~A}{II8ibEG5Sy{R4;U5s8m)yyT|OZ+^HhNvfdPAbjDkkNee>dJca| zP?)}{W+B(ZW$c^o`+u+soY!*QZHC;BXfyHu401iE4BkX9yD{-0Ur?*e_Y;%LCtmpa z;@S+8_@viS-(oMEnRe=fF~eQH3x`ghmVe>$?Gjs?T}xVvwom8fiI*3eInO;Ff0FyR zv6cFQ{|wq}EfO~ErvIE2!_R(6>QA0N`R0?k>Q)L(F?s=O9!;?Q@U!aSpM)b5ncX5j z@Sbuq2}#~;*CXi?EARSpo3ZV!haXSfIDGOy!;NE}om&@m9MN;x)69KVw)2g)HB<4{x-DWb=7c<}784JFpy;ZJAjF?> zZzkd_x&<5J%pMBdo|2Q%9xvi>$XMf~raX6Y$i(f7uQ;}tJ72$0e@0S1KGjr5WBZ|5 z`nNxnO?;m3-nl<5Hgukkjbu^bUWpri)4wcIockauy5xJKwYF6JLiLu&p6w=oxU6a? zO~^g`<>K}VNA<5yg4;gK{?E{GXzQk>FDp!TEZ3MOeQL4e^~KgAGyhB$_c*!DdFi*T zY$MyXB8R6PoxEa3qQlfXpRAw7e!Ki7>h`zL)g~d^bf4(Te>whmV_|08u{C!bi#9y0 z@bN9EUKFIbzWed|rvD6#oCO|91xN2aGG6slSEFCBBl^LY-}P<}B~_HyKXJ3}zLR{Y z{$+FI{$CmQbuy#Vq)sdoh>+&rnXdz~jE*#I)`!_wOFu z)T3&^mH#o^{2|-Up7Tflw9YI1EOEIxasHo7zF9{C-oEbrDK7Ho{g<-=x$2+FoPv8f z&URXhol%W6Jd*D8{3d5+eO}|e<3%wq53Y?hQ7PB(i|e@b_qu*^`F3x)3-1?7t@6K^ z6jdR1=92uA(zE6Qy%W{!xiY=pEdRXtnAK$6KHLy6Lo;cA=;{ z+j!rwzy2(gouPbCN8I6`b?-??R~u(^%O8J-J@psjy-G%=)0G!Fk7}{W0(EAG%Y1udn|& zi;&Yp{qE!nBZZ6XA96F2Zv04!e-IbB>p#O4TNkg0RJJ`F$~&L5%H4QUXlnF>b&Eiy z;IeuSX~q5{iIZRWUohTLwBM)npv0RvH+Dy^YDdnudwc4W-*kMtHnYd){F6l)7YtwW zayeJtIR8#^%Ws`ZmX^tEmT4Smdt#SfKGwf;Q4PPvf!|^xH46(9<3;|=_|W9hx6ef0 zMd*?Ae+K57!!lj-|2PUS6pkziIkNlF)($<+iBeBHCE3G-Tvr~>&u}gH&!9CycAkg9 zrQmCZyLZof`f=&r^#2UaudY5d*eF+M#JJ@gBE19zw;N^ z|2q_%^+mw5ylKw{(HY+ta&msVq0aMSFYDsf8C?&2HTIf?u9@HdpF#Peyk+9uTQhRz zU98lJe7FBE`xp6-H-3rk{?D*b<8N!u`OSa-GrZ`Yx$yV$Uo~M57nc1HxHscrO})}@ z-j((n*Q=PcyM?76uTi~eP=5G715b*;j*k7W6XG9~@khS7al7kD%({mKOFxxtt@xCl z{a1uDheb`ebH37s!%J4HG`(0;C4BE(f#I~Ko4%#Z!r!!>IQRV!_TJi&DzR>%m--*x zJP&Kfr#b1lf2EI1OqjNA({BMwcZ z^&0>5?kFX1_7gpHowqkSO_0^_H&33tYyXr*CO`Bn=Cv+%+_b3oesleUrK$E09P2xJ z4@peOKegjs&Nt!KZ}L`gnpY2JEct%p=;8xwQo}EnGzF@Q1P&z5Bq-SJLMe~;N#2QPYCe&bup1)bAg+pZooaq>%54}Gxx_=HbN-b^mf&m`K*f1j6r zsNb{xdx6d`o|&Sv&uib9E_>ARm(~2qLC2l;RfLu%zd2EQOKsQ9+V*^z6Hi^Q`~jxv$s$5&F4?-9<=;j{_S7zHU0AL5HtJ9 z@y=D?^|y>3?mq8uLdnzqIg|a7EUR38CjnuV@8^@1 z{xdw|TTR5k22`(bpr_Yk4M3dbBC?=shObK59^v~vqTb-@PTfUT+Xsv%@ zGkxa7psHx6TbAu@>W`KQ?O&*R^?AWYTr+TFm;# zyJ_8n_Y&cs47jVrE9XdTR-SULdCwvzqqUvFnv>b4iN!lLMd!1`+a6hxCHnn{=BAsh zfWyM6T!O(oHk6#3Nj zhk>0}nz$xK*A=uq&G(OFyOmWJsiXe+vmRULT9L%?uAl!IcFT%ti6+(mQnS`xmwbLM z&$H)|)1#%!6nPwMz1qe20vc`l16{S&uy3MvJv_ z1;0L7`u<<)g<1cY*XkX+o>Bc~o8rUHr+K#*+4S%KbL85(W-)u^T~`%!+gDsl~(st{?O~oMiWNMzZ6>^AiiA;#>B1^0X8r$z+C!b#3kvf3#$q$*2BrO8zYE z^*xJKm~-1d)YaxJhz)G1$P#W;(3!XWS4L**Z)-Dy>+Fj&1!cv`nGSy_jR9oe{*|f6nkox9j{iqrOqaMK*n=!<^1)oHUAlW>o-}*T(#dgXO7vW zbZ(!+?H7{N?HyUSWPOOd^tJnmZ|>Ao{$sjgOLRH^Gl--a?l>uYw&)*w%C)_{)*fpg zU$_=@j%_h_{=%5|H?~ceNc{98=GcVI;;el})xCj=da6>#xnK8M+%P|v_hE@jjbg^a zewIbc4}I8uCGqx`i}RIsq=>GXm^H7$_132y9*eG?_MK~bSB4|2l4I3A5u)%1QZOGOnF8FJh<0 zhspk*)LpL`X?6TmF5DK!tyiS7>Apx)qSvn}%Qig|)c$0<%4N@!MTs@@kFX>vp5-h% zeeS2Sc3sE9_=~)Ml%CxE&#=Eaanm39F!w);<2YPDcu(1}JSoeF^RiA4^Wt_3L-#9& zUH$Q_i-M}Hf9P^+n3eozc*$4Mt+*?7o|N>4m**F5a@;=gqW7^Q5k-IYe^JW*@kl%R zzVo6|)BJBCieG|b56@3IY58;6?SDS%8+XjV(NdSWpr^o%89kU*;inzXWl&)hqjW_}yjhV? z`aDOCm*XpuDJm%jDi0M7s{NV#S2E(1w3WKwb)VUh7Z0v8lYHuo>%W$Vi+|ui87uLCp zwX)rO&9sbZsgvK5W5TZ!7YW~(<^7+5zw`a0mw|jGy78im`~(F)%K0C>@W&#jO+8`Z zx>(MM7yfVvc3s?)vW#s-lZJI!_MzPmu3PS#uDrX; zKd62Y%&(Q6&2uL9Nz(kMuBKam8>IZ5-D#g9>isK4_xWE(?H7v+P2#Vu-SoIr=l;Xc z%^GWtKUh&a%lBANW}O^Q<$nfdt>q7@@{|h&x0s7XA33?FkoPK|f#g+bGl}3gQ7ypn4 zM6w;t-k0vJ`*6yChHW!Ftdn#etUtQr#D9j0U1oAS_xhaBKECm(L{|KpGmB<#IkQOX z#;e*(C#nOZ*O$L330tEd_*s0_r7sH;1#_)F#{03pIH5IB?Qq?_`AwIaysYE=&VMt% zWt8DFy}U|*y)rpWVX5w$rq;-q89TY^wpC6)xa8D>`;Ya)x!ZEIZ9O;5Kly@RM2~3-3*QL9s^G?c5hc`=Bpj6SJN)8`KMIH3CLH`{WWRESTjOEr~Yk~%KFdXq`y?~@dvGpw-wKhJ(gS1Ja1p$3e~oaQW?Jt-pu}Tzxl1liQ~QH zEGFBQ72SVwTPCwEygo`aan_7q9=8Se?w|PY>)Gk=`|URw{%6=?|F`4z{<~5)?PvUF z_^tG){;!|H{eSHne=FbqX8yFlzTwaFKQj|&8}1YPQKPP^@zlG|*ma#i%-RW68aHQ& zTv{porERUzzeAl17w`PqT6x4QZa>?y*VkXpeWCX@V}Hj#m*D)6Yf{nwjyk8_yEf(e zZ?nt(&u^~%aKWF)O{9ABefjkVCo$NyO~_PUR`t8A{{A<2*L6%D^Z)S~3trm&pCK{0 zarvK{Qf#{`()xAO8OgcmFdq{%838pW#FO$^Q%w{)0|QJ@}si)N}v$ z{yzh2OSf+Lmyk1pPq$pi{rOb;uh^+do!a2|SMtdj{~1!JMb_-E6A3>YG_}9&l*ale z+fUtC?)tS#TylJ=iLrQY#| z%d*cGe@UG(+!d+y*VyHSx9I&{Q|2UvD0K=ddHCA3>HRfwiwW(pd;85BJza&xk3{gddY zio$U*CPM!i7{1&6`6{hu`nL6CS9ZF%$_EEW*F$WJ_Be?b9+h(us{JEb`KVg5Vf`=X zDYKHTo*2HFbxol+PB?M<_708CwoN? zI=W6@U6Q?r+o>%|`exgYv^o42dU@GDmKaJNO8Og-%d`EBds8US?UgSg?v=S&Z=W7_ z#;bxq{;{T4e8bX$rT-azh+9wdc&~cqO^jl}4rk73n*413F@Y*ly}^uzr)5k6e<+v) zT>hl^yv68E@?&Qq`_ufcIdRejZxh3Jl>{y3?f=j4G2Fy!o1*`eV_Fe<;zE^jbKgw3 zF>l7)KP-ED*?THg5?7hBwC(IjYrZONmh@P5vzXt73)^+=6Ky5=IYL8{AHM$2@GiNCYR(do?@JFLeT!Q+2i&98IGw&91XetFrWMNMn0o&!Xi1H_recyPs`lQ z;gTuvrYZ5^zM?HA8$#qxH>*FNnvt`|^H_yed&7(qC%dvtpK>zS1x-=9Ke_8?=|7D> zf)nR8UkGo$5Z?cvVaiV7O)P&pqB*~rJuSY_qWiH+tTRGzuDn9_gN`Qd>Fab0zL>K~ zib_=|d_1CJ^U>n;W{y8UeYrm^JYynk!?ZI_{Dw0#U4~r9yb!-+AiEBBvBg#Pa)Pt0S-z+nE z1^9Q1FjetRbd{7l-m|63ATF?uuj}Qc&8~`@9C^G&di3}kk6-?9if=#jHuD2_7WVi` z9If-2{^#rT`$zNt=qdMi^jvQ7<1FyJ)ZO}|H9^{Yv-B=r5ouLl@1yNaq1(dDY^E#g z^~cX#aIj~mKL48)N1w5JS6pmzHvet!li~PADDgc#gC({Ka=m-Y}wrW@}S}!9l=9W9&aqzC(CK<(Q++X$3T%Mx|w4| z`!mfc>1wu~hDs9ObbAl|5jk8mLv~BTAv2SsZ8jffr+FRMS8ZG;EXMi$vZRi^!*567 z*0Mh-X;Fzi<@TvNc&0tLp7l|heSPEg1F9KcxoSlGBlUKueE-4W=+nPr@`;Hh@gB!S zA2@FKqJ8tOz&=YIar5S{YL}RKb~!D67{e`TRLaYh@jiKNNk;E=9o2#*FXh=z ze>^zlz~%6%iv2Q*Upx;VklSQ>yFRcj;LioGOZ*v)?yS5!uK(cpSJ2V60byZHB-O@ZsXg?Sf!PB-u2{i8Pb z`xHgz=`r0kDw;Ye2Rx#0>raqyj8(L2&W=eqaZ_ipvh%^dAGeB9J{azi;CQilad2B( zYf~(L^n>uD&d&qczMoF6b1vQ(u=#>{#o~Vl&Y!DK`11OP{=psQmMf0j^s-~0-<+z? z7I^o(rbNn~$&b=LTyf+~|0&hsKcn-EXyKLH5=qCHuTGR!nARM|CM`cnwNXjpi&-0Q z;L;<>%Tq-f?Ite#)2PnB;iBZl8~2l>0(tLAOnSQUj~8F*k($yEDz=}_?%4Iv&UK!$ zHTUxJ#X5nfi)TiBSgi4Ek)Jl-H2DJ)x*0y0-uPhq!DL2rQtuz$l#cA94%ZA!j{Q(S zrdHd3*Y1!0qSOBr&Tc==Y5HN#miPP*{t3LE*7=}bm1X(C?Hth$?Q|C(e&Jvs)^goB zW2NAeex=KH9v69QgcdjP&X#O8NWB;t^w>?sXoHiY-f?RYUMoqL&xb;m*cKgkUz2F1 zPnx9MAE?Fi9}q+@7aKVDpoC^WEFETNf4`K7E+O__)TOnZ>yWXC5)? zIoRHu$aPb2!;Qs-`jWznZ+uZPPh>TB30j!(rkK&;nh(nlr6c0)>+}!HvHXyKrStFc z8S|fVay*~@iN}i`ewcINR$AK+iSK9Un2F2i1%251L6`Hxn=`)y_sdiZR@xmB>{-UM zqNAbX#!Xwc?DVNUHvB4z1(RI5!*=9;&gqiYlD~fNb@vNjp7sYZaeU6R9B22dJ^8V> zAp5lNob}BDUq4+)+IqYJ&k8hHklTY7d3tIYfZts7F17A!NPNa5oQh#58v)s#`%a> zBvkW}T2*pk%_f0##^w*g$r3m2{&rY#UUbPhplk?;TvCUIe-6n+_w9vQOA6i zB}r9X9}i4YSSPZGv$G>4s&-my%oC^b2cuIwnnHT_m~6mM8Sd!p8Z@I)R2OJ#s(YN_zTH_fkQH zvwa}rF((0sn)m-10+%ZvlI4Ez!LX*@UZuQoZt=>Am#6OU>4-Layi4(}##X)uO)Qfn zOApp|B+Y#0IM+%jnEO<}@WNKkO=~BtU-<0EQE}dx7Q2|DB(}3GOg+5t=fmEMX&p-Z z8)})IOtfFDWRrN%7shtf<93&VqsV;LjIH9cT2Eb=FEzI<^I(eitQ}F-PkH_`EcmBu zaAR%DpfW{LUH#7meXS8Who8}4IPY3 z2l%Q=Q#=^dToj`i7##91^fZ|8e2%y-9(u4rFX6D~xBQkFo^}dXI-06DmriuMZJ?Cl zvB2T3h&0390~20E{#hc>sdPZ^!Rb`S`_q)znid`8+^PET<{}<}jSPv5OfQaT|6X}E za$7)?Mq5up%MW+ug!Nuu4ofB7ovd&vN6=tdMBVw8?=O@*_@j?5S)j#W<9{bXKbWJB zF;_@Rrt6bfmo~1P!pOUYfq}8a!-4hAA8>oF-J2&)vGUtXUc6B;|mK6Zu%@>{^YqlM7qgd?5| z0iO+${2wwfh)kNY>xn{5i`vSv%v{6dW9gIMT3+i-IVezRt<|N-q#~)n?O1VxjX^-= z`sKOT*;jF$IoG1ytumV>VsZZL=`D*IG6D;Dg^qpgN>G2n`&3CHF{SC zTl9^A_w1(d17YEuR;l|gEK{jXn6}&NO-};{i)4h;0tZIPEj=N-Rs{JJB(N}L^eRlA z{rk6liNh?RsX@A%ZUr&qDX<($SlGBSajp07-y9k|@nSokxc^@4!pG3bb}Ep8;iAs0 z!x~C?Nv#{3s@L{VFSynFbCT=DXUBGMDTkrcp37bg>%aZ zT?P);EliHQ4PuiboDYer3oXh0ym8r$z!_6g!>+2VAwl&(+0LY! z{4c`}>bf2`v1Q;B%*#=2y2l~Hz#O?GDsa1_Nh0&4b^k82l;ur1!M3I2MBsvqa0y05 zl}R3Ar?0%2#IVRwk+o8A;gK_|)FK!a7!{}8)evx~Ucj)R{zB!JDBbIS|1&%|d8t`v z`Cr5EyN+)Rwg+-eGMdR!#r=UnbJiJ0C&}eE?6nGi9egIjblfPf-C^s7z>>8Kcy*?9 zC#4@!2<9=r$#DI>{F~AVmjfat4ZSzJ*0#z`Uo-WWLMC6xZ0;ClSwVI|=a=P?{Arn& zH+n@0hMbt`^{=ue*7t^z*W?XB9ia?M*vp$tg8bh;t-h+wBIRXm8?|(Kn7ZC~$T2F9HlzJ_d`LiLf0b5Gs+YcOMJ%g2*j@>V{Mn8D8^e`rzBiz#bcCNL`S zglu9+U=0XJZ{PAEjQ7wyjcJcr?`q|=wlO&+Bv?JawS@VYhzN(uf^!Tj<~Dsi!*Hkm zPG;1Wxo!5FA1~*gcxVw<+eD3q2euy%u^*V=sdD^+z$M=aFF(mImQ|XeC6%sVc=WI0 zrYVyc6i-L+X|a0U2>4-gv4g=er9Qboq~n`s+Ab@}%^pkBiJ!IcedudQaC;1Z}h)1qWPDJX)a{eZ&74PWbucjYkNvhh8s z67AZVZg5X1Dq~rc@K2?rKNFqL=q_N7YBIN*P1VCzTj@TN4x#+IN0A6W+6PSNWs6C9GEk;wSubc3|?@$ggCp!1zUh$uEsf z?^nVE^KA@DpS0b-tQFqK7R08&D6>l^LN#-{k5m2LoOJ&Sx(PwLGcVQ`tV!+vn9VDg zSlKY~0IPsu`jqDaXKKXx_v^XwXZ12_ENa^3%m37Pi~B}~g(nr4Byn}HeZ7=?R>9lh zS=3p6r_iD^D(#xrczJgh^_v?o$sC!OVc@l5X@Se-hK72h?8gjqe(cwZF+Z{NqsK+R zAg9N|>}NIzEN(K_@o){)+_6JS!E~ZTz=g=9@=06RUu}8$pJC(52OcI%8fMIJ&Molx z&mih?MSTN<;G6S1cQ`)Jle#ATY}Ub*zjA7&PrO|*tFXwFrDH~o6Q_#N-0}^dRs~10 z?|*hBMxMtx_|$DhsW$;LBp)zxg?yC}nKi{h;dzwU+oOwih~IKluSsBSIxM|OH_%al zu}y^S)R8l1n#ZISI-KV+2;ouV#_hlx<|RU}>+| zkyVybY`KwZ89&TiFlTkI%Ln@~!H`)?IaHn-l?5mrU1)0e?R?^rD-XRl@@=Z$pKzjo z{dNZh#|;yh1e+MHsa@ytJyI_>Rdvc%$0o-mmmC-vm>3r@FfcH%ghVMAOj&6EpF#M> zw{K1j*ZxJZSTrgyFsOiJT|fkb;{#nLQx6%19Tms#>p$3W?$c@y#R&`yjEX9=Ji*Es zTm-}~C`4pgDzF7AG{r^k-OwR4fj?o#=cW~GKHhG>!+aC8JSQ8Xd};z^Wt_w|D!d z@{(s=Qts-jr4MdM-e4x>X_@VER^dA*o1EV+-bi=rNwriO5k16 zcTu%xCd)02jwLJ>hSP!*+PZTmtzr;va8qg$cU0(H;J2&!cm}IV)k%fs*pM4KlRO#3 zHw8ur&DCvUDU-ADWZ+x&`~{0xt=WWk%}kr;Ov$_cNymuUWa$Uh2d*AQN7b!g^(wgQ zFx>O;?vQ3ZQM6q+{n*P>mjvcj*_~8+FhL-uh}KZ@gB2h2{8u zmtGzbog9WUECRDMmvD+Usg^Vz6b(O>vW$b(!JvIbjhY3Hrn8Fxe2`e*tvP@wO=91l&_|r_c#rc45>eZ}GtJI~m z9nZ~Z{Lh95tdm7@snAl1a3HZGH`HyoA^Y*>0a^T z0}(veY>FJ39JHP+JKJ?JlZ3e5I~pjwV3~L}W8WRlnF{L~a(WIe{LhfLDNAtS-mLF&O?q4mEAB|Mas~-9zLe)p zU9;1vOZ3h|^SH?K%TKyr@>I_76nUAT#wgh|>+b@_jJtk6i$I$=1sNHbm>HNDnOVS_ zI6=4J2nr|~DmVrvHcm7s-1uSP!HW+aK0-EeGBYyT3%ETznG*e%-F8mmo?WRA8;fT? zkvjBdPPa98*TW}Ub|2ocQdjJg(Uu>aA&+MI=^iY)aV;eJfInAEXUb-_O~#v=bRDO5 z*H|68K0RXB;gc(BmL7YMz_Tom$!Mm3Z&tyyJMUz^$~`)L^If#g&cb~DRIj8v*@rj2 z38|5NVBtMSL3LuAM%x~)Zhhvs@_?Kv%{tS(65ey&*_za|Wl@;iD{h@n$uifpSXTF_ z`R&=Maa#XTAxnK|u`uhYR6FU0b>_2Z4Sb;XRI)B};hXR-3j5)_51jST@CX26&tv zVG)-@{((CZc8D`qZZemQ<9_s>S3R&)_xPSG-gBDk(v$C~p7rK1=Vx)=^h%ujqwK-` zQb#RSCvAExYRR_HC(-1vXxENOOI`XF1|7EQy0>BSrjDt74}HGMRq&_oJ!Y1w6(?2{ z-E~d-k!9s;&5Do}Gq&+mKe0W&BdW<_#eRW&Q64)*bGZtcGYhWl z{%9#7ziPYnlx(|)5A)<6+%xSBS$}2cGSyS+2Gz31XKJ0eCS35$^l{N+p@;GpEN2*= z^yi-bOJ-X0gDV+Dr%$fYNqx}k{bSnc^z@z8b3gBzwrOd6@6kIuG~Sg<7TuW{>9gdG z^wb=$np54C+J-!`Q>H$O_5D#6D0iwcVx@~q@BLQGTV7YJCvSZ7Otkf{Zk)J&#U{-- z8}<4n1=%OE5AWokdFGfFcN2?;^}#zPeg{|;Cn2NjI9+$%=QObmw}rphIjg(JXL>{Z07h!9j^p>z3-L8W+v<)Kz^RbaG|U$((IL?vrQi_r7BvFjui(l5_C^e}DM>iE2ie3d)9S?6dQ%arMjlIdMMT&a0#ADjSd$Ia%AtLH7|IKJ_Tua_ZHp!Oq` zMS&Vq9C_=uU!QyB>*SdqdH6OYz6yL;cu>#KCrmsbOONeO>Bk2Zvl}CqNKX-bVpb8U zALv<_7p;Fd!t2D3@4sfrT-Ka&D%IfNoyTgN^%2UCgVWnSbbHbv@8OU)OVQ@3srpJ>oRwms+k7PV|vELs&P^dMvzb49%Mnwa&n zr>D1W(3bkJvTj+=l@%=OJJxKA*?V+_^K0QlPfxF`teXAU$1_}W%Bch|FIAy_gQB3I zAl3@DrArNpbc{WHc>PXI)ld~`=G0`DYVgwMFOr(tGVNgT!g-&Jp59sew46OK>CuLF zA#1)0TK#8uIL*NHm%`!6!J%v#(>13Z{CQBPZRzBoGm$!7f;m%u#5#5ssOE|49G)O}LY=MElyUv&ObSR`|!M#tKwFs+cqs$Qx>oi2+-9DYnWmAceurhmtpX-=AqY)==Q zmKT@%!*eb3z%||JO(Cm0S1yV_@{V=x*$v%_d(6$Br-TY5CKlae++(LTC8^V8$r7%= z)`@J~r)F@nG*lXJ&ON(J8)Pxu)&DHd?LtTC<#Te>9CQb>g@P{Q=VZX2;ksba3B zKWzS5rTu64!5pY1+I3CV;6{7oy`1TK7FoPW4_Q5{?nrv3H<}8CZJ6HHasHP0)RpD4 zVl-PHrk(Wh?$Mu`@L(~Q!4qx1QZ1I{+}??qnHf`=K5XZSZd@bv+j`citl%j-Jr6~4 zD_n^_)t2#BWRL2k&NGX}s;yh0HQ#NrIt)1ewj_~1mc%O`05BHRcyoVYfBk2;@t@(>rg`me_P-1G&k+9CWtRTt{|u=G_8jZ&5C3OSI?jIMKf{EwhQIwk z#Z2Qj{%25(fBmmXHTge-{3o{XkE%C+OLf%Wx00V`yQ{wbZ{PDL>VdTvlk4YBv%l3n z|4qW#e{P)jPaOIEXM^1SGn;RIZx(fb{q;bilfe~Bxkq~fwSq#H^ls2nJ@TPQT&q~B zK%8mOl0Dt;%3>X-r6@g^xW?G!;)?g$ty=c`e|1;u2j^(c?&_&{X?{e(F5yu}i=?RE z(i=Wrrxw);zFZ;sec9Eb>Vh?@XTG{d&AmVQ=QNI@ys$@MeC|F4Z!8}d-;wTI=@wF0 zv4#7fHq-f4xZO1bS%p?)?wQLtImL_ZK}Gbt~r?gXZSWp;fnM}%SZWQ z)Ar8#u+nE`WWwpxP48m%gfRu{YFC!(e#~2J(I@lKVt#>r$6JloVlT#qFoDGp9!awj z{2sYUIu$LNAZ9HQnW&ecH228rHYZ-k`R^I!u5bl;g$KyF9jQ9(qEeqdouf$R^vUl5r4C%P1kuw?(FZ{>;bQ0HpT2dJL$ycK%*UcA>SX(FbLU{&A9WVXPrjK<3m5D z{e8@0G>Q9WVxuF+Md>g4e;W0R8r?6K-(2^3@q+65Yx@P60~x0%E;ur$b<(2AL1sEN z&XYR2e6R2SJN4T6F8PC|-*ddgU&g(k)H|o~!c@^ET6#?Fds|8b#n;!_c6U5XXIy%5 zSyzh!Z%zNIT8B^5|5W{F5Sqrk#`eY?Yx`Noafgceyni-7`uapu_d|3Id+MYU@0fKB z?%XuhtDgN)+vN126C1N^_Gw@JwL{mn=y3Pm1M9YCHHE)fvq-DD|C|5%hZX!st2e1W z(&X^|sPV>W=|XeeQ0@N=_mBLF+ji?WU&mgCMaysG#&;~)DHv-%rTwkgZJ{!0pMdVF z{=}f(>)em3TeBYMnnk>R*t)RwZ)aI}V7+hEj*Tk|d3;jpv!~TBvdlF3!Bf?$aQ~&A zPV~_*_M)3N%0&yc%?>8);|_5DQmuUEW2fZLdI7oT2fS|eAD3c(qqBc=kly~R@A`sa z>$lGB@_pc~5c71QQg2L{;9iaLPhXqcx8%kbS!Bza*j+k)GW)f_r%*?(hQ+cc@2z>Y zPWeehZ~j{iCTYL@zjaraSO3X*er?h2CU1r-4(0mx%s(6UFaB|)A@$9LBWIT}*JbL- z9zHYUs>AUWJcYK?FHK|mxQof0E!_*ZbuN3kun=UqN zNowiP<7N`jWh7CzESIv~_> z)z4=71F@h3I~o#{M7z&UzOtOF@t5D8bI-r~2ZU4$d}n?y?C#NhrEp{Lr2Rz=hPV5& zo}P7{&Rn$MthY7SorlYIcBL8wHk6xjroZHRr(M~)dusVZz4%+pixxgS9K7;)>*>_f za~mTvo{25w*!nQj?3Ajv(y1Ms?Hg)z&Q5G~6?=4NvDwi>``6Zj^rwE|{bsp`MRxZe>6v9kA5zsbxX7@@v&HN|^V^`u z`avBV?rfQzWO^pz)QazpInxc^C_P^(@REsRh4it;*{5df2`zRps}Vj_e&9{PZQHa3 z6*t?1_xU=m5SY%dm$K_aW%t9~hfh|R&7c2~(fPw2>r58216K7XWv;AruiO7qH!FU1 z-`gg){kir1MOz#@_Mefz{{3@9&Z>D!T&4agR&oDbAhmG+@_$F)XmsRc1xR^o{$mN* zkn(J4^FM(DVSg3#9smC9Wm%)*ay0nv`R#GS<{S$y>*{4aogkqV9dvn}ocGFYtcgkY zv_-YqK9)a;Z$2;i7QVhv*MW6*kEsqb*ER9H$6Q7S7OdcA zdM@TAeoL3rg`0!1f8(wnO|>`c+a#s5zo%X;)zRGl{!uhb_|0z>YOU9Q_nwvR4!C3O zv3U2(_Llb(B8#tyMM`Xox$?X~us3GOyPSdzp(l&>M=kl@mbdW4%}GoDebo#-7^}c! zyH!xeWzEDW`~5Q`o2}aa9AJrZ-*l%u^>-WP_>WiZ}^P8r(#x!%04;2=bwVOuHydrukAvl4I}&Ys%U6D)CWe?6~W?1l1$@c|j> z4hGjAu8Q~D&C(*af;&Yq=#P{&&kMH;Wg9n@e4X|#|DM>vbf3MG8osUVyr8LfGxXVm z@8&N0_hQ7q|8dn?95cOC^X0tu-~SmlXslsoY;wHn$on=tQT-`HVW`r-OU;jWzA~IC z9_TC)vHWg~<@(p3S?WJp`!CVUb88A*vE}#g*FR^;E5GmH(*OQ#jev^X^I+y&4)I_1 zM-uI?%1O;J+|NDbfvV7?Nu4g6L<|KB_V8`e&UX&@`}7avJ2e$0TfrrDi}^)YUVWW^ zZ{6w+Q!dM!Yn7L1oo4jD&^_n(@7ro;1NfUaoc?i&XX^)sEsK83G_?wpus$&QqRJUA z_kKmU+X0hpZxpi@?<%NVnY2p$cYAQr?rj_)FSJW96djdxys$yDdDZg#soX(#*XdsR zV)xo{OZ%azdM~s#`*mwwQjW4du-9$fDUpcA)e%!)^0jb^zu>Qa!o+l0P9W^P2gk*L z2?u?nW@TJjb%ROS?a(33{z&iEYchT3Uk4^jYh~QY619)Go2|35IoD-{+{}G)-dmTv z*v^>u{$+qn<2J>BNiV+t?0)@w>0|F-$5zfdDPzh}AR0eIJHw${eg?0|#H+5q+9ood zj<{lP_3MstcF~U~`~Ndk&3#h*Ui6`l{@14Kk?8V(B5jQ?; z`MYp&1HWUr>B6d42Mc~3{MqW9y=w6lKND82qtQv4yWTCDvGi%HbJPaMweiZG3H%GU z)`k8)XyD~1?{V#g#>-;mi{Z8NP z(0#Yo{rkLnZM|pUcl*+g#Y?uPT?~I(c5KPJ&x!iouk6-8{o=puC0E^AE4%v@M?J1; z{AyVJ{kMPg$NDYuKQ6`mydnH};@_4Z?NehFR@B^^pX+RInpIU0`D6W>DwBD0Evng; znp*XL6fALQS=}wYB1O!BA&+l@cluUg-{MP;8|Temq7@bSO0DB%;ajIC?KjiT<(OWP zPOSc?82z)wk?B#*;Sh5zP4T2Pzv>DCbWHvxcu&zWu)p>CP`UXdekPd@D>tibf=)7n#KQgUgcW%k@t-@YhL2?ndW`=xaYuNXDiIUaQtNS^> z3RjtO-45Bxm~~-qf9SR7ol)YB*XAycf2SoAQoB1cakbFv*MgsC$q5IPyj;Z`&cmu6 zc11aD>jnRaTN%ryuWP{fe5`yWsQ%^66pOtR zmtOxpZClKS+aKd2W@!FV_dW1eWSw&LrGuYk?`XR{-NIE`-@pDDdxB~C-Q5c-zs!2A z{p*dO(QonecUMYvU9YeF{E=t&T4nyf&IN6vC*=ZykwTTAZp?Ynqf@h)#*+FaIeaZf$B z@#cLk`~H?=PetyjUn~Eq+IIhPh~97hpJCEbS4E-Dl?#k-HMZ0}b>Hc@pzZFZsyX}b z{GBj^eO30K)%EpTzVTGqPLE1^pfk*KxRRHZRa< zSKQCl7{T4R(}#13{(*OXr>0I9H7|PEEPo;JiLj@$$Rpn4QjE9j1=R~B?4GM>u1Ju| z<(6(-%qeknt)leGs#Uga4>)osMKae{cy43g6n?nDJo&7k+f&)@3r8pLb*yb)Qq7?F z>-#?+jv|S&l(}^c*pjU=4~d@q7(C3mQ{P7Y)WWL&l5 zeXNTe#}?}!(_Ts))(!kPJv()l*Gn^(uPlpszyDjq@uJ<}Q~7}ejgvyboNnPouNn8q z94SRi%pJ+Iu=;4e*~ z4mH^q9)5CfWj}o5-E@cRr?S|tz1nqi+86s{&o@lq?4wmf6NI zEqnI8`{uW2TCr@)aa`qekM|0zW?Qe@tGEe_e@=ICI;^l&3OcD{*j%u@=u%+fi_T9q z97@uSKl*Z&Ocl;OlKD`>BXC8*ozbIM%s}#8$MtK|_HE9+zvY70yxu8WcI&KPB-Sdm zrOfedn3>K`wkfp= z_g60YtiykW<@cl+0d1wbxHWh0T6?~u=+?jfDPgQ-6W3i@H}Bo*JBy+>bABlCPq^9W ztE}mI)FFJ;jbF!>zTjX#5F+m@blH80)$V3*y>;sgCQFB#RVW>-<Th_2=$~y%ao#yTkTg|YNeXE=Np(l0?t+hrX^*1x!uc>rizoU9%`qdi8k2(66 z`rVIiJNS{!{JQIw>-v}DBLcUXwFVdLKmM69v+9>oyZ>gP)9;_uKiRdV?o7V*x3s-= zYI*%f{xh6R|C{sppJhVM-^KC=J4$~nz9WBs&CmDm?^XAIa{lTPHSghyV#S=~$uq3Y znS)-o{_bQpl~#Gt)PIvLkmG{DzLhuLF29oe)akX&C04t&HTxdBaByw9a%`fRS?{@j z6C5}06%Jc>eQT@L&#q3jNw1xvpUJ-ad_nsCBylfW2Og<+N4F^C+**1g!s(exW8N3m zxs0n9#XgSKG+m&}bnnHq#OU1_UaPcIZ^#EsoLs`Mo3Spp>}^E*MsXv(-CIQ;UE=Ck zDez8fy6D1{Nl#f6FY4`+o4xx^y}#_Pz<^DTI=w5VY!IClvUb}PuC>au4t+1YBaoOd zOY>#IsWSd zQCJ^P`k!GQ^PArXs`U44UiZPn#J zieEWazD#6);(vqj)5e&n)!Y7vJAPqk-}#@R=;6^HmwSI)c=AW{-<$>VAMBrqu0Qaf zVS@fo`A_VNKM2VGkpC1`{6qc1KMwijkHTNtP5EUUZpf(FG=YWv$oWdkraWH9?Z=jG z&la1j@GCR3<*M!;vr`Z29=ILiX$;%7eEYn{d!45l6BIYNbzbC{yLqia%;D?R0(d>&6Le7q`Y=>$Ma8a?~N>;`?~j zd#mqwi)=mjZr)e_34hCdjkQ-ibpPe=^0372!Jj&%(`pCr*z(>wf1{Q4hdtMShM8~s zH~yJW!EnDw{@)soAl@4ssZ69X_I{diybM|KGx!|J~JAAiR1>*7XvSN@aV zrU$&5_|LU|=GU+{`!!Q7mj!E1IhC3;pJggz-^rlPpiY-Xfsfn+%O9Cet~0yiyk5YS zw_~>8joFf~WqyQ9cP!iE^2k=2@ms9gq@^Z88zR2O@78$r;!fpC#tVJN?Dzw1uG%953#iD3<~6F39sHB5fB@^{D2w`J?Ygs)_>WN>S3SvBA2C0BRay}P@g zA77#Bxc>ITMdj(mj$W-9HLUCxSk?(nZupvAugy4lQOCCV6}s!ro^zRTp-ivw^6N)Z zFZdD|cV{pcR_?pQ8W79yprC2Bq6}w9#+@(PPr|pvuoQMK*`WGYu)#Isj@aJNTVE4h zV{*+*Y7X4H_0~Z=qm0Y{j^WF#D;?kX_V5S`bvmBg7PfwW^qr7{*@3^-{cB%vamDdT zQ^kv})ZLFflYH;{KOW})4AVBdtp6uuxFY}XJ^g^J*t5RgYYe99uvLWx%5`pZJ7-vP zNbK;I;I*x{_wLYFEZShhu%c(}Lw&A0D~iRAPrh@BTS;i)op9UwKdVpPh<#!lwVze( zsd3N7?#VlZBK%%4B}~^fGrGiQ&N_8x(8)A8cg5nq8!=&r=l^Grnyx;$gIKFN3V+J?ZcD+{Kttk9C!7PP5fc&AXraq*TNQ`m%26PuvsR7^$v&BUN%U z_kQMy*OTIDQxa?BHr zSR_Q2qH=W)YuA!=Q zXZ6$wA>BmJ_rWRBhi^@rw~FPC1=0wc9(Mam94q)|3S&yjJuq3)DDd-uBdj;gsV2 z%gao4_eeR3#aU~fNPBuZ!IbyN&O@cot4>90OkGiAXXYXq)VVSxs=H!k0B6twUvJe( zlTM~=oND5&{6M6+&UE5>;ovKVb?Qb^jZM7ntQ#e)rt_sNigQv;(6`(0TD0Y;(H#4w zYhJ}{iqwnLIXdZN%4RV+hP;5f&Kq0x6<2%~fAB6Qd_!Y%(20F}ICNwmbvn+<3*&pJ zt{8l;)_r4E?B*HYSykWjD_z;LP3x?|o?8JOvt|oTIv@04(h1I#O_2|D($)8@`_q@= zyy>LN3WMYmpHD5#KETJ-=M?H5be=7G@{AbSsTzVxA#SXRcf49Q^Ba`v>dyUeW!K#1 z2(JS%tJ+()>S=fP_C9G!nx-tYp;)nK;pAgaXS|A>CCSy{vNF{>?WWJ-V|&Ct2yBY% z+K}p{lvi~sEY8)U!LUDI_W3o}gk@Xqa0VK#_{{9a;jlxLEmHQ7%-Lld@5>(j;Py1_ zocGF%pqR>rJBmzJQ!IrQcZ4P;#Bt2nxh?vgX@H*10ggu5Cr@sl%nW^8yhh`*Dso3&G+ER zqCkxg91@XY54=>*?eIDvoOAm|!ud7Q%4Z7aK1f??P%NEbzbO6Nv4^FT3nfH*h2BN; zYnHP;GRZuUS=?P>akgEwMb?kL|V$}*TH;92-iU)?DF zReW>P74Ip>o_+M$-YAh5^`V^i;Q3U`hkVW(-YDE-&eND``hZ)gV>{oY8E$;~+>kkN?xfkF-uajiX>JBtqbP4&GsQo>_N1~6tAhx=03M|yI15NoVQ_V!jsCW zE6XKReSLqdt#~<2=)B0DX&d&&l=C^Z*Ra==vsa%^)~)%jlN7TnQ9R9(?ZK7Z(|45V zywuz?BleVGsmQ_NI_s%Si^cVx3O;!yywOgX@3dmhJF~NsZis8n{SmF1>NPcvd55Lx zBSGo5%~4ZMrH1YCIvjAY_t0y(Po@vJr?@mn%1+n+vSNz6pTuXbgok>8T6|(xO0!0e7gp%310)%?^K5B4m#b>7su^1bL9+2)5U z)3R=sT0b;>ePrn!#jX|RU3V6REi9k)`N`ITBI&6C&zPQuiEWD1IXhu$(L$l80_IP` zUxfasJ|sMISy9Y33*&H&(?T1Mi3>$b&z{a+v17xkqxq)H72h=*X6o6oJU(EmJ6$Kz zWywmnBGbm^!pM4~o0Xfa<~rSES(2#Dve@>Z+^LoT@1#3B3-rPkr)-OnscMruow7*n zsYP+_(E~9{4ozO+`t0fHIn(u?zE|c;TF;cU!QP@=v-i={gN?$g#glG0`iK`jK3UFqHjg#& z$)*o4=lB{JZ+x;NFH<#}%i-*kY}qMC&hI!CrkeG*eWM<8>y>R$u}|A(1hY(#p7A}4gvM5kkdfEenH8xFa zb~yGpg{(ckxlOCz=<1Q3C+r^@`pI*DP|D_4xUx-Zy48=WqhVeKK6B4*s7t$1&Bk$h z*0hS4l=UC__-=e>6cTuo_c*e8=CinpBHpLP1$l~Hs;WsB71zWq7JGV)?Zb47A5|an zHTSS^75gkx)@^bM@#yuBFnf56DbO~Q`VQv_F?x~9=w zcujXrHt&@?dTN|f({=tca0kaNkKk@sj4TLsS;1}5`C3o$jLgZCbxMARH@^A0W6}n3 zel~-f?fVta=tSt0YxAcbH9B%d;-dM49fIaUAC?7c#Vlc|6S}#K_s6xbTC5h@avSeG z`g?Q_(@~GdE05e#+10X)^=A>U_rb;5KKn)QytDPMl(g*1;`LU$nX}`0&iWaLKKfko z^ijA|ShYtl`n{Cb0dpat+tZ7lPMUP;&?}MFr9a{}m+C$4dvs0Hl0%VYO?Cg=AM-fp z7xx7{HI$w@*Fh^#yP~p{LoMUuqCl;s&m;0>|1+?9UE?g;yfa7gRix?DwSLB{-~YJu zG-+$^(dDNjzRNxP-gHOeRrtg^U$t(C{u5*Mk_i*>b=m1Db=3WEN~P(nIUklx`BD9` z_~D&fl@jqkbG2lh{lfO>Nq73B?w8{|J@4Vo_s2RH#Vpwrx8e2C`4QjQXL2|031aaK zePCG1cHe5&@%2J6ET>QAte!JH{)wDxd+^S8I`MixZIAv8i{0q4EdRi{If0FP8k8;B zG=pxe(`?jYS*%!T-nXnxY;(bWg&5N=o2yNSK7BH^oMrf?@*nGTy{s~u*+)4}w{3fH zXB+R6{bt$sL{%NuTsoENvMB6nmN>KBACANZo;l7Fw4&^I_QY0AJA3x$(z8OxHPd2U zR))8$dVO>gWjQ3YG%wU^$_7)7qcK-xAC~KO>&YCtlE5eQAtWeL?_}HP1Y5ilDUPX$1^f6j5&e~o0BQZx# zymDtw=-C~y-imt+g=R>snA)unY~8M!FA|dEb!z^D&2o=6mrv~ujJbIFj-82@s&I}} zcbZ<5nCj_i$0jFPd9BJrQ6rR*XuZF}+--R}?dO)soEdyMzE zc+kU&YMF}>5mQdxSutI6s>akkqCq`6y{V}&YY*JX;xw;U z)c9N~^uTM{>HVzTb#j{)?7X9VCT8c2Z($$SK7D7d^>nGxrI zTBn-yX>0dlRs-vUZ;B%=#U5CMA6b4>!T7D7ts`gQ3a7XQ8?)jxK1m%9bUgnda@N#Y z$x@#J^)$=!PTxsBnc%wTTDVT?>6IxQ2}BOyz67J8=Xw0f(aPQ9l)?etM)u1(+dD>n4Gi zG3>KFb_ko}iXY?6D zY%+}%e3A-=3<+1ZMY9QfKR4;5XUe8XovuVrPp=Pw?b02cvmObAT#*TmTrq>4_w44$ z8$N6oI}it2i&>F<=kkL@JvFma$*mU4f|-<_IICQFmldr$WxCYoqJ(TSZ=n<0yR~vt z)5Fv(PODD5{Lr&$*;4lj&x8V-*c-*Xm2NjZUeh^!hlPLfolP31joSngrto*Z3-4I6 zExOHoa?te?<@zV5?7ZTtkbQXLmaFSEc9=^Rbw(eJSM^G?n0EHa3ZbP!J(?O*wI7*F zpIxW*Ty@ij*QQM@IgCs*U4H~mnza9zSD&e{$*DB~N0#$Xh*|4osns#lGv}qobjeqR zv!*!gXjzhQYRA;3P@z+wR`e_j(+Vlok7FvCbs&zRF-}yo-TtT#s6YKMfJal+Xv1ib?|}mc z{Y}iLPn$mNWMz)n^ywd%K3%$W>C;W2V9rdL5|8voX#Ag{=iuBrw$S?r4zB-jGyUs^Cw~H&8Q(1}T)EKtfjFDS ztPYnIUU#DAw%eGTQoh6RV5(4P^1X~hd90^W9adIaoocL*NaC40m2qk%_tOKa>o5Om zUH?M*pF-ll`LBYv{%45)(^>tWVg8bvf9U9&7X|_?f=vM&u7ak&HAM*_80y$RD2S+{o8kni|!fagTGwo?HA7X zKgg8*P5z3zedb^Pg1`G$zL~%MtIXR&YhTt2w$AZWc-mHdv|IP^4&kDiK3s=*SXiIv zD{`ikc_oEurs{a5W~n{qx!HAR85>`6hk%1onQTj>qpPcr!1SCQGkCanY`i1dza;ZU z%)HJm7p;4hB$HHK7Cp+DC3rUWQ26GgrMDPd)-8D0{^>u%ot?JHN2I1DUAMl&IwN&M z(w&G+7oSuzZFqZBXjL>zXVIi+wiDmw7Kip%a60x@T;t$pSW#9gr62ouaehJ0wASMs zl0H{g{yH&DAt8pxp~3wYzYCM7x!~XWucAC|zAl|*e-kEVDHjGV7romXvnZfK@#ZyN z!F~gAQx?5EbJ@fvQPY}s=4lq4_SoKCQ>oegN=|mJGr!=?E9!st9_tLU=aHV<;(m<% zz%;?24&ky+7uEwtY_GT$neT84{#38>h@(MqnSz3{WWf^eq<}IO*%;|LM;|H~1Tq(B zWf?wWJd}D*=&8$;DHWoLECrj7ZTKYBS+w$~p;pP9q~asO8SQKTF5U4`ag&v~s6n3o zjD{o9F$M~EHq7f|&Y_FHK9QEx0JVd}WocM#TPS@v*{ zYGj{?dB%Hg|B+X!r&fmfsy!~XoEn)Sv_UJFxq@rp!{q9L0$Gg`(>x+nD`eg ziQnyO_gH-&f9ecj#ubw*SBC5MPTsNO=k?|jr%pzewr&uql>J~S!h8HkrgElFl!mKH z`^o^(?Az;aacIT(&v#q2)7Le2LVrN0sBZdt=lDube}SC~ynk={Jl}KszZDnyW_7*R znd^P2$!Lk#mapG>X3dH}vRKLZ#>)Nsckt#hp8T*d=(q5^EVh z56ZrNc~T+By;LdUkiscnHhYm%PtPA@>YBGitl`G*xj~$c=0$-klvkYG^opS``)iA1 zt?-j-p{Ul2A31Zse`dd;%w(m={A+Wy>65=tpQIk#!{L?qL@Q8i!J1d%+RuWtTz9a^ z9T#y}6RFeSrJ6M7>%<2|61l(a?`+hQPRLUd;FqYjs;O>oWpw$zVz0NvvNLk(f}Dkp ztZ(lhNmKk>(A&S{{zs;>BF-6Sx3jVZ%2^9s+A78)?|XRbJh}dNmRGhW-qg)ge=YxI z!}WVf-)v8xxMzK2O-PdL2czlTtrctDxVTIYe6yS-IM7E?XjPu-DMJs3`!f>WFWP^P z&(>+)V%Ck}tl|YRQ@8m}TflKSP~gdxMYdO#&YpIAdcxu>iXOdRIgVw!$+|}{-`Rhs z_{QGI-z~-~!v#8bt~it=I@M>TkEe^Lk7akk?a7npOuM2xwV*tXL1Ljy9{&&K3J%kT z^$PZn-Y|J7UQ#ld6}9vgr^lp@wg+>j>MALO1!@Iex!A_JSwlYlRiH*eoxmc-Jzruh zc~AA^uQB~TPgw5Y8e6}DMDd{ahwt1;wJ`Jyln>fEOL52aX*VOamc5tT^iPGY0(wQWMTFs$#=RvD>A3K+*zcuBKz2kBAF(c#=6w& z{~1ot-t44%)|z$Fb)5swyiU63-Y?M%xO%`#@4=+K{?3J;WDISjOpw$dxPfG{l87muQ z+UfAeeny$x+rJ+l>wUgr)$4jE_FUqXO3f(`3*QAX@>T>+dT>YU*`Cs(r4Qb5wVhC? zoGbig_0RT8eA{^!M|gL5H7l+%yrH%{wfC&_)YCnWC;avh&|_G}-XZrEN+i17^cLn#f$;=u_dDT-M+)wT*sFXX^w{+&V58aHrJ1bOtWV<7x znv0qXa(k|N=`$5GD;&CKHOu%C|66?zyHD-%3--SX{Le5=)9cUvm7n)dxf@;|Qs;k2 zZu5u#3^(4tu;2Ng;cR_Dw*C{H_XSRq?02Lbbei3DZBg~~rM#zCyscMR?xgoz zv1G2s7jtumwWq!~^}4<;dS3VF_BZw59_zlDnR02;vmL!16!HR_U9N?)3T52cq_XzZ zn%#P$O5cX~iRAKzitmtyVp_8C>>H~vIrN6&jY^YkZ$sHIuF3}>4Ye(T?J>9T2c zTF`W2-#`65?^bWrJ~QX=gw^du8{WLK^P9gUcSqZe)`@$T+;O}t+N$=P(Uzr*}LcSJ5OdNhCG z{@d5jEIz~iq3P86>-#+%CHFS`VceRXzc^slQPKADn*6%{_{bd#6juG(R(HgBZpx*o z31vkAHorIRkGlV?@Wr3?3w|HIE5PL+b~F5oV&QwXBR}nxzvZchmHg(u&+o6k%R}FN z*^c<5Jz;xZ)Yf^#{@{CbGG&wOp--DXE!C`=wavMqNow9Cr6)#@%O`Ht5>nrJz>?`s z_l$25Q42b*T6I-x9$v9HEiUcByX~UIuREifnc~`*b81)d#6$<|=*>@>V*PJ`dVC-R|zu~YRkJIuwzlDswt%57zcmW*`0JeWI&x*}|Ps9Mb|hKWe&&e(-xPY1Nu%wlQ1Q zm1lM9ie2a41vX5Xs-?16IOJ$wueGN4(%4t8CkXf&q+Tvjn4i91KDJ0W=_qUS1>f2m zlXqDJhFHH@`*rHGy&v;0Z&Y2Dx$Ew{2Vc&IO#WQHx=mvW+l%YL;fv=-L^-~`UT?ns z$Q{iMo7&CFU&k9L_i{B9<_f=Fzt%y=gt=tZ`?J~c;dfX|Jg=^A70#`j_+~}MJJbEn z_x4S+b_}0%-)Vhq7~i=EaZFErOMbHd?5RDt_;1}s?&rtlbF;tADy;hUPv>u^cg3Uk zpBJt_vwh-5wfA49Y}4A$s3G9upRCzoYbG^2*4Jv;I~kL(BF-M1+HIWLiqzX`|wCb#l88fbSnGi%KpQ5R)p{^6lHa_ zQx)EMeA2`$otSA$m-fkoEK`w9%&I={Dxbqkn@joTeJ!Q<#+z5RNw?dC3e-Kn`Bi%R ze}?HL|1P`Po#88qs41J8vP}PRt1Z3E z8t7Oc;CtMU@7xLBi@UzrD!*F3Jzn6`G?uQ|`wgADOPR|V)x&Oe9n62&@z6^kxFFOi zb9z8ZuCwnk-LQG5RBxa9kt!UxlE<9l_9HFWe z7^wM)HzC1KJ;GXsMcza8%MDfD{Zft04I%>jJ(@RWh}9;nQU1d5Raa-)g|5fSU)nDA z7Ebqdyt9`*s<&h1frIY@rz_2xH=}C9OM$eBdaAD$-8r%%?dkF>wI0V#I>htztL{*m z_@r9yn6A*LyNCGC>7<1#tEbpB#^2Jo^R$ygGsT_9oK?}_a=S02eeeHWAb;9v4bjl6u1Ee*XBY})?1=6OqbsCR6bd%C@z zbz{S97txQIE{0#*cWs_uJUL);qq5?+**QGVv<=!6$_r(^LLEDQOk34t&0MQ^;iuX; zew#Tdi@Q8byst!-KTg>=>q(Fz8`D#DwUdQjeL;c3MK>ZGr=&cI_-OH=)J)#P^a}Tt zpa4_eWapqsQ&hG@Uvaz2neKgcevqbE`I~+EE@~GxPL9yXtW#R!^{8|=|IU=?qNyvr z#9UktTyg3!XOKGRtsNZTy)q)F^Y+buPxDH}Pag9VkI?L#ygZY1+f7evB^F4d-VPLJ7#}BK23p2GfW?laCW3LnE+a}qTTOAV?Yp4pf z1r_04q6{@sU#_C zsVN7?qM)FVty$(lC-#3&FYH&Xl&LUpT%)XIvN>Oye@9k`=*5S=0am8_uRjt`Snj&7 zpRc--d&0s6H*&V#`OdyV{DYyy@+JHa69uepto>VQHvjka&vK0wE25*8ewR?(KKH8V zwbvUQL^qnLUz{rWBVO^7y5QzdZmn&rrq_$s&i69dfByJuE$gR2`~7D`FMVtMr(FBZ z8@Ac&{xf(6Y1%79fB)G(`y!Kk*;hS_AF}^c**_)@hOsEow1ZhCT(jJ^Q$A8XEW+e15>A$ zt-n>vvt;q6wf};1q!(px+@$o~w9s@1gO_yQrA6)uybFI#WKaL(Vq32wU$4k}{+{}m zDDGbqP4~~3&;P7n|6apwwz#;?O_oojKlU5#l&pASmLq8A?z36>?u7cl+wYgzSyyrX zx}5w=<$~jv3s>jr_pl3XxtMZ!-_^^%PPeeV(ychZf7XxbyI!&N-=3w_UvlK=vMro1 z+2+=vQin5wq;$n`Ts7f_CF~fBOm{0KKq0Ie=Ld|Wv_ov zXa9QqqnY3D4Eg<^14@Kz+P_)bz2A#Q89xVIMpc1}+lKSsO-+!O^ z&+x{@`cKcRI`{7)=0E4Z)A{-{{p!Dn?eS0hPj{F0pS0VuTlcg4q`1S{Ofny)J&JMX ztF)QJmVQTMs>rp@m*3YrUw$debk)B+?fk~_FRik??N?XHw@kPFxWE5#`Zb2!^V^$$ z$)5>iU0c%kYUTHLf~9Y^a=%#b{c3g5e}-xQ-e>+^TKhO@wf`j+&d{>FTTwqY{52N{ zVLo0v=Ou^KYyp9ihr)sy3pWT0P{~m|AU(4b@GpL-;jlW%LQoa2C@AlmK>w3>k z{%u_MpJDoU`QQ8R{AcL>&rtkt``-hWfBrM<-2I;+{?31fwf`B4{xkgg&rs}i`*ulP z)U@?K#UK1NVFuD;&sqd&xS zb%QS5%-Oc*ymG;tcY0#+P4je}jxV-*FzFwQeMVmQTkS7f?K9dIIQ@Goznk@j)W6jq zGTKfxyCeu%yz$?p{QI!UJQn#y*Pk?KOfM^8h%d<$G(s{&1u@bbGD+nlCBt$Dd`+_x${g>(P% zBOX)p7cFf`epXmZx6lJM|Ku~@SQFN4SB-D$Ow(jq+!~-1%fvq|UVT9#+@&AAbL5_+T@qLgwh3>Ic_XD7Lg@ z1-F9k1Xv-?wD8fcL(eB2E9nc})t(e{_w?+pLV>nThl2LVCC&6vosp2#Qs#Zl`{ee5 z)l&?$mGy#|eO#ne55+yYv+KCP?bbyq^@eY%XC-WVbg<}%WWe{p+3LnseInCW9ey-( z?eR@BGr9MCw3z0^E}eE_sjsh>%#5gDxr8+aTvNP`Zo0;LOlaepV9ifUj|;Dm$Z&m- zloc4qx<>YR%(Ne-tW$HY#r+5rE>!zDp~t(?zhCHPnx)Qk5!HLnB9CT&EwkJNM7Hr)fT&&FO(R-|@(pSc{P6qQ^{6 zy=s_s=6(nY2@3nFtIM`^vbjEc>%e)#%qV*nJiBQVunCmc0 zb&161Bf8$o=eef`-DgwNI2_t+dw^rpor_w*b{|$S%la+O;q^9X<`ADe)6(w5njPDD zf*W?c%I19F)nLeE`da;z_1RNisaftGht`P{co(O-Z+OCECt|c%?~l;p(Dq5Q8Xhi~ z<*$2;%h7j(y~PgeW}PWbAxn0guh8ZyKQE;#@t@XO>OS?nBe3Sz zRGy1kYC#4c!p$D8YKyFsKI^j5$5dPF*$u6{u;p@Lr(O3{H47J~>9(hR5L))sa#=8A z$Fm;W^AV-8J1TW{7Dw2uovx{Aby|qEqFh`{EcN!o>h3tj`~%{x7E;reiE3(UYPPBh zbq4jbdKtPo1q%f}^tohoGbdHzHNUz<%r(m=Ay?g&uXr?j%72EIwFgrt^ta|cFYr2R zuyglxzNZF;ybd3@l-u5UP1Oq2n39+oG+D$;Rbpjff9s?Z+uJ8Tac$IW)U%NKaAi5e zicfZ&0jJh%=SqCXy5ongQsS32_HKJ-1`!9ZT*tS%E@N6KX2%Zq#Px*jaw^ zm-{}cPPs?NG)*I;x(t)9ER${t@sPC9)j#^?`;_ARA68R$h?=&X-E=AT;2NEiohMIh zH4{h{*Drc+KJS!Geo3nNGu!6GKE;*pVi|3uiqCmY9o9^6{XBO=} z7UXwyjb7~OLzR7^a}KTu%jG+_@Pt=t_8+m3O}tMtGd=W#9zRK5u`@4s&a{VHrv|T4 z_#t&(^~ls6-(}JZvl;j3Chnf2?$NViy2c#CJh7#R3$tQ&x6NTaAhDP|J!gbqq1?$Kra z*SRO(+0&+_l4P9n#^Ce8H>qA}Cv&!OO0~QeQdt=^Gw5B_6lWIE)^qd^7Pt_v^ks_(DqFXm?irK8M@bsD7IisZ0twu9qAFkjQ7W?_?;mudM&A}Ty zRG%-)<9(R+N2cL;(JGmb+1%5f8eX|SV^d`7>7EdIh%=R(jnQhOe zFh94ba)yLG=3Q4j65I?D?nIyN=RF?u^kKnH{}p$N_6wA1qzZ6+X4o`mp?1~5P~IIT zPg5>;^+=|?)-s<}!?twOjn8~sEd?u%#;mEC?q*&gbu#);n7Q0XALScQc5s@Ul3Wz_ z)My5u=&U4d!Op1$ncc0YBLiF7X1c6uo0C7)WkvastVp@@LCZO-K5=(O6cpRI$@bJ( zq`OF7%d|~wn~{0={}BdF0Y(NUCMHH!1}4PGSBi#?fr$czjT0AcJb3Zp2ZfIY4*zd4 za4<45Fxm@9DIcmkti|>GlWFL8OZf@Ql4BmQvJf=quGn5@wE^mE#~Q1!~``CX0Xy0M_ys2GY z^+k7)RFkp9ZKmm_=N_J#-PD@qEpudBUTRa~w!ka*6b~&eX}#uIv~&H5o0Fd<98x@z zB%PdQJG1Q4{3GFol0lpuA6I%!TfH)`Bj@x_=2jLiEvr@2qE|+rWSI3R;c)=p3D4vJ zPd%%jt>JSYaT|(l7wI=pi$Bq>v*?j%K$N}W%%HvV1ODAT5LtbevC)(>Z~{yIs-~=Y zsxrQ@hc>WZJTEtc>Byc~uWc@B672?Jvc89T+V`wEmOZ0EdHRLGe@XE|GgysWA~w%Z zZ=5d9TdL!9I#cM>bjzLTrRFEKOI-w4b(uLWToc3o+gof?vx}^|(j=yJbFQ%ZO>>^S zauI8H)hy*^p^cLakDRJlEGai-(d@o&4R>}Fm&I>!Y|5O`koqVy&EUvWmC$#l`p1Jl zn5A8MI5ocLthq(T;=un5Q{^&i?>t@O=#}=D{F4&|S zZHY_OzW3lFZ|(BQwkP}kGpM%qRY(Y&Wcp}y>(shush>p)rFEyoPQIn=>avxid#As> z+?=%N6>RR7N8SqVjGQ9bG}Y&N@#8BO!x;@@&Q3PCm$p&D(Q}7JfnuG4(}~l@x{i%H zG5dclSQ=tp{?S;YsqBh-eDPs{b#uIYXFXCob)xwe(}u;Jwdaj4`$+4b(GE!seXBeF zmc}cKyCJn7g;~4y9*`5{7rM;+N+DsDcJU;If3Na*qC!u}xW4x+mz-f$&UCZctMf$X zg*#4jlIl)0eX^XkcEipPs}t*#w*G0F>#pkEx5y=8>7CH0-?`RKxWRQKoX6{GM>NxP z_ALhmLszl9OE~b?HEPxSOZN`kO4%9B+!-k-vB%v*#yhil`#ZQ=Xq(jN zcqPoRsL%g|sp!Kq7W)=)Ijjp~JoDLK`MbGZ`bp~Tk)Hf>tE!!0jluVdb;urrg+hU^zS*lwq^{%3b| za<)ccan0r(v$UT@y;yVF*G+eV)BAhDyBZRnubjE#($1B+lV_ZaG8HoWrM9MXLYr5y z;fj^{3xeJSZ{gNi-EDT@#6#boogdTu3m!C`T-i{2yjZrw`9DL?%AR9C8~K*%)U%un zJ7Uo|Ngy=6Ge2^+nvJVu$Lu86zrxmnN0#vx^YZMPDqfP&AX+cry}Z+XzH!&h#(>U> z9gNKm^KPi#a8liSD#vR>j9IL`fx?cYlr;)HJEur@|JHhFZd|1$Yw;}gZ2BGEEDO_@ z6OJrhy)W6T>F?vY$%f|MqUKC`4~sr(cI=Qay>(ny@i3o)P4OLn^*t{H7*<&OY^*tR zR;cZjkluEE*DJ65E8jAED6n}p&Ro$Ia&l#eUg!r0rgQB}*Su6cbDe9dTgvo3dtB`6 zgH?BC#dqE=+&e>4*v)uap?&cz#v@q)+)N2qADQ23telq?_>A+mfZ@yT9a9(Ay7=u+ z%36Me@yfx_4z4a2i`~U)1CE-a08tBk4MVcihN3oa2yBeMqEqxJdcY*B@TSu4H zpVJ464y`g-_2rNfPw)LetB5jZtIcOhnvWy~HXY*A?aSN{dHncNp{|>SSNwvb)wmxQ za&6*%#&kaD>Bhu^%qJ~2UvOJwog}E=?{H;L+OllpRle_*t`B;z_@eI-w_Ik}tGFE< z`ycV#EELE#WZh}{m92?&YZBv8!^}{v_{Ez8*WF0XS-p7Vrsp=ucv*O9O=39EnWWw0 z9uwkn=c7j6g8iowH$O9+^?Rn?L+(@dn;D!}Tuuv#*fCuv>3WA=cY}2GIlVAFCF!L3 z0pAviZaSwd`f=5ioFhR&r>h$@8*Ev;c1#!KvGp#PY{jQ$rmyUcdw*>pU>aycJUxBOg-)d>e@YHiVL8BhFZHK_&nZd0 z)E(Et6f++OD2EryRCM~r6dZj2BK>Lbl%#JpfCq0zv411)oHAXONmFa0N39ajr zZrbyb9ld|dlze|x_Oz9^to_DHSKliP2CHYz=scG*?}TVlz{PcsR(i`$T9+2;mb7T+ z9l>d@#4d&J`RwK?<8J%N>NZPHXkkI>*0>AD<{QYdJ($&_d17kilFep+PD!#!{AVaU z5d4TyFZHJGnge}``*d23Hau&%*b^OR8*orFSS#l2udus2+fKgMEI7_^SZt=MwZyJF zi;Jd-N-v2%QkE6G>}i#QY2ps%k3!pLWT_pC_vEg~>Oa|iQc8t&`8%%1D$;rtJ6NZv zZ9Lx*UD=)cE55}|oF~ZZ$TeFF@7a9@$Jf8%3OJR?lWVMbNcTU(oiL}U?Qsfh4}HDF ztp)Y&)d~eRDh03LSt*tOL}>NOCPfoZ)-!_PSA<31%0>Ti{ZVtk@Q0F=;a6U+xt^>S zwRfA^xZJ5*aEpJ(W4?>OI~Up|&P?t%ny0j*#&M1F>7QQvFIfhDG+44ji)YoLg?vdp z8)78ljq|irO^qH!u2%B@ce?bq*_BHB8IEseuZmvLk+L%KpK8gOutULDG7lS77HYLD zi+vShn>kZaNX*`+KulM=bLR~oO^u>c2gh zL$a8}1P!u2cXkNYS=X^SbZ70^7Y|)_Gdwyo=h$IG z*W!;xn+`006nR?X=s{`!4x`kbm5-*(sZ!bPS;WL_BJ_^VBF3PNbbMW>v z!BUUXViQW9aA2GVEHdx)VUDQr#;osxB%CnBfs;)jG9&Dbo^>*Ri)2=Ia zZhrCo#oDE-b$=PkIGoVZ={~ZkWuw}!rf&{>s$t8I#5}65if_4@a-L_mPIs_I)=W0V zcXK|@U|peFvr%hb>7D%jWlAqoyQ`*N=&S7fu5jz|Tb+5IHt=p*>dm$;C1iI}cYs7xj&?EE`yG@gO3sdJ3K8u9J%#nn)rT0Q{mjWJoz}DPZ6#7YAu)%-Nj}l&~3o%a(bB# zH>*fX-otL5Iqt&deBSBO`vs#PDZEm<-Jq*Q`R>Svcp=8l&G1^;=>R71l0U zA70{XxMlk%yE80jHmyrM^37#M+uL^4KYi6rX8n;Mj z(z4@aZ|j{fDMeNvwMWuvObad-ootjSI&Sou$Hh`@qSOUP7a9384qK+wig@kVu(2bD zN9xg1r^dCX48?9wd&U%yo|T+ zUsRdgiIk1xm+lZdy5|Uw!7JtPdwZq2*tRk*HoT%g-^aJ?aIV{xYiArb{+(`_lwfwI z{Ew2T*}aGyuN_ji0%xCjGqXE-R_iubE~l-v=S7aFPSGxuS|;p%;d`pi8oTZ$UW=xW zg$qRj`Df2qbbLm%xpZLSOh*^CuXUF<{P|Mke&*1b1pS!}%1k1?`=&fy>0OP^aL+8J**sq-JG3vzg48ekbQ_lEo5fr-*%%&x`E-JJ0!| zUXotQ8Mm2Fni5h!*c>m~ddlF?yZHQ@POC3>O(_)cVOg{FO5(@hv*(T0*=2FM8TZ=Wfg-N5o-VVKOF3*|!JKQo91mL#d2JhLYB$dl>8Ov^?5_SI^3yD)2A z^_r8rTK*ZgU*4wmCv1+TcCQR&{MH|RC*t-a)q{1P8RpDAki%NpkozmOCrP*C#y{nQ zKO4=SzZE&P@6r9YLb~5wa%&GxSuCEKX8%`sdnaGjyP!vYg`C%~JU$~TJHgg*wc4kB zN<8*0+eM2)qMG03I?JSmMI`BNm%hHdWp;?^Ql*d5KG`;2LQ9)1Hv8XM@=7VhG3Uww zXGNcdXAW#NH59j*sKbAUcU{nnQ)aH*Ez^&L?3xz4?$5DM?_Db2J02>#?N>U#_&w{Q zMSrJi8`N&pYD-xBE^r#>6_?CuxwG;D&K%8)6*Fizlx*CZJZ)BQc6vdZD-Ux&i_z&z z5w$`GKHf^4u7Bo?^s-0M-H)OfyAvhC+n+Ho9PgN?SnKjYeY?nh=_@+V%8Y)eemm`| z7kq!gvYE9L-t?8r{%3e_M%*n&m^b-Zn2+X9g=1}BOHDXz4zJAY$Sm%e)Dt7zR&!vT z8tcv2q%gIPw(n;Q&CevaDP2{RRcbrc*9pN8$WVg%iZ;*S-In{QLg~+ zWYL+SvyW)*Q##-r{AF%s+qVZH@oG_Drsl2R^Nua&i=k`u^y1(BCh^+lI*E>@Ol#(E zx)5`e^;FTRxTn_5-mQ}HE8}iVxbxjx@IQm7?Zr>iR_%-vepRVjUbOdA*n^*ne)20n z&nVikT7An$uT=$Y{|*Oem_2%=Rx7jmr8CQ+pK4kcgk=sj8>D8eOaHp*$fV6Wsf?{x ztJ`D_N-TdDe3(y3abL2@O|DCS+a&TVmYIsrJ?y!^!u_61`X2eYKbl_gL_Ct=i49n^ zx?Jxa`^45;k5o=|7Bj6Bzh~mQPxXp7H}6_^%Sgw-xS}Sjzw_lfb~Oveo<284ho4dU z?%gC=7qf$s@rz`=j$C~q>s@lX__VYuE7ZiFF?=mNk}kgNsb0VHGV6mc^5c3x zzDT|>wYY;z;A@i18fS5VC#?}`Rsx5mR(==y;B2aEmr&n%fw$x3*T^3YRuj(@CUqYz zJJpuPAVe(B)s5w{%xq*L16Snv(-#=1HHmbA=i^%cbVMtW)FWC>DO)cqOVUZ}CG-t*5)v_r>qOx%_w6i{Eo!MW6ZU`eKK^ zePN7uWs~%r?HW14^8_Bnuee^yXq3IOF#KieR6&((N33OXl`dZ6|98~j=gJvVo}Mxj zTY7Gx#IlW+E{i9rd}ermQY^IIzOgTY9_Z?H7!bR5?3Z#d>dsf2lWGDZc5u z-1D7o?q?W7VsskTdR2DhTQpo0JQ`ooap~90yqh1H^uKcFUF2D%d5Y(f!Dj7(TKgu( zsgARBekfGM2h?oR*m$IV#f-Q5ZTu6%OF1@Li+C=}om0WYvG89|-~D99#QMi8{xcl5 zKggt0UEjnz;Y)p6(#pO68TvxSYCME*@c(gB%w^GDy;Rr z1ygjAH}p=oPdKeJbL+tnqxWv+6;? zEY%0I4*yfI@IKl6lV#E8ti+%n`&YUIpIyZ0%crf8GymxAKQ3RB7j;EgKiqLJvwB&* zp?6ij=AQ$fSQYN%WFF-D&v2$}orINLT#r)pk12o7-G8#e;%tPveEgYj6)WZkz1-e# z|CN5kvBnK9e#Tc$&Pv&`f69>yD^~MATCkN(*Zz^xl1pLNvdbs6MXwHzF+UURVKnpK zriS|o;=H+kn*TGLjCycR{3bVB+X==A=l?#^x)3p2$tpR_Ls;X`y_wlUy4~|6uK1|E zO4;2|)pGT|z{4L7)d%;31S8OqM{@oLwuI8t<=p}9x&qi9yZ%NZv8qE`&t?g~$k z6?(Ckm)+>sN7tiUA~&vaSaq?={@Kj1r^Pb6UEKC^Y&0t5&|7?Kvy0fPXBEl8IT{ZBa*(>kApDv1ug*JlS7)BwGJPbLghihST0v2J{um%WYkI z*w|^`tNka`4p&PCP1!t&W5?Djo+28efjJk>K8si)eQJkXzCdBX$6^MiijF51yLM*m z5j0)!xBa$`Tnzh>wTgS5iH59yW-}q{^RxJL7Sk{`OE2f7>qofP-0M4YD!{bhmbeKs z)5QfY=Zbc(Zp{^6oU-}W>~oL151e)nx?-x&V;022^qKkl%s|nfy%`U=tUI~_{gft5 zbTo1LTu~kWm3PnCg-f%vZtd%K3wk)6tH9_%>_G?bFoOxp@?x`pIGD3Zc1R?cl&+B5 zG4nx-i^nvBq!as%&ni4J+aR@mhn`Q~!esR)4x0*eZ0-weldV4R;L4#3f82IY&y(C* z|7bz#N5QPjejjHa$MWk7>=#)Cd`)thwB=+y5A&bX)yvc}mbjha+&z!;LE}tL3x$1> zR}O{WSo5DDU{m*rTtQduTOqAirp5X_&dfIqG5FrUF>dWNvBK7=*ZMkMv`&|LxvwTk zU`G#s%D<;~FAIe3ijp~W>ZE0TY6JK4f)}&&r&u-|weDQ}X_{LaW7A62cm~m54t09c z^>4faOg9%=2X;Dey=0d?mKZO%+x*Pw$TOP*%vR4?@L*qBs`m-I`YUUdy=NGotkphR zRV1`?WvtxO#>|N;4(oac+Z>Q;C>2OFKKY~LV?deC9nBwp%16?cIs14oQfK1a;^TN& zOS7?YWqJL?P=WP@LhsU+n`A{@`9AfQBj2KF#wWaD1$K7(MfGyOSX-*~XlD08=?ATG zi9YI0>?~XP@2u-(tl6yg>@!oI*DU#!@6&RlHJCo{41RU|_a#7tblO5Yuo?5!@GUFaEt3A^LW0$kWaCq#z9jq_0eq{!ez~W@z{F${Zi)>lH z`#9Mp#+A|N81R{Cp=jBm&3eoBnEz)G6b(PKHDPAxOeGnY z)+;6nF{eLCyb)OHeQTy{2WV}8k?`lXja6BVk(fs-&t3mCt?J4TBKkHOB zKR3wPad1XV6<@(k9nCB;C82%czZ$Hg{wZ{(EKKdt5!tQbqRrIau_xOLXUe_Uky7aaf#kJ+J|R)HF$5CZ&)6f+30x2b5=o~-GTOL>imXkp@LnrZDl#r&PTU3 z&NhE@Go_$HX~EggMvZ(5@~Ni^=V#7etiSNHVW_*wX^~CQm+k*_U-@)UYvY82>u2;t zDoDB3dvftj`@`W7mG|M$9Iu3TOsD5a^@x{ii&i|j{FQr#k;m#KMQ+)B3mz8S+xxIQ zrFxNp*TLkUbx$82<$h+x$!@q=Dr)T^v)c}F2`+LPs+NngUiUh(F-)`Ax%SaJwx#SA z&w@GkSvN4)UD~(4gL_N+&Pu!0@1oxO%-kwgsQcnF8-w_UW4xj>Hl=a1DDFA*^p5n5 zb;XrUcYbxpd=y})I}>Ly)#Ce1+o#ezHcqi~jxFvvv-V~7nId=p1y?INqE{5JXu4$b z8l zxu&)#@CcLM)axbn0S;-KgDp1M9(&Pabn`jarnVn$sb6jz!YaOwo>thX^6b{0*Vd9O~!aoqy(+$%l_dp7oI zX!YK)%8i)Y=g(?y*t1}+L)fm;s{VhEzC|8Ba_p57eC!O%3l;JGr`GSKy@F+j zxC(d@+t{rdqE55ol zb{5ZB7TsdE>_Dx1QhbNVpOm)?`tyz1o>u?#TC=;WTuv^ccY)CB;PAx`?dg*L8D_jV zwDfg=QRI@BJ z-peDE*=DT1Q?-2mFJFcN&Drau4%|6^^ysu{Z(Z*cq(0y{xMEH3)7_5+;zd=BE2AuS zbst~xegYHI?_V7^9<#QJ>Doy2=+8)b_9F9;@-rpZ*yX}LN?lqD-@9HAwg20DaFK(} z592c@SUEJ-+)GLfS>q|TwrEwCoY&u}L6sdT=O@{D2dW)@(EG9Is9aXs+LPL*AN3Bd zFSwNw^vB7(t8j+sDesS#2V%cXN&R9r`;W87m0EZnW zBZKC2wg)z~2S3EPc^Z3_%4eQiIJf3Z=&8`Kv@dxQr?M~qOWVlK&rK@{f_?FG}P0KIP zSRwV}Kf^JJ4c$_AJa&l9m|}E2=-0IU0@7Dvk4GqQ38WoTW-6AsvVBHy+za)B563dM z%5x+n?|f(^A$`0!aj(%MHNE_mtQqShD_D1mcqTgT)+#t!I(u5JxNr&IX5Q}1wMQ+z z&hAnb*s6UZ44K2FFAlqKNxazfIIFue zf@zz`8vT)Q1(Od^|O7vyd5G1fZe?XH&Y^5_tIVfBX$tAeKFf6tA+aNd|> zX1eU)k81zDbuuwGj{}Xr$=b|CjQo9J96t^YC_66iETm_ zzW;2kg&r@Fu=cP!dcpDWJNAnFUawQqpT*AXNtrhH^;ECy_UX?88JMO8J)RjX9F1Ryi&MabKb6xyMNF7E33~q zw$Chn;Z=K(bC+`5l_Q`^^{8JWOjb%D==h?;|r{A24bSyhIk*&u&X#1YJBSkAsTDM7@z7uqUb;cPo^s{n)98CkzbHJI!et%t@5;heMcWJ?9^idvJS}X`LGcK_gV}cRzouw@mecLN z`u9Lu+@<@^QnU}OkQYu0;!W&PHM`hZamRPjgBh&v|GMvvIVHEoIQ9ECXN7a@Wpm!; z7vJJF=oKzg3eOY}O!=-V>t&_1Ol^C>p=s5R*Lan4?V9q{;#r8&q8q!9gytsh>^f$( z<(~?Z}2(j2oY^>S#Avv|gSO6;iu+hRxAjHi@kjjctb8 z3@%PRB4T>@j=-lK%9W|6rwe9;ewCS$(=Ke5xoX4e{s zZR+w-w`Mn<3UYK|#<1aMXCnbbh`US6t%VRsIo+zbVX#oMJWcb%*K9%RaBem$8KChuqmFn`!*+ z1HZ84*@rd$OuEiG%?n%#O!#JR|0onXvG>F24u)+u(o@RhUT$K$d|pxap>t%pM$0L_ z=Hq8flXrH>n#ynAS?KQ(=e^uMa6;H-zX;cSgOl0r4u@7+1@W$ppRq~pGDDLA>-zKW zOv>i)-&wSLRHcvCtb%q*%?bMSNz=oKp3%#h(@b8x=Xj%kuzI+`XkX0Ed|7D-ds zWfGoz}X#rzwyVpPn} zgr7V<>qwQ15bK`w^-Lva%Ny+9dPEpn9{RZAM{8zz-0kk!<&7u*q!}!`IR6C8>I?r~ zb*ju_Ui?7&w}INDL$klBYIR3n-F0PU@cBtsyHt)8Ja#;k+(U?CXL}m$xqy)yv#lpW^N(SUJDuw@<~_aM#$2YeEdy_A>mq zvOD6bj=))y@GFj24!_V3J>t<}cKK1`tf}V`jP@}X{5h~hB3F4@enFR<%>DO;WdeHL z{_nLWY-NdwYLN*1b?Qp%L`gnYrW32QwyzK~bYkBW-nakbNgreOj73qrUXHsK@60MT zF@7<=j_$=^ceTl z&rI|(bX|M*yYQqr+O<>vzEdhTnDbL9v?Hb{%OrxqD#pds@Y${Y^(UN;mZk7BAKC7< zcFUEm>Eg3Jw{7W=-@rI!Q`hMu=NH{R?SFjxn`3IN?3Ocf{U-lzUaxeEnVVKRwUpujsgvw~@)P?z4j75vDZdq>bE9dX4@mu^jz(fob02w1~;U>{4HM zcE{UI?@YbE_QOQSI|7OGGJQ?MoVgaNy}0sl?))<%w{_OtznF~&^)cF z#&5N)4rkRJ3<&B;o~wT5SYxw^PF=My-__5}wMUg6Rxm8B-{0dXvmxmBwdBhuw#c4m zO73->u~l>G`g`gMo-U%Ft9m#?8&0zJ}x9D}j)wGN`PVoX~0{wS|%Y?Y3DQAW= z?VNo?UdQWcs!STgHo?59KN}rh&)F*DDmbshW|HNMgX;^Q?Veq8=4sl2j?>5Xr`~+R zT`%Ara)DdFb>sWCoY{Pj%bx7k+L>LtIWRF~b84mg+qn5gZ`eMaI3Qtu)?nX9rtYO5 zzw*3bJ3NbDzJ9~6bs4d?f6rbrX`UI7WGc%$>k1dsgAks*ug#{t_>r#0woT{RXG_z> z1yaj?o|pSjDm167>{!er*MlE?vl(U^hO(}S3+)!y+`=GU7oNU_JL&3b_34lIJ@QXj z?fLO&>KqeMYwdH7yu-w{RezjTK9O-p*_R;UT5qlvWx1Q>5}!Xvr1CjfG9O5Ol=6Y) z81J;Bj%E5glFr$!T5v%pyujHnVS3@5W2-KEr0=QfvTBRBIl5hB+AFU2f>Q3wpKP9; z`YZ6=7muq>i%mP9wKGYU)wI~nIK1sz-lEA3s@KlOFHK`ibokJqkyteM*y0J>L{4Z# z)?BO=h@Olk?$?;pamN@ z9ZxZF%(>}fqO&tHGj;RiBT;E=5}fCI|2ftsbc+-`SSN0}YP#2xl1y#OAHQZj-k|f; zCwmU7*N>fE(*GIu9L_7MzI*+nM)1P)H&@gAd%|oV3yW6V{xzM8+sj?OM9`^X4h5mS7$Y~zX@v=yzlN@Rp7+%sMob!rtgio{F+@k3--zz3(0fH z9SJ^J8Eo<4;FXKpw=Igi5aG+Rq&4GNI&;t7mU(Ae794xq_H%#QxAGb5?Utztw5*lz zaR?TOOj7#MyZ6lQFWA;ETb}^OUUA#qi8$YkP7aMe8)dxonqmM>xqFN8uwLXeBJosR(z<#E6 z>#m7UzuhJ}{Y`)OnyY7@W&G@jO6Z@#9B1Kl^IsyT(~8~}KIR$hyq=qkZys5vW16#Q zZ}V?QGw*1Nj<8E#I#`#@K34U;VT}x{=6{Al!-uh~R~BUWt}b2s?{uxM*lm%s+g7cY zxg)ss*ec6)xtAPoUbs;>UGt{!ZKaD#|1-oF7pS*gpJrSmb}i_`j~xdEqiz?LoqE8= zCYP)c$ey3#m@!RF#A4az^dskkCop~Ospvf8^g{FCe}+<>HM^%rPd~n3ZOcxZ`2}Ya zH3}=j`+s+cl{4Nk3H{mNtvL6#V8``6T{Yf6_gyV;Udj5ZXv)1GN9q`!9N!Z=BgnYm zTJ6)I5Ut}%`Bs70rs!Vfx%AwwYzZ z(oY9iqi6bZTs}NAA~^8%u@4qoU+}tCF5F~3IV{;iUTSaE;~xoPr{&xKURi3A8hEj^ z(MG%W#V^&L46>8G)U~IX7)*TmQqFIU%t6hV#vi->aFqR=^yswd;@(Y{R_@{!6zg*L zX4J7x$(A3MKSC;P4N$;ug5byy`2_53+@G?JIQC&qe4;=b6(-@1m92R|Dp zCr+;yJnA+(;P@HEfK6M?Q#(KFB;JF@ci#7-o0J#&TToY^+NaRQFjMs#=Hrk2VHL6 zv(wU(HG1_aIp(ix@#=uxn}xMr=6&Cxlg|IgO5#AM(!o32rm`8E!~*^;yHn%0sBE*u z=8Kv-Z&Ma6u;Abf$zC~OX3>|hSv8Jp4IMUritWz~UGldzq|RZVhhFf^2Xj~@-doe3-lZ z6_feX+X6Wv=L16OzS*wwE8^KYKd!^!&=jXb8@6}P|FF>HLQK|Y*+REfYYHy)Nfkv_ zHqD#$N@_`^c6mf|gyTuxwy0FYT`!6x#mpL_jeWlIDbz4n28+G#U}NQ~HsiJtD>qrG z$sc>Jg11hy0+xxy7Fd#V4j-Z9rj?1%pf z83%~Yj^S(OxvC?EPcVcU+BW`2@_dvbjul=pTEtj;@&5F z%q3ppZ=ug4}4yKQ)~Z=KB4=o-l*mT=ww&yTH5u#F*571tc-=0jByypmnl}hcSM+#Oqk<0OUwOd_^6x5 zazrDEZTCsm(~7?4CMQ2K1vqDT?Qx4eV!Lq9*@wSE+|~InTean$VGehD?UB5SFw5Kk(`HCOe^}x$5QuZ35&xX%>sqB zoE;&-9Xod0O$+e#ugq~W_+g^LJV!_A_QTr4UK_-CGdthMy-;kqx6jh)L(JUWc$j{)dlNMIBRl+bTRz=IOFEt#wk(Twj5$wBzm~_luy%#E%$%4c8l!s z^ICK7`}sCOM(^z*@n2b1aM#Z2dM|9fR)kSqEdN>R2Q!(UO`lp@7p3m$7w6%6^v6}` z%9WsWcB{fRzD*MBb<+|*3T`#CjML9qIOEk-`Da2a86t0_ecsWyZ4ra~B38DYhW{C^ zoR*Q{>o0i3$q>u-BfTf`-2ru`U0&D!UePJ*T9R*aVZ8U9^T04Dw(nI zk-baBgLvb)Y!1(VPYv0+Vn5fxXQwhXPrW+w@!G>H_pQ4_eGj}Zu8&RJmAFb;XyTPJ z#T9j_QjaedNv5#eWVP^;NYzV{Y<|QUaAk4Er-A%0i-osrxKea~@q|?E0)>yf z3kqC!oW3Kr;KyObnxkCC+80;9V|2gld*|G{K!ZDcQL|h%uKsk{yFk4mEZ@41*^VMWAU8FeF-~RV>Kp7mN~0GSuNk)Ah%%2?x|0w$;fJDiRF~)cd{LD zP+I-yKSRPtE}d1=9_#+`+TNwJ)Mw9Om(Jx+&m>5gt=pflVd<+=pM~cZJN#$pa9w!p z=B&?0-Kx0`Us-7O;qt?G+KypwjLVIr3!4HP;@ACgJ-EeAdVxvjnE<86GX5j?s+K*- zU9VfXV^ZGbSs(uuGvA7AK5%?~MTrB0WYPq8vAAe{$r|?xPTh^aJEEF;-?1sEg)Doe zl{dM>vs@|JA4(;d+N_jA4(+1(GUW~k_ z7bP9_QZ#qJ_>td0ylz=W(B3-^i>7Lvs+jWlXJc{ZlFrwkcxtM>UI_9VpZ~~^`=x2E z64$Z_x2r{)QrV6@;(KI~5GpWjon%2mQn-uDvx4w)(J=OXsW&-8gC1NtDey%3s%Bs6 zmvoP2Q&}Z) z+txj9U%*hIAiBh5|0~(W%{Q8Y?nT!2sR;>KWv!d4e@4$}PKdvQfz>otZrkHKF88yD zS6*2^ODbG3XcKezhW`w~8ca)e{bw+=N!;7t!9A<(uGfrnSqvo`Sbu(Gj@VKApCL6y zS@)UJJ{`>-XQoa1TJO&-m>9G;)NhTK<8lR=&Xb(&nfbgDFPOCE8r$R{vEFFVuSabXV8z_V0Sa z?t6q5&z#-Nd_0)XNrr_h%o-wC^0_nZSz2d_TSCar zP0sGZ0ZmV)iA-8|qA1s7$3*Yh)BdG-8=SLG{aAd^Xsv6`X;ud{Z`((g%XP1w4r1n> z^HE~f`7f$xswb}2*0Y`}oY1h^oloKJoO5}hT{GBchO?&Zc{5#8)ncW?eKrM+eeFhf z5_j3G?{rWJc-$ddv}tYllbFPfb3gv!zakcVGUoSj=4Cxm@jSOW&p2u(JS<&*V^siC zbhgo^L)$%bq@;BCitgO^I2$GVTxj;vId#rW5gU@LmA2;Ff0SBa7E*cUn6tF&)P{8d}#m_G5&`P5w; zolN3;W@d*K3eTSNYoaTo>~smHj6Ki7)^U4JduM*c=-<=z0eQ=w`5GP5ZOGdw`u6OR z3#Zqpc&_mdm~G6lknf?OMMGh{(Vk6he5yM(wguWNIOME!Tz)a@?9n3E65XS-l{XgV z{yk!?Dtj!aLqb)1|B2Vj3Jfd7uURhBHl4Y3M?u)M*{#th3i$#R*f@)Q=TGp^TlMH; z|0frZ>`6;M%yD|_^x$5e>9)hmS9UNK`Z{c>c&a0-x2Apft|E4!_5kk7GUl5jI%40k zM=BM`yj)q*ZFk)`Xy?QBPQ|H*9|f4QWllPGBPD`6V#^s#XKhxwh6$oml5~};INr6} zDcsH4e)h~k?TD4T+}Z1mE^bQsY_)O0{XHUKs%wvDp0EGN!YHnB`diqoD-wZmKf72o zr?rdq2M%^f^vp?lj5QMh&SeE2p2TK4baCD1E(OM?%dn zK_eF_j+pgFJkP8-AZg>oc#DjEOxy5z!$$aeB_Z;ce_YBj@A`3cVc=q$K z1@BlH@$R0j?D?0Xk4h{S)=xKLY-Qw2J?QemPwT5l;*JTL_m5S&_r`2wk?wF=b zHZj?`#^GW9-0+`M9E5YEPCL(1-n1+=?Sb+98E2)%(v99{CwC}ZbucMV*txqv)a=}2 z7WUJOn%=y}4rQDPpT6OdM0Qv9%<$l5%`-V_yZbgpB=6`iOWOLM;hJz)YQLtax#-ir z^WIt4d}6w67Lt*1l6S=M4)JoF;Uv@p9yspR1;pZ&NCp!L}lO zl_Cq{;)Pt|iD9pfcdX@$SoP>)p7_HlpL?D*UDS?OJezA!qB|K$$(#i}uef3|CcP&f3Ly$IT>Kpmo_j zhGn|b7l@q;WqcIBAnN7JfXkC_Ef!c>VEpKYNC%^;o4zUUrONf6PUY>E&VFa0v}{fM zX(lG;-uXP+R|I)4|HN>J-!tJK%hsn4>rc3xwqfX=v|iibv7G#8$%?aq>sOeZ`~0Y3 zee>ks)0x*R|40j6SuOFiPN=-3Z2lcr@ox>M(=?=?#awN(Ih? zyKnllX^*Q0x8&`W4>T6$H3dn!tdL%~FO$JcT&s{@<|=~^x6HxImznZB9(zuWUfA$C87n0--&E|TzT>P!rjd>?md3xluKRz^7fXCz|7L!j?*3^}oBlIAFZgY|{LhAEYyUI!J+GSo>&z;} z+bPxgoBy3yt^3r+-9LO1vbBiSFU(Io9^8YZmX4@_iut7=aZ)eEA~3` z)FovtZmM>l_4R;jq|y#s&eaTu13l(An_2PA+IaH1!AnPjuEH)nEWVhLbu z;93-=aO>-Po6i9px0bS&?Om@uE#RYe6odW)r5SrK?YegOZv4#JwzaGs&u@C@E;zM0 z>*o%YbD|6Z>|3199KZ2y!^wx&c&h5|eY%<)r8?#MVXhgCT?_aR*eSh@ae5uSzO*h; z^sy3e=ab}PrVBVd`i`Y+xUuQ()xvm*iq_){4h3w?N1g}fuR8x#M&0jKOk`%CjMPlC z(t`ATOmP#+eEOEz`kZnJS#UGe}*H^_CC{or_Aw$KXb#uHi@i^g+J4>@d+uB_gCXOAK9HbSagOiGNBF-K>)tlLE zbWn9N_j|$J9?gPWyOmg_8|sB-`ab$Gl&#uTGXI%iycdF@{Oomf9(mX>aT=Khn> zirNmkdC5&do!Pq!s*i<PyWu; zmu@7A2+#Bon4sMuQpKJ8iT69>qx?ysXY{;hmhwGWzSEhfEM@wIM~bKSr7G?>=2CGu z{a(vvXG^2bI(2crQtd{rikQ9emspJc9yRiGnh~jHW~j5R`t-Yey#<2SJyJUY4+c22QuTQFTf+f2`z@w(ArQ?}#prD83* zw|~^W!Yrm2b@#lYrNG2(i?%JzQpjyMC1ISn)B8y6Bi+hw=RZz@`*+5btlZqeq*?mD z@LVACw0ED5c)R;8eLq7qkkgqzEd4*jk^c-o?9z6AEq@)T7cV!ZnpMoQdBz{Lrt+5& zn*&6TR4Kk?*?XebuI>HKbWNeF5wDEIOII{BT{d8x#w5|Gl(6F?tK>6=p3RJ(1@!~A zKhrU1)q1cjKcMaEdxl^^Z!@nMtp-aDihVQ?%KX;sERe;-_IMNLt}Tft(r?x+-5U0L z+C&3=#lt^?1r~@a1oJMk-riaCSJVAJgX#JI3@4xeXE>l#)v?llS-@NW1D_5zEEJsH zA|V?3$n=r8xB+kSg=?{evJX3Jeic<8*tU+DOI6mbx}Z>F!w%l|CsiF$;-+RfTUZZI z*fFj9g=9g{@;#m@oKZh#YgRO@6%;!e=sQ8v$EBe6BTLCIv$ID|2_)8Y1Z$o-lKxG! zx@l)$!ZZF-rYG4QU(E9-X&nr@YBh7Vwz@D2zg_pz{|tX;e$6qce|l4Nk&A$3-{tZZ zUCR}geA@5QxO-#Agg?ICEu9ey|2F%E#LBI7-OzC-;rX?m8x@Ir4Y>u*&(Ky47y2Qw zPSHK6F;iQ#xc8uUK*QolyJ;fk`kQs%ij}`u)Kp|>^7z80xATQ|c_(six#HsBdrGq7 z$*0o-OZuLyneEMdJ6`CLpvQ`BR-eWB(kFgZyYw#D{6E8l&)ODA(ZNS;ghh}4mHf|; zR_J8?pW%bz;r|T%^Z$P4HH>aQBdB3urO+m7^gdB1YKrywnQJ$6mcM!(Ip^7Zf$}f= zibT)-@t*0XA-1D$O6{Tj9Tq08JGx7&y|US#xX%b@(#@??<&9bI-D?zWyLHZKfeGsr zUmZMEeXRLc&xJ4fXI5pYM6)f4ShSDXH2!(|mMEuBYKvn^j=9|U=km?<#f{~cvsbSD zRq>zU;Etx_SH7J);XFh2m-m6F8L3lEU+uZG`}}`~_A?*r7D+Wlt&C!mJKjvvSoPzxWQ# zNfw+T2SvB-yBNi&8I|;MUP8|L!$;hj4Re`dI7RO;No8uLWxt5=a{2vho@U-&t(lQu ze}4V`MR-y4&b+6;r@v|9+L`yXGyBf|l@WSoqbX zShvjX!l`|!Yp3ze_||sltjmlhJ{Y+7*wm9(`y}8Z{zgrOO3c!W>;gE_<8Da z`)>uu&$-LU&z!w@=@k4IN+e`c^K>Y|m>Z}0N|3=gV*RsUyrbb02JF8f>2_y6%P z+T8DzCw^wly8v_3D;~m~fqz>Wb|ud4dLwh{+`}{av**1(vGR|1Ib()$(AyZtWh|#y z^$m^wWb_2b2Qc-72VVAk_+j&-2P`%MJb8@Il%4jtu8l4i5O131U(u_ov_5FH+`9Xf zlY$GkB+RKjb@2BzoeBI#XL**J^zLZdx<9^1qvV$OPMO@JKV;SIWG3`N@ZW${O(;cYS>D zMO?`4ZolPxqF;5Ne`P&;zN78Im4g2aubNXiA3FT*O^Q~|OZDwPQ*&WC&wfqWkeC$R zsV>i0xJ)H7&UY+UUl6povw?l-dmfu#vyx}L{Vc$ds-!0p>Uf_;tK~=69DaeT%bGh2 zWGbggbEf`r&-^i+_xP@!gCFe|2{2{c*{)fn_hjaZLu{K4Yi{vco%&vxA#g@`ywTG& zV*8aG^8+PAO51gW#jm#eKRL`~F_mM&C;Kz$I|CNh+pBCozI^$^lVT;^F5j}0_P%Mq zcjC=`uHSdkLo%C{wOQgnHLjYx#3?miXb$_cWZ{q6_a7Bqex0qX*^M zjya4@vGo~Vyzi8IT@3y<-Fy|$#w)1GerB~TSA@a0)KywRA-ypgR}Ski?D{?Z^>pK# zW@nBiPCYYyX2i<=TJOiaACBn$JdhE>y!y<|)6cBkrC0quYq*H*@DGbru9Zux<{WvD zW30jIrRHNUSa6EXa;nDbOMQztXY@%r6^Abk(VtngQ{vh>)9Yt~QB|C8GnM*SAhmzV z>csPb1>D?QS9Dwt)StmFd_>~#%44eMGuCpj>lCig-Tal+Z26t^4@VSJwe6NqV$GBK zx7R#>#m(TkhkrUQv=r1^AE*9kAp=XCA)mCBD+jZc*Ro$uFJjBNcczruE}n7Ws7sH~ zncEyUA~xmQ9%a{iAj_pD94xxKk7x5E#hAjCO`>y-%BdIk{5g0*b+(W2%seK>N!n+g z6|x@W(@7IN!?u+>vxzTmUV=AUP}*L0L+6~poW4yy%1g9YH_mLFk(bykd_nLI*PYlC zf!=rftGzYfWfq&-cmEt(-B zh71eXUDW?5ow`+h{G-OJa3`Crcj+Ilc=5W#e4LRgzGcs)Jf%-;$vS7=39u<1nx$}7 z!W~J{8FyQoh@auP1 z=ya>jV%8qVJA0G#R!q6zvU;l6(n)QrEMCQTEH-h=6}E{`@RXH(RjUv(#P75CSt|Y1%dx~v4Z)mZ`Q>M$|PdZmAMRYd5>2C@>bHROP zv%#}6=Qxf9TRUSc=J-e{#NC?qM)~lcvy666dFx!HgwDjDDSa*b;V`q(k5@O=-8MND zGRKMapqWJDvY5atWzP~M=DdG=MeWXnuwxce=N{qSnZ4%}uf?;Ps)8e4+k<|%ZH%qT zT*0$+O1wcqLUe%jmCcu$!?hTu2`_$T(V!d{xNMTG59{rHi#>guGk%|Tmz&F(8-B)X zLu-Y7!m4h|DJ36;C)*q~oj*hRi0zBM$w5cB< zIeEC_VYSPSA5G7qz1Zh_YuU!!P;|O(urWE{lkAToJwAlVB)vofzY|Dcew5XmWJl?cjB+y^MX)UKg2cCPv41X5HDz+c@ja@}LXFqU?rB z_l@}jb9^7>I$IR;hFkNcHFj|4ELMA#<#Ni!yZpn%{pS?J0(57~&Fx_3k!!RxH12&D zxZ-eUgJhV`sV@B^tWRDGyYS9?!D6Dhe}=o)-@SUV;&(Le{A`_E<8xuff|WCRLj0K5 zo}PYXyJmXv%~{X1%nc;J++ljAWw`HgjE~bcpUuw#w#FnxOPd@CZ8WT?=Q#qj$rBuDG-+R`)8!TEl~@nkKLuxU$1+wLu#HjL$`` z?xq#W%eh+0-!ml2b$=|JGh6ncq|V~Br%OHx2sT$athX0x*>NoCapf$(#LSA18aY#p zCiR4D*>xnK*gvTI?fqpXJGLZoW_p(Q`-uCvCCwLTx%_8|@7gUt+da?SaZ*^b$6#}t zV%dSm@7U(&DPFp>xHI9fKn}^`3FbPj?Z5Nc zc}?v?)}pkW53`aNYTRKxv{`S(qqrMhhkT-D&gEeAVRSih?h$9`XPqFWb&naN!vm!F z5{~4tikk4~Y&Qsda8~+TgUsqn&$QHzT$~~Hf&a5^^YKE1;*YZTJA-)~XY_2exO4KF z^0~0EngbC@XVWZ-xr!Y3&Z#PKkVxhA`DIwB5hz~SWR>=-Lye>57`q zX1ZRFj;LA8V12qmB}VqN&CUkR)jO97b)Pupq#3xqL;FBeNfwJS>uuSa++xW$7H5XD znjYah&chnLBloVD)~axqvj?II3rzh@3*C9WLyVo$OvC@4-gdJs^6)#woJ596O|Q%* zOzJC?;~7)2Eq#(fkyx#P$5fGKT8j*>g3 zI32wsBx~KxB9;^WV+POlEzD64B2F@w^cwCkoPNftqwMmdA)Nb_)RvQi53PE)CbwyX z#_Y`QSas`Ey~@I@b&6e)TOV9dn&iB?TQlj4_N0g9o^PCwKOEDt=oVfAU|?TZ-v45}Wix+q;}-ccO+pWz@!k=YriOdTy7 z9;b=F8*=yWXb`&9w0nhaw>4*RsoYA1DQO}R+hQj^mA`TIbmyUmJF0(eJ0#%Gay5%( zTK;K)8|sE$s;A|gCTiWTKH@NS`wUClhd1hzw;d1&?&&f7Ii(`nbnU6Uc?mg@o8N1F zea4a}%-#89N4&wRgYRGV1>A_ZxkCA`i|Q4Bp18$nX-$i6=RHi6KRN4Zm&fK+jn6r* zf8<-xbJ}yU4$GZQGLb@O9K;;9?X_JzX)*7E{-CG;w;4`0ufqLLZZciktGm~~WMRlb z-9k+!=FLXEA#2|8?)o#O#6{;Iqm-%Tp_E4t)}=`$tk!+Dl+Ut-h!1Fsep$(-VK?n#wX)ndM9n-E;CXOzlcVTV^@E)3hw&ve@B9cI2VS%vA$v80RK znPx0;lcot9Wr?V@G^G|Zw`(RSKk?r=Z)H>39jBdBd>uo>l*DGNbx0H3w}@?KgM-!Y zZfBwGg@Bm<7(6|-7&sUh7y@7#&K^n^5!N9Wsfq~&10|SFF6T+O#b{4QX9~c-IxR)?7@G&qj zJYryA*u~7i;1TK=?&`_F5bhYP>l0z<$N+LYSakx_74DwC0SZQXh6Z{@77PqV21bTf zhK5!KW(tNTRwm|FrbY~g2Br#zhDKm)z@W}Bs|n)nQ%npDbD``@ObiT49S}Ex+^r5} zH-I=3*umjqU}R{(JOSc|TTBcLEKv44CI$w^i4Zl6Ab(Bb0=tljnSp_662vYpW(Edk zsJIX_0|N_`Eyc{hz&;6LFDnBB0|%7N%)r3F31u@dFfedI%~4`zV5phI&XB^uz@Wv< zz|b~{oq?NyfuWC?fnmZVNSw`LW?+~IWiMi8V3-7DuL2pm0OC#qLjwcG1rU2d@yWCR z5(f?Z3=GUr_5yAO2JuA@HK1T%Sj-Og7swb!C>x}gaS22Xh|L6LgWSvvWrM_7mO#Q` z6Egz?D^%Q^fq{Vy$_A-tM`Cjzu{n|0Tu5vlBsNIDR=__7hEubw?|{-UD7}Hwf`O@( zp|OIYv6Z2Lm5C7~eV~cm?Pp;SP-kFx4AloR3*=@H&BegL@Qsgw;RQ1TgR-)+GKepA z+?WxP13)Se7?f82QwU(Df%2eO z893P3*x6V)*xA`RIXSp^M0k0)xp^dog!x5erR3#grDS9jRP@vplysD3WHih*bqowm zOibj}Ep07~Z1jvxj6jAka&mI=aPvs;@=6#f$|xF<4E`Tr5aeKFU}RusRAOKfWMmd( z{C|W&o`Hdpl@SaeUSVKhWMXDvWn<^y#U-U>$dGXcJ4ZK_{h;?$4{I*b?NeztJkjIxOwa0qsLF4K70P+<*SdM zK7aZ8?fZ|Pzd-&1`4j9dP|*(d8k)ZZ8JHNESXh`@*g^hcWGV-FT#$uT(U48ZF_1m6 zP*};Rkwe63;=+vwIhBorK8Pk2UE~r|F?p!^5#%+n&xrF_6Inikdko>PTMRtRj0{YI z%z_N|3~%F~Nw*o)YPtnCxtca;ajoN!`FySA))RIWnefU(+S&#`KR2H+#d0i?_=Qu8)|z z$x-4<=zj*O&ylL-)^ktVJ)5~BEN`(%fO~Q6W9!qWEpwmjJ5#jMEr4C&y3$d`13MnS z4Ef%b_tAUKx}bMSC)gf#yl?dI;i|uG&7ZoeE>-&PisyVmpSG_2eaXwNX@cptN~5d# z#y2j#|F-np;VGNqWd1Xp_6d-aDVb~^wJNUn-<9GGPj$sx{xh8S@_pHS`uWzd`)}R; zGh|ubh?rk-JZve?oOkIjkJ)DJ`(^$+@XVnjxA$@<^&4*f-s`yk))ZU4G%ebS!!ae9Z}$YCT+e35D9c(V-*Q>K*d2R0ZbP?XBj(iyNU!b zB~9znU|7m7G9`d*S^p}%`9-%MM=DOqnHZ7M_{x^Ibij(;`*+EDM!crNiErOlo?luJ z$9(nMS=E-_PbbXX=N;ew^V_;F3G=4ziM`k|wYStlFSheM^GlylO`|z~mM_byd8XKS zeyzepuT}HzcKizwD*9)!*UXCL#PXRlTsU67s&|YNUwL|8!oE4zSO4+d%@BE8@r9I| z{DSpz`}4mnliqx3!{jUXxE(*P%Y8aQewWs~%GHGvc7+_@eQK3mgK$W3&}n(^qwbU4 zG9yx^Ox?b$BB|Exob}{V9&T;X4!fc!q22YY_s();>g7HxPm6e*_VnX*`KhJHS>rrS zWzVQ~E*4K$U3f0}Ue~5yxlanuDz@&~A)nG`#r!hL?4IQA9hYYPIW45nb4p~+#=t+T zEgrt|+_HFM&{{vOw==ecP5&nI*vV@329NHyE(%ZodVE{6>s-iF>0;fpB9m{Fik#A7 zv+GI~VR+N!<)y)xvFxG)-_r9UuEPFCF3oyxMBR6;TkwN9T#_x?!9DPq{D-xf7gh#8 z2sd2avDE9{rLdi+(|WFZ)$p#I^lI|W-HYC7Z2EKKSJKWK)Bmap9{lYG85G%BG*}CV3#rx*w zxZ{Z{qO-(K+iq#R@bxSEh3mc9$)`T*EnqnC`DVMsgE?34N=NUwq<3VaS-{^f>TRN1 zQctC8-1)w&^KoyiVNYtS+qrehS`3Memz#s$PClWtM!Iq0y{09~F5*0E=Y(!nKJic0 zNB+oc=JXuxAHtL4V#~^7cK&C`+RK0Zx_#!y+S>wbmsTF%Ao@J$v*NGo)>dLicM66( zw(jqIo>bSsb#ATpvB1SQ+}QZf9r^V+a!Z@YmMOswWxvGsCgv}`b9Wdhws( zo@i)c(0YxPDqFRtNr?nMefv|~^b+6ZBKPn6m!^mH?J!&uQ|ta|&8x%0e=@5!SH&}Z z5h-2CsPLpzR!eJ&oHoo6k3Z?Do zHsv<#M}=noabICA^Y7<>2LJyIp@l`Yk7MmNYfKKP0b9(6FqN49aX-G7M84Tle7-M zF>CMgs5J$g96xW*U$FX><@!a3QVmM3yw3Y2V_N8I?Q-)kBvDv)XLS*2i<>;urjL z+MF#Dv^BG8R?rWDkcN+em#;5Ph`gTdbvAkNx%YCXGaHCV7*Wwi_py1Qe#_oW$n z49#h^1!n`+-x2x6@ypNIXme}Afk{PLd!HQ5d8)+_+BxI%+wg$*=lI#@Rdt>C$gx!+SA5EH(T7 zgr_bU#y_|ghkaF8U9YwB1PlMARY44Iy*<5s886>n|I4QSUDu4lK<9sp?7zGEbG6SD z>|-`yxqk0*+@mixmU|;@!pw!Ew|qPnWqK}JxvOdS3Z2AO zHrKZsc+1Y6y6N4g!$Rx|wc6T8D*jzdu-|2MY0jJC;PslP&PLX$Ioe1)Px#L;VbOnv z>s~L;dx1H#K%5VoH9w!4_1V@(@6s15E31zl+U3rd7w&9}Udf%;@n`Y2!dYJuJx_-f zgsxb5eCEvUQl)p-WUE}*q+Fu5O6r|jL+tWNFHUSS_*`l8@%E>6;bGhQZU;@%xSpkF zV9)icMNwGFqBZc-SK~Cv*8dE5P0#4_*=@aY`rlFz=hXW9@=+f)&(!qdtekg@KP~?H z{wKQn7we~{U0dJbW}0b#H~wj4=;Nf=S0{hYEvavpcUZpOD^D}z(FRj1%aH#JhpdVTjo+*~$&(B|5vArv$DkH|GhQiuHZN4$>%;Ee~@j*Vsz)I)Yo)|y3)oCe|`U)^?JHD z#WZNyZnwTqDfxTWIsSPi<)ACV73j-&<%oUJ{C8dT1+HP6W~Oa(;y58;n!)w^mT}Nh zNxkEpCRb*qZISx>N1)PEX#yLw(UY#Tlia7dRZ46&JgL6dtn2Z*cW070j^5Kcl(h5q zy3#OEl5y7Q7Rh;2z*_XlEAHvichRQL(u4wgZ2kVo#I1Sx>Tc_oX~I7*YEAB4VsKv6 z?Oy0C(NbGi-?;w_Tl~zUWs3V=PS-Q_UiqH)(*Eg+(sh0ot1g{Z`6Q`Y^sZ`B=9F-i zCr=k@Y38(T_j;cDpW%tx{;wCVeLZuUN9Rp-Va%N(ksXoNZD%WIyo>OgUHh*5VbYzH zQrT5kq*~AJ-F;AGcHp^a=2qkp+X#RKcpJAbuGj>;3M(@1p{v-Q> zhDd<+j4Lk#(hr&C9z1%c;p64jRj*Hl&bTAbc3aIddb{Nx*0BC}my_(K8A{&WHC6l5 z#M`&_Xdlt*TNRM|bAxO3zBiG^9)^?r9KW#bVUE@Py{D%z+ViHwkt4hPe@tapo@^-j zpP}I@H(SY-wNZxCg;oZ>pLJo+)cqSDcf7rop7!!w0juXj4zb6_q+EO!Hpi+t{<@}i z;=~o%Cs*|1{P$hjn7=M-Yi9N-@gq_lGW=Uk{%2Syb#4g*n}?{{;g_D`zmBffaWzOz znB`r5r(JIGwJn!JA3y8YnE**w?f=SG4ZCUxvs@xk&c-z{uOHPaiq7CjIx_bFcjL?4BK+T|HBGwnoJ}ey=^I zjeSYaUx&Wg@@!}9JFn&WRTrgFH!$R=zslas&y%$LowdI4ye%(2SDy~r|LxR&hV#ll zFGoi{?%4U=H2=5J^?#NBwp_ckc1Cih+|P9<9&S7v>scSKY^r0QEcNV@_q5aV*d44w zYp&jYYr59$i|XR{Z$q??A33x}%QU=r-|Xi8og4FR{fo{MpZf3R>ci1rJD$Ie)LL?R z8`q_2N_#>V>vGJMDk{&o^6!r9L;Ja=Ul+Nb7Pou0*^4JAM|Au3je$`f^H*PbV^!U$ zCtuQT*L-Oa`>e2_EmNPLE1I)&$-A?cJR^ng-SI3fNS(UfjNzOuYuHNF-}hVH1Fg5O zxU^{#7pusk1&hn>-uY1&u>Re(2NUisXYR^Lf3kW)^nZq<5}Pac>U;gH`09B6Wys^- zTR46NRYpYH@EzdoDX&hr-dxe@QE|I4HShVgy~`tw4kzm@wv32=c0RD{W52MM6wfUClaxgUSdde$Gs5KvI; zAExu5YF6KT{$Eez-*Oe+<$P0WsL&4rCm{Xri^BBsGnbU!ew8+!b-4fCW#$*Z-`vfZer>5ioKY9! zF+Tfa`-& zYi~c3n0{f_y&tvf?HV8b);{W1_*q%$t3q>xd3T3m&eywtUR+H7ZMQjFbIK9X&wFG9 zgCer7udiJhbH_eXCGFsM)A{~W-c3DMJWX9~rUR=t`=1*3e;-z~dguRVkQe;Vut)3R zN2S!wR;w;t-g1AtPLG<$Hv!96#gShYOsH7DZPDM$2Pfr5TFWk-*Dbp$|98r(A3tYC zGwqz~_Q-QxWZcu`A*!LBue8?B*XEIo>32Fd`&Qd~zc~f<=Q{dpZ_cS zZ}wufojXqayTWc$x&PXpJGb5auYCP5pQmrux|h3JW|f|w(f%~CO>WVOF3$CSJ;LGX zEQ^-xjJ&mNX?AXk-lW>o{~2^1%X*ieEh?WL6c@AS)12M&3PX>3@oL`s=4O(iRi0fa z@gQ7P@yz>wAJ?tjCG}*+zn}Z>nLbSy3~aGWU*8lxsVgd1x8im1hA1zM)dKBHU4!Pe zEn1_M7bRtgv& z&U&{eGa;u&ed#f?w|`H|2l;UStCxBhP%~wQyu*>!ycq@-%G2In+L7O-EHoE zExPhxWpnu+zrN|F=jyX#>nrL)dRNB^_CBa(&DtEr6@KOXt70?#^p4@r8 zr{-sEGwt4BxYPei_{z3(n#Z_I#g?o3Nbh}gZbHd|>(+lam%rLS)o^R}GKqWa7XtsT zcAoWX(uPvrTBo!cg+7P|)bc7`^J zytyLzW$B&T?0Kd_ZgZAg39;^9E8V}=KC5|3^&Fm%lEBDQ;mIB~_bX~y-GjWZ)-^3& zF=?|D*CZj9E`OgZC5x7%udeac-R`G#xI8_Y7A6CKrGhp+ei zcYK?*2UED@`M9Zb8MzAu^LI(4e_rXcF)uXiRcib$nZ}=2LUqsG-|7vD^%W~SG!{*2 z;L=#sAk?L?fC(K>o7BY+rEykr0aKT;D}!C!>Mx?QmNT~5uH5qE9ix|~W|muNdEeqg zQa<%&k4@H|d@RE^zco$&?&|Mr+7ItC(rP%Es#85@=PK^+841-VN<5r)=p1?69OHh( zaks}7>jIZ{b^EEMn_9cVb$;BsuUi~vZ|ME-s>Yc!ll1%(eK!R@{jNJ#PjMd0+2dEZ z&IPx#-&^bDxn0?Y?VQ$9l|a*DHs24PIM23d`6+LK8^>IYX0$Boas~}CdLVgY8KbL6 z5W}J_4GHLo1w+uKpe_bySGFz&O^1_9*4Fc!&dq=1Ygc`RKU?JB6P9#^VuxPYfYwW2 zGPa4PZc}-ZY+1JEt4+A$2c^KFl3QMn=O4u<3g z+ideA9~V~y{bFoSV%9%B`QXWC>$PpJ%LS#d9e6amRwifC?ay1UtaDYcaj7}v@>M2O z>%yMKHS3pl?)&2BZg#OU=Y&uI%IMwg6kYBKB$I3K^ zby)_LE9cGP(|f+bW|BwE#pALo=Nlh6b9>K$iWAGdD`tl(1@EW|$<;euB$N8YGOoIO z$&GW|$96>@H+rSrw5eu&e<-rg$=le#B-v17%&8>}Z1GCMMMPvNOq{z`LRb-H!< zr{yYa4wXkWw-(+BW?YnH-{}9)eV+aES^q-zr%t{#;kJi{z`U&IetYYo1Y3QedU8pI5Axn3A8As+XLft6z~=pl_&WpwD1qUr~^loSj;tkd&I9 znP;o?e)oPQh0GLNrEpVU1K$GY)Qn7zs-o23D!-8As_bOT6eW8*1)B=1irj+S)RIJn zirk#MVyg;UC9vUEdBs*BVSOb9u#%E&Tcrr!00rm#qErPFJrg|xUDt}tG9x8B1)HLj zG^-#NH>e3kDQUJ!P^Xrcm+O@q>*W`v>l<2HTIw4Z=^Gj87Nw-=7FXt#Bv$C=6)VF` za7isrF3Kz@$;{7F0GXJWlwVq6tE2=qwj#H{*B5Ru)-cG;1-TaNjp7p5vJ(8Ni$f|4 zQuTvUi}Op1l2cvFQu9ibVV0#N!}S)F7Uh6FkdmyQnvVPox60kqHvq00 zucqbpIi#E#M8xA31pI0N`7)?iWQidYLu2{ zl4y~lYm}H~sB2=8W}=&9oS3X@Y?Ne{oRnf@o|2RbGsiQpxFj(zITd71MQ(v!W@d_& zxrK?jVWMHOZepU5rLIY`iJ`7VT8go5Qks#Ov89Qrg>g~}Ouv6oW_o5`Vh*xaCYz+`nwT1<=q6ewnd%yuo0z5SqNy{(FwN>)T%qy*ciiTw7rUsWJf58{>BB@a zu>^67X`+EivXPmtMRJ;nu8Fy!rLKjkk&&*Efq{XMp_!RcvS}hre{p_VNqJ&Xs$+U; zUWu)eduDC{*rf^@;84(nsVmP&1$oiH$WYh7RM*fr1hjg@*vimI+rY@mz(7f#itbOg zNHZ`rOi9)?w@fzEH8C`?)J-%=PSQ0@O-)KOH%&{lNHc=DiwyT08tNLDg+NzA86&x0 zAC%=GQK63>OJF&q;=xYA1}qfh;s#=Z%O_A-Wv4I-MnhmU1V%$(Gz3ONU^E0qUI-vM zL8*Buwo2tn_ICdtF>Ua4c8(7S@^|y}ab;j+WME)gkdvHS%woX6kegRh6y)xt5D^)r z!2Xnhn}Lmihe4k~EHSybz%d}e2fTn0EAj0bXkjY@!)0BNSy+|e7UWGyEly@&U{qjW zU~ot-C@NuKU<9onH!CkG0I_EJA#-+7aGIJgIr1!60!41_l`hcLq-eUxok%1%@PsQie>19EK7GU4~4CJO%}ZVum0F zcLpaM`lZ170~ksfk{EIrG8vK?6c}6>@)>d&62bZzKyd)E7ZJ9_X~sriF-9II1_su9 z|NnnhWnf^R%)sz>!vFuj7ykeMcM$^v^Bo3;19=Gj`3o2rEWR=@Fi${;smy0!;BR4I z*meXVmNcD#VS76RgT&2(#G*v7J)jlGOlfHh44;-WFz`k)FbH2@VBm^|gc}0`c;zy~ z;_D0yAvFvPK4%#iX3k<@P)lcE;E%!KZ_r)_c(~zJ0}VgWs$&KwMi2mzOd!C*3?f-U z%VybF+1S9Cos)x&os*r7jf0zmlM4jcIJkMZxp+VvkRgm9Jxolj%*?D@>}>2H6{O++ z{}|Xn3%~y#0xe;lz&L@KQ4q0&S(br;k%bwQpTHppA{d#N*;rWFIXM3xVUPwb0A>ae zAQ>=*t_1!MT}~^&EWp6P__p5t^M^2p8^?Moi*&LaPX2iAcRW>{cj}+qwDbc{bJi^g zo#!I4AxL{68)r_$VQG~Kt%@oeS4Eu(d{}0+>Ev`X{oP-yK41BKX6rs_Pc3EdHo+oO zwJ?bvR}43v?tT5@!LRZwrB7E*lgN5>S#*)$gUC?9=p=4Wu0=W~h9W`ED;8*aW?tOb zJ?%|ZdANDv%|)lDX?1#tmRvi!<7v>U8M{8OeRcEcyV^g|ad*`ujb%=FM)fXPBI3{* z8YIn~=n$a9q}8o-K}T0tVWp~da{gxSYiF#>&dQe8Tfb?ES-LuQqGa%-Gh1eDtK^@) zyesqey2EBJVUxN#x&pLx8Z@{Xxj9`qrmdK;=)jSX5TPjn%T=Zp-fZ1pHt*ne|D>1C zqx8&eE0dN?xmi^D=F@Y1_t{(XE+!Wjafb$MmN7w1v!-wNrWe;(4*A;f{!~Q&XP#Hg&LyXiVVg z?DbM~VPFtons!)#D?orjaJKA@?=c(9vcCG~OTD?Cc0IjArOw*s`stg`=2n+zPwu^% z7{qw0gJS{r!~}+kqKpoU7};)YYGBX^WKiN*(Db~2>9)tGgKyOCDLeb;TCXQhPSNDJ z^Sp&+pKQ#MQf_)LJksEq(W3^Gnl2q&CzxcDp1k{cu70!J z*3JG)epl?0+hZ7Rnq6gHVLW;B+{8^B_oE{iHLtw+xaY6<+!fF7YfGK)zB%{u^7M;K z3tz7N`CBN(kyU_A4%_b^i9I%0j~}e0lT5GhRNgNS)+sbcI9D^|b8ya`ol*Wq)Sn+l3aqd0Ic??>)UU zzm8x0bNBo1_-X$c%ztNHpMTGhfq|icfnhqo|M9Qa-^8~hY`C%V=zjNa!(y;0j1)KwO&ygoes zukhp2Ik6IRejDtGkK*qAe(m$Jch4XHXOR9fE8cv=u?7YX1%?F?(tLAmz+E4IW>`W}6HB3DZE)M@5tHXfL)9{S7i&CiNY&l4-y<N&j?VPWyzg&S&Wzpj{&_o> zUhXV==1T`3zhKXqeLw%~*)Kc&Ht*&=t*d|b`|G;&E#f-m@sZEp+TK$=F8a)TvTk_e z-Q}OH&xEgE{W0Ud{@bHxXZ8wt&DuS6&U+iwUt-baZy{@ZxNt>6FL+_`mko4&wf$HTkl)#zV)z31NU&`g-`tAcezk8YMwQk)`T^{TZa4PrT{PX+ku7AqA-m<6a`h-H+ zqr$VU)m7hJ`RDrXOaB?der&I*kefJn%86ZMX*H>HFJd0m#dTmDjh<8$XO*~lO4lQ&K83q7&f zXqA(rxA&BLf2U8b`kVfAZeiKXP0uf{e|W2M;+}20A6A#-Sht0ev=LVTHidmY@>12$M%am_U=?WEpB%&`iK18n1AiZm;JfFkzehw zV0KTp)zYb9mb*UvN__Kk!=uZe-~ar0@^aL)UAtG72(aqvMclAEePZ{&?VtJ1%kHy@ zEe}5u@Mr$=WfgUo4Yuy*zq95?-F1(@rymP1Qu8}_@}u5z zCtmr_5d6cldh46Nd~qwUewJD{Z(jZW``0pFcAvj}>OTYb@7?S7KD=C4e*5^dTgi^$ zN{=rJdlsHQtiSZ$`RRIMa~GF4SX!G%++|Fewu(W|b<^Q*`%LeDy+6Zv`rdlWD?9h8 z&3^LNTLuC`VF_P*Enc=7sacNZVonDP0?e+KrO&IhNhKm5h={=vWH z!GD_{s(v$gdE3tJV#TJfAB%bFF3msv%JFgjQ~Sxackkc(@bVt}_U_YLQ&l*PN*?Vk zJa@frPPJTacwAlnv-=0WpmUDJAg z)7<5?MX`Z%^_DTn`kj{MzwuMN{-#~zl07?4K24ezXsDmM^3VPY*Z0+5eJQ`aCVS)2 zJ3HnWR;+CGz3%y}YKr_hyX7nXegE+J%ZqZGIF3CG`EC*At7q0Jf7|ZA=Htu#hHoBK z?)G33S5G( z&q(@mH1n+j!-zUoH4J_K21qxf^|Xs{Et6#f~5Awx0j0KXcRH z@Q(isR#KcB=5F1)Gt4gd?(#a{FXr_tKdzi_`X=#1o~kPAdAa3t)+Cx)*iHKNuik9t zPiNk%`*^>cDLS}1Pb-Dde`Unl+5Gig7r*b5i;EKODTs+N5C3By9r>Vq)%h2hoBmF3 zpE=)n%aL3-F2tG{4+a!`H_{<7v)#y!ylJj+sA#wSMqID$*Z5` zhZid`$i{M=b(t;kEAiFOJJWgh`CZ;0e|lSU9?xFg%95sODa*3Vb$oYy`YRXHJ3~UU ztzzwrIk$tuTvYAr_Vj#}R?6EL^I^}sDc2{vI!(6-^z69m;dm$#p?GS4#2TNZTs?)39Xj**`83)9Y)oxij%yZ+lho5_*Sk5`t?d>ZlS z+spX5waS&#^4EP_Cm;X${qe|`moJ*SNs-pI+YNS&xg} z+-+uIzQ*_%l`~({{k|RkmK3C`I^WFRv@#pHCFC3iN+vdD9{R`M_AE4(SNR;m&$l5%Ig z{OA1Yv-Kvw{+#=pcejDV(Piaw9X;NgVvn=dTy|9zRyud9*t_pg{NlfJ=4gx0HO;%2 zaXaK(*^RfWANeekGhMZ4>HYWr;!c16C-f`m`ufv5KiAy(W$+~0?w;J8m-FY=hVf6_ zzVKh;C%xOftJfdD{q=*b<#Y4P%jKf_Dlgo+w9J~+&>d!?dFAbou9O?_q)CRIeW^7hgYv2G5x!zSl69>>6!lw z^1pTV{mtKXZMss9s>G8yKNCOX&R=x!O#f_ULD%*E!O;iQBtPpfj@@H3d4B!$t+}hc zqfb3MnZJEL4`Y$;^z|3)f{uRsr+4_$<;w*>{_fkaJgca7Yw_wU`FSDd&-`1@fBf`< zy3S92UpL16sp8i^7xZ)Q8@<>yFVDN5ef7EjNZn!M&C#2$?L2JsBxiMN-kgmV+sBty=cDMHzJgzm*Ju+k4{0_z( zDeL#>n6KczzQAv(zJHd#HniF9@YnoF_^qRJMel6|rBE7PUDWEy~Vq$lmzkMALy&>$BV^tDHIX`}FSa;=a0=ix&@n*xJ)EySv1TVav7{ zyT{LU>&rhMUo5Ni;iM^l)Zy#XZT}R%N%*ww%lYg3WWGI|c`x%`rq!CdX`%J~-(TFH z{8ugQZ&2xj*>2849mex*;$$}qCMI9@bnv}fZSzTF=8X9IvX5!W)2Ew!E!d-*t+8@@ z>LLbN*O{?@zW-;qZ0BwNa>tXTJ%%@CzfO(*`97`pC;R2?tna_{&)8ho{cv63KNZW> z*6((Q=Ue9v8mppRf7Zy|>%f@PxzNC*QOxm5e{^ciHvh z!^hL7qIOxTSq6V<+}HJ&L5$J={`$msg{SwkTon&JHhb$n^`s=$lN-NVe7631ea?&< zMK{-cv`%_@^3qJ6$7>k9@{}2Tcic>TvgAaPp6|RBHXqU+)-`@DJl$6petmz>15*bB!-54G3@mM7bv?<)j-K}PX7k^?_2jvpGx`^7|NJ^# zb8~gR`eCiIGM%N19!G>QxCn>{IDqCw@En zOa9u=c5~;fmw9o`ed_(EeQgsMGFX@$6c`qDFeorEEKm@MVqlu@E4jvt%QHPIu4HD_ zr|--CdXmpem3^|w)mprET5+r=i>d-As8=llwvCa2fz^Vo!OLmMOlv+ZmDI%Pdv=*5 z=(Am)FLK;!UXZrgOw$G?=R^jk237$Eh9;gC0oJ80TmelJxRV~`GO}uF-tgi{c|3i) z@%2fCE2qyfJnflc>GSIFqMj_}LO$*jfMqR8FZrFUV1mV zf1R87UCGBwz4**e2R%$VWVC5QP+;dG4gr=$3|wqZEKD5=T#_6f3=B-GG_JX}i1~&~ zZJiPm^lp?=TDVv^RFH{7BucJ zMEBhEYn~h_kahOfr*G5Fs7#NK)0@t(w!~$=#wm}iZ46F5&I%eECIqz@E?U4~s4>;4 zRbkO1t;Y@mE_#;HhHoq%dV1_E-yL^8;qBo{DXz~|pMD+lSjm|qy5feX3)4j}CKe_Z zk+1~}O-)@*4Gjz$3KLR$o9p_f-#s1r?0)0(Z)$tz9eQy%zUTDy%Dvvc`?cH%U)uU^spR2T- zmMOSQM}z@%q5x=ks)1?2A_j&93{1>D&y1g&m8yxBr%`8HfKxvABK_HrwAw|)vWmSjPij9hs)5>(VPLK1OS=DY+qY3|BxhsHp`E3(R<%ZTPH|Y|)DQ%+($PzWL4-xqHFWBYrK+8;73Q;ScoVed^vj$H zN4g~^>{!V%J!m02!Jm|U**%_|FMTF|Uf^daPCo6IsV$ElWY+a)hvnknzKh+Wd* z@s5cni!+6ee`ofw`#qzeQTMRSb9U1Q`Fkwiv07{u&WaN0%u?vg;?9Zea6!z zLLQP!+C1_PJQGkCX^Vo`fg+Qun%9c1d3`m)m(6bdW*8i4z|r51jbSI@fZ4SFE92 zqFKqSRj$Gvr5;M1WtUzr-FR@b!UX|o))H8iQ zcRbv&EcEEFQ}b3{kGr#^y+4`#X8*mElsw6cc3j)%`JO(wqkpFC?0{c;_jxL@G^-0O z7kMP6t6aAeK+OSrKw?)eC0|{K*1enWo4_Bl$4Y_#T_6jB_$<2URd(7 zLcbq-NR-xMx18N6_tr1ET3-hpJCt0yt3Cpb?YZi zoXgScF5X@qa$?Ktu-zeZqqb;YVcX+sH`{92*Q^_B0)+jxt`_ym+bJn2`Jcht*W%Nu z)4O_VCzrO~Eceb3Gc=uAAy=Yn;jLL{(HNN-xO%P5w_D~VtLuWjf;cra`79>)D|fvw zFdLt6P;^mgN)w4o53bkgvx$$Ym zv?~?UQ~BSXdgkWl=2m|-NyzV2RfyiIm{XB%53km3jnuj%bT{s}&dR#A90FTax3fLp zb+7B|x$_e>4oNs)jCESLO=wB| z*ISb$E3fW*J7w>x`1MY#PkCc@hHG>6MWsc>LtcGEwJ;>(8BXPLG{X zJ?|YjuFk*BSzmfSZpA16#{1nJf0HbGCiHxsI6Ki$#d>nWkJqZ)tFMH2oU)gW`DV9X z_#e}WpZwLk76|OgJj%;c(ZeniQ}9~fAm*rtp0VZZbt``y4xhUrXFJ31*_nAOXV*Rz zj7~{@JEebHka*5&p_QMKP=VETjG|a%NPCh+b#Cn z9`ZTc_-^TVFY@Y%ia5F}_}{k`mtJ@DZ%v+I%zfy>cf(^5@oM>E*Joebkmj@c+@0mR zw{?C8G)Jx6^5jTHhfuX#BEQ;FmWTF@uFID$`+Ba+$!E36r>=LbTr-;e*h~+YJXt;E zQnt5bblU#+S-sjWr`|l{K60k$w)5_LJ<~6p^7}Jo=XBT9DyK=W#b$oHI9pw)I8rH@4{Ov z^k*tPES_s&ckPyZ?ymUHCQE`+LYKI8Tya|$#bRY_6%#Ku{qxu57hj0n_@Ff*eO3A? z(fo${JMMRHSNe$x<=%g(m-Mo3cve z*N)vYqJ08htO*QM_->~y&$zyDzlgwwJyJLPPIt=8np(A7w3+Y6mi?jazqXv8d}Fdm zv+~9nT>R2!J$9^`kP(+arET|XU-D%Z z{jsutrO*?U{dvXH@U>^w>^xh}a5VYLx4qZ)GU>YIm|awSqHE3?s}XhOVSD%QEd5hQ zKdd_QQ?@1Po~mry{aJhUy()DJjphsavb|a2+LAMK^4D;YCmRDxy_2`y4ZE4Jhf!?l z(sP@hUYg=D$M9}+q#Ad9*NsTsIXpbsjfUr9ia%P*+CNqM;q^u_V_ST}Hv7-2Ebd3z zd%I*G2UvO}d{nERbNtMQ@KD2$Yrm81FWbw0@o*H-J1*nxvGPpFO%7wPm74{1=iUFc z_M9dkm&}tL7t7u$#;s80II*!_YtQ?cH=M4Q=T5mk|F4g+_a6T=6^-wKiKilkr)tjo zv}fI~*;7Sd&9~uQB=Y>B=B(FjcH3EM^CW&fG5A{B(z(@An2qhi;dAaW)r}Ir-WYzp z;r#kT)9Q~L%dX2!a!Xd^Te-QjP?Pg_mtg;nh5b7ow8jJ+S>5REHErpNAT6Plo8|@X zc%I0e6nBd`uJTXPadpvS>^r~w?!9cjc8T!Sl{+=L6pwQ8Ur>K7Yds}*!Y${7EalVk z{!^?t6&{@CJ65~b$eibi;_?`~ri2%2{majAx9h4@>Kd=($u(@2c$0i>zul4U;N{x2 z8{%dKTHP!xtaWqE;$U{;kB$Dv87OX>^j)*b2Q(_xMB z{W*P^%%#kI+NFMa5AFqLp1AY#$6Q6}SM#sT6pVL^TJXWLspYtxTeZJ;lcAv+v#rar zOTJ5zw>|CfN->L*J*_jL_nqadHx656UaZjgtnc&v!i+yYwMFuKq@7E-GV_d;#HOgL z$HZT`BD%d^Q_bOvuI{9NH=8bWZ+a>AF>Mh?<2QkI(|>%3i#`5Cxw@}vx1`Qo+d09K z_A>vBB`OW|+vjGjEZse;g;mO_#=ps=C1gkQ->~3Yzgzz^Fxzr_r$25Id%I`WrOa)< zrh&_EgnXB%+-me-S8dqyR}8KDb8Vx9)<|m9Elm1yk*AUC{>vlWd;avee~bp~Kq&=Flm3#exxAU)?K)iL7a9N!#ilJC@JWsBu0vcH8MZ+c~xymVef!`9L}9?lcrZI#d6{-ISb*x>o$ z-J0AJ%3}pNcf6h-J#*=m`nlUbZ&97)H@#NR#Pjl!5S5uPjz)4tqy9cS;@ZhL;{vO*(kW=Zw5`{ynkDh*gS z|Hu2^dY?ZD?tN}s+oNzN_PuKz>z4bg<@j`udKR)-JV{&KskUTGBI|TL4ZYx3w%Z>6 zXK35!&^T}EOO-#bj9(_zEnV3?%_~?&`N-~R6^inA%kR8dwDs(Y!b6MxnoR8Z&+sgS z{o1b>Dju)@|=-NggSl~IeML&*w42o{?404c0N~j+<09ac73MCx3#g(!jJwl z9DZz^?V6@2w3x|8@7b&)zor+-M!VfjD^7m>mGSG#$FILK{EaGpI@z`;MPjvYpWUMs z{5w`Typ!r|z4nS*T{gOXolkziy@h+7i*_sjUSBss+>eY4j+))>=oS3q8R*1zlx30bWmUVuu>^kh>9RI@p&cbMs&39@$ zKF^x5_QT4(N>(>_Eq;39apBrh?OI>8qCH0zpO!zo_}p6A7k_N?J-S~8yqUgaaqqIn zlU_WVxA%NRZAOT${|^^2zbBK{Z@RenWW|yr-ZLNPm`k;=T%D%xB$hAc+yHNX!rbuR%!tK*3SN=pY7S1#Xj1739+T8WaUGd>o zXZGJY5(j(R3=9mS1acJBk{PzN3)b8WHkWtWadx_<+Tws!7n83^tiLUs$+wa%YSNX- zc{R)0uc$m(wTYuI>x|5qi9Skt8yTLOEIgM|ytuEV@NDP2l*BVVmOZ>@c+d2{;Y(Jy zlTj=!bEGfH-JqE5sfFlzD&3{%pBEL=^Qq6WImxg+>ejMHiXIlee67kapI9*z^pt4JavgWtcwtS6A75wk z;)oY>WQCg-7L@2QHEovVYIjIpAj|Q>qr^p2aFcRIyT+ktgO(pnSK1g^`u`tcuo7fo z1fPz^&dkgV9#>!l9ni(XDj=kwXkaKTYGiD}CZgov7+4q(l&GvyB$m|ZC!?ckQ|qYM&J~UfW;FnExbxiBDu_u9orNf(GYm1=b=+8mxxBd zLbn$Ii*+@&+II9g_-17|@}+!!K9Nhfsk$Psr@<$yFGb_Y@e@0jI#rjO8Yoy^>bDXp zI^mzs@^FrZ4`*}DbFI28vq|Y%Gri`l{OWsOUjO)tN2-cItt-f2tUy<7L? z_3Dj9uP@zXOuXLo>q@B1pPHA4wCjXd-sRFYiM0Q);g)X6bu#{%c=!^;zF%->Q*M?YwpG&NdBuufqn>vz^{u{cN8aezQG< zb??ecp}kA3r4wD}yO^Jvvpn@ESGkF=)m*OnjU}d&{Z?lDR(z9P|4nA)Z}~iJ_I)c$ zYA;7zGxx62N$`I0FSshFr!R0u$giRwMX6p>ZQl6!M#WFD%Clx-m^4G7i2vN9<9^M5 zR@FrCJ>I}_<(}io_dG(OK0&kn`Ly@hx87%ev-`onD|Zq%e`Ixg)m!*s&PiUO&=|jN ztHRiifAoI*XUKZr|Bxp}_+sGRrO}q58?{7wO5G*xQ}3(4+5PlCLyF=2-Jv{Ay>+t2 z$7*=~tg4GR^Q??%R&a6exq^&I>-Em2e|XUuwAAa$%CJ&%kFav3XLA;9)ZT9ScXm~( zrPq|})8=vW?|yreeO<)d*NtyxEt#qnveLJZn|F_C9eZjwADOX}4FZPF*+1=Qy&mg*I-K&ya>WSOev|rVlKIQ(gi2T)A^$n}$8BaZXl{@UL)B3!_ ztGU)c_E}@~ciXjdrOAh1tj&`ybqUD}*>hm_!-(%oH8C|PH%{@miz8}_9U*7zuY3b9x z;HX)Oe2x+4CkdW>VBzS_y;1+_Lc`vKwvO|xAE$Oyxhr+;+OoLpM%A`0i!*K{UAj5r zJon?WtHB3?|3rpu+rI9>^KFS%bIr{?WyE(zHCqKRq&lDF+$(1J1Y){FP~(Fco{s*? z;)%6#ZX7nQ@g}>j9#EcmBE8l8_k#IHmuQ_ac_q+SICpj02FGN(XnU>c4Mpv){!}**d$8eju;;9~SDtp>65Ai~Yw;!l zZtg9GZr{3+JdN*8ihHp@v9@ni? zQ}_F=NR8^&Hj`PM$p4>V!MayFW3Lyri5JaoxuYFpG*wvdQHWE^uf#`O>s#0*6JswH z?Oyb>-1d}&>!Iz3q7Lh8n3y=6+PYWkZTqr@i_DX*2%E_?S)MBNU++0jY45xH-}S4v z|2=*0?SF=%+$#MS0nVC!D~^?Fg9X0t&cCzw)&1{kcLEAODsmNpQvUO;d|mSu7R_;X znOfax`P^Ih-t$sRp{*jf`ea4>RH7c-nk%5tDH;DrcKU&HE5FVUINfz+tFHGJt=j^t zUGG+CnMOv=n$;Jy)N870mczMZJ?V!fT=SKTj%I%=+0wtta!wOB*Q%@w&0oUx-@Fi4 z-?Q^l(VV4TQ=7xBewzf|6R_k9zZm>9xz6lKdBVQHi0$0AdqNg$*evdB8N5Yt!jnUN zoE=4l`%QO>)^~KPn{G5(|99z*r4gHEgvDLHUK()gaHCH_aY|}arE0R=M3FGn?%=~m zO11j8e0#U7+U;Z5yo=ql8-2E~tH@uSWz*2+Y9A9{kZS z|1csUBKyRu>sg!&7$p<-IYt~`;wsvgIPc@%geqmfL%W^#=f^)yj3|yT(z^7a=fnB1 zJAEI|uo|3_nY3}ez1Ex3D81~^bG#i~4CY-Dd@9c?#3U2%e*2{s;Fxf4ZnE4|nJw)F zTF-C3D%CUHaNyUfkVx0YUS}QstJ{^gq}(~KQQ-SzYR|8pA8AGh{~8@Va$9+3;Dm^P ze{WLCdk#sb_vCQyHFLYPaaO!Qm2%&OcG0#VleI0Yf2A#5$!H-^&e|L}efpffk29XK zSQV|lkXx3i_3YeIb|>9{g_(|<))+juy>-@h`h17dEfPJ+5FVIVG!(h?AF8w;yypLwwZ0M zYP~Dgy-QcTf*o&VtPvrIG6g{5GWvS?X#{aZPEQiRQ z=P4;==aMH`3ZAwM(b(s;Y*yQe`&`DYG9Ay3t1b3)n#nag;J&=2&50-{M&8fAc;58o z6e(Li_nNcNN&3fgX|@vq3!Qo%r@RBD@!&acr)m|;yu5ojXC)}9YK4F(P(suW0?7w0 z_1A{9qL>(&SecoaIG8yhOF0>tm<2(tC`C2}Ltz8QLJ=h+V-ttKL{Tv(6;)H`fS}-{ zM&%-KD~bu!ih8?mySYl$L|Nx66Q11MaVIbBS$^8Ls-Ami-`vYLmp&g*${+C6Kjf=_ z;Ow){KAuRsoVjJO^a-zfZ;z|A2TVEpd<979v(J^Uq|XQ3Ir}C!eMME<=fWL#Vs;ii zdtA6%|0ZSX%TX{eG>ad6NIVecL3q?5xed zTlDnwtGT_;uX#@rl@i{!{mtZ!mhpeZo}TVnJ$cI?MI#~oyP^GV_F4C*)?WC$L|!F6 z^|-e1)SI=E^;!QJX2%#s=a%Sk<@d%-{$TVZ#k~Ax($Q`)-KE``Nw;onPwf`diS`!L ziP*ON+I5}axigl`PYpkC{Jz9aYo+-Mgb^|A*qb(kSIamrTuG-3;t^zttmZ9xTlIdqQ-gNbsWl9ifx|3eF5& z?yfgC^lV4+hQfuLLh}AI1goA+ZCIaiywiBaYq#Btg{H|(G1%7?=X07{M^5u{-M^sq zGlGA13En>$=^9j)79TDcwPtZ>L0YHIp+$es&1?G_S$}1%?AEADw+`Oyi*7spT50*j zy%s;dDN0mbS{UeC!%@0U&LV%~*N)P;weL$T(h{$H`52MzG}qd7((#9K+?T%W+x{w5 z;*FZnx>px>_MO`x`tp{Xmu+D4V)x@}>3!4e1zy>g-Ac^fV_F(m!&MtMCG1tr{Bt4y z86Ihs_Q=Scs+rOC=}1_q{E?R~^VfeetnZk9eyg~AvikGz8(VhnxRa+Bv$OoC^z`dX zEtbdrJEr|n=;!NPfj09sGxhCfZkzTk@Uqcux9um6)c)DBv*?$u>S7h!oVWK|4_!NY z<)&}!48N|m7Vp+-%bzq6|2p}_EAC$>zpUzhl&^pP5lptxo6koM!(L^-U*bXUw9%kyBnySt;^@YvzL~ z$rd-~hE8^8kG{VATijgzDZw|t%-Zv>?a6eORg0D>%+2l#*9!QWoNRLPp4|M^g0lMj z!A7@#OFYeq`Il2wxF)jjwc>AE&Gy!svw1(nT{}?9j-xYTv|3fV zO1wgH+{|=5CRDHcne<1?KPSISzBoy;K6&x}Bl0Jryu{UgR;}q;%X6;o!Kv%te$<>YSuf%= zQR24el`eIoVB?qn8A`AG6#4g2MEc9b)5>C}O3JN8KJ>JT3TL?~cNzVZ=-)s6%u7FG zvHuLO&cr`b|17utYQI~^2m3@>*&p9Drl}sd6eDrtjmw^C##?i&j9P1s&C)pjN>TZN zm+w@yg-_=E&s#_h$0%eQ|0Y`>k z=Dh3Nab?TQuvO~H7JqoUWUh7nJ))|+OFE_w2$#cz4U=A3Qtqxy)ZE_ zD(9ueyJP-O(&~HXmoJz1FFj_f;@x-rMoUR;#pN?*{}xGxPVM}u6zm>)Qp>>I|5~fe zHKB=;u|lby5i5;+w?#e4ocSfh=%g{fDvwLbKc0hOy*WB*`;@14Uh`NR^*Fancgl-* zh7lEqxy^rzR<5{t@ms{H-hXWwk9A7!)W_!DIKKR=vN%VMZ{@d5XL2@3oVXUx%-p}U z@9?S#$rFQI(+?`?Pp(OnJ~{K9Wzxs6?uR0)szODkA2_)=DzZ<|(=O0bG)s8ymquw> z&)H6^e%adpy}Yz|#kIqK|IP2coGt;iP^VF+2ne`VIU;QC@{Pl;ErG63rRPz>{ zp7qFO^Bu`Q)qGPg&PccD3A(i->VdJ0Uwm+>TH>#LM!l6OO3q0QSrO;q(Zp$Jb{hK2*&3+3{gV$LbxEoO`>)6x-GZ&p7f+O#APWqB|vf9J|%d z%>S8Fsh76@RH|2~rq|`L+G%OW&ilD9RXpTwbvb%&*Br0I-&Bn1j&5mDw^S8gzN^S& z(W*z{Dw$4PC;4V=>}blEDzVL(pL4fKnyjtYUg=9=6FV1MnZ{bK^OiJo`p6l!_CZ8c zK;M=AMF%&vN-Q$)@RXeA-Et=LZ|cbz30V&e`R07-(Q}%ys5?`|Z>EOnQaQDm;WM|{ z>fSmQU9!f%H@?U!pHs%o{I#B-=f_<6W&w*S$tOAHCbqQd_++_O8tu{f7;)mL_Qamd z<5`ykc55Cwx@At^nuStRuEuwC1wM%F*=X^>Br*5Zr?B7o;kS;RzB$$Ax4D&jSCPg> zVeQ44UMk}3ky|qsFa6IT_s{uKPoA5N*oK=?KIfG+A1qB2xh^}+Y_?Z-Q=G@-&#T3z zU7atq`0B)ucQ4f!Dm6dp3<^`(&L^h1G;13VZ97zALOdVcWF+x4g&SK+DNb z&QAYc^UuYjLN7i#Gw_4=Nv68f(sFBVP0_ErEvtP@%9US*Q)Oq$o1f0RH79;3U0v_f zWmS4x;=~V)b?&b3?sy;6@C)2~?8v%wleJT?)^8Nj?+v>4)G5wKCt366)E%?mZT+(2 zWZCk&m;N)f)EhPI?09fx-N{qOk3BVUKX`3rt(wlu^GA(l?R1)C_91j(J!^PIZd6d~ znSa(rS^Je#;yO9APEIoTbX#flp4|b9#l_w)zT`1!^VOp0-OKFRPVrCD$yu$Y89T+L zbjkh8SN!JAyA#{Ru~d#NblMfa@{~%0*Uc;5Z1P%^5-C__zi*t#RzBo#3?{ zzor;u_0)LmWKw#Q>Yiez<{ka2%{D&i-GRsH%`11Q1hY9ix1CDqttNelY3VpAJ#ojKJXMp>mAgGwZz}iS$&-4_K6$R7-={X&W-9Mj~#}nGF+fbAG6|NNbH-ekN<;tC&M7 zzZM%!$*q>?iLLS39y0Z-&sWJ;9$zD0ZN56;m07%(eXi)gkKZ@G`2F_hms9$$7j3^? zJN-@Sm((Mt{{=lg{d+@Mx!U_ThCEg4)1IFGerJE_>EG6CEX&qLY^gnecmLBh(OWyG zzlr^R>F=EC@QWEo-zfdMzwy=I*WdTOF5mR;YMZV8yO{ku>%PCa?Yc^?e{Xg8_ne6B zTWiI-zhCm%x1T@nKg0C6Ll@m1_jZ2xvTaYD*MElTE}WMH#rdSZ09F*feBx$xD}&YjO^yo#KXw=p_!Qs#^URxyFetG=z1-ShFPmyV7;9+x?GR?*-g@y*l?+-RiGx zKh|H1ezdo`CVY*Yw%C=_TRZ$Dr&2M{kNGZ%g zKk{4T$*-GsPFb^5``Ucb+|7H!ZGNn){1~ohr#<&ݬwPD*BvLOVf3Hxie?J<9holE;?HM#JTCpwkbQ5<<y6wZ$9ylgm@Pl=dU8VjsfVk%XZd-v8Qj7)ziirUE%{StB@RFN6*R~8?xd1d>3Q$X^_5)fdL1XaCs{l{nsoT$ z(ew!~-MKgUT+As~V~aifql;(X>gfKR>sFT(pDvpvw>)1yPWWi-Dz52P&-uj5d)?A{ zuCbSVU307Wf#|I}3_R~bLnF&{ilya_y#AtdC9wbQo!{+>dzX~RI_%colG1yqB1Tzy z@8r}cpL$B(+bsL4cJ<;Zx#N5-F&~ds9-hQ-vWM}c)}}4{j&88#I(#X3{YSOUYp?ld zTbQnu&%MoZYsZS&t&iRw`7QES*3;>+O3m*NoSQSXY;?=nnQP+3iFs3e8WxuihL#X_%p8gAy+Zu~QT}4j z>^|vR_UXUfced~5{LgS{b>p4rp#Ka<3mtcCba+?I^||-SGPa4cZqBqS3TE4XEkfx* z1&ddcg2k!(NBz4Oe!IJr{olj+UCWidA5=WM^v5yN=;o2g=c+qWmgP_X86cx>cgafe zmhzX`|2F4c)issLJsRX()_yZeYJ&aLK!fD`TPy!FD8xtoaG7|=a8FECad5^$J%e-E zyKQa76n`fk_0f9$LEz2oZHFgK{rEEHNIL&ZS*=aH>RYC+eW<*nTx-VT+=jW=tJ17XKd1y2J;qdk}Od;Iip&{D zD|fBzd{O)FRQdg$<)u>tJ})jP4k;~-lKRSe{xi%7`d4vb(TaVyjX$iI>Az6sR9E`eE1ULSKj7$dNwj|QgX_mmn}yAp{AFnb zSM{cnfQ%K&M{L_8tulE}_nr)$yXD3AcSqF^ zEBoK|mcE@_n>(TVtGeae6EYWW%6VwJ2SvmrsUBWx_cu8>-gLt@P5%E3ljgmDWcP5@ z{=Ylj_m{ogT4L}ZWukfK%Wd0ENKfWVI+fjX|Li7%5I(M1YH|W`cRjYw-j!bxZWp^n5QbI(nvc<=pjFTjp%) z`7?d;yUQM5K zHy~KTf8(lkV!J1+JbLuExgvh?1@^C&hV4t%DA(TY;Jb1ydU5R=<(pT{KXKKcDc@4+ zxbx|Wi#JbQi#zGuJbRKvhh_AXIaSPlVWCEUf~`L~?tj_q5sxxFOo|v97I4c6pKQtN3qE?Vnj+ z`LyM9@6;mG>(5GG8+u*5nZl9hBRMtT*_H{LY2Bf$^GV#|qn_36&nv!83l?m>6BSVFDKn2Z-|6s{(%oNA-kE)GU$@GO zmCJSbpGW3OYp=gv5~VFWyWp>w`K~8l=DP0``OolV%72DA@54^k%nrM=f642cdmp|n z-f`Pt(bCzoe%_FizBE(ShPCaR(#dHriYC5$IpNi^#Ba%`E4HtxVspJ+a$Ih|!^dmQ zyMyDb+^z~?obG}!foU>W>;r^#EYvbdA@-KFJ zf1dkR?M&F`i~kvpZTrN=V|MUAgI3SE*IO^i*tT=!`~F=j&GGsVS84l}(5Z6f!kd=z zir;@CvupaCOz!SI;{HwF_K43))aLG;eZ}-~=e4l8^8IpDqLnR4CJ zlsE1zdG@(J>CsJ#x*uLFtdqXR;T@n?HMQZ+8D(8NzgH14rn#@!)fbemG2Fm=j(ZmK zu8UochyRGpt#t{Xy3y^$PV<+MuS$Z=4Rlt-OBb{sR)2IQsp7$s{qJIbWG&B+dHW}% zu*S+r{=oZO*@OF)C$PL$d!vRM0$!d|R1{`W@MMd}Z3RwZsg68nMUS zUB{8|Bjorh_N+zAd(vJltJ9X0f087h`+VMgNAatC?;ZX#c$60hpNP-DuxR^toogQ3 z%$j71>w`p&?yNNU6DGH8RY)m!hkS$S@g;@f3iQ5zyErk5xOdWXe4>z+34<8}4&#T@T5 zIbX4B*~&9^+dsaVDrz{xc9Yq=BNiGdE#@p6Qom?iIrns;7NClzD43i z+`F7o)h15uGukeo6D0T{tHtn|b=ZxsY0KKOj-7MK`P^Ik%e?>WDyy!JkEY8F=6T;a zP$6`+`*eO@x9*01ZV8>Uh2{D$ub0ia*tbsUrB`>=C2 zIMw!;XT%bJedYu8PEYxAnGzA!2L-o+nEpU{|lQ zQ!fOkRqUO!^2x+)7Ji<;3v@Ts%RMP|J@w7@@}juUC#Shj`|(2b#~=8UI@Bq7j(T~*M%(xiHFY07D(SJ?doYg{$0t>@$~2JnPr;-i#C=mE<7GQ zt8U)&lMUE9<5sA_xhnLf>H z=^FDiuH+n$m-@W@jCy#`;S4qNcUButtd~o^v#0UYkE!o=yvvzUC18|Vw?$)dg>L2} zajU0xeaq}T{aPPSuJhg+yR`DehIt#-^L!7>IwiEZXMI?WIP2j%iJwyVJzaaxuQa)G zLtNY7uE3QS>1p*s7LP5eWOq)Uu9mb>e2rOt(;3zr#)u>0E4eMgSH&%@n)+&*Pt4IX zF;~yV96b}awph$J=IGfNbBlLR_rxl1mbtC0-0pj^c;duAOgl1|H-{anXv~cEVo$#k znEcpM=k_}}ZrjhDr`~ehtxz`!OaIwN@yu;*?GF_@y^4cfBF9(VbBy{WME=qWMO26Z+v19R5WxH2uv(gXq>pvz+vNu zgBKrugbo-m+AC&yEWIcmd%xq!rrym#JdsBVD|2|9Z?~?3a6{a}qeOUVN z_tH}h**o5O`L>##vTxxMO4h0ja{JFv#CG!g6azcAW5q(pgC`dRMx+bPoT8wyoneNl zbwI_8d6O*M1Nr!FnQAXK$qOxeZyt0h>QSlCTH6J}hAU4Uee)(Q!q`#sm%)o)LJ!yv ze`|Xr_bQU*oMc!h8^hs})623Q_PS0zFUIRG^xh%bsCW8~Pj(-x4f7^N;pEgMZ=skP;`yit%?Mp%hQ&>l;uy-NbUOI zFw?h@`+`}Kcfb8Zt=LLm2h-?tN_%H&m9wB`P>t=}E5c+G9i z*!NlgnrU3H(*om75!W7M?(8YqI_cvrpTn<}*BrdpBf8>xaY5m^quZ_XZsdr#+SzkY zzhJ-Y{ey5H?`eJt=hviPv(3FEdL+a5hFIc^0B5ho8OiT<*9ILHN-efN#&Pu8W`=Xh zty^@g&lq2BPhstOeXFkZwCSc*w@yXfj10OSDBfB0_Qj7Mk)Nt&^&dKS>14|0W!3+> zoNuvdE{~fT-n6`D8t+CsS^G*CrijC$t9sd1Hw$|3s)q7}2?~7)-?{Qk|JS2_&aoSl z7RtRVu4_5-ZmQ;#Q`OFoUO)Sj7k%mJq^C-$$~Nw@mvd%| zNrF6U)~s3YYc*Xj?BSP^$ctra3-_(JcCLR_+@inae)K21Cwo?~W*;$jJ+N$*_TDwl z0q@QG4N9*sUm2fT(ZP3Z|DF%2KizB-S6^Qcbe&B^G@Owosk7s2VBw_T_#k!nP@$)} zL1*d<1M_-AQjK=(oe^h!)^%Eq(}~3wU%3ahGh~N_fB5~_xcs7W^Lr!jJ;%3BJu~^d z>z!MIzGd<%O%+VXDmQK^>H9XzZO^2`#k)O@OU4{Z>`I90%XqAFZK-Bo_jaRGC$(Qp zEt>k&1Fau}5Tw(%RogtEKk^ z)h?CX_4{<-kEW-mr;9&!=v*ZjkUdxP)>E07#Si-uzOUOMe~M-D@`D*0B&G+Q`80D; zx$b|4hO?7zGrAsPJS<)pt-C>WYe7U_x^cnxmfZ(tMo0P^ALP1nt5%J1+b;XKrOHX4{>T7hD+oV7Yt*Z@W*#8<#hCv(}vbJ&osDR5t(K87$^Mrb%VSuk?4`{(7aV zR>YCbBB`mTEd1XeVZPX!|DjK`v}n`n_^Uq-TP(G|#1>e|{gvbPoU;eSBU;*DL{4Y+ zPC4`}_=Q{aR(JP#hg0KaHH1OoF{mHF+cBmHHEO%cI%gjiTtwGGCO(x?av?K!LgdjGa8upKb-H- z${((0-+3!}OCY0Gv5=pn>5OTwUDM<$I6i7R-uUB}nJD1%Wv_VAKb9$TgpSAw|8uI` zpErYdUCpHJFRkV}?c%Ude0XQ!e+J>*KThwz$UC*pGgD2e#HsZlLtR} zmp|!wZF@9Kt~*!$WW7D>%*vTB0#B{04Ha-N>QnzD6wrP^+tBFEedBa{A)o4Ao-Le5 z)?Rn#m+oG@uCeQ?3zKTt>R?r!XQ~c616MYl`F>P|XZx84Q~UZ7rKf!B=UG*`_2vt~ z)Mx(^85;zPrOk_3CdL?Ec=_hypYNYP++y9(yJJ32T^dW$l4`060FX8Z??v~ST*Eh)S_HM9|SpQvM-qM4O>3ou#p2j`cy{0e5 z{oa|-<(YrCR~+(eUoSO%^TO>Hy3EvhQqNY+JhtV6oU$>q)53c`j`t0}EAC+aCG%xn zQ@{I5j%lfrmQDKHx^tfLqtw^^IcqD9>}(ONn|d&3(Lsaf8h`vfXSZ3bUSp>^D{{@< z4X0!tyo@Gsp}{{SK5!VnELeG4 z%EDsB0l|qy#(b|uV%Kf@lEgme<~yr0Z}l(xW=wN4G}2Fv<^SVSbe88-O0ep^>VrR% zE4CiLW_i|TYo+K;uLI3CKNYeJzaI?VV#|3(t>i>o>LiQMh(eAz3zq%+YRU9T=cZ7S z{XL2Nn|jN#I`yvA=x7uq1+phi4PP1Tk@&~wz)i_L%dcO~SylRO=bc+qr>%e0e|5sr zJDJaF&)Pi{%%1V|@0l-ItJh`v?~jd%$YknVeb|0s=ky-c`=51scAYPDR?#ZjaevP* z-^88YOBI>8`SW5QaeQzxuuAoNZRDE8P|>hyF@N*sUcu-B$(4+)4D3W=%t=ew5Pzo1Bdf>v>YvC zvwo4sy~HZa``#Uy?H~M(sCykSiYsKEwE0osBk?3_pNkUpj}DwU*#1YbVR_bye@}N6 zo!NX#up(1oy>r`vqq*UGo#tG!f0(?yGUCv!oe@UUjoWS{9nSW**K_%0I{in-sqBs$ zA~z*xtAybj_>GbHWY~P$nyyab$ScF>W2nBi>>joUU4?>^2>|!{M7E(3vwEGRpwhT zHU)cL4q4;6Tj?vy^QdL_k|i5b9&1D_eSYlEY3ssyE4?LW&k9{Hbc8ecQGh_jjHx#b z1Gv<0vQ!yAWzJCcG`ezZ8b`0G%k7{=*+G{LX6;zywO;!@?`cuK_Zn~YmQ_wEYjCZq zXSw_Sk#XS)Qy<@Uo4g<=Mu~f8{xi%xa)noMmd>gi?yjy~3T9dV47^_)R4pkl^m}k3 zDo^rR+IQCJBIN;V9irdq1*rY?dco8rc_nQI&&rjPH~X&;>RUDCi;(PI`?j3#pIA?1 zIenX^wzGMQ`PVj=y0gyN21~0C>|1@mqh;OA>3bLcj#xWSKK0+T12al_wiO%+Wu7r< zvCuD`>HC*PO)uprjqP?lBxCi+wydh}8SDJ1A8k5*Sk0?C@ zj*1;f)J(EceXq2ljnU4)_-U%7=ktYGXMTNea9Ndj@`JP9{5Oh)55F6m9(u8&dwpNi z)ijmye90}?D^XNar)k_-Ye6zytxSx-`SdrRowPOYMu5i8OMYFQ5obhKdS)Y2kYA(OJ zUANhvRMX?K4z5oEOCqQI2rim?<6Y+T*!$-D3eG4#YusotwXCA}orbp0ix1vQkIh`F zd_17DZ~A4=EmjH(K7Y~=UF4I}vark|i$gR(q2R57*S6nw#xnK4j(huD%71Uj#kg+b z>*K!X^*Rl@p3UV+()-<^wL4&%x6eucil5U|!{#nzm$jG^vTuj;j+bI-`>N)e?+w(e z3wgu;vzbkc>&#Nq&Xg&xZR^-V7yB58WywAFpLepOFWtuFhb-UWWk)27D_$JA@0mGc zfo0_sC0~QJJqht%$Bo5}Q+np9TXdzAU+H(;IaQe9^OY8Z>*+rmR(i~B{ZRWf!Yk1+ z>=@8+?zZ{B#X{&ir21RX@>x&k_k4%~eO11#1=RDO<|SeaJj#${T}J%hsJ!uRRcE zJCXElUBnc%h0UzWJ9-m%?tJR#D&)75;EO!XHn(qsYtO#v&*EoH3$yogakFY(wnEIV z~Nxc>}77aLMLBKyrA#ItAH-Q3k4Uo&|g`)9AjEQbx!USG|mf8H#5XCSrz&O3=} z|1EDN4rz%+o!P!{hQVv)ZNa>C9P++znzJ`WNcLjTRbt&)8T}u}(nIL%eX!uc^lpW0%$x%k{t1KlXIPUmiPlxm`B- zd*tqHY;)RK#dS?_X~cH+ZwEb2KLuln!;jfn-q$bJN{PEi-Q}^J-`v)!( zyS;*}_ndu~mU<)6oySz*@g}=%-ECL2V|z4q?`4)(KT>|RZ-368zP^9T=BsZllV9q+ zc3N-L#9)on0_uy5do?WE-&(}FFdnhExZiu?tbX?J!s~D6PrP{laK@GOPZF~FA0~8* z$j%ffF;IKG!@6O`>vs{a?(@8xe$aY-NhuGrFwf<6>))QPSAKZjCq~C@;xUIm+rP}z z{bAjDiF>n+qw4Xah0K@l=vy0Un&{PmqhPf!1qRz0m8^ecKx^R}n6 zZO>1){H_ZsYdk*Cne3)~VbtivO(lYVQ`zOi>i)5d744qJr9C+pS*Smi_(_h;1 zp0j#*eCiYfp^NWg&c1pOUU;F8dCU9PO%@zk_jQb1WAB-{=Ls&UXx{(y`jwy)@4w#t z^DYKt>2%#!s-73zTBNVNWjWQc?5T8PMDT=1%X9+x4uuI;5iqjP}}$4zZ+ zc4LOBMPc$c)ekN8QuUgu6@EhMko4uG8ID;xEoZA(59_$~TK9bT)%C3_K4)Q;UV_?k z_Vhhl_Fv(g9{l#sarS-gJZ}%VXvnWQu!48V)%+!k3sqasD+S+PT6bz@*Q<)>(zJM&zN1&YQ6SgezM4kLn-&egcLn}{HD9f^K8EJ z-ctR(LtFZrMYE3TwOe1hD(EiKTX8D-KSR)|80|go@?{CPDucT|%4&#&YQ6BA@odYl z&OMT^XMVi&>GX%M%>0ra0-I9VIMdiNr%kxhS2faGJqC|2sEw!sL*d`rugKv zKlc)bw(gFF(f2w9!$UT+?A%ov`>ck=WwYF+84o0Dzk6$FdOna4yLq-G#=l&|k9S9K zi-by!p;6;OCf!T}&j*KQuwGfAdJta7SN;Jc3bqrdxp)H85q zB}rv+T{!F~(Y|Vv19w345(XBQ2IW;@EEQKgID!m})*RqGz`&@|B$R%7cGBAI`JO^f z1(!UO9GDm-7_=`k#JsU&@HwEs;Gxpw(=*K@<%Nt$V8FKK1sVbkYrJNk&SO`0=3(Gv z(*Au`U_RrttiNtbfrjzkn;TNBf)|T12peAWP(R@r-~Cluf4!=npA&y_g zqc~J&Y*Dd@KXOswUc|z7rQg<@I49lt7~%KmOqqki61M$cS6y2Dhod{5;jPBe$W(@@ zj6UAZmd~b$$ZJmznfvMT+eOY5&z$+ySe8!fIZ)1Pa7kw3i3PDtZ|g<>Gq7vLxBO9P z30hLP;llHj590S7guZ!*>^{G40_)U*n3r2O&6kV{dhW<^si|4aWdoZMdxx`9xIyE) z-)7aeDw(oMDHC`~j2Y)vb>^?!q_QKC!7D{T`1E&skI8{&beXD@CKjo&AD!r>6gqoG z1mooy&tq>@cAem0Yj@qasVHs=bIkqn^4R?f9@waf zDJ00oG0aO?!1Rhuy!q%>(?yK6jEfRhq}efDmOgiPok+L0n5UzH+MIK5igJI(T-d(# z>YRAz#%GTt)*bTM_u!$@iTb5WM4eh0X0y4cty;@`_E!QY%Op>g2~7UE4UCPm57}(d z$y87{06Nx*mqm$@!8X<5WAd}T3=TY;Dgq1)3_&at0w?>e&=cCAFy(*{1H*;}1)~WX z4pD*)GbB>jJY5sEJ_{Q>Ku(OQVmA=dtMt&-e~7X)p;n zY`a{ea?*gc<%P*vf$ktvHbGYgMukJcKE}5qlo<~0Nb^x>NSLO;PC%v7#J8C1O*fg z6&wQ-3k@14F5GzV;s=L^;89u7)>(lA*Gx4$TC8=tzDnPb(QjvCuJF6TRIQ*F6ciNn zv@rMx2m8t&2fPHXT%2%7`^1~5K8;zb6U;THoL#!YLy_T>gU~wDRMkRO2Oa-*Bh6`r zTejR;7W{x`%eJ7EId#e&y?5LPRX<$)Js0t5XR@{_rqLo>81<$=gx~p+~hYdmsQRz zX1%29w%R1YJ)ysoVVXE7) zGrNLE=JWLl#iv$(@v?ViJf5Q1Uc6#a)F}?ph8@`^-A$9ugf#248lBkAIQ7}eXX1Lx zlOL5G30lOtBQyEt5}k7g3(7TiMo*2jmeG%R68e$AV{6Tf0syZQ>r zU7S7qb83l*WY5y4nUgZ9H6=bMTbA)|)-GWWG+jr!D5iZ*P zG*WTv59Mn4d))sSvi~y#zx>a@_wVfd{sxe|9mm&;K#!KZAtssVlo?i)xfI9u$sf;Y}%j z=<+~f8RL|w_5YSHJX?P+FU#fe-n#sa{T~d>g=T-3>WJ~R{>*PKHZdgl=ArYVD>F0m zn2Yah1aAThu?pO$KP9ag**RexZ$Ibp=$m9pKy;(ah=32#kl{Kjk`OjcrJ=Y;sCE%UjjBvel z3GTKD+SdKbb}V(e2HR>3(r@zomYpJ*Rq`gjP{8Bp!lxlOZnlx@?`QYxrgF z={5UT+Ao!v{7inu*ZTzwb5f_X?ce#A{ZD7=iKUG<+3#>|vwIl4rtIIz;~z!qRQ@ge z=RBcYqiAcEz?8O&6BjnBtv_-Qe4cksx(_CaT!~H(F79EuA)`=N&=c45D$DxNDw&SrCryHX zDi3~1e8=?o#)B)?+!?_EE3dJvP2D|J?)Ejy}f~B$1$e(~x)gT`l`(p~}BUs+46fvY2pb%yC(ma_#$N zp&zsU`XBytK5xNn_aho20(wl^Z2uW5(i}Y7n#5kuyy*vQ#|ikb&urzns6% z_c;Ai{IGxK(eTe2=hT&@7ui?zFZm@9@9Dx)vbi|3R8vOeKmyO2xd+2F-mHz&NXTbe zq^P6hXekq0F-OW)-Z-gSG@|ha`;NKGa!+PGG}+j%_^x(-XD)Z^f(LptMdfPF zH|$UA34Tyi{(#qUr;Asg-1(r3jaga+WwEDzv<1n=2R6=rUHz+(hi&@~Q<0ae8fG0& z`EI|}q<%7=V%+?|hs`e@|7Qr=wP@k~Z`JL||8nGxtv|hA=w`-tq4Uf|JqlMiU9z6$ zAMN|kz$dm&P>Fw5H<$nZKX*d!Gk^Zh*wnlN>m^Ce`-cIrLNvh7!7Q`F95S`fy#W1fwleKTLEW?;dFJ=I0?7X97O zdgJY{KMn_aMDFj5k}oh9Q&@D2W81F!D|!z6e-82;WSVIINiWSlJLpMPP_Nw*o_by=0W z)eD?i)MMRGga~%5xM}tvm}|lJyoa2*F`;#$1qKc>Pofn+TYr$9;lH{~Xk#XVQ^9~$y3};5Y{3yF*+5t802_2@Nnd;u@ zcBwvnx=G-J?4c{04<2J@jhudPXNtFK;3o4O(H#6+_T@Kl@hrM5y7xarVA#ul>6iX9 z80h z)akM)P*Y>dln;#Yi{Bq8Q~UI-TBIRo_1&1cL1&oF?oSs^~S@Lm{e&d}8 zFNqEF*REkbCOhl&ijXYXLvvUENsqQ3gJ2=u93L%+mu=BxjwG$37&F=@r@$GSwpS7X!gR6)2aJd zy_Ij2bIK)NF*_cS@kT`9&nZby&k1{YCmuD(;+!h6RpHL+DRM3=Oj~vab7~%Nob-Tm*1!0IuFAGs)EywZ@j7Lan?nZMc~6-mpy`0AN*@xdH>R`L#KTY zZa*D#NO$6{-kFIk2UK}hx`a%7m{K&gZRw94PzQVNkNp14P(yEt2`RHGxz&q<~` zU}q^ys)SXuMt^#Y>giKS!Mfb32GYF;Yaj015wr5fj4eyHt8SQ}Gv&aFJKXu4c?=Q~ zOLcg?c0364JyjId^x(GUY}HNo1(qxkoWA40ROtg(mMqz_E&9Ql@&jzFDcOv(rU|}d zbldRFc9u67oKD%ssgOFU&HABdjMSqzNwI?;xIg?q!k{h)y0?azfsuug6~uzIhaD9H z6AL#QG)_GDVc|swaB~>62U@^*>NzX3ZRb6|_~;+!6k7W!qUKC;?$Oo0yVq}jaDP&9 z-sOx(Y45Jhb5FgsEuwX{+BxBb>5A>Sxv$%AZ)Z5D^xa~L47hMx5+&E8#^oSl8>$zpEX=_xyT zbgaL=Oq`R*CLyj4_i(zGp_5^)rpGRrr0tgrzlZu zZSUH(ch~vd$<~okamzVo@PThfK5tj3-ewJ_dy~{{1>P=Q^7~W@&)Qv%Y{l#CHh2`S zx4zC4_3)9(+}PCa{HrS>ihEOUGppX0TiC;*sCRRE48O#!$2zah?)lee@Se{`?rx3u z{678^iJIw>9{SqT*33y0<4xgdpSSk*<2i}W?Q7nymu$C8K4u>LcJ1A@_xU5WZtMNk zxx}7ce8r#f{chggOD1Uv-z$U)`}IEE(GD}u=$I3j%n*5U*3I$*GjnaDHm~VDWwkY{ z@YvI~yDg`euU@DYVC(PuW@ZhynfZ!Wf?IZ37&iT~^=#z15O<@>nr~n3ZzF3znFOEs z73PVLKi0ne_w}D{^V{qv?>x?u;+%CUEf9aH~&1^?Rclv@$tFj*?94-`u2O1lY)KhiRS0~zt@OX z@6)&b&tRoz8~`Odvw`t#DU^L&&4Y5sfmJL;T|?Iu~{lh(#8dvCt_ z_Hok*xdPq}{(uiw)8dY-?dbN9@9@b#V*C93yNdf2{~7L|y{vz~zF_%IVRp`sbMue1 zT%K?I&;A?B=lagizt(VH3f*3l{5+>N^0)nOsiYor``=Y@+YIg5|K9&~`R&5YGyN;) zJzw_OcKsgfOSP>JN+nvk-)E91b;)pqqj)7&NehwJZr|F+|7a(kbg-ia&k zKJlDf@}}uJN+3GraNb#~wGcW#V}^@BMKQ_w#mrJojCYl)2-_H~TdNI=;Ct6VRVH_vzH0 zj3m2hsr>DqYtEd=K7Pw^mq34lmCA+N57Vl3^ZN77H16BV@Sovzf=rsi;Rf4z(`OdN z>YL9zCvbnsroPAipGy;M^>fO+@6Om(t#3Zfv_g2jFw4Vf)tp!FxtSe^pYks;n@9CW z#f0wgpnWc8R$qA^Y*_y9ZnS^>ySKm8o<+FtEmAnFe&vmg(XGRrvfIP{Gt50X*Hew{ zz_gQJ6aW2=O?z#pY-j0JcH*1ozN0OQzx|*6JE_j;w}kaI_oW|oY@t8v1@6?ne-_`= zzV>Imjf*Ou)G@geKYq#0d9vfS++DMDzW)rX|K1JAaohUYC^@(9-23-0&-^}AS`%Tk zXs_=i#@koYbj9y5s((NKO#h|udcE1#vNtb3=Ja=_bfDn(y7(hs|1;=+P7>VkXaAWU z)ek<^{i%L@^u6A*i@*F8+x9>Bm)9woV$!-d8Z^ z$=s7l=NEk9nH~Jbjr)+?$xQLgAAPr--tDjGI?c`WX5KU-NoK2?Q#WtpKm4=v`iFWk z&q6Ul^)KqV0qqa}sT+UK`%>|6{;pKdcRCw?%4f4q^Vlt0uBmr?k9E%DBU|4w{r$`t zD_p(X@lNaa8F#(qBJ}T_c*UXj{TSOO^V?s$K3@_4b5E+{hhE=u3)V03d8>a+D8D;> zPXFI~X<4_Au(5uySemefa9Fzl_%z_*QB1&HX2#bnK14bcXH(&baydclO)y z|40ldRlg!|dBf_Q}bAo7TJJKf}HgjStuC zKES-mPW4?7;}d@dgBypFQ{)|2n|`%Bw&`!r%(MR)+TI@fH#4^DKSO3j>2L4pALpG~ zpD&yB_k7#;#qXT-cK_<1*#E`#-qQN8rTX*d%yxa>*}{J7*5apI&q}s!)w}=E@bw?h z=KND3+MjMu>OFESYuCQJ@eA@J&C;hk_P*K89;P#)->&(F26vtNef69Fv^R)bfp89lIn=cx=wx6WGsQG<8eBx6{ zqVI##tHT6ZS3h0l@9>}D(=mm8T9r#5>M(dNWd6^PW5A!_##YV0|CyA5a$lj%H%xf=OnP#_?}O2N?EZZ3{9~*)d@y_yeZTOD za`WQe_5fA6vp-%ja7!F~d-D*>yTj9}|K8-{TmJZ&l?5B4?Vhlt7ts@&dHCkmXZ*R> z;oP(7>8+2#Mnwtx)bwhfRD5LTFTQ)bv1-y?&pVZNu5$~j^PDzpzPrWaC9_&?q>*FI z@0&IUoQ=A~Lszd%exUoxdv5W~xrM;eRX+@*mpV46Zx!haDUaEH9EJv1bQ}^^(Oe~Z(F*edi#o!PwRv3UbB6gE_sEU zt?*w)-C_sFm&_NNxJwpmJzZn)+WP#RJ!RT|pSYjce6%7W`sH`!lU)m5@9=o}@YAWw z-{i9e=SEmP@_ah&h!Jb+k{N;yAJ*MCzQ=C%hi9pu`YSE&Ehsv-g#L zTAXgZ&(V7)_wkE)%n7HBd^bw(kCVT2?b^F**REZ=Zr8hILqq#oJNIqVl+VfQhb?^- zv291K(|?8^U$c&ReULmiZSB+LoO{$XXKj8iyGJ(S{2UkKwj;aS>-PFD$j;_--lJFV zU?Eze`}=NeR5X*&`T5?db9PPl`#H~j<9o$vvQr+Gzq0z}x-;vq^|Wc>Sfy{1%bVB^)Qeoqbs7*!ewAqz^q@Qf>F)_krA& zW~ugolb-z(-?J51AAWz~gWkt}^*zRXpJIF4E?vqG+qO+-=9jb&XZ983v^lTz-)1DY zYyO^Uu{U{fJ1c%no~s^^BR=i#+Pq6XzxteNK5xt4Q&OOq6%l!L@{xy6Z)(o*FrGe# z&&m7Tv^n!Dj#=ra+|aRz{nd8unzg#caqazHP1&<|$8b+pHma25KYnp~^1-*gGmrbu zlz<3#J)-e#T7W|+6>IZs5-E33oHFIi^i*YrjCMg3=RO?myx;$!=z z--mZ6*t+z5ogQ)f%C|H3n73`)!FBHNem9%6TIp%)zw+$X5%Mpd)$+U5GHyuu*seWkhM!o?{8Z!CL#MtAmhLLP$@BX}*(JXR z*JP$w+~50=?QX1-o4vcsqS&a2jagsjJgkU)$`-rwp;7RTZ(mC%_dRNRo3f?CX5*&h ztdP}VW?*1mUKVi!1a9q~SW&xY%a+HR%eC%)zS^?x(54@Krj3cy%k!l6yyvZD4ohde zl6UW%g}CvVmr3uBGS%)&{qc*tSKR`>V48`Mg^7s?a#aK)c)@gFqCjEeM1_SL4;ox_ z`0()|xG%!Uz-TY9;rAKtpHsvN9IO(Id6&%+TsP_1vLd;Fy~lp`yEgreJ^kc*U-Cv9 zuC~)UU*79%7hz7mtnl~vrmI>1*zaVh#PmN+ypyqi%XZoW3}nOUq04}}DAMkmZavo%<{yXMqPjXlgq?3*`jG&#Dgz-qdf-e+^Q4Qhn} zdEcDhuv%V9^j`L@z3a*mrtf+WPuQI-3C(Rgb=3C2imB;axTe1kP~04IR5f`+)5K#B zMQ*%j_s$@PB-xfo-hyG zV>9t)vl@5P;%O{zmKzvHKRvkKQ24%t()*xWB`yY!?s9~8-)1YA_|o=s^~RgtW>;TW zXy4LX7Q0N-=hfA%e5%V8&s};jf!V}oztIZ+hVIqxu7(RKhOJ=@4=Vk0cKY(NBN@!! z(!Wcnl`YzDxaq^5xX|tQ9?jXm-$QYC?P*Evdm^dvWxVxUws-%Yk~Vo_bME||QI7J4 z2Kr~uE#Zv`JPAf_^Kog|1ryrQ z{FL3%_=9`L%|-H2Lcg|UNbvZ4*UMa~dH4C`Bi!ZF*iKvsa4x))>=O`emvCCQ<3f7S z$B0PA&>ck$s>fMmD;sA@NED{q1xJ|_S58Zr9T(1Y#>-cgd#^9c&xQkQ93t!keZ-2I zmTj6IFSPwbt5}fI(V7E06{?oST+(CjQoJd*DR#q^Fh-FAAIUHNQt|8WaLZ@6+!R@z zRuEz;(vkHjK;rl5V(Ud*nyxbPcf?$z^mj`B@M0^e-(=+_63x!Z8)Ck@XB>Lg zI~*oQnEEMR+#oAh`3zOpJ6*;%1oUuf`WW-$BKw1V0-w(PZ=eobn2 zWGr5OWsC4V-o{6|MvIdc+HPbn6?tIy@GQfZbH;23rtCVmAm~Qp$}=jKrb*s^8oB?2Pe$$+!6~WvGaq$lDyVPS zTE&|ZB~rN&b2?Mrn&Q8kL8;2q>polPOqI%(5;1!n-AE%i)1j>d*b)Fr(m&v zMN3FcL+w}IjFPwUA2};-R&Jii^`pa5bAs0LJH8Js*i)0srb)kxvTD6?C^o-)-p$6& zQpTn851(Zzs*20Ldhu0XV08M!NRO|}H*vg*>yxc-I5;hBTbR;rhPB2HotL@iW-+q1 zvEJWtEZO5aQ|(eaF0JG}kSvxr|w69rT94jpE;304gep2FGkW%+uqSfTy19(I=g;LwsYCufm5}SDx(9H+pxxx+`>r>7BaO;$<8k(%)(qHOaWx7@IH5{=t#7s=n~@ zdf7=A=C1KA{QOKyAVgHmH`S)|A)&#UnyTSW$|2x*AT&2`>8_oKzsr%nO zE<2|B@b7^|GaXl}Gy8Y!(^|@EHB;k|P5LW!{)c@2m&_i8t?t<9sC`-Ej$h?dn*$1M z5+5{eZ@xRWTG{7{w1GAE_pVUS+G|ShB9}W|oTVgo`^y9|9>xAMr>-rVCbMy?^%h|T zjw#D7*>5sfG+p!de}))-v27{2mpS<~KbxM(T3f6=@6qLqpGHUZ6b!TV?;9-8yLj@B z`xLHM6XRFtW~$$jzawMvwrTC(H32bx5vCGf!+CZyM6GLhmfmp7WY2E?4mXp)#gXnd z!*e7L$n1yRIUVa_Ruf5>Yv6^X#tc#Q;Z$Vm}ggY3XMJ zW#)hBo0w!{S{yz7{yb1xa6Y5|OTmjc<#Yr#no)wmhw7OQX)IM5b;$7C5nJSVOml<-7^U;>mEB95&pJi6P5~G;8Ir`2T zr#Y*ATwUzG*vY&!nxM+7Z)VOq&|t7;~!n#%XiTKx3cVoX=;?$BeI z#<>t3r-qd1f?r!hL>&rPR?3Oh9Q@#IufJf~jP)E>M7g7yCN^-LUFDSGdYLIM?nalq zjMJ-`)ApYI2n#bffe1?N1jPJF|+R@8A@t7NZoan#WUUGX!ye;NzR3~$M5#jG@a z_Ooq6zFdaci)u%&b~ACYoh)}{PW`ujf5#y3 zpW*TcDZQuN97=AiF}o(7wwYk$bxzgq+=E?N2X@CPGc3!9jhbB5jSW0Ye5FUv0Z%IRzWGaUSB_te&#cQe!K{ZY4md|6(q`ASSTEBLil z@|xry1+y;xyMOqL>#SX$1=HugbhvpdqIQwMLuR?uEdPwvd>b;Nt_S>H@K-f5^s}(~ z(mB^PzIdHbmTg@jbn0OZgZ&K6Zyn28E=~K-5XhHpK4aBY?Pna*U+(yFt)VeiwPE`+ z#;Hn7e~gp+vnK8O!MW&evgLn<^Px>wq$AR$UhHy+%-_=RWQDQ3p!mvJCdqfd%Pz02 z;!X-+p2l)z-}EhOB99A1cJM`13*Gp*I5^X(&-s?_RgX&sRc-gn-|9#o_;;_*mf!lv zl%Vpi*E@xzN) zg_*7%_$=#P77@}}^;+ndN8o1B_Jb^G_CeR4Lo3J(=}8vO=`B zhIdG<>TTfpC{oe*O3c+EVT+hM<6}XQSx+?&amK!jYgu*h(;uemoPnp0u&&-!5Wx60 z(p9lnQ1`k(%4_AJa4_4Qd!PI zyX!lP`HK$DoSgbMcz1n|=gLBUP`~xc+H6?A@5|edTotI3GQv56?Vr;Q{ z#ll6)jP$N7*!6B*%2TB)FYSISb*=vPT$!_Rfvw;MopSEk3NOU!17AMAUVK5c=s$ys z3|oefksyoQ)AzTcBb44X%vU+5IOjRH&A!yvTRW6b&&{XH{MD!)n222TCc)1d()!m$eriJpYANK?++0XzVu|R z>2K9^mQ1(sUR#0soYS&x8wB!xys}j|qPdv2JGI=ba0kP6jVclGPo0LDezz8Ehehu~ymss#ubr>`4rs0`v@n(Ssb3avecs++YgfGs%Q11gk4=mpZ6@_9i!&a5 z#n`nkAn9M=+6#TFRMO`#mCa?I^sS<$#;#$5%^aqX(Lqd8)i8S34}t21EZhEa^ zWr%_KEA6!X8(${8aK3$MaeTma|23!Bzw5bcyqV+Zq8T#J@Ac2tAH2DTIUXL^*&Xn} zGtcdtgQgo_bkE_0xVMGgmsmxgHf{+${c_`b&D4Y5M3P#l5Q01&as%vrFw9?(CWA@Res}wXnUgr5BuBFLmh3G zddVJ^jNjqbI&G=WrtSM(G+JNRc)j0pDt7&~Edf$SfB!S|Nv<$c(Ve@j?UmtL!}gBA zO}|nZJ3d(G&k#Rh+_A5P+hAYh!MFNf40bL|YQoQ&(OJWznP~+>C9BF+`NRPF^~Tqw%Ne! zlE0#7B+guD}1OM^2HR zdCw&HXwqjc?lhqVEA~~)YMr@p`3%Nu-)1xWWj*6#sc`$j@p}G_%k?S;BWvw`Y>DR2 z@Lm36WAibEHMXX{!kujs+nFC31{rTS_$slId#ZTZCOy^AS*q-ld05>z@)CA$`2F2D zP3D;>f6B%09j5C}@9$99Qd+!qeu=MJ#>Uk9rzFC{8lO(znj3p2(Uy17B)yb`nCn|C z#MVaXsc17-{5e}8QLyMsQGZQLT$bJGC$VR?B>n2YCZ!nWm1dVCnz{X>xFdtAnoNCq z%M!7lNzz?4KKC?^vGI%hT#mIK4A# zbD=JmSy$`ZAJ6o7ugzbu{8fOHkb8%HfS9b<)8+C8Uz;Sh=zPe2$D7LJZE%Purk+*f zj4S7{;_5TY;%_yHxo7MP|J8D%O7(Ha;*TA(%&wHI72!)PGVt;46=7PsIaz0o%;CVk zjs>Nm%zQWW3Y?3!MYwTZI8)HDr|$U?rPNkak=x8OJ2U$;j`l71s{3I=ui)bRGXX!` zHdxzKd3wtwu4a*JkYMj<4Q1|9r+&) zJ8c*B&g*CnH{-vP6viZ4_K`bAjmsiVN9(~pjarktKwa`#_{jHg{bG)+6ep#>Bd-sT$*Rz0SCelXk1rgs}^UuEj z7!quHRCe`lJBpKVfVB8 zUa3aQrn&JwF;{=6S^GsSiCocaIqQ7sg(<3AZ%Rz=UcsTtG|>3vu4qhhgY($H1jw9OBIxKDxKDodQ7P?gO}Uu=ew9Gsw~%2 znEfl>$C=KUVzfmvy>6G*uePQ2x48?71EyH_F5TV0bn~BTJF8CknMte5nIvTHg!W7B zdsHI#QL$N4hj|}UKvX2ds+Z>$8M*3)vI}bpY(D$Zbl!`b^;^4?*w`F$LxuMmUJSc) z?EQRqrzLx?cRcP<$t>!5&?6b)WA{pL-J)f}BFA{|T1`1&q2PWAl$ z%;*+#V$t>g3>r_4Ft9jJZQ#@uJeC}$qL*~fuYcn-CH++!bi0eQPhZR~5M#GF$h!1E zXY!d9Idy8YZB3`k9(&KGWVnPoXJT~R&-SGisp8h*4@x@oLOZnXJc-*NtZ&}ISo_Xc z=a&H%Ji`vWwNO165Uls-@)hCJK_VgxtGk;6b01Z9)y=Nl{?0w?WNLF@_kRX&&XQ~A zi?m|0t{!@`bftUHV+kLt#gBzQOj=WAp={L|)x{;29WgrdNk_b_ zbm}d^c#GvZ89gi5-z?#ZIum$yW%cRf>l_2FCAvwU)wrp1a)**%h;r65mBRYKm3xja zx>$Enp0jRgc(_3z(_!7oJPBKWD>_JD9by*+WzHOZ zEx0P~LC697BMCD5W7jW|Ok{5?pO(xdp?|hKi>o2a;xW&b3A@@)UUBT^p0s+scyT0e z2`g8dPNjnUUGG(o)N0n0of42Lj6S0O`oo29jkyl;doI@=Tp_wBl-oPQaq4YTMxDn; z*z#pJo%!;gVN3FMtnW1_;XJk$(NkH zgwf&aGv9xzyWXnS9GlJaDk*CJy8jHq$@c;^1K%b5XP9`_QQ+aG-(J19&Mb-SI9|L; zhUMK;1qPqArv8ldgg&;Af2#8|SHwpATNt7(IGwAErNb-voXpf~&zmY#4_)K!&j?u6 zTRkPAlu6ZilSB0GTj`p==kgp7tGo2@fMv3iz}8C!p;L0ViIcy(vo;tIVXLI+Jr0)w0q7>&GVJJLlx8=soJ6W4GFD+v|xT5Zv+Q%2#n~fWe zhSiq;nAP}JX^!NAW7}t(l~hp}79jmh^?adE5;dgYU*Ys%u>+)U{HH&<* z+_rC#csWBhgISZN{_XhHYvOsQzWtGK@P+xr7VhF!yYA>N;fWV@OCp?%G(}?)uI9#` zSJ}Sf=tPq_UVE3x&EFyC_%NNpIgV+|gq;qliXGQtR^7?@&)^Z76r(i#GozMR-ep$T zW5EJj>vn7|EO~g#`ucMHjKm$CN;3~=|5D}n6J2U}GWEm6x99gPo~ZY*Cvw8{utR}w z?}`6beJ0N9dH81UnNOX5uRAu*pJc-Fv@mnJO{YsnOqBEf1DicVxwg6Z7(Uv6bTa=V zWoDa;>mJ2cpEj+Zv~A8YiJiW_$C!4@9@w_fswMcGob2%w@f&Hb62hDntc4bGe{cL} z@Y-K>c=xk#ZSBwtbAKLDUR~-N{#$85>5Pe7f&3L!uaArO8%J(m?X@iWw#GB9chUcN z*(8&ff8NC`exmq~dF?{?+&=jVqnQ2+cfN+$E-NSuQ&5PGj+H*ovMh{A;bQUR?~Gp? z`I`TpvRa^P&G^CSLWIJ;1-vpb%#Di=Y^q%F$!?l-^0vMCrUL1|zwTM?|MPqQ-nxiM zZ%ehKq7K$GyPn>=CsKDsh91N9vxn}yi)uM!yuRCIS4`eU!{cRHw&wRTc75Ts?=a;! zr@!#-k)u8zuO%KbJ{Z&2H@oxdjT!U)&7L={T+HCSikJ4mS68>*|KnWU8fMFCz5n3U zfLaZ{n9fC4drCr&THCk z0*l?{_Sj3Ut$M!y$J$+A?*5Qo!B(`znRjjS6!V6QeM`?B7iDEQF0#*q_-5Ys_ zWgM=WeqEYxQ*(UZk;SvMxI?D#?}_nd+qB1^+h}k0oqzdQQ4J@4d#e$U#^5NOi2A}cH@;N}Wm4bEHk@1Cw}_uBS;<)qMyflK!bo>?OFDDOa_ zbMZ5)GwJExsENE6=aE0GhW{B@SKZlI`r}>k7f0il z(cU|X9U|K1>M_K(R8BeVvO0He-6{dWBRujuZcjbCf99sQ66{TZUpMs~d8Qn;e3zEp z((0>yatVjzcSzehyq}>LSIeq%|54$3hduI7Jg%(wfk44OXUrMGwrgLu3Ct0-JS}T; zD$m_C|An5kY_aGIi|yf)7T!AK#xyaS_Yl+3r73ZXEFIigPL!D=!n^t8KdozjO}u56&E@$$VPeoM zwwJdKg{^udVlv~OP;;}%%N0{K#Fq6NoHAC>ERPAv({XD$e5d!};Z$igS2pFUZuXlG zJ0ogMrd2BK-G6@fXTiql(_eI_KKR-FD6Vq3`HRzjjai32CH}NH)wASj=N#=NuXNY% zi0rt_RpO>+8C~_|ooLp=sZJ~JD5gEoDmW4%xbjYK){iNZcBgr7Eolm8I(tdUX>#(* zwDC#;MilG9$17SmZs$EM zmKU_je#A8WkzLQ~9n)WV9oD-VqIW|_-Kj7A!IX20E*DmbM>@>-?pBwzSeAdr(cT?% zb5nFyD6D#|U#QgfP$g+gVZgH0Mkgjjl~2i!TKiONLCr+l_9Kh4Uj<(l$@z2aKZCTj zJ+slgMbfG}jZL@;+)gz=ZAv>ovq7?(f2HHv>I1j#J<#5oEW^o|amVz?><{dwx~Ddk z6@;u8KV7}wP5f2+kBgSYjr}s`cdWAySh1gR-y@T@BYmR9$~}G?ow*czTa#IKWtSLg zER$J1<>u^ZOBP%V4>-hkSx2C_>OaF0hJ|+>r!ZbA$c{dz#Ps4?#A!2k&FQ80F0zI@ zy149H`l{hg@~ybUE!+44_Z#a4F|M%VFU&s4;c?E!F|@AJm;DOAMAyT=iqo`~g;!4b z;Hnsy|J!$=T${0CvUyS9ed*8A%el9s5JaOj4r|)dr zw#PW!;JC8&v!;W}%5M@sCJLKmu-Z&o^ZdxtNjgPG;-^ZlKQ8-knKu7}=FJ~h7iwBe z-|2dP*~cEa%XjCv1ytW=(YwA#il(=r+g>~&bWp`|{_rxsj@+!WksP#a) U(d$xR=Feo^POh1C>Hlv604XusOaK4? diff --git a/doc/gettingStarted/gettingStarted-1.0.md b/doc/gettingStarted/gettingStarted-1.0.md index 074c34a5..939dfe59 100644 --- a/doc/gettingStarted/gettingStarted-1.0.md +++ b/doc/gettingStarted/gettingStarted-1.0.md @@ -16,19 +16,42 @@ You can sync the time using companion apps. - [Sync the time with NRFConnect](/doc/gettingStarted/time-nrfconnect.md) - Sync the time with your browser https://hubmartin.github.io/WebBLEWatch/ -Since InfiniTime 1.7.0, you can set the time in the settings without needing to use a companion app +You can also set the time in the settings without a companion app. (version >1.7.0) + +InfiniTime doesn't handle daylight savings automatically, so make sure to set the correct the time or sync it with a companion app + +### Digital watch face + +![Digital watch face](ui/watchface.jpg) + +This is what the default digital watch face looks like. You can change watch faces in the settings. + +The indicator on the top left is visible if you have unread notifications + +On the top right there are status icons + + - The battery icon shows roughly how much charge is remaining + - The Bluetooth icon is visible when the watch is connected to a companion app + - A plug icon is shown when the watch is plugged into a charger. + +On the bottom left you can see your heart rate if you have the measurement enabled in the heart rate app. + +On the bottom right you can see how many steps you have taken today. ### Navigation in the menu -![Quick actions](quickactions.jpg) -![Settings](settings.jpg) -![Application menu](appmenu.jpg) +![Application menu](ui/applist.jpg) +![Notifications](ui/notifications.jpg) +![Quick actions](ui/quicksettings.jpg) +![Settings](ui/settings.jpg) - - Swipe **down** to display the notification panel. Notification sent by your companion app will be displayed in this panel. - Swipe **up** to display the application menus. Apps (stopwatch, music, step, games,...) can be started from this menu. + - Swipe **down** to display the notification panel. Notification sent by your companion app will be displayed here. - Swipe **right** to display the Quick Actions menu. This menu allows you to - Set the brightness of the display - Start the **flashlight** app - - Enable/disable vibrations on notifications (Do Not Disturb mode) + - Enable/disable notifications (Do Not Disturb mode) - Enter the **settings** menu - Swipe up and down to see all options + - Click the button to go back a screen. + - You can hold the button for a short time to return to the watch face. (version >1.7.0) diff --git a/doc/gettingStarted/oldbootloaderlogo.jpg b/doc/gettingStarted/oldbootloaderlogo.jpg deleted file mode 100644 index b4d0cdfbd3274351ba0b170af53ea0b02c3982ad..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 116236 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 diff --git a/doc/gettingStarted/quickactions.jpg b/doc/gettingStarted/quickactions.jpg deleted file mode 100644 index 3bbe1622d220d37a9efb977c0b6f73c5a1a1f6df..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 50875 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

3s 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 jVCYZ%oX`F|4t3LHLX diff --git a/doc/gettingStarted/settings.jpg b/doc/gettingStarted/settings.jpg deleted file mode 100644 index 075708adee18a64c3ff4ae5d61c3c971d0386e5a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 57679 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ⅇlHqoYjK5uXd}}a(X6|R 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


!|F$l7kqhiId&DEOXTNBN@Z9j-qe5AGTo+W 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 literal 0 HcmV?d00001 diff --git a/doc/gettingStarted/ui/quicksettings.jpg b/doc/gettingStarted/ui/quicksettings.jpg new file mode 100644 index 0000000000000000000000000000000000000000..250c9154200cad839eb8b5f3f44035b276c404c5 GIT binary patch literal 135510 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%0AaU@||&leJS(tA9olS);@dq`&fqal5qAJ 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

}o(HdA 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 literal 0 HcmV?d00001 diff --git a/doc/gettingStarted/ui/watchface.jpg b/doc/gettingStarted/ui/watchface.jpg new file mode 100644 index 0000000000000000000000000000000000000000..e7a9439bd4be1832f60dea66967e100e6cd31c1c GIT binary patch literal 103055 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 Date: Sun, 14 Nov 2021 15:23:12 +0200 Subject: [PATCH 062/188] Split updating and about software. Remove big Contributing section from README --- README.md | 21 +++++-------- doc/gettingStarted/about-software.md | 26 ++++++++++++++++ doc/gettingStarted/gettingStarted-1.0.md | 6 ++-- doc/gettingStarted/updating-software.md | 39 +++++------------------- 4 files changed, 44 insertions(+), 48 deletions(-) create mode 100644 doc/gettingStarted/about-software.md diff --git a/README.md b/README.md index b85dba33..ae315f24 100644 --- a/README.md +++ b/README.md @@ -4,28 +4,31 @@ ![InfiniTime logo](images/infinitime-logo-small.jpg "InfiniTime Logo") -InfiniTime is an open-source firmware for the [Pinetime smartwatch](https://www.pine64.org/pinetime/) +Fast open-source firmware for the [PineTime smartwatch](https://www.pine64.org/pinetime/) with many features, written in modern C++. ## New to InfiniTime? - [Getting started with InfiniTime](doc/gettingStarted/gettingStarted-1.0.md) - - [About the software and updating](doc/gettingStarted/updating-software.md) + - [Updating the software](doc/gettingStarted/updating-software.md) + - [About the firmware and bootloader](doc/gettingStarted/about-software.md) ### Companion apps - [Gadgetbridge](https://gadgetbridge.org/) (Android) - [AmazFish](https://openrepos.net/content/piggz/amazfish/) (SailfishOS) - [Siglo](https://github.com/alexr4535/siglo) (Linux) - [InfiniLink](https://github.com/xan-m/InfiniLink) **[Experimental]** (iOS) -## Documentation +## Development -### Develop - - [Coding conventions](/doc/coding-convention.md) - [Rough structure of the code](doc/code/Intro.md) - [How to implement an application](doc/code/Apps.md) - [Generate the fonts and symbols](src/displayapp/fonts/README.md) - [Creating a stopwatch in Pinetime(article)](https://pankajraghav.com/2021/04/03/PINETIME-STOPCLOCK.html) - [Tips on designing an app UI](doc/ui_guidelines.md) +### Contributing + - [How to contribute?](/doc/contribute.md) + - [Coding conventions](/doc/coding-convention.md) + ### Build, flash and debug - [Project branches](doc/branches.md) @@ -47,14 +50,6 @@ InfiniTime is an open-source firmware for the [Pinetime smartwatch](https://www. - [Memory analysis](./doc/MemoryAnalysis.md) -## Contributing - -This project is far from being finished, and there are still a lot of things to do for this project to become a firmware usable by the general public. - -Do not hesitate to fork the code, hack it and create pull-requests! Make sure to read the [coding conventions](/doc/coding-convention.md) - -You don't need to be a programmer to contribute. Read this page for more information on how you can help: [How to contribute?](doc/contribute.md) - ## Licenses This project is released under the GNU General Public License version 3 or, at your option, any later version. diff --git a/doc/gettingStarted/about-software.md b/doc/gettingStarted/about-software.md new file mode 100644 index 00000000..b19a610f --- /dev/null +++ b/doc/gettingStarted/about-software.md @@ -0,0 +1,26 @@ +# Firmware, InfiniTime, Bootloader, Recovery firmware, OTA, DFU... What is it? + +You may have already encountered these words by reading the announcement, release notes, or [the wiki guide](https://wiki.pine64.org/wiki/Upgrade_PineTime_to_InfiniTime_1.0.0) and you may find them confusing if you're not familiar with the project. + +A **firmware** is software running on the embedded hardware of a device. + +InfiniTime has three distinct firmwares: + + - **[InfiniTime](https://github.com/InfiniTimeOrg/InfiniTime)** is the operating system. + - **[The bootloader](https://github.com/JF002/pinetime-mcuboot-bootloader)** is responsible for safely applying firmware updates and runs before booting into InfiniTime. + - **The recovery firmware** is a special *application firmware* than can be loaded by the bootloader on user request. This firmware can be useful in case of serious issue, when the main application firmware cannot perform an OTA update correctly. + +**OTA** (**O**ver **T**he **A**ir) refers to updating of the firmware over BLE (**B**luetooth **L**ow **E**nergy). This is a functionality that allows the user to update the firmware on their device wirelessly. + +**DFU** (**D**evice **F**irmware **U**pdate) is the file format and protocol used to send the update of the firmware to the watch over-the-air. InfiniTime implement the (legacy) DFU protocol from Nordic Semiconductor (NRF). + +## Bootloader + +Most of the time, the bootloader just runs without your intervention (update and load the firmware). + +However, you can enable 2 functionalities using the push button: + + - Push the button until the pine cone is drawn in **blue** to force the rollback of the previous version of the firmware, even if you've already validated the updated one + - Push the button until the pine cone is drawn in **red** to load the recovery firmware. This recovery firmware only provides BLE connectivity and OTA functionality. + +More info about the bootloader in [its project page](https://github.com/JF002/pinetime-mcuboot-bootloader/blob/master/README.md). diff --git a/doc/gettingStarted/gettingStarted-1.0.md b/doc/gettingStarted/gettingStarted-1.0.md index 939dfe59..30b8bdb0 100644 --- a/doc/gettingStarted/gettingStarted-1.0.md +++ b/doc/gettingStarted/gettingStarted-1.0.md @@ -1,10 +1,10 @@ -# Getting started with InfiniTime 1.0.0 +# Getting started with InfiniTime -On April 22 2021, InfiniTime and Pine64 [announced the release of InfiniTime 1.0.0](https://www.pine64.org/2021/04/22/its-time-infinitime-1-0/) and the availability of PineTime smartwatches as *enthusiast grade end-user product*. This page aims to guide you with your first step with your new PineTime. +On April 22 2021, InfiniTime and Pine64 [announced the release of InfiniTime 1.0.0](https://www.pine64.org/2021/04/22/its-time-infinitime-1-0/) and the availability of PineTime smartwatches as an *enthusiast grade end-user product*. This page aims to guide you with your first step with your new PineTime. It is highly recommended to update the firmware to the latest version when you receive your watch and when a new InfiniTime version is released. More information on updating the firmware [here](/doc/gettingStarted/updating-software.md). -## InfiniTime 1.0.0 quick user guide +## InfiniTime quick user guide ### Setting the time diff --git a/doc/gettingStarted/updating-software.md b/doc/gettingStarted/updating-software.md index 316d77ff..7a05073a 100644 --- a/doc/gettingStarted/updating-software.md +++ b/doc/gettingStarted/updating-software.md @@ -1,34 +1,20 @@ -## Firmware, InfiniTime, Bootloader, Recovery firmware, OTA, DFU... What is it? +# Updating InfiniTime -You may have already encountered these words by reading the announcement, release notes, or [the wiki guide](https://wiki.pine64.org/wiki/Upgrade_PineTime_to_InfiniTime_1.0.0) and you may find them confusing if you're not familiar with the project. +If you just want to flash or upgrade InfiniTime on your PineTime, this page is for you! If you want more information about the software and the update procedure, check out [this](/doc/gettingStarted/about-software.md) page. -A **firmware** is software running on the embedded hardware of a device. - -InfiniTime has three distinct firmwares: - - - **[InfiniTime](https://github.com/InfiniTimeOrg/InfiniTime)** is the operating system. - - **[The bootloader](https://github.com/JF002/pinetime-mcuboot-bootloader)** is responsible for safely applying firmware updates and runs before booting into InfiniTime. - - **The recovery firmware** is a special *application firmware* than can be loaded by the bootloader on user request. This firmware can be useful in case of serious issue, when the main application firmware cannot perform an OTA update correctly. - -**OTA** (**O**ver **T**he **A**ir) refers to updating of the firmware over BLE (**B**luetooth **L**ow **E**nergy). This is a functionality that allows the user to update the firmware on their device wirelessly. - -**DFU** (**D**evice **F**irmware **U**pdate) is the file format and protocol used to send the update of the firmware to the watch over-the-air. InfiniTime implement the (legacy) DFU protocol from Nordic Semiconductor (NRF). - -## How to check the version of InfiniTime and the bootloader? +## Checking the version of InfiniTime You can check the InfiniTime version by first swiping right on the watchface to open quick settings, tapping the cogwheel to open settings, swipe up until you find an entry named "About" and tap on it. ![InfiniTime 1.0 version](version-1.0.jpg) -PineTimes shipped after June 2021 will be flashed with the [new version of the bootloader](https://github.com/JF002/pinetime-mcuboot-bootloader/releases/tag/1.0.0), the [recovery firmware](https://github.com/InfiniTimeOrg/InfiniTime/releases/tag/0.14.1) and [InfiniTime 1.0](https://github.com/InfiniTimeOrg/InfiniTime/releases/tag/1.0.0). +PineTimes shipped after June 2021 will ship with the latest version of [the bootloader](https://github.com/JF002/pinetime-mcuboot-bootloader/releases/tag/1.0.0) and [recovery firmware](https://github.com/InfiniTimeOrg/InfiniTime/releases/tag/0.14.1) -The bootloader is run right before booting to InfiniTime. - -The bootloader is easily recognizable with its white pine cone that is progressively drawn in green. It also displays its own version on the bottom (1.0.0 as of now). +The bootloader is run right before booting into InfiniTime. It is easily recognizable with its white pine cone that is progressively drawn in green. It also displays its own version on the bottom (1.0.0 as of now). ![Bootloader 1.0](bootloader-1.0.jpg) -## How to update your PineTime? +## Updating with companion apps To update your PineTime, you can use one of the [compatible companion applications](/README.md#companion-apps). @@ -43,7 +29,7 @@ We have prepared instructions for flashing InfiniTime with Gadgetbridge and NRFC - [Updating with Gadgetbridge](/doc/gettingStarted/ota-gadgetbridge.md) - [Updating with NRFConnect](/doc/gettingStarted/ota-nrfconnect.md) -### Firmware validation +## Firmware validation Firmware updates must be manually validated. If the firmware isn't validated and the watch resets, the watch will revert to the previous firmware. This is a safety feature to prevent bricking your device with faulty firmware. @@ -53,14 +39,3 @@ You can validate your updated firmware on InfiniTime >= 1.0 by following this si - Open settings by tapping the cogwheel on the bottom right - Swipe up until you find an entry named **Firmware** and tap on it - If the firmware is not validated yet, you can either validate the running firmware, or reset and revert to the previous firmware version - -## Bootloader - -Most of the time, the bootloader just runs without your intervention (update and load the firmware). - -However, you can enable 2 functionalities using the push button: - - - Push the button until the pine cone is drawn in **blue** to force the rollback of the previous version of the firmware, even if you've already validated the updated one - - Push the button until the pine cone is drawn in **red** to load the recovery firmware. This recovery firmware only provides BLE connectivity and OTA functionality. - -More info about the bootloader in [its project page](https://github.com/JF002/pinetime-mcuboot-bootloader/blob/master/README.md). From 4257073a02215e3f182d993765e4c5edef2d9845 Mon Sep 17 00:00:00 2001 From: Stephanie Date: Sun, 31 Oct 2021 12:24:13 -0400 Subject: [PATCH 063/188] Fixed container to use clang-format-12 and format on save --- .devcontainer/devcontainer.json | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/.devcontainer/devcontainer.json b/.devcontainer/devcontainer.json index 778fe9cb..1bb315f7 100644 --- a/.devcontainer/devcontainer.json +++ b/.devcontainer/devcontainer.json @@ -12,7 +12,9 @@ // Set *default* container specific settings.json values on container create. "settings": { - "terminal.integrated.shell.linux": "/bin/bash" + "terminal.integrated.shell.linux": "/bin/bash", + "editor.formatOnSave": true, + "clang-format.executable": "clang-format-12" }, // Add the IDs of extensions you want installed when the container is created. @@ -33,4 +35,4 @@ // Comment out connect as root instead. More info: https://aka.ms/vscode-remote/containers/non-root. // "remoteUser": "vscode" "remoteUser": "infinitime" -} \ No newline at end of file +} From 34511a66ee419086eafe4b5c0f932d7c5b1ab0a7 Mon Sep 17 00:00:00 2001 From: Steveis Date: Tue, 26 Oct 2021 17:16:42 +0100 Subject: [PATCH 064/188] About : Remove misleading info Removed Steps which is hard coded to display 0. Could be misleading and is using up memory. --- src/displayapp/screens/SystemInfo.cpp | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/src/displayapp/screens/SystemInfo.cpp b/src/displayapp/screens/SystemInfo.cpp index 350c15cf..c363e2dd 100644 --- a/src/displayapp/screens/SystemInfo.cpp +++ b/src/displayapp/screens/SystemInfo.cpp @@ -182,9 +182,7 @@ std::unique_ptr SystemInfo::CreateScreen3() { " #444444 used# %d (%d%%)\n" " #444444 max used# %lu\n" " #444444 frag# %d%%\n" - " #444444 free# %d" - "\n" - "#444444 Steps# %i", + " #444444 free# %d", bleAddr[5], bleAddr[4], bleAddr[3], @@ -195,8 +193,7 @@ std::unique_ptr SystemInfo::CreateScreen3() { mon.used_pct, mon.max_used, mon.frag_pct, - static_cast(mon.free_biggest_size), - 0); + static_cast(mon.free_biggest_size)); lv_obj_align(label, lv_scr_act(), LV_ALIGN_CENTER, 0, 0); return std::make_unique(2, 5, app, label); } From 871a673a4656c438fc12d4c0ad61d2eacc3ca340 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jean-Fran=C3=A7ois=20Milants?= Date: Thu, 2 Dec 2021 21:02:21 +0100 Subject: [PATCH 065/188] Tentative : fix issue template that redirect to a blank page. --- .github/ISSUE_TEMPLATE/bug-report.yaml | 1 + .github/ISSUE_TEMPLATE/feature-request.yaml | 1 + 2 files changed, 2 insertions(+) diff --git a/.github/ISSUE_TEMPLATE/bug-report.yaml b/.github/ISSUE_TEMPLATE/bug-report.yaml index f0fb076e..6e9f6606 100644 --- a/.github/ISSUE_TEMPLATE/bug-report.yaml +++ b/.github/ISSUE_TEMPLATE/bug-report.yaml @@ -9,6 +9,7 @@ body: *Please, before opening a bug report, check if similar issues already exist. In that case, use those issues to provide your feedback instead.* - type: checkboxes attributes: + label: Verification options: - label: I searched for similar bug reports and found none was relevant. required: true diff --git a/.github/ISSUE_TEMPLATE/feature-request.yaml b/.github/ISSUE_TEMPLATE/feature-request.yaml index 26e4fa0f..a35bbfed 100644 --- a/.github/ISSUE_TEMPLATE/feature-request.yaml +++ b/.github/ISSUE_TEMPLATE/feature-request.yaml @@ -9,6 +9,7 @@ body: *Please, before opening a feature request, check if similar issues already exist. In that case, use those issues to provide your feedback instead.* - type: checkboxes attributes: + label: Verification options: - label: I searched for similar feature request and found none was relevant. required: true From ec437b1c661b76e5c82681777c8900bd1ffa42a9 Mon Sep 17 00:00:00 2001 From: Reinhold Gschweicher Date: Wed, 1 Dec 2021 23:30:25 +0100 Subject: [PATCH 066/188] QuickSettings: remove unused imports --- src/displayapp/screens/settings/QuickSettings.h | 2 -- 1 file changed, 2 deletions(-) diff --git a/src/displayapp/screens/settings/QuickSettings.h b/src/displayapp/screens/settings/QuickSettings.h index c036fa5c..7913898d 100644 --- a/src/displayapp/screens/settings/QuickSettings.h +++ b/src/displayapp/screens/settings/QuickSettings.h @@ -1,8 +1,6 @@ #pragma once #include -#include -#include #include "displayapp/screens/Screen.h" #include #include "components/datetime/DateTimeController.h" From 4b7f2546bd26d9ad53eea6f7bb4e27f41d5842f3 Mon Sep 17 00:00:00 2001 From: Reinhold Gschweicher Date: Mon, 29 Nov 2021 23:36:56 +0100 Subject: [PATCH 067/188] PineTimeStyle: remove include and add forward declare Remove unused `ScreenList.h` include and add a forward declaration for the `MotionController` class. --- src/displayapp/screens/PineTimeStyle.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/displayapp/screens/PineTimeStyle.h b/src/displayapp/screens/PineTimeStyle.h index f8c7c8b4..f86f4c5a 100644 --- a/src/displayapp/screens/PineTimeStyle.h +++ b/src/displayapp/screens/PineTimeStyle.h @@ -5,7 +5,6 @@ #include #include #include "displayapp/screens/Screen.h" -#include "displayapp/screens/ScreenList.h" #include "components/datetime/DateTimeController.h" namespace Pinetime { @@ -15,6 +14,7 @@ namespace Pinetime { class Ble; class NotificationManager; class HeartRateController; + class MotionController; } namespace Applications { From e8db73e0e71c3a0b48beb185949e64fcdc79c066 Mon Sep 17 00:00:00 2001 From: Reinhold Gschweicher Date: Mon, 29 Nov 2021 22:39:33 +0100 Subject: [PATCH 068/188] WatchFaceAnalog: remove unused ScreenList, add needed includes Remove unused `ScreenList.h` include. For `std::abs()` add needed include ``. For the forward declared Settings-Controller add the `Settings.h` include to the cpp file. --- src/displayapp/screens/WatchFaceAnalog.cpp | 2 ++ src/displayapp/screens/WatchFaceAnalog.h | 1 - 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/src/displayapp/screens/WatchFaceAnalog.cpp b/src/displayapp/screens/WatchFaceAnalog.cpp index 4540c1a8..bc720ecb 100644 --- a/src/displayapp/screens/WatchFaceAnalog.cpp +++ b/src/displayapp/screens/WatchFaceAnalog.cpp @@ -1,9 +1,11 @@ #include "displayapp/screens/WatchFaceAnalog.h" +#include #include #include "displayapp/screens/BatteryIcon.h" #include "displayapp/screens/BleIcon.h" #include "displayapp/screens/Symbols.h" #include "displayapp/screens/NotificationIcon.h" +#include "components/settings/Settings.h" LV_IMG_DECLARE(bg_clock); diff --git a/src/displayapp/screens/WatchFaceAnalog.h b/src/displayapp/screens/WatchFaceAnalog.h index ca0462a6..a18eb299 100644 --- a/src/displayapp/screens/WatchFaceAnalog.h +++ b/src/displayapp/screens/WatchFaceAnalog.h @@ -5,7 +5,6 @@ #include #include #include "displayapp/screens/Screen.h" -#include "displayapp/screens/ScreenList.h" #include "components/datetime/DateTimeController.h" #include "components/battery/BatteryController.h" #include "components/ble/BleController.h" From 0705b746569cc49f01cceb4832a0cd0bc0afe36c Mon Sep 17 00:00:00 2001 From: Reinhold Gschweicher Date: Sun, 21 Nov 2021 22:48:28 +0100 Subject: [PATCH 069/188] WatchFaceDigital: add missing include to Settings.h --- src/displayapp/screens/WatchFaceDigital.cpp | 1 + 1 file changed, 1 insertion(+) diff --git a/src/displayapp/screens/WatchFaceDigital.cpp b/src/displayapp/screens/WatchFaceDigital.cpp index 2894812c..87695793 100644 --- a/src/displayapp/screens/WatchFaceDigital.cpp +++ b/src/displayapp/screens/WatchFaceDigital.cpp @@ -12,6 +12,7 @@ #include "components/ble/NotificationManager.h" #include "components/heartrate/HeartRateController.h" #include "components/motion/MotionController.h" +#include "components/settings/Settings.h" using namespace Pinetime::Applications::Screens; WatchFaceDigital::WatchFaceDigital(DisplayApp* app, From fe6e4bea8cff2d811c24cfc16aa5580bb9a13efb Mon Sep 17 00:00:00 2001 From: Reinhold Gschweicher Date: Sun, 21 Nov 2021 22:50:23 +0100 Subject: [PATCH 070/188] WatchFaceDigital: remove unused include for ScreenList.h --- src/displayapp/screens/WatchFaceDigital.h | 1 - 1 file changed, 1 deletion(-) diff --git a/src/displayapp/screens/WatchFaceDigital.h b/src/displayapp/screens/WatchFaceDigital.h index 7134efb6..627154c8 100644 --- a/src/displayapp/screens/WatchFaceDigital.h +++ b/src/displayapp/screens/WatchFaceDigital.h @@ -5,7 +5,6 @@ #include #include #include "displayapp/screens/Screen.h" -#include "displayapp/screens/ScreenList.h" #include "components/datetime/DateTimeController.h" namespace Pinetime { From 88b017d9b193fac301e8fd831e09736774e5061d Mon Sep 17 00:00:00 2001 From: Reinhold Gschweicher Date: Fri, 19 Nov 2021 21:15:35 +0100 Subject: [PATCH 071/188] Settings: remove unused driver include --- src/components/settings/Settings.h | 1 - 1 file changed, 1 deletion(-) diff --git a/src/components/settings/Settings.h b/src/components/settings/Settings.h index 871ff3b6..2d7973d8 100644 --- a/src/components/settings/Settings.h +++ b/src/components/settings/Settings.h @@ -4,7 +4,6 @@ #include "components/datetime/DateTimeController.h" #include "components/brightness/BrightnessController.h" #include "components/fs/FS.h" -#include "drivers/Cst816s.h" namespace Pinetime { namespace Controllers { From a17d8bd566ae7686b9373dc3f2ab218d3a191630 Mon Sep 17 00:00:00 2001 From: Reinhold Gschweicher Date: Sun, 28 Nov 2021 21:47:19 +0100 Subject: [PATCH 072/188] Metronome: add missing include for Screen.h --- src/displayapp/screens/Metronome.h | 1 + 1 file changed, 1 insertion(+) diff --git a/src/displayapp/screens/Metronome.h b/src/displayapp/screens/Metronome.h index f3a84dc8..373c884c 100644 --- a/src/displayapp/screens/Metronome.h +++ b/src/displayapp/screens/Metronome.h @@ -2,6 +2,7 @@ #include "systemtask/SystemTask.h" #include "components/motor/MotorController.h" +#include "displayapp/screens/Screen.h" namespace Pinetime { namespace Applications { From 054a99cf6c6a8eff181724ceebd5cd3539c62743 Mon Sep 17 00:00:00 2001 From: Reinhold Gschweicher Date: Sat, 30 Oct 2021 22:25:42 +0200 Subject: [PATCH 073/188] Paddle: add a little randomization in the dy speed To make the game a bit more challenging an less predictable add a little bit of randomness to the `dy` value. When hitting the right wall add a random number (one of [-1, 0, 1]) to the `dy` value. To keep the difficulty level managable limit the dy value to be in the range from -5 to 5. --- src/displayapp/screens/Paddle.cpp | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/src/displayapp/screens/Paddle.cpp b/src/displayapp/screens/Paddle.cpp index aa3420dc..608eb644 100644 --- a/src/displayapp/screens/Paddle.cpp +++ b/src/displayapp/screens/Paddle.cpp @@ -2,6 +2,8 @@ #include "displayapp/DisplayApp.h" #include "displayapp/LittleVgl.h" +#include // for rand() + using namespace Pinetime::Applications::Screens; Paddle::Paddle(Pinetime::Applications::DisplayApp* app, Pinetime::Components::LittleVgl& lvgl) : Screen(app), lvgl {lvgl} { @@ -50,6 +52,13 @@ void Paddle::Refresh() { // checks if it has touched the side (right side) if (ballX >= LV_HOR_RES - ballSize - 1) { dx *= -1; + dy += rand() % 3 - 1; // add a little randomization in wall bounce direction, one of [-1, 0, 1] + if (dy > 5) { // limit dy to be in range [-5 to 5] + dy = 5; + } + if (dy < -5) { + dy = -5; + } } // checks if it is in the position of the paddle From b8dfad40bbdebea1bfde1fc267b245cfaf68be8a Mon Sep 17 00:00:00 2001 From: Steveis Date: Sat, 23 Oct 2021 08:21:55 +0100 Subject: [PATCH 074/188] WatchFaceAnalog : move notification icon Standardise notification icon to display in top left. --- src/displayapp/screens/WatchFaceAnalog.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/displayapp/screens/WatchFaceAnalog.cpp b/src/displayapp/screens/WatchFaceAnalog.cpp index bc720ecb..f027a744 100644 --- a/src/displayapp/screens/WatchFaceAnalog.cpp +++ b/src/displayapp/screens/WatchFaceAnalog.cpp @@ -75,7 +75,7 @@ WatchFaceAnalog::WatchFaceAnalog(Pinetime::Applications::DisplayApp* app, notificationIcon = lv_label_create(lv_scr_act(), NULL); lv_obj_set_style_local_text_color(notificationIcon, LV_LABEL_PART_MAIN, LV_STATE_DEFAULT, lv_color_hex(0x00FF00)); lv_label_set_text(notificationIcon, NotificationIcon::GetIcon(false)); - lv_obj_align(notificationIcon, NULL, LV_ALIGN_IN_BOTTOM_LEFT, 0, 0); + lv_obj_align(notificationIcon, NULL, LV_ALIGN_IN_TOP_LEFT, 0, 0); // Date - Day / Week day From 85a25302bfac215f9ec7b993f6a2c21a20ee223b Mon Sep 17 00:00:00 2001 From: Reinhold Gschweicher Date: Tue, 30 Nov 2021 22:29:00 +0100 Subject: [PATCH 075/188] Clock: add missing Settings include Add missing include in `Clock.cpp` for `Settings.h`. The Settings class is forward declared in the header file, but it needs to be included in the cpp file. --- src/displayapp/screens/Clock.cpp | 1 + 1 file changed, 1 insertion(+) diff --git a/src/displayapp/screens/Clock.cpp b/src/displayapp/screens/Clock.cpp index 71f01b93..96d8e5b0 100644 --- a/src/displayapp/screens/Clock.cpp +++ b/src/displayapp/screens/Clock.cpp @@ -6,6 +6,7 @@ #include "components/motion/MotionController.h" #include "components/ble/BleController.h" #include "components/ble/NotificationManager.h" +#include "components/settings/Settings.h" #include "displayapp/DisplayApp.h" #include "displayapp/screens/WatchFaceDigital.h" #include "displayapp/screens/WatchFaceAnalog.h" From 6ba28786055e0538cf0b7631cd33b36f02d46deb Mon Sep 17 00:00:00 2001 From: Avamander Date: Mon, 17 May 2021 13:57:21 +0300 Subject: [PATCH 076/188] Added QCBOR dependency --- src/CMakeLists.txt | 30 ++++++++++++++++++++++++++++-- src/libs/QCBOR | 1 + 2 files changed, 29 insertions(+), 2 deletions(-) create mode 160000 src/libs/QCBOR diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index e727b2b0..4ab303d2 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -357,6 +357,14 @@ set(LVGL_SRC libs/lvgl/src/lv_widgets/lv_win.c ) +set(QCBOR_SRC + libs/QCBOR/src/ieee754.c + libs/QCBOR/src/qcbor_decode.c + libs/QCBOR/src/qcbor_encode.c + libs/QCBOR/src/qcbor_err_to_str.c + libs/QCBOR/src/UsefulBuf.c + ) + list(APPEND IMAGE_FILES displayapp/icons/battery/os_battery_error.c displayapp/icons/battery/os_battery_100.c @@ -835,6 +843,24 @@ target_compile_options(lvgl PRIVATE $<$: -MP -MD -x assembler-with-cpp> ) +# QCBOR +add_library(QCBOR STATIC ${QCBOR_SRC}) +target_include_directories(QCBOR SYSTEM PUBLIC libs/QCBOR/inc) +# This is required with the current configuration +target_compile_definitions(QCBOR PUBLIC QCBOR_DISABLE_FLOAT_HW_USE) +# These are for space-saving +target_compile_definitions(QCBOR PUBLIC QCBOR_DISABLE_PREFERRED_FLOAT) +target_compile_definitions(QCBOR PUBLIC QCBOR_DISABLE_EXP_AND_MANTISSA) +target_compile_definitions(QCBOR PUBLIC QCBOR_DISABLE_INDEFINITE_LENGTH_STRINGS) +target_compile_definitions(QCBOR PUBLIC QCBOR_DISABLE_INDEFINITE_LENGTH_ARRAYS) +target_compile_definitions(QCBOR PUBLIC QCBOR_DISABLE_UNCOMMON_TAGS) +set_target_properties(QCBOR PROPERTIES LINKER_LANGUAGE C) +target_compile_options(QCBOR PRIVATE + $<$,$>: ${COMMON_FLAGS} -O0 -g3> + $<$,$>: ${COMMON_FLAGS} -O3> + $<$: -MP -MD -x assembler-with-cpp> + ) + # LITTLEFS_SRC add_library(littlefs STATIC ${LITTLEFS_SRC}) target_include_directories(littlefs SYSTEM PUBLIC . ../) @@ -853,7 +879,7 @@ set(EXECUTABLE_FILE_NAME ${EXECUTABLE_NAME}-${pinetime_VERSION_MAJOR}.${pinetime 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 littlefs) +target_link_libraries(${EXECUTABLE_NAME} nimble nrf-sdk lvgl littlefs QCBOR) target_compile_options(${EXECUTABLE_NAME} PUBLIC $<$,$>: ${COMMON_FLAGS} -Og -g3> $<$,$>: ${COMMON_FLAGS} -Os> @@ -882,7 +908,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 littlefs) +target_link_libraries(${EXECUTABLE_MCUBOOT_NAME} nimble nrf-sdk lvgl littlefs QCBOR) set_target_properties(${EXECUTABLE_MCUBOOT_NAME} PROPERTIES OUTPUT_NAME ${EXECUTABLE_MCUBOOT_FILE_NAME}) target_compile_options(${EXECUTABLE_MCUBOOT_NAME} PUBLIC $<$,$>: ${COMMON_FLAGS} -Og -g3> diff --git a/src/libs/QCBOR b/src/libs/QCBOR new file mode 160000 index 00000000..9e2f7080 --- /dev/null +++ b/src/libs/QCBOR @@ -0,0 +1 @@ +Subproject commit 9e2f70804393823cc6d16f9f1035ef7223faca04 From bda96dc595aecb56739cc02de7e7d2d825927b7f Mon Sep 17 00:00:00 2001 From: Avamander Date: Thu, 10 Jun 2021 00:44:49 +0300 Subject: [PATCH 077/188] Initial Weather service skeleton --- .gitmodules | 3 + src/components/ble/NimbleController.cpp | 2 + src/components/ble/NimbleController.h | 2 + src/components/ble/weather/WeatherData.h | 338 ++++++++++++++++++ src/components/ble/weather/WeatherService.cpp | 208 +++++++++++ src/components/ble/weather/WeatherService.h | 139 +++++++ src/displayapp/screens/Weather.cpp | 246 +++++++++++++ src/displayapp/screens/Weather.h | 54 +++ 8 files changed, 992 insertions(+) create mode 100644 src/components/ble/weather/WeatherData.h create mode 100644 src/components/ble/weather/WeatherService.cpp create mode 100644 src/components/ble/weather/WeatherService.h create mode 100644 src/displayapp/screens/Weather.cpp create mode 100644 src/displayapp/screens/Weather.h diff --git a/.gitmodules b/.gitmodules index 815fc022..8d302ae7 100644 --- a/.gitmodules +++ b/.gitmodules @@ -4,3 +4,6 @@ [submodule "src/libs/littlefs"] path = src/libs/littlefs url = https://github.com/littlefs-project/littlefs.git +[submodule "src/libs/QCBOR"] + path = src/libs/QCBOR + url = https://github.com/laurencelundblade/QCBOR.git diff --git a/src/components/ble/NimbleController.cpp b/src/components/ble/NimbleController.cpp index 43a8b0d6..9ef2d057 100644 --- a/src/components/ble/NimbleController.cpp +++ b/src/components/ble/NimbleController.cpp @@ -36,6 +36,7 @@ NimbleController::NimbleController(Pinetime::System::SystemTask& systemTask, alertNotificationClient {systemTask, notificationManager}, currentTimeService {dateTimeController}, musicService {systemTask}, + weatherService {systemTask, dateTimeController}, navService {systemTask}, batteryInformationService {batteryController}, immediateAlertService {systemTask, notificationManager}, @@ -77,6 +78,7 @@ void NimbleController::Init() { currentTimeClient.Init(); currentTimeService.Init(); musicService.Init(); + weatherService.Init(); navService.Init(); anService.Init(); dfuService.Init(); diff --git a/src/components/ble/NimbleController.h b/src/components/ble/NimbleController.h index 895b87f2..a21cbe81 100644 --- a/src/components/ble/NimbleController.h +++ b/src/components/ble/NimbleController.h @@ -20,6 +20,7 @@ #include "components/ble/ServiceDiscovery.h" #include "components/ble/HeartRateService.h" #include "components/ble/MotionService.h" +#include "components/ble/weather/WeatherService.h" namespace Pinetime { namespace Drivers { @@ -93,6 +94,7 @@ namespace Pinetime { AlertNotificationClient alertNotificationClient; CurrentTimeService currentTimeService; MusicService musicService; + WeatherService weatherService; NavigationService navService; BatteryInformationService batteryInformationService; ImmediateAlertService immediateAlertService; diff --git a/src/components/ble/weather/WeatherData.h b/src/components/ble/weather/WeatherData.h new file mode 100644 index 00000000..c1d53f4e --- /dev/null +++ b/src/components/ble/weather/WeatherData.h @@ -0,0 +1,338 @@ +/* Copyright (C) 2021 Avamander + + This file is part of InfiniTime. + + InfiniTime is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published + by the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + InfiniTime is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . +*/ +#pragma once + +/** + * Different weather events, weather data structures used by {@link WeatherService.h} + * + * + * Implemented based on and other material: + * https://en.wikipedia.org/wiki/METAR + * https://www.weather.gov/jetstream/obscurationtypes + * http://www.faraim.org/aim/aim-4-03-14-493.html + */ + +namespace Pinetime { + namespace Controllers { + class WeatherData { + public: + /** + * Visibility obscuration types + */ + enum class obscurationtype { + /** No obscuration */ + None = 0, + /** Water particles suspended in the air; low visibility; does not fall */ + Fog = 1, + /** Extremely small, dry particles in the air; invisible to the eye; opalescent */ + Haze = 2, + /** Small fire-created particles suspended in the air */ + Smoke = 3, + /** Fine rock powder, from for example volcanoes */ + Ash = 4, + /** Fine particles of earth suspended in the air by the wind */ + Dust = 5, + /** Fine particles of sand suspended in the air by the wind */ + Sand = 6, + /** Water particles suspended in the air; low-ish visibility; temperature is near dewpoint */ + Mist = 7, + }; + + /** + * Types of precipitation + */ + enum class precipitationtype { + /** + * No precipitation + * + * Theoretically we could just _not_ send the event, but then + * how do we differentiate between no precipitation and + * no information about precipitation + */ + None = 0, + /** Drops larger than a drizzle; also widely separated drizzle */ + Rain = 1, + /** Fairly uniform rain consisting of fine drops */ + Drizzle = 2, + /** Rain that freezes upon contact with objects and ground */ + FreezingRain = 3, + /** Rain + hail; ice pellets; small translucent frozen raindrops */ + Sleet = 4, + /** Larger ice pellets; falling separately or in irregular clumps */ + Hail = 5, + /** Hail with smaller grains of ice; mini-snowballs */ + SmallHail = 6, + /** Snow... */ + Snow = 7, + /** Frozen drizzle; very small snow crystals */ + SnowGrains = 8, + /** Needles; columns or plates of ice. Sometimes described as "diamond dust". In very cold regions */ + IceCrystals = 9 + }; + + /** + * These are special events that can "enhance" the "experience" of existing weather events + */ + enum class specialtype { + /** Strong wind with a sudden onset that lasts at least a minute */ + Squall = 0, + /** Series of waves in a water body caused by the displacement of a large volume of water */ + Tsunami = 1, + /** Violent; rotating column of air */ + Tornado = 2, + /** Unplanned; unwanted; uncontrolled fire in an area */ + Fire = 3, + /** Thunder and/or lightning */ + Thunder = 4, + }; + + /** + * These are used for weather timeline manipulation + * that isn't just adding to the stack of weather events + */ + enum class controlcodes { + /** How much is stored already */ + GetLength = 0, + /** This wipes the entire timeline */ + DelTimeline = 1, + /** There's a currently valid timeline event with the given type */ + HasValidEvent = 3 + }; + + /** + * Events have types + * then they're easier to parse after sending them over the air + */ + enum class eventtype { + /** @see obscuration */ + Obscuration = 0, + /** @see precipitation */ + Precipitation = 1, + /** @see wind */ + Wind = 2, + /** @see temperature */ + Temperature = 3, + /** @see airquality */ + AirQuality = 4, + /** @see special */ + Special = 5, + /** @see pressure */ + Pressure = 6, + /** @see location */ + Location = 7, + /** @see cloud */ + Clouds = 8, + }; + + /** + * Valid event query + */ + class valideventquery { + public: + static constexpr controlcodes code = controlcodes::HasValidEvent; + eventtype eventType; + }; + + /** The header used for further parsing */ + class timelineheader { + public: + /** UNIX timestamp */ + uint64_t timestamp; + /** + * Time in seconds until the event expires + * + * 32 bits ought to be enough for everyone + * + * If there's a newer event of the same type then it overrides this one, even if it hasn't expired + */ + uint32_t expires; + /** + * What type of weather-related event + */ + eventtype eventType; + }; + + /** Specifies how cloudiness is stored */ + class clouds : public timelineheader { + public: + /** Cloud coverage in percentage, 0-100% */ + uint8_t amount; + }; + + /** Specifies how obscuration is stored */ + class obscuration : public timelineheader { + public: + /** Type */ + obscurationtype type; + /** Visibility distance in meters */ + uint8_t amount; + }; + + /** Specifies how precipitation is stored */ + class precipitation : public timelineheader { + public: + /** Type */ + precipitationtype type; + /** How much is it going to rain? In millimeters */ + uint8_t amount; + }; + + /** + * How wind speed is stored + * + * In order to represent bursts of wind instead of constant wind, + * you have minimum and maximum speeds. + * + * As direction can fluctuate wildly and some watchfaces might wish to display it nicely, + * we're following the aerospace industry weather report option of specifying a range. + */ + class wind : public timelineheader { + public: + /** Meters per second */ + uint8_t speedMin; + /** Meters per second */ + uint8_t speedMax; + /** Unitless direction between 0-255; approximately 1 unit per 0.71 degrees */ + uint8_t directionMin; + /** Unitless direction between 0-255; approximately 1 unit per 0.71 degrees */ + uint8_t directionMax; + }; + + /** + * How temperature is stored + * + * As it's annoying to figure out the dewpoint on the watch, + * please send it from the companion + * + * We don't do floats, microdegrees are not useful. Make sure to multiply. + */ + class temperature : public timelineheader { + public: + /** Temperature °C but multiplied by 100 (e.g. -12.50°C becomes -1250) */ + int16_t temperature; + /** Dewpoint °C but multiplied by 100 (e.g. -12.50°C becomes -1250) */ + int16_t dewPoint; + }; + + /** + * How location info is stored + * + * This can be mostly static with long expiration, + * as it usually is, but it could change during a trip for ex. + * so we allow changing it dynamically. + * + * Location info can be for some kind of map watchface + * or daylight calculations, should those be required. + * + */ + class location : public timelineheader { + public: + /** Location name */ + std::string location; + /** Altitude relative to sea level in meters */ + int16_t altitude; + /** Latitude, EPSG:3857 (Google Maps, Openstreetmaps datum) */ + int32_t latitude; + /** Longitude, EPSG:3857 (Google Maps, Openstreetmaps datum) */ + int32_t longitude; + }; + + /** + * How humidity is stored + */ + class humidity : public timelineheader { + public: + /** Relative humidity, 0-100% */ + uint8_t humidity; + }; + + /** + * How air pressure is stored + */ + class pressure : public timelineheader { + public: + /** Air pressure in hectopascals (hPa) */ + int16_t pressure; + }; + + /** + * How special events are stored + */ + class special : public timelineheader { + public: + /** Special event's type */ + specialtype type; + }; + + /** + * How air quality is stored + * + * These events are a bit more complex because the topic is not simple, + * the intention is to heavy-lift the annoying preprocessing from the watch + * this allows watchface or watchapp makers to generate accurate alerts and graphics + * + * If this needs further enforced standardization, pull requests are welcome + */ + class airquality : public timelineheader { + public: + /** + * The name of the pollution + * + * for the sake of better compatibility with watchapps + * that might want to use this data for say visuals + * don't localize the name. + * + * Ideally watchapp itself localizes the name, if it's at all needed. + * + * E.g. + * For generic ones use "PM0.1", "PM5", "PM10" + * For chemical compounds use the molecular formula e.g. "NO2", "CO2", "O3" + * For pollen use the genus, e.g. "Betula" for birch or "Alternaria" for that mold's spores + */ + std::string polluter; + /** + * Amount of the pollution in SI units, + * otherwise it's going to be difficult to create UI, alerts + * and so on and for. + * + * See more: + * https://ec.europa.eu/environment/air/quality/standards.htm + * http://www.ourair.org/wp-content/uploads/2012-aaqs2.pdf + * + * Example units: + * count/m³ for pollen + * µgC/m³ for micrograms of organic carbon + * µg/m³ sulfates, PM0.1, PM1, PM2, PM10 and so on, dust + * mg/m³ CO2, CO + * ng/m³ for heavy metals + * + * List is not comprehensive, should be improved. + * The current ones are what watchapps assume. + * + * Note: ppb and ppm to concentration should be calculated on the companion, using + * the correct formula (taking into account temperature and air pressure) + * + * Note2: The amount is off by times 100, for two decimal places of precision. + * E.g. 54.32µg/m³ is 5432 + * + */ + uint32_t amount; + }; + }; + } +} \ No newline at end of file diff --git a/src/components/ble/weather/WeatherService.cpp b/src/components/ble/weather/WeatherService.cpp new file mode 100644 index 00000000..006fc6c1 --- /dev/null +++ b/src/components/ble/weather/WeatherService.cpp @@ -0,0 +1,208 @@ +/* Copyright (C) 2021 Avamander + + This file is part of InfiniTime. + + InfiniTime is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published + by the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + InfiniTime is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . +*/ +#include +#include "WeatherService.h" +#include "libs/QCBOR/inc/qcbor/qcbor.h" +#include "systemtask/SystemTask.h" + +int WeatherCallback(uint16_t conn_handle, uint16_t attr_handle, struct ble_gatt_access_ctxt* ctxt, void* arg) { + return static_cast(arg)->OnCommand(conn_handle, attr_handle, ctxt); +} + +namespace Pinetime { + namespace Controllers { + WeatherService::WeatherService(System::SystemTask& system, DateTime& dateTimeController) + : system(system), dateTimeController(dateTimeController) { + } + + void WeatherService::Init() { + uint8_t res = 0; + res = ble_gatts_count_cfg(serviceDefinition); + ASSERT(res == 0) + + res = ble_gatts_add_svcs(serviceDefinition); + ASSERT(res == 0); + } + + int WeatherService::OnCommand(uint16_t conn_handle, uint16_t attr_handle, struct ble_gatt_access_ctxt* ctxt) { + if (ctxt->op == BLE_GATT_ACCESS_OP_WRITE_CHR) { + getCurrentPressure(); + tidyTimeline(); + getTimelineLength(); + const auto packetLen = OS_MBUF_PKTLEN(ctxt->om); + if (packetLen <= 0) { + return BLE_ATT_ERR_INVALID_ATTR_VALUE_LEN; + } + // Decode + QCBORDecodeContext decodeContext; + UsefulBufC EncodedCBOR; + // TODO: Check uninit fine + QCBORDecode_Init(&decodeContext, EncodedCBOR, QCBOR_DECODE_MODE_NORMAL); + QCBORDecode_EnterMap(&decodeContext, nullptr); + WeatherData::timelineheader timelineHeader {}; + // Always encodes to the smallest number of bytes based on the value + QCBORDecode_GetInt64InMapSZ(&decodeContext, "Timestamp", reinterpret_cast(&(timelineHeader.timestamp))); + QCBORDecode_GetInt64InMapSZ(&decodeContext, "Expires", reinterpret_cast(&(timelineHeader.expires))); + QCBORDecode_GetInt64InMapSZ(&decodeContext, "EventType", reinterpret_cast(&(timelineHeader.eventType))); + switch (timelineHeader.eventType) { + // TODO: Populate + case WeatherData::eventtype::AirQuality: { + break; + } + case WeatherData::eventtype::Obscuration: { + break; + } + case WeatherData::eventtype::Precipitation: { + break; + } + case WeatherData::eventtype::Wind: { + break; + } + case WeatherData::eventtype::Temperature: { + break; + } + case WeatherData::eventtype::Special: { + break; + } + case WeatherData::eventtype::Pressure: { + break; + } + case WeatherData::eventtype::Location: { + break; + } + case WeatherData::eventtype::Clouds: { + break; + } + default: { + break; + } + } + QCBORDecode_ExitMap(&decodeContext); + + auto uErr = QCBORDecode_Finish(&decodeContext); + if (uErr != 0) { + return BLE_ATT_ERR_INSUFFICIENT_RES; + } + } else if (ctxt->op == BLE_GATT_ACCESS_OP_READ_CHR) { + // TODO: Detect control messages + + // Encode + uint8_t buffer[64]; + QCBOREncodeContext encodeContext; + QCBOREncode_Init(&encodeContext, UsefulBuf_FROM_BYTE_ARRAY(buffer)); + QCBOREncode_OpenMap(&encodeContext); + QCBOREncode_AddTextToMap(&encodeContext, "test", UsefulBuf_FROM_SZ_LITERAL("test")); + QCBOREncode_AddInt64ToMap(&encodeContext, "test", 1ul); + QCBOREncode_CloseMap(&encodeContext); + + UsefulBufC encodedEvent; + auto uErr = QCBOREncode_Finish(&encodeContext, &encodedEvent); + if (uErr != 0) { + return BLE_ATT_ERR_INSUFFICIENT_RES; + } + auto res = os_mbuf_append(ctxt->om, &buffer, sizeof(buffer)); + if (res == 0) { + return BLE_ATT_ERR_INSUFFICIENT_RES; + } + + return 0; + } + return 0; + } + + WeatherData::location WeatherService::getCurrentLocation() const { + return WeatherData::location(); + } + WeatherData::clouds WeatherService::getCurrentClouds() const { + return WeatherData::clouds(); + } + WeatherData::obscuration WeatherService::getCurrentObscuration() const { + return WeatherData::obscuration(); + } + WeatherData::precipitation WeatherService::getCurrentPrecipitation() const { + return WeatherData::precipitation(); + } + WeatherData::wind WeatherService::getCurrentWind() const { + return WeatherData::wind(); + } + WeatherData::temperature WeatherService::getCurrentTemperature() const { + return WeatherData::temperature(); + } + WeatherData::humidity WeatherService::getCurrentHumidity() const { + return WeatherData::humidity(); + } + WeatherData::pressure WeatherService::getCurrentPressure() const { + uint64_t currentTimestamp = getCurrentUNIXTimestamp(); + for (auto&& header : timeline) { + if (header->eventType == WeatherData::eventtype::Pressure && header->timestamp + header->expires <= currentTimestamp) { + return WeatherData::pressure(); + } + } + return WeatherData::pressure(); + } + + WeatherData::airquality WeatherService::getCurrentQuality() const { + return WeatherData::airquality(); + } + + size_t WeatherService::getTimelineLength() const { + return timeline.size(); + } + + bool WeatherService::addEventToTimeline(std::unique_ptr event) { + if (timeline.size() == timeline.max_size()) { + return false; + } + + timeline.push_back(std::move(event)); + return true; + } + + bool WeatherService::hasTimelineEventOfType(const WeatherData::eventtype type) const { + uint64_t currentTimestamp = getCurrentUNIXTimestamp(); + for (auto&& header : timeline) { + if (header->eventType == type && header->timestamp + header->expires <= currentTimestamp) { + // TODO: Check if its currently valid + return true; + } + } + return false; + } + + void WeatherService::tidyTimeline() { + uint64_t timeCurrent = 0; + timeline.erase(std::remove_if(std::begin(timeline), + std::end(timeline), + [&](std::unique_ptr const& header) { + return header->timestamp + header->expires > timeCurrent; + }), + std::end(timeline)); + + std::sort(std::begin(timeline), std::end(timeline), compareTimelineEvents); + } + + bool WeatherService::compareTimelineEvents(const std::unique_ptr& first, + const std::unique_ptr& second) { + return first->timestamp > second->timestamp; + } + + uint64_t WeatherService::getCurrentUNIXTimestamp() const { + return std::chrono::duration_cast(dateTimeController.CurrentDateTime().time_since_epoch()).count(); + } + } +} diff --git a/src/components/ble/weather/WeatherService.h b/src/components/ble/weather/WeatherService.h new file mode 100644 index 00000000..ef99db86 --- /dev/null +++ b/src/components/ble/weather/WeatherService.h @@ -0,0 +1,139 @@ +/* Copyright (C) 2021 Avamander + + This file is part of InfiniTime. + + InfiniTime is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published + by the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + InfiniTime is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . +*/ +#pragma once + +#include +#include +#include +#include + +#define min // workaround: nimble's min/max macros conflict with libstdc++ +#define max +#include +#include +#undef max +#undef min + +#include "WeatherData.h" +#include + +// 00030000-78fc-48fe-8e23-433b3a1942d0 +#define WEATHER_SERVICE_UUID_BASE \ + { 0xd0, 0x42, 0x19, 0x3a, 0x3b, 0x43, 0x23, 0x8e, 0xfe, 0x48, 0xfc, 0x78, 0x00, 0x00, 0x03, 0x00 } +#define WEATHER_SERVICE_CHAR_UUID(y, x) \ + { 0xd0, 0x42, 0x19, 0x3a, 0x3b, 0x43, 0x23, 0x8e, 0xfe, 0x48, 0xfc, 0x78, (x), (y), 0x03, 0x00 } + +int WeatherCallback(uint16_t conn_handle, uint16_t attr_handle, struct ble_gatt_access_ctxt* ctxt, void* arg); + +namespace Pinetime { + namespace System { + class SystemTask; + } + namespace Controllers { + + class WeatherService { + public: + explicit WeatherService(System::SystemTask& system, DateTime& dateTimeController); + + void Init(); + + int OnCommand(uint16_t conn_handle, uint16_t attr_handle, struct ble_gatt_access_ctxt* ctxt); + + /* + * Helper functions for quick access to currently valid data + */ + WeatherData::location getCurrentLocation() const; + WeatherData::clouds getCurrentClouds() const; + WeatherData::obscuration getCurrentObscuration() const; + WeatherData::precipitation getCurrentPrecipitation() const; + WeatherData::wind getCurrentWind() const; + WeatherData::temperature getCurrentTemperature() const; + WeatherData::humidity getCurrentHumidity() const; + WeatherData::pressure getCurrentPressure() const; + WeatherData::airquality getCurrentQuality() const; + + /* + * Management functions + */ + /** + * Adds an event to the timeline + * @return + */ + bool addEventToTimeline(std::unique_ptr event); + /** + * Gets the current timeline length + */ + size_t getTimelineLength() const; + /** + * Checks if an event of a certain type exists in the timeline + * @return + */ + bool hasTimelineEventOfType(WeatherData::eventtype type) const; + + private: + ble_uuid128_t msUuid {.u = {.type = BLE_UUID_TYPE_128}, .value = WEATHER_SERVICE_UUID_BASE}; + + /** + * Just write timeline data here + */ + ble_uuid128_t wDataCharUuid {.u = {.type = BLE_UUID_TYPE_128}, .value = WEATHER_SERVICE_CHAR_UUID(0x00, 0x01)}; + /** + * This doesn't take timeline data + * but provides some control over it + */ + ble_uuid128_t wControlCharUuid {.u = {.type = BLE_UUID_TYPE_128}, .value = WEATHER_SERVICE_CHAR_UUID(0x00, 0x02)}; + + const struct ble_gatt_chr_def characteristicDefinition[2] = {{.uuid = reinterpret_cast(&wDataCharUuid), + .access_cb = WeatherCallback, + .arg = this, + .flags = BLE_GATT_CHR_F_NOTIFY, + .val_handle = &eventHandle}, + {.uuid = reinterpret_cast(&wControlCharUuid), + .access_cb = WeatherCallback, + .arg = this, + .flags = BLE_GATT_CHR_F_WRITE | BLE_GATT_CHR_F_READ}}; + const struct ble_gatt_svc_def serviceDefinition[2] = { + {.type = BLE_GATT_SVC_TYPE_PRIMARY, .uuid = reinterpret_cast(&msUuid), .characteristics = characteristicDefinition}, + {0}}; + + uint16_t eventHandle {}; + + Pinetime::System::SystemTask& system; + Pinetime::Controllers::DateTime& dateTimeController; + + std::vector> timeline; + + /** + * Cleans up the timeline of expired events + * @return result code + */ + void tidyTimeline(); + + /** + * Compares two timeline events + */ + static bool compareTimelineEvents(const std::unique_ptr& first, + const std::unique_ptr& second); + + /** + * + */ + uint64_t getCurrentUNIXTimestamp() const; + }; + } +} diff --git a/src/displayapp/screens/Weather.cpp b/src/displayapp/screens/Weather.cpp new file mode 100644 index 00000000..014761bf --- /dev/null +++ b/src/displayapp/screens/Weather.cpp @@ -0,0 +1,246 @@ +#include "Weather.h" +#include +#include "../DisplayApp.h" +#include "Label.h" +#include "Version.h" +#include "components/battery/BatteryController.h" +#include "components/ble/BleController.h" +#include "components/brightness/BrightnessController.h" +#include "components/datetime/DateTimeController.h" +#include "drivers/Watchdog.h" +#include "components/ble/weather/WeatherData.h" + +using namespace Pinetime::Applications::Screens; + +Weather::Weather(Pinetime::Applications::DisplayApp* app, + Pinetime::Controllers::DateTime& dateTimeController, + Pinetime::Controllers::Battery& batteryController, + Pinetime::Controllers::BrightnessController& brightnessController, + Pinetime::Controllers::Ble& bleController, + Pinetime::Drivers::WatchdogView& watchdog) + : Screen(app), + dateTimeController {dateTimeController}, + batteryController {batteryController}, + brightnessController {brightnessController}, + bleController {bleController}, + watchdog {watchdog}, + screens {app, + 0, + {[this]() -> std::unique_ptr { + return CreateScreen1(); + }, + [this]() -> std::unique_ptr { + return CreateScreen2(); + }, + [this]() -> std::unique_ptr { + return CreateScreen3(); + }, + [this]() -> std::unique_ptr { + return CreateScreen4(); + }, + [this]() -> std::unique_ptr { + return CreateScreen5(); + }}, + Screens::ScreenListModes::UpDown} { +} + +Weather::~Weather() { + lv_obj_clean(lv_scr_act()); +} + +bool Weather::Refresh() { + if (running) { + screens.Refresh(); + } + return running; +} + +bool Weather::OnButtonPushed() { + running = false; + return true; +} + +bool Weather::OnTouchEvent(Pinetime::Applications::TouchEvents event) { + return screens.OnTouchEvent(event); +} + +std::unique_ptr Weather::CreateScreen1() { + lv_obj_t* label = lv_label_create(lv_scr_act(), nullptr); + lv_label_set_recolor(label, true); + lv_label_set_text_fmt(label, + "#FFFF00 InfiniTime#\n\n" + "#444444 Version# %ld.%ld.%ld\n\n" + "#444444 Build date#\n" + "%s\n" + "%s\n", + Version::Major(), + Version::Minor(), + Version::Patch(), + __DATE__, + __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(new Screens::Label(0, 5, app, label)); +} + +std::unique_ptr Weather::CreateScreen2() { + auto batteryPercent = static_cast(batteryController.PercentRemaining()); + float batteryVoltage = batteryController.Voltage(); + + auto resetReason = [this]() { + switch (watchdog.ResetReason()) { + case Drivers::Watchdog::ResetReasons::Watchdog: + return "wtdg"; + case Drivers::Watchdog::ResetReasons::HardReset: + return "hardr"; + case Drivers::Watchdog::ResetReasons::NFC: + return "nfc"; + case Drivers::Watchdog::ResetReasons::SoftReset: + return "softr"; + case Drivers::Watchdog::ResetReasons::CpuLockup: + return "cpulock"; + case Drivers::Watchdog::ResetReasons::SystemOff: + return "off"; + case Drivers::Watchdog::ResetReasons::LpComp: + return "lpcomp"; + case Drivers::Watchdog::ResetReasons::DebugInterface: + return "dbg"; + case Drivers::Watchdog::ResetReasons::ResetPin: + return "rst"; + default: + return "?"; + } + }(); + + // uptime + static constexpr uint32_t secondsInADay = 60 * 60 * 24; + static constexpr uint32_t secondsInAnHour = 60 * 60; + static constexpr uint32_t secondsInAMinute = 60; + uint32_t uptimeSeconds = dateTimeController.Uptime().count(); + uint32_t uptimeDays = (uptimeSeconds / secondsInADay); + uptimeSeconds = uptimeSeconds % secondsInADay; + uint32_t uptimeHours = uptimeSeconds / secondsInAnHour; + uptimeSeconds = uptimeSeconds % secondsInAnHour; + uint32_t uptimeMinutes = uptimeSeconds / secondsInAMinute; + 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(batteryVoltage); // truncate whole numbers + batteryVoltageBytes[0] = + static_cast((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 Backlight# %s\n" + "#444444 Last reset# %s\n", + dateTimeController.Day(), + static_cast(dateTimeController.Month()), + dateTimeController.Year(), + dateTimeController.Hours(), + dateTimeController.Minutes(), + dateTimeController.Seconds(), + uptimeDays, + uptimeHours, + uptimeMinutes, + uptimeSeconds, + batteryPercent, + batteryVoltageBytes[1], + batteryVoltageBytes[0], + brightnessController.ToString(), + resetReason); + lv_obj_align(label, lv_scr_act(), LV_ALIGN_CENTER, 0, 0); + return std::unique_ptr(new Screens::Label(1, 4, app, label)); +} + +std::unique_ptr Weather::CreateScreen3() { + lv_mem_monitor_t mon; + lv_mem_monitor(&mon); + + lv_obj_t* label = lv_label_create(lv_scr_act(), nullptr); + lv_label_set_recolor(label, true); + auto& bleAddr = bleController.Address(); + lv_label_set_text_fmt(label, + "#444444 BLE MAC#\n" + " %02x:%02x:%02x:%02x:%02x:%02x" + "\n" + "#444444 Memory#\n" + " #444444 used# %d (%d%%)\n" + " #444444 frag# %d%%\n" + " #444444 free# %d" + "\n" + "#444444 Steps# %li", + bleAddr[5], + bleAddr[4], + bleAddr[3], + bleAddr[2], + bleAddr[1], + bleAddr[0], + (int) mon.total_size - mon.free_size, + mon.used_pct, + mon.frag_pct, + (int) mon.free_biggest_size, + 0); + lv_obj_align(label, lv_scr_act(), LV_ALIGN_CENTER, 0, 0); + return std::unique_ptr(new Screens::Label(2, 5, app, label)); +} + +bool sortById(const TaskStatus_t& lhs, const TaskStatus_t& rhs) { + return lhs.xTaskNumber < rhs.xTaskNumber; +} + +std::unique_ptr Weather::CreateScreen4() { + TaskStatus_t tasksStatus[7]; + lv_obj_t* infoTask = lv_table_create(lv_scr_act(), NULL); + lv_table_set_col_cnt(infoTask, 3); + lv_table_set_row_cnt(infoTask, 8); + lv_obj_set_pos(infoTask, 10, 10); + + lv_table_set_cell_value(infoTask, 0, 0, "#"); + lv_table_set_col_width(infoTask, 0, 50); + lv_table_set_cell_value(infoTask, 0, 1, "Task"); + lv_table_set_col_width(infoTask, 1, 80); + lv_table_set_cell_value(infoTask, 0, 2, "Free"); + lv_table_set_col_width(infoTask, 2, 90); + + auto nb = uxTaskGetSystemState(tasksStatus, 7, nullptr); + std::sort(tasksStatus, tasksStatus + nb, sortById); + for (uint8_t i = 0; i < nb; i++) { + + lv_table_set_cell_value(infoTask, i + 1, 0, std::to_string(tasksStatus[i].xTaskNumber).c_str()); + lv_table_set_cell_value(infoTask, i + 1, 1, tasksStatus[i].pcTaskName); + if (tasksStatus[i].usStackHighWaterMark < 20) { + std::string str1 = std::to_string(tasksStatus[i].usStackHighWaterMark) + " low"; + lv_table_set_cell_value(infoTask, i + 1, 2, str1.c_str()); + } else { + lv_table_set_cell_value(infoTask, i + 1, 2, std::to_string(tasksStatus[i].usStackHighWaterMark).c_str()); + } + } + return std::unique_ptr(new Screens::Label(3, 5, app, infoTask)); +} + +std::unique_ptr Weather::CreateScreen5() { + lv_obj_t* label = lv_label_create(lv_scr_act(), nullptr); + lv_label_set_recolor(label, true); + lv_label_set_text_static(label, + "Software Licensed\n" + "under the terms of\n" + "the GNU General\n" + "Public License v3\n" + "#444444 Source code#\n" + "#FFFF00 https://github.com/#\n" + "#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(new Screens::Label(4, 5, app, label)); +} diff --git a/src/displayapp/screens/Weather.h b/src/displayapp/screens/Weather.h new file mode 100644 index 00000000..8b393ca1 --- /dev/null +++ b/src/displayapp/screens/Weather.h @@ -0,0 +1,54 @@ +#pragma once + +#include +#include "Screen.h" +#include "ScreenList.h" + +namespace Pinetime { + namespace Controllers { + class DateTime; + class Battery; + class BrightnessController; + class Ble; + } + + namespace Drivers { + class WatchdogView; + } + + namespace Applications { + class DisplayApp; + + namespace Screens { + class Weather : public Screen { + public: + explicit Weather(DisplayApp* app, + Pinetime::Controllers::DateTime& dateTimeController, + Pinetime::Controllers::Battery& batteryController, + Pinetime::Controllers::BrightnessController& brightnessController, + Pinetime::Controllers::Ble& bleController, + Pinetime::Drivers::WatchdogView& watchdog); + ~Weather() override; + bool Refresh() override; + bool OnButtonPushed() override; + bool OnTouchEvent(TouchEvents event) override; + + private: + bool running = true; + + Pinetime::Controllers::DateTime& dateTimeController; + Pinetime::Controllers::Battery& batteryController; + Pinetime::Controllers::BrightnessController& brightnessController; + Pinetime::Controllers::Ble& bleController; + Pinetime::Drivers::WatchdogView& watchdog; + + ScreenList<5> screens; + std::unique_ptr CreateScreen1(); + std::unique_ptr CreateScreen2(); + std::unique_ptr CreateScreen3(); + std::unique_ptr CreateScreen4(); + std::unique_ptr CreateScreen5(); + }; + } + } +} \ No newline at end of file From 1d3f0dfa9eadf490b6804052ea76e79d29ecda43 Mon Sep 17 00:00:00 2001 From: Avamander Date: Thu, 10 Jun 2021 00:45:39 +0300 Subject: [PATCH 078/188] Tidied up and added Weather to CMakeLists.txt --- src/CMakeLists.txt | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 4ab303d2..fb5e1d1e 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -415,6 +415,7 @@ list(APPEND SOURCE_FILES displayapp/screens/Label.cpp displayapp/screens/FirmwareUpdate.cpp displayapp/screens/Music.cpp + displayapp/screens/Weather.cpp displayapp/screens/Navigation.cpp displayapp/screens/Metronome.cpp displayapp/screens/Motion.cpp @@ -479,6 +480,7 @@ list(APPEND SOURCE_FILES components/ble/CurrentTimeService.cpp components/ble/AlertNotificationService.cpp components/ble/MusicService.cpp + components/ble/weather/WeatherService.cpp components/ble/NavigationService.cpp displayapp/fonts/lv_font_navi_80.c components/ble/BatteryInformationService.cpp @@ -653,6 +655,9 @@ set(INCLUDE_FILES components/datetime/DateTimeController.h components/brightness/BrightnessController.h components/motion/MotionController.h + components/firmwarevalidator/FirmwareValidator.h + components/ble/BleController.h + components/ble/NotificationManager.h components/ble/NimbleController.h components/ble/DeviceInformationService.h components/ble/CurrentTimeClient.h @@ -665,6 +670,7 @@ set(INCLUDE_FILES components/ble/BleClient.h components/ble/HeartRateService.h components/ble/MotionService.h + components/ble/weather/WeatherService.h components/settings/Settings.h components/timer/TimerController.h components/alarm/AlarmController.h From eb27813c1839ff2edcce3176e11b1258167af229 Mon Sep 17 00:00:00 2001 From: Avamander Date: Thu, 10 Jun 2021 00:47:11 +0300 Subject: [PATCH 079/188] Removed redundant comments from NrfLogger --- src/logging/NrfLogger.cpp | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/src/logging/NrfLogger.cpp b/src/logging/NrfLogger.cpp index ab54afe9..f8d95a63 100644 --- a/src/logging/NrfLogger.cpp +++ b/src/logging/NrfLogger.cpp @@ -19,14 +19,13 @@ void NrfLogger::Init() { void NrfLogger::Process(void*) { NRF_LOG_INFO("Logger task started!"); -// Suppress endless loop diagnostic + #pragma clang diagnostic push #pragma ide diagnostic ignored "EndlessLoop" while (true) { NRF_LOG_FLUSH(); vTaskDelay(100); // Not good for power consumption, it will wake up every 100ms... } -// Clear diagnostic suppression #pragma clang diagnostic pop } From 6e165848161b72d1afa43af6807c654d3fc23d03 Mon Sep 17 00:00:00 2001 From: Avamander Date: Wed, 16 Jun 2021 23:31:17 +0300 Subject: [PATCH 080/188] Skeleton of the receiving logic --- src/components/ble/weather/WeatherData.h | 37 +++-- src/components/ble/weather/WeatherService.cpp | 139 +++++++++++++----- src/components/ble/weather/WeatherService.h | 45 +++--- 3 files changed, 145 insertions(+), 76 deletions(-) diff --git a/src/components/ble/weather/WeatherData.h b/src/components/ble/weather/WeatherData.h index c1d53f4e..7cf68418 100644 --- a/src/components/ble/weather/WeatherData.h +++ b/src/components/ble/weather/WeatherData.h @@ -39,7 +39,7 @@ namespace Pinetime { None = 0, /** Water particles suspended in the air; low visibility; does not fall */ Fog = 1, - /** Extremely small, dry particles in the air; invisible to the eye; opalescent */ + /** Tiny, dry particles in the air; invisible to the eye; opalescent */ Haze = 2, /** Small fire-created particles suspended in the air */ Smoke = 3, @@ -51,6 +51,7 @@ namespace Pinetime { Sand = 6, /** Water particles suspended in the air; low-ish visibility; temperature is near dewpoint */ Mist = 7, + Length }; /** @@ -82,7 +83,8 @@ namespace Pinetime { /** Frozen drizzle; very small snow crystals */ SnowGrains = 8, /** Needles; columns or plates of ice. Sometimes described as "diamond dust". In very cold regions */ - IceCrystals = 9 + IceCrystals = 9, + Length }; /** @@ -99,6 +101,7 @@ namespace Pinetime { Fire = 3, /** Thunder and/or lightning */ Thunder = 4, + Length }; /** @@ -111,7 +114,8 @@ namespace Pinetime { /** This wipes the entire timeline */ DelTimeline = 1, /** There's a currently valid timeline event with the given type */ - HasValidEvent = 3 + HasValidEvent = 3, + Length }; /** @@ -137,19 +141,20 @@ namespace Pinetime { Location = 7, /** @see cloud */ Clouds = 8, + Length }; /** * Valid event query */ - class valideventquery { + class ValidEventQuery { public: static constexpr controlcodes code = controlcodes::HasValidEvent; eventtype eventType; }; /** The header used for further parsing */ - class timelineheader { + class TimelineHeader { public: /** UNIX timestamp */ uint64_t timestamp; @@ -168,23 +173,23 @@ namespace Pinetime { }; /** Specifies how cloudiness is stored */ - class clouds : public timelineheader { + class Clouds : public TimelineHeader { public: /** Cloud coverage in percentage, 0-100% */ uint8_t amount; }; /** Specifies how obscuration is stored */ - class obscuration : public timelineheader { + class Obscuration : public TimelineHeader { public: /** Type */ obscurationtype type; /** Visibility distance in meters */ - uint8_t amount; + uint16_t amount; }; /** Specifies how precipitation is stored */ - class precipitation : public timelineheader { + class Precipitation : public TimelineHeader { public: /** Type */ precipitationtype type; @@ -201,7 +206,7 @@ namespace Pinetime { * As direction can fluctuate wildly and some watchfaces might wish to display it nicely, * we're following the aerospace industry weather report option of specifying a range. */ - class wind : public timelineheader { + class Wind : public TimelineHeader { public: /** Meters per second */ uint8_t speedMin; @@ -221,7 +226,7 @@ namespace Pinetime { * * We don't do floats, microdegrees are not useful. Make sure to multiply. */ - class temperature : public timelineheader { + class Temperature : public TimelineHeader { public: /** Temperature °C but multiplied by 100 (e.g. -12.50°C becomes -1250) */ int16_t temperature; @@ -240,7 +245,7 @@ namespace Pinetime { * or daylight calculations, should those be required. * */ - class location : public timelineheader { + class Location : public TimelineHeader { public: /** Location name */ std::string location; @@ -255,7 +260,7 @@ namespace Pinetime { /** * How humidity is stored */ - class humidity : public timelineheader { + class Humidity : public TimelineHeader { public: /** Relative humidity, 0-100% */ uint8_t humidity; @@ -264,7 +269,7 @@ namespace Pinetime { /** * How air pressure is stored */ - class pressure : public timelineheader { + class Pressure : public TimelineHeader { public: /** Air pressure in hectopascals (hPa) */ int16_t pressure; @@ -273,7 +278,7 @@ namespace Pinetime { /** * How special events are stored */ - class special : public timelineheader { + class Special : public TimelineHeader { public: /** Special event's type */ specialtype type; @@ -288,7 +293,7 @@ namespace Pinetime { * * If this needs further enforced standardization, pull requests are welcome */ - class airquality : public timelineheader { + class AirQuality : public TimelineHeader { public: /** * The name of the pollution diff --git a/src/components/ble/weather/WeatherService.cpp b/src/components/ble/weather/WeatherService.cpp index 006fc6c1..60e608e7 100644 --- a/src/components/ble/weather/WeatherService.cpp +++ b/src/components/ble/weather/WeatherService.cpp @@ -40,58 +40,125 @@ namespace Pinetime { } int WeatherService::OnCommand(uint16_t conn_handle, uint16_t attr_handle, struct ble_gatt_access_ctxt* ctxt) { + // TODO: Detect control messages if (ctxt->op == BLE_GATT_ACCESS_OP_WRITE_CHR) { - getCurrentPressure(); - tidyTimeline(); - getTimelineLength(); const auto packetLen = OS_MBUF_PKTLEN(ctxt->om); if (packetLen <= 0) { return BLE_ATT_ERR_INVALID_ATTR_VALUE_LEN; } // Decode QCBORDecodeContext decodeContext; - UsefulBufC EncodedCBOR; - // TODO: Check uninit fine - QCBORDecode_Init(&decodeContext, EncodedCBOR, QCBOR_DECODE_MODE_NORMAL); + UsefulBufC encodedCbor; + // TODO: Check, uninit fine? + + QCBORDecode_Init(&decodeContext, encodedCbor, QCBOR_DECODE_MODE_NORMAL); QCBORDecode_EnterMap(&decodeContext, nullptr); - WeatherData::timelineheader timelineHeader {}; // Always encodes to the smallest number of bytes based on the value - QCBORDecode_GetInt64InMapSZ(&decodeContext, "Timestamp", reinterpret_cast(&(timelineHeader.timestamp))); - QCBORDecode_GetInt64InMapSZ(&decodeContext, "Expires", reinterpret_cast(&(timelineHeader.expires))); - QCBORDecode_GetInt64InMapSZ(&decodeContext, "EventType", reinterpret_cast(&(timelineHeader.eventType))); - switch (timelineHeader.eventType) { - // TODO: Populate + int64_t tmpVersion = 0; + QCBORDecode_GetInt64InMapSZ(&decodeContext, "Version", &tmpVersion); + if (tmpVersion != 1) { + // TODO: Return better error? + return BLE_ATT_ERR_INVALID_ATTR_VALUE_LEN; + } + int64_t tmpTimestamp = 0; + QCBORDecode_GetInt64InMapSZ(&decodeContext, "Timestamp", &tmpTimestamp); + int64_t tmpExpires = 0; + QCBORDecode_GetInt64InMapSZ(&decodeContext, "Expires", &tmpExpires); + if (tmpExpires > 4294967295) { + // TODO: Return better error? + return BLE_ATT_ERR_INVALID_ATTR_VALUE_LEN; + } + int64_t tmpEventType = 0; + QCBORDecode_GetInt64InMapSZ(&decodeContext, "EventType", &tmpEventType); + if (tmpEventType > static_cast(WeatherData::eventtype::Length)) { + // TODO: Return better error? + return BLE_ATT_ERR_INVALID_ATTR_VALUE_LEN; + } + + switch (static_cast(tmpEventType)) { + // TODO: Populate case WeatherData::eventtype::AirQuality: { + std::unique_ptr airquality = std::make_unique(); + airquality->timestamp = tmpTimestamp; + airquality->eventType = static_cast(tmpEventType); + airquality->expires = tmpExpires; + + timeline.push_back(std::move(airquality)); break; } case WeatherData::eventtype::Obscuration: { + std::unique_ptr obscuration = std::make_unique(); + obscuration->timestamp = tmpTimestamp; + obscuration->eventType = static_cast(tmpEventType); + obscuration->expires = tmpExpires; + + timeline.push_back(std::move(obscuration)); break; } case WeatherData::eventtype::Precipitation: { + std::unique_ptr precipitation = std::make_unique(); + precipitation->timestamp = tmpTimestamp; + precipitation->eventType = static_cast(tmpEventType); + precipitation->expires = tmpExpires; + timeline.push_back(std::move(precipitation)); break; } case WeatherData::eventtype::Wind: { + std::unique_ptr wind = std::make_unique(); + wind->timestamp = tmpTimestamp; + wind->eventType = static_cast(tmpEventType); + wind->expires = tmpExpires; + timeline.push_back(std::move(wind)); break; } case WeatherData::eventtype::Temperature: { + std::unique_ptr temperature = std::make_unique(); + temperature->timestamp = tmpTimestamp; + temperature->eventType = static_cast(tmpEventType); + temperature->expires = tmpExpires; + timeline.push_back(std::move(temperature)); break; } case WeatherData::eventtype::Special: { + std::unique_ptr special = std::make_unique(); + special->timestamp = tmpTimestamp; + special->eventType = static_cast(tmpEventType); + special->expires = tmpExpires; + timeline.push_back(std::move(special)); break; } case WeatherData::eventtype::Pressure: { + std::unique_ptr pressure = std::make_unique(); + pressure->timestamp = tmpTimestamp; + pressure->eventType = static_cast(tmpEventType); + pressure->expires = tmpExpires; + timeline.push_back(std::move(pressure)); break; } case WeatherData::eventtype::Location: { + std::unique_ptr location = std::make_unique(); + location->timestamp = tmpTimestamp; + location->eventType = static_cast(tmpEventType); + location->expires = tmpExpires; + timeline.push_back(std::move(location)); break; } case WeatherData::eventtype::Clouds: { + std::unique_ptr clouds = std::make_unique(); + clouds->timestamp = tmpTimestamp; + clouds->eventType = static_cast(tmpEventType); + clouds->expires = tmpExpires; + timeline.push_back(std::move(clouds)); break; } default: { break; } } + + getCurrentPressure(); + tidyTimeline(); + getTimelineLength(); QCBORDecode_ExitMap(&decodeContext); auto uErr = QCBORDecode_Finish(&decodeContext); @@ -99,8 +166,6 @@ namespace Pinetime { return BLE_ATT_ERR_INSUFFICIENT_RES; } } else if (ctxt->op == BLE_GATT_ACCESS_OP_READ_CHR) { - // TODO: Detect control messages - // Encode uint8_t buffer[64]; QCBOREncodeContext encodeContext; @@ -125,46 +190,46 @@ namespace Pinetime { return 0; } - WeatherData::location WeatherService::getCurrentLocation() const { - return WeatherData::location(); + WeatherData::Location WeatherService::getCurrentLocation() const { + return WeatherData::Location(); } - WeatherData::clouds WeatherService::getCurrentClouds() const { - return WeatherData::clouds(); + WeatherData::Clouds WeatherService::getCurrentClouds() const { + return WeatherData::Clouds(); } - WeatherData::obscuration WeatherService::getCurrentObscuration() const { - return WeatherData::obscuration(); + WeatherData::Obscuration WeatherService::getCurrentObscuration() const { + return WeatherData::Obscuration(); } - WeatherData::precipitation WeatherService::getCurrentPrecipitation() const { - return WeatherData::precipitation(); + WeatherData::Precipitation WeatherService::getCurrentPrecipitation() const { + return WeatherData::Precipitation(); } - WeatherData::wind WeatherService::getCurrentWind() const { - return WeatherData::wind(); + WeatherData::Wind WeatherService::getCurrentWind() const { + return WeatherData::Wind(); } - WeatherData::temperature WeatherService::getCurrentTemperature() const { - return WeatherData::temperature(); + WeatherData::Temperature WeatherService::getCurrentTemperature() const { + return WeatherData::Temperature(); } - WeatherData::humidity WeatherService::getCurrentHumidity() const { - return WeatherData::humidity(); + WeatherData::Humidity WeatherService::getCurrentHumidity() const { + return WeatherData::Humidity(); } - WeatherData::pressure WeatherService::getCurrentPressure() const { + WeatherData::Pressure WeatherService::getCurrentPressure() const { uint64_t currentTimestamp = getCurrentUNIXTimestamp(); for (auto&& header : timeline) { if (header->eventType == WeatherData::eventtype::Pressure && header->timestamp + header->expires <= currentTimestamp) { - return WeatherData::pressure(); + return WeatherData::Pressure(); } } - return WeatherData::pressure(); + return WeatherData::Pressure(); } - WeatherData::airquality WeatherService::getCurrentQuality() const { - return WeatherData::airquality(); + WeatherData::AirQuality WeatherService::getCurrentQuality() const { + return WeatherData::AirQuality(); } size_t WeatherService::getTimelineLength() const { return timeline.size(); } - bool WeatherService::addEventToTimeline(std::unique_ptr event) { + bool WeatherService::addEventToTimeline(std::unique_ptr event) { if (timeline.size() == timeline.max_size()) { return false; } @@ -188,7 +253,7 @@ namespace Pinetime { uint64_t timeCurrent = 0; timeline.erase(std::remove_if(std::begin(timeline), std::end(timeline), - [&](std::unique_ptr const& header) { + [&](std::unique_ptr const& header) { return header->timestamp + header->expires > timeCurrent; }), std::end(timeline)); @@ -196,8 +261,8 @@ namespace Pinetime { std::sort(std::begin(timeline), std::end(timeline), compareTimelineEvents); } - bool WeatherService::compareTimelineEvents(const std::unique_ptr& first, - const std::unique_ptr& second) { + bool WeatherService::compareTimelineEvents(const std::unique_ptr& first, + const std::unique_ptr& second) { return first->timestamp > second->timestamp; } diff --git a/src/components/ble/weather/WeatherService.h b/src/components/ble/weather/WeatherService.h index ef99db86..64a8213a 100644 --- a/src/components/ble/weather/WeatherService.h +++ b/src/components/ble/weather/WeatherService.h @@ -57,15 +57,15 @@ namespace Pinetime { /* * Helper functions for quick access to currently valid data */ - WeatherData::location getCurrentLocation() const; - WeatherData::clouds getCurrentClouds() const; - WeatherData::obscuration getCurrentObscuration() const; - WeatherData::precipitation getCurrentPrecipitation() const; - WeatherData::wind getCurrentWind() const; - WeatherData::temperature getCurrentTemperature() const; - WeatherData::humidity getCurrentHumidity() const; - WeatherData::pressure getCurrentPressure() const; - WeatherData::airquality getCurrentQuality() const; + WeatherData::Location getCurrentLocation() const; + WeatherData::Clouds getCurrentClouds() const; + WeatherData::Obscuration getCurrentObscuration() const; + WeatherData::Precipitation getCurrentPrecipitation() const; + WeatherData::Wind getCurrentWind() const; + WeatherData::Temperature getCurrentTemperature() const; + WeatherData::Humidity getCurrentHumidity() const; + WeatherData::Pressure getCurrentPressure() const; + WeatherData::AirQuality getCurrentQuality() const; /* * Management functions @@ -74,7 +74,7 @@ namespace Pinetime { * Adds an event to the timeline * @return */ - bool addEventToTimeline(std::unique_ptr event); + bool addEventToTimeline(std::unique_ptr event); /** * Gets the current timeline length */ @@ -86,37 +86,36 @@ namespace Pinetime { bool hasTimelineEventOfType(WeatherData::eventtype type) const; private: - ble_uuid128_t msUuid {.u = {.type = BLE_UUID_TYPE_128}, .value = WEATHER_SERVICE_UUID_BASE}; + ble_uuid128_t weatherUUID {.u = {.type = BLE_UUID_TYPE_128}, .value = WEATHER_SERVICE_UUID_BASE}; /** * Just write timeline data here */ - ble_uuid128_t wDataCharUuid {.u = {.type = BLE_UUID_TYPE_128}, .value = WEATHER_SERVICE_CHAR_UUID(0x00, 0x01)}; + ble_uuid128_t weatherDataCharUUID {.u = {.type = BLE_UUID_TYPE_128}, .value = WEATHER_SERVICE_CHAR_UUID(0x00, 0x01)}; /** - * This doesn't take timeline data - * but provides some control over it + * This doesn't take timeline data, + * provides some control over it */ - ble_uuid128_t wControlCharUuid {.u = {.type = BLE_UUID_TYPE_128}, .value = WEATHER_SERVICE_CHAR_UUID(0x00, 0x02)}; + ble_uuid128_t weatherControlCharUUID {.u = {.type = BLE_UUID_TYPE_128}, .value = WEATHER_SERVICE_CHAR_UUID(0x00, 0x02)}; - const struct ble_gatt_chr_def characteristicDefinition[2] = {{.uuid = reinterpret_cast(&wDataCharUuid), + const struct ble_gatt_chr_def characteristicDefinition[2] = {{.uuid = &weatherDataCharUUID.u, .access_cb = WeatherCallback, .arg = this, .flags = BLE_GATT_CHR_F_NOTIFY, .val_handle = &eventHandle}, - {.uuid = reinterpret_cast(&wControlCharUuid), + {.uuid = &weatherControlCharUUID.u, .access_cb = WeatherCallback, .arg = this, .flags = BLE_GATT_CHR_F_WRITE | BLE_GATT_CHR_F_READ}}; const struct ble_gatt_svc_def serviceDefinition[2] = { - {.type = BLE_GATT_SVC_TYPE_PRIMARY, .uuid = reinterpret_cast(&msUuid), .characteristics = characteristicDefinition}, - {0}}; + {.type = BLE_GATT_SVC_TYPE_PRIMARY, .uuid = &weatherUUID.u, .characteristics = characteristicDefinition}, {0}}; uint16_t eventHandle {}; Pinetime::System::SystemTask& system; Pinetime::Controllers::DateTime& dateTimeController; - std::vector> timeline; + std::vector> timeline; /** * Cleans up the timeline of expired events @@ -127,11 +126,11 @@ namespace Pinetime { /** * Compares two timeline events */ - static bool compareTimelineEvents(const std::unique_ptr& first, - const std::unique_ptr& second); + static bool compareTimelineEvents(const std::unique_ptr& first, + const std::unique_ptr& second); /** - * + * Returns current UNIX timestamp */ uint64_t getCurrentUNIXTimestamp() const; }; From 4349657f799bed04538d95c8d54653586100e82e Mon Sep 17 00:00:00 2001 From: Avamander Date: Wed, 16 Jun 2021 23:31:40 +0300 Subject: [PATCH 081/188] Minor style improvement --- src/components/ble/AlertNotificationService.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/components/ble/AlertNotificationService.cpp b/src/components/ble/AlertNotificationService.cpp index f616cce8..04819122 100644 --- a/src/components/ble/AlertNotificationService.cpp +++ b/src/components/ble/AlertNotificationService.cpp @@ -53,8 +53,9 @@ int AlertNotificationService::OnAlert(uint16_t conn_handle, uint16_t attr_handle // Ignore notifications with empty message const auto packetLen = OS_MBUF_PKTLEN(ctxt->om); - if (packetLen <= headerSize) + if (packetLen <= headerSize) { return 0; + } size_t bufferSize = std::min(packetLen + stringTerminatorSize, maxBufferSize); auto messageSize = std::min(maxMessageSize, (bufferSize - headerSize)); From 4b2dcbb4f053a89faab50c03083c71fabf9f288a Mon Sep 17 00:00:00 2001 From: Avamander Date: Sun, 20 Jun 2021 21:37:53 +0300 Subject: [PATCH 082/188] Fixed a few bugs, enabled UsefulBuf library optimizations --- src/CMakeLists.txt | 1 + src/components/ble/NimbleController.h | 3 ++ src/components/ble/weather/WeatherData.h | 4 +- src/components/ble/weather/WeatherService.cpp | 19 +++++++-- src/components/ble/weather/WeatherService.h | 40 ++++++++++--------- 5 files changed, 43 insertions(+), 24 deletions(-) diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index fb5e1d1e..4273becf 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -860,6 +860,7 @@ target_compile_definitions(QCBOR PUBLIC QCBOR_DISABLE_EXP_AND_MANTISSA) target_compile_definitions(QCBOR PUBLIC QCBOR_DISABLE_INDEFINITE_LENGTH_STRINGS) target_compile_definitions(QCBOR PUBLIC QCBOR_DISABLE_INDEFINITE_LENGTH_ARRAYS) target_compile_definitions(QCBOR PUBLIC QCBOR_DISABLE_UNCOMMON_TAGS) +target_compile_definitions(QCBOR PUBLIC USEFULBUF_CONFIG_LITTLE_ENDIAN) set_target_properties(QCBOR PROPERTIES LINKER_LANGUAGE C) target_compile_options(QCBOR PRIVATE $<$,$>: ${COMMON_FLAGS} -O0 -g3> diff --git a/src/components/ble/NimbleController.h b/src/components/ble/NimbleController.h index a21cbe81..34f00e4e 100644 --- a/src/components/ble/NimbleController.h +++ b/src/components/ble/NimbleController.h @@ -71,6 +71,9 @@ namespace Pinetime { Pinetime::Controllers::AlertNotificationService& alertService() { return anService; }; + Pinetime::Controllers::WeatherService& weather() { + return weatherService; + }; uint16_t connHandle(); void NotifyBatteryLevel(uint8_t level); diff --git a/src/components/ble/weather/WeatherData.h b/src/components/ble/weather/WeatherData.h index 7cf68418..ee2a364d 100644 --- a/src/components/ble/weather/WeatherData.h +++ b/src/components/ble/weather/WeatherData.h @@ -248,7 +248,7 @@ namespace Pinetime { class Location : public TimelineHeader { public: /** Location name */ - std::string location; + std::unique_ptr location; /** Altitude relative to sea level in meters */ int16_t altitude; /** Latitude, EPSG:3857 (Google Maps, Openstreetmaps datum) */ @@ -309,7 +309,7 @@ namespace Pinetime { * For chemical compounds use the molecular formula e.g. "NO2", "CO2", "O3" * For pollen use the genus, e.g. "Betula" for birch or "Alternaria" for that mold's spores */ - std::string polluter; + std::unique_ptr polluter; /** * Amount of the pollution in SI units, * otherwise it's going to be difficult to create UI, alerts diff --git a/src/components/ble/weather/WeatherService.cpp b/src/components/ble/weather/WeatherService.cpp index 60e608e7..30d274b2 100644 --- a/src/components/ble/weather/WeatherService.cpp +++ b/src/components/ble/weather/WeatherService.cpp @@ -33,7 +33,7 @@ namespace Pinetime { void WeatherService::Init() { uint8_t res = 0; res = ble_gatts_count_cfg(serviceDefinition); - ASSERT(res == 0) + ASSERT(res == 0); res = ble_gatts_add_svcs(serviceDefinition); ASSERT(res == 0); @@ -64,13 +64,13 @@ namespace Pinetime { QCBORDecode_GetInt64InMapSZ(&decodeContext, "Timestamp", &tmpTimestamp); int64_t tmpExpires = 0; QCBORDecode_GetInt64InMapSZ(&decodeContext, "Expires", &tmpExpires); - if (tmpExpires > 4294967295) { + if (tmpExpires < 0 || tmpExpires > 4294967295) { // TODO: Return better error? return BLE_ATT_ERR_INVALID_ATTR_VALUE_LEN; } int64_t tmpEventType = 0; QCBORDecode_GetInt64InMapSZ(&decodeContext, "EventType", &tmpEventType); - if (tmpEventType > static_cast(WeatherData::eventtype::Length)) { + if (tmpEventType < 0 || tmpEventType > static_cast(WeatherData::eventtype::Length)) { // TODO: Return better error? return BLE_ATT_ERR_INVALID_ATTR_VALUE_LEN; } @@ -82,7 +82,18 @@ namespace Pinetime { airquality->timestamp = tmpTimestamp; airquality->eventType = static_cast(tmpEventType); airquality->expires = tmpExpires; - + UsefulBufC String; + QCBORDecode_GetTextStringInMapSZ(&decodeContext, "Polluter", &String); + if (UsefulBuf_IsNULLOrEmptyC(String) != 0) { + return BLE_ATT_ERR_INVALID_ATTR_VALUE_LEN; + } + airquality->polluter = std::make_unique(static_cast(String.ptr), String.len); + int64_t tmpAmount = 0; + QCBORDecode_GetInt64InMapSZ(&decodeContext, "Amount", &tmpAmount); + if (tmpAmount < 0 || tmpAmount > 4294967295) { + return BLE_ATT_ERR_INVALID_ATTR_VALUE_LEN; + } + airquality->amount = tmpAmount; timeline.push_back(std::move(airquality)); break; } diff --git a/src/components/ble/weather/WeatherService.h b/src/components/ble/weather/WeatherService.h index 64a8213a..43002dc1 100644 --- a/src/components/ble/weather/WeatherService.h +++ b/src/components/ble/weather/WeatherService.h @@ -32,12 +32,6 @@ #include "WeatherData.h" #include -// 00030000-78fc-48fe-8e23-433b3a1942d0 -#define WEATHER_SERVICE_UUID_BASE \ - { 0xd0, 0x42, 0x19, 0x3a, 0x3b, 0x43, 0x23, 0x8e, 0xfe, 0x48, 0xfc, 0x78, 0x00, 0x00, 0x03, 0x00 } -#define WEATHER_SERVICE_CHAR_UUID(y, x) \ - { 0xd0, 0x42, 0x19, 0x3a, 0x3b, 0x43, 0x23, 0x8e, 0xfe, 0x48, 0xfc, 0x78, (x), (y), 0x03, 0x00 } - int WeatherCallback(uint16_t conn_handle, uint16_t attr_handle, struct ble_gatt_access_ctxt* ctxt, void* arg); namespace Pinetime { @@ -86,27 +80,37 @@ namespace Pinetime { bool hasTimelineEventOfType(WeatherData::eventtype type) const; private: - ble_uuid128_t weatherUUID {.u = {.type = BLE_UUID_TYPE_128}, .value = WEATHER_SERVICE_UUID_BASE}; + // 00030000-78fc-48fe-8e23-433b3a1942d0 + static constexpr ble_uuid128_t BaseUUID() { + return CharUUID(0x00, 0x00); + } + + // 0003yyxx-78fc-48fe-8e23-433b3a1942d0 + static 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, 0x03, 0x00}}; + } + + ble_uuid128_t weatherUUID {BaseUUID()}; /** * Just write timeline data here */ - ble_uuid128_t weatherDataCharUUID {.u = {.type = BLE_UUID_TYPE_128}, .value = WEATHER_SERVICE_CHAR_UUID(0x00, 0x01)}; + ble_uuid128_t weatherDataCharUUID {CharUUID(0x00, 0x01)}; /** * This doesn't take timeline data, * provides some control over it */ - ble_uuid128_t weatherControlCharUUID {.u = {.type = BLE_UUID_TYPE_128}, .value = WEATHER_SERVICE_CHAR_UUID(0x00, 0x02)}; + ble_uuid128_t weatherControlCharUUID {CharUUID(0x00, 0x02)}; - const struct ble_gatt_chr_def characteristicDefinition[2] = {{.uuid = &weatherDataCharUUID.u, - .access_cb = WeatherCallback, - .arg = this, - .flags = BLE_GATT_CHR_F_NOTIFY, - .val_handle = &eventHandle}, - {.uuid = &weatherControlCharUUID.u, - .access_cb = WeatherCallback, - .arg = this, - .flags = BLE_GATT_CHR_F_WRITE | BLE_GATT_CHR_F_READ}}; + const struct ble_gatt_chr_def characteristicDefinition[3] = { + {.uuid = &weatherDataCharUUID.u, + .access_cb = WeatherCallback, + .arg = this, + .flags = BLE_GATT_CHR_F_WRITE, + .val_handle = &eventHandle}, + {.uuid = &weatherControlCharUUID.u, .access_cb = WeatherCallback, .arg = this, .flags = BLE_GATT_CHR_F_WRITE | BLE_GATT_CHR_F_READ}, + {nullptr}}; const struct ble_gatt_svc_def serviceDefinition[2] = { {.type = BLE_GATT_SVC_TYPE_PRIMARY, .uuid = &weatherUUID.u, .characteristics = characteristicDefinition}, {0}}; From b6e9e4171d3ecb417b7fbae61285474036542508 Mon Sep 17 00:00:00 2001 From: Avamander Date: Fri, 25 Jun 2021 00:39:50 +0300 Subject: [PATCH 083/188] Switched to non-deprecated math header --- src/components/battery/BatteryController.cpp | 1 + 1 file changed, 1 insertion(+) diff --git a/src/components/battery/BatteryController.cpp b/src/components/battery/BatteryController.cpp index c875cb8d..300d0978 100644 --- a/src/components/battery/BatteryController.cpp +++ b/src/components/battery/BatteryController.cpp @@ -3,6 +3,7 @@ #include #include #include +#include using namespace Pinetime::Controllers; From 3a09b3614c19fda8f90af28b596a6359064ad0fb Mon Sep 17 00:00:00 2001 From: Avamander Date: Fri, 25 Jun 2021 00:43:30 +0300 Subject: [PATCH 084/188] Brace style and whitespace fixes --- src/CMakeLists.txt | 2 +- src/components/ble/weather/WeatherService.cpp | 2 +- src/components/ble/weather/WeatherService.h | 2 +- src/displayapp/screens/SystemInfo.cpp | 2 +- src/displayapp/screens/Weather.cpp | 2 +- 5 files changed, 5 insertions(+), 5 deletions(-) diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 4273becf..d83c467a 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -1153,4 +1153,4 @@ elseif (USE_OPENOCD) COMMENT "flashing ${EXECUTABLE_FILE_NAME}.hex" ) endif () -endif () +endif () \ No newline at end of file diff --git a/src/components/ble/weather/WeatherService.cpp b/src/components/ble/weather/WeatherService.cpp index 30d274b2..ae7370b5 100644 --- a/src/components/ble/weather/WeatherService.cpp +++ b/src/components/ble/weather/WeatherService.cpp @@ -281,4 +281,4 @@ namespace Pinetime { return std::chrono::duration_cast(dateTimeController.CurrentDateTime().time_since_epoch()).count(); } } -} +} \ No newline at end of file diff --git a/src/components/ble/weather/WeatherService.h b/src/components/ble/weather/WeatherService.h index 43002dc1..53dbebfb 100644 --- a/src/components/ble/weather/WeatherService.h +++ b/src/components/ble/weather/WeatherService.h @@ -139,4 +139,4 @@ namespace Pinetime { uint64_t getCurrentUNIXTimestamp() const; }; } -} +} \ No newline at end of file diff --git a/src/displayapp/screens/SystemInfo.cpp b/src/displayapp/screens/SystemInfo.cpp index c363e2dd..07626260 100644 --- a/src/displayapp/screens/SystemInfo.cpp +++ b/src/displayapp/screens/SystemInfo.cpp @@ -274,4 +274,4 @@ std::unique_ptr SystemInfo::CreateScreen5() { 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(4, 5, app, label); -} +} \ No newline at end of file diff --git a/src/displayapp/screens/Weather.cpp b/src/displayapp/screens/Weather.cpp index 014761bf..0ba53bea 100644 --- a/src/displayapp/screens/Weather.cpp +++ b/src/displayapp/screens/Weather.cpp @@ -243,4 +243,4 @@ std::unique_ptr Weather::CreateScreen5() { 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(new Screens::Label(4, 5, app, label)); -} +} \ No newline at end of file From 2736fa57bb0fd802222f5989584eac64c371b118 Mon Sep 17 00:00:00 2001 From: Avamander Date: Fri, 25 Jun 2021 01:10:35 +0300 Subject: [PATCH 085/188] Added autodetection for clang-format version --- src/displayapp/screens/settings/SettingSteps.cpp | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) diff --git a/src/displayapp/screens/settings/SettingSteps.cpp b/src/displayapp/screens/settings/SettingSteps.cpp index 149840df..5ca3eecd 100644 --- a/src/displayapp/screens/settings/SettingSteps.cpp +++ b/src/displayapp/screens/settings/SettingSteps.cpp @@ -6,8 +6,8 @@ using namespace Pinetime::Applications::Screens; namespace { - static void event_handler(lv_obj_t * obj, lv_event_t event) { - SettingSteps* screen = static_cast(obj->user_data); + void event_handler(lv_obj_t* obj, lv_event_t event) { + SettingSteps* screen = static_cast(obj->user_data); screen->UpdateSelected(obj, event); } } @@ -30,33 +30,32 @@ SettingSteps::SettingSteps( lv_obj_set_height(container1, LV_VER_RES - 60); lv_cont_set_layout(container1, LV_LAYOUT_COLUMN_LEFT); - lv_obj_t * title = lv_label_create(lv_scr_act(), NULL); + lv_obj_t* title = lv_label_create(lv_scr_act(), nullptr); lv_label_set_text_static(title,"Daily steps goal"); lv_label_set_align(title, LV_LABEL_ALIGN_CENTER); lv_obj_align(title, lv_scr_act(), LV_ALIGN_IN_TOP_MID, 15, 15); - lv_obj_t * icon = lv_label_create(lv_scr_act(), NULL); + lv_obj_t* icon = lv_label_create(lv_scr_act(), nullptr); lv_obj_set_style_local_text_color(icon, LV_LABEL_PART_MAIN, LV_STATE_DEFAULT, LV_COLOR_ORANGE); lv_label_set_text_static(icon, Symbols::shoe); lv_label_set_align(icon, LV_LABEL_ALIGN_CENTER); lv_obj_align(icon, title, LV_ALIGN_OUT_LEFT_MID, -10, 0); - - stepValue = lv_label_create(lv_scr_act(), NULL); + stepValue = lv_label_create(lv_scr_act(), nullptr); lv_obj_set_style_local_text_font(stepValue, LV_LABEL_PART_MAIN, LV_STATE_DEFAULT, &jetbrains_mono_42); 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); - btnPlus = lv_btn_create(lv_scr_act(), NULL); + btnPlus = lv_btn_create(lv_scr_act(), nullptr); btnPlus->user_data = this; lv_obj_set_size(btnPlus, 80, 50); lv_obj_align(btnPlus, lv_scr_act(), LV_ALIGN_CENTER, 55, 80); lv_obj_set_style_local_value_str(btnPlus, LV_BTN_PART_MAIN, LV_STATE_DEFAULT, "+"); lv_obj_set_event_cb(btnPlus, event_handler); - btnMinus = lv_btn_create(lv_scr_act(), NULL); + btnMinus = lv_btn_create(lv_scr_act(), nullptr); btnMinus->user_data = this; lv_obj_set_size(btnMinus, 80, 50); lv_obj_set_event_cb(btnMinus, event_handler); From 19c9667a3d597167241ebcb4dfefb4e0cac068df Mon Sep 17 00:00:00 2001 From: Avamander Date: Fri, 25 Jun 2021 01:18:56 +0300 Subject: [PATCH 086/188] Started initial work on the UI --- src/components/ble/weather/WeatherService.cpp | 55 ++++---- src/components/ble/weather/WeatherService.h | 34 ++--- src/displayapp/screens/Weather.cpp | 133 +++--------------- src/displayapp/screens/Weather.h | 35 ++--- 4 files changed, 80 insertions(+), 177 deletions(-) diff --git a/src/components/ble/weather/WeatherService.cpp b/src/components/ble/weather/WeatherService.cpp index ae7370b5..7d20867d 100644 --- a/src/components/ble/weather/WeatherService.cpp +++ b/src/components/ble/weather/WeatherService.cpp @@ -20,8 +20,8 @@ #include "libs/QCBOR/inc/qcbor/qcbor.h" #include "systemtask/SystemTask.h" -int WeatherCallback(uint16_t conn_handle, uint16_t attr_handle, struct ble_gatt_access_ctxt* ctxt, void* arg) { - return static_cast(arg)->OnCommand(conn_handle, attr_handle, ctxt); +int WeatherCallback(uint16_t connHandle, uint16_t attrHandle, struct ble_gatt_access_ctxt* ctxt, void* arg) { + return static_cast(arg)->OnCommand(connHandle, attrHandle, ctxt); } namespace Pinetime { @@ -39,7 +39,7 @@ namespace Pinetime { ASSERT(res == 0); } - int WeatherService::OnCommand(uint16_t conn_handle, uint16_t attr_handle, struct ble_gatt_access_ctxt* ctxt) { + int WeatherService::OnCommand(uint16_t connHandle, uint16_t attrHandle, struct ble_gatt_access_ctxt* ctxt) { // TODO: Detect control messages if (ctxt->op == BLE_GATT_ACCESS_OP_WRITE_CHR) { const auto packetLen = OS_MBUF_PKTLEN(ctxt->om); @@ -167,9 +167,9 @@ namespace Pinetime { } } - getCurrentPressure(); - tidyTimeline(); - getTimelineLength(); + GetCurrentPressure(); + TidyTimeline(); + GetTimelineLength(); QCBORDecode_ExitMap(&decodeContext); auto uErr = QCBORDecode_Finish(&decodeContext); @@ -201,29 +201,36 @@ namespace Pinetime { return 0; } - WeatherData::Location WeatherService::getCurrentLocation() const { + WeatherData::Location WeatherService::GetCurrentLocation() const { return WeatherData::Location(); } - WeatherData::Clouds WeatherService::getCurrentClouds() const { + + WeatherData::Clouds WeatherService::GetCurrentClouds() const { return WeatherData::Clouds(); } - WeatherData::Obscuration WeatherService::getCurrentObscuration() const { + + WeatherData::Obscuration WeatherService::GetCurrentObscuration() const { return WeatherData::Obscuration(); } - WeatherData::Precipitation WeatherService::getCurrentPrecipitation() const { + + WeatherData::Precipitation WeatherService::GetCurrentPrecipitation() const { return WeatherData::Precipitation(); } - WeatherData::Wind WeatherService::getCurrentWind() const { + + WeatherData::Wind WeatherService::GetCurrentWind() const { return WeatherData::Wind(); } - WeatherData::Temperature WeatherService::getCurrentTemperature() const { + + WeatherData::Temperature WeatherService::GetCurrentTemperature() const { return WeatherData::Temperature(); } - WeatherData::Humidity WeatherService::getCurrentHumidity() const { + + WeatherData::Humidity WeatherService::GetCurrentHumidity() const { return WeatherData::Humidity(); } - WeatherData::Pressure WeatherService::getCurrentPressure() const { - uint64_t currentTimestamp = getCurrentUNIXTimestamp(); + + WeatherData::Pressure WeatherService::GetCurrentPressure() const { + uint64_t currentTimestamp = GetCurrentUnixTimestamp(); for (auto&& header : timeline) { if (header->eventType == WeatherData::eventtype::Pressure && header->timestamp + header->expires <= currentTimestamp) { return WeatherData::Pressure(); @@ -232,15 +239,15 @@ namespace Pinetime { return WeatherData::Pressure(); } - WeatherData::AirQuality WeatherService::getCurrentQuality() const { + WeatherData::AirQuality WeatherService::GetCurrentQuality() const { return WeatherData::AirQuality(); } - size_t WeatherService::getTimelineLength() const { + size_t WeatherService::GetTimelineLength() const { return timeline.size(); } - bool WeatherService::addEventToTimeline(std::unique_ptr event) { + bool WeatherService::AddEventToTimeline(std::unique_ptr event) { if (timeline.size() == timeline.max_size()) { return false; } @@ -249,8 +256,8 @@ namespace Pinetime { return true; } - bool WeatherService::hasTimelineEventOfType(const WeatherData::eventtype type) const { - uint64_t currentTimestamp = getCurrentUNIXTimestamp(); + bool WeatherService::HasTimelineEventOfType(const WeatherData::eventtype type) const { + uint64_t currentTimestamp = GetCurrentUnixTimestamp(); for (auto&& header : timeline) { if (header->eventType == type && header->timestamp + header->expires <= currentTimestamp) { // TODO: Check if its currently valid @@ -260,7 +267,7 @@ namespace Pinetime { return false; } - void WeatherService::tidyTimeline() { + void WeatherService::TidyTimeline() { uint64_t timeCurrent = 0; timeline.erase(std::remove_if(std::begin(timeline), std::end(timeline), @@ -269,15 +276,15 @@ namespace Pinetime { }), std::end(timeline)); - std::sort(std::begin(timeline), std::end(timeline), compareTimelineEvents); + std::sort(std::begin(timeline), std::end(timeline), CompareTimelineEvents); } - bool WeatherService::compareTimelineEvents(const std::unique_ptr& first, + bool WeatherService::CompareTimelineEvents(const std::unique_ptr& first, const std::unique_ptr& second) { return first->timestamp > second->timestamp; } - uint64_t WeatherService::getCurrentUNIXTimestamp() const { + uint64_t WeatherService::GetCurrentUnixTimestamp() const { return std::chrono::duration_cast(dateTimeController.CurrentDateTime().time_since_epoch()).count(); } } diff --git a/src/components/ble/weather/WeatherService.h b/src/components/ble/weather/WeatherService.h index 53dbebfb..786d4715 100644 --- a/src/components/ble/weather/WeatherService.h +++ b/src/components/ble/weather/WeatherService.h @@ -32,7 +32,7 @@ #include "WeatherData.h" #include -int WeatherCallback(uint16_t conn_handle, uint16_t attr_handle, struct ble_gatt_access_ctxt* ctxt, void* arg); +int WeatherCallback(uint16_t connHandle, uint16_t attrHandle, struct ble_gatt_access_ctxt* ctxt, void* arg); namespace Pinetime { namespace System { @@ -46,20 +46,20 @@ namespace Pinetime { void Init(); - int OnCommand(uint16_t conn_handle, uint16_t attr_handle, struct ble_gatt_access_ctxt* ctxt); + int OnCommand(uint16_t connHandle, uint16_t attrHandle, struct ble_gatt_access_ctxt* ctxt); /* * Helper functions for quick access to currently valid data */ - WeatherData::Location getCurrentLocation() const; - WeatherData::Clouds getCurrentClouds() const; - WeatherData::Obscuration getCurrentObscuration() const; - WeatherData::Precipitation getCurrentPrecipitation() const; - WeatherData::Wind getCurrentWind() const; - WeatherData::Temperature getCurrentTemperature() const; - WeatherData::Humidity getCurrentHumidity() const; - WeatherData::Pressure getCurrentPressure() const; - WeatherData::AirQuality getCurrentQuality() const; + WeatherData::Location GetCurrentLocation() const; + WeatherData::Clouds GetCurrentClouds() const; + WeatherData::Obscuration GetCurrentObscuration() const; + WeatherData::Precipitation GetCurrentPrecipitation() const; + WeatherData::Wind GetCurrentWind() const; + WeatherData::Temperature GetCurrentTemperature() const; + WeatherData::Humidity GetCurrentHumidity() const; + WeatherData::Pressure GetCurrentPressure() const; + WeatherData::AirQuality GetCurrentQuality() const; /* * Management functions @@ -68,16 +68,16 @@ namespace Pinetime { * Adds an event to the timeline * @return */ - bool addEventToTimeline(std::unique_ptr event); + bool AddEventToTimeline(std::unique_ptr event); /** * Gets the current timeline length */ - size_t getTimelineLength() const; + size_t GetTimelineLength() const; /** * Checks if an event of a certain type exists in the timeline * @return */ - bool hasTimelineEventOfType(WeatherData::eventtype type) const; + bool HasTimelineEventOfType(const WeatherData::eventtype type) const; private: // 00030000-78fc-48fe-8e23-433b3a1942d0 @@ -125,18 +125,18 @@ namespace Pinetime { * Cleans up the timeline of expired events * @return result code */ - void tidyTimeline(); + void TidyTimeline(); /** * Compares two timeline events */ - static bool compareTimelineEvents(const std::unique_ptr& first, + static bool CompareTimelineEvents(const std::unique_ptr& first, const std::unique_ptr& second); /** * Returns current UNIX timestamp */ - uint64_t getCurrentUNIXTimestamp() const; + uint64_t GetCurrentUnixTimestamp() const; }; } } \ No newline at end of file diff --git a/src/displayapp/screens/Weather.cpp b/src/displayapp/screens/Weather.cpp index 0ba53bea..a1278649 100644 --- a/src/displayapp/screens/Weather.cpp +++ b/src/displayapp/screens/Weather.cpp @@ -1,5 +1,6 @@ #include "Weather.h" #include +#include #include "../DisplayApp.h" #include "Label.h" #include "Version.h" @@ -12,22 +13,14 @@ using namespace Pinetime::Applications::Screens; -Weather::Weather(Pinetime::Applications::DisplayApp* app, - Pinetime::Controllers::DateTime& dateTimeController, - Pinetime::Controllers::Battery& batteryController, - Pinetime::Controllers::BrightnessController& brightnessController, - Pinetime::Controllers::Ble& bleController, - Pinetime::Drivers::WatchdogView& watchdog) +Weather::Weather(Pinetime::Applications::DisplayApp* app, Pinetime::Controllers::WeatherService& weather) : Screen(app), dateTimeController {dateTimeController}, - batteryController {batteryController}, - brightnessController {brightnessController}, - bleController {bleController}, - watchdog {watchdog}, + weatherService(weather), screens {app, 0, {[this]() -> std::unique_ptr { - return CreateScreen1(); + return CreateScreenTemperature(); }, [this]() -> std::unique_ptr { return CreateScreen2(); @@ -64,101 +57,30 @@ bool Weather::OnTouchEvent(Pinetime::Applications::TouchEvents event) { return screens.OnTouchEvent(event); } -std::unique_ptr Weather::CreateScreen1() { +std::unique_ptr Weather::CreateScreenTemperature() { lv_obj_t* label = lv_label_create(lv_scr_act(), nullptr); lv_label_set_recolor(label, true); + Controllers::WeatherData::Temperature current = weatherService.GetCurrentTemperature(); lv_label_set_text_fmt(label, - "#FFFF00 InfiniTime#\n\n" - "#444444 Version# %ld.%ld.%ld\n\n" - "#444444 Build date#\n" - "%s\n" - "%s\n", - Version::Major(), - Version::Minor(), - Version::Patch(), - __DATE__, - __TIME__); + "#FFFF00 Temperature#\n\n" + "#444444 %hd%%#°C \n\n" + "#444444 %hd#\n" + "%llu\n" + "%lu\n", + current.temperature, + current.dewPoint, + current.timestamp, + current.expires); 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(new Screens::Label(0, 5, app, label)); } std::unique_ptr Weather::CreateScreen2() { - auto batteryPercent = static_cast(batteryController.PercentRemaining()); - float batteryVoltage = batteryController.Voltage(); - - auto resetReason = [this]() { - switch (watchdog.ResetReason()) { - case Drivers::Watchdog::ResetReasons::Watchdog: - return "wtdg"; - case Drivers::Watchdog::ResetReasons::HardReset: - return "hardr"; - case Drivers::Watchdog::ResetReasons::NFC: - return "nfc"; - case Drivers::Watchdog::ResetReasons::SoftReset: - return "softr"; - case Drivers::Watchdog::ResetReasons::CpuLockup: - return "cpulock"; - case Drivers::Watchdog::ResetReasons::SystemOff: - return "off"; - case Drivers::Watchdog::ResetReasons::LpComp: - return "lpcomp"; - case Drivers::Watchdog::ResetReasons::DebugInterface: - return "dbg"; - case Drivers::Watchdog::ResetReasons::ResetPin: - return "rst"; - default: - return "?"; - } - }(); - // uptime - static constexpr uint32_t secondsInADay = 60 * 60 * 24; - static constexpr uint32_t secondsInAnHour = 60 * 60; - static constexpr uint32_t secondsInAMinute = 60; - uint32_t uptimeSeconds = dateTimeController.Uptime().count(); - uint32_t uptimeDays = (uptimeSeconds / secondsInADay); - uptimeSeconds = uptimeSeconds % secondsInADay; - uint32_t uptimeHours = uptimeSeconds / secondsInAnHour; - uptimeSeconds = uptimeSeconds % secondsInAnHour; - uint32_t uptimeMinutes = uptimeSeconds / secondsInAMinute; - 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(batteryVoltage); // truncate whole numbers - batteryVoltageBytes[0] = - static_cast((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 Backlight# %s\n" - "#444444 Last reset# %s\n", - dateTimeController.Day(), - static_cast(dateTimeController.Month()), - dateTimeController.Year(), - dateTimeController.Hours(), - dateTimeController.Minutes(), - dateTimeController.Seconds(), - uptimeDays, - uptimeHours, - uptimeMinutes, - uptimeSeconds, - batteryPercent, - batteryVoltageBytes[1], - batteryVoltageBytes[0], - brightnessController.ToString(), - resetReason); + lv_label_set_text_fmt(label, "#444444 Date# %02d\n", dateTimeController.Day()); lv_obj_align(label, lv_scr_act(), LV_ALIGN_CENTER, 0, 0); return std::unique_ptr(new Screens::Label(1, 4, app, label)); } @@ -169,28 +91,11 @@ std::unique_ptr Weather::CreateScreen3() { lv_obj_t* label = lv_label_create(lv_scr_act(), nullptr); lv_label_set_recolor(label, true); - auto& bleAddr = bleController.Address(); lv_label_set_text_fmt(label, - "#444444 BLE MAC#\n" - " %02x:%02x:%02x:%02x:%02x:%02x" - "\n" - "#444444 Memory#\n" - " #444444 used# %d (%d%%)\n" " #444444 frag# %d%%\n" - " #444444 free# %d" - "\n" - "#444444 Steps# %li", - bleAddr[5], - bleAddr[4], - bleAddr[3], - bleAddr[2], - bleAddr[1], - bleAddr[0], - (int) mon.total_size - mon.free_size, + " #444444 free# %d", mon.used_pct, - mon.frag_pct, - (int) mon.free_biggest_size, - 0); + mon.frag_pct); lv_obj_align(label, lv_scr_act(), LV_ALIGN_CENTER, 0, 0); return std::unique_ptr(new Screens::Label(2, 5, app, label)); } @@ -201,7 +106,7 @@ bool sortById(const TaskStatus_t& lhs, const TaskStatus_t& rhs) { std::unique_ptr Weather::CreateScreen4() { TaskStatus_t tasksStatus[7]; - lv_obj_t* infoTask = lv_table_create(lv_scr_act(), NULL); + lv_obj_t* infoTask = lv_table_create(lv_scr_act(), nullptr); lv_table_set_col_cnt(infoTask, 3); lv_table_set_row_cnt(infoTask, 8); lv_obj_set_pos(infoTask, 10, 10); diff --git a/src/displayapp/screens/Weather.h b/src/displayapp/screens/Weather.h index 8b393ca1..469bf592 100644 --- a/src/displayapp/screens/Weather.h +++ b/src/displayapp/screens/Weather.h @@ -1,52 +1,43 @@ #pragma once #include +#include #include "Screen.h" #include "ScreenList.h" namespace Pinetime { - namespace Controllers { - class DateTime; - class Battery; - class BrightnessController; - class Ble; - } - - namespace Drivers { - class WatchdogView; - } - namespace Applications { class DisplayApp; namespace Screens { class Weather : public Screen { public: - explicit Weather(DisplayApp* app, - Pinetime::Controllers::DateTime& dateTimeController, - Pinetime::Controllers::Battery& batteryController, - Pinetime::Controllers::BrightnessController& brightnessController, - Pinetime::Controllers::Ble& bleController, - Pinetime::Drivers::WatchdogView& watchdog); + explicit Weather(DisplayApp* app, Pinetime::Controllers::WeatherService& weather); + ~Weather() override; + bool Refresh() override; + bool OnButtonPushed() override; + bool OnTouchEvent(TouchEvents event) override; private: bool running = true; Pinetime::Controllers::DateTime& dateTimeController; - Pinetime::Controllers::Battery& batteryController; - Pinetime::Controllers::BrightnessController& brightnessController; - Pinetime::Controllers::Ble& bleController; - Pinetime::Drivers::WatchdogView& watchdog; + Controllers::WeatherService& weatherService; ScreenList<5> screens; - std::unique_ptr CreateScreen1(); + + std::unique_ptr CreateScreenTemperature(); + std::unique_ptr CreateScreen2(); + std::unique_ptr CreateScreen3(); + std::unique_ptr CreateScreen4(); + std::unique_ptr CreateScreen5(); }; } From 0ed256ba15ceace2949f21ecbc1407b8553dd75d Mon Sep 17 00:00:00 2001 From: Avamander Date: Fri, 25 Jun 2021 02:52:59 +0300 Subject: [PATCH 087/188] Few formatting fixes --- src/CMakeLists.txt | 12 ++++++------ src/components/ble/weather/WeatherService.cpp | 2 +- src/components/ble/weather/WeatherService.h | 2 +- 3 files changed, 8 insertions(+), 8 deletions(-) diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index d83c467a..f1149ce5 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -796,7 +796,7 @@ link_directories( ) -set(COMMON_FLAGS -MP -MD -mthumb -mabi=aapcs -Wall -Wno-unknown-pragmas -g3 -ffunction-sections -fdata-sections -fno-strict-aliasing -fno-builtin --short-enums -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 -Wreturn-type -Werror=return-type -fstack-usage -fno-exceptions -fno-non-call-exceptions) +set(COMMON_FLAGS -MP -MD -mthumb -mabi=aapcs -Wall -Wextra -Warray-bounds=2 -Wformat=2 -Wformat-overflow=2 -Wformat-truncation=2 -Wformat-nonliteral -ftree-vrp -Wno-unused-parameter -Wno-missing-field-initializers -Wno-unknown-pragmas -Wno-expansion-to-defined -g3 -ffunction-sections -fdata-sections -fno-strict-aliasing -fno-builtin --short-enums -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 -Wreturn-type -Werror=return-type -fstack-usage -fno-exceptions -fno-non-call-exceptions) add_definitions(-DCONFIG_GPIO_AS_PINRESET) add_definitions(-DNIMBLE_CFG_CONTROLLER) add_definitions(-DOS_CPUTIME_FREQ) @@ -818,10 +818,10 @@ add_library(nrf-sdk STATIC ${SDK_SOURCE_FILES}) target_include_directories(nrf-sdk SYSTEM PUBLIC . ../) target_include_directories(nrf-sdk SYSTEM PUBLIC ${INCLUDES_FROM_LIBS}) target_compile_options(nrf-sdk PRIVATE - $<$,$>: ${COMMON_FLAGS} -Og -g3> - $<$,$>: ${COMMON_FLAGS} -Os> - $<$,$>: ${COMMON_FLAGS} -Og -fno-rtti> - $<$,$>: ${COMMON_FLAGS} -Os -fno-rtti> + $<$,$>: ${COMMON_FLAGS} -Wno-expansion-to-defined -Og -g3> + $<$,$>: ${COMMON_FLAGS} -Wno-expansion-to-defined -O3> + $<$,$>: ${COMMON_FLAGS} -Wno-expansion-to-defined -Og -fno-rtti> + $<$,$>: ${COMMON_FLAGS} -Wno-expansion-to-defined -O3 -fno-rtti> $<$: -MP -MD -x assembler-with-cpp> ) @@ -1153,4 +1153,4 @@ elseif (USE_OPENOCD) COMMENT "flashing ${EXECUTABLE_FILE_NAME}.hex" ) endif () -endif () \ No newline at end of file +endif () diff --git a/src/components/ble/weather/WeatherService.cpp b/src/components/ble/weather/WeatherService.cpp index 7d20867d..a9c9f114 100644 --- a/src/components/ble/weather/WeatherService.cpp +++ b/src/components/ble/weather/WeatherService.cpp @@ -288,4 +288,4 @@ namespace Pinetime { return std::chrono::duration_cast(dateTimeController.CurrentDateTime().time_since_epoch()).count(); } } -} \ No newline at end of file +} diff --git a/src/components/ble/weather/WeatherService.h b/src/components/ble/weather/WeatherService.h index 786d4715..995f856e 100644 --- a/src/components/ble/weather/WeatherService.h +++ b/src/components/ble/weather/WeatherService.h @@ -139,4 +139,4 @@ namespace Pinetime { uint64_t GetCurrentUnixTimestamp() const; }; } -} \ No newline at end of file +} From ed6f0aade4db811b5013441c57944baff4528938 Mon Sep 17 00:00:00 2001 From: Avamander Date: Sat, 21 Aug 2021 21:58:03 +0300 Subject: [PATCH 088/188] Implemented a few functions. --- src/components/ble/weather/WeatherData.h | 6 +- src/components/ble/weather/WeatherService.cpp | 84 +++++++++++++++---- src/components/ble/weather/WeatherService.h | 20 ++--- src/displayapp/screens/Weather.cpp | 16 +--- 4 files changed, 85 insertions(+), 41 deletions(-) diff --git a/src/components/ble/weather/WeatherData.h b/src/components/ble/weather/WeatherData.h index ee2a364d..9b424004 100644 --- a/src/components/ble/weather/WeatherData.h +++ b/src/components/ble/weather/WeatherData.h @@ -122,7 +122,7 @@ namespace Pinetime { * Events have types * then they're easier to parse after sending them over the air */ - enum class eventtype { + enum class eventtype : uint8_t { /** @see obscuration */ Obscuration = 0, /** @see precipitation */ @@ -141,6 +141,8 @@ namespace Pinetime { Location = 7, /** @see cloud */ Clouds = 8, + /** @see humidity */ + Humidity = 9, Length }; @@ -340,4 +342,4 @@ namespace Pinetime { }; }; } -} \ No newline at end of file +} diff --git a/src/components/ble/weather/WeatherService.cpp b/src/components/ble/weather/WeatherService.cpp index a9c9f114..22c80837 100644 --- a/src/components/ble/weather/WeatherService.cpp +++ b/src/components/ble/weather/WeatherService.cpp @@ -90,7 +90,7 @@ namespace Pinetime { airquality->polluter = std::make_unique(static_cast(String.ptr), String.len); int64_t tmpAmount = 0; QCBORDecode_GetInt64InMapSZ(&decodeContext, "Amount", &tmpAmount); - if (tmpAmount < 0 || tmpAmount > 4294967295) { + if (tmpAmount < 0) { return BLE_ATT_ERR_INVALID_ATTR_VALUE_LEN; } airquality->amount = tmpAmount; @@ -162,6 +162,14 @@ namespace Pinetime { timeline.push_back(std::move(clouds)); break; } + case WeatherData::eventtype::Humidity: { + std::unique_ptr humidity = std::make_unique(); + humidity->timestamp = tmpTimestamp; + humidity->eventType = static_cast(tmpEventType); + humidity->expires = tmpExpires; + timeline.push_back(std::move(humidity)); + break; + } default: { break; } @@ -201,46 +209,94 @@ namespace Pinetime { return 0; } - WeatherData::Location WeatherService::GetCurrentLocation() const { - return WeatherData::Location(); - } - WeatherData::Clouds WeatherService::GetCurrentClouds() const { - return WeatherData::Clouds(); + uint64_t currentTimestamp = GetCurrentUnixTimestamp(); + for (auto&& header : timeline) { + if (header->eventType == WeatherData::eventtype::Clouds && header->timestamp + header->expires <= currentTimestamp) { + return reinterpret_cast(header); + } + } + return {}; } WeatherData::Obscuration WeatherService::GetCurrentObscuration() const { - return WeatherData::Obscuration(); + uint64_t currentTimestamp = GetCurrentUnixTimestamp(); + for (auto&& header : timeline) { + if (header->eventType == WeatherData::eventtype::Obscuration && header->timestamp + header->expires <= currentTimestamp) { + return reinterpret_cast(header); + } + } + return {}; } WeatherData::Precipitation WeatherService::GetCurrentPrecipitation() const { - return WeatherData::Precipitation(); + uint64_t currentTimestamp = GetCurrentUnixTimestamp(); + for (auto&& header : timeline) { + if (header->eventType == WeatherData::eventtype::Precipitation && header->timestamp + header->expires <= currentTimestamp) { + return reinterpret_cast(header); + } + } + return {}; } WeatherData::Wind WeatherService::GetCurrentWind() const { - return WeatherData::Wind(); + uint64_t currentTimestamp = GetCurrentUnixTimestamp(); + for (auto&& header : timeline) { + if (header->eventType == WeatherData::eventtype::Wind && header->timestamp + header->expires <= currentTimestamp) { + return reinterpret_cast(header); + } + } + return {}; } WeatherData::Temperature WeatherService::GetCurrentTemperature() const { - return WeatherData::Temperature(); + uint64_t currentTimestamp = GetCurrentUnixTimestamp(); + for (auto&& header : timeline) { + if (header->eventType == WeatherData::eventtype::Temperature && header->timestamp + header->expires <= currentTimestamp) { + return reinterpret_cast(header); + } + } + return {}; } WeatherData::Humidity WeatherService::GetCurrentHumidity() const { - return WeatherData::Humidity(); + uint64_t currentTimestamp = GetCurrentUnixTimestamp(); + for (auto&& header : timeline) { + if (header->eventType == WeatherData::eventtype::Humidity && header->timestamp + header->expires <= currentTimestamp) { + return reinterpret_cast(header); + } + } + return {}; } WeatherData::Pressure WeatherService::GetCurrentPressure() const { uint64_t currentTimestamp = GetCurrentUnixTimestamp(); for (auto&& header : timeline) { if (header->eventType == WeatherData::eventtype::Pressure && header->timestamp + header->expires <= currentTimestamp) { - return WeatherData::Pressure(); + return reinterpret_cast(header); } } - return WeatherData::Pressure(); + return {}; + } + + WeatherData::Location WeatherService::GetCurrentLocation() const { + uint64_t currentTimestamp = GetCurrentUnixTimestamp(); + for (auto&& header : timeline) { + if (header->eventType == WeatherData::eventtype::Location && header->timestamp + header->expires <= currentTimestamp) { + return reinterpret_cast(header); + } + } + return {}; } WeatherData::AirQuality WeatherService::GetCurrentQuality() const { - return WeatherData::AirQuality(); + uint64_t currentTimestamp = GetCurrentUnixTimestamp(); + for (auto&& header : timeline) { + if (header->eventType == WeatherData::eventtype::AirQuality && header->timestamp + header->expires <= currentTimestamp) { + return reinterpret_cast(header); + } + } + return {}; } size_t WeatherService::GetTimelineLength() const { diff --git a/src/components/ble/weather/WeatherService.h b/src/components/ble/weather/WeatherService.h index 995f856e..5504ea49 100644 --- a/src/components/ble/weather/WeatherService.h +++ b/src/components/ble/weather/WeatherService.h @@ -77,42 +77,42 @@ namespace Pinetime { * Checks if an event of a certain type exists in the timeline * @return */ - bool HasTimelineEventOfType(const WeatherData::eventtype type) const; + bool HasTimelineEventOfType(WeatherData::eventtype type) const; private: // 00030000-78fc-48fe-8e23-433b3a1942d0 - static constexpr ble_uuid128_t BaseUUID() { - return CharUUID(0x00, 0x00); + static constexpr ble_uuid128_t BaseUuid() { + return CharUuid(0x00, 0x00); } // 0003yyxx-78fc-48fe-8e23-433b3a1942d0 - static constexpr ble_uuid128_t CharUUID(uint8_t x, uint8_t y) { + static 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, 0x03, 0x00}}; } - ble_uuid128_t weatherUUID {BaseUUID()}; + ble_uuid128_t weatherUuid {BaseUuid()}; /** * Just write timeline data here */ - ble_uuid128_t weatherDataCharUUID {CharUUID(0x00, 0x01)}; + ble_uuid128_t weatherDataCharUuid {CharUuid(0x00, 0x01)}; /** * This doesn't take timeline data, * provides some control over it */ - ble_uuid128_t weatherControlCharUUID {CharUUID(0x00, 0x02)}; + ble_uuid128_t weatherControlCharUuid {CharUuid(0x00, 0x02)}; const struct ble_gatt_chr_def characteristicDefinition[3] = { - {.uuid = &weatherDataCharUUID.u, + {.uuid = &weatherDataCharUuid.u, .access_cb = WeatherCallback, .arg = this, .flags = BLE_GATT_CHR_F_WRITE, .val_handle = &eventHandle}, - {.uuid = &weatherControlCharUUID.u, .access_cb = WeatherCallback, .arg = this, .flags = BLE_GATT_CHR_F_WRITE | BLE_GATT_CHR_F_READ}, + {.uuid = &weatherControlCharUuid.u, .access_cb = WeatherCallback, .arg = this, .flags = BLE_GATT_CHR_F_WRITE | BLE_GATT_CHR_F_READ}, {nullptr}}; const struct ble_gatt_svc_def serviceDefinition[2] = { - {.type = BLE_GATT_SVC_TYPE_PRIMARY, .uuid = &weatherUUID.u, .characteristics = characteristicDefinition}, {0}}; + {.type = BLE_GATT_SVC_TYPE_PRIMARY, .uuid = &weatherUuid.u, .characteristics = characteristicDefinition}, {0}}; uint16_t eventHandle {}; diff --git a/src/displayapp/screens/Weather.cpp b/src/displayapp/screens/Weather.cpp index a1278649..ea96c9f2 100644 --- a/src/displayapp/screens/Weather.cpp +++ b/src/displayapp/screens/Weather.cpp @@ -105,7 +105,6 @@ bool sortById(const TaskStatus_t& lhs, const TaskStatus_t& rhs) { } std::unique_ptr Weather::CreateScreen4() { - TaskStatus_t tasksStatus[7]; lv_obj_t* infoTask = lv_table_create(lv_scr_act(), nullptr); lv_table_set_col_cnt(infoTask, 3); lv_table_set_row_cnt(infoTask, 8); @@ -118,19 +117,6 @@ std::unique_ptr Weather::CreateScreen4() { lv_table_set_cell_value(infoTask, 0, 2, "Free"); lv_table_set_col_width(infoTask, 2, 90); - auto nb = uxTaskGetSystemState(tasksStatus, 7, nullptr); - std::sort(tasksStatus, tasksStatus + nb, sortById); - for (uint8_t i = 0; i < nb; i++) { - - lv_table_set_cell_value(infoTask, i + 1, 0, std::to_string(tasksStatus[i].xTaskNumber).c_str()); - lv_table_set_cell_value(infoTask, i + 1, 1, tasksStatus[i].pcTaskName); - if (tasksStatus[i].usStackHighWaterMark < 20) { - std::string str1 = std::to_string(tasksStatus[i].usStackHighWaterMark) + " low"; - lv_table_set_cell_value(infoTask, i + 1, 2, str1.c_str()); - } else { - lv_table_set_cell_value(infoTask, i + 1, 2, std::to_string(tasksStatus[i].usStackHighWaterMark).c_str()); - } - } return std::unique_ptr(new Screens::Label(3, 5, app, infoTask)); } @@ -148,4 +134,4 @@ std::unique_ptr Weather::CreateScreen5() { 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(new Screens::Label(4, 5, app, label)); -} \ No newline at end of file +} From ffb17357e74fd80a0381361a5cbc6bc481d28000 Mon Sep 17 00:00:00 2001 From: Avamander Date: Sun, 28 Nov 2021 15:33:06 +0200 Subject: [PATCH 089/188] Fixed a few compilation errors, fixed UUID. --- src/components/ble/weather/WeatherData.h | 4 +-- src/components/ble/weather/WeatherService.cpp | 2 +- src/components/ble/weather/WeatherService.h | 2 +- src/displayapp/screens/Weather.cpp | 27 +++++++++++++------ src/displayapp/screens/Weather.h | 4 +-- 5 files changed, 25 insertions(+), 14 deletions(-) diff --git a/src/components/ble/weather/WeatherData.h b/src/components/ble/weather/WeatherData.h index 9b424004..19b9709d 100644 --- a/src/components/ble/weather/WeatherData.h +++ b/src/components/ble/weather/WeatherData.h @@ -250,7 +250,7 @@ namespace Pinetime { class Location : public TimelineHeader { public: /** Location name */ - std::unique_ptr location; + std::string location; /** Altitude relative to sea level in meters */ int16_t altitude; /** Latitude, EPSG:3857 (Google Maps, Openstreetmaps datum) */ @@ -311,7 +311,7 @@ namespace Pinetime { * For chemical compounds use the molecular formula e.g. "NO2", "CO2", "O3" * For pollen use the genus, e.g. "Betula" for birch or "Alternaria" for that mold's spores */ - std::unique_ptr polluter; + std::string polluter; /** * Amount of the pollution in SI units, * otherwise it's going to be difficult to create UI, alerts diff --git a/src/components/ble/weather/WeatherService.cpp b/src/components/ble/weather/WeatherService.cpp index 22c80837..bbaa21f0 100644 --- a/src/components/ble/weather/WeatherService.cpp +++ b/src/components/ble/weather/WeatherService.cpp @@ -87,7 +87,7 @@ namespace Pinetime { if (UsefulBuf_IsNULLOrEmptyC(String) != 0) { return BLE_ATT_ERR_INVALID_ATTR_VALUE_LEN; } - airquality->polluter = std::make_unique(static_cast(String.ptr), String.len); + airquality->polluter = std::string(static_cast(String.ptr), String.len); int64_t tmpAmount = 0; QCBORDecode_GetInt64InMapSZ(&decodeContext, "Amount", &tmpAmount); if (tmpAmount < 0) { diff --git a/src/components/ble/weather/WeatherService.h b/src/components/ble/weather/WeatherService.h index 5504ea49..7bf60ee1 100644 --- a/src/components/ble/weather/WeatherService.h +++ b/src/components/ble/weather/WeatherService.h @@ -88,7 +88,7 @@ namespace Pinetime { // 0003yyxx-78fc-48fe-8e23-433b3a1942d0 static 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, 0x03, 0x00}}; + .value = {0xd0, 0x42, 0x19, 0x3a, 0x3b, 0x43, 0x23, 0x8e, 0xfe, 0x48, 0xfc, 0x78, y, x, 0x03, 0x00}}; } ble_uuid128_t weatherUuid {BaseUuid()}; diff --git a/src/displayapp/screens/Weather.cpp b/src/displayapp/screens/Weather.cpp index ea96c9f2..025a3bd8 100644 --- a/src/displayapp/screens/Weather.cpp +++ b/src/displayapp/screens/Weather.cpp @@ -1,14 +1,26 @@ +/* Copyright (C) 2021 Avamander + + This file is part of InfiniTime. + + InfiniTime is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published + by the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + InfiniTime is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . +*/ #include "Weather.h" #include #include -#include "../DisplayApp.h" #include "Label.h" -#include "Version.h" #include "components/battery/BatteryController.h" #include "components/ble/BleController.h" -#include "components/brightness/BrightnessController.h" -#include "components/datetime/DateTimeController.h" -#include "drivers/Watchdog.h" #include "components/ble/weather/WeatherData.h" using namespace Pinetime::Applications::Screens; @@ -41,11 +53,10 @@ Weather::~Weather() { lv_obj_clean(lv_scr_act()); } -bool Weather::Refresh() { +void Weather::Refresh() { if (running) { - screens.Refresh(); + // screens.Refresh(); } - return running; } bool Weather::OnButtonPushed() { diff --git a/src/displayapp/screens/Weather.h b/src/displayapp/screens/Weather.h index 469bf592..99cf15ba 100644 --- a/src/displayapp/screens/Weather.h +++ b/src/displayapp/screens/Weather.h @@ -16,7 +16,7 @@ namespace Pinetime { ~Weather() override; - bool Refresh() override; + void Refresh() override; bool OnButtonPushed() override; @@ -42,4 +42,4 @@ namespace Pinetime { }; } } -} \ No newline at end of file +} From 657dc3a9ba21039cc9abd3c40c68aa3e810bd074 Mon Sep 17 00:00:00 2001 From: Avamander Date: Sun, 28 Nov 2021 19:12:16 +0200 Subject: [PATCH 090/188] Changed UUID so it wouldn't conflict with Motion --- src/components/ble/weather/WeatherService.h | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/components/ble/weather/WeatherService.h b/src/components/ble/weather/WeatherService.h index 7bf60ee1..43b2ee28 100644 --- a/src/components/ble/weather/WeatherService.h +++ b/src/components/ble/weather/WeatherService.h @@ -80,15 +80,15 @@ namespace Pinetime { bool HasTimelineEventOfType(WeatherData::eventtype type) const; private: - // 00030000-78fc-48fe-8e23-433b3a1942d0 + // 00040000-78fc-48fe-8e23-433b3a1942d0 static constexpr ble_uuid128_t BaseUuid() { return CharUuid(0x00, 0x00); } - // 0003yyxx-78fc-48fe-8e23-433b3a1942d0 + // 0004yyxx-78fc-48fe-8e23-433b3a1942d0 static 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, y, x, 0x03, 0x00}}; + .value = {0xd0, 0x42, 0x19, 0x3a, 0x3b, 0x43, 0x23, 0x8e, 0xfe, 0x48, 0xfc, 0x78, y, x, 0x04, 0x00}}; } ble_uuid128_t weatherUuid {BaseUuid()}; From 900598a7eeff1a84ccf7d0d7c94ac28a780299d4 Mon Sep 17 00:00:00 2001 From: Avamander Date: Sun, 28 Nov 2021 19:13:03 +0200 Subject: [PATCH 091/188] Removed versioning because it's not necessary --- src/components/ble/weather/WeatherService.cpp | 9 +-------- 1 file changed, 1 insertion(+), 8 deletions(-) diff --git a/src/components/ble/weather/WeatherService.cpp b/src/components/ble/weather/WeatherService.cpp index bbaa21f0..135f64dd 100644 --- a/src/components/ble/weather/WeatherService.cpp +++ b/src/components/ble/weather/WeatherService.cpp @@ -48,18 +48,11 @@ namespace Pinetime { } // Decode QCBORDecodeContext decodeContext; - UsefulBufC encodedCbor; - // TODO: Check, uninit fine? + UsefulBufC encodedCbor = {ctxt->om, OS_MBUF_PKTLEN(ctxt->om)}; QCBORDecode_Init(&decodeContext, encodedCbor, QCBOR_DECODE_MODE_NORMAL); QCBORDecode_EnterMap(&decodeContext, nullptr); // Always encodes to the smallest number of bytes based on the value - int64_t tmpVersion = 0; - QCBORDecode_GetInt64InMapSZ(&decodeContext, "Version", &tmpVersion); - if (tmpVersion != 1) { - // TODO: Return better error? - return BLE_ATT_ERR_INVALID_ATTR_VALUE_LEN; - } int64_t tmpTimestamp = 0; QCBORDecode_GetInt64InMapSZ(&decodeContext, "Timestamp", &tmpTimestamp); int64_t tmpExpires = 0; From df04763ab41aad6be8697c377e4b570c3f2fd238 Mon Sep 17 00:00:00 2001 From: Avamander Date: Sun, 28 Nov 2021 19:13:28 +0200 Subject: [PATCH 092/188] Fixed recovery build --- src/CMakeLists.txt | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index f1149ce5..cbccb714 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -552,6 +552,7 @@ list(APPEND RECOVERY_SOURCE_FILES components/ble/CurrentTimeService.cpp components/ble/AlertNotificationService.cpp components/ble/MusicService.cpp + components/ble/weather/WeatherService.cpp components/ble/BatteryInformationService.cpp components/ble/ImmediateAlertService.cpp components/ble/ServiceDiscovery.cpp @@ -951,7 +952,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 littlefs) +target_link_libraries(${EXECUTABLE_RECOVERY_NAME} nimble nrf-sdk littlefs QCBOR) 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 From 48beb7c3b18bcfdc369a63be5923a35a2113aa36 Mon Sep 17 00:00:00 2001 From: Avamander Date: Sun, 28 Nov 2021 20:58:28 +0200 Subject: [PATCH 093/188] Improved error handling and fixed incompatibility with co.nstant.in:cbor library --- src/CMakeLists.txt | 10 +++++----- src/components/ble/weather/WeatherService.cpp | 9 ++++++--- 2 files changed, 11 insertions(+), 8 deletions(-) diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index cbccb714..9f3b6d4e 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -859,7 +859,7 @@ target_compile_definitions(QCBOR PUBLIC QCBOR_DISABLE_FLOAT_HW_USE) target_compile_definitions(QCBOR PUBLIC QCBOR_DISABLE_PREFERRED_FLOAT) target_compile_definitions(QCBOR PUBLIC QCBOR_DISABLE_EXP_AND_MANTISSA) target_compile_definitions(QCBOR PUBLIC QCBOR_DISABLE_INDEFINITE_LENGTH_STRINGS) -target_compile_definitions(QCBOR PUBLIC QCBOR_DISABLE_INDEFINITE_LENGTH_ARRAYS) +#target_compile_definitions(QCBOR PUBLIC QCBOR_DISABLE_INDEFINITE_LENGTH_ARRAYS) target_compile_definitions(QCBOR PUBLIC QCBOR_DISABLE_UNCOMMON_TAGS) target_compile_definitions(QCBOR PUBLIC USEFULBUF_CONFIG_LITTLE_ENDIAN) set_target_properties(QCBOR PROPERTIES LINKER_LANGUAGE C) @@ -889,10 +889,10 @@ 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 littlefs QCBOR) target_compile_options(${EXECUTABLE_NAME} PUBLIC - $<$,$>: ${COMMON_FLAGS} -Og -g3> - $<$,$>: ${COMMON_FLAGS} -Os> - $<$,$>: ${COMMON_FLAGS} -Og -g3 -fno-rtti> - $<$,$>: ${COMMON_FLAGS} -Os -fno-rtti> + $<$,$>: ${COMMON_FLAGS} -Wextra -Wformat -Wno-missing-field-initializers -Wno-unused-parameter -Og -g3> + $<$,$>: ${COMMON_FLAGS} -Wextra -Wformat -Wno-missing-field-initializers -Wno-unused-parameter -Os> + $<$,$>: ${COMMON_FLAGS} -Wextra -Wformat -Wno-missing-field-initializers -Wno-unused-parameter -Og -g3 -fno-rtti> + $<$,$>: ${COMMON_FLAGS} -Wextra -Wformat -Wno-missing-field-initializers -Wno-unused-parameter -Os -fno-rtti> $<$: -MP -MD -x assembler-with-cpp> ) diff --git a/src/components/ble/weather/WeatherService.cpp b/src/components/ble/weather/WeatherService.cpp index 135f64dd..42302610 100644 --- a/src/components/ble/weather/WeatherService.cpp +++ b/src/components/ble/weather/WeatherService.cpp @@ -48,13 +48,17 @@ namespace Pinetime { } // Decode QCBORDecodeContext decodeContext; - UsefulBufC encodedCbor = {ctxt->om, OS_MBUF_PKTLEN(ctxt->om)}; + UsefulBufC encodedCbor = {ctxt->om->om_data, OS_MBUF_PKTLEN(ctxt->om)}; QCBORDecode_Init(&decodeContext, encodedCbor, QCBOR_DECODE_MODE_NORMAL); + // KINDLY provide us a fixed-length map QCBORDecode_EnterMap(&decodeContext, nullptr); // Always encodes to the smallest number of bytes based on the value int64_t tmpTimestamp = 0; QCBORDecode_GetInt64InMapSZ(&decodeContext, "Timestamp", &tmpTimestamp); + if (QCBORDecode_GetError(&decodeContext) != QCBOR_SUCCESS) { + return BLE_ATT_ERR_INVALID_ATTR_VALUE_LEN; + } int64_t tmpExpires = 0; QCBORDecode_GetInt64InMapSZ(&decodeContext, "Expires", &tmpExpires); if (tmpExpires < 0 || tmpExpires > 4294967295) { @@ -173,8 +177,7 @@ namespace Pinetime { GetTimelineLength(); QCBORDecode_ExitMap(&decodeContext); - auto uErr = QCBORDecode_Finish(&decodeContext); - if (uErr != 0) { + if (QCBORDecode_Finish(&decodeContext) != QCBOR_SUCCESS) { return BLE_ATT_ERR_INSUFFICIENT_RES; } } else if (ctxt->op == BLE_GATT_ACCESS_OP_READ_CHR) { From c870f8ed302823e12018aa196d87937c92966d06 Mon Sep 17 00:00:00 2001 From: Avamander Date: Wed, 1 Dec 2021 00:45:28 +0200 Subject: [PATCH 094/188] Bunch of bugs fixed, improved error handling, debug UI addition --- src/components/ble/weather/WeatherService.cpp | 127 +++++++------ src/components/ble/weather/WeatherService.h | 31 ++-- src/displayapp/Apps.h | 1 + src/displayapp/screens/Weather.cpp | 168 +++++++++++------- src/displayapp/screens/Weather.h | 8 +- 5 files changed, 194 insertions(+), 141 deletions(-) diff --git a/src/components/ble/weather/WeatherService.cpp b/src/components/ble/weather/WeatherService.cpp index 42302610..4ec57d00 100644 --- a/src/components/ble/weather/WeatherService.cpp +++ b/src/components/ble/weather/WeatherService.cpp @@ -28,6 +28,7 @@ namespace Pinetime { namespace Controllers { WeatherService::WeatherService(System::SystemTask& system, DateTime& dateTimeController) : system(system), dateTimeController(dateTimeController) { + nullHeader = &nullTimelineheader; } void WeatherService::Init() { @@ -42,7 +43,7 @@ namespace Pinetime { int WeatherService::OnCommand(uint16_t connHandle, uint16_t attrHandle, struct ble_gatt_access_ctxt* ctxt) { // TODO: Detect control messages if (ctxt->op == BLE_GATT_ACCESS_OP_WRITE_CHR) { - const auto packetLen = OS_MBUF_PKTLEN(ctxt->om); + const uint8_t packetLen = OS_MBUF_PKTLEN(ctxt->om); if (packetLen <= 0) { return BLE_ATT_ERR_INVALID_ATTR_VALUE_LEN; } @@ -56,30 +57,28 @@ namespace Pinetime { // Always encodes to the smallest number of bytes based on the value int64_t tmpTimestamp = 0; QCBORDecode_GetInt64InMapSZ(&decodeContext, "Timestamp", &tmpTimestamp); - if (QCBORDecode_GetError(&decodeContext) != QCBOR_SUCCESS) { + uint8_t err = QCBORDecode_GetError(&decodeContext); + if (err != QCBOR_SUCCESS) { return BLE_ATT_ERR_INVALID_ATTR_VALUE_LEN; } int64_t tmpExpires = 0; QCBORDecode_GetInt64InMapSZ(&decodeContext, "Expires", &tmpExpires); if (tmpExpires < 0 || tmpExpires > 4294967295) { - // TODO: Return better error? return BLE_ATT_ERR_INVALID_ATTR_VALUE_LEN; } int64_t tmpEventType = 0; QCBORDecode_GetInt64InMapSZ(&decodeContext, "EventType", &tmpEventType); if (tmpEventType < 0 || tmpEventType > static_cast(WeatherData::eventtype::Length)) { - // TODO: Return better error? return BLE_ATT_ERR_INVALID_ATTR_VALUE_LEN; } switch (static_cast(tmpEventType)) { - // TODO: Populate case WeatherData::eventtype::AirQuality: { std::unique_ptr airquality = std::make_unique(); airquality->timestamp = tmpTimestamp; airquality->eventType = static_cast(tmpEventType); airquality->expires = tmpExpires; - UsefulBufC String; + UsefulBufC String; // TODO: Everything ok with lifecycle here? QCBORDecode_GetTextStringInMapSZ(&decodeContext, "Polluter", &String); if (UsefulBuf_IsNULLOrEmptyC(String) != 0) { return BLE_ATT_ERR_INVALID_ATTR_VALUE_LEN; @@ -172,10 +171,9 @@ namespace Pinetime { } } - GetCurrentPressure(); - TidyTimeline(); - GetTimelineLength(); QCBORDecode_ExitMap(&decodeContext); + GetTimelineLength(); + TidyTimeline(); if (QCBORDecode_Finish(&decodeContext) != QCBOR_SUCCESS) { return BLE_ATT_ERR_INSUFFICIENT_RES; @@ -205,94 +203,103 @@ namespace Pinetime { return 0; } - WeatherData::Clouds WeatherService::GetCurrentClouds() const { + std::unique_ptr& WeatherService::GetCurrentClouds() { uint64_t currentTimestamp = GetCurrentUnixTimestamp(); - for (auto&& header : timeline) { - if (header->eventType == WeatherData::eventtype::Clouds && header->timestamp + header->expires <= currentTimestamp) { - return reinterpret_cast(header); + for (auto&& header : this->timeline) { + if (header->eventType == WeatherData::eventtype::Clouds && isEventStillValid(header, currentTimestamp)) { + return reinterpret_cast&>(header); } } - return {}; + + return reinterpret_cast&>(this->nullHeader); } - WeatherData::Obscuration WeatherService::GetCurrentObscuration() const { + std::unique_ptr& WeatherService::GetCurrentObscuration() { uint64_t currentTimestamp = GetCurrentUnixTimestamp(); - for (auto&& header : timeline) { - if (header->eventType == WeatherData::eventtype::Obscuration && header->timestamp + header->expires <= currentTimestamp) { - return reinterpret_cast(header); + for (auto&& header : this->timeline) { + if (header->eventType == WeatherData::eventtype::Obscuration && isEventStillValid(header, currentTimestamp)) { + return reinterpret_cast&>(header); } } - return {}; + + return reinterpret_cast&>(this->nullHeader); } - WeatherData::Precipitation WeatherService::GetCurrentPrecipitation() const { + std::unique_ptr& WeatherService::GetCurrentPrecipitation() { uint64_t currentTimestamp = GetCurrentUnixTimestamp(); - for (auto&& header : timeline) { - if (header->eventType == WeatherData::eventtype::Precipitation && header->timestamp + header->expires <= currentTimestamp) { - return reinterpret_cast(header); + for (auto&& header : this->timeline) { + if (header->eventType == WeatherData::eventtype::Precipitation && isEventStillValid(header, currentTimestamp)) { + return reinterpret_cast&>(header); } } - return {}; + + return reinterpret_cast&>(this->nullHeader); } - WeatherData::Wind WeatherService::GetCurrentWind() const { + std::unique_ptr& WeatherService::GetCurrentWind() { uint64_t currentTimestamp = GetCurrentUnixTimestamp(); - for (auto&& header : timeline) { - if (header->eventType == WeatherData::eventtype::Wind && header->timestamp + header->expires <= currentTimestamp) { - return reinterpret_cast(header); + for (auto&& header : this->timeline) { + if (header->eventType == WeatherData::eventtype::Wind && isEventStillValid(header, currentTimestamp)) { + return reinterpret_cast&>(header); } } - return {}; + + return reinterpret_cast&>(this->nullHeader); } - WeatherData::Temperature WeatherService::GetCurrentTemperature() const { + std::unique_ptr& WeatherService::GetCurrentTemperature() { uint64_t currentTimestamp = GetCurrentUnixTimestamp(); - for (auto&& header : timeline) { - if (header->eventType == WeatherData::eventtype::Temperature && header->timestamp + header->expires <= currentTimestamp) { - return reinterpret_cast(header); + for (auto&& header : this->timeline) { + if (header->eventType == WeatherData::eventtype::Temperature && isEventStillValid(header, currentTimestamp)) { + return reinterpret_cast&>(header); } } - return {}; + + return reinterpret_cast&>(this->nullHeader); } - WeatherData::Humidity WeatherService::GetCurrentHumidity() const { + std::unique_ptr& WeatherService::GetCurrentHumidity() { uint64_t currentTimestamp = GetCurrentUnixTimestamp(); - for (auto&& header : timeline) { - if (header->eventType == WeatherData::eventtype::Humidity && header->timestamp + header->expires <= currentTimestamp) { - return reinterpret_cast(header); + for (auto&& header : this->timeline) { + if (header->eventType == WeatherData::eventtype::Humidity && isEventStillValid(header, currentTimestamp)) { + return reinterpret_cast&>(header); } } - return {}; + + return reinterpret_cast&>(this->nullHeader); } - WeatherData::Pressure WeatherService::GetCurrentPressure() const { + std::unique_ptr& WeatherService::GetCurrentPressure() { uint64_t currentTimestamp = GetCurrentUnixTimestamp(); - for (auto&& header : timeline) { - if (header->eventType == WeatherData::eventtype::Pressure && header->timestamp + header->expires <= currentTimestamp) { - return reinterpret_cast(header); + for (auto&& header : this->timeline) { + if (header->eventType == WeatherData::eventtype::Pressure && isEventStillValid(header, currentTimestamp)) { + return reinterpret_cast&>(header); } } - return {}; + + return reinterpret_cast&>(this->nullHeader); } - WeatherData::Location WeatherService::GetCurrentLocation() const { + std::unique_ptr& WeatherService::GetCurrentLocation() { uint64_t currentTimestamp = GetCurrentUnixTimestamp(); - for (auto&& header : timeline) { - if (header->eventType == WeatherData::eventtype::Location && header->timestamp + header->expires <= currentTimestamp) { - return reinterpret_cast(header); + for (auto&& header : this->timeline) { + if (header->eventType == WeatherData::eventtype::Location && isEventStillValid(header, currentTimestamp)) { + return reinterpret_cast&>(header); } } - return {}; + + return reinterpret_cast&>(this->nullHeader); } - WeatherData::AirQuality WeatherService::GetCurrentQuality() const { + std::unique_ptr& WeatherService::GetCurrentQuality() { uint64_t currentTimestamp = GetCurrentUnixTimestamp(); - for (auto&& header : timeline) { - if (header->eventType == WeatherData::eventtype::AirQuality && header->timestamp + header->expires <= currentTimestamp) { - return reinterpret_cast(header); + for (auto&& header : this->timeline) { + if (header->eventType == WeatherData::eventtype::AirQuality && isEventStillValid(header, currentTimestamp)) { + return reinterpret_cast&>(header); } } - return {}; + + return reinterpret_cast&>(this->nullHeader); } size_t WeatherService::GetTimelineLength() const { @@ -311,8 +318,7 @@ namespace Pinetime { bool WeatherService::HasTimelineEventOfType(const WeatherData::eventtype type) const { uint64_t currentTimestamp = GetCurrentUnixTimestamp(); for (auto&& header : timeline) { - if (header->eventType == type && header->timestamp + header->expires <= currentTimestamp) { - // TODO: Check if its currently valid + if (header->eventType == type && isEventStillValid(header, currentTimestamp)) { return true; } } @@ -320,11 +326,11 @@ namespace Pinetime { } void WeatherService::TidyTimeline() { - uint64_t timeCurrent = 0; + uint64_t timeCurrent = GetCurrentUnixTimestamp(); timeline.erase(std::remove_if(std::begin(timeline), std::end(timeline), [&](std::unique_ptr const& header) { - return header->timestamp + header->expires > timeCurrent; + return isEventStillValid(header, timeCurrent); }), std::end(timeline)); @@ -336,6 +342,11 @@ namespace Pinetime { return first->timestamp > second->timestamp; } + bool WeatherService::isEventStillValid(const std::unique_ptr& header, const uint64_t currentTimestamp) { + // Not getting timestamp in isEventStillValid for more speed + return header->timestamp + header->expires <= currentTimestamp; + } + uint64_t WeatherService::GetCurrentUnixTimestamp() const { return std::chrono::duration_cast(dateTimeController.CurrentDateTime().time_since_epoch()).count(); } diff --git a/src/components/ble/weather/WeatherService.h b/src/components/ble/weather/WeatherService.h index 43b2ee28..7accc49e 100644 --- a/src/components/ble/weather/WeatherService.h +++ b/src/components/ble/weather/WeatherService.h @@ -51,15 +51,15 @@ namespace Pinetime { /* * Helper functions for quick access to currently valid data */ - WeatherData::Location GetCurrentLocation() const; - WeatherData::Clouds GetCurrentClouds() const; - WeatherData::Obscuration GetCurrentObscuration() const; - WeatherData::Precipitation GetCurrentPrecipitation() const; - WeatherData::Wind GetCurrentWind() const; - WeatherData::Temperature GetCurrentTemperature() const; - WeatherData::Humidity GetCurrentHumidity() const; - WeatherData::Pressure GetCurrentPressure() const; - WeatherData::AirQuality GetCurrentQuality() const; + std::unique_ptr& GetCurrentLocation(); + std::unique_ptr& GetCurrentClouds(); + std::unique_ptr& GetCurrentObscuration(); + std::unique_ptr& GetCurrentPrecipitation(); + std::unique_ptr& GetCurrentWind(); + std::unique_ptr& GetCurrentTemperature(); + std::unique_ptr& GetCurrentHumidity(); + std::unique_ptr& GetCurrentPressure(); + std::unique_ptr& GetCurrentQuality(); /* * Management functions @@ -123,7 +123,6 @@ namespace Pinetime { /** * Cleans up the timeline of expired events - * @return result code */ void TidyTimeline(); @@ -137,6 +136,18 @@ namespace Pinetime { * Returns current UNIX timestamp */ uint64_t GetCurrentUnixTimestamp() const; + + /** + * Checks if the event hasn't gone past and expired + * + * @param header timeline event to check + * @param currentTimestamp what's the time right now + * @return if the event is valid + */ + static bool isEventStillValid(const std::unique_ptr& uniquePtr, const uint64_t timestamp); + + std::unique_ptr nullTimelineheader = std::make_unique(); + std::unique_ptr* nullHeader; }; } } diff --git a/src/displayapp/Apps.h b/src/displayapp/Apps.h index d340efee..1cf7e2a8 100644 --- a/src/displayapp/Apps.h +++ b/src/displayapp/Apps.h @@ -25,6 +25,7 @@ namespace Pinetime { Metronome, Motion, Steps, + Weather, QuickSettings, Settings, SettingWatchFace, diff --git a/src/displayapp/screens/Weather.cpp b/src/displayapp/screens/Weather.cpp index 025a3bd8..132bee71 100644 --- a/src/displayapp/screens/Weather.cpp +++ b/src/displayapp/screens/Weather.cpp @@ -35,16 +35,16 @@ Weather::Weather(Pinetime::Applications::DisplayApp* app, Pinetime::Controllers: return CreateScreenTemperature(); }, [this]() -> std::unique_ptr { - return CreateScreen2(); + return CreateScreenAir(); }, [this]() -> std::unique_ptr { - return CreateScreen3(); + return CreateScreenClouds(); }, [this]() -> std::unique_ptr { - return CreateScreen4(); + return CreateScreenPrecipitation(); }, [this]() -> std::unique_ptr { - return CreateScreen5(); + return CreateScreenHumidity(); }}, Screens::ScreenListModes::UpDown} { } @@ -71,78 +71,108 @@ bool Weather::OnTouchEvent(Pinetime::Applications::TouchEvents event) { std::unique_ptr Weather::CreateScreenTemperature() { lv_obj_t* label = lv_label_create(lv_scr_act(), nullptr); lv_label_set_recolor(label, true); - Controllers::WeatherData::Temperature current = weatherService.GetCurrentTemperature(); - lv_label_set_text_fmt(label, - "#FFFF00 Temperature#\n\n" - "#444444 %hd%%#°C \n\n" - "#444444 %hd#\n" - "%llu\n" - "%lu\n", - current.temperature, - current.dewPoint, - current.timestamp, - current.expires); + std::unique_ptr& current = weatherService.GetCurrentTemperature(); + if (current->timestamp == 0) { + // Do not use the data, it's invalid + } else { + lv_label_set_text_fmt(label, + "#FFFF00 Temperature#\n\n" + "#444444 %hd%%#°C \n\n" + "#444444 %hd#\n\n" + "%llu\n" + "%lu\n", + current->temperature, + current->dewPoint, + current->timestamp, + current->expires); + } 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(new Screens::Label(0, 5, app, label)); } -std::unique_ptr Weather::CreateScreen2() { - // uptime +std::unique_ptr Weather::CreateScreenAir() { 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\n", dateTimeController.Day()); - lv_obj_align(label, lv_scr_act(), LV_ALIGN_CENTER, 0, 0); - return std::unique_ptr(new Screens::Label(1, 4, app, label)); -} - -std::unique_ptr Weather::CreateScreen3() { - lv_mem_monitor_t mon; - lv_mem_monitor(&mon); - - lv_obj_t* label = lv_label_create(lv_scr_act(), nullptr); - lv_label_set_recolor(label, true); - lv_label_set_text_fmt(label, - " #444444 frag# %d%%\n" - " #444444 free# %d", - mon.used_pct, - mon.frag_pct); - lv_obj_align(label, lv_scr_act(), LV_ALIGN_CENTER, 0, 0); - return std::unique_ptr(new Screens::Label(2, 5, app, label)); -} - -bool sortById(const TaskStatus_t& lhs, const TaskStatus_t& rhs) { - return lhs.xTaskNumber < rhs.xTaskNumber; -} - -std::unique_ptr Weather::CreateScreen4() { - lv_obj_t* infoTask = lv_table_create(lv_scr_act(), nullptr); - lv_table_set_col_cnt(infoTask, 3); - lv_table_set_row_cnt(infoTask, 8); - lv_obj_set_pos(infoTask, 10, 10); - - lv_table_set_cell_value(infoTask, 0, 0, "#"); - lv_table_set_col_width(infoTask, 0, 50); - lv_table_set_cell_value(infoTask, 0, 1, "Task"); - lv_table_set_col_width(infoTask, 1, 80); - lv_table_set_cell_value(infoTask, 0, 2, "Free"); - lv_table_set_col_width(infoTask, 2, 90); - - return std::unique_ptr(new Screens::Label(3, 5, app, infoTask)); -} - -std::unique_ptr Weather::CreateScreen5() { - lv_obj_t* label = lv_label_create(lv_scr_act(), nullptr); - lv_label_set_recolor(label, true); - lv_label_set_text_static(label, - "Software Licensed\n" - "under the terms of\n" - "the GNU General\n" - "Public License v3\n" - "#444444 Source code#\n" - "#FFFF00 https://github.com/#\n" - "#FFFF00 JF002/InfiniTime#"); + std::unique_ptr& current = weatherService.GetCurrentQuality(); + if (current->timestamp == 0) { + // Do not use the data, it's invalid + } else { + lv_label_set_text_fmt(label, + "#FFFF00 Air quality#\n\n" + "#444444 %s#\n" + "#444444 %lu#\n\n" + "%llu\n" + "%lu\n", + current->polluter.c_str(), + current->amount, + current->timestamp, + current->expires); + } 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(new Screens::Label(4, 5, app, label)); + return std::unique_ptr(new Screens::Label(0, 5, app, label)); +} + +std::unique_ptr Weather::CreateScreenClouds() { + lv_obj_t* label = lv_label_create(lv_scr_act(), nullptr); + lv_label_set_recolor(label, true); + std::unique_ptr& current = weatherService.GetCurrentClouds(); + if (current->timestamp == 0) { + // Do not use the data, it's invalid + } else { + lv_label_set_text_fmt(label, + "#FFFF00 Clouds#\n\n" + "#444444 %hhu%%#\n\n" + "%llu\n" + "%lu\n", + current->amount, + current->timestamp, + current->expires); + } + 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(new Screens::Label(0, 5, app, label)); +} + +std::unique_ptr Weather::CreateScreenPrecipitation() { + lv_obj_t* label = lv_label_create(lv_scr_act(), nullptr); + lv_label_set_recolor(label, true); + std::unique_ptr& current = weatherService.GetCurrentPrecipitation(); + if (current->timestamp == 0) { + // Do not use the data, it's invalid + } else { + lv_label_set_text_fmt(label, + "#FFFF00 Precipitation#\n\n" + "#444444 %hhu%%#\n\n" + "%llu\n" + "%lu\n", + current->amount, + current->timestamp, + current->expires); + } + 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(new Screens::Label(0, 5, app, label)); +} + +std::unique_ptr Weather::CreateScreenHumidity() { + lv_obj_t* label = lv_label_create(lv_scr_act(), nullptr); + lv_label_set_recolor(label, true); + std::unique_ptr& current = weatherService.GetCurrentHumidity(); + if (current->timestamp == 0) { + // Do not use the data, it's invalid + } else { + lv_label_set_text_fmt(label, + "#FFFF00 Humidity#\n\n" + "#444444 %hhu%%#\n\n" + "%llu\n" + "%lu\n", + current->humidity, + current->timestamp, + current->expires); + } + 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(new Screens::Label(0, 5, app, label)); } diff --git a/src/displayapp/screens/Weather.h b/src/displayapp/screens/Weather.h index 99cf15ba..34f95fce 100644 --- a/src/displayapp/screens/Weather.h +++ b/src/displayapp/screens/Weather.h @@ -32,13 +32,13 @@ namespace Pinetime { std::unique_ptr CreateScreenTemperature(); - std::unique_ptr CreateScreen2(); + std::unique_ptr CreateScreenAir(); - std::unique_ptr CreateScreen3(); + std::unique_ptr CreateScreenClouds(); - std::unique_ptr CreateScreen4(); + std::unique_ptr CreateScreenPrecipitation(); - std::unique_ptr CreateScreen5(); + std::unique_ptr CreateScreenHumidity(); }; } } From 06b022fc4dd6c2b1e5145e111f5c1f32e4729eab Mon Sep 17 00:00:00 2001 From: Avamander Date: Wed, 1 Dec 2021 01:15:11 +0200 Subject: [PATCH 095/188] Improved UI and fixed a bug --- src/components/ble/weather/WeatherService.cpp | 21 ++++++++++--------- src/displayapp/screens/Weather.cpp | 20 ++++++++++++++++++ 2 files changed, 31 insertions(+), 10 deletions(-) diff --git a/src/components/ble/weather/WeatherService.cpp b/src/components/ble/weather/WeatherService.cpp index 4ec57d00..250b36ab 100644 --- a/src/components/ble/weather/WeatherService.cpp +++ b/src/components/ble/weather/WeatherService.cpp @@ -29,6 +29,7 @@ namespace Pinetime { WeatherService::WeatherService(System::SystemTask& system, DateTime& dateTimeController) : system(system), dateTimeController(dateTimeController) { nullHeader = &nullTimelineheader; + nullTimelineheader->timestamp = 0; } void WeatherService::Init() { @@ -211,7 +212,7 @@ namespace Pinetime { } } - return reinterpret_cast&>(this->nullHeader); + return reinterpret_cast&>(*this->nullHeader); } std::unique_ptr& WeatherService::GetCurrentObscuration() { @@ -222,7 +223,7 @@ namespace Pinetime { } } - return reinterpret_cast&>(this->nullHeader); + return reinterpret_cast&>(*this->nullHeader); } std::unique_ptr& WeatherService::GetCurrentPrecipitation() { @@ -233,7 +234,7 @@ namespace Pinetime { } } - return reinterpret_cast&>(this->nullHeader); + return reinterpret_cast&>(*this->nullHeader); } std::unique_ptr& WeatherService::GetCurrentWind() { @@ -244,7 +245,7 @@ namespace Pinetime { } } - return reinterpret_cast&>(this->nullHeader); + return reinterpret_cast&>(*this->nullHeader); } std::unique_ptr& WeatherService::GetCurrentTemperature() { @@ -255,7 +256,7 @@ namespace Pinetime { } } - return reinterpret_cast&>(this->nullHeader); + return reinterpret_cast&>(*this->nullHeader); } std::unique_ptr& WeatherService::GetCurrentHumidity() { @@ -266,7 +267,7 @@ namespace Pinetime { } } - return reinterpret_cast&>(this->nullHeader); + return reinterpret_cast&>(*this->nullHeader); } std::unique_ptr& WeatherService::GetCurrentPressure() { @@ -277,7 +278,7 @@ namespace Pinetime { } } - return reinterpret_cast&>(this->nullHeader); + return reinterpret_cast&>(*this->nullHeader); } std::unique_ptr& WeatherService::GetCurrentLocation() { @@ -288,7 +289,7 @@ namespace Pinetime { } } - return reinterpret_cast&>(this->nullHeader); + return reinterpret_cast&>(*this->nullHeader); } std::unique_ptr& WeatherService::GetCurrentQuality() { @@ -299,7 +300,7 @@ namespace Pinetime { } } - return reinterpret_cast&>(this->nullHeader); + return reinterpret_cast&>(*this->nullHeader); } size_t WeatherService::GetTimelineLength() const { @@ -330,7 +331,7 @@ namespace Pinetime { timeline.erase(std::remove_if(std::begin(timeline), std::end(timeline), [&](std::unique_ptr const& header) { - return isEventStillValid(header, timeCurrent); + return !isEventStillValid(header, timeCurrent); }), std::end(timeline)); diff --git a/src/displayapp/screens/Weather.cpp b/src/displayapp/screens/Weather.cpp index 132bee71..0854c74a 100644 --- a/src/displayapp/screens/Weather.cpp +++ b/src/displayapp/screens/Weather.cpp @@ -74,6 +74,16 @@ std::unique_ptr Weather::CreateScreenTemperature() { std::unique_ptr& current = weatherService.GetCurrentTemperature(); if (current->timestamp == 0) { // Do not use the data, it's invalid + lv_label_set_text_fmt(label, + "#FFFF00 Temperature#\n\n" + "#444444 %d#\n\n" + "#444444 %d#\n\n" + "%d\n" + "%d\n", + 0, + 0, + 0, + 0); } else { lv_label_set_text_fmt(label, "#FFFF00 Temperature#\n\n" @@ -97,6 +107,16 @@ std::unique_ptr Weather::CreateScreenAir() { std::unique_ptr& current = weatherService.GetCurrentQuality(); if (current->timestamp == 0) { // Do not use the data, it's invalid + lv_label_set_text_fmt(label, + "#FFFF00 Air quality#\n\n" + "#444444 %s#\n" + "#444444 %d#\n\n" + "%d\n" + "%d\n", + "", + 0, + 0, + 0); } else { lv_label_set_text_fmt(label, "#FFFF00 Air quality#\n\n" From 9108952e6ba96f94bbd1530036318c9b21ec0cf9 Mon Sep 17 00:00:00 2001 From: Avamander Date: Wed, 1 Dec 2021 15:18:34 +0200 Subject: [PATCH 096/188] Implemented parsing of all defined weather data types --- src/components/ble/weather/WeatherService.cpp | 200 ++++++++++++++++-- 1 file changed, 181 insertions(+), 19 deletions(-) diff --git a/src/components/ble/weather/WeatherService.cpp b/src/components/ble/weather/WeatherService.cpp index 250b36ab..c60e0f09 100644 --- a/src/components/ble/weather/WeatherService.cpp +++ b/src/components/ble/weather/WeatherService.cpp @@ -42,15 +42,14 @@ namespace Pinetime { } int WeatherService::OnCommand(uint16_t connHandle, uint16_t attrHandle, struct ble_gatt_access_ctxt* ctxt) { - // TODO: Detect control messages if (ctxt->op == BLE_GATT_ACCESS_OP_WRITE_CHR) { - const uint8_t packetLen = OS_MBUF_PKTLEN(ctxt->om); + const uint8_t packetLen = OS_MBUF_PKTLEN(ctxt->om); // NOLINT(cppcoreguidelines-pro-bounds-pointer-arithmetic) if (packetLen <= 0) { return BLE_ATT_ERR_INVALID_ATTR_VALUE_LEN; } // Decode QCBORDecodeContext decodeContext; - UsefulBufC encodedCbor = {ctxt->om->om_data, OS_MBUF_PKTLEN(ctxt->om)}; + UsefulBufC encodedCbor = {ctxt->om->om_data, OS_MBUF_PKTLEN(ctxt->om)}; // NOLINT(cppcoreguidelines-pro-bounds-pointer-arithmetic) QCBORDecode_Init(&decodeContext, encodedCbor, QCBOR_DECODE_MODE_NORMAL); // KINDLY provide us a fixed-length map @@ -58,18 +57,18 @@ namespace Pinetime { // Always encodes to the smallest number of bytes based on the value int64_t tmpTimestamp = 0; QCBORDecode_GetInt64InMapSZ(&decodeContext, "Timestamp", &tmpTimestamp); - uint8_t err = QCBORDecode_GetError(&decodeContext); - if (err != QCBOR_SUCCESS) { + if (QCBORDecode_GetError(&decodeContext) != QCBOR_SUCCESS) { return BLE_ATT_ERR_INVALID_ATTR_VALUE_LEN; } int64_t tmpExpires = 0; QCBORDecode_GetInt64InMapSZ(&decodeContext, "Expires", &tmpExpires); - if (tmpExpires < 0 || tmpExpires > 4294967295) { + if (QCBORDecode_GetError(&decodeContext) != QCBOR_SUCCESS || tmpExpires < 0 || tmpExpires > 4294967295) { return BLE_ATT_ERR_INVALID_ATTR_VALUE_LEN; } int64_t tmpEventType = 0; QCBORDecode_GetInt64InMapSZ(&decodeContext, "EventType", &tmpEventType); - if (tmpEventType < 0 || tmpEventType > static_cast(WeatherData::eventtype::Length)) { + if (QCBORDecode_GetError(&decodeContext) != QCBOR_SUCCESS || tmpEventType < 0 || + tmpEventType >= static_cast(WeatherData::eventtype::Length)) { return BLE_ATT_ERR_INVALID_ATTR_VALUE_LEN; } @@ -79,19 +78,24 @@ namespace Pinetime { airquality->timestamp = tmpTimestamp; airquality->eventType = static_cast(tmpEventType); airquality->expires = tmpExpires; + UsefulBufC String; // TODO: Everything ok with lifecycle here? QCBORDecode_GetTextStringInMapSZ(&decodeContext, "Polluter", &String); if (UsefulBuf_IsNULLOrEmptyC(String) != 0) { return BLE_ATT_ERR_INVALID_ATTR_VALUE_LEN; } airquality->polluter = std::string(static_cast(String.ptr), String.len); + int64_t tmpAmount = 0; QCBORDecode_GetInt64InMapSZ(&decodeContext, "Amount", &tmpAmount); - if (tmpAmount < 0) { + if (tmpAmount < 0 || tmpAmount > 4294967295) { + return BLE_ATT_ERR_INVALID_ATTR_VALUE_LEN; + } + airquality->amount = tmpAmount; // NOLINT(bugprone-narrowing-conversions,cppcoreguidelines-narrowing-conversions) + + if (AddEventToTimeline(std::move(airquality))) { return BLE_ATT_ERR_INVALID_ATTR_VALUE_LEN; } - airquality->amount = tmpAmount; - timeline.push_back(std::move(airquality)); break; } case WeatherData::eventtype::Obscuration: { @@ -100,7 +104,23 @@ namespace Pinetime { obscuration->eventType = static_cast(tmpEventType); obscuration->expires = tmpExpires; - timeline.push_back(std::move(obscuration)); + int64_t tmpType = 0; + QCBORDecode_GetInt64InMapSZ(&decodeContext, "Type", &tmpType); + if (tmpType < 0 || tmpType >= static_cast(WeatherData::obscurationtype::Length)) { + return BLE_ATT_ERR_INVALID_ATTR_VALUE_LEN; + } + obscuration->type = static_cast(tmpType); + + int64_t tmpAmount = 0; + QCBORDecode_GetInt64InMapSZ(&decodeContext, "Amount", &tmpAmount); + if (tmpAmount < 0 || tmpAmount > 65535) { + return BLE_ATT_ERR_INVALID_ATTR_VALUE_LEN; + } + obscuration->amount = tmpAmount; // NOLINT(bugprone-narrowing-conversions,cppcoreguidelines-narrowing-conversions) + + if (AddEventToTimeline(std::move(obscuration))) { + return BLE_ATT_ERR_INVALID_ATTR_VALUE_LEN; + } break; } case WeatherData::eventtype::Precipitation: { @@ -108,7 +128,24 @@ namespace Pinetime { precipitation->timestamp = tmpTimestamp; precipitation->eventType = static_cast(tmpEventType); precipitation->expires = tmpExpires; - timeline.push_back(std::move(precipitation)); + + int64_t tmpType = 0; + QCBORDecode_GetInt64InMapSZ(&decodeContext, "Type", &tmpType); + if (tmpType < 0 || tmpType >= static_cast(WeatherData::precipitationtype::Length)) { + return BLE_ATT_ERR_INVALID_ATTR_VALUE_LEN; + } + precipitation->type = static_cast(tmpType); + + int64_t tmpAmount = 0; + QCBORDecode_GetInt64InMapSZ(&decodeContext, "Amount", &tmpAmount); + if (tmpAmount < 0 || tmpAmount > 255) { + return BLE_ATT_ERR_INVALID_ATTR_VALUE_LEN; + } + precipitation->amount = tmpAmount; // NOLINT(bugprone-narrowing-conversions,cppcoreguidelines-narrowing-conversions) + + if (AddEventToTimeline(std::move(precipitation))) { + return BLE_ATT_ERR_INVALID_ATTR_VALUE_LEN; + } break; } case WeatherData::eventtype::Wind: { @@ -116,7 +153,38 @@ namespace Pinetime { wind->timestamp = tmpTimestamp; wind->eventType = static_cast(tmpEventType); wind->expires = tmpExpires; - timeline.push_back(std::move(wind)); + + int64_t tmpMin = 0; + QCBORDecode_GetInt64InMapSZ(&decodeContext, "SpeedMin", &tmpMin); + if (tmpMin < 0 || tmpMin > 255) { + return BLE_ATT_ERR_INVALID_ATTR_VALUE_LEN; + } + wind->speedMin = tmpMin; // NOLINT(bugprone-narrowing-conversions,cppcoreguidelines-narrowing-conversions) + + int64_t tmpMax = 0; + QCBORDecode_GetInt64InMapSZ(&decodeContext, "SpeedMin", &tmpMax); + if (tmpMax < 0 || tmpMax > 255) { + return BLE_ATT_ERR_INVALID_ATTR_VALUE_LEN; + } + wind->speedMax = tmpMax; // NOLINT(bugprone-narrowing-conversions,cppcoreguidelines-narrowing-conversions) + + int64_t tmpDMin = 0; + QCBORDecode_GetInt64InMapSZ(&decodeContext, "DirectionMin", &tmpDMin); + if (tmpDMin < 0 || tmpDMin > 255) { + return BLE_ATT_ERR_INVALID_ATTR_VALUE_LEN; + } + wind->directionMin = tmpDMin; // NOLINT(bugprone-narrowing-conversions,cppcoreguidelines-narrowing-conversions) + + int64_t tmpDMax = 0; + QCBORDecode_GetInt64InMapSZ(&decodeContext, "DirectionMax", &tmpDMax); + if (tmpDMax < 0 || tmpDMax > 255) { + return BLE_ATT_ERR_INVALID_ATTR_VALUE_LEN; + } + wind->directionMax = tmpDMax; // NOLINT(bugprone-narrowing-conversions,cppcoreguidelines-narrowing-conversions) + + if (AddEventToTimeline(std::move(wind))) { + return BLE_ATT_ERR_INVALID_ATTR_VALUE_LEN; + } break; } case WeatherData::eventtype::Temperature: { @@ -124,7 +192,24 @@ namespace Pinetime { temperature->timestamp = tmpTimestamp; temperature->eventType = static_cast(tmpEventType); temperature->expires = tmpExpires; - timeline.push_back(std::move(temperature)); + + int64_t tmpTemperature = 0; + QCBORDecode_GetInt64InMapSZ(&decodeContext, "Temperature", &tmpTemperature); + if (tmpTemperature < 0 || tmpTemperature > 65535) { + return BLE_ATT_ERR_INVALID_ATTR_VALUE_LEN; + } + temperature->temperature = tmpTemperature; // NOLINT(bugprone-narrowing-conversions,cppcoreguidelines-narrowing-conversions) + + int64_t tmpDewPoint = 0; + QCBORDecode_GetInt64InMapSZ(&decodeContext, "DewPoint", &tmpDewPoint); + if (tmpDewPoint < 0 || tmpDewPoint > 65535) { + return BLE_ATT_ERR_INVALID_ATTR_VALUE_LEN; + } + temperature->dewPoint = tmpDewPoint; // NOLINT(bugprone-narrowing-conversions,cppcoreguidelines-narrowing-conversions) + + if (AddEventToTimeline(std::move(temperature))) { + return BLE_ATT_ERR_INVALID_ATTR_VALUE_LEN; + } break; } case WeatherData::eventtype::Special: { @@ -132,7 +217,17 @@ namespace Pinetime { special->timestamp = tmpTimestamp; special->eventType = static_cast(tmpEventType); special->expires = tmpExpires; - timeline.push_back(std::move(special)); + + int64_t tmpType = 0; + QCBORDecode_GetInt64InMapSZ(&decodeContext, "DewPoint", &tmpType); + if (tmpType < 0 || tmpType >= static_cast(WeatherData::specialtype::Length)) { + return BLE_ATT_ERR_INVALID_ATTR_VALUE_LEN; + } + special->type = static_cast(tmpType); + + if (AddEventToTimeline(std::move(special))) { + return BLE_ATT_ERR_INVALID_ATTR_VALUE_LEN; + } break; } case WeatherData::eventtype::Pressure: { @@ -140,7 +235,17 @@ namespace Pinetime { pressure->timestamp = tmpTimestamp; pressure->eventType = static_cast(tmpEventType); pressure->expires = tmpExpires; - timeline.push_back(std::move(pressure)); + + int64_t tmpDewPoint = 0; + QCBORDecode_GetInt64InMapSZ(&decodeContext, "DewPoint", &tmpDewPoint); + if (tmpDewPoint < 0 || tmpDewPoint >= 65535) { + return BLE_ATT_ERR_INVALID_ATTR_VALUE_LEN; + } + pressure->pressure = tmpDewPoint; // NOLINT(bugprone-narrowing-conversions,cppcoreguidelines-narrowing-conversions) + + if (AddEventToTimeline(std::move(pressure))) { + return BLE_ATT_ERR_INVALID_ATTR_VALUE_LEN; + } break; } case WeatherData::eventtype::Location: { @@ -148,7 +253,38 @@ namespace Pinetime { location->timestamp = tmpTimestamp; location->eventType = static_cast(tmpEventType); location->expires = tmpExpires; - timeline.push_back(std::move(location)); + + UsefulBufC stringBuf; // TODO: Everything ok with lifecycle here? + QCBORDecode_GetTextStringInMapSZ(&decodeContext, "Location", &stringBuf); + if (UsefulBuf_IsNULLOrEmptyC(stringBuf) != 0) { + return BLE_ATT_ERR_INVALID_ATTR_VALUE_LEN; + } + location->location = std::string(static_cast(stringBuf.ptr), stringBuf.len); + + int64_t tmpAltitude = 0; + QCBORDecode_GetInt64InMapSZ(&decodeContext, "Altitude", &tmpAltitude); + if (tmpAltitude < -32768 || tmpAltitude >= 32767) { + return BLE_ATT_ERR_INVALID_ATTR_VALUE_LEN; + } + location->altitude = static_cast(tmpAltitude); + + int64_t tmpLatitude = 0; + QCBORDecode_GetInt64InMapSZ(&decodeContext, "Latitude", &tmpLatitude); + if (tmpLatitude < -2147483648 || tmpLatitude >= 2147483647) { + return BLE_ATT_ERR_INVALID_ATTR_VALUE_LEN; + } + location->latitude = static_cast(tmpLatitude); + + int64_t tmpLongitude = 0; + QCBORDecode_GetInt64InMapSZ(&decodeContext, "Longitude", &tmpLongitude); + if (tmpLongitude < -2147483648 || tmpLongitude >= 2147483647) { + return BLE_ATT_ERR_INVALID_ATTR_VALUE_LEN; + } + location->latitude = static_cast(tmpLongitude); + + if (AddEventToTimeline(std::move(location))) { + return BLE_ATT_ERR_INVALID_ATTR_VALUE_LEN; + } break; } case WeatherData::eventtype::Clouds: { @@ -156,7 +292,17 @@ namespace Pinetime { clouds->timestamp = tmpTimestamp; clouds->eventType = static_cast(tmpEventType); clouds->expires = tmpExpires; - timeline.push_back(std::move(clouds)); + + int64_t tmpAmount = 0; + QCBORDecode_GetInt64InMapSZ(&decodeContext, "Amount", &tmpAmount); + if (tmpAmount < 0 || tmpAmount > 255) { + return BLE_ATT_ERR_INVALID_ATTR_VALUE_LEN; + } + clouds->amount = static_cast(tmpAmount); + + if (AddEventToTimeline(std::move(clouds))) { + return BLE_ATT_ERR_INVALID_ATTR_VALUE_LEN; + } break; } case WeatherData::eventtype::Humidity: { @@ -164,7 +310,17 @@ namespace Pinetime { humidity->timestamp = tmpTimestamp; humidity->eventType = static_cast(tmpEventType); humidity->expires = tmpExpires; - timeline.push_back(std::move(humidity)); + + int64_t tmpType = 0; + QCBORDecode_GetInt64InMapSZ(&decodeContext, "DewPoint", &tmpType); + if (tmpType < 0 || tmpType >= 255) { + return BLE_ATT_ERR_INVALID_ATTR_VALUE_LEN; + } + humidity->humidity = static_cast(tmpType); + + if (AddEventToTimeline(std::move(humidity))) { + return BLE_ATT_ERR_INVALID_ATTR_VALUE_LEN; + } break; } default: { @@ -183,6 +339,12 @@ namespace Pinetime { // Encode uint8_t buffer[64]; QCBOREncodeContext encodeContext; + /* TODO: This is very much still a test endpoint + * it needs a characteristic UUID check + * and actual implementations that show + * what actually has to be read. + * WARN: Consider commands not part of the API for now! + */ QCBOREncode_Init(&encodeContext, UsefulBuf_FROM_BYTE_ARRAY(buffer)); QCBOREncode_OpenMap(&encodeContext); QCBOREncode_AddTextToMap(&encodeContext, "test", UsefulBuf_FROM_SZ_LITERAL("test")); From cccec6e1abc8b7180d9e69c22c50fe9244b48ebc Mon Sep 17 00:00:00 2001 From: Avamander Date: Wed, 1 Dec 2021 15:50:36 +0200 Subject: [PATCH 097/188] Improved debug UI. --- src/CMakeLists.txt | 2 +- src/displayapp/screens/Weather.cpp | 24 ++++++++++++++++++++++++ 2 files changed, 25 insertions(+), 1 deletion(-) diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 9f3b6d4e..ac91c0c0 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -892,7 +892,7 @@ target_compile_options(${EXECUTABLE_NAME} PUBLIC $<$,$>: ${COMMON_FLAGS} -Wextra -Wformat -Wno-missing-field-initializers -Wno-unused-parameter -Og -g3> $<$,$>: ${COMMON_FLAGS} -Wextra -Wformat -Wno-missing-field-initializers -Wno-unused-parameter -Os> $<$,$>: ${COMMON_FLAGS} -Wextra -Wformat -Wno-missing-field-initializers -Wno-unused-parameter -Og -g3 -fno-rtti> - $<$,$>: ${COMMON_FLAGS} -Wextra -Wformat -Wno-missing-field-initializers -Wno-unused-parameter -Os -fno-rtti> + $<$,$>: ${COMMON_FLAGS} -Wextra -Wformat -Wno-missing-field-initializers -Wno-unused-parameter -O1 -g3 -fno-rtti> $<$: -MP -MD -x assembler-with-cpp> ) diff --git a/src/displayapp/screens/Weather.cpp b/src/displayapp/screens/Weather.cpp index 0854c74a..c9852ee1 100644 --- a/src/displayapp/screens/Weather.cpp +++ b/src/displayapp/screens/Weather.cpp @@ -140,6 +140,14 @@ std::unique_ptr Weather::CreateScreenClouds() { std::unique_ptr& current = weatherService.GetCurrentClouds(); if (current->timestamp == 0) { // Do not use the data, it's invalid + lv_label_set_text_fmt(label, + "#FFFF00 Clouds#\n\n" + "#444444 %d%%#\n\n" + "%d\n" + "%d\n", + 0, + 0, + 0); } else { lv_label_set_text_fmt(label, "#FFFF00 Clouds#\n\n" @@ -161,6 +169,14 @@ std::unique_ptr Weather::CreateScreenPrecipitation() { std::unique_ptr& current = weatherService.GetCurrentPrecipitation(); if (current->timestamp == 0) { // Do not use the data, it's invalid + lv_label_set_text_fmt(label, + "#FFFF00 Precipitation#\n\n" + "#444444 %d%%#\n\n" + "%d\n" + "%d\n", + 0, + 0, + 0); } else { lv_label_set_text_fmt(label, "#FFFF00 Precipitation#\n\n" @@ -182,6 +198,14 @@ std::unique_ptr Weather::CreateScreenHumidity() { std::unique_ptr& current = weatherService.GetCurrentHumidity(); if (current->timestamp == 0) { // Do not use the data, it's invalid + lv_label_set_text_fmt(label, + "#FFFF00 Humidity#\n\n" + "#444444 %d%%#\n\n" + "%d\n" + "%d\n", + 0, + 0, + 0); } else { lv_label_set_text_fmt(label, "#FFFF00 Humidity#\n\n" From 75cf5324baf760b3f463ba84126c317471266b32 Mon Sep 17 00:00:00 2001 From: Avamander Date: Wed, 1 Dec 2021 18:41:01 +0200 Subject: [PATCH 098/188] Fixed an incorrect decode in Humidity --- src/components/ble/weather/WeatherService.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/components/ble/weather/WeatherService.cpp b/src/components/ble/weather/WeatherService.cpp index c60e0f09..c2a1cec0 100644 --- a/src/components/ble/weather/WeatherService.cpp +++ b/src/components/ble/weather/WeatherService.cpp @@ -312,7 +312,7 @@ namespace Pinetime { humidity->expires = tmpExpires; int64_t tmpType = 0; - QCBORDecode_GetInt64InMapSZ(&decodeContext, "DewPoint", &tmpType); + QCBORDecode_GetInt64InMapSZ(&decodeContext, "Humidity", &tmpType); if (tmpType < 0 || tmpType >= 255) { return BLE_ATT_ERR_INVALID_ATTR_VALUE_LEN; } From abbfb92fa2039754c45ae10e222ffd6d5bcbd778 Mon Sep 17 00:00:00 2001 From: Avamander Date: Wed, 1 Dec 2021 18:41:26 +0200 Subject: [PATCH 099/188] Added new precipitation and obscuration types --- src/components/ble/weather/WeatherData.h | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/src/components/ble/weather/WeatherData.h b/src/components/ble/weather/WeatherData.h index 19b9709d..8f5ef8ea 100644 --- a/src/components/ble/weather/WeatherData.h +++ b/src/components/ble/weather/WeatherData.h @@ -51,6 +51,8 @@ namespace Pinetime { Sand = 6, /** Water particles suspended in the air; low-ish visibility; temperature is near dewpoint */ Mist = 7, + /** This is SPECIAL in the sense that the thing raining down is doing the obscuration */ + Precipitation = 8, Length }; @@ -84,6 +86,8 @@ namespace Pinetime { SnowGrains = 8, /** Needles; columns or plates of ice. Sometimes described as "diamond dust". In very cold regions */ IceCrystals = 9, + /** It's raining down ash, e.g. from a volcano */ + Ash = 10, Length }; @@ -230,9 +234,15 @@ namespace Pinetime { */ class Temperature : public TimelineHeader { public: - /** Temperature °C but multiplied by 100 (e.g. -12.50°C becomes -1250) */ + /** + * Temperature °C but multiplied by 100 (e.g. -12.50°C becomes -1250) + * -32768 is reserved for "no data" + */ int16_t temperature; - /** Dewpoint °C but multiplied by 100 (e.g. -12.50°C becomes -1250) */ + /** + * Dewpoint °C but multiplied by 100 (e.g. -12.50°C becomes -1250) + * -32768 is reserved for "no data" + */ int16_t dewPoint; }; From b998d5e2a85415e86ac47fd60198bf46ae54e424 Mon Sep 17 00:00:00 2001 From: Avamander Date: Wed, 1 Dec 2021 18:43:23 +0200 Subject: [PATCH 100/188] Removed unnecessary change in CMakeLists --- src/CMakeLists.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index ac91c0c0..9f3b6d4e 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -892,7 +892,7 @@ target_compile_options(${EXECUTABLE_NAME} PUBLIC $<$,$>: ${COMMON_FLAGS} -Wextra -Wformat -Wno-missing-field-initializers -Wno-unused-parameter -Og -g3> $<$,$>: ${COMMON_FLAGS} -Wextra -Wformat -Wno-missing-field-initializers -Wno-unused-parameter -Os> $<$,$>: ${COMMON_FLAGS} -Wextra -Wformat -Wno-missing-field-initializers -Wno-unused-parameter -Og -g3 -fno-rtti> - $<$,$>: ${COMMON_FLAGS} -Wextra -Wformat -Wno-missing-field-initializers -Wno-unused-parameter -O1 -g3 -fno-rtti> + $<$,$>: ${COMMON_FLAGS} -Wextra -Wformat -Wno-missing-field-initializers -Wno-unused-parameter -Os -fno-rtti> $<$: -MP -MD -x assembler-with-cpp> ) From 9525fc427321ad209de657e837c47db5237912b9 Mon Sep 17 00:00:00 2001 From: Avamander Date: Wed, 1 Dec 2021 20:54:13 +0200 Subject: [PATCH 101/188] Specified how values should be interpreted better --- src/components/ble/weather/WeatherData.h | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/src/components/ble/weather/WeatherData.h b/src/components/ble/weather/WeatherData.h index 8f5ef8ea..195e5021 100644 --- a/src/components/ble/weather/WeatherData.h +++ b/src/components/ble/weather/WeatherData.h @@ -190,7 +190,10 @@ namespace Pinetime { public: /** Type */ obscurationtype type; - /** Visibility distance in meters */ + /** + * Visibility distance in meters + * 65535 is reserved for unspecified + */ uint16_t amount; }; @@ -199,7 +202,9 @@ namespace Pinetime { public: /** Type */ precipitationtype type; - /** How much is it going to rain? In millimeters */ + /** How much is it going to rain? In millimeters + * 255 is reserved for unspecified + **/ uint8_t amount; }; From b72c6a5bc97c786a295136742d89e6c14e1ccd72 Mon Sep 17 00:00:00 2001 From: Avamander Date: Wed, 1 Dec 2021 21:08:57 +0200 Subject: [PATCH 102/188] Clarified a few comments --- src/components/ble/weather/WeatherData.h | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/src/components/ble/weather/WeatherData.h b/src/components/ble/weather/WeatherData.h index 195e5021..73b15ca9 100644 --- a/src/components/ble/weather/WeatherData.h +++ b/src/components/ble/weather/WeatherData.h @@ -188,7 +188,7 @@ namespace Pinetime { /** Specifies how obscuration is stored */ class Obscuration : public TimelineHeader { public: - /** Type */ + /** Type of precipitation */ obscurationtype type; /** * Visibility distance in meters @@ -200,9 +200,10 @@ namespace Pinetime { /** Specifies how precipitation is stored */ class Precipitation : public TimelineHeader { public: - /** Type */ + /** Type of precipitation */ precipitationtype type; - /** How much is it going to rain? In millimeters + /** + * How much is it going to rain? In millimeters * 255 is reserved for unspecified **/ uint8_t amount; @@ -235,7 +236,7 @@ namespace Pinetime { * As it's annoying to figure out the dewpoint on the watch, * please send it from the companion * - * We don't do floats, microdegrees are not useful. Make sure to multiply. + * We don't do floats, picodegrees are not useful. Make sure to multiply. */ class Temperature : public TimelineHeader { public: @@ -344,7 +345,7 @@ namespace Pinetime { * ng/m³ for heavy metals * * List is not comprehensive, should be improved. - * The current ones are what watchapps assume. + * The current ones are what watchapps assume! * * Note: ppb and ppm to concentration should be calculated on the companion, using * the correct formula (taking into account temperature and air pressure) From ffd6c3f0953c753b0caf151be1eb824bdd777264 Mon Sep 17 00:00:00 2001 From: Avamander Date: Wed, 1 Dec 2021 21:11:31 +0200 Subject: [PATCH 103/188] Removed an instance of shadowing --- src/components/ble/weather/WeatherService.cpp | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/components/ble/weather/WeatherService.cpp b/src/components/ble/weather/WeatherService.cpp index c2a1cec0..e6d22d71 100644 --- a/src/components/ble/weather/WeatherService.cpp +++ b/src/components/ble/weather/WeatherService.cpp @@ -79,12 +79,12 @@ namespace Pinetime { airquality->eventType = static_cast(tmpEventType); airquality->expires = tmpExpires; - UsefulBufC String; // TODO: Everything ok with lifecycle here? - QCBORDecode_GetTextStringInMapSZ(&decodeContext, "Polluter", &String); - if (UsefulBuf_IsNULLOrEmptyC(String) != 0) { + UsefulBufC stringBuf; // TODO: Everything ok with lifecycle here? + QCBORDecode_GetTextStringInMapSZ(&decodeContext, "Polluter", &stringBuf); + if (UsefulBuf_IsNULLOrEmptyC(stringBuf) != 0) { return BLE_ATT_ERR_INVALID_ATTR_VALUE_LEN; } - airquality->polluter = std::string(static_cast(String.ptr), String.len); + airquality->polluter = std::string(static_cast(stringBuf.ptr), stringBuf.len); int64_t tmpAmount = 0; QCBORDecode_GetInt64InMapSZ(&decodeContext, "Amount", &tmpAmount); From e0133cec36db56f71a2d9078c927e450ae361817 Mon Sep 17 00:00:00 2001 From: Avamander Date: Wed, 1 Dec 2021 21:20:51 +0200 Subject: [PATCH 104/188] Improved documentation --- src/components/ble/weather/WeatherData.h | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/src/components/ble/weather/WeatherData.h b/src/components/ble/weather/WeatherData.h index 73b15ca9..d56f481c 100644 --- a/src/components/ble/weather/WeatherData.h +++ b/src/components/ble/weather/WeatherData.h @@ -20,6 +20,24 @@ /** * Different weather events, weather data structures used by {@link WeatherService.h} * + * How to upload events to the timeline? + * + * All timeline write payloads are simply CBOR-encoded payloads of the structs described below. + * + * All payloads have a mandatory header part and the dynamic part that + * depends on the event type specified in the header. If you don't, + * you'll get an error returned. Data is relatively well-validated, + * so keep in the bounds of the data types given. + * + * Write all struct members into a single finite-sized map, and write it to the characteristic. + * Mind the MTU. + * + * How to debug? + * + * There's a Screen that you can compile into your firmware that shows currently valid events. + * You can adapt that to display something else. That part right now is very much work in progress + * because the exact requirements are not yet known. + * * * Implemented based on and other material: * https://en.wikipedia.org/wiki/METAR @@ -152,6 +170,8 @@ namespace Pinetime { /** * Valid event query + * + * NOTE: Not currently available, until needs are better known */ class ValidEventQuery { public: From 797b60397c630ac93dcff1bf7cef268c20747fb3 Mon Sep 17 00:00:00 2001 From: Avamander Date: Wed, 1 Dec 2021 21:24:53 +0200 Subject: [PATCH 105/188] Improved documentation --- src/components/ble/weather/WeatherService.h | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/src/components/ble/weather/WeatherService.h b/src/components/ble/weather/WeatherService.h index 7accc49e..cc1a4b0d 100644 --- a/src/components/ble/weather/WeatherService.h +++ b/src/components/ble/weather/WeatherService.h @@ -94,12 +94,16 @@ namespace Pinetime { ble_uuid128_t weatherUuid {BaseUuid()}; /** - * Just write timeline data here + * Just write timeline data here. + * + * See {@link WeatherData.h} for more information. */ ble_uuid128_t weatherDataCharUuid {CharUuid(0x00, 0x01)}; /** - * This doesn't take timeline data, - * provides some control over it + * This doesn't take timeline data, provides some control over it. + * + * NOTE: Currently not supported. Companion app implementer feedback required. + * There's very little point in solidifying an API before we know the needs. */ ble_uuid128_t weatherControlCharUuid {CharUuid(0x00, 0x02)}; From 154e3d27ad0053edf09db6437264028cbca8afd1 Mon Sep 17 00:00:00 2001 From: Avamander Date: Wed, 1 Dec 2021 23:45:01 +0200 Subject: [PATCH 106/188] Added a few helper functions --- src/components/ble/weather/WeatherService.cpp | 46 +++++++++++++++++++ src/components/ble/weather/WeatherService.h | 17 +++++-- 2 files changed, 59 insertions(+), 4 deletions(-) diff --git a/src/components/ble/weather/WeatherService.cpp b/src/components/ble/weather/WeatherService.cpp index e6d22d71..c8eb3c20 100644 --- a/src/components/ble/weather/WeatherService.cpp +++ b/src/components/ble/weather/WeatherService.cpp @@ -513,5 +513,51 @@ namespace Pinetime { uint64_t WeatherService::GetCurrentUnixTimestamp() const { return std::chrono::duration_cast(dateTimeController.CurrentDateTime().time_since_epoch()).count(); } + + int16_t WeatherService::getTodayMinTemp() const { + uint64_t currentTimestamp = GetCurrentUnixTimestamp(); + uint64_t currentDayEnd = currentTimestamp - ((24 - dateTimeController.Hours()) * 60 * 60) - + ((60 - dateTimeController.Minutes()) * 60) - (60 - dateTimeController.Seconds()); + int16_t result = -32768; + for (auto&& header : this->timeline) { + if (header->eventType == WeatherData::eventtype::AirQuality && isEventStillValid(header, currentTimestamp) && + header->timestamp < currentDayEnd && + reinterpret_cast&>(header)->temperature != -32768) { + int16_t temperature = reinterpret_cast&>(header)->temperature; + if (result == -32768) { + result = temperature; + } else if (result > temperature) { + result = temperature; + } else { + // The temperature in this item is higher than the lowest we've found + } + } + } + + return result; + } + + int16_t WeatherService::getTodayMaxTemp() const { + uint64_t currentTimestamp = GetCurrentUnixTimestamp(); + uint64_t currentDayEnd = currentTimestamp - ((24 - dateTimeController.Hours()) * 60 * 60) - + ((60 - dateTimeController.Minutes()) * 60) - (60 - dateTimeController.Seconds()); + int16_t result = -32768; + for (auto&& header : this->timeline) { + if (header->eventType == WeatherData::eventtype::AirQuality && isEventStillValid(header, currentTimestamp) && + header->timestamp < currentDayEnd && + reinterpret_cast&>(header)->temperature != -32768) { + int16_t temperature = reinterpret_cast&>(header)->temperature; + if (result == -32768) { + result = temperature; + } else if (result < temperature) { + result = temperature; + } else { + // The temperature in this item is lower than the highest we've found + } + } + } + + return result; + } } } diff --git a/src/components/ble/weather/WeatherService.h b/src/components/ble/weather/WeatherService.h index cc1a4b0d..52b0356a 100644 --- a/src/components/ble/weather/WeatherService.h +++ b/src/components/ble/weather/WeatherService.h @@ -61,6 +61,17 @@ namespace Pinetime { std::unique_ptr& GetCurrentPressure(); std::unique_ptr& GetCurrentQuality(); + /** + * Searches for the current day's maximum temperature + * @return -32768 if there's no data, degrees celcius times 100 otherwise + */ + int16_t getTodayMaxTemp() const; + /** + * Searches for the current day's minimum temperature + * @return -32768 if there's no data, degrees celcius times 100 otherwise + */ + int16_t getTodayMinTemp() const; + /* * Management functions */ @@ -75,7 +86,6 @@ namespace Pinetime { size_t GetTimelineLength() const; /** * Checks if an event of a certain type exists in the timeline - * @return */ bool HasTimelineEventOfType(WeatherData::eventtype type) const; @@ -124,6 +134,8 @@ namespace Pinetime { Pinetime::Controllers::DateTime& dateTimeController; std::vector> timeline; + std::unique_ptr nullTimelineheader = std::make_unique(); + std::unique_ptr* nullHeader; /** * Cleans up the timeline of expired events @@ -149,9 +161,6 @@ namespace Pinetime { * @return if the event is valid */ static bool isEventStillValid(const std::unique_ptr& uniquePtr, const uint64_t timestamp); - - std::unique_ptr nullTimelineheader = std::make_unique(); - std::unique_ptr* nullHeader; }; } } From be7931c4fb304df077f8a795d1e6e94c522556f7 Mon Sep 17 00:00:00 2001 From: Avamander Date: Wed, 1 Dec 2021 23:47:54 +0200 Subject: [PATCH 107/188] Whoops, fixed a wrong type --- src/components/ble/weather/WeatherService.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/components/ble/weather/WeatherService.cpp b/src/components/ble/weather/WeatherService.cpp index c8eb3c20..c342602e 100644 --- a/src/components/ble/weather/WeatherService.cpp +++ b/src/components/ble/weather/WeatherService.cpp @@ -520,7 +520,7 @@ namespace Pinetime { ((60 - dateTimeController.Minutes()) * 60) - (60 - dateTimeController.Seconds()); int16_t result = -32768; for (auto&& header : this->timeline) { - if (header->eventType == WeatherData::eventtype::AirQuality && isEventStillValid(header, currentTimestamp) && + if (header->eventType == WeatherData::eventtype::Temperature && isEventStillValid(header, currentTimestamp) && header->timestamp < currentDayEnd && reinterpret_cast&>(header)->temperature != -32768) { int16_t temperature = reinterpret_cast&>(header)->temperature; @@ -543,7 +543,7 @@ namespace Pinetime { ((60 - dateTimeController.Minutes()) * 60) - (60 - dateTimeController.Seconds()); int16_t result = -32768; for (auto&& header : this->timeline) { - if (header->eventType == WeatherData::eventtype::AirQuality && isEventStillValid(header, currentTimestamp) && + if (header->eventType == WeatherData::eventtype::Temperature && isEventStillValid(header, currentTimestamp) && header->timestamp < currentDayEnd && reinterpret_cast&>(header)->temperature != -32768) { int16_t temperature = reinterpret_cast&>(header)->temperature; From 4a8f72bd1e77a387b1fe97d316c0f75d8c94c936 Mon Sep 17 00:00:00 2001 From: Avamander Date: Thu, 2 Dec 2021 21:12:33 +0200 Subject: [PATCH 108/188] Fixed a bug in DewPoint decoding --- src/components/ble/weather/WeatherService.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/components/ble/weather/WeatherService.cpp b/src/components/ble/weather/WeatherService.cpp index c342602e..e5d8053a 100644 --- a/src/components/ble/weather/WeatherService.cpp +++ b/src/components/ble/weather/WeatherService.cpp @@ -202,7 +202,7 @@ namespace Pinetime { int64_t tmpDewPoint = 0; QCBORDecode_GetInt64InMapSZ(&decodeContext, "DewPoint", &tmpDewPoint); - if (tmpDewPoint < 0 || tmpDewPoint > 65535) { + if (tmpDewPoint < -32768 || tmpDewPoint > 32767) { return BLE_ATT_ERR_INVALID_ATTR_VALUE_LEN; } temperature->dewPoint = tmpDewPoint; // NOLINT(bugprone-narrowing-conversions,cppcoreguidelines-narrowing-conversions) From 58d454b11fe3c143b37aea90772c122321a5b902 Mon Sep 17 00:00:00 2001 From: Avamander Date: Thu, 2 Dec 2021 23:49:51 +0200 Subject: [PATCH 109/188] Improved Temperature parsing --- src/components/ble/weather/WeatherService.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/components/ble/weather/WeatherService.cpp b/src/components/ble/weather/WeatherService.cpp index e5d8053a..a30b2270 100644 --- a/src/components/ble/weather/WeatherService.cpp +++ b/src/components/ble/weather/WeatherService.cpp @@ -195,7 +195,7 @@ namespace Pinetime { int64_t tmpTemperature = 0; QCBORDecode_GetInt64InMapSZ(&decodeContext, "Temperature", &tmpTemperature); - if (tmpTemperature < 0 || tmpTemperature > 65535) { + if (tmpTemperature < -32768 || tmpTemperature > 32767) { return BLE_ATT_ERR_INVALID_ATTR_VALUE_LEN; } temperature->temperature = tmpTemperature; // NOLINT(bugprone-narrowing-conversions,cppcoreguidelines-narrowing-conversions) From 62bb6b51634b22410a96f1ca9cbe183d1e9c504c Mon Sep 17 00:00:00 2001 From: Avamander Date: Fri, 3 Dec 2021 16:28:17 +0200 Subject: [PATCH 110/188] Better cleanup, bugfixes and improvements in weather parsing. UI improvements --- src/components/ble/weather/WeatherService.cpp | 107 ++++++++++++------ src/components/ble/weather/WeatherService.h | 7 +- src/displayapp/DisplayApp.cpp | 7 +- src/displayapp/screens/Weather.cpp | 8 +- 4 files changed, 89 insertions(+), 40 deletions(-) diff --git a/src/components/ble/weather/WeatherService.cpp b/src/components/ble/weather/WeatherService.cpp index a30b2270..f3be35f2 100644 --- a/src/components/ble/weather/WeatherService.cpp +++ b/src/components/ble/weather/WeatherService.cpp @@ -58,17 +58,20 @@ namespace Pinetime { int64_t tmpTimestamp = 0; QCBORDecode_GetInt64InMapSZ(&decodeContext, "Timestamp", &tmpTimestamp); if (QCBORDecode_GetError(&decodeContext) != QCBOR_SUCCESS) { + CleanUpQcbor(&decodeContext); return BLE_ATT_ERR_INVALID_ATTR_VALUE_LEN; } int64_t tmpExpires = 0; QCBORDecode_GetInt64InMapSZ(&decodeContext, "Expires", &tmpExpires); if (QCBORDecode_GetError(&decodeContext) != QCBOR_SUCCESS || tmpExpires < 0 || tmpExpires > 4294967295) { + CleanUpQcbor(&decodeContext); return BLE_ATT_ERR_INVALID_ATTR_VALUE_LEN; } int64_t tmpEventType = 0; QCBORDecode_GetInt64InMapSZ(&decodeContext, "EventType", &tmpEventType); if (QCBORDecode_GetError(&decodeContext) != QCBOR_SUCCESS || tmpEventType < 0 || tmpEventType >= static_cast(WeatherData::eventtype::Length)) { + CleanUpQcbor(&decodeContext); return BLE_ATT_ERR_INVALID_ATTR_VALUE_LEN; } @@ -82,6 +85,7 @@ namespace Pinetime { UsefulBufC stringBuf; // TODO: Everything ok with lifecycle here? QCBORDecode_GetTextStringInMapSZ(&decodeContext, "Polluter", &stringBuf); if (UsefulBuf_IsNULLOrEmptyC(stringBuf) != 0) { + CleanUpQcbor(&decodeContext); return BLE_ATT_ERR_INVALID_ATTR_VALUE_LEN; } airquality->polluter = std::string(static_cast(stringBuf.ptr), stringBuf.len); @@ -89,11 +93,13 @@ namespace Pinetime { int64_t tmpAmount = 0; QCBORDecode_GetInt64InMapSZ(&decodeContext, "Amount", &tmpAmount); if (tmpAmount < 0 || tmpAmount > 4294967295) { + CleanUpQcbor(&decodeContext); return BLE_ATT_ERR_INVALID_ATTR_VALUE_LEN; } airquality->amount = tmpAmount; // NOLINT(bugprone-narrowing-conversions,cppcoreguidelines-narrowing-conversions) - if (AddEventToTimeline(std::move(airquality))) { + if (!AddEventToTimeline(std::move(airquality))) { + CleanUpQcbor(&decodeContext); return BLE_ATT_ERR_INVALID_ATTR_VALUE_LEN; } break; @@ -107,6 +113,7 @@ namespace Pinetime { int64_t tmpType = 0; QCBORDecode_GetInt64InMapSZ(&decodeContext, "Type", &tmpType); if (tmpType < 0 || tmpType >= static_cast(WeatherData::obscurationtype::Length)) { + CleanUpQcbor(&decodeContext); return BLE_ATT_ERR_INVALID_ATTR_VALUE_LEN; } obscuration->type = static_cast(tmpType); @@ -114,11 +121,13 @@ namespace Pinetime { int64_t tmpAmount = 0; QCBORDecode_GetInt64InMapSZ(&decodeContext, "Amount", &tmpAmount); if (tmpAmount < 0 || tmpAmount > 65535) { + CleanUpQcbor(&decodeContext); return BLE_ATT_ERR_INVALID_ATTR_VALUE_LEN; } obscuration->amount = tmpAmount; // NOLINT(bugprone-narrowing-conversions,cppcoreguidelines-narrowing-conversions) - if (AddEventToTimeline(std::move(obscuration))) { + if (!AddEventToTimeline(std::move(obscuration))) { + CleanUpQcbor(&decodeContext); return BLE_ATT_ERR_INVALID_ATTR_VALUE_LEN; } break; @@ -132,6 +141,7 @@ namespace Pinetime { int64_t tmpType = 0; QCBORDecode_GetInt64InMapSZ(&decodeContext, "Type", &tmpType); if (tmpType < 0 || tmpType >= static_cast(WeatherData::precipitationtype::Length)) { + CleanUpQcbor(&decodeContext); return BLE_ATT_ERR_INVALID_ATTR_VALUE_LEN; } precipitation->type = static_cast(tmpType); @@ -139,11 +149,13 @@ namespace Pinetime { int64_t tmpAmount = 0; QCBORDecode_GetInt64InMapSZ(&decodeContext, "Amount", &tmpAmount); if (tmpAmount < 0 || tmpAmount > 255) { + CleanUpQcbor(&decodeContext); return BLE_ATT_ERR_INVALID_ATTR_VALUE_LEN; } precipitation->amount = tmpAmount; // NOLINT(bugprone-narrowing-conversions,cppcoreguidelines-narrowing-conversions) - if (AddEventToTimeline(std::move(precipitation))) { + if (!AddEventToTimeline(std::move(precipitation))) { + CleanUpQcbor(&decodeContext); return BLE_ATT_ERR_INVALID_ATTR_VALUE_LEN; } break; @@ -157,6 +169,7 @@ namespace Pinetime { int64_t tmpMin = 0; QCBORDecode_GetInt64InMapSZ(&decodeContext, "SpeedMin", &tmpMin); if (tmpMin < 0 || tmpMin > 255) { + CleanUpQcbor(&decodeContext); return BLE_ATT_ERR_INVALID_ATTR_VALUE_LEN; } wind->speedMin = tmpMin; // NOLINT(bugprone-narrowing-conversions,cppcoreguidelines-narrowing-conversions) @@ -164,6 +177,7 @@ namespace Pinetime { int64_t tmpMax = 0; QCBORDecode_GetInt64InMapSZ(&decodeContext, "SpeedMin", &tmpMax); if (tmpMax < 0 || tmpMax > 255) { + CleanUpQcbor(&decodeContext); return BLE_ATT_ERR_INVALID_ATTR_VALUE_LEN; } wind->speedMax = tmpMax; // NOLINT(bugprone-narrowing-conversions,cppcoreguidelines-narrowing-conversions) @@ -171,6 +185,7 @@ namespace Pinetime { int64_t tmpDMin = 0; QCBORDecode_GetInt64InMapSZ(&decodeContext, "DirectionMin", &tmpDMin); if (tmpDMin < 0 || tmpDMin > 255) { + CleanUpQcbor(&decodeContext); return BLE_ATT_ERR_INVALID_ATTR_VALUE_LEN; } wind->directionMin = tmpDMin; // NOLINT(bugprone-narrowing-conversions,cppcoreguidelines-narrowing-conversions) @@ -178,11 +193,13 @@ namespace Pinetime { int64_t tmpDMax = 0; QCBORDecode_GetInt64InMapSZ(&decodeContext, "DirectionMax", &tmpDMax); if (tmpDMax < 0 || tmpDMax > 255) { + CleanUpQcbor(&decodeContext); return BLE_ATT_ERR_INVALID_ATTR_VALUE_LEN; } wind->directionMax = tmpDMax; // NOLINT(bugprone-narrowing-conversions,cppcoreguidelines-narrowing-conversions) - if (AddEventToTimeline(std::move(wind))) { + if (!AddEventToTimeline(std::move(wind))) { + CleanUpQcbor(&decodeContext); return BLE_ATT_ERR_INVALID_ATTR_VALUE_LEN; } break; @@ -196,18 +213,23 @@ namespace Pinetime { int64_t tmpTemperature = 0; QCBORDecode_GetInt64InMapSZ(&decodeContext, "Temperature", &tmpTemperature); if (tmpTemperature < -32768 || tmpTemperature > 32767) { + CleanUpQcbor(&decodeContext); return BLE_ATT_ERR_INVALID_ATTR_VALUE_LEN; } - temperature->temperature = tmpTemperature; // NOLINT(bugprone-narrowing-conversions,cppcoreguidelines-narrowing-conversions) + temperature->temperature = + static_cast(tmpTemperature); // NOLINT(bugprone-narrowing-conversions,cppcoreguidelines-narrowing-conversions) int64_t tmpDewPoint = 0; QCBORDecode_GetInt64InMapSZ(&decodeContext, "DewPoint", &tmpDewPoint); if (tmpDewPoint < -32768 || tmpDewPoint > 32767) { + CleanUpQcbor(&decodeContext); return BLE_ATT_ERR_INVALID_ATTR_VALUE_LEN; } - temperature->dewPoint = tmpDewPoint; // NOLINT(bugprone-narrowing-conversions,cppcoreguidelines-narrowing-conversions) + temperature->dewPoint = + static_cast(tmpDewPoint); // NOLINT(bugprone-narrowing-conversions,cppcoreguidelines-narrowing-conversions) - if (AddEventToTimeline(std::move(temperature))) { + if (!AddEventToTimeline(std::move(temperature))) { + CleanUpQcbor(&decodeContext); return BLE_ATT_ERR_INVALID_ATTR_VALUE_LEN; } break; @@ -219,13 +241,15 @@ namespace Pinetime { special->expires = tmpExpires; int64_t tmpType = 0; - QCBORDecode_GetInt64InMapSZ(&decodeContext, "DewPoint", &tmpType); + QCBORDecode_GetInt64InMapSZ(&decodeContext, "Type", &tmpType); if (tmpType < 0 || tmpType >= static_cast(WeatherData::specialtype::Length)) { + CleanUpQcbor(&decodeContext); return BLE_ATT_ERR_INVALID_ATTR_VALUE_LEN; } special->type = static_cast(tmpType); - if (AddEventToTimeline(std::move(special))) { + if (!AddEventToTimeline(std::move(special))) { + CleanUpQcbor(&decodeContext); return BLE_ATT_ERR_INVALID_ATTR_VALUE_LEN; } break; @@ -236,14 +260,16 @@ namespace Pinetime { pressure->eventType = static_cast(tmpEventType); pressure->expires = tmpExpires; - int64_t tmpDewPoint = 0; - QCBORDecode_GetInt64InMapSZ(&decodeContext, "DewPoint", &tmpDewPoint); - if (tmpDewPoint < 0 || tmpDewPoint >= 65535) { + int64_t tmpPressure = 0; + QCBORDecode_GetInt64InMapSZ(&decodeContext, "Pressure", &tmpPressure); + if (tmpPressure < 0 || tmpPressure >= 65535) { + CleanUpQcbor(&decodeContext); return BLE_ATT_ERR_INVALID_ATTR_VALUE_LEN; } - pressure->pressure = tmpDewPoint; // NOLINT(bugprone-narrowing-conversions,cppcoreguidelines-narrowing-conversions) + pressure->pressure = tmpPressure; // NOLINT(bugprone-narrowing-conversions,cppcoreguidelines-narrowing-conversions) - if (AddEventToTimeline(std::move(pressure))) { + if (!AddEventToTimeline(std::move(pressure))) { + CleanUpQcbor(&decodeContext); return BLE_ATT_ERR_INVALID_ATTR_VALUE_LEN; } break; @@ -257,6 +283,7 @@ namespace Pinetime { UsefulBufC stringBuf; // TODO: Everything ok with lifecycle here? QCBORDecode_GetTextStringInMapSZ(&decodeContext, "Location", &stringBuf); if (UsefulBuf_IsNULLOrEmptyC(stringBuf) != 0) { + CleanUpQcbor(&decodeContext); return BLE_ATT_ERR_INVALID_ATTR_VALUE_LEN; } location->location = std::string(static_cast(stringBuf.ptr), stringBuf.len); @@ -264,6 +291,7 @@ namespace Pinetime { int64_t tmpAltitude = 0; QCBORDecode_GetInt64InMapSZ(&decodeContext, "Altitude", &tmpAltitude); if (tmpAltitude < -32768 || tmpAltitude >= 32767) { + CleanUpQcbor(&decodeContext); return BLE_ATT_ERR_INVALID_ATTR_VALUE_LEN; } location->altitude = static_cast(tmpAltitude); @@ -271,6 +299,7 @@ namespace Pinetime { int64_t tmpLatitude = 0; QCBORDecode_GetInt64InMapSZ(&decodeContext, "Latitude", &tmpLatitude); if (tmpLatitude < -2147483648 || tmpLatitude >= 2147483647) { + CleanUpQcbor(&decodeContext); return BLE_ATT_ERR_INVALID_ATTR_VALUE_LEN; } location->latitude = static_cast(tmpLatitude); @@ -278,11 +307,13 @@ namespace Pinetime { int64_t tmpLongitude = 0; QCBORDecode_GetInt64InMapSZ(&decodeContext, "Longitude", &tmpLongitude); if (tmpLongitude < -2147483648 || tmpLongitude >= 2147483647) { + CleanUpQcbor(&decodeContext); return BLE_ATT_ERR_INVALID_ATTR_VALUE_LEN; } location->latitude = static_cast(tmpLongitude); - if (AddEventToTimeline(std::move(location))) { + if (!AddEventToTimeline(std::move(location))) { + CleanUpQcbor(&decodeContext); return BLE_ATT_ERR_INVALID_ATTR_VALUE_LEN; } break; @@ -296,11 +327,13 @@ namespace Pinetime { int64_t tmpAmount = 0; QCBORDecode_GetInt64InMapSZ(&decodeContext, "Amount", &tmpAmount); if (tmpAmount < 0 || tmpAmount > 255) { + CleanUpQcbor(&decodeContext); return BLE_ATT_ERR_INVALID_ATTR_VALUE_LEN; } clouds->amount = static_cast(tmpAmount); - if (AddEventToTimeline(std::move(clouds))) { + if (!AddEventToTimeline(std::move(clouds))) { + CleanUpQcbor(&decodeContext); return BLE_ATT_ERR_INVALID_ATTR_VALUE_LEN; } break; @@ -314,17 +347,20 @@ namespace Pinetime { int64_t tmpType = 0; QCBORDecode_GetInt64InMapSZ(&decodeContext, "Humidity", &tmpType); if (tmpType < 0 || tmpType >= 255) { + CleanUpQcbor(&decodeContext); return BLE_ATT_ERR_INVALID_ATTR_VALUE_LEN; } humidity->humidity = static_cast(tmpType); - if (AddEventToTimeline(std::move(humidity))) { + if (!AddEventToTimeline(std::move(humidity))) { + CleanUpQcbor(&decodeContext); return BLE_ATT_ERR_INVALID_ATTR_VALUE_LEN; } break; } default: { - break; + CleanUpQcbor(&decodeContext); + return BLE_ATT_ERR_INVALID_ATTR_VALUE_LEN; } } @@ -369,7 +405,7 @@ namespace Pinetime { std::unique_ptr& WeatherService::GetCurrentClouds() { uint64_t currentTimestamp = GetCurrentUnixTimestamp(); for (auto&& header : this->timeline) { - if (header->eventType == WeatherData::eventtype::Clouds && isEventStillValid(header, currentTimestamp)) { + if (header->eventType == WeatherData::eventtype::Clouds && IsEventStillValid(header, currentTimestamp)) { return reinterpret_cast&>(header); } } @@ -380,7 +416,7 @@ namespace Pinetime { std::unique_ptr& WeatherService::GetCurrentObscuration() { uint64_t currentTimestamp = GetCurrentUnixTimestamp(); for (auto&& header : this->timeline) { - if (header->eventType == WeatherData::eventtype::Obscuration && isEventStillValid(header, currentTimestamp)) { + if (header->eventType == WeatherData::eventtype::Obscuration && IsEventStillValid(header, currentTimestamp)) { return reinterpret_cast&>(header); } } @@ -391,7 +427,7 @@ namespace Pinetime { std::unique_ptr& WeatherService::GetCurrentPrecipitation() { uint64_t currentTimestamp = GetCurrentUnixTimestamp(); for (auto&& header : this->timeline) { - if (header->eventType == WeatherData::eventtype::Precipitation && isEventStillValid(header, currentTimestamp)) { + if (header->eventType == WeatherData::eventtype::Precipitation && IsEventStillValid(header, currentTimestamp)) { return reinterpret_cast&>(header); } } @@ -402,7 +438,7 @@ namespace Pinetime { std::unique_ptr& WeatherService::GetCurrentWind() { uint64_t currentTimestamp = GetCurrentUnixTimestamp(); for (auto&& header : this->timeline) { - if (header->eventType == WeatherData::eventtype::Wind && isEventStillValid(header, currentTimestamp)) { + if (header->eventType == WeatherData::eventtype::Wind && IsEventStillValid(header, currentTimestamp)) { return reinterpret_cast&>(header); } } @@ -413,7 +449,7 @@ namespace Pinetime { std::unique_ptr& WeatherService::GetCurrentTemperature() { uint64_t currentTimestamp = GetCurrentUnixTimestamp(); for (auto&& header : this->timeline) { - if (header->eventType == WeatherData::eventtype::Temperature && isEventStillValid(header, currentTimestamp)) { + if (header->eventType == WeatherData::eventtype::Temperature && IsEventStillValid(header, currentTimestamp)) { return reinterpret_cast&>(header); } } @@ -424,7 +460,7 @@ namespace Pinetime { std::unique_ptr& WeatherService::GetCurrentHumidity() { uint64_t currentTimestamp = GetCurrentUnixTimestamp(); for (auto&& header : this->timeline) { - if (header->eventType == WeatherData::eventtype::Humidity && isEventStillValid(header, currentTimestamp)) { + if (header->eventType == WeatherData::eventtype::Humidity && IsEventStillValid(header, currentTimestamp)) { return reinterpret_cast&>(header); } } @@ -435,7 +471,7 @@ namespace Pinetime { std::unique_ptr& WeatherService::GetCurrentPressure() { uint64_t currentTimestamp = GetCurrentUnixTimestamp(); for (auto&& header : this->timeline) { - if (header->eventType == WeatherData::eventtype::Pressure && isEventStillValid(header, currentTimestamp)) { + if (header->eventType == WeatherData::eventtype::Pressure && IsEventStillValid(header, currentTimestamp)) { return reinterpret_cast&>(header); } } @@ -446,7 +482,7 @@ namespace Pinetime { std::unique_ptr& WeatherService::GetCurrentLocation() { uint64_t currentTimestamp = GetCurrentUnixTimestamp(); for (auto&& header : this->timeline) { - if (header->eventType == WeatherData::eventtype::Location && isEventStillValid(header, currentTimestamp)) { + if (header->eventType == WeatherData::eventtype::Location && IsEventStillValid(header, currentTimestamp)) { return reinterpret_cast&>(header); } } @@ -457,7 +493,7 @@ namespace Pinetime { std::unique_ptr& WeatherService::GetCurrentQuality() { uint64_t currentTimestamp = GetCurrentUnixTimestamp(); for (auto&& header : this->timeline) { - if (header->eventType == WeatherData::eventtype::AirQuality && isEventStillValid(header, currentTimestamp)) { + if (header->eventType == WeatherData::eventtype::AirQuality && IsEventStillValid(header, currentTimestamp)) { return reinterpret_cast&>(header); } } @@ -481,7 +517,7 @@ namespace Pinetime { bool WeatherService::HasTimelineEventOfType(const WeatherData::eventtype type) const { uint64_t currentTimestamp = GetCurrentUnixTimestamp(); for (auto&& header : timeline) { - if (header->eventType == type && isEventStillValid(header, currentTimestamp)) { + if (header->eventType == type && IsEventStillValid(header, currentTimestamp)) { return true; } } @@ -493,7 +529,7 @@ namespace Pinetime { timeline.erase(std::remove_if(std::begin(timeline), std::end(timeline), [&](std::unique_ptr const& header) { - return !isEventStillValid(header, timeCurrent); + return !IsEventStillValid(header, timeCurrent); }), std::end(timeline)); @@ -505,9 +541,9 @@ namespace Pinetime { return first->timestamp > second->timestamp; } - bool WeatherService::isEventStillValid(const std::unique_ptr& header, const uint64_t currentTimestamp) { + bool WeatherService::IsEventStillValid(const std::unique_ptr& uniquePtr, const uint64_t timestamp) { // Not getting timestamp in isEventStillValid for more speed - return header->timestamp + header->expires <= currentTimestamp; + return uniquePtr->timestamp + uniquePtr->expires >= timestamp; } uint64_t WeatherService::GetCurrentUnixTimestamp() const { @@ -520,7 +556,7 @@ namespace Pinetime { ((60 - dateTimeController.Minutes()) * 60) - (60 - dateTimeController.Seconds()); int16_t result = -32768; for (auto&& header : this->timeline) { - if (header->eventType == WeatherData::eventtype::Temperature && isEventStillValid(header, currentTimestamp) && + if (header->eventType == WeatherData::eventtype::Temperature && IsEventStillValid(header, currentTimestamp) && header->timestamp < currentDayEnd && reinterpret_cast&>(header)->temperature != -32768) { int16_t temperature = reinterpret_cast&>(header)->temperature; @@ -543,7 +579,7 @@ namespace Pinetime { ((60 - dateTimeController.Minutes()) * 60) - (60 - dateTimeController.Seconds()); int16_t result = -32768; for (auto&& header : this->timeline) { - if (header->eventType == WeatherData::eventtype::Temperature && isEventStillValid(header, currentTimestamp) && + if (header->eventType == WeatherData::eventtype::Temperature && IsEventStillValid(header, currentTimestamp) && header->timestamp < currentDayEnd && reinterpret_cast&>(header)->temperature != -32768) { int16_t temperature = reinterpret_cast&>(header)->temperature; @@ -559,5 +595,10 @@ namespace Pinetime { return result; } + + void WeatherService::CleanUpQcbor(QCBORDecodeContext* decodeContext) { + QCBORDecode_ExitMap(decodeContext); + QCBORDecode_Finish(decodeContext); + } } } diff --git a/src/components/ble/weather/WeatherService.h b/src/components/ble/weather/WeatherService.h index 52b0356a..a9f02b16 100644 --- a/src/components/ble/weather/WeatherService.h +++ b/src/components/ble/weather/WeatherService.h @@ -30,7 +30,8 @@ #undef min #include "WeatherData.h" -#include +#include "libs/QCBOR/inc/qcbor/qcbor.h" +#include "components/datetime/DateTimeController.h" int WeatherCallback(uint16_t connHandle, uint16_t attrHandle, struct ble_gatt_access_ctxt* ctxt, void* arg); @@ -160,7 +161,9 @@ namespace Pinetime { * @param currentTimestamp what's the time right now * @return if the event is valid */ - static bool isEventStillValid(const std::unique_ptr& uniquePtr, const uint64_t timestamp); + static bool IsEventStillValid(const std::unique_ptr& uniquePtr, const uint64_t timestamp); + + void CleanUpQcbor(QCBORDecodeContext* decodeContext); }; } } diff --git a/src/displayapp/DisplayApp.cpp b/src/displayapp/DisplayApp.cpp index 80155187..d45251b9 100644 --- a/src/displayapp/DisplayApp.cpp +++ b/src/displayapp/DisplayApp.cpp @@ -1,5 +1,6 @@ #include "displayapp/DisplayApp.h" #include +#include #include "displayapp/screens/HeartRate.h" #include "displayapp/screens/Motion.h" #include "displayapp/screens/Timer.h" @@ -439,7 +440,8 @@ void DisplayApp::LoadApp(Apps app, DisplayApp::FullRefreshDirections direction) currentScreen = std::make_unique(this, systemTask->nimble().music()); break; case Apps::Navigation: - currentScreen = std::make_unique(this, systemTask->nimble().navigation()); + currentScreen = std::make_unique(this, systemTask->nimble().weather()); + // currentScreen = std::make_unique(this, systemTask->nimble().navigation()); break; case Apps::HeartRate: currentScreen = std::make_unique(this, heartRateController, *systemTask); @@ -451,6 +453,9 @@ void DisplayApp::LoadApp(Apps app, DisplayApp::FullRefreshDirections direction) case Apps::Motion: currentScreen = std::make_unique(this, motionController); break; + case Apps::Weather: + currentScreen = std::make_unique(this, systemTask->nimble().weather()); + break; case Apps::Steps: currentScreen = std::make_unique(this, motionController, settingsController); break; diff --git a/src/displayapp/screens/Weather.cpp b/src/displayapp/screens/Weather.cpp index c9852ee1..d4241194 100644 --- a/src/displayapp/screens/Weather.cpp +++ b/src/displayapp/screens/Weather.cpp @@ -76,22 +76,22 @@ std::unique_ptr Weather::CreateScreenTemperature() { // Do not use the data, it's invalid lv_label_set_text_fmt(label, "#FFFF00 Temperature#\n\n" - "#444444 %d#\n\n" + "#444444 %.2f#°C \n\n" "#444444 %d#\n\n" "%d\n" "%d\n", - 0, + 0.0f, 0, 0, 0); } else { lv_label_set_text_fmt(label, "#FFFF00 Temperature#\n\n" - "#444444 %hd%%#°C \n\n" + "#444444 %.2f#°C \n\n" "#444444 %hd#\n\n" "%llu\n" "%lu\n", - current->temperature, + current->temperature / 100.0f, current->dewPoint, current->timestamp, current->expires); From 0df49bd43d6d02d8d50918543ae3eda77f31c651 Mon Sep 17 00:00:00 2001 From: Avamander Date: Fri, 3 Dec 2021 17:06:30 +0200 Subject: [PATCH 111/188] Removed float usage from display --- src/displayapp/screens/Weather.cpp | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/displayapp/screens/Weather.cpp b/src/displayapp/screens/Weather.cpp index d4241194..fcc15d61 100644 --- a/src/displayapp/screens/Weather.cpp +++ b/src/displayapp/screens/Weather.cpp @@ -76,22 +76,22 @@ std::unique_ptr Weather::CreateScreenTemperature() { // Do not use the data, it's invalid lv_label_set_text_fmt(label, "#FFFF00 Temperature#\n\n" - "#444444 %.2f#°C \n\n" + "#444444 %d#°C \n\n" "#444444 %d#\n\n" "%d\n" "%d\n", - 0.0f, + 0, 0, 0, 0); } else { lv_label_set_text_fmt(label, "#FFFF00 Temperature#\n\n" - "#444444 %.2f#°C \n\n" + "#444444 %d#°C \n\n" "#444444 %hd#\n\n" "%llu\n" "%lu\n", - current->temperature / 100.0f, + current->temperature / 100, current->dewPoint, current->timestamp, current->expires); From 7b04ce5ebaf1d73feac529bd16828415e5a046c7 Mon Sep 17 00:00:00 2001 From: Avamander Date: Fri, 3 Dec 2021 17:38:23 +0200 Subject: [PATCH 112/188] Added a note about the timestamp having a timezone offset --- src/components/ble/weather/WeatherData.h | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/components/ble/weather/WeatherData.h b/src/components/ble/weather/WeatherData.h index d56f481c..42572ec0 100644 --- a/src/components/ble/weather/WeatherData.h +++ b/src/components/ble/weather/WeatherData.h @@ -182,7 +182,11 @@ namespace Pinetime { /** The header used for further parsing */ class TimelineHeader { public: - /** UNIX timestamp */ + /** + * UNIX timestamp + * TODO: This is currently WITH A TIMEZONE OFFSET! + * Please send events with the timestamp offset by the timezone. + **/ uint64_t timestamp; /** * Time in seconds until the event expires From 6879147648370dea405c169d0e1caea5c2009cbd Mon Sep 17 00:00:00 2001 From: Avamander Date: Sat, 4 Dec 2021 11:46:14 +0200 Subject: [PATCH 113/188] Revert wrong change to DisplayApp --- src/displayapp/DisplayApp.cpp | 7 +------ 1 file changed, 1 insertion(+), 6 deletions(-) diff --git a/src/displayapp/DisplayApp.cpp b/src/displayapp/DisplayApp.cpp index d45251b9..80155187 100644 --- a/src/displayapp/DisplayApp.cpp +++ b/src/displayapp/DisplayApp.cpp @@ -1,6 +1,5 @@ #include "displayapp/DisplayApp.h" #include -#include #include "displayapp/screens/HeartRate.h" #include "displayapp/screens/Motion.h" #include "displayapp/screens/Timer.h" @@ -440,8 +439,7 @@ void DisplayApp::LoadApp(Apps app, DisplayApp::FullRefreshDirections direction) currentScreen = std::make_unique(this, systemTask->nimble().music()); break; case Apps::Navigation: - currentScreen = std::make_unique(this, systemTask->nimble().weather()); - // currentScreen = std::make_unique(this, systemTask->nimble().navigation()); + currentScreen = std::make_unique(this, systemTask->nimble().navigation()); break; case Apps::HeartRate: currentScreen = std::make_unique(this, heartRateController, *systemTask); @@ -453,9 +451,6 @@ void DisplayApp::LoadApp(Apps app, DisplayApp::FullRefreshDirections direction) case Apps::Motion: currentScreen = std::make_unique(this, motionController); break; - case Apps::Weather: - currentScreen = std::make_unique(this, systemTask->nimble().weather()); - break; case Apps::Steps: currentScreen = std::make_unique(this, motionController, settingsController); break; From f1f2bc119a7c855613616ecaf5c8aa72390cde14 Mon Sep 17 00:00:00 2001 From: Avamander Date: Sat, 4 Dec 2021 13:58:40 +0200 Subject: [PATCH 114/188] Added a note about map key capitalization --- src/components/ble/weather/WeatherData.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/components/ble/weather/WeatherData.h b/src/components/ble/weather/WeatherData.h index 42572ec0..613d5acb 100644 --- a/src/components/ble/weather/WeatherData.h +++ b/src/components/ble/weather/WeatherData.h @@ -29,7 +29,7 @@ * you'll get an error returned. Data is relatively well-validated, * so keep in the bounds of the data types given. * - * Write all struct members into a single finite-sized map, and write it to the characteristic. + * Write all struct members (CamelCase keys) into a single finite-sized map, and write it to the characteristic. * Mind the MTU. * * How to debug? From 3eebe66d659c9c8e72a7c355973c74c2b8899174 Mon Sep 17 00:00:00 2001 From: Avamander Date: Sat, 4 Dec 2021 17:12:34 +0200 Subject: [PATCH 115/188] Updated docs and renamed functions for consistency --- doc/ble.md | 18 +++++++++++------- src/components/ble/weather/WeatherService.cpp | 4 ++-- src/components/ble/weather/WeatherService.h | 11 +++++++---- 3 files changed, 20 insertions(+), 13 deletions(-) diff --git a/doc/ble.md b/doc/ble.md index 8573166f..2b86243e 100644 --- a/doc/ble.md +++ b/doc/ble.md @@ -2,7 +2,7 @@ ## Introduction This page describes the BLE implementation and API built in this firmware. -**Note** : I'm a beginner in BLE related technologies and the information in this document reflects my current knowledge and understanding of the BLE stack. This information might be erroneous or incomplete. Feel free to submit a PR if you think you can improve it. +**Note**: I'm a beginner in BLE related technologies and the information in this document reflects my current knowledge and understanding of the BLE stack. This information might be erroneous or incomplete. Feel free to submit a PR if you think you can improve it. --- @@ -72,12 +72,16 @@ The following custom services are implemented in InfiniTime: * [Navigation Service](NavigationService.md) : 00010000-78fc-48fe-8e23-433b3a1942d0 - - Since InfiniTime 0.13 - * Call characteristic (extension to the Alert Notification Service): 00020001-78fc-48fe-8e23-433b3a1942d0 - - - - Since InfiniTime 1.7: - * [Motion Service](MotionService.md) : 00030000-78fc-48fe-8e23-433b3a1942d0 +- Since InfiniTime 0.13 + * Call characteristic (extension to the Alert Notification Service): 00020001-78fc-48fe-8e23-433b3a1942d0 + + +- Since InfiniTime 1.7: + * [Motion Service](MotionService.md): 00030000-78fc-48fe-8e23-433b3a1942d0 + + +- Since InfiniTime 1.8: + * [Weather Service](/src/components/ble/weather/WeatherService.h): 00040000-78fc-48fe-8e23-433b3a1942d0 --- diff --git a/src/components/ble/weather/WeatherService.cpp b/src/components/ble/weather/WeatherService.cpp index f3be35f2..23f53b74 100644 --- a/src/components/ble/weather/WeatherService.cpp +++ b/src/components/ble/weather/WeatherService.cpp @@ -550,7 +550,7 @@ namespace Pinetime { return std::chrono::duration_cast(dateTimeController.CurrentDateTime().time_since_epoch()).count(); } - int16_t WeatherService::getTodayMinTemp() const { + int16_t WeatherService::GetTodayMinTemp() const { uint64_t currentTimestamp = GetCurrentUnixTimestamp(); uint64_t currentDayEnd = currentTimestamp - ((24 - dateTimeController.Hours()) * 60 * 60) - ((60 - dateTimeController.Minutes()) * 60) - (60 - dateTimeController.Seconds()); @@ -573,7 +573,7 @@ namespace Pinetime { return result; } - int16_t WeatherService::getTodayMaxTemp() const { + int16_t WeatherService::GetTodayMaxTemp() const { uint64_t currentTimestamp = GetCurrentUnixTimestamp(); uint64_t currentDayEnd = currentTimestamp - ((24 - dateTimeController.Hours()) * 60 * 60) - ((60 - dateTimeController.Minutes()) * 60) - (60 - dateTimeController.Seconds()); diff --git a/src/components/ble/weather/WeatherService.h b/src/components/ble/weather/WeatherService.h index a9f02b16..eca70cbd 100644 --- a/src/components/ble/weather/WeatherService.h +++ b/src/components/ble/weather/WeatherService.h @@ -64,14 +64,14 @@ namespace Pinetime { /** * Searches for the current day's maximum temperature - * @return -32768 if there's no data, degrees celcius times 100 otherwise + * @return -32768 if there's no data, degrees Celsius times 100 otherwise */ - int16_t getTodayMaxTemp() const; + int16_t GetTodayMaxTemp() const; /** * Searches for the current day's minimum temperature - * @return -32768 if there's no data, degrees celcius times 100 otherwise + * @return -32768 if there's no data, degrees Celsius times 100 otherwise */ - int16_t getTodayMinTemp() const; + int16_t GetTodayMinTemp() const; /* * Management functions @@ -163,6 +163,9 @@ namespace Pinetime { */ static bool IsEventStillValid(const std::unique_ptr& uniquePtr, const uint64_t timestamp); + /** + * This is a helper function that closes a QCBOR map and decoding context cleanly + */ void CleanUpQcbor(QCBORDecodeContext* decodeContext); }; } From 5f50f0e538e20ede353b388148b706319da161ce Mon Sep 17 00:00:00 2001 From: Avamander Date: Sat, 4 Dec 2021 20:09:37 +0200 Subject: [PATCH 116/188] Fixed air quality amounts being off by a few orders of magnitude --- src/displayapp/screens/Weather.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/displayapp/screens/Weather.cpp b/src/displayapp/screens/Weather.cpp index fcc15d61..1d0a83bd 100644 --- a/src/displayapp/screens/Weather.cpp +++ b/src/displayapp/screens/Weather.cpp @@ -125,7 +125,7 @@ std::unique_ptr Weather::CreateScreenAir() { "%llu\n" "%lu\n", current->polluter.c_str(), - current->amount, + (current->amount / 100), current->timestamp, current->expires); } From ae4b9e0f2e877d200bd780f99e2a8952f9f8bf5b Mon Sep 17 00:00:00 2001 From: Kieran Cawthray Date: Mon, 6 Dec 2021 10:29:14 +0100 Subject: [PATCH 117/188] Include Colors.h --- src/displayapp/screens/PineTimeStyle.h | 1 + 1 file changed, 1 insertion(+) diff --git a/src/displayapp/screens/PineTimeStyle.h b/src/displayapp/screens/PineTimeStyle.h index 3632e57f..c6436887 100644 --- a/src/displayapp/screens/PineTimeStyle.h +++ b/src/displayapp/screens/PineTimeStyle.h @@ -5,6 +5,7 @@ #include #include #include "displayapp/screens/Screen.h" +#include "displayapp/Colors.h" #include "components/datetime/DateTimeController.h" namespace Pinetime { From 62dbcbfc953a36202d96466563a8e71b8bd4ff65 Mon Sep 17 00:00:00 2001 From: "James A. Jerkins" Date: Sat, 30 Oct 2021 13:02:39 -0500 Subject: [PATCH 118/188] Connect and bond with a passkey This commit adds the following: Passkey pairing - passkey is displayed on watch Swipe down to clear passkey screen Connection encryption Connection bonding Automatic reconnects to a bonded peripheral Trusted device on Android Note that persisting the bond between reboots is NOT included in this commit. Therefore, rebooting the watch will cause reconnect failures. You must delete the bond from the phone to reconnect/pair. --- src/CMakeLists.txt | 2 + .../ble/BatteryInformationService.cpp | 2 +- src/components/ble/BleController.h | 11 +- src/components/ble/NimbleController.cpp | 106 +++++++++++++----- src/displayapp/Apps.h | 1 + src/displayapp/DisplayApp.cpp | 9 ++ src/displayapp/Messages.h | 1 + src/displayapp/screens/PassKey.cpp | 17 +++ src/displayapp/screens/PassKey.h | 20 ++++ .../porting/nimble/include/syscfg/syscfg.h | 16 +-- src/sdk_config.h | 2 +- src/systemtask/Messages.h | 1 + src/systemtask/SystemTask.cpp | 7 ++ 13 files changed, 154 insertions(+), 41 deletions(-) create mode 100644 src/displayapp/screens/PassKey.cpp create mode 100644 src/displayapp/screens/PassKey.h diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index e727b2b0..fecd09dd 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -154,6 +154,7 @@ set(NIMBLE_SRC libs/mynewt-nimble/nimble/controller/src/ble_ll_supp_cmd.c libs/mynewt-nimble/nimble/controller/src/ble_ll_hci_ev.c libs/mynewt-nimble/nimble/controller/src/ble_ll_rfmgmt.c + libs/mynewt-nimble/nimble/controller/src/ble_ll_resolv.c libs/mynewt-nimble/porting/nimble/src/os_cputime.c libs/mynewt-nimble/porting/nimble/src/os_cputime_pwr2.c libs/mynewt-nimble/porting/nimble/src/os_mbuf.c @@ -421,6 +422,7 @@ list(APPEND SOURCE_FILES displayapp/screens/BatteryInfo.cpp displayapp/screens/Steps.cpp displayapp/screens/Timer.cpp + displayapp/screens/PassKey.cpp displayapp/screens/Error.cpp displayapp/screens/Alarm.cpp displayapp/Colors.cpp diff --git a/src/components/ble/BatteryInformationService.cpp b/src/components/ble/BatteryInformationService.cpp index 9a3f86f5..82df7b15 100644 --- a/src/components/ble/BatteryInformationService.cpp +++ b/src/components/ble/BatteryInformationService.cpp @@ -17,7 +17,7 @@ BatteryInformationService::BatteryInformationService(Controllers::Battery& batte characteristicDefinition {{.uuid = &batteryLevelUuid.u, .access_cb = BatteryInformationServiceCallback, .arg = this, - .flags = BLE_GATT_CHR_F_READ | BLE_GATT_CHR_F_NOTIFY, + .flags = BLE_GATT_CHR_F_READ | BLE_GATT_CHR_F_READ_ENC | BLE_GATT_CHR_F_READ_AUTHEN | BLE_GATT_CHR_F_NOTIFY, .val_handle = &batteryLevelHandle}, {0}}, serviceDefinition { diff --git a/src/components/ble/BleController.h b/src/components/ble/BleController.h index 2cba26a9..72b87663 100644 --- a/src/components/ble/BleController.h +++ b/src/components/ble/BleController.h @@ -9,7 +9,7 @@ namespace Pinetime { public: using BleAddress = std::array; enum class FirmwareUpdateStates { Idle, Running, Validated, Error }; - enum class AddressTypes { Public, Random }; + enum class AddressTypes { Public, Random, RPA_Public, RPA_Random }; Ble() = default; bool IsConnected() const { @@ -48,6 +48,12 @@ namespace Pinetime { void AddressType(AddressTypes t) { addressType = t; } + void SetPairingKey(uint32_t k) { + pairingKey = k; + } + uint32_t GetPairingKey() const { + return pairingKey; + } private: bool isConnected = false; @@ -57,6 +63,7 @@ namespace Pinetime { FirmwareUpdateStates firmwareUpdateState = FirmwareUpdateStates::Idle; BleAddress address; AddressTypes addressType; + uint32_t pairingKey = 0; }; } -} \ No newline at end of file +} diff --git a/src/components/ble/NimbleController.cpp b/src/components/ble/NimbleController.cpp index 43a8b0d6..01901e0a 100644 --- a/src/components/ble/NimbleController.cpp +++ b/src/components/ble/NimbleController.cpp @@ -1,4 +1,6 @@ #include "components/ble/NimbleController.h" +#include + #include #define min // workaround: nimble's min/max macros conflict with libstdc++ #define max @@ -6,6 +8,7 @@ #include #include #include +#include #undef max #undef min #include @@ -45,16 +48,18 @@ NimbleController::NimbleController(Pinetime::System::SystemTask& systemTask, } void nimble_on_reset(int reason) { - NRF_LOG_INFO("Resetting state; reason=%d\n", reason); + NRF_LOG_INFO("Nimble lost sync, resetting state; reason=%d", reason); } void nimble_on_sync(void) { - int rc; + int rc; - rc = ble_hs_util_ensure_addr(0); - ASSERT(rc == 0); + NRF_LOG_INFO("Nimble is synced"); - nptr->StartAdvertising(); + rc = ble_hs_util_ensure_addr(0); + ASSERT(rc == 0); + + nptr->StartAdvertising(); } int GAPEventCallback(struct ble_gap_event* event, void* arg) { @@ -69,6 +74,7 @@ void NimbleController::Init() { nptr = this; ble_hs_cfg.reset_cb = nimble_on_reset; ble_hs_cfg.sync_cb = nimble_on_sync; + ble_hs_cfg.store_status_cb = ble_store_util_status_rr; ble_svc_gap_init(); ble_svc_gatt_init(); @@ -97,8 +103,22 @@ void NimbleController::Init() { Pinetime::Controllers::Ble::BleAddress address; rc = ble_hs_id_copy_addr(addrType, address.data(), nullptr); ASSERT(rc == 0); - bleController.AddressType((addrType == 0) ? Ble::AddressTypes::Public : Ble::AddressTypes::Random); + bleController.Address(std::move(address)); + switch (addrType) { + case BLE_OWN_ADDR_PUBLIC: + bleController.AddressType(Ble::AddressTypes::Public); + break; + case BLE_OWN_ADDR_RANDOM: + bleController.AddressType(Ble::AddressTypes::Random); + break; + case BLE_OWN_ADDR_RPA_PUBLIC_DEFAULT: + bleController.AddressType(Ble::AddressTypes::RPA_Public); + break; + case BLE_OWN_ADDR_RPA_RANDOM_DEFAULT: + bleController.AddressType(Ble::AddressTypes::RPA_Random); + break; + } rc = ble_gatts_start(); ASSERT(rc == 0); @@ -108,17 +128,10 @@ void NimbleController::Init() { } void NimbleController::StartAdvertising() { - int rc; - - /* set adv parameters */ struct ble_gap_adv_params adv_params; struct ble_hs_adv_fields fields; - /* advertising payload is split into advertising data and advertising - response, because all data cannot fit into single packet; name of device - is sent as response to scan request */ struct ble_hs_adv_fields rsp_fields; - /* fill all fields and parameters with zeros */ memset(&adv_params, 0, sizeof(adv_params)); memset(&fields, 0, sizeof(fields)); memset(&rsp_fields, 0, sizeof(rsp_fields)); @@ -141,10 +154,11 @@ void NimbleController::StartAdvertising() { fields.uuids128_is_complete = 1; fields.tx_pwr_lvl = BLE_HS_ADV_TX_PWR_LVL_AUTO; - rsp_fields.name = (uint8_t*) deviceName; + rsp_fields.name = reinterpret_cast(deviceName); rsp_fields.name_len = strlen(deviceName); rsp_fields.name_is_complete = 1; + int rc; rc = ble_gap_adv_set_fields(&fields); ASSERT(rc == 0); @@ -159,15 +173,14 @@ int NimbleController::OnGAPEvent(ble_gap_event* event) { switch (event->type) { case BLE_GAP_EVENT_ADV_COMPLETE: NRF_LOG_INFO("Advertising event : BLE_GAP_EVENT_ADV_COMPLETE"); - NRF_LOG_INFO("reason=%d; status=%d", event->adv_complete.reason, event->connect.status); + NRF_LOG_INFO("reason=%d; status=%0X", event->adv_complete.reason, event->connect.status); StartAdvertising(); break; case BLE_GAP_EVENT_CONNECT: - NRF_LOG_INFO("Advertising event : BLE_GAP_EVENT_CONNECT"); - /* A new connection was established or a connection attempt failed. */ - NRF_LOG_INFO("connection %s; status=%d ", event->connect.status == 0 ? "established" : "failed", event->connect.status); + NRF_LOG_INFO("Connect event : BLE_GAP_EVENT_CONNECT"); + NRF_LOG_INFO("connection %s; status=%0X ", event->connect.status == 0 ? "established" : "failed", event->connect.status); if (event->connect.status != 0) { /* Connection failed; resume advertising. */ @@ -186,10 +199,9 @@ int NimbleController::OnGAPEvent(ble_gap_event* event) { break; case BLE_GAP_EVENT_DISCONNECT: - NRF_LOG_INFO("Advertising event : BLE_GAP_EVENT_DISCONNECT"); - NRF_LOG_INFO("disconnect reason=%d", event->disconnect.reason); - /* Connection terminated; resume advertising. */ + NRF_LOG_INFO("Disconnect event : BLE_GAP_EVENT_DISCONNECT"); + NRF_LOG_INFO("disconnect reason=%d", event->disconnect.reason); currentTimeClient.Reset(); alertNotificationClient.Reset(); connectionHandle = BLE_HS_CONN_HANDLE_NONE; @@ -199,18 +211,45 @@ int NimbleController::OnGAPEvent(ble_gap_event* event) { break; case BLE_GAP_EVENT_CONN_UPDATE: - NRF_LOG_INFO("Advertising event : BLE_GAP_EVENT_CONN_UPDATE"); /* The central has updated the connection parameters. */ - NRF_LOG_INFO("update status=%d ", event->conn_update.status); + NRF_LOG_INFO("Update event : BLE_GAP_EVENT_CONN_UPDATE"); + NRF_LOG_INFO("update status=%0X ", event->conn_update.status); + break; + + case BLE_GAP_EVENT_CONN_UPDATE_REQ: + /* The central has requested updated connection parameters */ + NRF_LOG_INFO("Update event : BLE_GAP_EVENT_CONN_UPDATE_REQ"); + NRF_LOG_INFO("update request : itvl_min=%d itvl_max=%d latency=%d supervision=%d", + event->conn_update_req.peer_params->itvl_min, + event->conn_update_req.peer_params->itvl_max, + event->conn_update_req.peer_params->latency, + event->conn_update_req.peer_params->supervision_timeout); break; case BLE_GAP_EVENT_ENC_CHANGE: /* Encryption has been enabled or disabled for this connection. */ - NRF_LOG_INFO("encryption change event; status=%d ", event->enc_change.status); + NRF_LOG_INFO("Security event : BLE_GAP_EVENT_ENC_CHANGE"); + NRF_LOG_INFO("encryption change event; status=%0X ", event->enc_change.status); + break; + + case BLE_GAP_EVENT_PASSKEY_ACTION: + /* Authentication has been requested for this connection. + * Standards insist that the rand() PRNG be deterministic. + * Use the nimble TRNG since rand() is predictable. + */ + NRF_LOG_INFO("Security event : BLE_GAP_EVENT_PASSKEY_ACTION"); + if (event->passkey.params.action == BLE_SM_IOACT_DISP) { + struct ble_sm_io pkey = {0}; + pkey.action = event->passkey.params.action; + pkey.passkey = ble_ll_rand() % 1000000; + bleController.SetPairingKey(pkey.passkey); + systemTask.PushMessage(Pinetime::System::Messages::OnPairing); + ble_sm_inject_io(event->passkey.conn_handle, &pkey); + } break; case BLE_GAP_EVENT_SUBSCRIBE: - NRF_LOG_INFO("subscribe event; conn_handle=%d attr_handle=%d " + NRF_LOG_INFO("Subscribe event; conn_handle=%d attr_handle=%d " "reason=%d prevn=%d curn=%d previ=%d curi=???\n", event->subscribe.conn_handle, event->subscribe.attr_handle, @@ -234,11 +273,11 @@ int NimbleController::OnGAPEvent(ble_gap_event* event) { break; case BLE_GAP_EVENT_MTU: - NRF_LOG_INFO("mtu update event; conn_handle=%d cid=%d mtu=%d\n", - event->mtu.conn_handle, event->mtu.channel_id, event->mtu.value); + NRF_LOG_INFO("MTU Update event; conn_handle=%d cid=%d mtu=%d", event->mtu.conn_handle, event->mtu.channel_id, event->mtu.value); break; case BLE_GAP_EVENT_REPEAT_PAIRING: { + NRF_LOG_INFO("Pairing event : BLE_GAP_EVENT_REPEAT_PAIRING"); /* We already have a bond with the peer, but it is attempting to * establish a new secure link. This app sacrifices security for * convenience: just throw away the old bond and accept the new link. @@ -257,6 +296,8 @@ int NimbleController::OnGAPEvent(ble_gap_event* event) { case BLE_GAP_EVENT_NOTIFY_RX: { /* Peer sent us a notification or indication. */ + /* Attribute data is contained in event->notify_rx.attr_data. */ + NRF_LOG_INFO("Notify event : BLE_GAP_EVENT_NOTIFY_RX"); size_t notifSize = OS_MBUF_PKTLEN(event->notify_rx.om); NRF_LOG_INFO("received %s; conn_handle=%d attr_handle=%d " @@ -268,10 +309,17 @@ int NimbleController::OnGAPEvent(ble_gap_event* event) { alertNotificationClient.OnNotification(event); } break; - /* Attribute data is contained in event->notify_rx.attr_data. */ + + case BLE_GAP_EVENT_NOTIFY_TX: + NRF_LOG_INFO("Notify event : BLE_GAP_EVENT_NOTIFY_TX"); + break; + + case BLE_GAP_EVENT_IDENTITY_RESOLVED: + NRF_LOG_INFO("Identity event : BLE_GAP_EVENT_IDENTITY_RESOLVED"); + break; default: - // NRF_LOG_INFO("Advertising event : %d", event->type); + NRF_LOG_INFO("UNHANDLED GAP event : %d", event->type); break; } return 0; diff --git a/src/displayapp/Apps.h b/src/displayapp/Apps.h index d340efee..935a61a1 100644 --- a/src/displayapp/Apps.h +++ b/src/displayapp/Apps.h @@ -25,6 +25,7 @@ namespace Pinetime { Metronome, Motion, Steps, + PassKey, QuickSettings, Settings, SettingWatchFace, diff --git a/src/displayapp/DisplayApp.cpp b/src/displayapp/DisplayApp.cpp index 80155187..08a76467 100644 --- a/src/displayapp/DisplayApp.cpp +++ b/src/displayapp/DisplayApp.cpp @@ -29,6 +29,7 @@ #include "displayapp/screens/FlashLight.h" #include "displayapp/screens/BatteryInfo.h" #include "displayapp/screens/Steps.h" +#include "displayapp/screens/PassKey.h" #include "displayapp/screens/Error.h" #include "drivers/Cst816s.h" @@ -288,6 +289,9 @@ void DisplayApp::Refresh() { // Added to remove warning // What should happen here? break; + case Messages::ShowPairingKey: + LoadApp(Apps::PassKey, DisplayApp::FullRefreshDirections::Up); + break; } } @@ -351,6 +355,11 @@ void DisplayApp::LoadApp(Apps app, DisplayApp::FullRefreshDirections direction) ReturnApp(Apps::Clock, FullRefreshDirections::Down, TouchEvents::None); break; + case Apps::PassKey: + currentScreen = std::make_unique(this, bleController.GetPairingKey()); + ReturnApp(Apps::Clock, FullRefreshDirections::Down, TouchEvents::SwipeDown); + break; + case Apps::Notifications: currentScreen = std::make_unique( this, notificationManager, systemTask->nimble().alertService(), motorController, Screens::Notifications::Modes::Normal); diff --git a/src/displayapp/Messages.h b/src/displayapp/Messages.h index 29e09eb3..b22d6c3c 100644 --- a/src/displayapp/Messages.h +++ b/src/displayapp/Messages.h @@ -19,6 +19,7 @@ namespace Pinetime { UpdateTimeOut, DimScreen, RestoreBrightness, + ShowPairingKey, AlarmTriggered }; } diff --git a/src/displayapp/screens/PassKey.cpp b/src/displayapp/screens/PassKey.cpp new file mode 100644 index 00000000..66bf0c24 --- /dev/null +++ b/src/displayapp/screens/PassKey.cpp @@ -0,0 +1,17 @@ +#include "PassKey.h" +#include "displayapp/DisplayApp.h" + +using namespace Pinetime::Applications::Screens; + +PassKey::PassKey(Pinetime::Applications::DisplayApp* app, uint32_t key) : Screen(app) { + lpasskey = lv_label_create(lv_scr_act(), nullptr); + lv_obj_set_style_local_text_color(lpasskey, LV_LABEL_PART_MAIN, LV_STATE_DEFAULT, lv_color_hex(0xFFFF00)); + lv_obj_set_style_local_text_font(lpasskey, LV_LABEL_PART_MAIN, LV_STATE_DEFAULT, &jetbrains_mono_42); + lv_label_set_text_fmt(lpasskey, "%06u", key); + lv_obj_align(lpasskey, nullptr, LV_ALIGN_CENTER, 0, -20); +} + +PassKey::~PassKey() { + lv_obj_clean(lv_scr_act()); +} + diff --git a/src/displayapp/screens/PassKey.h b/src/displayapp/screens/PassKey.h new file mode 100644 index 00000000..34e0d593 --- /dev/null +++ b/src/displayapp/screens/PassKey.h @@ -0,0 +1,20 @@ +#pragma once + +#include "Screen.h" +#include + +namespace Pinetime { + namespace Applications { + namespace Screens { + + class PassKey : public Screen { + public: + PassKey(DisplayApp* app, uint32_t key); + ~PassKey() override; + + private: + lv_obj_t* lpasskey; + }; + } + } +} diff --git a/src/libs/mynewt-nimble/porting/nimble/include/syscfg/syscfg.h b/src/libs/mynewt-nimble/porting/nimble/include/syscfg/syscfg.h index 94b72cb6..b3f23411 100644 --- a/src/libs/mynewt-nimble/porting/nimble/include/syscfg/syscfg.h +++ b/src/libs/mynewt-nimble/porting/nimble/include/syscfg/syscfg.h @@ -699,11 +699,11 @@ #endif #ifndef MYNEWT_VAL_BLE_SM_BONDING -#define MYNEWT_VAL_BLE_SM_BONDING (0) +#define MYNEWT_VAL_BLE_SM_BONDING (1) #endif #ifndef MYNEWT_VAL_BLE_SM_IO_CAP -#define MYNEWT_VAL_BLE_SM_IO_CAP (BLE_HS_IO_NO_INPUT_OUTPUT) +#define MYNEWT_VAL_BLE_SM_IO_CAP (BLE_HS_IO_DISPLAY_ONLY) #endif #ifndef MYNEWT_VAL_BLE_SM_KEYPRESS @@ -711,7 +711,7 @@ #endif #ifndef MYNEWT_VAL_BLE_SM_LEGACY -#define MYNEWT_VAL_BLE_SM_LEGACY (1) +#define MYNEWT_VAL_BLE_SM_LEGACY (0) #endif #ifndef MYNEWT_VAL_BLE_SM_MAX_PROCS @@ -719,7 +719,7 @@ #endif #ifndef MYNEWT_VAL_BLE_SM_MITM -#define MYNEWT_VAL_BLE_SM_MITM (0) +#define MYNEWT_VAL_BLE_SM_MITM (1) #endif #ifndef MYNEWT_VAL_BLE_SM_OOB_DATA_FLAG @@ -727,11 +727,11 @@ #endif #ifndef MYNEWT_VAL_BLE_SM_OUR_KEY_DIST -#define MYNEWT_VAL_BLE_SM_OUR_KEY_DIST (0) +#define MYNEWT_VAL_BLE_SM_OUR_KEY_DIST (7) #endif #ifndef MYNEWT_VAL_BLE_SM_SC -#define MYNEWT_VAL_BLE_SM_SC (0) +#define MYNEWT_VAL_BLE_SM_SC (1) #endif #ifndef MYNEWT_VAL_BLE_SM_SC_DEBUG_KEYS @@ -739,7 +739,7 @@ #endif #ifndef MYNEWT_VAL_BLE_SM_THEIR_KEY_DIST -#define MYNEWT_VAL_BLE_SM_THEIR_KEY_DIST (0) +#define MYNEWT_VAL_BLE_SM_THEIR_KEY_DIST (3) #endif #ifndef MYNEWT_VAL_BLE_STORE_MAX_BONDS @@ -1089,7 +1089,7 @@ /* Overridden by @apache-mynewt-nimble/targets/riot (defined by @apache-mynewt-nimble/nimble/controller) */ #ifndef MYNEWT_VAL_BLE_LL_CFG_FEAT_LL_PRIVACY -#define MYNEWT_VAL_BLE_LL_CFG_FEAT_LL_PRIVACY (0) +#define MYNEWT_VAL_BLE_LL_CFG_FEAT_LL_PRIVACY (1) #endif #ifndef MYNEWT_VAL_BLE_LL_CFG_FEAT_SLAVE_INIT_FEAT_XCHG diff --git a/src/sdk_config.h b/src/sdk_config.h index 38d47a7f..7634dca1 100644 --- a/src/sdk_config.h +++ b/src/sdk_config.h @@ -12580,4 +12580,4 @@ #endif // <<< end of configuration section >>> -#endif // SDK_CONFIG_H \ No newline at end of file +#endif // SDK_CONFIG_H diff --git a/src/systemtask/Messages.h b/src/systemtask/Messages.h index b7142704..516f6462 100644 --- a/src/systemtask/Messages.h +++ b/src/systemtask/Messages.h @@ -22,6 +22,7 @@ namespace Pinetime { DisableSleeping, OnNewDay, OnChargingEvent, + OnPairing, SetOffAlarm, StopRinging, MeasureBatteryTimerExpired, diff --git a/src/systemtask/SystemTask.cpp b/src/systemtask/SystemTask.cpp index 1120b80d..2fb4de51 100644 --- a/src/systemtask/SystemTask.cpp +++ b/src/systemtask/SystemTask.cpp @@ -396,6 +396,13 @@ void SystemTask::Work() { case Messages::BatteryPercentageUpdated: nimbleController.NotifyBatteryLevel(batteryController.PercentRemaining()); break; + case Messages::OnPairing: + if (isSleeping && !isWakingUp) { + GoToRunning(); + } + motorController.RunForDuration(35); + displayApp.PushMessage(Pinetime::Applications::Display::Messages::ShowPairingKey); + break; default: break; From 1e4130a9cfe6e1385d83d93e544d1e1cd79f11f8 Mon Sep 17 00:00:00 2001 From: "James A. Jerkins" Date: Mon, 1 Nov 2021 15:12:25 -0500 Subject: [PATCH 119/188] Fix for passkey screen scramble When a passkey is displayed, screen on or off, and another passkey is displayed the screen may become scrambled. Fix the issue by insuring the whole screen is drawn every time. --- src/displayapp/DisplayApp.cpp | 6 +++--- src/displayapp/screens/PassKey.cpp | 17 ++++++++++++----- src/displayapp/screens/PassKey.h | 3 ++- 3 files changed, 17 insertions(+), 9 deletions(-) diff --git a/src/displayapp/DisplayApp.cpp b/src/displayapp/DisplayApp.cpp index 08a76467..0a675c8f 100644 --- a/src/displayapp/DisplayApp.cpp +++ b/src/displayapp/DisplayApp.cpp @@ -215,6 +215,9 @@ void DisplayApp::Refresh() { } else { LoadApp(Apps::Alarm, DisplayApp::FullRefreshDirections::None); } + case Messages::ShowPairingKey: + LoadApp(Apps::PassKey, DisplayApp::FullRefreshDirections::Up); + break; case Messages::TouchEvent: { if (state != States::Running) { break; @@ -289,9 +292,6 @@ void DisplayApp::Refresh() { // Added to remove warning // What should happen here? break; - case Messages::ShowPairingKey: - LoadApp(Apps::PassKey, DisplayApp::FullRefreshDirections::Up); - break; } } diff --git a/src/displayapp/screens/PassKey.cpp b/src/displayapp/screens/PassKey.cpp index 66bf0c24..9e43a541 100644 --- a/src/displayapp/screens/PassKey.cpp +++ b/src/displayapp/screens/PassKey.cpp @@ -4,11 +4,18 @@ using namespace Pinetime::Applications::Screens; PassKey::PassKey(Pinetime::Applications::DisplayApp* app, uint32_t key) : Screen(app) { - lpasskey = lv_label_create(lv_scr_act(), nullptr); - lv_obj_set_style_local_text_color(lpasskey, LV_LABEL_PART_MAIN, LV_STATE_DEFAULT, lv_color_hex(0xFFFF00)); - lv_obj_set_style_local_text_font(lpasskey, LV_LABEL_PART_MAIN, LV_STATE_DEFAULT, &jetbrains_mono_42); - lv_label_set_text_fmt(lpasskey, "%06u", key); - lv_obj_align(lpasskey, nullptr, LV_ALIGN_CENTER, 0, -20); + passkeyLabel = lv_label_create(lv_scr_act(), nullptr); + lv_obj_set_style_local_text_color(passkeyLabel, LV_LABEL_PART_MAIN, LV_STATE_DEFAULT, lv_color_hex(0xFFFF00)); + lv_obj_set_style_local_text_font(passkeyLabel, LV_LABEL_PART_MAIN, LV_STATE_DEFAULT, &jetbrains_mono_42); + lv_label_set_text_fmt(passkeyLabel, "%06u", key); + lv_obj_align(passkeyLabel, nullptr, LV_ALIGN_CENTER, 0, -20); + + 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, ""); } PassKey::~PassKey() { diff --git a/src/displayapp/screens/PassKey.h b/src/displayapp/screens/PassKey.h index 34e0d593..16e72a3c 100644 --- a/src/displayapp/screens/PassKey.h +++ b/src/displayapp/screens/PassKey.h @@ -13,7 +13,8 @@ namespace Pinetime { ~PassKey() override; private: - lv_obj_t* lpasskey; + lv_obj_t* passkeyLabel; + lv_obj_t* backgroundLabel; }; } } From 150fa3b6615e524a072a1af6d6728519381fa737 Mon Sep 17 00:00:00 2001 From: "James A. Jerkins" Date: Sat, 4 Dec 2021 14:49:49 -0600 Subject: [PATCH 120/188] Persist bond between reboots Save bond information in the FS after a disconnect or encryption change if the bond is not already stored. The bond is restored on boot enabling automatic reconnection to a previously bonded central. Two consecutive watch reboots with the central out of range (or BLE off) will remove the stored bond from the watch. --- src/components/ble/NimbleController.cpp | 113 ++++++++++++++++++++++-- src/components/ble/NimbleController.h | 11 ++- src/systemtask/SystemTask.cpp | 3 +- 3 files changed, 117 insertions(+), 10 deletions(-) diff --git a/src/components/ble/NimbleController.cpp b/src/components/ble/NimbleController.cpp index 01901e0a..ec411989 100644 --- a/src/components/ble/NimbleController.cpp +++ b/src/components/ble/NimbleController.cpp @@ -9,6 +9,7 @@ #include #include #include +#include #undef max #undef min #include @@ -16,6 +17,7 @@ #include "components/ble/BleController.h" #include "components/ble/NotificationManager.h" #include "components/datetime/DateTimeController.h" +#include "components/fs/FS.h" #include "systemtask/SystemTask.h" using namespace Pinetime::Controllers; @@ -27,7 +29,8 @@ NimbleController::NimbleController(Pinetime::System::SystemTask& systemTask, Controllers::Battery& batteryController, Pinetime::Drivers::SpiNorFlash& spiNorFlash, Controllers::HeartRateController& heartRateController, - Controllers::MotionController& motionController) + Controllers::MotionController& motionController, + Pinetime::Controllers::FS& fs) : systemTask {systemTask}, bleController {bleController}, dateTimeController {dateTimeController}, @@ -43,7 +46,8 @@ NimbleController::NimbleController(Pinetime::System::SystemTask& systemTask, batteryInformationService {batteryController}, immediateAlertService {systemTask, notificationManager}, heartRateService {systemTask, heartRateController}, - motionService{systemTask, motionController}, + fs {fs}, + motionService {systemTask, motionController}, serviceDiscovery({¤tTimeClient, &alertNotificationClient}) { } @@ -123,6 +127,8 @@ void NimbleController::Init() { rc = ble_gatts_start(); ASSERT(rc == 0); + RestoreBond(); + if (!ble_gap_adv_active() && !bleController.IsConnected()) StartAdvertising(); } @@ -202,6 +208,10 @@ int NimbleController::OnGAPEvent(ble_gap_event* event) { /* Connection terminated; resume advertising. */ NRF_LOG_INFO("Disconnect event : BLE_GAP_EVENT_DISCONNECT"); NRF_LOG_INFO("disconnect reason=%d", event->disconnect.reason); + + if (event->disconnect.conn.sec_state.bonded) + PersistBond(event->disconnect.conn); + currentTimeClient.Reset(); alertNotificationClient.Reset(); connectionHandle = BLE_HS_CONN_HANDLE_NONE; @@ -230,6 +240,19 @@ int NimbleController::OnGAPEvent(ble_gap_event* event) { /* Encryption has been enabled or disabled for this connection. */ NRF_LOG_INFO("Security event : BLE_GAP_EVENT_ENC_CHANGE"); NRF_LOG_INFO("encryption change event; status=%0X ", event->enc_change.status); + + if (event->enc_change.status == 0) { + struct ble_gap_conn_desc desc; + ble_gap_conn_find(event->enc_change.conn_handle, &desc); + if (desc.sec_state.bonded) + PersistBond(desc); + + NRF_LOG_INFO("new state: encrypted=%d authenticated=%d bonded=%d key_size=%d", + desc.sec_state.encrypted, + desc.sec_state.authenticated, + desc.sec_state.bonded, + desc.sec_state.key_size); + } break; case BLE_GAP_EVENT_PASSKEY_ACTION: @@ -258,15 +281,13 @@ int NimbleController::OnGAPEvent(ble_gap_event* event) { event->subscribe.cur_notify, event->subscribe.prev_indicate); - if(event->subscribe.reason == BLE_GAP_SUBSCRIBE_REASON_TERM) { + if (event->subscribe.reason == BLE_GAP_SUBSCRIBE_REASON_TERM) { heartRateService.UnsubscribeNotification(event->subscribe.conn_handle, event->subscribe.attr_handle); motionService.UnsubscribeNotification(event->subscribe.conn_handle, event->subscribe.attr_handle); - } - else if(event->subscribe.prev_notify == 0 && event->subscribe.cur_notify == 1) { + } else if (event->subscribe.prev_notify == 0 && event->subscribe.cur_notify == 1) { heartRateService.SubscribeNotification(event->subscribe.conn_handle, event->subscribe.attr_handle); motionService.SubscribeNotification(event->subscribe.conn_handle, event->subscribe.attr_handle); - } - else if(event->subscribe.prev_notify == 1 && event->subscribe.cur_notify == 0) { + } else if (event->subscribe.prev_notify == 1 && event->subscribe.cur_notify == 0) { heartRateService.UnsubscribeNotification(event->subscribe.conn_handle, event->subscribe.attr_handle); motionService.UnsubscribeNotification(event->subscribe.conn_handle, event->subscribe.attr_handle); } @@ -340,3 +361,81 @@ void NimbleController::NotifyBatteryLevel(uint8_t level) { batteryInformationService.NotifyBatteryLevel(connectionHandle, level); } } + +void NimbleController::PersistBond(struct ble_gap_conn_desc& desc) { + union ble_store_key key; + union ble_store_value our_sec, peer_sec, peer_cccd_set[MYNEWT_VAL(BLE_STORE_MAX_CCCDS)] = {0}; + int rc; + + memset(&key, 0, sizeof key); + memset(&our_sec, 0, sizeof our_sec); + key.sec.peer_addr = desc.peer_id_addr; + rc = ble_store_read_our_sec(&key.sec, &our_sec.sec); + + if (memcmp(&our_sec.sec, &bondId, sizeof bondId) == 0) + return; + + memcpy(&bondId, &our_sec.sec, sizeof bondId); + + memset(&key, 0, sizeof key); + memset(&peer_sec, 0, sizeof peer_sec); + key.sec.peer_addr = desc.peer_id_addr; + rc += ble_store_read_peer_sec(&key.sec, &peer_sec.sec); + + if (rc == 0) { + memset(&key, 0, sizeof key); + key.cccd.peer_addr = desc.peer_id_addr; + int peer_count = 0; + ble_store_util_count(BLE_STORE_OBJ_TYPE_CCCD, &peer_count); + for (int i = 0; i < peer_count; i++) { + key.cccd.idx = peer_count; + ble_store_read_cccd(&key.cccd, &peer_cccd_set[i].cccd); + } + + /* Wakeup Spi and SpiNorFlash before accessing the file system + * This should be fixed in the FS driver + */ + systemTask.PushMessage(Pinetime::System::Messages::GoToRunning); + systemTask.PushMessage(Pinetime::System::Messages::DisableSleeping); + vTaskDelay(10); + + lfs_file_t file_p; + + rc = fs.FileOpen(&file_p, "/bond.dat", LFS_O_WRONLY | LFS_O_CREAT); + if (rc == 0) { + fs.FileWrite(&file_p, reinterpret_cast(&our_sec.sec), sizeof our_sec); + fs.FileWrite(&file_p, reinterpret_cast(&peer_sec.sec), sizeof peer_sec); + fs.FileWrite(&file_p, reinterpret_cast(&peer_count), 1); + for (int i = 0; i < peer_count; i++) { + fs.FileWrite(&file_p, reinterpret_cast(&peer_cccd_set[i].cccd), sizeof(struct ble_store_value_cccd)); + } + fs.FileClose(&file_p); + } + systemTask.PushMessage(Pinetime::System::Messages::EnableSleeping); + } +} + +void NimbleController::RestoreBond() { + lfs_file_t file_p; + union ble_store_value sec, cccd; + uint8_t peer_count = 0; + + if (fs.FileOpen(&file_p, "/bond.dat", LFS_O_RDONLY) == 0) { + memset(&sec, 0, sizeof sec); + fs.FileRead(&file_p, reinterpret_cast(&sec.sec), sizeof sec); + ble_store_write_our_sec(&sec.sec); + + memset(&sec, 0, sizeof sec); + fs.FileRead(&file_p, reinterpret_cast(&sec.sec), sizeof sec); + ble_store_write_peer_sec(&sec.sec); + + fs.FileRead(&file_p, &peer_count, 1); + for (int i = 0; i < peer_count; i++) { + fs.FileRead(&file_p, reinterpret_cast(&cccd.cccd), sizeof(struct ble_store_value_cccd)); + ble_store_write_cccd(&cccd.cccd); + } + + fs.FileClose(&file_p); + fs.FileDelete("/bond.dat"); + } +} diff --git a/src/components/ble/NimbleController.h b/src/components/ble/NimbleController.h index 895b87f2..944e8cad 100644 --- a/src/components/ble/NimbleController.h +++ b/src/components/ble/NimbleController.h @@ -20,6 +20,7 @@ #include "components/ble/ServiceDiscovery.h" #include "components/ble/HeartRateService.h" #include "components/ble/MotionService.h" +#include "components/fs/FS.h" namespace Pinetime { namespace Drivers { @@ -45,7 +46,8 @@ namespace Pinetime { Controllers::Battery& batteryController, Pinetime::Drivers::SpiNorFlash& spiNorFlash, Controllers::HeartRateController& heartRateController, - Controllers::MotionController& motionController); + Controllers::MotionController& motionController, + Pinetime::Controllers::FS& fs); void Init(); void StartAdvertising(); int OnGAPEvent(ble_gap_event* event); @@ -78,6 +80,9 @@ namespace Pinetime { fastAdvCount = 0; } + void PersistBond(struct ble_gap_conn_desc &desc); + void RestoreBond(); + private: static constexpr const char* deviceName = "InfiniTime"; Pinetime::System::SystemTask& systemTask; @@ -98,10 +103,12 @@ namespace Pinetime { ImmediateAlertService immediateAlertService; HeartRateService heartRateService; MotionService motionService; + Pinetime::Controllers::FS& fs; uint8_t addrType; // 1 = Random, 0 = PUBLIC uint16_t connectionHandle = BLE_HS_CONN_HANDLE_NONE; uint8_t fastAdvCount = 0; + uint8_t bondId[16] = {0}; ble_uuid128_t dfuServiceUuid { .u {.type = BLE_UUID_TYPE_128}, @@ -110,6 +117,6 @@ namespace Pinetime { ServiceDiscovery serviceDiscovery; }; - static NimbleController* nptr; + static NimbleController* nptr; } } diff --git a/src/systemtask/SystemTask.cpp b/src/systemtask/SystemTask.cpp index 2fb4de51..215c78a5 100644 --- a/src/systemtask/SystemTask.cpp +++ b/src/systemtask/SystemTask.cpp @@ -109,7 +109,8 @@ SystemTask::SystemTask(Drivers::SpiMaster& spi, batteryController, spiNorFlash, heartRateController, - motionController) { + motionController, + fs) { } void SystemTask::Start() { From 048ecd41e414a9abc8c3d09423b8f5cb99304309 Mon Sep 17 00:00:00 2001 From: "James A. Jerkins" Date: Wed, 8 Dec 2021 00:10:54 -0600 Subject: [PATCH 121/188] Adjust BLE/LL stacks, style, comments, refactoring Increase BLE task stack +200 and decrease LL task stack -200 more braces! --- src/components/ble/NimbleController.cpp | 29 ++++++++++++++----- src/components/ble/NimbleController.h | 13 ++++----- .../npl/freertos/src/nimble_port_freertos.c | 4 +-- src/systemtask/SystemTask.cpp | 3 +- 4 files changed, 31 insertions(+), 18 deletions(-) diff --git a/src/components/ble/NimbleController.cpp b/src/components/ble/NimbleController.cpp index ec411989..0f20aefe 100644 --- a/src/components/ble/NimbleController.cpp +++ b/src/components/ble/NimbleController.cpp @@ -10,10 +10,10 @@ #include #include #include -#undef max -#undef min #include #include +#undef max +#undef min #include "components/ble/BleController.h" #include "components/ble/NotificationManager.h" #include "components/datetime/DateTimeController.h" @@ -36,7 +36,9 @@ NimbleController::NimbleController(Pinetime::System::SystemTask& systemTask, dateTimeController {dateTimeController}, notificationManager {notificationManager}, spiNorFlash {spiNorFlash}, + fs {fs}, dfuService {systemTask, bleController, spiNorFlash}, + currentTimeClient {dateTimeController}, anService {systemTask, notificationManager}, alertNotificationClient {systemTask, notificationManager}, @@ -46,7 +48,6 @@ NimbleController::NimbleController(Pinetime::System::SystemTask& systemTask, batteryInformationService {batteryController}, immediateAlertService {systemTask, notificationManager}, heartRateService {systemTask, heartRateController}, - fs {fs}, motionService {systemTask, motionController}, serviceDiscovery({¤tTimeClient, &alertNotificationClient}) { } @@ -129,8 +130,9 @@ void NimbleController::Init() { RestoreBond(); - if (!ble_gap_adv_active() && !bleController.IsConnected()) + if (!ble_gap_adv_active() && !bleController.IsConnected()) { StartAdvertising(); + } } void NimbleController::StartAdvertising() { @@ -209,8 +211,9 @@ int NimbleController::OnGAPEvent(ble_gap_event* event) { NRF_LOG_INFO("Disconnect event : BLE_GAP_EVENT_DISCONNECT"); NRF_LOG_INFO("disconnect reason=%d", event->disconnect.reason); - if (event->disconnect.conn.sec_state.bonded) + if (event->disconnect.conn.sec_state.bonded) { PersistBond(event->disconnect.conn); + } currentTimeClient.Reset(); alertNotificationClient.Reset(); @@ -244,8 +247,9 @@ int NimbleController::OnGAPEvent(ble_gap_event* event) { if (event->enc_change.status == 0) { struct ble_gap_conn_desc desc; ble_gap_conn_find(event->enc_change.conn_handle, &desc); - if (desc.sec_state.bonded) + if (desc.sec_state.bonded) { PersistBond(desc); + } NRF_LOG_INFO("new state: encrypted=%d authenticated=%d bonded=%d key_size=%d", desc.sec_state.encrypted, @@ -257,8 +261,16 @@ int NimbleController::OnGAPEvent(ble_gap_event* event) { case BLE_GAP_EVENT_PASSKEY_ACTION: /* Authentication has been requested for this connection. + * + * BLE authentication is determined by the combination of I/O capabilities + * on the central and peripheral. When the peripheral is display only and + * the central has a keyboard and display then passkey auth is selected. + * When both the central and peripheral have displays and support yes/no + * buttons then numeric comparison is selected. We currently advertise + * display capability only so we only handle the "display" action here. + * * Standards insist that the rand() PRNG be deterministic. - * Use the nimble TRNG since rand() is predictable. + * Use the nimble TRNG here since rand() is predictable. */ NRF_LOG_INFO("Security event : BLE_GAP_EVENT_PASSKEY_ACTION"); if (event->passkey.params.action == BLE_SM_IOACT_DISP) { @@ -372,8 +384,9 @@ void NimbleController::PersistBond(struct ble_gap_conn_desc& desc) { key.sec.peer_addr = desc.peer_id_addr; rc = ble_store_read_our_sec(&key.sec, &our_sec.sec); - if (memcmp(&our_sec.sec, &bondId, sizeof bondId) == 0) + if (memcmp(&our_sec.sec, &bondId, sizeof bondId) == 0) { return; + } memcpy(&bondId, &our_sec.sec, sizeof bondId); diff --git a/src/components/ble/NimbleController.h b/src/components/ble/NimbleController.h index 944e8cad..7569ce2a 100644 --- a/src/components/ble/NimbleController.h +++ b/src/components/ble/NimbleController.h @@ -14,11 +14,11 @@ #include "components/ble/CurrentTimeService.h" #include "components/ble/DeviceInformationService.h" #include "components/ble/DfuService.h" +#include "components/ble/HeartRateService.h" #include "components/ble/ImmediateAlertService.h" #include "components/ble/MusicService.h" #include "components/ble/NavigationService.h" #include "components/ble/ServiceDiscovery.h" -#include "components/ble/HeartRateService.h" #include "components/ble/MotionService.h" #include "components/fs/FS.h" @@ -80,16 +80,17 @@ namespace Pinetime { fastAdvCount = 0; } - void PersistBond(struct ble_gap_conn_desc &desc); + private: + void PersistBond(struct ble_gap_conn_desc& desc); void RestoreBond(); - private: static constexpr const char* deviceName = "InfiniTime"; Pinetime::System::SystemTask& systemTask; Pinetime::Controllers::Ble& bleController; DateTime& dateTimeController; Pinetime::Controllers::NotificationManager& notificationManager; Pinetime::Drivers::SpiNorFlash& spiNorFlash; + Pinetime::Controllers::FS& fs; Pinetime::Controllers::DfuService dfuService; DeviceInformationService deviceInformationService; @@ -103,9 +104,9 @@ namespace Pinetime { ImmediateAlertService immediateAlertService; HeartRateService heartRateService; MotionService motionService; - Pinetime::Controllers::FS& fs; + ServiceDiscovery serviceDiscovery; - uint8_t addrType; // 1 = Random, 0 = PUBLIC + uint8_t addrType; uint16_t connectionHandle = BLE_HS_CONN_HANDLE_NONE; uint8_t fastAdvCount = 0; uint8_t bondId[16] = {0}; @@ -113,8 +114,6 @@ namespace Pinetime { ble_uuid128_t dfuServiceUuid { .u {.type = BLE_UUID_TYPE_128}, .value = {0x23, 0xD1, 0xBC, 0xEA, 0x5F, 0x78, 0x23, 0x15, 0xDE, 0xEF, 0x12, 0x12, 0x30, 0x15, 0x00, 0x00}}; - - ServiceDiscovery serviceDiscovery; }; static NimbleController* nptr; diff --git a/src/libs/mynewt-nimble/porting/npl/freertos/src/nimble_port_freertos.c b/src/libs/mynewt-nimble/porting/npl/freertos/src/nimble_port_freertos.c index 8ee3475a..b9902781 100644 --- a/src/libs/mynewt-nimble/porting/npl/freertos/src/nimble_port_freertos.c +++ b/src/libs/mynewt-nimble/porting/npl/freertos/src/nimble_port_freertos.c @@ -37,7 +37,7 @@ nimble_port_freertos_init(TaskFunction_t host_task_fn) * provided by NimBLE and in case of FreeRTOS it does not need to be wrapped * since it has compatible prototype. */ - xTaskCreate(nimble_port_ll_task_func, "ll", configMINIMAL_STACK_SIZE + 400, + xTaskCreate(nimble_port_ll_task_func, "ll", configMINIMAL_STACK_SIZE + 200, NULL, configMAX_PRIORITIES - 1, &ll_task_h); #endif @@ -46,6 +46,6 @@ nimble_port_freertos_init(TaskFunction_t host_task_fn) * have separate task for NimBLE host, but since something needs to handle * default queue it is just easier to make separate task which does this. */ - xTaskCreate(host_task_fn, "ble", configMINIMAL_STACK_SIZE + 400, + xTaskCreate(host_task_fn, "ble", configMINIMAL_STACK_SIZE + 600, NULL, tskIDLE_PRIORITY + 1, &host_task_h); } diff --git a/src/systemtask/SystemTask.cpp b/src/systemtask/SystemTask.cpp index 215c78a5..79384a5b 100644 --- a/src/systemtask/SystemTask.cpp +++ b/src/systemtask/SystemTask.cpp @@ -259,8 +259,9 @@ void SystemTask::Work() { displayApp.PushMessage(Pinetime::Applications::Display::Messages::GoToRunning); heartRateApp.PushMessage(Pinetime::Applications::HeartRateTask::Messages::WakeUp); - if (!bleController.IsConnected()) + if (!bleController.IsConnected()) { nimbleController.RestartFastAdv(); + } isSleeping = false; isWakingUp = false; From f1fc7ee6593aa7dd2212ee362729b9cd06b054a9 Mon Sep 17 00:00:00 2001 From: Tim Keller Date: Fri, 12 Nov 2021 02:11:39 +0000 Subject: [PATCH 122/188] Adjust systemtask to respect doNotGoToSleep. --- src/systemtask/SystemTask.cpp | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/systemtask/SystemTask.cpp b/src/systemtask/SystemTask.cpp index 79384a5b..02440452 100644 --- a/src/systemtask/SystemTask.cpp +++ b/src/systemtask/SystemTask.cpp @@ -280,6 +280,9 @@ void SystemTask::Work() { } } break; case Messages::GoToSleep: + if (doNotGoToSleep) { + return; + } isGoingToSleep = true; NRF_LOG_INFO("[systemtask] Going to sleep"); xTimerStop(idleTimer, 0); @@ -506,7 +509,7 @@ void SystemTask::OnTouchEvent() { } void SystemTask::PushMessage(System::Messages msg) { - if (msg == Messages::GoToSleep) { + if (msg == Messages::GoToSleep && !doNotGoToSleep) { isGoingToSleep = true; } From cd593c3862b1cb43865fb9075273dc97dfe5b7f1 Mon Sep 17 00:00:00 2001 From: Tim Keller Date: Mon, 15 Nov 2021 15:27:36 +0000 Subject: [PATCH 123/188] Break not return thanks @FintasticMan --- src/systemtask/SystemTask.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/systemtask/SystemTask.cpp b/src/systemtask/SystemTask.cpp index 02440452..4076d57d 100644 --- a/src/systemtask/SystemTask.cpp +++ b/src/systemtask/SystemTask.cpp @@ -281,7 +281,7 @@ void SystemTask::Work() { } break; case Messages::GoToSleep: if (doNotGoToSleep) { - return; + break; } isGoingToSleep = true; NRF_LOG_INFO("[systemtask] Going to sleep"); From b946b8d156175309ab778038dab75ec7996c05bc Mon Sep 17 00:00:00 2001 From: "James A. Jerkins" Date: Fri, 3 Dec 2021 19:10:34 -0600 Subject: [PATCH 124/188] Fix assertion failure in ButtonHandler FreeRTOS says zero is not a valid value for xTimerPeriodInTicks. Zero value fires an assertion on line 361 in timers.h --- src/buttonhandler/ButtonHandler.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/buttonhandler/ButtonHandler.cpp b/src/buttonhandler/ButtonHandler.cpp index 91e8bbd0..02ee22cf 100644 --- a/src/buttonhandler/ButtonHandler.cpp +++ b/src/buttonhandler/ButtonHandler.cpp @@ -8,7 +8,7 @@ void ButtonTimerCallback(TimerHandle_t xTimer) { } void ButtonHandler::Init(Pinetime::System::SystemTask* systemTask) { - buttonTimer = xTimerCreate("buttonTimer", 0, pdFALSE, systemTask, ButtonTimerCallback); + buttonTimer = xTimerCreate("buttonTimer", pdMS_TO_TICKS(200), pdFALSE, systemTask, ButtonTimerCallback); } ButtonActions ButtonHandler::HandleEvent(Events event) { From 8539db0884c73c929399ed684051318ebff6a3aa Mon Sep 17 00:00:00 2001 From: Kieran Cawthray Date: Mon, 6 Dec 2021 10:55:45 +0100 Subject: [PATCH 125/188] Alignment fixes --- src/displayapp/screens/PineTimeStyle.cpp | 17 ++++++++++++----- 1 file changed, 12 insertions(+), 5 deletions(-) diff --git a/src/displayapp/screens/PineTimeStyle.cpp b/src/displayapp/screens/PineTimeStyle.cpp index 781a359c..e80f3e60 100644 --- a/src/displayapp/screens/PineTimeStyle.cpp +++ b/src/displayapp/screens/PineTimeStyle.cpp @@ -67,19 +67,19 @@ PineTimeStyle::PineTimeStyle(DisplayApp* app, lv_obj_set_style_local_bg_color(timebar, LV_BTN_PART_MAIN, LV_STATE_DEFAULT, Convert(settingsController.GetPTSColorBG())); 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); + lv_obj_align(timebar, lv_scr_act(), LV_ALIGN_IN_TOP_LEFT, 0, 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, Convert(settingsController.GetPTSColorTime())); - lv_label_set_text(timeDD1, "12"); + lv_label_set_text(timeDD1, "00"); 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, Convert(settingsController.GetPTSColorTime())); - lv_label_set_text(timeDD2, "34"); + lv_label_set_text(timeDD2, "00"); lv_obj_align(timeDD2, timebar, LV_ALIGN_IN_BOTTOM_MID, 5, -5); timeAMPM = lv_label_create(lv_scr_act(), nullptr); @@ -104,11 +104,9 @@ PineTimeStyle::PineTimeStyle(DisplayApp* app, 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); @@ -235,6 +233,15 @@ void PineTimeStyle::Refresh() { lv_obj_realign(notificationIcon); } + if (notificationState.Get() && bleState.Get()) { + lv_obj_align(bleIcon, sidebar, LV_ALIGN_IN_TOP_MID, 8, 25); + lv_obj_align(notificationIcon, sidebar, LV_ALIGN_IN_TOP_MID, -8, 25); + } else if (notificationState.Get() && !bleState.Get()) { + lv_obj_align(notificationIcon, sidebar, LV_ALIGN_IN_TOP_MID, 0, 25); + } else { + lv_obj_align(bleIcon, sidebar, LV_ALIGN_IN_TOP_MID, 0, 25); + } + currentDateTime = dateTimeController.CurrentDateTime(); if (currentDateTime.IsUpdated()) { auto newDateTime = currentDateTime.Get(); From f4daf63679d309ff761f087fa1436524281bf5b9 Mon Sep 17 00:00:00 2001 From: Kieran Cawthray Date: Mon, 6 Dec 2021 22:01:49 +0100 Subject: [PATCH 126/188] Adjust icon alignment only on IsUpdated() --- src/displayapp/screens/PineTimeStyle.cpp | 28 ++++++++++++++---------- src/displayapp/screens/PineTimeStyle.h | 1 + 2 files changed, 18 insertions(+), 11 deletions(-) diff --git a/src/displayapp/screens/PineTimeStyle.cpp b/src/displayapp/screens/PineTimeStyle.cpp index e80f3e60..f0a65928 100644 --- a/src/displayapp/screens/PineTimeStyle.cpp +++ b/src/displayapp/screens/PineTimeStyle.cpp @@ -104,9 +104,11 @@ PineTimeStyle::PineTimeStyle(DisplayApp* app, 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_label_set_text(bleIcon, ""); 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_label_set_text(notificationIcon, ""); // Calendar icon calendarOuter = lv_obj_create(lv_scr_act(), nullptr); @@ -205,6 +207,17 @@ void PineTimeStyle::SetBatteryIcon() { lv_label_set_text(batteryIcon, BatteryIcon::GetBatteryIcon(batteryPercent)); } +void PineTimeStyle::AlignIcons() { + if (notificationState.Get() && bleState.Get()) { + lv_obj_align(bleIcon, sidebar, LV_ALIGN_IN_TOP_MID, 8, 25); + lv_obj_align(notificationIcon, sidebar, LV_ALIGN_IN_TOP_MID, -8, 25); + } else if (notificationState.Get() && !bleState.Get()) { + lv_obj_align(notificationIcon, sidebar, LV_ALIGN_IN_TOP_MID, 0, 25); + } else { + lv_obj_align(bleIcon, sidebar, LV_ALIGN_IN_TOP_MID, 0, 25); + } +} + void PineTimeStyle::Refresh() { isCharging = batteryController.IsCharging(); if (isCharging.IsUpdated()) { @@ -224,22 +237,15 @@ void PineTimeStyle::Refresh() { bleState = bleController.IsConnected(); if (bleState.IsUpdated()) { lv_label_set_text(bleIcon, BleIcon::GetIcon(bleState.Get())); - lv_obj_realign(bleIcon); + //lv_obj_realign(bleIcon); + AlignIcons(); } notificationState = notificatioManager.AreNewNotificationsAvailable(); if (notificationState.IsUpdated()) { lv_label_set_text(notificationIcon, NotificationIcon::GetIcon(notificationState.Get())); - lv_obj_realign(notificationIcon); - } - - if (notificationState.Get() && bleState.Get()) { - lv_obj_align(bleIcon, sidebar, LV_ALIGN_IN_TOP_MID, 8, 25); - lv_obj_align(notificationIcon, sidebar, LV_ALIGN_IN_TOP_MID, -8, 25); - } else if (notificationState.Get() && !bleState.Get()) { - lv_obj_align(notificationIcon, sidebar, LV_ALIGN_IN_TOP_MID, 0, 25); - } else { - lv_obj_align(bleIcon, sidebar, LV_ALIGN_IN_TOP_MID, 0, 25); + //lv_obj_realign(notificationIcon); + AlignIcons(); } currentDateTime = dateTimeController.CurrentDateTime(); diff --git a/src/displayapp/screens/PineTimeStyle.h b/src/displayapp/screens/PineTimeStyle.h index f86f4c5a..8382c53c 100644 --- a/src/displayapp/screens/PineTimeStyle.h +++ b/src/displayapp/screens/PineTimeStyle.h @@ -77,6 +77,7 @@ namespace Pinetime { Controllers::MotionController& motionController; void SetBatteryIcon(); + void AlignIcons(); lv_task_t* taskRefresh; }; From 645f6f43dc956e90243aa9230876e537af84e1f6 Mon Sep 17 00:00:00 2001 From: Kieran Cawthray Date: Mon, 6 Dec 2021 22:04:38 +0100 Subject: [PATCH 127/188] Remove commented code --- src/displayapp/screens/PineTimeStyle.cpp | 2 -- 1 file changed, 2 deletions(-) diff --git a/src/displayapp/screens/PineTimeStyle.cpp b/src/displayapp/screens/PineTimeStyle.cpp index f0a65928..d4368691 100644 --- a/src/displayapp/screens/PineTimeStyle.cpp +++ b/src/displayapp/screens/PineTimeStyle.cpp @@ -237,14 +237,12 @@ void PineTimeStyle::Refresh() { bleState = bleController.IsConnected(); if (bleState.IsUpdated()) { lv_label_set_text(bleIcon, BleIcon::GetIcon(bleState.Get())); - //lv_obj_realign(bleIcon); AlignIcons(); } notificationState = notificatioManager.AreNewNotificationsAvailable(); if (notificationState.IsUpdated()) { lv_label_set_text(notificationIcon, NotificationIcon::GetIcon(notificationState.Get())); - //lv_obj_realign(notificationIcon); AlignIcons(); } From 6a442b90a1d310d082e2626128d0f2bf8e932851 Mon Sep 17 00:00:00 2001 From: Avamander Date: Sun, 5 Dec 2021 22:22:06 +0200 Subject: [PATCH 128/188] Improved format specifiers, bracing, removed C-style casts, whitespace fixes and removed Tiles shadowing --- src/displayapp/screens/Alarm.cpp | 4 +- src/displayapp/screens/FirmwareValidation.cpp | 2 +- src/displayapp/screens/SystemInfo.cpp | 8 +-- src/displayapp/screens/Twos.cpp | 6 +-- src/displayapp/screens/Twos.h | 10 ++-- src/systemtask/SystemTask.cpp | 49 ++++++++++++------- 6 files changed, 46 insertions(+), 33 deletions(-) diff --git a/src/displayapp/screens/Alarm.cpp b/src/displayapp/screens/Alarm.cpp index 772e5d45..537ac0e0 100644 --- a/src/displayapp/screens/Alarm.cpp +++ b/src/displayapp/screens/Alarm.cpp @@ -36,7 +36,7 @@ Alarm::Alarm(DisplayApp* app, Controllers::AlarmController& alarmController) alarmHours = alarmController.Hours(); alarmMinutes = alarmController.Minutes(); - lv_label_set_text_fmt(time, "%02lu:%02lu", alarmHours, alarmMinutes); + lv_label_set_text_fmt(time, "%02hhu:%02hhu", alarmHours, alarmMinutes); lv_obj_align(time, lv_scr_act(), LV_ALIGN_CENTER, 0, -25); @@ -223,7 +223,7 @@ void Alarm::ShowInfo() { auto secToAlarm = timeToAlarm % 60; lv_label_set_text_fmt( - txtMessage, "Time to\nalarm:\n%2d Days\n%2d Hours\n%2d Minutes\n%2d Seconds", daysToAlarm, hrsToAlarm, minToAlarm, secToAlarm); + txtMessage, "Time to\nalarm:\n%2lu Days\n%2lu Hours\n%2lu Minutes\n%2lu Seconds", daysToAlarm, hrsToAlarm, minToAlarm, secToAlarm); } else { lv_label_set_text(txtMessage, "Alarm\nis not\nset."); } diff --git a/src/displayapp/screens/FirmwareValidation.cpp b/src/displayapp/screens/FirmwareValidation.cpp index ea417135..c7a5b27e 100644 --- a/src/displayapp/screens/FirmwareValidation.cpp +++ b/src/displayapp/screens/FirmwareValidation.cpp @@ -18,7 +18,7 @@ FirmwareValidation::FirmwareValidation(Pinetime::Applications::DisplayApp* app, : Screen {app}, validator {validator} { labelVersion = lv_label_create(lv_scr_act(), nullptr); lv_label_set_text_fmt(labelVersion, - "Version : %d.%d.%d\n" + "Version : %lu.%lu.%lu\n" "ShortRef : %s", Version::Major(), Version::Minor(), diff --git a/src/displayapp/screens/SystemInfo.cpp b/src/displayapp/screens/SystemInfo.cpp index 07626260..e0138f86 100644 --- a/src/displayapp/screens/SystemInfo.cpp +++ b/src/displayapp/screens/SystemInfo.cpp @@ -1,3 +1,5 @@ +#include +#include #include "displayapp/screens/SystemInfo.h" #include #include "displayapp/DisplayApp.h" @@ -41,8 +43,8 @@ SystemInfo::SystemInfo(Pinetime::Applications::DisplayApp* app, brightnessController {brightnessController}, bleController {bleController}, watchdog {watchdog}, - motionController{motionController}, - touchPanel{touchPanel}, + motionController {motionController}, + touchPanel {touchPanel}, screens {app, 0, {[this]() -> std::unique_ptr { @@ -182,7 +184,7 @@ std::unique_ptr SystemInfo::CreateScreen3() { " #444444 used# %d (%d%%)\n" " #444444 max used# %lu\n" " #444444 frag# %d%%\n" - " #444444 free# %d", + " #444444 free# %d", bleAddr[5], bleAddr[4], bleAddr[3], diff --git a/src/displayapp/screens/Twos.cpp b/src/displayapp/screens/Twos.cpp index a1f0ba25..b15332f1 100644 --- a/src/displayapp/screens/Twos.cpp +++ b/src/displayapp/screens/Twos.cpp @@ -129,7 +129,7 @@ bool Twos::placeNewTile() { return true; } -bool Twos::tryMerge(Tile grid[][4], int& newRow, int& newCol, int oldRow, int oldCol) { +bool Twos::tryMerge(TwosTile grid[][4], int& newRow, int& newCol, int oldRow, int oldCol) { if ((grid[newRow][newCol].value == grid[oldRow][oldCol].value)) { if ((newCol != oldCol) || (newRow != oldRow)) { if (!grid[newRow][newCol].merged) { @@ -146,7 +146,7 @@ bool Twos::tryMerge(Tile grid[][4], int& newRow, int& newCol, int oldRow, int ol return false; } -bool Twos::tryMove(Tile grid[][4], int newRow, int newCol, int oldRow, int oldCol) { +bool Twos::tryMove(TwosTile grid[][4], int newRow, int newCol, int oldRow, int oldCol) { if (((newCol >= 0) && (newCol != oldCol)) || ((newRow >= 0) && (newRow != oldRow))) { grid[newRow][newCol].value = grid[oldRow][oldCol].value; grid[oldRow][oldCol].value = 0; @@ -261,7 +261,7 @@ bool Twos::OnTouchEvent(Pinetime::Applications::TouchEvents event) { return false; } -void Twos::updateGridDisplay(Tile grid[][4]) { +void Twos::updateGridDisplay(TwosTile grid[][4]) { for (int row = 0; row < 4; row++) { for (int col = 0; col < 4; col++) { if (grid[row][col].value) { diff --git a/src/displayapp/screens/Twos.h b/src/displayapp/screens/Twos.h index 48ea0794..5a0c4350 100644 --- a/src/displayapp/screens/Twos.h +++ b/src/displayapp/screens/Twos.h @@ -5,7 +5,7 @@ namespace Pinetime { namespace Applications { - struct Tile { + struct TwosTile { bool merged = false; unsigned int value = 0; }; @@ -26,11 +26,11 @@ namespace Pinetime { lv_obj_t* scoreText; lv_obj_t* gridDisplay; - Tile grid[4][4]; + TwosTile grid[4][4]; unsigned int score = 0; - void updateGridDisplay(Tile grid[][4]); - bool tryMerge(Tile grid[][4], int& newRow, int& newCol, int oldRow, int oldCol); - bool tryMove(Tile grid[][4], int newRow, int newCol, int oldRow, int oldCol); + void updateGridDisplay(TwosTile grid[][4]); + bool tryMerge(TwosTile grid[][4], int& newRow, int& newCol, int oldRow, int oldCol); + bool tryMove(TwosTile grid[][4], int newRow, int newCol, int oldRow, int oldCol); bool placeNewTile(); }; } diff --git a/src/systemtask/SystemTask.cpp b/src/systemtask/SystemTask.cpp index 4076d57d..24790a1d 100644 --- a/src/systemtask/SystemTask.cpp +++ b/src/systemtask/SystemTask.cpp @@ -115,8 +115,9 @@ SystemTask::SystemTask(Drivers::SpiMaster& spi, void SystemTask::Start() { systemTasksMsgQueue = xQueueCreate(10, 1); - if (pdPASS != xTaskCreate(SystemTask::Process, "MAIN", 350, this, 0, &taskHandle)) + if (pdPASS != xTaskCreate(SystemTask::Process, "MAIN", 350, this, 0, &taskHandle)) { APP_ERROR_HANDLER(NRF_ERROR_NO_MEM); + } } void SystemTask::Process(void* instance) { @@ -187,20 +188,22 @@ void SystemTask::Work() { pinConfig.skip_gpio_setup = false; pinConfig.hi_accuracy = false; pinConfig.is_watcher = false; - pinConfig.sense = (nrf_gpiote_polarity_t) NRF_GPIOTE_POLARITY_TOGGLE; - pinConfig.pull = (nrf_gpio_pin_pull_t) GPIO_PIN_CNF_PULL_Pulldown; + pinConfig.sense = static_cast(NRF_GPIOTE_POLARITY_TOGGLE); + pinConfig.pull = static_cast(GPIO_PIN_CNF_PULL_Pulldown); nrfx_gpiote_in_init(PinMap::Button, &pinConfig, nrfx_gpiote_evt_handler); nrfx_gpiote_in_event_enable(PinMap::Button, true); // Touchscreen - nrf_gpio_cfg_sense_input(PinMap::Cst816sIrq, (nrf_gpio_pin_pull_t) GPIO_PIN_CNF_PULL_Pullup, (nrf_gpio_pin_sense_t) GPIO_PIN_CNF_SENSE_Low); + nrf_gpio_cfg_sense_input(PinMap::Cst816sIrq, + static_cast(GPIO_PIN_CNF_PULL_Pullup), + static_cast GPIO_PIN_CNF_SENSE_Low); pinConfig.skip_gpio_setup = true; pinConfig.hi_accuracy = false; pinConfig.is_watcher = false; - pinConfig.sense = (nrf_gpiote_polarity_t) NRF_GPIOTE_POLARITY_HITOLO; - pinConfig.pull = (nrf_gpio_pin_pull_t) GPIO_PIN_CNF_PULL_Pullup; + pinConfig.sense = static_cast(NRF_GPIOTE_POLARITY_HITOLO); + pinConfig.pull = static_cast GPIO_PIN_CNF_PULL_Pullup; nrfx_gpiote_in_init(PinMap::Cst816sIrq, &pinConfig, nrfx_gpiote_evt_handler); @@ -328,8 +331,9 @@ void SystemTask::Work() { break; case Messages::BleFirmwareUpdateStarted: doNotGoToSleep = true; - if (isSleeping && !isWakingUp) + if (isSleeping && !isWakingUp) { GoToRunning(); + } displayApp.PushMessage(Pinetime::Applications::Display::Messages::BleFirmwareUpdateStarted); break; case Messages::BleFirmwareUpdateFinished: @@ -429,18 +433,20 @@ void SystemTask::Work() { uint32_t systick_counter = nrf_rtc_counter_get(portNRF_RTC_REG); dateTimeController.UpdateTime(systick_counter); NoInit_BackUpTime = dateTimeController.CurrentDateTime(); - if (!nrf_gpio_pin_read(PinMap::Button)) + if (!nrf_gpio_pin_read(PinMap::Button)) { watchdog.Kick(); + } } -// Clear diagnostic suppression -#pragma clang diagnostic pop } -void SystemTask::UpdateMotion() { - if (isGoingToSleep or isWakingUp) - return; - if (isSleeping && !settingsController.isWakeUpModeOn(Pinetime::Controllers::Settings::WakeUpMode::RaiseWrist)) +void SystemTask::UpdateMotion() { + if (isGoingToSleep or isWakingUp) { return; + } + + if (isSleeping && !settingsController.isWakeUpModeOn(Pinetime::Controllers::Settings::WakeUpMode::RaiseWrist)) { + return; + } if (stepCounterMustBeReset) { motionSensor.ResetStepCounter(); @@ -489,15 +495,17 @@ void SystemTask::HandleButtonAction(Controllers::ButtonActions action) { } void SystemTask::GoToRunning() { - if (isGoingToSleep or (not isSleeping) or isWakingUp) + if (isGoingToSleep or (not isSleeping) or isWakingUp) { return; + } isWakingUp = true; PushMessage(Messages::GoToRunning); } void SystemTask::OnTouchEvent() { - if (isGoingToSleep) + if (isGoingToSleep) { return; + } if (!isSleeping) { PushMessage(Messages::OnTouchEvent); } else if (!isWakingUp) { @@ -527,8 +535,9 @@ void SystemTask::PushMessage(System::Messages msg) { } void SystemTask::OnDim() { - if (doNotGoToSleep) + if (doNotGoToSleep) { return; + } NRF_LOG_INFO("Dim timeout -> Dim screen") displayApp.PushMessage(Pinetime::Applications::Display::Messages::DimScreen); xTimerStart(idleTimer, 0); @@ -536,15 +545,17 @@ void SystemTask::OnDim() { } void SystemTask::OnIdle() { - if (doNotGoToSleep) + if (doNotGoToSleep) { return; + } NRF_LOG_INFO("Idle timeout -> Going to sleep") PushMessage(Messages::GoToSleep); } void SystemTask::ReloadIdleTimer() { - if (isSleeping || isGoingToSleep) + if (isSleeping || isGoingToSleep) { return; + } if (isDimmed) { displayApp.PushMessage(Pinetime::Applications::Display::Messages::RestoreBrightness); isDimmed = false; From 9db5d64441562a61216fd9c62067f33b24df751f Mon Sep 17 00:00:00 2001 From: Avamander Date: Mon, 6 Dec 2021 19:15:03 +0200 Subject: [PATCH 129/188] Fixed unpopped diagnostic --- src/systemtask/SystemTask.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/systemtask/SystemTask.cpp b/src/systemtask/SystemTask.cpp index 24790a1d..28f81243 100644 --- a/src/systemtask/SystemTask.cpp +++ b/src/systemtask/SystemTask.cpp @@ -224,7 +224,6 @@ void SystemTask::Work() { xTimerStart(dimTimer, 0); xTimerStart(measureBatteryTimer, portMAX_DELAY); -// Suppress endless loop diagnostic #pragma clang diagnostic push #pragma ide diagnostic ignored "EndlessLoop" while (true) { @@ -437,6 +436,7 @@ void SystemTask::Work() { watchdog.Kick(); } } +#pragma clang diagnostic pop } void SystemTask::UpdateMotion() { From 23f318c3d09d9707b9a38528eaf6c37b2754f6e2 Mon Sep 17 00:00:00 2001 From: Reinhold Gschweicher Date: Sun, 5 Dec 2021 14:32:26 +0100 Subject: [PATCH 130/188] TouchHandler: remove unused FreeRTOS.h and task.h includes from header FreeRTOS and task.h aren't used in the Header file. Furthermore the SystemTask forward declaration isn't needed as it isn't used in the header. --- src/touchhandler/TouchHandler.h | 5 ----- 1 file changed, 5 deletions(-) diff --git a/src/touchhandler/TouchHandler.h b/src/touchhandler/TouchHandler.h index f5442939..ed452b3a 100644 --- a/src/touchhandler/TouchHandler.h +++ b/src/touchhandler/TouchHandler.h @@ -1,8 +1,6 @@ #pragma once #include "drivers/Cst816s.h" #include "systemtask/SystemTask.h" -#include -#include namespace Pinetime { namespace Components { @@ -11,9 +9,6 @@ namespace Pinetime { namespace Drivers { class Cst816S; } - namespace System { - class SystemTask; - } namespace Controllers { class TouchHandler { public: From e104f17b1bc7bbdccacae4a068413ae3838cb96b Mon Sep 17 00:00:00 2001 From: Reinhold Gschweicher Date: Sun, 5 Dec 2021 12:03:16 +0100 Subject: [PATCH 131/188] AlarmController: remove unused app_timer.h include in header --- src/components/alarm/AlarmController.h | 1 - 1 file changed, 1 deletion(-) diff --git a/src/components/alarm/AlarmController.h b/src/components/alarm/AlarmController.h index bf85d431..f39fbded 100644 --- a/src/components/alarm/AlarmController.h +++ b/src/components/alarm/AlarmController.h @@ -18,7 +18,6 @@ #pragma once #include -#include "app_timer.h" #include "components/datetime/DateTimeController.h" namespace Pinetime { From 589733d11e623ea66ee0bba231f53c67ce04ce7a Mon Sep 17 00:00:00 2001 From: Avamander Date: Sat, 4 Dec 2021 22:25:02 +0200 Subject: [PATCH 132/188] Style improvements --- src/displayapp/DisplayApp.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/displayapp/DisplayApp.cpp b/src/displayapp/DisplayApp.cpp index 0a675c8f..f050e65d 100644 --- a/src/displayapp/DisplayApp.cpp +++ b/src/displayapp/DisplayApp.cpp @@ -506,8 +506,9 @@ void DisplayApp::SetFullRefresh(DisplayApp::FullRefreshDirections direction) { } void DisplayApp::PushMessageToSystemTask(Pinetime::System::Messages message) { - if (systemTask != nullptr) + if (systemTask != nullptr) { systemTask->PushMessage(message); + } } void DisplayApp::Register(Pinetime::System::SystemTask* systemTask) { From 9ffd28f735fd2a184f03b2ce4a46a24b7de10ba4 Mon Sep 17 00:00:00 2001 From: Riku Isokoski Date: Mon, 20 Sep 2021 15:13:46 +0300 Subject: [PATCH 133/188] Style checkboxes as radio buttons --- src/displayapp/lv_pinetime_theme.c | 1 - .../screens/settings/SettingDisplay.cpp | 67 ++++++------------- .../screens/settings/SettingDisplay.h | 7 +- .../screens/settings/SettingTimeFormat.cpp | 32 ++++----- .../screens/settings/SettingTimeFormat.h | 8 ++- .../screens/settings/SettingWatchFace.cpp | 40 ++++------- .../screens/settings/SettingWatchFace.h | 8 ++- 7 files changed, 63 insertions(+), 100 deletions(-) diff --git a/src/displayapp/lv_pinetime_theme.c b/src/displayapp/lv_pinetime_theme.c index 1780e64b..b74b2fd7 100644 --- a/src/displayapp/lv_pinetime_theme.c +++ b/src/displayapp/lv_pinetime_theme.c @@ -119,7 +119,6 @@ static void basic_init(void) { lv_style_set_bg_color(&style_btn, LV_STATE_DISABLED | LV_STATE_CHECKED, lv_color_hex3(0x888)); lv_style_set_border_color(&style_btn, LV_STATE_DEFAULT, theme.color_primary); lv_style_set_border_width(&style_btn, LV_STATE_DEFAULT, 0); - lv_style_set_border_opa(&style_btn, LV_STATE_CHECKED, LV_OPA_TRANSP); lv_style_set_text_color(&style_btn, LV_STATE_DEFAULT, lv_color_hex(0xffffff)); lv_style_set_text_color(&style_btn, LV_STATE_CHECKED, lv_color_hex(0xffffff)); diff --git a/src/displayapp/screens/settings/SettingDisplay.cpp b/src/displayapp/screens/settings/SettingDisplay.cpp index 666dfb80..9e835f61 100644 --- a/src/displayapp/screens/settings/SettingDisplay.cpp +++ b/src/displayapp/screens/settings/SettingDisplay.cpp @@ -40,39 +40,24 @@ SettingDisplay::SettingDisplay(Pinetime::Applications::DisplayApp* app, Pinetime lv_label_set_align(icon, LV_LABEL_ALIGN_CENTER); lv_obj_align(icon, title, LV_ALIGN_OUT_LEFT_MID, -10, 0); - optionsTotal = 0; - cbOption[optionsTotal] = lv_checkbox_create(container1, nullptr); - lv_checkbox_set_text_static(cbOption[optionsTotal], " 5 seconds"); - cbOption[optionsTotal]->user_data = this; - lv_obj_set_event_cb(cbOption[optionsTotal], event_handler); - if (settingsController.GetScreenTimeOut() == 5000) { - lv_checkbox_set_checked(cbOption[optionsTotal], true); + char buffer[12]; + for (unsigned int i = 0; i < options.size(); i++) { + cbOption[i] = lv_checkbox_create(container1, nullptr); + sprintf(buffer, "%3d seconds", options[i] / 1000); + lv_checkbox_set_text(cbOption[i], buffer); + cbOption[i]->user_data = this; + lv_obj_set_event_cb(cbOption[i], event_handler); + + // radio button style + lv_obj_set_style_local_radius(cbOption[i], LV_CHECKBOX_PART_BULLET, LV_STATE_DEFAULT, LV_RADIUS_CIRCLE); + lv_obj_set_style_local_border_width(cbOption[i], LV_CHECKBOX_PART_BULLET, LV_STATE_CHECKED, 9); + lv_obj_set_style_local_border_color(cbOption[i], LV_CHECKBOX_PART_BULLET, LV_STATE_CHECKED, LV_COLOR_GREEN); + lv_obj_set_style_local_bg_color(cbOption[i], LV_CHECKBOX_PART_BULLET, LV_STATE_CHECKED, LV_COLOR_WHITE); + + if (settingsController.GetScreenTimeOut() == options[i]) { + lv_checkbox_set_checked(cbOption[i], true); + } } - optionsTotal++; - cbOption[optionsTotal] = lv_checkbox_create(container1, nullptr); - lv_checkbox_set_text_static(cbOption[optionsTotal], " 15 seconds"); - cbOption[optionsTotal]->user_data = this; - lv_obj_set_event_cb(cbOption[optionsTotal], event_handler); - if (settingsController.GetScreenTimeOut() == 15000) { - lv_checkbox_set_checked(cbOption[optionsTotal], true); - } - optionsTotal++; - cbOption[optionsTotal] = lv_checkbox_create(container1, nullptr); - lv_checkbox_set_text_static(cbOption[optionsTotal], " 20 seconds"); - cbOption[optionsTotal]->user_data = this; - lv_obj_set_event_cb(cbOption[optionsTotal], event_handler); - if (settingsController.GetScreenTimeOut() == 20000) { - lv_checkbox_set_checked(cbOption[optionsTotal], true); - } - optionsTotal++; - cbOption[optionsTotal] = lv_checkbox_create(container1, nullptr); - lv_checkbox_set_text_static(cbOption[optionsTotal], " 30 seconds"); - cbOption[optionsTotal]->user_data = this; - lv_obj_set_event_cb(cbOption[optionsTotal], event_handler); - if (settingsController.GetScreenTimeOut() == 30000) { - lv_checkbox_set_checked(cbOption[optionsTotal], true); - } - optionsTotal++; } SettingDisplay::~SettingDisplay() { @@ -82,25 +67,11 @@ SettingDisplay::~SettingDisplay() { void SettingDisplay::UpdateSelected(lv_obj_t* object, lv_event_t event) { if (event == LV_EVENT_CLICKED) { - for (int i = 0; i < optionsTotal; i++) { + for (unsigned int i = 0; i < options.size(); i++) { if (object == cbOption[i]) { lv_checkbox_set_checked(cbOption[i], true); - - if (i == 0) { - settingsController.SetScreenTimeOut(5000); - }; - if (i == 1) { - settingsController.SetScreenTimeOut(15000); - }; - if (i == 2) { - settingsController.SetScreenTimeOut(20000); - }; - if (i == 3) { - settingsController.SetScreenTimeOut(30000); - }; - + settingsController.SetScreenTimeOut(options[i]); app->PushMessage(Applications::Display::Messages::UpdateTimeOut); - } else { lv_checkbox_set_checked(cbOption[i], false); } diff --git a/src/displayapp/screens/settings/SettingDisplay.h b/src/displayapp/screens/settings/SettingDisplay.h index 51b23aca..dba6b435 100644 --- a/src/displayapp/screens/settings/SettingDisplay.h +++ b/src/displayapp/screens/settings/SettingDisplay.h @@ -1,9 +1,10 @@ #pragma once -#include -#include #include "components/settings/Settings.h" #include "displayapp/screens/Screen.h" +#include +#include +#include namespace Pinetime { @@ -18,8 +19,8 @@ namespace Pinetime { void UpdateSelected(lv_obj_t* object, lv_event_t event); private: + const std::array options = {5000, 15000, 20000, 30000}; Controllers::Settings& settingsController; - uint8_t optionsTotal; lv_obj_t* cbOption[4]; }; } diff --git a/src/displayapp/screens/settings/SettingTimeFormat.cpp b/src/displayapp/screens/settings/SettingTimeFormat.cpp index c6bdf401..52ce94ba 100644 --- a/src/displayapp/screens/settings/SettingTimeFormat.cpp +++ b/src/displayapp/screens/settings/SettingTimeFormat.cpp @@ -39,24 +39,24 @@ SettingTimeFormat::SettingTimeFormat(Pinetime::Applications::DisplayApp* app, Pi lv_label_set_align(icon, LV_LABEL_ALIGN_CENTER); lv_obj_align(icon, title, LV_ALIGN_OUT_LEFT_MID, -10, 0); - optionsTotal = 0; - cbOption[optionsTotal] = lv_checkbox_create(container1, nullptr); - lv_checkbox_set_text_static(cbOption[optionsTotal], " 12-hour"); - cbOption[optionsTotal]->user_data = this; - lv_obj_set_event_cb(cbOption[optionsTotal], event_handler); - if (settingsController.GetClockType() == Controllers::Settings::ClockType::H12) { - lv_checkbox_set_checked(cbOption[optionsTotal], true); + for (unsigned int i = 0; i < options.size(); i++) { + cbOption[i] = lv_checkbox_create(container1, nullptr); + lv_checkbox_set_text(cbOption[i], options[i].c_str()); + cbOption[i]->user_data = this; + lv_obj_set_event_cb(cbOption[i], event_handler); + + // radio button style + lv_obj_set_style_local_radius(cbOption[i], LV_CHECKBOX_PART_BULLET, LV_STATE_DEFAULT, LV_RADIUS_CIRCLE); + lv_obj_set_style_local_border_width(cbOption[i], LV_CHECKBOX_PART_BULLET, LV_STATE_CHECKED, 9); + lv_obj_set_style_local_border_color(cbOption[i], LV_CHECKBOX_PART_BULLET, LV_STATE_CHECKED, LV_COLOR_GREEN); + lv_obj_set_style_local_bg_color(cbOption[i], LV_CHECKBOX_PART_BULLET, LV_STATE_CHECKED, LV_COLOR_WHITE); } - optionsTotal++; - cbOption[optionsTotal] = lv_checkbox_create(container1, nullptr); - lv_checkbox_set_text_static(cbOption[optionsTotal], " 24-hour"); - cbOption[optionsTotal]->user_data = this; - lv_obj_set_event_cb(cbOption[optionsTotal], event_handler); - if (settingsController.GetClockType() == Controllers::Settings::ClockType::H24) { - lv_checkbox_set_checked(cbOption[optionsTotal], true); + if (settingsController.GetClockType() == Controllers::Settings::ClockType::H12) { + lv_checkbox_set_checked(cbOption[0], true); + } else if (settingsController.GetClockType() == Controllers::Settings::ClockType::H24) { + lv_checkbox_set_checked(cbOption[1], true); } - optionsTotal++; } SettingTimeFormat::~SettingTimeFormat() { @@ -66,7 +66,7 @@ SettingTimeFormat::~SettingTimeFormat() { void SettingTimeFormat::UpdateSelected(lv_obj_t* object, lv_event_t event) { if (event == LV_EVENT_VALUE_CHANGED) { - for (int i = 0; i < optionsTotal; i++) { + for (unsigned int i = 0; i < options.size(); i++) { if (object == cbOption[i]) { lv_checkbox_set_checked(cbOption[i], true); diff --git a/src/displayapp/screens/settings/SettingTimeFormat.h b/src/displayapp/screens/settings/SettingTimeFormat.h index eac4bdc9..0113e35b 100644 --- a/src/displayapp/screens/settings/SettingTimeFormat.h +++ b/src/displayapp/screens/settings/SettingTimeFormat.h @@ -1,9 +1,10 @@ #pragma once -#include -#include #include "components/settings/Settings.h" #include "displayapp/screens/Screen.h" +#include +#include +#include namespace Pinetime { @@ -18,8 +19,9 @@ namespace Pinetime { void UpdateSelected(lv_obj_t* object, lv_event_t event); private: + const std::array options = {" 12-hour", " 24-hour"}; + Controllers::Settings& settingsController; - uint8_t optionsTotal; lv_obj_t* cbOption[2]; }; } diff --git a/src/displayapp/screens/settings/SettingWatchFace.cpp b/src/displayapp/screens/settings/SettingWatchFace.cpp index 8e6e7cf4..8bb8759f 100644 --- a/src/displayapp/screens/settings/SettingWatchFace.cpp +++ b/src/displayapp/screens/settings/SettingWatchFace.cpp @@ -40,34 +40,22 @@ SettingWatchFace::SettingWatchFace(Pinetime::Applications::DisplayApp* app, Pine lv_label_set_align(icon, LV_LABEL_ALIGN_CENTER); lv_obj_align(icon, title, LV_ALIGN_OUT_LEFT_MID, -10, 0); - optionsTotal = 0; - cbOption[optionsTotal] = lv_checkbox_create(container1, nullptr); - lv_checkbox_set_text_static(cbOption[optionsTotal], " Digital face"); - cbOption[optionsTotal]->user_data = this; - lv_obj_set_event_cb(cbOption[optionsTotal], event_handler); - if (settingsController.GetClockFace() == 0) { - lv_checkbox_set_checked(cbOption[optionsTotal], true); - } + for (unsigned int i = 0; i < options.size(); i++) { + cbOption[i] = lv_checkbox_create(container1, nullptr); + lv_checkbox_set_text(cbOption[i], options[i].c_str()); + cbOption[i]->user_data = this; + lv_obj_set_event_cb(cbOption[i], event_handler); - optionsTotal++; - cbOption[optionsTotal] = lv_checkbox_create(container1, nullptr); - lv_checkbox_set_text_static(cbOption[optionsTotal], " Analog face"); - cbOption[optionsTotal]->user_data = this; - lv_obj_set_event_cb(cbOption[optionsTotal], event_handler); - if (settingsController.GetClockFace() == 1) { - lv_checkbox_set_checked(cbOption[optionsTotal], true); - } + // radio button style + lv_obj_set_style_local_radius(cbOption[i], LV_CHECKBOX_PART_BULLET, LV_STATE_DEFAULT, LV_RADIUS_CIRCLE); + lv_obj_set_style_local_border_width(cbOption[i], LV_CHECKBOX_PART_BULLET, LV_STATE_CHECKED, 9); + lv_obj_set_style_local_border_color(cbOption[i], LV_CHECKBOX_PART_BULLET, LV_STATE_CHECKED, LV_COLOR_GREEN); + lv_obj_set_style_local_bg_color(cbOption[i], LV_CHECKBOX_PART_BULLET, LV_STATE_CHECKED, LV_COLOR_WHITE); - 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); + if (settingsController.GetClockFace() == i) { + lv_checkbox_set_checked(cbOption[i], true); + } } - - optionsTotal++; } SettingWatchFace::~SettingWatchFace() { @@ -77,7 +65,7 @@ SettingWatchFace::~SettingWatchFace() { void SettingWatchFace::UpdateSelected(lv_obj_t* object, lv_event_t event) { if (event == LV_EVENT_VALUE_CHANGED) { - for (uint8_t i = 0; i < optionsTotal; i++) { + for (unsigned int i = 0; i < options.size(); i++) { if (object == cbOption[i]) { lv_checkbox_set_checked(cbOption[i], true); settingsController.SetClockFace(i); diff --git a/src/displayapp/screens/settings/SettingWatchFace.h b/src/displayapp/screens/settings/SettingWatchFace.h index d4a96c6d..18634582 100644 --- a/src/displayapp/screens/settings/SettingWatchFace.h +++ b/src/displayapp/screens/settings/SettingWatchFace.h @@ -1,9 +1,10 @@ #pragma once -#include -#include #include "components/settings/Settings.h" #include "displayapp/screens/Screen.h" +#include +#include +#include namespace Pinetime { @@ -18,8 +19,9 @@ namespace Pinetime { void UpdateSelected(lv_obj_t* object, lv_event_t event); private: + const std::array options = {" Digital face", " Analog face", " PineTimeStyle"}; Controllers::Settings& settingsController; - uint8_t optionsTotal; + lv_obj_t* cbOption[2]; }; } From 494448b7ccada7e314310bb471c33c550e0e8bdf Mon Sep 17 00:00:00 2001 From: Riku Isokoski Date: Mon, 20 Sep 2021 15:27:32 +0300 Subject: [PATCH 134/188] Fix too small array --- src/displayapp/screens/settings/SettingWatchFace.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/displayapp/screens/settings/SettingWatchFace.h b/src/displayapp/screens/settings/SettingWatchFace.h index 18634582..8c6f653d 100644 --- a/src/displayapp/screens/settings/SettingWatchFace.h +++ b/src/displayapp/screens/settings/SettingWatchFace.h @@ -22,7 +22,7 @@ namespace Pinetime { const std::array options = {" Digital face", " Analog face", " PineTimeStyle"}; Controllers::Settings& settingsController; - lv_obj_t* cbOption[2]; + lv_obj_t* cbOption[3]; }; } } From 736ae08fcdd3f87a6412985eec131179d8cc6664 Mon Sep 17 00:00:00 2001 From: Riku Isokoski Date: Thu, 23 Sep 2021 02:27:09 +0300 Subject: [PATCH 135/188] Optimize arrays --- src/displayapp/screens/settings/SettingDisplay.cpp | 2 ++ src/displayapp/screens/settings/SettingDisplay.h | 5 +++-- src/displayapp/screens/settings/SettingTimeFormat.cpp | 4 +++- src/displayapp/screens/settings/SettingTimeFormat.h | 5 ++--- src/displayapp/screens/settings/SettingWatchFace.cpp | 4 +++- src/displayapp/screens/settings/SettingWatchFace.h | 4 ++-- 6 files changed, 15 insertions(+), 9 deletions(-) diff --git a/src/displayapp/screens/settings/SettingDisplay.cpp b/src/displayapp/screens/settings/SettingDisplay.cpp index 9e835f61..a92d76fe 100644 --- a/src/displayapp/screens/settings/SettingDisplay.cpp +++ b/src/displayapp/screens/settings/SettingDisplay.cpp @@ -14,6 +14,8 @@ namespace { } } +constexpr std::array SettingDisplay::options; + SettingDisplay::SettingDisplay(Pinetime::Applications::DisplayApp* app, Pinetime::Controllers::Settings& settingsController) : Screen(app), settingsController {settingsController} { diff --git a/src/displayapp/screens/settings/SettingDisplay.h b/src/displayapp/screens/settings/SettingDisplay.h index dba6b435..1309f8c1 100644 --- a/src/displayapp/screens/settings/SettingDisplay.h +++ b/src/displayapp/screens/settings/SettingDisplay.h @@ -19,9 +19,10 @@ namespace Pinetime { void UpdateSelected(lv_obj_t* object, lv_event_t event); private: - const std::array options = {5000, 15000, 20000, 30000}; + static constexpr std::array options = {5000, 15000, 20000, 30000}; + Controllers::Settings& settingsController; - lv_obj_t* cbOption[4]; + lv_obj_t* cbOption[options.size()]; }; } } diff --git a/src/displayapp/screens/settings/SettingTimeFormat.cpp b/src/displayapp/screens/settings/SettingTimeFormat.cpp index 52ce94ba..e65cb9e8 100644 --- a/src/displayapp/screens/settings/SettingTimeFormat.cpp +++ b/src/displayapp/screens/settings/SettingTimeFormat.cpp @@ -13,6 +13,8 @@ namespace { } } +constexpr std::array SettingTimeFormat::options; + SettingTimeFormat::SettingTimeFormat(Pinetime::Applications::DisplayApp* app, Pinetime::Controllers::Settings& settingsController) : Screen(app), settingsController {settingsController} { @@ -41,7 +43,7 @@ SettingTimeFormat::SettingTimeFormat(Pinetime::Applications::DisplayApp* app, Pi for (unsigned int i = 0; i < options.size(); i++) { cbOption[i] = lv_checkbox_create(container1, nullptr); - lv_checkbox_set_text(cbOption[i], options[i].c_str()); + lv_checkbox_set_text(cbOption[i], options[i]); cbOption[i]->user_data = this; lv_obj_set_event_cb(cbOption[i], event_handler); diff --git a/src/displayapp/screens/settings/SettingTimeFormat.h b/src/displayapp/screens/settings/SettingTimeFormat.h index 0113e35b..fa24eabe 100644 --- a/src/displayapp/screens/settings/SettingTimeFormat.h +++ b/src/displayapp/screens/settings/SettingTimeFormat.h @@ -19,10 +19,9 @@ namespace Pinetime { void UpdateSelected(lv_obj_t* object, lv_event_t event); private: - const std::array options = {" 12-hour", " 24-hour"}; - + static constexpr std::array options = {" 12-hour", " 24-hour"}; Controllers::Settings& settingsController; - lv_obj_t* cbOption[2]; + lv_obj_t* cbOption[options.size()]; }; } } diff --git a/src/displayapp/screens/settings/SettingWatchFace.cpp b/src/displayapp/screens/settings/SettingWatchFace.cpp index 8bb8759f..0166ae97 100644 --- a/src/displayapp/screens/settings/SettingWatchFace.cpp +++ b/src/displayapp/screens/settings/SettingWatchFace.cpp @@ -13,6 +13,8 @@ namespace { } } +constexpr std::array SettingWatchFace::options; + SettingWatchFace::SettingWatchFace(Pinetime::Applications::DisplayApp* app, Pinetime::Controllers::Settings& settingsController) : Screen(app), settingsController {settingsController} { @@ -42,7 +44,7 @@ SettingWatchFace::SettingWatchFace(Pinetime::Applications::DisplayApp* app, Pine for (unsigned int i = 0; i < options.size(); i++) { cbOption[i] = lv_checkbox_create(container1, nullptr); - lv_checkbox_set_text(cbOption[i], options[i].c_str()); + lv_checkbox_set_text(cbOption[i], options[i]); cbOption[i]->user_data = this; lv_obj_set_event_cb(cbOption[i], event_handler); diff --git a/src/displayapp/screens/settings/SettingWatchFace.h b/src/displayapp/screens/settings/SettingWatchFace.h index 8c6f653d..281c4bae 100644 --- a/src/displayapp/screens/settings/SettingWatchFace.h +++ b/src/displayapp/screens/settings/SettingWatchFace.h @@ -19,10 +19,10 @@ namespace Pinetime { void UpdateSelected(lv_obj_t* object, lv_event_t event); private: - const std::array options = {" Digital face", " Analog face", " PineTimeStyle"}; + static constexpr std::array options = {" Digital face", " Analog face", " PineTimeStyle"}; Controllers::Settings& settingsController; - lv_obj_t* cbOption[3]; + lv_obj_t* cbOption[options.size()]; }; } } From ec9b5a0bd2847d972c285d46e28deba0241d3a47 Mon Sep 17 00:00:00 2001 From: Riku Isokoski Date: Thu, 23 Sep 2021 02:53:10 +0300 Subject: [PATCH 136/188] Move radio button styling to a single place --- src/CMakeLists.txt | 1 + src/displayapp/screens/Styles.cpp | 8 ++++++++ src/displayapp/screens/Styles.h | 9 +++++++++ src/displayapp/screens/settings/SettingDisplay.cpp | 8 ++------ src/displayapp/screens/settings/SettingTimeFormat.cpp | 8 ++------ src/displayapp/screens/settings/SettingWatchFace.cpp | 8 ++------ 6 files changed, 24 insertions(+), 18 deletions(-) create mode 100644 src/displayapp/screens/Styles.cpp create mode 100644 src/displayapp/screens/Styles.h diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 5591dbcc..480b4e61 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -434,6 +434,7 @@ list(APPEND SOURCE_FILES displayapp/screens/PassKey.cpp displayapp/screens/Error.cpp displayapp/screens/Alarm.cpp + displayapp/screens/Styles.cpp displayapp/Colors.cpp ## Settings diff --git a/src/displayapp/screens/Styles.cpp b/src/displayapp/screens/Styles.cpp new file mode 100644 index 00000000..7f43fb99 --- /dev/null +++ b/src/displayapp/screens/Styles.cpp @@ -0,0 +1,8 @@ +#include "Styles.h" + +void Pinetime::Applications::Screens::SetRadioButtonStyle(lv_obj_t* checkbox) { + lv_obj_set_style_local_radius(checkbox, LV_CHECKBOX_PART_BULLET, LV_STATE_DEFAULT, LV_RADIUS_CIRCLE); + lv_obj_set_style_local_border_width(checkbox, LV_CHECKBOX_PART_BULLET, LV_STATE_CHECKED, 9); + lv_obj_set_style_local_border_color(checkbox, LV_CHECKBOX_PART_BULLET, LV_STATE_CHECKED, LV_COLOR_GREEN); + lv_obj_set_style_local_bg_color(checkbox, LV_CHECKBOX_PART_BULLET, LV_STATE_CHECKED, LV_COLOR_WHITE); +} diff --git a/src/displayapp/screens/Styles.h b/src/displayapp/screens/Styles.h new file mode 100644 index 00000000..a5fbb9f6 --- /dev/null +++ b/src/displayapp/screens/Styles.h @@ -0,0 +1,9 @@ +#include + +namespace Pinetime { + namespace Applications { + namespace Screens { + void SetRadioButtonStyle(lv_obj_t* checkbox); + } + } +} diff --git a/src/displayapp/screens/settings/SettingDisplay.cpp b/src/displayapp/screens/settings/SettingDisplay.cpp index a92d76fe..9e972afc 100644 --- a/src/displayapp/screens/settings/SettingDisplay.cpp +++ b/src/displayapp/screens/settings/SettingDisplay.cpp @@ -2,6 +2,7 @@ #include #include "displayapp/DisplayApp.h" #include "displayapp/Messages.h" +#include "displayapp/screens/Styles.h" #include "displayapp/screens/Screen.h" #include "displayapp/screens/Symbols.h" @@ -49,12 +50,7 @@ SettingDisplay::SettingDisplay(Pinetime::Applications::DisplayApp* app, Pinetime lv_checkbox_set_text(cbOption[i], buffer); cbOption[i]->user_data = this; lv_obj_set_event_cb(cbOption[i], event_handler); - - // radio button style - lv_obj_set_style_local_radius(cbOption[i], LV_CHECKBOX_PART_BULLET, LV_STATE_DEFAULT, LV_RADIUS_CIRCLE); - lv_obj_set_style_local_border_width(cbOption[i], LV_CHECKBOX_PART_BULLET, LV_STATE_CHECKED, 9); - lv_obj_set_style_local_border_color(cbOption[i], LV_CHECKBOX_PART_BULLET, LV_STATE_CHECKED, LV_COLOR_GREEN); - lv_obj_set_style_local_bg_color(cbOption[i], LV_CHECKBOX_PART_BULLET, LV_STATE_CHECKED, LV_COLOR_WHITE); + SetRadioButtonStyle(cbOption[i]); if (settingsController.GetScreenTimeOut() == options[i]) { lv_checkbox_set_checked(cbOption[i], true); diff --git a/src/displayapp/screens/settings/SettingTimeFormat.cpp b/src/displayapp/screens/settings/SettingTimeFormat.cpp index e65cb9e8..bd9af156 100644 --- a/src/displayapp/screens/settings/SettingTimeFormat.cpp +++ b/src/displayapp/screens/settings/SettingTimeFormat.cpp @@ -1,6 +1,7 @@ #include "displayapp/screens/settings/SettingTimeFormat.h" #include #include "displayapp/DisplayApp.h" +#include "displayapp/screens/Styles.h" #include "displayapp/screens/Screen.h" #include "displayapp/screens/Symbols.h" @@ -46,12 +47,7 @@ SettingTimeFormat::SettingTimeFormat(Pinetime::Applications::DisplayApp* app, Pi lv_checkbox_set_text(cbOption[i], options[i]); cbOption[i]->user_data = this; lv_obj_set_event_cb(cbOption[i], event_handler); - - // radio button style - lv_obj_set_style_local_radius(cbOption[i], LV_CHECKBOX_PART_BULLET, LV_STATE_DEFAULT, LV_RADIUS_CIRCLE); - lv_obj_set_style_local_border_width(cbOption[i], LV_CHECKBOX_PART_BULLET, LV_STATE_CHECKED, 9); - lv_obj_set_style_local_border_color(cbOption[i], LV_CHECKBOX_PART_BULLET, LV_STATE_CHECKED, LV_COLOR_GREEN); - lv_obj_set_style_local_bg_color(cbOption[i], LV_CHECKBOX_PART_BULLET, LV_STATE_CHECKED, LV_COLOR_WHITE); + SetRadioButtonStyle(cbOption[i]); } if (settingsController.GetClockType() == Controllers::Settings::ClockType::H12) { diff --git a/src/displayapp/screens/settings/SettingWatchFace.cpp b/src/displayapp/screens/settings/SettingWatchFace.cpp index 0166ae97..a24eaa15 100644 --- a/src/displayapp/screens/settings/SettingWatchFace.cpp +++ b/src/displayapp/screens/settings/SettingWatchFace.cpp @@ -2,6 +2,7 @@ #include #include "displayapp/DisplayApp.h" #include "displayapp/screens/Screen.h" +#include "displayapp/screens/Styles.h" #include "displayapp/screens/Symbols.h" using namespace Pinetime::Applications::Screens; @@ -47,12 +48,7 @@ SettingWatchFace::SettingWatchFace(Pinetime::Applications::DisplayApp* app, Pine lv_checkbox_set_text(cbOption[i], options[i]); cbOption[i]->user_data = this; lv_obj_set_event_cb(cbOption[i], event_handler); - - // radio button style - lv_obj_set_style_local_radius(cbOption[i], LV_CHECKBOX_PART_BULLET, LV_STATE_DEFAULT, LV_RADIUS_CIRCLE); - lv_obj_set_style_local_border_width(cbOption[i], LV_CHECKBOX_PART_BULLET, LV_STATE_CHECKED, 9); - lv_obj_set_style_local_border_color(cbOption[i], LV_CHECKBOX_PART_BULLET, LV_STATE_CHECKED, LV_COLOR_GREEN); - lv_obj_set_style_local_bg_color(cbOption[i], LV_CHECKBOX_PART_BULLET, LV_STATE_CHECKED, LV_COLOR_WHITE); + SetRadioButtonStyle(cbOption[i]); if (settingsController.GetClockFace() == i) { lv_checkbox_set_checked(cbOption[i], true); From 32ea01b2e94a2acd5084eacf49df8695ab488a19 Mon Sep 17 00:00:00 2001 From: Riku Isokoski Date: Fri, 3 Dec 2021 21:39:18 +0200 Subject: [PATCH 137/188] Organize includes --- src/displayapp/screens/settings/SettingDisplay.h | 5 +++-- src/displayapp/screens/settings/SettingTimeFormat.h | 5 +++-- src/displayapp/screens/settings/SettingWatchFace.h | 5 +++-- 3 files changed, 9 insertions(+), 6 deletions(-) diff --git a/src/displayapp/screens/settings/SettingDisplay.h b/src/displayapp/screens/settings/SettingDisplay.h index 1309f8c1..dc56419d 100644 --- a/src/displayapp/screens/settings/SettingDisplay.h +++ b/src/displayapp/screens/settings/SettingDisplay.h @@ -1,11 +1,12 @@ #pragma once -#include "components/settings/Settings.h" -#include "displayapp/screens/Screen.h" #include #include #include +#include "components/settings/Settings.h" +#include "displayapp/screens/Screen.h" + namespace Pinetime { namespace Applications { diff --git a/src/displayapp/screens/settings/SettingTimeFormat.h b/src/displayapp/screens/settings/SettingTimeFormat.h index fa24eabe..818edf0c 100644 --- a/src/displayapp/screens/settings/SettingTimeFormat.h +++ b/src/displayapp/screens/settings/SettingTimeFormat.h @@ -1,11 +1,12 @@ #pragma once -#include "components/settings/Settings.h" -#include "displayapp/screens/Screen.h" #include #include #include +#include "components/settings/Settings.h" +#include "displayapp/screens/Screen.h" + namespace Pinetime { namespace Applications { diff --git a/src/displayapp/screens/settings/SettingWatchFace.h b/src/displayapp/screens/settings/SettingWatchFace.h index 281c4bae..ccba7d13 100644 --- a/src/displayapp/screens/settings/SettingWatchFace.h +++ b/src/displayapp/screens/settings/SettingWatchFace.h @@ -1,11 +1,12 @@ #pragma once -#include "components/settings/Settings.h" -#include "displayapp/screens/Screen.h" #include #include #include +#include "components/settings/Settings.h" +#include "displayapp/screens/Screen.h" + namespace Pinetime { namespace Applications { From 6354511c20f611659c63801c9f6d3129d30b6d50 Mon Sep 17 00:00:00 2001 From: Avamander Date: Thu, 9 Dec 2021 22:51:42 +0200 Subject: [PATCH 138/188] Hotfix for other build targets --- src/CMakeLists.txt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 480b4e61..d08ea07a 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -1023,7 +1023,7 @@ endif() set(EXECUTABLE_RECOVERYLOADER_NAME "pinetime-recovery-loader") set(EXECUTABLE_RECOVERYLOADER_FILE_NAME ${EXECUTABLE_RECOVERYLOADER_NAME}-${pinetime_VERSION_MAJOR}.${pinetime_VERSION_MINOR}.${pinetime_VERSION_PATCH}) add_executable(${EXECUTABLE_RECOVERYLOADER_NAME} ${RECOVERYLOADER_SOURCE_FILES}) -target_link_libraries(${EXECUTABLE_RECOVERYLOADER_NAME} nrf-sdk) +target_link_libraries(${EXECUTABLE_RECOVERYLOADER_NAME} nrf-sdk QCBOR) set_target_properties(${EXECUTABLE_RECOVERYLOADER_NAME} PROPERTIES OUTPUT_NAME ${EXECUTABLE_RECOVERYLOADER_FILE_NAME}) target_compile_options(${EXECUTABLE_RECOVERYLOADER_NAME} PUBLIC $<$,$>: ${COMMON_FLAGS} -Og -g3> @@ -1056,7 +1056,7 @@ set(EXECUTABLE_MCUBOOT_RECOVERYLOADER_FILE_NAME ${EXECUTABLE_MCUBOOT_RECOVERYLOA set(IMAGE_MCUBOOT_RECOVERYLOADER_FILE_NAME ${EXECUTABLE_MCUBOOT_RECOVERYLOADER_NAME}-image-${pinetime_VERSION_MAJOR}.${pinetime_VERSION_MINOR}.${pinetime_VERSION_PATCH}.bin) set(DFU_MCUBOOT_RECOVERYLOADER_FILE_NAME ${EXECUTABLE_MCUBOOT_RECOVERYLOADER_NAME}-dfu-${pinetime_VERSION_MAJOR}.${pinetime_VERSION_MINOR}.${pinetime_VERSION_PATCH}.zip) add_executable(${EXECUTABLE_MCUBOOT_RECOVERYLOADER_NAME} ${RECOVERYLOADER_SOURCE_FILES}) -target_link_libraries(${EXECUTABLE_MCUBOOT_RECOVERYLOADER_NAME} nrf-sdk) +target_link_libraries(${EXECUTABLE_MCUBOOT_RECOVERYLOADER_NAME} nrf-sdk QCBOR) set_target_properties(${EXECUTABLE_MCUBOOT_RECOVERYLOADER_NAME} PROPERTIES OUTPUT_NAME ${EXECUTABLE_MCUBOOT_RECOVERYLOADER_FILE_NAME}) target_compile_options(${EXECUTABLE_MCUBOOT_RECOVERYLOADER_NAME} PUBLIC $<$,$>: ${COMMON_FLAGS} -Og -g3> From 42a5cdb5b776c2cdeb08a8c6f26606282a809178 Mon Sep 17 00:00:00 2001 From: Avamander Date: Thu, 9 Dec 2021 22:56:37 +0200 Subject: [PATCH 139/188] Added QCBOR to pinetime-mcuboot-recovery --- src/CMakeLists.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index d08ea07a..bb9f76fe 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -985,7 +985,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 littlefs) +target_link_libraries(${EXECUTABLE_RECOVERY_MCUBOOT_NAME} nimble nrf-sdk littlefs QCBOR) 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 From f57f797ff54d9ee8864d3fc62f0c8662df13aad8 Mon Sep 17 00:00:00 2001 From: Tim Keller Date: Sun, 17 Oct 2021 01:09:26 +0000 Subject: [PATCH 140/188] Added Blank FSService that exposes only version info --- src/CMakeLists.txt | 3 ++ src/components/ble/FSService.cpp | 55 +++++++++++++++++++++ src/components/ble/FSService.h | 65 +++++++++++++++++++++++++ src/components/ble/NimbleController.cpp | 9 ++-- src/components/ble/NimbleController.h | 3 ++ 5 files changed, 132 insertions(+), 3 deletions(-) create mode 100644 src/components/ble/FSService.cpp create mode 100644 src/components/ble/FSService.h diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index bb9f76fe..809544c9 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -487,6 +487,7 @@ list(APPEND SOURCE_FILES components/ble/NavigationService.cpp displayapp/fonts/lv_font_navi_80.c components/ble/BatteryInformationService.cpp + components/ble/FSService.cpp components/ble/ImmediateAlertService.cpp components/ble/ServiceDiscovery.cpp components/ble/HeartRateService.cpp @@ -557,6 +558,7 @@ list(APPEND RECOVERY_SOURCE_FILES components/ble/MusicService.cpp components/ble/weather/WeatherService.cpp components/ble/BatteryInformationService.cpp + components/ble/FSService.cpp components/ble/ImmediateAlertService.cpp components/ble/ServiceDiscovery.cpp components/ble/NavigationService.cpp @@ -669,6 +671,7 @@ set(INCLUDE_FILES components/ble/DfuService.h components/firmwarevalidator/FirmwareValidator.h components/ble/BatteryInformationService.h + components/ble/FSService.h components/ble/ImmediateAlertService.h components/ble/ServiceDiscovery.h components/ble/BleClient.h diff --git a/src/components/ble/FSService.cpp b/src/components/ble/FSService.cpp new file mode 100644 index 00000000..6551c20c --- /dev/null +++ b/src/components/ble/FSService.cpp @@ -0,0 +1,55 @@ +#include +#include "FSService.h" + +using namespace Pinetime::Controllers; + +constexpr ble_uuid128_t FSService::fsServiceUuid; +constexpr ble_uuid128_t FSService::fsVersionUuid; +constexpr ble_uuid128_t FSService::fsTransferUuid; + +int FSServiceCallback(uint16_t conn_handle, uint16_t attr_handle, struct ble_gatt_access_ctxt* ctxt, void* arg) { + auto* fsService = static_cast(arg); + return fsService->OnFSServiceRequested(conn_handle, attr_handle, ctxt); +} + +FSService::FSService(Pinetime::Controllers::FS& fs) + : fs {fs}, + characteristicDefinition {{.uuid = &fsVersionUuid.u, + .access_cb = FSServiceCallback, + .arg = this, + .flags = BLE_GATT_CHR_F_READ, + .val_handle = &versionCharacteristicHandle}, + { + .uuid = &fsTransferUuid.u, + .access_cb = FSServiceCallback, + .arg = this, + .flags = BLE_GATT_CHR_F_WRITE | BLE_GATT_CHR_F_READ | BLE_GATT_CHR_F_NOTIFY, + .val_handle = nullptr, + }, + {0}}, + serviceDefinition { + {/* Device Information Service */ + .type = BLE_GATT_SVC_TYPE_PRIMARY, + .uuid = &fsServiceUuid.u, + .characteristics = characteristicDefinition}, + {0}, + } { +} + +void FSService::Init() { + int res = 0; + res = ble_gatts_count_cfg(serviceDefinition); + ASSERT(res == 0); + + res = ble_gatts_add_svcs(serviceDefinition); + ASSERT(res == 0); +} + +int FSService::OnFSServiceRequested(uint16_t connectionHandle, uint16_t attributeHandle, ble_gatt_access_ctxt* context) { + if (attributeHandle == versionCharacteristicHandle) { + NRF_LOG_INFO("FS_S : handle = %d", versionCharacteristicHandle); + int res = os_mbuf_append(context->om, &fsVersion, sizeof(fsVersion)); + return (res == 0) ? 0 : BLE_ATT_ERR_INSUFFICIENT_RES; + } + return 0; +} diff --git a/src/components/ble/FSService.h b/src/components/ble/FSService.h new file mode 100644 index 00000000..85b484a3 --- /dev/null +++ b/src/components/ble/FSService.h @@ -0,0 +1,65 @@ +#pragma once +#define min // workaround: nimble's min/max macros conflict with libstdc++ +#define max +#include +#undef max +#undef min +#include "components/fs/FS.h" + +namespace Pinetime { + namespace System { + class SystemTask; + } + namespace Controllers { + class Ble; + class FSService { + public: + FSService(Pinetime::Controllers::FS& fs); + void Init(); + + int OnFSServiceRequested(uint16_t connectionHandle, uint16_t attributeHandle, ble_gatt_access_ctxt* context); + void NotifyFSRaw(uint16_t connectionHandle); + + private: + Pinetime::Controllers::FS& fs; + static constexpr uint16_t FSServiceId {0xFEBB}; + static constexpr uint16_t fsVersionId {0x0100}; + static constexpr uint16_t fsTransferId {0x0200}; + uint16_t fsVersion = {0x0004}; + + static constexpr ble_uuid128_t fsServiceUuid { + .u {.type = BLE_UUID_TYPE_128}, + .value = {0x72, 0x65, 0x66, 0x73, 0x6e, 0x61, 0x72, 0x54, 0x65, 0x6c, 0x69, 0x46, 0xBB, 0xFE, 0xAF, 0xAD}}; + + static constexpr ble_uuid128_t fsVersionUuid { + .u {.type = BLE_UUID_TYPE_128}, + .value = {0x72, 0x65, 0x66, 0x73, 0x6e, 0x61, 0x72, 0x54, 0x65, 0x6c, 0x69, 0x46, 0x00, 0x01, 0xAF, 0xAD}}; + + static constexpr ble_uuid128_t fsTransferUuid { + .u {.type = BLE_UUID_TYPE_128}, + .value = {0x72, 0x65, 0x66, 0x73, 0x6e, 0x61, 0x72, 0x54, 0x65, 0x6c, 0x69, 0x46, 0x00, 0x02, 0xAF, 0xAD}}; + + struct ble_gatt_chr_def characteristicDefinition[3]; + struct ble_gatt_svc_def serviceDefinition[2]; + uint16_t versionCharacteristicHandle; + + enum class commands { + INVALID = 0x00, + READ = 0x10, + READ_DATA = 0x11, + READ_PACING = 0x12, + WRITE = 0x20, + WRITE_PACING = 0x21, + WRITE_DATA = 0x22, + DELETE = 0x30, + DELETE_STATUS = 0x31, + MKDIR = 0x40, + MKDIR_STATUS = 0x41, + LISTDIR = 0x50, + LISTDIR_ENTRY = 0x51, + MOVE = 0x60, + MOVE_STATUS = 0x61, + } + }; + } +} diff --git a/src/components/ble/NimbleController.cpp b/src/components/ble/NimbleController.cpp index acf4f94b..b5eb46b8 100644 --- a/src/components/ble/NimbleController.cpp +++ b/src/components/ble/NimbleController.cpp @@ -30,7 +30,7 @@ NimbleController::NimbleController(Pinetime::System::SystemTask& systemTask, Pinetime::Drivers::SpiNorFlash& spiNorFlash, Controllers::HeartRateController& heartRateController, Controllers::MotionController& motionController, - Pinetime::Controllers::FS& fs) + Controllers::FS& fs) : systemTask {systemTask}, bleController {bleController}, dateTimeController {dateTimeController}, @@ -49,7 +49,9 @@ NimbleController::NimbleController(Pinetime::System::SystemTask& systemTask, batteryInformationService {batteryController}, immediateAlertService {systemTask, notificationManager}, heartRateService {systemTask, heartRateController}, - motionService {systemTask, motionController}, + motionService{systemTask, motionController}, + fs {fs}, + fsService {fs}, serviceDiscovery({¤tTimeClient, &alertNotificationClient}) { } @@ -97,7 +99,8 @@ void NimbleController::Init() { immediateAlertService.Init(); heartRateService.Init(); motionService.Init(); - + fsService.Init(); + int rc; rc = ble_hs_util_ensure_addr(0); ASSERT(rc == 0); diff --git a/src/components/ble/NimbleController.h b/src/components/ble/NimbleController.h index 12bd6924..14749b8d 100644 --- a/src/components/ble/NimbleController.h +++ b/src/components/ble/NimbleController.h @@ -22,6 +22,7 @@ #include "components/ble/MotionService.h" #include "components/ble/weather/WeatherService.h" #include "components/fs/FS.h" +#include "components/ble/FSService.h" namespace Pinetime { namespace Drivers { @@ -110,6 +111,8 @@ namespace Pinetime { HeartRateService heartRateService; MotionService motionService; ServiceDiscovery serviceDiscovery; + FS fs; + FSService fsService; uint8_t addrType; uint16_t connectionHandle = BLE_HS_CONN_HANDLE_NONE; From 91c644b43c250b0a03047349182828df31ddcbd2 Mon Sep 17 00:00:00 2001 From: Tim Keller Date: Sun, 17 Oct 2021 16:04:23 +0000 Subject: [PATCH 141/188] direcetory listings maybe? Added LISTDIR command and notify responses. --- src/components/ble/FSService.cpp | 73 ++++++++++++++++++++++++++++++-- src/components/ble/FSService.h | 27 ++++++++++-- src/components/fs/FS.cpp | 57 ++++++++++++++----------- src/components/fs/FS.h | 3 ++ 4 files changed, 129 insertions(+), 31 deletions(-) diff --git a/src/components/ble/FSService.cpp b/src/components/ble/FSService.cpp index 6551c20c..2cfd5ccd 100644 --- a/src/components/ble/FSService.cpp +++ b/src/components/ble/FSService.cpp @@ -1,5 +1,6 @@ #include #include "FSService.h" +#include "components/ble/BleController.h" using namespace Pinetime::Controllers; @@ -13,8 +14,8 @@ int FSServiceCallback(uint16_t conn_handle, uint16_t attr_handle, struct ble_gat } FSService::FSService(Pinetime::Controllers::FS& fs) - : fs {fs}, - characteristicDefinition {{.uuid = &fsVersionUuid.u, + : fs {fs}, + characteristicDefinition {{.uuid = &fsVersionUuid.u, .access_cb = FSServiceCallback, .arg = this, .flags = BLE_GATT_CHR_F_READ, @@ -24,7 +25,7 @@ FSService::FSService(Pinetime::Controllers::FS& fs) .access_cb = FSServiceCallback, .arg = this, .flags = BLE_GATT_CHR_F_WRITE | BLE_GATT_CHR_F_READ | BLE_GATT_CHR_F_NOTIFY, - .val_handle = nullptr, + .val_handle = &transferCharacteristicHandle, }, {0}}, serviceDefinition { @@ -51,5 +52,71 @@ int FSService::OnFSServiceRequested(uint16_t connectionHandle, uint16_t attribut int res = os_mbuf_append(context->om, &fsVersion, sizeof(fsVersion)); return (res == 0) ? 0 : BLE_ATT_ERR_INSUFFICIENT_RES; } + if (attributeHandle == transferCharacteristicHandle) { + return FSCommandHandler(connectionHandle, context->om); + } + return 0; +} + +int FSService::FSCommandHandler(uint16_t connectionHandle, os_mbuf* om) { + auto command = static_cast(om->om_data[0]); + NRF_LOG_INFO("[FS_S] -> FSCommandHandler"); + + switch (command) { + case commands::LISTDIR: { + NRF_LOG_INFO("[FS_S] -> ListDir"); + ListDirHeader *header = (ListDirHeader *)&om->om_data[0]; + uint16_t plen = header->pathlen; + char path[plen+1] = {0}; + memcpy(path, header->pathstr, plen); + NRF_LOG_INFO("[FS_S] -> DIR %.10s", path); + lfs_dir_t dir; + struct lfs_info info; + + ListDirResponse resp; + resp.command = 0x51; // LISTDIR_ENTRY; + resp.status = 1; // TODO actually use res above! + resp.totalentries = 0; + resp.entry = 0; + int res = fs.DirOpen(path, &dir); + while (fs.DirRead(&dir, &info)) { + resp.totalentries++; + } + NRF_LOG_INFO("[FS_S] -> %d ", resp.totalentries); + fs.DirClose(&dir); + fs.DirOpen(path, &dir); + while (fs.DirRead(&dir, &info)) { + switch(info.type){ + case LFS_TYPE_REG: + { + resp.flags = 0; + resp.file_size = info.size; + break; + } + case LFS_TYPE_DIR: + { + resp.flags = 1; + resp.file_size = 0; + break; + } + } + resp.modification_time = 0; // TODO Does LFS actually support TS? + strcpy(resp.path,info.name); + resp.path_length = strlen(info.name); + NRF_LOG_INFO("[FS_S] ->Path %s ,", info.name); + auto* om = ble_hs_mbuf_from_flat(&resp,sizeof(ListDirResponse)); + ble_gattc_notify_custom(connectionHandle,transferCharacteristicHandle,om); + resp.entry++; + } + resp.entry++; + resp.file_size = 0; + resp.path_length = 0; + resp.flags = 0; + //Todo this better + auto* om = ble_hs_mbuf_from_flat(&resp,sizeof(ListDirResponse)-70+resp.path_length); + ble_gattc_notify_custom(connectionHandle,transferCharacteristicHandle,om); + NRF_LOG_INFO("[FS_S] -> done "); + } + } return 0; } diff --git a/src/components/ble/FSService.h b/src/components/ble/FSService.h index 85b484a3..eb4b34d7 100644 --- a/src/components/ble/FSService.h +++ b/src/components/ble/FSService.h @@ -4,6 +4,7 @@ #include #undef max #undef min + #include "components/fs/FS.h" namespace Pinetime { @@ -42,8 +43,26 @@ namespace Pinetime { struct ble_gatt_chr_def characteristicDefinition[3]; struct ble_gatt_svc_def serviceDefinition[2]; uint16_t versionCharacteristicHandle; + uint16_t transferCharacteristicHandle; + typedef struct __attribute__((packed)) { + uint8_t command; + uint8_t padding; + uint16_t pathlen; + char pathstr[70]; + } ListDirHeader; + typedef struct __attribute__((packed)) { + uint8_t command; + uint8_t status; + uint16_t path_length; + uint32_t entry; + uint32_t totalentries; + uint32_t flags; + uint32_t modification_time; + uint32_t file_size; + char path[70]; + } ListDirResponse; - enum class commands { + enum class commands : uint8_t { INVALID = 0x00, READ = 0x10, READ_DATA = 0x11, @@ -58,8 +77,10 @@ namespace Pinetime { LISTDIR = 0x50, LISTDIR_ENTRY = 0x51, MOVE = 0x60, - MOVE_STATUS = 0x61, - } + MOVE_STATUS = 0x61 + }; + + int FSCommandHandler(uint16_t connectionHandle, os_mbuf* om); }; } } diff --git a/src/components/fs/FS.cpp b/src/components/fs/FS.cpp index 1cad4f02..f287c28e 100644 --- a/src/components/fs/FS.cpp +++ b/src/components/fs/FS.cpp @@ -5,29 +5,28 @@ using namespace Pinetime::Controllers; -FS::FS(Pinetime::Drivers::SpiNorFlash& driver) : - flashDriver{ driver }, - lfsConfig{ - .context = this, - .read = SectorRead, - .prog = SectorProg, - .erase = SectorErase, - .sync = SectorSync, +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, + .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, - } -{ } + .cache_size = 16, + .lookahead_size = 16, + .name_max = 50, + .attr_max = 50, + } { +} void FS::Init() { @@ -48,7 +47,6 @@ void FS::Init() { VerifyResource(); LVGLFileSystemInit(); #endif - } void FS::VerifyResource() { @@ -56,7 +54,7 @@ void FS::VerifyResource() { resourcesValid = true; } -int FS::FileOpen(lfs_file_t* file_p, const char* fileName, const int flags) { +int FS::FileOpen(lfs_file_t* file_p, const char* fileName, const int flags) { return lfs_file_open(&lfs, file_p, fileName, flags); } @@ -80,6 +78,17 @@ int FS::FileDelete(const char* fileName) { return lfs_remove(&lfs, fileName); } +int FS::DirOpen(const char* path, lfs_dir_t* lfs_dir) { + return lfs_dir_open(&lfs, lfs_dir, path); +} + +int FS::DirClose(lfs_dir_t* lfs_dir) { + return lfs_dir_close(&lfs, lfs_dir); +} + +int FS::DirRead(lfs_dir_t* dir, lfs_info* info) { + return lfs_dir_read(&lfs, dir, info); +} int FS::DirCreate(const char* path) { return lfs_mkdir(&lfs, path); @@ -148,8 +157,7 @@ namespace { if (file->type == 0) { return LV_FS_RES_FS_ERR; - } - else { + } else { return LV_FS_RES_OK; } } @@ -193,5 +201,4 @@ void FS::LVGLFileSystemInit() { 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 index 75ba16c8..28d28d3c 100644 --- a/src/components/fs/FS.h +++ b/src/components/fs/FS.h @@ -21,6 +21,9 @@ namespace Pinetime { int FileDelete(const char* fileName); + int DirOpen(const char* path, lfs_dir_t* lfs_dir); + int DirClose(lfs_dir_t* lfs_dir); + int DirRead(lfs_dir_t* dir, lfs_info* info); int DirCreate(const char* path); int DirDelete(const char* path); From 1dd71744802b4ae80c8952f73bbf0051fbe12cf3 Mon Sep 17 00:00:00 2001 From: Tim Keller Date: Sun, 17 Oct 2021 20:48:34 +0000 Subject: [PATCH 142/188] More reliable FS listing --- src/components/ble/FSService.cpp | 17 ++++++++++++----- src/components/fs/FS.cpp | 4 +++- src/components/fs/FS.h | 1 + 3 files changed, 16 insertions(+), 6 deletions(-) diff --git a/src/components/ble/FSService.cpp b/src/components/ble/FSService.cpp index 2cfd5ccd..2f02cd96 100644 --- a/src/components/ble/FSService.cpp +++ b/src/components/ble/FSService.cpp @@ -70,21 +70,26 @@ int FSService::FSCommandHandler(uint16_t connectionHandle, os_mbuf* om) { char path[plen+1] = {0}; memcpy(path, header->pathstr, plen); NRF_LOG_INFO("[FS_S] -> DIR %.10s", path); - lfs_dir_t dir; - struct lfs_info info; + lfs_dir_t dir = {}; + struct lfs_info info = {}; - ListDirResponse resp; + ListDirResponse resp = {}; resp.command = 0x51; // LISTDIR_ENTRY; resp.status = 1; // TODO actually use res above! resp.totalentries = 0; resp.entry = 0; + int sr; int res = fs.DirOpen(path, &dir); + + NRF_LOG_INFO("[FS_S] ->diropen %d ", res); while (fs.DirRead(&dir, &info)) { resp.totalentries++; + } NRF_LOG_INFO("[FS_S] -> %d ", resp.totalentries); - fs.DirClose(&dir); - fs.DirOpen(path, &dir); + + fs.DirRewind(&dir); + while (fs.DirRead(&dir, &info)) { switch(info.type){ case LFS_TYPE_REG: @@ -106,8 +111,10 @@ int FSService::FSCommandHandler(uint16_t connectionHandle, os_mbuf* om) { NRF_LOG_INFO("[FS_S] ->Path %s ,", info.name); auto* om = ble_hs_mbuf_from_flat(&resp,sizeof(ListDirResponse)); ble_gattc_notify_custom(connectionHandle,transferCharacteristicHandle,om); + vTaskDelay(1); //Allow stuff to actually go out over the BLE conn resp.entry++; } + fs.DirClose(&dir); resp.entry++; resp.file_size = 0; resp.path_length = 0; diff --git a/src/components/fs/FS.cpp b/src/components/fs/FS.cpp index f287c28e..353193dc 100644 --- a/src/components/fs/FS.cpp +++ b/src/components/fs/FS.cpp @@ -89,7 +89,9 @@ int FS::DirClose(lfs_dir_t* lfs_dir) { int FS::DirRead(lfs_dir_t* dir, lfs_info* info) { return lfs_dir_read(&lfs, dir, info); } - +int FS::DirRewind(lfs_dir_t* dir) { + return lfs_dir_rewind(&lfs, dir); +} int FS::DirCreate(const char* path) { return lfs_mkdir(&lfs, path); } diff --git a/src/components/fs/FS.h b/src/components/fs/FS.h index 28d28d3c..ccff2409 100644 --- a/src/components/fs/FS.h +++ b/src/components/fs/FS.h @@ -24,6 +24,7 @@ namespace Pinetime { int DirOpen(const char* path, lfs_dir_t* lfs_dir); int DirClose(lfs_dir_t* lfs_dir); int DirRead(lfs_dir_t* dir, lfs_info* info); + int DirRewind(lfs_dir_t* dir); int DirCreate(const char* path); int DirDelete(const char* path); From 2690c274af72cfbac88a8c83fce311665a917a93 Mon Sep 17 00:00:00 2001 From: Tim Keller Date: Sun, 17 Oct 2021 21:33:01 +0000 Subject: [PATCH 143/188] Workaround for SPI bus being asleep. This needs to get cherrypicked to another PR as SPI Sleep needs to use a semaphore or something --- src/drivers/SpiMaster.cpp | 16 +++++++++++++--- src/drivers/SpiMaster.h | 2 ++ 2 files changed, 15 insertions(+), 3 deletions(-) diff --git a/src/drivers/SpiMaster.cpp b/src/drivers/SpiMaster.cpp index 747dbc84..4492e899 100644 --- a/src/drivers/SpiMaster.cpp +++ b/src/drivers/SpiMaster.cpp @@ -10,7 +10,7 @@ SpiMaster::SpiMaster(const SpiMaster::SpiModule spi, const SpiMaster::Parameters } bool SpiMaster::Init() { - if(mutex == nullptr) { + if (mutex == nullptr) { mutex = xSemaphoreCreateBinary(); ASSERT(mutex != nullptr); } @@ -179,6 +179,10 @@ void SpiMaster::PrepareRx(const volatile uint32_t cmdAddress, bool SpiMaster::Write(uint8_t pinCsn, const uint8_t* data, size_t size) { if (data == nullptr) return false; + + if (!active) { + Wakeup(); + } auto ok = xSemaphoreTake(mutex, portMAX_DELAY); ASSERT(ok == true); taskToNotify = xTaskGetCurrentTaskHandle(); @@ -215,7 +219,9 @@ bool SpiMaster::Write(uint8_t pinCsn, const uint8_t* data, size_t size) { bool SpiMaster::Read(uint8_t pinCsn, uint8_t* cmd, size_t cmdSize, uint8_t* data, size_t dataSize) { xSemaphoreTake(mutex, portMAX_DELAY); - + if (!active) { + Wakeup(); + } taskToNotify = nullptr; this->pinCsn = pinCsn; @@ -253,12 +259,16 @@ void SpiMaster::Sleep() { nrf_gpio_cfg_default(params.pinSCK); nrf_gpio_cfg_default(params.pinMOSI); nrf_gpio_cfg_default(params.pinMISO); - + active = false; NRF_LOG_INFO("[SPIMASTER] sleep") } void SpiMaster::Wakeup() { + if (active) { + return; + } Init(); + active = true; NRF_LOG_INFO("[SPIMASTER] Wakeup"); } diff --git a/src/drivers/SpiMaster.h b/src/drivers/SpiMaster.h index 5ea624f2..f5d2b125 100644 --- a/src/drivers/SpiMaster.h +++ b/src/drivers/SpiMaster.h @@ -60,6 +60,8 @@ namespace Pinetime { volatile size_t currentBufferSize = 0; volatile TaskHandle_t taskToNotify; SemaphoreHandle_t mutex = nullptr; + + bool active; }; } } From eabbbfa373de04d1dc694618d5a9d475f0918592 Mon Sep 17 00:00:00 2001 From: Tim Keller Date: Sun, 17 Oct 2021 22:07:43 +0000 Subject: [PATCH 144/188] Fix folder count in output --- src/components/ble/FSService.cpp | 4 +-- src/components/ble/FSService.h | 56 ++++++++++++++++++++++---------- 2 files changed, 40 insertions(+), 20 deletions(-) diff --git a/src/components/ble/FSService.cpp b/src/components/ble/FSService.cpp index 2f02cd96..40679e5c 100644 --- a/src/components/ble/FSService.cpp +++ b/src/components/ble/FSService.cpp @@ -78,7 +78,7 @@ int FSService::FSCommandHandler(uint16_t connectionHandle, os_mbuf* om) { resp.status = 1; // TODO actually use res above! resp.totalentries = 0; resp.entry = 0; - int sr; + int res = fs.DirOpen(path, &dir); NRF_LOG_INFO("[FS_S] ->diropen %d ", res); @@ -115,7 +115,6 @@ int FSService::FSCommandHandler(uint16_t connectionHandle, os_mbuf* om) { resp.entry++; } fs.DirClose(&dir); - resp.entry++; resp.file_size = 0; resp.path_length = 0; resp.flags = 0; @@ -123,6 +122,7 @@ int FSService::FSCommandHandler(uint16_t connectionHandle, os_mbuf* om) { auto* om = ble_hs_mbuf_from_flat(&resp,sizeof(ListDirResponse)-70+resp.path_length); ble_gattc_notify_custom(connectionHandle,transferCharacteristicHandle,om); NRF_LOG_INFO("[FS_S] -> done "); + break; } } return 0; diff --git a/src/components/ble/FSService.h b/src/components/ble/FSService.h index eb4b34d7..a1c42aa7 100644 --- a/src/components/ble/FSService.h +++ b/src/components/ble/FSService.h @@ -44,23 +44,8 @@ namespace Pinetime { struct ble_gatt_svc_def serviceDefinition[2]; uint16_t versionCharacteristicHandle; uint16_t transferCharacteristicHandle; - typedef struct __attribute__((packed)) { - uint8_t command; - uint8_t padding; - uint16_t pathlen; - char pathstr[70]; - } ListDirHeader; - typedef struct __attribute__((packed)) { - uint8_t command; - uint8_t status; - uint16_t path_length; - uint32_t entry; - uint32_t totalentries; - uint32_t flags; - uint32_t modification_time; - uint32_t file_size; - char path[70]; - } ListDirResponse; + + int FSCommandHandler(uint16_t connectionHandle, os_mbuf* om); enum class commands : uint8_t { INVALID = 0x00, @@ -80,7 +65,42 @@ namespace Pinetime { MOVE_STATUS = 0x61 }; - int FSCommandHandler(uint16_t connectionHandle, os_mbuf* om); + using ListDirHeader = struct __attribute__((packed)) { + uint8_t command; + uint8_t padding; + uint16_t pathlen; + char pathstr[70]; + }; + + using ListDirResponse = struct __attribute__((packed)) { + uint8_t command; + uint8_t status; + uint16_t path_length; + uint32_t entry; + uint32_t totalentries; + uint32_t flags; + uint32_t modification_time; + uint32_t file_size; + char path[70]; + }; + + using MKDirHeader = struct __attribute__((packed)) { + uint8_t command; + uint8_t padding; + uint16_t pathlen; + uint32_t padding2; + uint64_t time; + char pathstr[70]; + }; + + using MKDirResponse = struct __attribute__((packed)) { + uint8_t command; + uint8_t status; + uint32_t padding1; + uint16_t padding2; + uint64_t modification_time; + }; + }; } } From 3a8e66a52fcc6317a7dffa15cb161f37a645d36c Mon Sep 17 00:00:00 2001 From: Tim Keller Date: Sun, 17 Oct 2021 23:07:43 +0000 Subject: [PATCH 145/188] Added Delete file Added FS Stat. --- src/components/ble/FSService.cpp | 96 ++++++++++++++++++++++++-------- src/components/ble/FSService.h | 20 +++++-- src/components/fs/FS.cpp | 4 ++ src/components/fs/FS.h | 1 + 4 files changed, 93 insertions(+), 28 deletions(-) diff --git a/src/components/ble/FSService.cpp b/src/components/ble/FSService.cpp index 40679e5c..0cf2b937 100644 --- a/src/components/ble/FSService.cpp +++ b/src/components/ble/FSService.cpp @@ -63,64 +63,112 @@ int FSService::FSCommandHandler(uint16_t connectionHandle, os_mbuf* om) { NRF_LOG_INFO("[FS_S] -> FSCommandHandler"); switch (command) { + case commands::DELETE: { + NRF_LOG_INFO("[FS_S] -> Delete"); + auto* header = (DelHeader*)om->om_data; + uint16_t plen = header->pathlen; + char path[plen + 1] = {0}; + struct lfs_info info = {}; + DelResponse resp = {}; + resp.command = commands::DELETE_STATUS; + int res = fs.Stat(path, &info); + // Get Info about path + // branch for DirDel of FileDelete + if (info.type == LFS_TYPE_DIR) { + res = fs.DirDelete(path); + } else { + res = fs.FileDelete(path); + } + switch (res) { + case LFS_ERR_OK: + resp.status = 0x01; + break; + default: + resp.status = 0x02; + break; + } + auto* om = ble_hs_mbuf_from_flat(&resp, sizeof(DelResponse)); + ble_gattc_notify_custom(connectionHandle, transferCharacteristicHandle, om); + break; + } + case commands::MKDIR: { + NRF_LOG_INFO("[FS_S] -> MKDir"); + auto* header = (MKDirHeader*) om->om_data; + uint16_t plen = header->pathlen; + char path[plen + 1] = {0}; + memcpy(path, header->pathstr, plen); + NRF_LOG_INFO("[FS_S] -> MKDIR %.10s", path); + MKDirResponse resp = {}; + resp.command = commands::MKDIR_STATUS; + int res = fs.DirCreate(path); + switch (res) { + case LFS_ERR_OK: + resp.status = 0x01; + break; + default: + resp.status = 0x02; + break; + } + resp.modification_time = 0; // We should timestamp..but no + auto* om = ble_hs_mbuf_from_flat(&resp, sizeof(MKDirResponse)); + ble_gattc_notify_custom(connectionHandle, transferCharacteristicHandle, om); + break; + } case commands::LISTDIR: { NRF_LOG_INFO("[FS_S] -> ListDir"); - ListDirHeader *header = (ListDirHeader *)&om->om_data[0]; + ListDirHeader* header = (ListDirHeader*)om->om_data; uint16_t plen = header->pathlen; - char path[plen+1] = {0}; + char path[plen + 1] = {0}; memcpy(path, header->pathstr, plen); NRF_LOG_INFO("[FS_S] -> DIR %.10s", path); lfs_dir_t dir = {}; struct lfs_info info = {}; ListDirResponse resp = {}; - resp.command = 0x51; // LISTDIR_ENTRY; - resp.status = 1; // TODO actually use res above! + resp.command = commands::LISTDIR_ENTRY; + resp.status = 1; // TODO actually use res above! resp.totalentries = 0; resp.entry = 0; int res = fs.DirOpen(path, &dir); - + NRF_LOG_INFO("[FS_S] ->diropen %d ", res); while (fs.DirRead(&dir, &info)) { resp.totalentries++; - } NRF_LOG_INFO("[FS_S] -> %d ", resp.totalentries); - + fs.DirRewind(&dir); - + while (fs.DirRead(&dir, &info)) { - switch(info.type){ - case LFS_TYPE_REG: - { + switch (info.type) { + case LFS_TYPE_REG: { resp.flags = 0; resp.file_size = info.size; break; - } - case LFS_TYPE_DIR: - { - resp.flags = 1; - resp.file_size = 0; - break; + } + case LFS_TYPE_DIR: { + resp.flags = 1; + resp.file_size = 0; + break; } } resp.modification_time = 0; // TODO Does LFS actually support TS? - strcpy(resp.path,info.name); + strcpy(resp.path, info.name); resp.path_length = strlen(info.name); NRF_LOG_INFO("[FS_S] ->Path %s ,", info.name); - auto* om = ble_hs_mbuf_from_flat(&resp,sizeof(ListDirResponse)); - ble_gattc_notify_custom(connectionHandle,transferCharacteristicHandle,om); - vTaskDelay(1); //Allow stuff to actually go out over the BLE conn + auto* om = ble_hs_mbuf_from_flat(&resp, sizeof(ListDirResponse)); + ble_gattc_notify_custom(connectionHandle, transferCharacteristicHandle, om); + vTaskDelay(1); // Allow stuff to actually go out over the BLE conn resp.entry++; } fs.DirClose(&dir); resp.file_size = 0; resp.path_length = 0; resp.flags = 0; - //Todo this better - auto* om = ble_hs_mbuf_from_flat(&resp,sizeof(ListDirResponse)-70+resp.path_length); - ble_gattc_notify_custom(connectionHandle,transferCharacteristicHandle,om); + // TODO Handle Size of response better. + auto* om = ble_hs_mbuf_from_flat(&resp, sizeof(ListDirResponse) - 70 + resp.path_length); + ble_gattc_notify_custom(connectionHandle, transferCharacteristicHandle, om); NRF_LOG_INFO("[FS_S] -> done "); break; } diff --git a/src/components/ble/FSService.h b/src/components/ble/FSService.h index a1c42aa7..3ca6d934 100644 --- a/src/components/ble/FSService.h +++ b/src/components/ble/FSService.h @@ -66,14 +66,14 @@ namespace Pinetime { }; using ListDirHeader = struct __attribute__((packed)) { - uint8_t command; + commands command; uint8_t padding; uint16_t pathlen; char pathstr[70]; }; using ListDirResponse = struct __attribute__((packed)) { - uint8_t command; + commands command; uint8_t status; uint16_t path_length; uint32_t entry; @@ -85,7 +85,7 @@ namespace Pinetime { }; using MKDirHeader = struct __attribute__((packed)) { - uint8_t command; + commands command; uint8_t padding; uint16_t pathlen; uint32_t padding2; @@ -94,13 +94,25 @@ namespace Pinetime { }; using MKDirResponse = struct __attribute__((packed)) { - uint8_t command; + commands command; uint8_t status; uint32_t padding1; uint16_t padding2; uint64_t modification_time; }; + using DelHeader = struct __attribute__((packed)) { + commands command; + uint8_t padding; + uint16_t pathlen; + char pathstr[70]; + }; + + using DelResponse = struct __attribute__((packed)) { + commands command; + uint8_t status; + }; + }; } } diff --git a/src/components/fs/FS.cpp b/src/components/fs/FS.cpp index 353193dc..d30b7373 100644 --- a/src/components/fs/FS.cpp +++ b/src/components/fs/FS.cpp @@ -96,6 +96,10 @@ int FS::DirCreate(const char* path) { return lfs_mkdir(&lfs, path); } +int FS::Stat(const char* path, lfs_info* info){ + return lfs_stat(&lfs,path,info); +} + // Delete directory and all files inside int FS::DirDelete(const char* path) { diff --git a/src/components/fs/FS.h b/src/components/fs/FS.h index ccff2409..e50ff10a 100644 --- a/src/components/fs/FS.h +++ b/src/components/fs/FS.h @@ -28,6 +28,7 @@ namespace Pinetime { int DirCreate(const char* path); int DirDelete(const char* path); + int Stat(const char* path, lfs_info* info); void VerifyResource(); private: From 1b4b422ab6d7588e21e58fcf1d2ba04470abc611 Mon Sep 17 00:00:00 2001 From: Tim Keller Date: Mon, 18 Oct 2021 04:20:11 +0000 Subject: [PATCH 146/188] More attempted SPI fixes --- src/drivers/Spi.cpp | 14 ++++++++++++++ src/drivers/Spi.h | 1 + 2 files changed, 15 insertions(+) diff --git a/src/drivers/Spi.cpp b/src/drivers/Spi.cpp index e477622b..46552437 100644 --- a/src/drivers/Spi.cpp +++ b/src/drivers/Spi.cpp @@ -10,14 +10,24 @@ Spi::Spi(SpiMaster& spiMaster, uint8_t pinCsn) : spiMaster {spiMaster}, pinCsn { } bool Spi::Write(const uint8_t* data, size_t size) { + if(!active){ + Wakeup(); + } return spiMaster.Write(pinCsn, data, size); } bool Spi::Read(uint8_t* cmd, size_t cmdSize, uint8_t* data, size_t dataSize) { + if(!active){ + Wakeup(); + } return spiMaster.Read(pinCsn, cmd, cmdSize, data, dataSize); } void Spi::Sleep() { + if(!active){ + return; + } + active = false; nrf_gpio_cfg_default(pinCsn); NRF_LOG_INFO("[SPI] Sleep") } @@ -32,7 +42,11 @@ bool Spi::Init() { } void Spi::Wakeup() { + if(active){ + return; + } nrf_gpio_cfg_output(pinCsn); nrf_gpio_pin_set(pinCsn); + active=true; NRF_LOG_INFO("[SPI] Wakeup") } diff --git a/src/drivers/Spi.h b/src/drivers/Spi.h index 9b6a30f4..51de2b34 100644 --- a/src/drivers/Spi.h +++ b/src/drivers/Spi.h @@ -23,6 +23,7 @@ namespace Pinetime { private: SpiMaster& spiMaster; uint8_t pinCsn; + bool active; }; } } From 8f6a390c36007eecb875bca6d8be860dbec6bd9c Mon Sep 17 00:00:00 2001 From: Tim Keller Date: Mon, 18 Oct 2021 04:20:26 +0000 Subject: [PATCH 147/188] Start of read command --- src/components/ble/FSService.cpp | 121 +++++++++++++++++++++++++++++-- src/components/ble/FSService.h | 56 +++++++++++--- 2 files changed, 158 insertions(+), 19 deletions(-) diff --git a/src/components/ble/FSService.cpp b/src/components/ble/FSService.cpp index 0cf2b937..52cfafb8 100644 --- a/src/components/ble/FSService.cpp +++ b/src/components/ble/FSService.cpp @@ -4,7 +4,7 @@ using namespace Pinetime::Controllers; -constexpr ble_uuid128_t FSService::fsServiceUuid; +constexpr ble_uuid16_t FSService::fsServiceUuid; constexpr ble_uuid128_t FSService::fsVersionUuid; constexpr ble_uuid128_t FSService::fsTransferUuid; @@ -63,9 +63,90 @@ int FSService::FSCommandHandler(uint16_t connectionHandle, os_mbuf* om) { NRF_LOG_INFO("[FS_S] -> FSCommandHandler"); switch (command) { + case commands::READ: { + NRF_LOG_INFO("[FS_S] -> Read"); + if (state != FSState::IDLE) { + return -1; + } + state = FSState::READ; + auto* header = (ReadHeader*) om->om_data; + uint16_t plen = header->pathlen; + if (plen > maxpathlen - 1) { + return -1; + } + memcpy(filepath, header->pathstr, plen); + filepath[plen + 1] = 0; // Copy and null teminate string + ReadResponse resp; + resp.command = commands::READ_DATA; + resp.chunkoff = header->chunkoff; + resp.status = 0x01; + struct lfs_info info = {}; + int res = fs.Stat(filepath, &info); + if (res == LFS_ERR_NOENT && info.type != LFS_TYPE_DIR) { + resp.status = 0x03; + resp.chunklen = 0; + resp.totallen = 0; + } else { + lfs_file f; + resp.chunklen = std::min(header->chunksize, info.size); + resp.totallen = info.size; + fs.FileOpen(&f, filepath, LFS_O_RDONLY); + fs.FileSeek(&f, header->chunkoff); + resp.chunklen = fs.FileRead(&f, resp.chunk, resp.chunklen); + fs.FileClose(&f); + } + auto* om = ble_hs_mbuf_from_flat(&resp, sizeof(ReadResponse)); + ble_gattc_notify_custom(connectionHandle, transferCharacteristicHandle, om); + if (header->chunksize >= resp.totallen) { // probably removeable...but then usafe + state = FSState::IDLE; + } + } + case commands::READ_PACING: { + NRF_LOG_INFO("[FS_S] -> ReadPacing"); + if (state != FSState::READ) { + return -1; + } + auto* header = (ReadPacing*) om->om_data; + ReadResponse resp = {}; + + resp.command = commands::READ_DATA; + resp.chunkoff = header->chunkoff; + resp.status = 0x01; + struct lfs_info info = {}; + int res = fs.Stat(filepath, &info); + if (res == LFS_ERR_NOENT && info.type != LFS_TYPE_DIR) { + resp.status = 0x03; + resp.chunklen = 0; + resp.totallen = 0; + } else { + lfs_file f; + resp.chunklen = std::min(header->chunksize, info.size); + resp.totallen = info.size; + fs.FileOpen(&f, filepath, LFS_O_RDONLY); + fs.FileSeek(&f, header->chunkoff); + resp.chunklen = fs.FileRead(&f, resp.chunk, resp.chunklen); + fs.FileClose(&f); + } + auto* om = ble_hs_mbuf_from_flat(&resp, sizeof(ReadResponse)); + ble_gattc_notify_custom(connectionHandle, transferCharacteristicHandle, om); + if (resp.chunklen >= header->chunksize) { // is this right? + state = FSState::IDLE; + } + } + case commands::WRITE: { + if (state != FSState::IDLE) { + return -1; + } + } + case commands::WRITE_PACING: { + if (state != FSState::WRITE) { + return -1; + } + } + case commands::DELETE: { NRF_LOG_INFO("[FS_S] -> Delete"); - auto* header = (DelHeader*)om->om_data; + auto* header = (DelHeader*) om->om_data; uint16_t plen = header->pathlen; char path[plen + 1] = {0}; struct lfs_info info = {}; @@ -116,7 +197,7 @@ int FSService::FSCommandHandler(uint16_t connectionHandle, os_mbuf* om) { } case commands::LISTDIR: { NRF_LOG_INFO("[FS_S] -> ListDir"); - ListDirHeader* header = (ListDirHeader*)om->om_data; + ListDirHeader* header = (ListDirHeader*) om->om_data; uint16_t plen = header->pathlen; char path[plen + 1] = {0}; memcpy(path, header->pathstr, plen); @@ -140,7 +221,11 @@ int FSService::FSCommandHandler(uint16_t connectionHandle, os_mbuf* om) { fs.DirRewind(&dir); - while (fs.DirRead(&dir, &info)) { + while (true) { + int res = fs.DirRead(&dir, &info); + if(res <= 0){ + break; + } switch (info.type) { case LFS_TYPE_REG: { resp.flags = 0; @@ -157,9 +242,9 @@ int FSService::FSCommandHandler(uint16_t connectionHandle, os_mbuf* om) { strcpy(resp.path, info.name); resp.path_length = strlen(info.name); NRF_LOG_INFO("[FS_S] ->Path %s ,", info.name); - auto* om = ble_hs_mbuf_from_flat(&resp, sizeof(ListDirResponse)); + auto* om = ble_hs_mbuf_from_flat(&resp, sizeof(ListDirResponse)+resp.path_length); ble_gattc_notify_custom(connectionHandle, transferCharacteristicHandle, om); - vTaskDelay(1); // Allow stuff to actually go out over the BLE conn + vTaskDelay(5); // Allow stuff to actually go out over the BLE conn resp.entry++; } fs.DirClose(&dir); @@ -167,7 +252,7 @@ int FSService::FSCommandHandler(uint16_t connectionHandle, os_mbuf* om) { resp.path_length = 0; resp.flags = 0; // TODO Handle Size of response better. - auto* om = ble_hs_mbuf_from_flat(&resp, sizeof(ListDirResponse) - 70 + resp.path_length); + auto* om = ble_hs_mbuf_from_flat(&resp, sizeof(ListDirResponse)+resp.path_length); ble_gattc_notify_custom(connectionHandle, transferCharacteristicHandle, om); NRF_LOG_INFO("[FS_S] -> done "); break; @@ -175,3 +260,25 @@ int FSService::FSCommandHandler(uint16_t connectionHandle, os_mbuf* om) { } return 0; } +// Loads resp with file data given a valid filepath header and resp +void FSService::prepareReadDataResp(ReadHeader* header, ReadResponse* resp) { + uint16_t plen = header->pathlen; + resp->command = commands::READ_DATA; + resp->chunkoff = header->chunkoff; + resp->status = 0x01; + struct lfs_info info = {}; + int res = fs.Stat(filepath, &info); + if (res == LFS_ERR_NOENT && info.type != LFS_TYPE_DIR) { + resp->status = 0x03; + resp->chunklen = 0; + resp->totallen = 0; + } else { + lfs_file f; + resp->chunklen = std::min(header->chunksize, info.size); + resp->totallen = info.size; + fs.FileOpen(&f, filepath, LFS_O_RDONLY); + fs.FileSeek(&f, header->chunkoff); + resp->chunklen = fs.FileRead(&f, resp->chunk, resp->chunklen); + fs.FileClose(&f); + } +} diff --git a/src/components/ble/FSService.h b/src/components/ble/FSService.h index 3ca6d934..93205e54 100644 --- a/src/components/ble/FSService.h +++ b/src/components/ble/FSService.h @@ -27,10 +27,10 @@ namespace Pinetime { static constexpr uint16_t fsVersionId {0x0100}; static constexpr uint16_t fsTransferId {0x0200}; uint16_t fsVersion = {0x0004}; - - static constexpr ble_uuid128_t fsServiceUuid { - .u {.type = BLE_UUID_TYPE_128}, - .value = {0x72, 0x65, 0x66, 0x73, 0x6e, 0x61, 0x72, 0x54, 0x65, 0x6c, 0x69, 0x46, 0xBB, 0xFE, 0xAF, 0xAD}}; + static constexpr uint8_t maxpathlen = 100; + static constexpr ble_uuid16_t fsServiceUuid { + .u {.type = BLE_UUID_TYPE_16}, + .value = {0xFEBB}};// {0x72, 0x65, 0x66, 0x73, 0x6e, 0x61, 0x72, 0x54, 0x65, 0x6c, 0x69, 0x46, 0xBB, 0xFE, 0xAF, 0xAD}}; static constexpr ble_uuid128_t fsVersionUuid { .u {.type = BLE_UUID_TYPE_128}, @@ -45,8 +45,6 @@ namespace Pinetime { uint16_t versionCharacteristicHandle; uint16_t transferCharacteristicHandle; - int FSCommandHandler(uint16_t connectionHandle, os_mbuf* om); - enum class commands : uint8_t { INVALID = 0x00, READ = 0x10, @@ -64,12 +62,44 @@ namespace Pinetime { MOVE = 0x60, MOVE_STATUS = 0x61 }; + enum class FSState : uint8_t { + IDLE = 0x00, + READ = 0x01, + WRITE = 0x02, + }; + FSState state; + char filepath[maxpathlen]; // TODO ..ugh fixed filepath len + using ReadHeader = struct __attribute__((packed)) { + commands command; + uint8_t padding; + uint16_t pathlen; + uint32_t chunkoff; + uint32_t chunksize; + char pathstr[]; + }; + + using ReadResponse = struct __attribute__((packed)) { + commands command; + uint8_t status; + uint16_t padding; + uint32_t chunkoff; + uint32_t totallen; + uint32_t chunklen; + uint8_t chunk[]; + }; + using ReadPacing = struct __attribute__((packed)) { + commands command; + uint8_t status; + uint16_t padding; + uint32_t chunkoff; + uint32_t chunksize; + }; using ListDirHeader = struct __attribute__((packed)) { commands command; uint8_t padding; uint16_t pathlen; - char pathstr[70]; + char pathstr[]; }; using ListDirResponse = struct __attribute__((packed)) { @@ -81,7 +111,7 @@ namespace Pinetime { uint32_t flags; uint32_t modification_time; uint32_t file_size; - char path[70]; + char path[]; }; using MKDirHeader = struct __attribute__((packed)) { @@ -90,7 +120,7 @@ namespace Pinetime { uint16_t pathlen; uint32_t padding2; uint64_t time; - char pathstr[70]; + char pathstr[]; }; using MKDirResponse = struct __attribute__((packed)) { @@ -100,19 +130,21 @@ namespace Pinetime { uint16_t padding2; uint64_t modification_time; }; - + using DelHeader = struct __attribute__((packed)) { commands command; uint8_t padding; uint16_t pathlen; - char pathstr[70]; + char pathstr[]; }; using DelResponse = struct __attribute__((packed)) { commands command; uint8_t status; }; - + + int FSCommandHandler(uint16_t connectionHandle, os_mbuf* om); + void prepareReadDataResp(ReadHeader *header, ReadResponse *resp); }; } } From d89e38d3bf9e84e69635f0cb10cc42f0071fa038 Mon Sep 17 00:00:00 2001 From: Tim Keller Date: Tue, 19 Oct 2021 19:03:00 +0000 Subject: [PATCH 148/188] Focus on getting flash access working properly --- src/components/ble/FSService.cpp | 10 ++++--- src/components/ble/FSService.h | 2 +- src/components/fs/FS.cpp | 12 ++++++-- src/components/fs/FS.h | 47 ++++++++++++++++---------------- 4 files changed, 41 insertions(+), 30 deletions(-) diff --git a/src/components/ble/FSService.cpp b/src/components/ble/FSService.cpp index 52cfafb8..0a1fabb7 100644 --- a/src/components/ble/FSService.cpp +++ b/src/components/ble/FSService.cpp @@ -60,9 +60,10 @@ int FSService::OnFSServiceRequested(uint16_t connectionHandle, uint16_t attribut int FSService::FSCommandHandler(uint16_t connectionHandle, os_mbuf* om) { auto command = static_cast(om->om_data[0]); - NRF_LOG_INFO("[FS_S] -> FSCommandHandler"); - + NRF_LOG_INFO("[FS_S] -> FSCommandHandler %d",command); + fs.Mount(); switch (command) { + /* case commands::READ: { NRF_LOG_INFO("[FS_S] -> Read"); if (state != FSState::IDLE) { @@ -194,7 +195,7 @@ int FSService::FSCommandHandler(uint16_t connectionHandle, os_mbuf* om) { auto* om = ble_hs_mbuf_from_flat(&resp, sizeof(MKDirResponse)); ble_gattc_notify_custom(connectionHandle, transferCharacteristicHandle, om); break; - } + }*/ case commands::LISTDIR: { NRF_LOG_INFO("[FS_S] -> ListDir"); ListDirHeader* header = (ListDirHeader*) om->om_data; @@ -244,7 +245,7 @@ int FSService::FSCommandHandler(uint16_t connectionHandle, os_mbuf* om) { NRF_LOG_INFO("[FS_S] ->Path %s ,", info.name); auto* om = ble_hs_mbuf_from_flat(&resp, sizeof(ListDirResponse)+resp.path_length); ble_gattc_notify_custom(connectionHandle, transferCharacteristicHandle, om); - vTaskDelay(5); // Allow stuff to actually go out over the BLE conn + vTaskDelay(10); // Allow stuff to actually go out over the BLE conn resp.entry++; } fs.DirClose(&dir); @@ -258,6 +259,7 @@ int FSService::FSCommandHandler(uint16_t connectionHandle, os_mbuf* om) { break; } } + fs.UnMount(); return 0; } // Loads resp with file data given a valid filepath header and resp diff --git a/src/components/ble/FSService.h b/src/components/ble/FSService.h index 93205e54..114c1e0d 100644 --- a/src/components/ble/FSService.h +++ b/src/components/ble/FSService.h @@ -109,7 +109,7 @@ namespace Pinetime { uint32_t entry; uint32_t totalentries; uint32_t flags; - uint32_t modification_time; + uint64_t modification_time; uint32_t file_size; char path[]; }; diff --git a/src/components/fs/FS.cpp b/src/components/fs/FS.cpp index d30b7373..c8a5a2eb 100644 --- a/src/components/fs/FS.cpp +++ b/src/components/fs/FS.cpp @@ -54,6 +54,14 @@ void FS::VerifyResource() { resourcesValid = true; } +void FS::Mount() { + flashDriver.Wakeup(); +} + +void FS::UnMount() { + flashDriver.Sleep(); +} + int FS::FileOpen(lfs_file_t* file_p, const char* fileName, const int flags) { return lfs_file_open(&lfs, file_p, fileName, flags); } @@ -96,8 +104,8 @@ int FS::DirCreate(const char* path) { return lfs_mkdir(&lfs, path); } -int FS::Stat(const char* path, lfs_info* info){ - return lfs_stat(&lfs,path,info); +int FS::Stat(const char* path, lfs_info* info) { + return lfs_stat(&lfs, path, info); } // Delete directory and all files inside diff --git a/src/components/fs/FS.h b/src/components/fs/FS.h index e50ff10a..1aa8d5f1 100644 --- a/src/components/fs/FS.h +++ b/src/components/fs/FS.h @@ -13,6 +13,9 @@ namespace Pinetime { void Init(); void LVGLFileSystemInit(); + void Mount(); + void UnMount(); + 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); @@ -32,31 +35,30 @@ namespace Pinetime { 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 +---------------------------------------+ - * - */ + * 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 = 0x34C000; static constexpr size_t blockSize = 4096; @@ -70,7 +72,6 @@ namespace Pinetime { 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); - }; } } From a5a64800eda02358aebe4d0f23d43ee33f363c56 Mon Sep 17 00:00:00 2001 From: Tim Keller Date: Tue, 19 Oct 2021 19:15:41 +0000 Subject: [PATCH 149/188] Revert "Workaround for SPI bus being asleep." This reverts commit 1edeb5cb65489707c26b7a65f3b54520086d363a. --- src/drivers/SpiMaster.cpp | 16 +++------------- src/drivers/SpiMaster.h | 2 -- 2 files changed, 3 insertions(+), 15 deletions(-) diff --git a/src/drivers/SpiMaster.cpp b/src/drivers/SpiMaster.cpp index 4492e899..747dbc84 100644 --- a/src/drivers/SpiMaster.cpp +++ b/src/drivers/SpiMaster.cpp @@ -10,7 +10,7 @@ SpiMaster::SpiMaster(const SpiMaster::SpiModule spi, const SpiMaster::Parameters } bool SpiMaster::Init() { - if (mutex == nullptr) { + if(mutex == nullptr) { mutex = xSemaphoreCreateBinary(); ASSERT(mutex != nullptr); } @@ -179,10 +179,6 @@ void SpiMaster::PrepareRx(const volatile uint32_t cmdAddress, bool SpiMaster::Write(uint8_t pinCsn, const uint8_t* data, size_t size) { if (data == nullptr) return false; - - if (!active) { - Wakeup(); - } auto ok = xSemaphoreTake(mutex, portMAX_DELAY); ASSERT(ok == true); taskToNotify = xTaskGetCurrentTaskHandle(); @@ -219,9 +215,7 @@ bool SpiMaster::Write(uint8_t pinCsn, const uint8_t* data, size_t size) { bool SpiMaster::Read(uint8_t pinCsn, uint8_t* cmd, size_t cmdSize, uint8_t* data, size_t dataSize) { xSemaphoreTake(mutex, portMAX_DELAY); - if (!active) { - Wakeup(); - } + taskToNotify = nullptr; this->pinCsn = pinCsn; @@ -259,16 +253,12 @@ void SpiMaster::Sleep() { nrf_gpio_cfg_default(params.pinSCK); nrf_gpio_cfg_default(params.pinMOSI); nrf_gpio_cfg_default(params.pinMISO); - active = false; + NRF_LOG_INFO("[SPIMASTER] sleep") } void SpiMaster::Wakeup() { - if (active) { - return; - } Init(); - active = true; NRF_LOG_INFO("[SPIMASTER] Wakeup"); } diff --git a/src/drivers/SpiMaster.h b/src/drivers/SpiMaster.h index f5d2b125..5ea624f2 100644 --- a/src/drivers/SpiMaster.h +++ b/src/drivers/SpiMaster.h @@ -60,8 +60,6 @@ namespace Pinetime { volatile size_t currentBufferSize = 0; volatile TaskHandle_t taskToNotify; SemaphoreHandle_t mutex = nullptr; - - bool active; }; } } From f841b8c98498a01211036fd0720a1f8c949e28f2 Mon Sep 17 00:00:00 2001 From: Tim Keller Date: Tue, 19 Oct 2021 19:15:48 +0000 Subject: [PATCH 150/188] Revert "More attempted SPI fixes" This reverts commit bed7e731b206961117b717adb1031ab3011e7db9. --- src/drivers/Spi.cpp | 14 -------------- src/drivers/Spi.h | 1 - 2 files changed, 15 deletions(-) diff --git a/src/drivers/Spi.cpp b/src/drivers/Spi.cpp index 46552437..e477622b 100644 --- a/src/drivers/Spi.cpp +++ b/src/drivers/Spi.cpp @@ -10,24 +10,14 @@ Spi::Spi(SpiMaster& spiMaster, uint8_t pinCsn) : spiMaster {spiMaster}, pinCsn { } bool Spi::Write(const uint8_t* data, size_t size) { - if(!active){ - Wakeup(); - } return spiMaster.Write(pinCsn, data, size); } bool Spi::Read(uint8_t* cmd, size_t cmdSize, uint8_t* data, size_t dataSize) { - if(!active){ - Wakeup(); - } return spiMaster.Read(pinCsn, cmd, cmdSize, data, dataSize); } void Spi::Sleep() { - if(!active){ - return; - } - active = false; nrf_gpio_cfg_default(pinCsn); NRF_LOG_INFO("[SPI] Sleep") } @@ -42,11 +32,7 @@ bool Spi::Init() { } void Spi::Wakeup() { - if(active){ - return; - } nrf_gpio_cfg_output(pinCsn); nrf_gpio_pin_set(pinCsn); - active=true; NRF_LOG_INFO("[SPI] Wakeup") } diff --git a/src/drivers/Spi.h b/src/drivers/Spi.h index 51de2b34..9b6a30f4 100644 --- a/src/drivers/Spi.h +++ b/src/drivers/Spi.h @@ -23,7 +23,6 @@ namespace Pinetime { private: SpiMaster& spiMaster; uint8_t pinCsn; - bool active; }; } } From 6393a17d7402b92e00cd748bc7e901ba053135de Mon Sep 17 00:00:00 2001 From: Tim Keller Date: Wed, 20 Oct 2021 01:30:04 +0000 Subject: [PATCH 151/188] List Dir works? --- src/components/ble/FSService.cpp | 41 +++++++++++++++++-------- src/components/ble/FSService.h | 8 +++-- src/components/ble/NimbleController.cpp | 2 +- src/systemtask/Messages.h | 2 ++ src/systemtask/SystemTask.cpp | 13 ++++++++ 5 files changed, 49 insertions(+), 17 deletions(-) diff --git a/src/components/ble/FSService.cpp b/src/components/ble/FSService.cpp index 0a1fabb7..cd2cc07a 100644 --- a/src/components/ble/FSService.cpp +++ b/src/components/ble/FSService.cpp @@ -1,6 +1,7 @@ #include #include "FSService.h" #include "components/ble/BleController.h" +#include "systemtask/SystemTask.h" using namespace Pinetime::Controllers; @@ -13,8 +14,9 @@ int FSServiceCallback(uint16_t conn_handle, uint16_t attr_handle, struct ble_gat return fsService->OnFSServiceRequested(conn_handle, attr_handle, ctxt); } -FSService::FSService(Pinetime::Controllers::FS& fs) - : fs {fs}, +FSService::FSService(Pinetime::System::SystemTask& systemTask, Pinetime::Controllers::FS& fs) + : systemTask {systemTask}, + fs {fs}, characteristicDefinition {{.uuid = &fsVersionUuid.u, .access_cb = FSServiceCallback, .arg = this, @@ -60,8 +62,13 @@ int FSService::OnFSServiceRequested(uint16_t connectionHandle, uint16_t attribut int FSService::FSCommandHandler(uint16_t connectionHandle, os_mbuf* om) { auto command = static_cast(om->om_data[0]); - NRF_LOG_INFO("[FS_S] -> FSCommandHandler %d",command); - fs.Mount(); + NRF_LOG_INFO("[FS_S] -> FSCommandHandler Command %d", command); + // Just always make sure we are awake... + systemTask.PushMessage(Pinetime::System::Messages::StartFileTransfer); + vTaskDelay(10); + while (systemTask.IsSleeping()) { + vTaskDelay(100); // 50ms + } switch (command) { /* case commands::READ: { @@ -203,6 +210,7 @@ int FSService::FSCommandHandler(uint16_t connectionHandle, os_mbuf* om) { char path[plen + 1] = {0}; memcpy(path, header->pathstr, plen); NRF_LOG_INFO("[FS_S] -> DIR %.10s", path); + lfs_dir_t dir = {}; struct lfs_info info = {}; @@ -212,9 +220,11 @@ int FSService::FSCommandHandler(uint16_t connectionHandle, os_mbuf* om) { resp.totalentries = 0; resp.entry = 0; - int res = fs.DirOpen(path, &dir); + if (fs.DirOpen(path, &dir)) { + return 0; + } - NRF_LOG_INFO("[FS_S] ->diropen %d ", res); + // NRF_LOG_INFO("[FS_S] ->diropen %d ", res); while (fs.DirRead(&dir, &info)) { resp.totalentries++; } @@ -222,9 +232,11 @@ int FSService::FSCommandHandler(uint16_t connectionHandle, os_mbuf* om) { fs.DirRewind(&dir); - while (true) { + // NRF_LOG_INFO("[FS_S] ->diropen %d ", res); + + while (resp.entry < resp.totalentries) { int res = fs.DirRead(&dir, &info); - if(res <= 0){ + if (res <= 0) { break; } switch (info.type) { @@ -243,23 +255,26 @@ int FSService::FSCommandHandler(uint16_t connectionHandle, os_mbuf* om) { strcpy(resp.path, info.name); resp.path_length = strlen(info.name); NRF_LOG_INFO("[FS_S] ->Path %s ,", info.name); - auto* om = ble_hs_mbuf_from_flat(&resp, sizeof(ListDirResponse)+resp.path_length); + auto* om = ble_hs_mbuf_from_flat(&resp, sizeof(ListDirResponse) + resp.path_length); ble_gattc_notify_custom(connectionHandle, transferCharacteristicHandle, om); - vTaskDelay(10); // Allow stuff to actually go out over the BLE conn + vTaskDelay(100); // Allow stuff to actually go out over the BLE conn resp.entry++; } - fs.DirClose(&dir); + + if (fs.DirClose(&dir)) { + return 0; + } resp.file_size = 0; resp.path_length = 0; resp.flags = 0; // TODO Handle Size of response better. - auto* om = ble_hs_mbuf_from_flat(&resp, sizeof(ListDirResponse)+resp.path_length); + auto* om = ble_hs_mbuf_from_flat(&resp, sizeof(ListDirResponse) + resp.path_length); ble_gattc_notify_custom(connectionHandle, transferCharacteristicHandle, om); NRF_LOG_INFO("[FS_S] -> done "); break; } } - fs.UnMount(); + systemTask.PushMessage(Pinetime::System::Messages::StopFileTransfer); return 0; } // Loads resp with file data given a valid filepath header and resp diff --git a/src/components/ble/FSService.h b/src/components/ble/FSService.h index 114c1e0d..69ed094b 100644 --- a/src/components/ble/FSService.h +++ b/src/components/ble/FSService.h @@ -15,13 +15,15 @@ namespace Pinetime { class Ble; class FSService { public: - FSService(Pinetime::Controllers::FS& fs); + FSService(Pinetime::System::SystemTask& systemTask, + Pinetime::Controllers::FS& fs); void Init(); int OnFSServiceRequested(uint16_t connectionHandle, uint16_t attributeHandle, ble_gatt_access_ctxt* context); void NotifyFSRaw(uint16_t connectionHandle); private: + Pinetime::System::SystemTask& systemTask; Pinetime::Controllers::FS& fs; static constexpr uint16_t FSServiceId {0xFEBB}; static constexpr uint16_t fsVersionId {0x0100}; @@ -30,7 +32,7 @@ namespace Pinetime { static constexpr uint8_t maxpathlen = 100; static constexpr ble_uuid16_t fsServiceUuid { .u {.type = BLE_UUID_TYPE_16}, - .value = {0xFEBB}};// {0x72, 0x65, 0x66, 0x73, 0x6e, 0x61, 0x72, 0x54, 0x65, 0x6c, 0x69, 0x46, 0xBB, 0xFE, 0xAF, 0xAD}}; + .value = {0xFEBB}}; // {0x72, 0x65, 0x66, 0x73, 0x6e, 0x61, 0x72, 0x54, 0x65, 0x6c, 0x69, 0x46, 0xBB, 0xFE, 0xAF, 0xAD}}; static constexpr ble_uuid128_t fsVersionUuid { .u {.type = BLE_UUID_TYPE_128}, @@ -144,7 +146,7 @@ namespace Pinetime { }; int FSCommandHandler(uint16_t connectionHandle, os_mbuf* om); - void prepareReadDataResp(ReadHeader *header, ReadResponse *resp); + void prepareReadDataResp(ReadHeader* header, ReadResponse* resp); }; } } diff --git a/src/components/ble/NimbleController.cpp b/src/components/ble/NimbleController.cpp index b5eb46b8..01230661 100644 --- a/src/components/ble/NimbleController.cpp +++ b/src/components/ble/NimbleController.cpp @@ -51,7 +51,7 @@ NimbleController::NimbleController(Pinetime::System::SystemTask& systemTask, heartRateService {systemTask, heartRateController}, motionService{systemTask, motionController}, fs {fs}, - fsService {fs}, + fsService {systemTask,fs}, serviceDiscovery({¤tTimeClient, &alertNotificationClient}) { } diff --git a/src/systemtask/Messages.h b/src/systemtask/Messages.h index 516f6462..cc30fdc6 100644 --- a/src/systemtask/Messages.h +++ b/src/systemtask/Messages.h @@ -27,6 +27,8 @@ namespace Pinetime { StopRinging, MeasureBatteryTimerExpired, BatteryPercentageUpdated, + StartFileTransfer, + StopFileTransfer, }; } } diff --git a/src/systemtask/SystemTask.cpp b/src/systemtask/SystemTask.cpp index 28f81243..a95d479d 100644 --- a/src/systemtask/SystemTask.cpp +++ b/src/systemtask/SystemTask.cpp @@ -342,6 +342,19 @@ void SystemTask::Work() { doNotGoToSleep = false; xTimerStart(dimTimer, 0); break; + case Messages::StartFileTransfer: + NRF_LOG_INFO("[systemtask] FS Started"); + doNotGoToSleep = true; + if (isSleeping && !isWakingUp) + GoToRunning(); + //TODO add intent of fs access icon or something + break; + case Messages::StopFileTransfer: + NRF_LOG_INFO("[systemtask] FS Stopped"); + doNotGoToSleep = false; + xTimerStart(dimTimer, 0); + //TODO add intent of fs access icon or something + break; case Messages::OnTouchEvent: if (touchHandler.GetNewTouchInfo()) { touchHandler.UpdateLvglTouchPoint(); From faa05eb57b7d6214e53d0b147a796793496a89ae Mon Sep 17 00:00:00 2001 From: Tim Keller Date: Thu, 21 Oct 2021 04:02:50 +0000 Subject: [PATCH 152/188] Actually fix memory corruption, seems stable now ListDir MKDIR delete all seem to work Co-authored-by: Iambian --- src/components/ble/FSService.cpp | 103 ++++++++++++------------------- src/components/ble/FSService.h | 5 +- 2 files changed, 43 insertions(+), 65 deletions(-) diff --git a/src/components/ble/FSService.cpp b/src/components/ble/FSService.cpp index cd2cc07a..0ba3e102 100644 --- a/src/components/ble/FSService.cpp +++ b/src/components/ble/FSService.cpp @@ -69,8 +69,9 @@ int FSService::FSCommandHandler(uint16_t connectionHandle, os_mbuf* om) { while (systemTask.IsSleeping()) { vTaskDelay(100); // 50ms } + lfs_dir_t dir; + lfs_info info; switch (command) { - /* case commands::READ: { NRF_LOG_INFO("[FS_S] -> Read"); if (state != FSState::IDLE) { @@ -151,31 +152,15 @@ int FSService::FSCommandHandler(uint16_t connectionHandle, os_mbuf* om) { return -1; } } - case commands::DELETE: { NRF_LOG_INFO("[FS_S] -> Delete"); auto* header = (DelHeader*) om->om_data; uint16_t plen = header->pathlen; - char path[plen + 1] = {0}; - struct lfs_info info = {}; - DelResponse resp = {}; + char path[plen + 1] {0}; + memcpy(path, header->pathstr, plen); + DelResponse resp {}; resp.command = commands::DELETE_STATUS; - int res = fs.Stat(path, &info); - // Get Info about path - // branch for DirDel of FileDelete - if (info.type == LFS_TYPE_DIR) { - res = fs.DirDelete(path); - } else { - res = fs.FileDelete(path); - } - switch (res) { - case LFS_ERR_OK: - resp.status = 0x01; - break; - default: - resp.status = 0x02; - break; - } + resp.status = fs.FileDelete(path) ? 0x02 : 0x01; auto* om = ble_hs_mbuf_from_flat(&resp, sizeof(DelResponse)); ble_gattc_notify_custom(connectionHandle, transferCharacteristicHandle, om); break; @@ -184,57 +169,43 @@ int FSService::FSCommandHandler(uint16_t connectionHandle, os_mbuf* om) { NRF_LOG_INFO("[FS_S] -> MKDir"); auto* header = (MKDirHeader*) om->om_data; uint16_t plen = header->pathlen; - char path[plen + 1] = {0}; + char path[plen + 1] {0}; memcpy(path, header->pathstr, plen); - NRF_LOG_INFO("[FS_S] -> MKDIR %.10s", path); - MKDirResponse resp = {}; + MKDirResponse resp {}; resp.command = commands::MKDIR_STATUS; - int res = fs.DirCreate(path); - switch (res) { - case LFS_ERR_OK: - resp.status = 0x01; - break; - default: - resp.status = 0x02; - break; - } - resp.modification_time = 0; // We should timestamp..but no + resp.modification_time = 0; + resp.status = fs.DirCreate(path) ? 0x02 : 0x01; auto* om = ble_hs_mbuf_from_flat(&resp, sizeof(MKDirResponse)); ble_gattc_notify_custom(connectionHandle, transferCharacteristicHandle, om); break; - }*/ + } case commands::LISTDIR: { NRF_LOG_INFO("[FS_S] -> ListDir"); ListDirHeader* header = (ListDirHeader*) om->om_data; uint16_t plen = header->pathlen; - char path[plen + 1] = {0}; + char path[plen + 1] {0}; memcpy(path, header->pathstr, plen); NRF_LOG_INFO("[FS_S] -> DIR %.10s", path); - lfs_dir_t dir = {}; - struct lfs_info info = {}; + ListDirResponse resp {}; - ListDirResponse resp = {}; resp.command = commands::LISTDIR_ENTRY; - resp.status = 1; // TODO actually use res above! + resp.status = 1; resp.totalentries = 0; resp.entry = 0; - - if (fs.DirOpen(path, &dir)) { - return 0; - } - - // NRF_LOG_INFO("[FS_S] ->diropen %d ", res); + resp.modification_time = 0; // TODO Does LFS actually support TS? + if (fs.DirOpen(path, &dir) != 0) { + resp.status = 0x02; + auto* om = ble_hs_mbuf_from_flat(&resp, sizeof(ListDirResponse)); + ble_gattc_notify_custom(connectionHandle, transferCharacteristicHandle, om); + break; + }; + // Count Total files in directory. while (fs.DirRead(&dir, &info)) { resp.totalentries++; } - NRF_LOG_INFO("[FS_S] -> %d ", resp.totalentries); - fs.DirRewind(&dir); - - // NRF_LOG_INFO("[FS_S] ->diropen %d ", res); - - while (resp.entry < resp.totalentries) { + while (true) { int res = fs.DirRead(&dir, &info); if (res <= 0) { break; @@ -251,35 +222,39 @@ int FSService::FSCommandHandler(uint16_t connectionHandle, os_mbuf* om) { break; } } - resp.modification_time = 0; // TODO Does LFS actually support TS? - strcpy(resp.path, info.name); + + //strcpy(resp.path, info.name); resp.path_length = strlen(info.name); - NRF_LOG_INFO("[FS_S] ->Path %s ,", info.name); - auto* om = ble_hs_mbuf_from_flat(&resp, sizeof(ListDirResponse) + resp.path_length); + NRF_LOG_INFO("[FS_S] -> DIR %.10s", path); + auto* om = ble_hs_mbuf_from_flat(&resp, sizeof(ListDirResponse)); + os_mbuf_append(om,info.name,resp.path_length); ble_gattc_notify_custom(connectionHandle, transferCharacteristicHandle, om); + /* + * Todo Figure out how to know when the previous Notify was TX'd + * For now just delay 100ms to make sure that the data went out... + */ vTaskDelay(100); // Allow stuff to actually go out over the BLE conn resp.entry++; } - - if (fs.DirClose(&dir)) { - return 0; - } + assert(fs.DirClose(&dir) == 0); resp.file_size = 0; resp.path_length = 0; resp.flags = 0; - // TODO Handle Size of response better. - auto* om = ble_hs_mbuf_from_flat(&resp, sizeof(ListDirResponse) + resp.path_length); + auto* om = ble_hs_mbuf_from_flat(&resp, sizeof(ListDirResponse)); ble_gattc_notify_custom(connectionHandle, transferCharacteristicHandle, om); - NRF_LOG_INFO("[FS_S] -> done "); break; } + default: + break; } + NRF_LOG_INFO("[FS_S] -> done "); systemTask.PushMessage(Pinetime::System::Messages::StopFileTransfer); return 0; } + // Loads resp with file data given a valid filepath header and resp void FSService::prepareReadDataResp(ReadHeader* header, ReadResponse* resp) { - uint16_t plen = header->pathlen; + // uint16_t plen = header->pathlen; resp->command = commands::READ_DATA; resp->chunkoff = header->chunkoff; resp->status = 0x01; diff --git a/src/components/ble/FSService.h b/src/components/ble/FSService.h index 69ed094b..e9c98fb4 100644 --- a/src/components/ble/FSService.h +++ b/src/components/ble/FSService.h @@ -29,7 +29,7 @@ namespace Pinetime { static constexpr uint16_t fsVersionId {0x0100}; static constexpr uint16_t fsTransferId {0x0200}; uint16_t fsVersion = {0x0004}; - static constexpr uint8_t maxpathlen = 100; + static constexpr uint16_t maxpathlen = 256; static constexpr ble_uuid16_t fsServiceUuid { .u {.type = BLE_UUID_TYPE_16}, .value = {0xFEBB}}; // {0x72, 0x65, 0x66, 0x73, 0x6e, 0x61, 0x72, 0x54, 0x65, 0x6c, 0x69, 0x46, 0xBB, 0xFE, 0xAF, 0xAD}}; @@ -47,6 +47,9 @@ namespace Pinetime { uint16_t versionCharacteristicHandle; uint16_t transferCharacteristicHandle; + // lfs_dir_t dir; + // lfs_info info; + enum class commands : uint8_t { INVALID = 0x00, READ = 0x10, From 8fb99471c38c2efd7af88d4888c5792bdd8deafb Mon Sep 17 00:00:00 2001 From: Tim Keller Date: Fri, 22 Oct 2021 03:34:23 +0000 Subject: [PATCH 153/188] Reading Seems to work? --- src/components/ble/FSService.cpp | 78 ++++++++++++++++---------------- 1 file changed, 39 insertions(+), 39 deletions(-) diff --git a/src/components/ble/FSService.cpp b/src/components/ble/FSService.cpp index 0ba3e102..68fd5ea6 100644 --- a/src/components/ble/FSService.cpp +++ b/src/components/ble/FSService.cpp @@ -73,74 +73,76 @@ int FSService::FSCommandHandler(uint16_t connectionHandle, os_mbuf* om) { lfs_info info; switch (command) { case commands::READ: { + lfs_file f; NRF_LOG_INFO("[FS_S] -> Read"); - if (state != FSState::IDLE) { - return -1; - } - state = FSState::READ; auto* header = (ReadHeader*) om->om_data; uint16_t plen = header->pathlen; - if (plen > maxpathlen - 1) { + if (plen > maxpathlen) { //> counts for null term return -1; } memcpy(filepath, header->pathstr, plen); filepath[plen + 1] = 0; // Copy and null teminate string ReadResponse resp; resp.command = commands::READ_DATA; - resp.chunkoff = header->chunkoff; resp.status = 0x01; - struct lfs_info info = {}; + resp.chunkoff = header->chunkoff; int res = fs.Stat(filepath, &info); if (res == LFS_ERR_NOENT && info.type != LFS_TYPE_DIR) { resp.status = 0x03; resp.chunklen = 0; resp.totallen = 0; } else { - lfs_file f; - resp.chunklen = std::min(header->chunksize, info.size); + resp.chunklen = std::min(header->chunksize, info.size); // TODO add mtu somehow resp.totallen = info.size; fs.FileOpen(&f, filepath, LFS_O_RDONLY); fs.FileSeek(&f, header->chunkoff); - resp.chunklen = fs.FileRead(&f, resp.chunk, resp.chunklen); - fs.FileClose(&f); } - auto* om = ble_hs_mbuf_from_flat(&resp, sizeof(ReadResponse)); + os_mbuf* om; + if (resp.chunklen > 0) { + uint8_t fileData[resp.chunklen] {0}; + resp.chunklen = fs.FileRead(&f, fileData, resp.chunklen); + om = ble_hs_mbuf_from_flat(&resp, sizeof(ReadResponse)); + os_mbuf_append(om, fileData, resp.chunklen); + } else { + resp.chunklen = 0; + om = ble_hs_mbuf_from_flat(&resp, sizeof(ReadResponse)); + } + fs.FileClose(&f); ble_gattc_notify_custom(connectionHandle, transferCharacteristicHandle, om); - if (header->chunksize >= resp.totallen) { // probably removeable...but then usafe - state = FSState::IDLE; - } + break; } case commands::READ_PACING: { - NRF_LOG_INFO("[FS_S] -> ReadPacing"); - if (state != FSState::READ) { - return -1; - } - auto* header = (ReadPacing*) om->om_data; - ReadResponse resp = {}; - + lfs_file f; + NRF_LOG_INFO("[FS_S] -> Readpacing"); + auto* header = (ReadHeader*) om->om_data; + ReadResponse resp; resp.command = commands::READ_DATA; - resp.chunkoff = header->chunkoff; resp.status = 0x01; - struct lfs_info info = {}; + resp.chunkoff = header->chunkoff; int res = fs.Stat(filepath, &info); if (res == LFS_ERR_NOENT && info.type != LFS_TYPE_DIR) { resp.status = 0x03; resp.chunklen = 0; resp.totallen = 0; } else { - lfs_file f; - resp.chunklen = std::min(header->chunksize, info.size); + resp.chunklen = std::min(header->chunksize, info.size); // TODO add mtu somehow resp.totallen = info.size; fs.FileOpen(&f, filepath, LFS_O_RDONLY); fs.FileSeek(&f, header->chunkoff); - resp.chunklen = fs.FileRead(&f, resp.chunk, resp.chunklen); - fs.FileClose(&f); } - auto* om = ble_hs_mbuf_from_flat(&resp, sizeof(ReadResponse)); + os_mbuf* om; + if (resp.chunklen > 0) { + uint8_t fileData[resp.chunklen] {0}; + resp.chunklen = fs.FileRead(&f, fileData, resp.chunklen); + om = ble_hs_mbuf_from_flat(&resp, sizeof(ReadResponse)); + os_mbuf_append(om, fileData, resp.chunklen); + } else { + resp.chunklen = 0; + om = ble_hs_mbuf_from_flat(&resp, sizeof(ReadResponse)); + } + fs.FileClose(&f); ble_gattc_notify_custom(connectionHandle, transferCharacteristicHandle, om); - if (resp.chunklen >= header->chunksize) { // is this right? - state = FSState::IDLE; - } + break; } case commands::WRITE: { if (state != FSState::IDLE) { @@ -185,7 +187,6 @@ int FSService::FSCommandHandler(uint16_t connectionHandle, os_mbuf* om) { uint16_t plen = header->pathlen; char path[plen + 1] {0}; memcpy(path, header->pathstr, plen); - NRF_LOG_INFO("[FS_S] -> DIR %.10s", path); ListDirResponse resp {}; @@ -223,16 +224,15 @@ int FSService::FSCommandHandler(uint16_t connectionHandle, os_mbuf* om) { } } - //strcpy(resp.path, info.name); + // strcpy(resp.path, info.name); resp.path_length = strlen(info.name); - NRF_LOG_INFO("[FS_S] -> DIR %.10s", path); auto* om = ble_hs_mbuf_from_flat(&resp, sizeof(ListDirResponse)); - os_mbuf_append(om,info.name,resp.path_length); + os_mbuf_append(om, info.name, resp.path_length); ble_gattc_notify_custom(connectionHandle, transferCharacteristicHandle, om); /* - * Todo Figure out how to know when the previous Notify was TX'd - * For now just delay 100ms to make sure that the data went out... - */ + * Todo Figure out how to know when the previous Notify was TX'd + * For now just delay 100ms to make sure that the data went out... + */ vTaskDelay(100); // Allow stuff to actually go out over the BLE conn resp.entry++; } From c1aa5a5ea7d5ecde63a786827a866312c04507f9 Mon Sep 17 00:00:00 2001 From: Tim Keller Date: Mon, 25 Oct 2021 03:02:02 +0000 Subject: [PATCH 154/188] Write works --- src/components/ble/FSService.cpp | 52 ++++++++++++++++++++++++-------- src/components/ble/FSService.h | 31 +++++++++++++++++-- src/components/fs/FS.cpp | 4 ++- src/components/fs/FS.h | 8 +++-- 4 files changed, 77 insertions(+), 18 deletions(-) diff --git a/src/components/ble/FSService.cpp b/src/components/ble/FSService.cpp index 68fd5ea6..c784a8c4 100644 --- a/src/components/ble/FSService.cpp +++ b/src/components/ble/FSService.cpp @@ -83,6 +83,7 @@ int FSService::FSCommandHandler(uint16_t connectionHandle, os_mbuf* om) { memcpy(filepath, header->pathstr, plen); filepath[plen + 1] = 0; // Copy and null teminate string ReadResponse resp; + os_mbuf* om; resp.command = commands::READ_DATA; resp.status = 0x01; resp.chunkoff = header->chunkoff; @@ -91,23 +92,19 @@ int FSService::FSCommandHandler(uint16_t connectionHandle, os_mbuf* om) { resp.status = 0x03; resp.chunklen = 0; resp.totallen = 0; + om = ble_hs_mbuf_from_flat(&resp, sizeof(ReadResponse)); } else { resp.chunklen = std::min(header->chunksize, info.size); // TODO add mtu somehow resp.totallen = info.size; fs.FileOpen(&f, filepath, LFS_O_RDONLY); fs.FileSeek(&f, header->chunkoff); - } - os_mbuf* om; - if (resp.chunklen > 0) { uint8_t fileData[resp.chunklen] {0}; resp.chunklen = fs.FileRead(&f, fileData, resp.chunklen); om = ble_hs_mbuf_from_flat(&resp, sizeof(ReadResponse)); os_mbuf_append(om, fileData, resp.chunklen); - } else { - resp.chunklen = 0; - om = ble_hs_mbuf_from_flat(&resp, sizeof(ReadResponse)); + fs.FileClose(&f); } - fs.FileClose(&f); + ble_gattc_notify_custom(connectionHandle, transferCharacteristicHandle, om); break; } @@ -145,14 +142,45 @@ int FSService::FSCommandHandler(uint16_t connectionHandle, os_mbuf* om) { break; } case commands::WRITE: { - if (state != FSState::IDLE) { + lfs_file f; + NRF_LOG_INFO("[FS_S] -> Write"); + auto* header = (WriteHeader*) om->om_data; + uint16_t plen = header->pathlen; + if (plen > maxpathlen) { //> counts for null term return -1; } + memcpy(filepath, header->pathstr, plen); + filepath[plen + 1] = 0; // Copy and null teminate string + fileSize = header->totalSize; + WriteResponse resp; + resp.command = commands::WRITE_PACING; + resp.offset = header->offset; + resp.modTime = 0; + int res = fs.FileOpen(&f, filepath, LFS_O_RDWR | LFS_O_CREAT); + resp.status = res ? 0x02 : 0x01; + fs.FileClose(&f); + resp.freespace = std::min(fs.getSize() - (fs.GetFSSize() * fs.getBlockSize()), fileSize - header->offset); + auto* om = ble_hs_mbuf_from_flat(&resp, sizeof(WriteResponse)); + ble_gattc_notify_custom(connectionHandle, transferCharacteristicHandle, om); + break; } - case commands::WRITE_PACING: { - if (state != FSState::WRITE) { - return -1; - } + case commands::WRITE_DATA: { + lfs_file f; + NRF_LOG_INFO("[FS_S] -> WriteData"); + auto* header = (WritePacing*) om->om_data; + WriteResponse resp; + resp.command = commands::WRITE_PACING; + resp.offset = header->offset; + int res = fs.FileOpen(&f, filepath, LFS_O_RDWR | LFS_O_CREAT); + resp.status = res ? 0x02 : 0x01; + fs.FileSeek(&f, header->offset); + fs.FileWrite(&f, header->data, header->dataSize); + fs.FileClose(&f); + resp.freespace = std::min(fs.getSize() - (fs.GetFSSize() * fs.getBlockSize()), fileSize - header->offset); + // NRF_LOG_INFO('[FS_S] Used Blocks -> %u',resp.freespace); + auto* om = ble_hs_mbuf_from_flat(&resp, sizeof(WriteResponse)); + ble_gattc_notify_custom(connectionHandle, transferCharacteristicHandle, om); + break; } case commands::DELETE: { NRF_LOG_INFO("[FS_S] -> Delete"); diff --git a/src/components/ble/FSService.h b/src/components/ble/FSService.h index e9c98fb4..17f52eb0 100644 --- a/src/components/ble/FSService.h +++ b/src/components/ble/FSService.h @@ -47,9 +47,6 @@ namespace Pinetime { uint16_t versionCharacteristicHandle; uint16_t transferCharacteristicHandle; - // lfs_dir_t dir; - // lfs_info info; - enum class commands : uint8_t { INVALID = 0x00, READ = 0x10, @@ -74,6 +71,7 @@ namespace Pinetime { }; FSState state; char filepath[maxpathlen]; // TODO ..ugh fixed filepath len + int fileSize; using ReadHeader = struct __attribute__((packed)) { commands command; uint8_t padding; @@ -100,6 +98,33 @@ namespace Pinetime { uint32_t chunksize; }; + using WriteHeader = struct __attribute__((packed)) { + commands command; + uint8_t padding; + uint16_t pathlen; + uint32_t offset; + uint64_t modTime; + uint32_t totalSize; + char pathstr[]; + }; + + using WriteResponse = struct __attribute__((packed)) { + commands command; + uint8_t status; + uint16_t padding; + uint32_t offset; + uint64_t modTime; + uint32_t freespace; + }; + + using WritePacing = struct __attribute__((packed)) { + commands command; + uint8_t status; + uint16_t padding; + uint32_t offset; + uint32_t dataSize; + uint8_t data[]; + }; using ListDirHeader = struct __attribute__((packed)) { commands command; uint8_t padding; diff --git a/src/components/fs/FS.cpp b/src/components/fs/FS.cpp index c8a5a2eb..297706fe 100644 --- a/src/components/fs/FS.cpp +++ b/src/components/fs/FS.cpp @@ -107,7 +107,9 @@ int FS::DirCreate(const char* path) { int FS::Stat(const char* path, lfs_info* info) { return lfs_stat(&lfs, path, info); } - +lfs_ssize_t FS::GetFSSize(){ + return lfs_fs_size(&lfs); +} // Delete directory and all files inside int FS::DirDelete(const char* path) { diff --git a/src/components/fs/FS.h b/src/components/fs/FS.h index 1aa8d5f1..e4df9566 100644 --- a/src/components/fs/FS.h +++ b/src/components/fs/FS.h @@ -10,6 +10,8 @@ namespace Pinetime { public: FS(Pinetime::Drivers::SpiNorFlash&); + + void Init(); void LVGLFileSystemInit(); @@ -30,10 +32,11 @@ namespace Pinetime { int DirRewind(lfs_dir_t* dir); int DirCreate(const char* path); int DirDelete(const char* path); - + lfs_ssize_t GetFSSize(); int Stat(const char* path, lfs_info* info); void VerifyResource(); - + static size_t getSize(){return size;} + static size_t getBlockSize(){return blockSize;} private: Pinetime::Drivers::SpiNorFlash& flashDriver; @@ -62,6 +65,7 @@ namespace Pinetime { static constexpr size_t startAddress = 0x0B4000; static constexpr size_t size = 0x34C000; static constexpr size_t blockSize = 4096; + bool resourcesValid = false; const struct lfs_config lfsConfig; From 2e10b0fe645f74d0ab057ac11b96f4eb3fffc4ae Mon Sep 17 00:00:00 2001 From: Tim Keller Date: Tue, 26 Oct 2021 00:10:39 +0000 Subject: [PATCH 155/188] Remove mount/unmount. No longer needed --- src/components/fs/FS.cpp | 10 +--------- src/components/fs/FS.h | 15 +++++++-------- 2 files changed, 8 insertions(+), 17 deletions(-) diff --git a/src/components/fs/FS.cpp b/src/components/fs/FS.cpp index 297706fe..8d82c39d 100644 --- a/src/components/fs/FS.cpp +++ b/src/components/fs/FS.cpp @@ -54,14 +54,6 @@ void FS::VerifyResource() { resourcesValid = true; } -void FS::Mount() { - flashDriver.Wakeup(); -} - -void FS::UnMount() { - flashDriver.Sleep(); -} - int FS::FileOpen(lfs_file_t* file_p, const char* fileName, const int flags) { return lfs_file_open(&lfs, file_p, fileName, flags); } @@ -107,7 +99,7 @@ int FS::DirCreate(const char* path) { int FS::Stat(const char* path, lfs_info* info) { return lfs_stat(&lfs, path, info); } -lfs_ssize_t FS::GetFSSize(){ +lfs_ssize_t FS::GetFSSize() { return lfs_fs_size(&lfs); } // Delete directory and all files inside diff --git a/src/components/fs/FS.h b/src/components/fs/FS.h index e4df9566..60dd8e51 100644 --- a/src/components/fs/FS.h +++ b/src/components/fs/FS.h @@ -10,14 +10,9 @@ namespace Pinetime { public: FS(Pinetime::Drivers::SpiNorFlash&); - - void Init(); void LVGLFileSystemInit(); - void Mount(); - void UnMount(); - 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); @@ -35,8 +30,13 @@ namespace Pinetime { lfs_ssize_t GetFSSize(); int Stat(const char* path, lfs_info* info); void VerifyResource(); - static size_t getSize(){return size;} - static size_t getBlockSize(){return blockSize;} + static size_t getSize() { + return size; + } + static size_t getBlockSize() { + return blockSize; + } + private: Pinetime::Drivers::SpiNorFlash& flashDriver; @@ -65,7 +65,6 @@ namespace Pinetime { static constexpr size_t startAddress = 0x0B4000; static constexpr size_t size = 0x34C000; static constexpr size_t blockSize = 4096; - bool resourcesValid = false; const struct lfs_config lfsConfig; From f4322841ffc011ea5c541e40e6aa73ab11ebd988 Mon Sep 17 00:00:00 2001 From: Tim Keller Date: Tue, 26 Oct 2021 00:48:25 +0000 Subject: [PATCH 156/188] Remove DirDelete, implementation did not work and memory contraints are recursive. Better implemented on client side... --- src/components/fs/FS.cpp | 17 ----------------- src/components/fs/FS.h | 3 ++- 2 files changed, 2 insertions(+), 18 deletions(-) diff --git a/src/components/fs/FS.cpp b/src/components/fs/FS.cpp index 8d82c39d..79fb2222 100644 --- a/src/components/fs/FS.cpp +++ b/src/components/fs/FS.cpp @@ -102,23 +102,6 @@ int FS::Stat(const char* path, lfs_info* info) { lfs_ssize_t FS::GetFSSize() { return lfs_fs_size(&lfs); } -// 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; -} /* diff --git a/src/components/fs/FS.h b/src/components/fs/FS.h index 60dd8e51..da3bd273 100644 --- a/src/components/fs/FS.h +++ b/src/components/fs/FS.h @@ -26,10 +26,11 @@ namespace Pinetime { int DirRead(lfs_dir_t* dir, lfs_info* info); int DirRewind(lfs_dir_t* dir); int DirCreate(const char* path); - int DirDelete(const char* path); + lfs_ssize_t GetFSSize(); int Stat(const char* path, lfs_info* info); void VerifyResource(); + static size_t getSize() { return size; } From 8f46908d387cc4fe3f911bc0ca517719238418ed Mon Sep 17 00:00:00 2001 From: Tim Keller Date: Tue, 26 Oct 2021 03:42:34 +0000 Subject: [PATCH 157/188] Fix lvgl_open to respect littlefs open errors --- src/components/ble/FSService.cpp | 6 ++---- src/components/fs/FS.cpp | 15 ++++++++------- 2 files changed, 10 insertions(+), 11 deletions(-) diff --git a/src/components/ble/FSService.cpp b/src/components/ble/FSService.cpp index c784a8c4..0230ea15 100644 --- a/src/components/ble/FSService.cpp +++ b/src/components/ble/FSService.cpp @@ -156,7 +156,7 @@ int FSService::FSCommandHandler(uint16_t connectionHandle, os_mbuf* om) { resp.command = commands::WRITE_PACING; resp.offset = header->offset; resp.modTime = 0; - int res = fs.FileOpen(&f, filepath, LFS_O_RDWR | LFS_O_CREAT); + int res = fs.FileOpen(&f, filepath, LFS_O_WRONLY | LFS_O_CREAT); resp.status = res ? 0x02 : 0x01; fs.FileClose(&f); resp.freespace = std::min(fs.getSize() - (fs.GetFSSize() * fs.getBlockSize()), fileSize - header->offset); @@ -177,7 +177,6 @@ int FSService::FSCommandHandler(uint16_t connectionHandle, os_mbuf* om) { fs.FileWrite(&f, header->data, header->dataSize); fs.FileClose(&f); resp.freespace = std::min(fs.getSize() - (fs.GetFSSize() * fs.getBlockSize()), fileSize - header->offset); - // NRF_LOG_INFO('[FS_S] Used Blocks -> %u',resp.freespace); auto* om = ble_hs_mbuf_from_flat(&resp, sizeof(WriteResponse)); ble_gattc_notify_custom(connectionHandle, transferCharacteristicHandle, om); break; @@ -222,14 +221,13 @@ int FSService::FSCommandHandler(uint16_t connectionHandle, os_mbuf* om) { resp.status = 1; resp.totalentries = 0; resp.entry = 0; - resp.modification_time = 0; // TODO Does LFS actually support TS? + resp.modification_time = 0; if (fs.DirOpen(path, &dir) != 0) { resp.status = 0x02; auto* om = ble_hs_mbuf_from_flat(&resp, sizeof(ListDirResponse)); ble_gattc_notify_custom(connectionHandle, transferCharacteristicHandle, om); break; }; - // Count Total files in directory. while (fs.DirRead(&dir, &info)) { resp.totalentries++; } diff --git a/src/components/fs/FS.cpp b/src/components/fs/FS.cpp index 79fb2222..78b0f5cb 100644 --- a/src/components/fs/FS.cpp +++ b/src/components/fs/FS.cpp @@ -141,16 +141,17 @@ int FS::SectorRead(const struct lfs_config* c, lfs_block_t block, lfs_off_t off, 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(file_p); FS* filesys = static_cast(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; + int res = filesys->FileOpen(file, path, LFS_O_RDONLY); + if (res == 0) { + if (file->type == 0) { + return LV_FS_RES_FS_ERR; + } else { + return LV_FS_RES_OK; + } } + return LV_FS_RES_NOT_EX; } lv_fs_res_t lvglClose(lv_fs_drv_t* drv, void* file_p) { From 362a5ef1136399c178cf881f7569e3d291432ec1 Mon Sep 17 00:00:00 2001 From: Tim Keller Date: Tue, 16 Nov 2021 04:32:53 +0000 Subject: [PATCH 158/188] Added move function --- src/components/ble/FSService.cpp | 15 +++++++++++++++ src/components/ble/FSService.h | 17 ++++++++++++++--- src/components/fs/FS.cpp | 4 +++- src/components/fs/FS.h | 1 + 4 files changed, 33 insertions(+), 4 deletions(-) diff --git a/src/components/ble/FSService.cpp b/src/components/ble/FSService.cpp index 0230ea15..1082d24c 100644 --- a/src/components/ble/FSService.cpp +++ b/src/components/ble/FSService.cpp @@ -270,6 +270,21 @@ int FSService::FSCommandHandler(uint16_t connectionHandle, os_mbuf* om) { ble_gattc_notify_custom(connectionHandle, transferCharacteristicHandle, om); break; } + case commands::MOVE: { + NRF_LOG_INFO("[FS_S] -> Move"); + MoveHeader* header = (MoveHeader*) om->om_data; + uint16_t plen = header->OldPathLength; + // Null Terminate string + header->pathstr[plen] = 0; + char path[header->NewPathLength + 1] {0}; + memcpy(path, &header->pathstr[plen + 1], header->NewPathLength); + MoveResponse resp {}; + resp.command = commands::MOVE_STATUS; + int res = fs.Rename(header->pathstr, path); + resp.status = (res == 0) ? 1 : 2; + auto* om = ble_hs_mbuf_from_flat(&resp, sizeof(MoveResponse)); + ble_gattc_notify_custom(connectionHandle, transferCharacteristicHandle, om); + } default: break; } diff --git a/src/components/ble/FSService.h b/src/components/ble/FSService.h index 17f52eb0..828925a8 100644 --- a/src/components/ble/FSService.h +++ b/src/components/ble/FSService.h @@ -15,8 +15,7 @@ namespace Pinetime { class Ble; class FSService { public: - FSService(Pinetime::System::SystemTask& systemTask, - Pinetime::Controllers::FS& fs); + FSService(Pinetime::System::SystemTask& systemTask, Pinetime::Controllers::FS& fs); void Init(); int OnFSServiceRequested(uint16_t connectionHandle, uint16_t attributeHandle, ble_gatt_access_ctxt* context); @@ -116,7 +115,7 @@ namespace Pinetime { uint64_t modTime; uint32_t freespace; }; - + using WritePacing = struct __attribute__((packed)) { commands command; uint8_t status; @@ -172,6 +171,18 @@ namespace Pinetime { commands command; uint8_t status; }; + using MoveHeader = struct __attribute__((packed)) { + commands command; + uint8_t padding; + uint16_t OldPathLength; + uint16_t NewPathLength; + char pathstr[]; + }; + + using MoveResponse = struct __attribute__((packed)) { + commands command; + uint8_t status; + }; int FSCommandHandler(uint16_t connectionHandle, os_mbuf* om); void prepareReadDataResp(ReadHeader* header, ReadResponse* resp); diff --git a/src/components/fs/FS.cpp b/src/components/fs/FS.cpp index 78b0f5cb..8c98ae34 100644 --- a/src/components/fs/FS.cpp +++ b/src/components/fs/FS.cpp @@ -95,7 +95,9 @@ int FS::DirRewind(lfs_dir_t* dir) { int FS::DirCreate(const char* path) { return lfs_mkdir(&lfs, path); } - +int FS::Rename(const char* oldPath, const char* newPath){ + return lfs_rename(&lfs,oldPath,newPath); +} int FS::Stat(const char* path, lfs_info* info) { return lfs_stat(&lfs, path, info); } diff --git a/src/components/fs/FS.h b/src/components/fs/FS.h index da3bd273..2b27ae5d 100644 --- a/src/components/fs/FS.h +++ b/src/components/fs/FS.h @@ -28,6 +28,7 @@ namespace Pinetime { int DirCreate(const char* path); lfs_ssize_t GetFSSize(); + int Rename(const char* oldPath, const char* newPath); int Stat(const char* path, lfs_info* info); void VerifyResource(); From 09b9130244a7d5e448612d4a9a70988c2610d686 Mon Sep 17 00:00:00 2001 From: Tim Keller Date: Sat, 20 Nov 2021 04:57:02 +0000 Subject: [PATCH 159/188] Fix string nullterminations, Expand error codes. --- src/components/ble/FSService.cpp | 36 ++++++++++++++++++++------------ 1 file changed, 23 insertions(+), 13 deletions(-) diff --git a/src/components/ble/FSService.cpp b/src/components/ble/FSService.cpp index 1082d24c..e1d5bae0 100644 --- a/src/components/ble/FSService.cpp +++ b/src/components/ble/FSService.cpp @@ -81,7 +81,7 @@ int FSService::FSCommandHandler(uint16_t connectionHandle, os_mbuf* om) { return -1; } memcpy(filepath, header->pathstr, plen); - filepath[plen + 1] = 0; // Copy and null teminate string + filepath[plen] = 0; // Copy and null teminate string ReadResponse resp; os_mbuf* om; resp.command = commands::READ_DATA; @@ -150,14 +150,14 @@ int FSService::FSCommandHandler(uint16_t connectionHandle, os_mbuf* om) { return -1; } memcpy(filepath, header->pathstr, plen); - filepath[plen + 1] = 0; // Copy and null teminate string + filepath[plen] = 0; // Copy and null teminate string fileSize = header->totalSize; WriteResponse resp; resp.command = commands::WRITE_PACING; resp.offset = header->offset; resp.modTime = 0; int res = fs.FileOpen(&f, filepath, LFS_O_WRONLY | LFS_O_CREAT); - resp.status = res ? 0x02 : 0x01; + resp.status = (res==0) ? 0x01: (int8_t)res; fs.FileClose(&f); resp.freespace = std::min(fs.getSize() - (fs.GetFSSize() * fs.getBlockSize()), fileSize - header->offset); auto* om = ble_hs_mbuf_from_flat(&resp, sizeof(WriteResponse)); @@ -171,11 +171,14 @@ int FSService::FSCommandHandler(uint16_t connectionHandle, os_mbuf* om) { WriteResponse resp; resp.command = commands::WRITE_PACING; resp.offset = header->offset; - int res = fs.FileOpen(&f, filepath, LFS_O_RDWR | LFS_O_CREAT); - resp.status = res ? 0x02 : 0x01; + resp.status = 1; + fs.FileOpen(&f, filepath, LFS_O_RDWR | LFS_O_CREAT); fs.FileSeek(&f, header->offset); - fs.FileWrite(&f, header->data, header->dataSize); + int res = fs.FileWrite(&f, header->data, header->dataSize); fs.FileClose(&f); + if(res < 0 ){ + resp.status = (int8_t)res; + } resp.freespace = std::min(fs.getSize() - (fs.GetFSSize() * fs.getBlockSize()), fileSize - header->offset); auto* om = ble_hs_mbuf_from_flat(&resp, sizeof(WriteResponse)); ble_gattc_notify_custom(connectionHandle, transferCharacteristicHandle, om); @@ -187,9 +190,11 @@ int FSService::FSCommandHandler(uint16_t connectionHandle, os_mbuf* om) { uint16_t plen = header->pathlen; char path[plen + 1] {0}; memcpy(path, header->pathstr, plen); + path[plen] = 0; // Copy and null teminate string DelResponse resp {}; resp.command = commands::DELETE_STATUS; - resp.status = fs.FileDelete(path) ? 0x02 : 0x01; + int res = fs.FileDelete(path); + resp.status = (res==0) ? 0x01 : (int8_t)res; auto* om = ble_hs_mbuf_from_flat(&resp, sizeof(DelResponse)); ble_gattc_notify_custom(connectionHandle, transferCharacteristicHandle, om); break; @@ -200,10 +205,12 @@ int FSService::FSCommandHandler(uint16_t connectionHandle, os_mbuf* om) { uint16_t plen = header->pathlen; char path[plen + 1] {0}; memcpy(path, header->pathstr, plen); + path[plen] = 0; // Copy and null teminate string MKDirResponse resp {}; resp.command = commands::MKDIR_STATUS; resp.modification_time = 0; - resp.status = fs.DirCreate(path) ? 0x02 : 0x01; + int res = fs.DirCreate(path); + resp.status = (res==0) ? 0x01 : (int8_t)res; auto* om = ble_hs_mbuf_from_flat(&resp, sizeof(MKDirResponse)); ble_gattc_notify_custom(connectionHandle, transferCharacteristicHandle, om); break; @@ -213,6 +220,7 @@ int FSService::FSCommandHandler(uint16_t connectionHandle, os_mbuf* om) { ListDirHeader* header = (ListDirHeader*) om->om_data; uint16_t plen = header->pathlen; char path[plen + 1] {0}; + path[plen] = 0; // Copy and null teminate string memcpy(path, header->pathstr, plen); ListDirResponse resp {}; @@ -222,8 +230,9 @@ int FSService::FSCommandHandler(uint16_t connectionHandle, os_mbuf* om) { resp.totalentries = 0; resp.entry = 0; resp.modification_time = 0; - if (fs.DirOpen(path, &dir) != 0) { - resp.status = 0x02; + int res = fs.DirOpen(path, &dir); + if (res != 0) { + resp.status = (int8_t)res; auto* om = ble_hs_mbuf_from_flat(&resp, sizeof(ListDirResponse)); ble_gattc_notify_custom(connectionHandle, transferCharacteristicHandle, om); break; @@ -233,7 +242,7 @@ int FSService::FSCommandHandler(uint16_t connectionHandle, os_mbuf* om) { } fs.DirRewind(&dir); while (true) { - int res = fs.DirRead(&dir, &info); + res = fs.DirRead(&dir, &info); if (res <= 0) { break; } @@ -278,10 +287,11 @@ int FSService::FSCommandHandler(uint16_t connectionHandle, os_mbuf* om) { header->pathstr[plen] = 0; char path[header->NewPathLength + 1] {0}; memcpy(path, &header->pathstr[plen + 1], header->NewPathLength); + path[header->NewPathLength] = 0; // Copy and null teminate string MoveResponse resp {}; resp.command = commands::MOVE_STATUS; - int res = fs.Rename(header->pathstr, path); - resp.status = (res == 0) ? 1 : 2; + int8_t res = (int8_t)fs.Rename(header->pathstr, path); + resp.status = (res == 0) ? 1 : res; auto* om = ble_hs_mbuf_from_flat(&resp, sizeof(MoveResponse)); ble_gattc_notify_custom(connectionHandle, transferCharacteristicHandle, om); } From b62c62ee1f62d3371bfa29855bf2fd59b4dcecf8 Mon Sep 17 00:00:00 2001 From: Tim Keller Date: Sat, 20 Nov 2021 20:18:14 +0000 Subject: [PATCH 160/188] Change read to return LFS return values when reading a directory or nonexistant file --- src/components/ble/FSService.cpp | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/src/components/ble/FSService.cpp b/src/components/ble/FSService.cpp index e1d5bae0..4cefcdcf 100644 --- a/src/components/ble/FSService.cpp +++ b/src/components/ble/FSService.cpp @@ -89,7 +89,7 @@ int FSService::FSCommandHandler(uint16_t connectionHandle, os_mbuf* om) { resp.chunkoff = header->chunkoff; int res = fs.Stat(filepath, &info); if (res == LFS_ERR_NOENT && info.type != LFS_TYPE_DIR) { - resp.status = 0x03; + resp.status = (int8_t) res; resp.chunklen = 0; resp.totallen = 0; om = ble_hs_mbuf_from_flat(&resp, sizeof(ReadResponse)); @@ -118,7 +118,7 @@ int FSService::FSCommandHandler(uint16_t connectionHandle, os_mbuf* om) { resp.chunkoff = header->chunkoff; int res = fs.Stat(filepath, &info); if (res == LFS_ERR_NOENT && info.type != LFS_TYPE_DIR) { - resp.status = 0x03; + resp.status = (int8_t) res; resp.chunklen = 0; resp.totallen = 0; } else { @@ -157,7 +157,7 @@ int FSService::FSCommandHandler(uint16_t connectionHandle, os_mbuf* om) { resp.offset = header->offset; resp.modTime = 0; int res = fs.FileOpen(&f, filepath, LFS_O_WRONLY | LFS_O_CREAT); - resp.status = (res==0) ? 0x01: (int8_t)res; + resp.status = (res == 0) ? 0x01 : (int8_t) res; fs.FileClose(&f); resp.freespace = std::min(fs.getSize() - (fs.GetFSSize() * fs.getBlockSize()), fileSize - header->offset); auto* om = ble_hs_mbuf_from_flat(&resp, sizeof(WriteResponse)); @@ -171,13 +171,13 @@ int FSService::FSCommandHandler(uint16_t connectionHandle, os_mbuf* om) { WriteResponse resp; resp.command = commands::WRITE_PACING; resp.offset = header->offset; - resp.status = 1; + resp.status = 0x01; fs.FileOpen(&f, filepath, LFS_O_RDWR | LFS_O_CREAT); fs.FileSeek(&f, header->offset); - int res = fs.FileWrite(&f, header->data, header->dataSize); + int res = fs.FileWrite(&f, header->data, header->dataSize); fs.FileClose(&f); - if(res < 0 ){ - resp.status = (int8_t)res; + if (res < 0) { + resp.status = (int8_t) res; } resp.freespace = std::min(fs.getSize() - (fs.GetFSSize() * fs.getBlockSize()), fileSize - header->offset); auto* om = ble_hs_mbuf_from_flat(&resp, sizeof(WriteResponse)); @@ -194,7 +194,7 @@ int FSService::FSCommandHandler(uint16_t connectionHandle, os_mbuf* om) { DelResponse resp {}; resp.command = commands::DELETE_STATUS; int res = fs.FileDelete(path); - resp.status = (res==0) ? 0x01 : (int8_t)res; + resp.status = (res == 0) ? 0x01 : (int8_t) res; auto* om = ble_hs_mbuf_from_flat(&resp, sizeof(DelResponse)); ble_gattc_notify_custom(connectionHandle, transferCharacteristicHandle, om); break; @@ -210,7 +210,7 @@ int FSService::FSCommandHandler(uint16_t connectionHandle, os_mbuf* om) { resp.command = commands::MKDIR_STATUS; resp.modification_time = 0; int res = fs.DirCreate(path); - resp.status = (res==0) ? 0x01 : (int8_t)res; + resp.status = (res == 0) ? 0x01 : (int8_t) res; auto* om = ble_hs_mbuf_from_flat(&resp, sizeof(MKDirResponse)); ble_gattc_notify_custom(connectionHandle, transferCharacteristicHandle, om); break; @@ -226,13 +226,13 @@ int FSService::FSCommandHandler(uint16_t connectionHandle, os_mbuf* om) { ListDirResponse resp {}; resp.command = commands::LISTDIR_ENTRY; - resp.status = 1; + resp.status = 0x01; resp.totalentries = 0; resp.entry = 0; resp.modification_time = 0; int res = fs.DirOpen(path, &dir); if (res != 0) { - resp.status = (int8_t)res; + resp.status = (int8_t) res; auto* om = ble_hs_mbuf_from_flat(&resp, sizeof(ListDirResponse)); ble_gattc_notify_custom(connectionHandle, transferCharacteristicHandle, om); break; @@ -290,7 +290,7 @@ int FSService::FSCommandHandler(uint16_t connectionHandle, os_mbuf* om) { path[header->NewPathLength] = 0; // Copy and null teminate string MoveResponse resp {}; resp.command = commands::MOVE_STATUS; - int8_t res = (int8_t)fs.Rename(header->pathstr, path); + int8_t res = (int8_t) fs.Rename(header->pathstr, path); resp.status = (res == 0) ? 1 : res; auto* om = ble_hs_mbuf_from_flat(&resp, sizeof(MoveResponse)); ble_gattc_notify_custom(connectionHandle, transferCharacteristicHandle, om); From fdb5e27aea99c3a5117661948de75e7853165ff5 Mon Sep 17 00:00:00 2001 From: Tim Keller Date: Sun, 21 Nov 2021 03:33:00 +0000 Subject: [PATCH 161/188] Attempt at a more robust File handler --- src/components/ble/FSService.cpp | 23 +++++++++++++++-------- 1 file changed, 15 insertions(+), 8 deletions(-) diff --git a/src/components/ble/FSService.cpp b/src/components/ble/FSService.cpp index 4cefcdcf..2222ae9a 100644 --- a/src/components/ble/FSService.cpp +++ b/src/components/ble/FSService.cpp @@ -147,7 +147,7 @@ int FSService::FSCommandHandler(uint16_t connectionHandle, os_mbuf* om) { auto* header = (WriteHeader*) om->om_data; uint16_t plen = header->pathlen; if (plen > maxpathlen) { //> counts for null term - return -1; + return -1; // TODO make this actually return a BLE notif } memcpy(filepath, header->pathstr, plen); filepath[plen] = 0; // Copy and null teminate string @@ -156,9 +156,12 @@ int FSService::FSCommandHandler(uint16_t connectionHandle, os_mbuf* om) { resp.command = commands::WRITE_PACING; resp.offset = header->offset; resp.modTime = 0; + int res = fs.FileOpen(&f, filepath, LFS_O_WRONLY | LFS_O_CREAT); - resp.status = (res == 0) ? 0x01 : (int8_t) res; - fs.FileClose(&f); + if(res == 0){ + fs.FileClose(&f); + resp.status = (res == 0) ? 0x01 : (int8_t) res; + } resp.freespace = std::min(fs.getSize() - (fs.GetFSSize() * fs.getBlockSize()), fileSize - header->offset); auto* om = ble_hs_mbuf_from_flat(&resp, sizeof(WriteResponse)); ble_gattc_notify_custom(connectionHandle, transferCharacteristicHandle, om); @@ -171,14 +174,18 @@ int FSService::FSCommandHandler(uint16_t connectionHandle, os_mbuf* om) { WriteResponse resp; resp.command = commands::WRITE_PACING; resp.offset = header->offset; - resp.status = 0x01; - fs.FileOpen(&f, filepath, LFS_O_RDWR | LFS_O_CREAT); - fs.FileSeek(&f, header->offset); - int res = fs.FileWrite(&f, header->data, header->dataSize); - fs.FileClose(&f); + int res = 0; + + if (!(res = fs.FileOpen(&f, filepath, LFS_O_RDWR | LFS_O_CREAT))) { + if (!(res = fs.FileSeek(&f, header->offset))) { + res = fs.FileWrite(&f, header->data, header->dataSize); + } + fs.FileClose(&f); + } if (res < 0) { resp.status = (int8_t) res; } + resp.freespace = std::min(fs.getSize() - (fs.GetFSSize() * fs.getBlockSize()), fileSize - header->offset); auto* om = ble_hs_mbuf_from_flat(&resp, sizeof(WriteResponse)); ble_gattc_notify_custom(connectionHandle, transferCharacteristicHandle, om); From d1e9aa107617565b456f05e20e9468ab270d323e Mon Sep 17 00:00:00 2001 From: Tim Keller Date: Sun, 21 Nov 2021 06:17:07 +0000 Subject: [PATCH 162/188] Force variable cleanup because LFS makes assumptions about variable initialization state --- src/components/ble/FSService.cpp | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) diff --git a/src/components/ble/FSService.cpp b/src/components/ble/FSService.cpp index 2222ae9a..03d4673d 100644 --- a/src/components/ble/FSService.cpp +++ b/src/components/ble/FSService.cpp @@ -71,9 +71,11 @@ int FSService::FSCommandHandler(uint16_t connectionHandle, os_mbuf* om) { } lfs_dir_t dir; lfs_info info; + lfs_file f; + memset(&f, 0, sizeof(lfs_file_t)); + memset(&dir, 0, sizeof(lfs_dir_t)); switch (command) { case commands::READ: { - lfs_file f; NRF_LOG_INFO("[FS_S] -> Read"); auto* header = (ReadHeader*) om->om_data; uint16_t plen = header->pathlen; @@ -109,7 +111,6 @@ int FSService::FSCommandHandler(uint16_t connectionHandle, os_mbuf* om) { break; } case commands::READ_PACING: { - lfs_file f; NRF_LOG_INFO("[FS_S] -> Readpacing"); auto* header = (ReadHeader*) om->om_data; ReadResponse resp; @@ -142,7 +143,6 @@ int FSService::FSCommandHandler(uint16_t connectionHandle, os_mbuf* om) { break; } case commands::WRITE: { - lfs_file f; NRF_LOG_INFO("[FS_S] -> Write"); auto* header = (WriteHeader*) om->om_data; uint16_t plen = header->pathlen; @@ -157,8 +157,8 @@ int FSService::FSCommandHandler(uint16_t connectionHandle, os_mbuf* om) { resp.offset = header->offset; resp.modTime = 0; - int res = fs.FileOpen(&f, filepath, LFS_O_WRONLY | LFS_O_CREAT); - if(res == 0){ + int res = fs.FileOpen(&f, filepath, LFS_O_RDWR | LFS_O_CREAT); + if (res == 0) { fs.FileClose(&f); resp.status = (res == 0) ? 0x01 : (int8_t) res; } @@ -168,7 +168,6 @@ int FSService::FSCommandHandler(uint16_t connectionHandle, os_mbuf* om) { break; } case commands::WRITE_DATA: { - lfs_file f; NRF_LOG_INFO("[FS_S] -> WriteData"); auto* header = (WritePacing*) om->om_data; WriteResponse resp; @@ -185,7 +184,6 @@ int FSService::FSCommandHandler(uint16_t connectionHandle, os_mbuf* om) { if (res < 0) { resp.status = (int8_t) res; } - resp.freespace = std::min(fs.getSize() - (fs.GetFSSize() * fs.getBlockSize()), fileSize - header->offset); auto* om = ble_hs_mbuf_from_flat(&resp, sizeof(WriteResponse)); ble_gattc_notify_custom(connectionHandle, transferCharacteristicHandle, om); From b9a2db1a49976cbfe92a9941bce17ffdbae7d0b3 Mon Sep 17 00:00:00 2001 From: Tim Keller Date: Sun, 21 Nov 2021 06:33:24 +0000 Subject: [PATCH 163/188] Fix large file support that broke due to a refactor. --- src/components/ble/FSService.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/components/ble/FSService.cpp b/src/components/ble/FSService.cpp index 03d4673d..d82596cb 100644 --- a/src/components/ble/FSService.cpp +++ b/src/components/ble/FSService.cpp @@ -176,7 +176,7 @@ int FSService::FSCommandHandler(uint16_t connectionHandle, os_mbuf* om) { int res = 0; if (!(res = fs.FileOpen(&f, filepath, LFS_O_RDWR | LFS_O_CREAT))) { - if (!(res = fs.FileSeek(&f, header->offset))) { + if ((res = fs.FileSeek(&f, header->offset) ) >= 0) { res = fs.FileWrite(&f, header->data, header->dataSize); } fs.FileClose(&f); From 0a0d1f270328001e1e80a2ac6c26feb111bfa27a Mon Sep 17 00:00:00 2001 From: Tim Keller Date: Sun, 21 Nov 2021 21:35:41 +0000 Subject: [PATCH 164/188] Fix more initializers --- src/components/ble/FSService.cpp | 22 ++++++++++------------ 1 file changed, 10 insertions(+), 12 deletions(-) diff --git a/src/components/ble/FSService.cpp b/src/components/ble/FSService.cpp index d82596cb..8dc9ed67 100644 --- a/src/components/ble/FSService.cpp +++ b/src/components/ble/FSService.cpp @@ -69,11 +69,9 @@ int FSService::FSCommandHandler(uint16_t connectionHandle, os_mbuf* om) { while (systemTask.IsSleeping()) { vTaskDelay(100); // 50ms } - lfs_dir_t dir; - lfs_info info; - lfs_file f; - memset(&f, 0, sizeof(lfs_file_t)); - memset(&dir, 0, sizeof(lfs_dir_t)); + lfs_dir_t dir = {0}; + lfs_info info = {0}; + lfs_file f = {0}; switch (command) { case commands::READ: { NRF_LOG_INFO("[FS_S] -> Read"); @@ -100,7 +98,7 @@ int FSService::FSCommandHandler(uint16_t connectionHandle, os_mbuf* om) { resp.totallen = info.size; fs.FileOpen(&f, filepath, LFS_O_RDONLY); fs.FileSeek(&f, header->chunkoff); - uint8_t fileData[resp.chunklen] {0}; + uint8_t fileData[resp.chunklen] = {0}; resp.chunklen = fs.FileRead(&f, fileData, resp.chunklen); om = ble_hs_mbuf_from_flat(&resp, sizeof(ReadResponse)); os_mbuf_append(om, fileData, resp.chunklen); @@ -130,7 +128,7 @@ int FSService::FSCommandHandler(uint16_t connectionHandle, os_mbuf* om) { } os_mbuf* om; if (resp.chunklen > 0) { - uint8_t fileData[resp.chunklen] {0}; + uint8_t fileData[resp.chunklen] = {0}; resp.chunklen = fs.FileRead(&f, fileData, resp.chunklen); om = ble_hs_mbuf_from_flat(&resp, sizeof(ReadResponse)); os_mbuf_append(om, fileData, resp.chunklen); @@ -176,7 +174,7 @@ int FSService::FSCommandHandler(uint16_t connectionHandle, os_mbuf* om) { int res = 0; if (!(res = fs.FileOpen(&f, filepath, LFS_O_RDWR | LFS_O_CREAT))) { - if ((res = fs.FileSeek(&f, header->offset) ) >= 0) { + if ((res = fs.FileSeek(&f, header->offset)) >= 0) { res = fs.FileWrite(&f, header->data, header->dataSize); } fs.FileClose(&f); @@ -193,7 +191,7 @@ int FSService::FSCommandHandler(uint16_t connectionHandle, os_mbuf* om) { NRF_LOG_INFO("[FS_S] -> Delete"); auto* header = (DelHeader*) om->om_data; uint16_t plen = header->pathlen; - char path[plen + 1] {0}; + char path[plen + 1] = {0}; memcpy(path, header->pathstr, plen); path[plen] = 0; // Copy and null teminate string DelResponse resp {}; @@ -208,7 +206,7 @@ int FSService::FSCommandHandler(uint16_t connectionHandle, os_mbuf* om) { NRF_LOG_INFO("[FS_S] -> MKDir"); auto* header = (MKDirHeader*) om->om_data; uint16_t plen = header->pathlen; - char path[plen + 1] {0}; + char path[plen + 1] = {0}; memcpy(path, header->pathstr, plen); path[plen] = 0; // Copy and null teminate string MKDirResponse resp {}; @@ -224,7 +222,7 @@ int FSService::FSCommandHandler(uint16_t connectionHandle, os_mbuf* om) { NRF_LOG_INFO("[FS_S] -> ListDir"); ListDirHeader* header = (ListDirHeader*) om->om_data; uint16_t plen = header->pathlen; - char path[plen + 1] {0}; + char path[plen + 1] = {0}; path[plen] = 0; // Copy and null teminate string memcpy(path, header->pathstr, plen); @@ -290,7 +288,7 @@ int FSService::FSCommandHandler(uint16_t connectionHandle, os_mbuf* om) { uint16_t plen = header->OldPathLength; // Null Terminate string header->pathstr[plen] = 0; - char path[header->NewPathLength + 1] {0}; + char path[header->NewPathLength + 1] = {0}; memcpy(path, &header->pathstr[plen + 1], header->NewPathLength); path[header->NewPathLength] = 0; // Copy and null teminate string MoveResponse resp {}; From 1470489e7b14fdfe4871cdc714c4a3c98917c4bb Mon Sep 17 00:00:00 2001 From: Tim Keller Date: Fri, 10 Dec 2021 01:49:03 +0000 Subject: [PATCH 165/188] Fix Failed rebase. --- src/components/ble/NimbleController.cpp | 7 +++---- src/components/ble/NimbleController.h | 1 - 2 files changed, 3 insertions(+), 5 deletions(-) diff --git a/src/components/ble/NimbleController.cpp b/src/components/ble/NimbleController.cpp index 01230661..3bf1ec80 100644 --- a/src/components/ble/NimbleController.cpp +++ b/src/components/ble/NimbleController.cpp @@ -49,9 +49,8 @@ NimbleController::NimbleController(Pinetime::System::SystemTask& systemTask, batteryInformationService {batteryController}, immediateAlertService {systemTask, notificationManager}, heartRateService {systemTask, heartRateController}, - motionService{systemTask, motionController}, - fs {fs}, - fsService {systemTask,fs}, + motionService {systemTask, motionController}, + fsService {systemTask, fs}, serviceDiscovery({¤tTimeClient, &alertNotificationClient}) { } @@ -100,7 +99,7 @@ void NimbleController::Init() { heartRateService.Init(); motionService.Init(); fsService.Init(); - + int rc; rc = ble_hs_util_ensure_addr(0); ASSERT(rc == 0); diff --git a/src/components/ble/NimbleController.h b/src/components/ble/NimbleController.h index 14749b8d..7a387037 100644 --- a/src/components/ble/NimbleController.h +++ b/src/components/ble/NimbleController.h @@ -111,7 +111,6 @@ namespace Pinetime { HeartRateService heartRateService; MotionService motionService; ServiceDiscovery serviceDiscovery; - FS fs; FSService fsService; uint8_t addrType; From 645a071b704c201a3c717061e07ab859a6e94f07 Mon Sep 17 00:00:00 2001 From: "James A. Jerkins" Date: Sat, 11 Dec 2021 21:34:51 -0600 Subject: [PATCH 166/188] FIX: AlarmTriggered fall through to ShowPairingKey --- src/displayapp/DisplayApp.cpp | 1 + 1 file changed, 1 insertion(+) diff --git a/src/displayapp/DisplayApp.cpp b/src/displayapp/DisplayApp.cpp index f050e65d..233f433d 100644 --- a/src/displayapp/DisplayApp.cpp +++ b/src/displayapp/DisplayApp.cpp @@ -215,6 +215,7 @@ void DisplayApp::Refresh() { } else { LoadApp(Apps::Alarm, DisplayApp::FullRefreshDirections::None); } + break; case Messages::ShowPairingKey: LoadApp(Apps::PassKey, DisplayApp::FullRefreshDirections::Up); break; From eca0588c2328a72aee3c6132c7c4221277cb8b28 Mon Sep 17 00:00:00 2001 From: "James A. Jerkins" Date: Tue, 21 Dec 2021 16:02:01 -0600 Subject: [PATCH 167/188] Optional secure pairing with a passkey Support passkey pairing when requested by the central Fix a comment and reorder warning --- src/components/ble/BatteryInformationService.cpp | 2 +- src/components/ble/NimbleController.cpp | 6 ++---- src/components/ble/NimbleController.h | 2 +- 3 files changed, 4 insertions(+), 6 deletions(-) diff --git a/src/components/ble/BatteryInformationService.cpp b/src/components/ble/BatteryInformationService.cpp index 82df7b15..9a3f86f5 100644 --- a/src/components/ble/BatteryInformationService.cpp +++ b/src/components/ble/BatteryInformationService.cpp @@ -17,7 +17,7 @@ BatteryInformationService::BatteryInformationService(Controllers::Battery& batte characteristicDefinition {{.uuid = &batteryLevelUuid.u, .access_cb = BatteryInformationServiceCallback, .arg = this, - .flags = BLE_GATT_CHR_F_READ | BLE_GATT_CHR_F_READ_ENC | BLE_GATT_CHR_F_READ_AUTHEN | BLE_GATT_CHR_F_NOTIFY, + .flags = BLE_GATT_CHR_F_READ | BLE_GATT_CHR_F_NOTIFY, .val_handle = &batteryLevelHandle}, {0}}, serviceDefinition { diff --git a/src/components/ble/NimbleController.cpp b/src/components/ble/NimbleController.cpp index 3bf1ec80..d8510bd3 100644 --- a/src/components/ble/NimbleController.cpp +++ b/src/components/ble/NimbleController.cpp @@ -134,9 +134,7 @@ void NimbleController::Init() { RestoreBond(); - if (!ble_gap_adv_active() && !bleController.IsConnected()) { - StartAdvertising(); - } + StartAdvertising(); } void NimbleController::StartAdvertising() { @@ -274,7 +272,7 @@ int NimbleController::OnGAPEvent(ble_gap_event* event) { * display capability only so we only handle the "display" action here. * * Standards insist that the rand() PRNG be deterministic. - * Use the nimble TRNG here since rand() is predictable. + * Use the tinycrypt prng here since rand() is predictable. */ NRF_LOG_INFO("Security event : BLE_GAP_EVENT_PASSKEY_ACTION"); if (event->passkey.params.action == BLE_SM_IOACT_DISP) { diff --git a/src/components/ble/NimbleController.h b/src/components/ble/NimbleController.h index 7a387037..2b300e63 100644 --- a/src/components/ble/NimbleController.h +++ b/src/components/ble/NimbleController.h @@ -110,8 +110,8 @@ namespace Pinetime { ImmediateAlertService immediateAlertService; HeartRateService heartRateService; MotionService motionService; - ServiceDiscovery serviceDiscovery; FSService fsService; + ServiceDiscovery serviceDiscovery; uint8_t addrType; uint16_t connectionHandle = BLE_HS_CONN_HANDLE_NONE; From 86ee7a70b741c970f6cd90827c1bf9874fd50975 Mon Sep 17 00:00:00 2001 From: hubmartin Date: Wed, 4 Aug 2021 15:22:41 +0200 Subject: [PATCH 168/188] WatchFaceDigital - BLE symbol changed to white color --- src/displayapp/screens/WatchFaceDigital.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/displayapp/screens/WatchFaceDigital.cpp b/src/displayapp/screens/WatchFaceDigital.cpp index 87695793..f71b51fe 100644 --- a/src/displayapp/screens/WatchFaceDigital.cpp +++ b/src/displayapp/screens/WatchFaceDigital.cpp @@ -44,7 +44,7 @@ WatchFaceDigital::WatchFaceDigital(DisplayApp* app, lv_obj_align(batteryPlug, batteryIcon, LV_ALIGN_OUT_LEFT_MID, -5, 0); 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(0x0000FF)); + lv_obj_set_style_local_text_color(bleIcon, LV_LABEL_PART_MAIN, LV_STATE_DEFAULT, lv_color_hex(0x000000)); lv_label_set_text(bleIcon, Symbols::bluetooth); lv_obj_align(bleIcon, batteryPlug, LV_ALIGN_OUT_LEFT_MID, -5, 0); From f52d6bfa677d1884f8df03af190a5521fa6809f9 Mon Sep 17 00:00:00 2001 From: hubmartin Date: Wed, 4 Aug 2021 15:26:19 +0200 Subject: [PATCH 169/188] Real white now --- src/displayapp/screens/WatchFaceDigital.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/displayapp/screens/WatchFaceDigital.cpp b/src/displayapp/screens/WatchFaceDigital.cpp index f71b51fe..1b8547fb 100644 --- a/src/displayapp/screens/WatchFaceDigital.cpp +++ b/src/displayapp/screens/WatchFaceDigital.cpp @@ -44,7 +44,7 @@ WatchFaceDigital::WatchFaceDigital(DisplayApp* app, lv_obj_align(batteryPlug, batteryIcon, LV_ALIGN_OUT_LEFT_MID, -5, 0); 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_set_style_local_text_color(bleIcon, LV_LABEL_PART_MAIN, LV_STATE_DEFAULT, lv_color_hex(0xFFFFFF)); lv_label_set_text(bleIcon, Symbols::bluetooth); lv_obj_align(bleIcon, batteryPlug, LV_ALIGN_OUT_LEFT_MID, -5, 0); From 204fc56672e3200f18993219fb290607f41b78d6 Mon Sep 17 00:00:00 2001 From: hubmartin Date: Wed, 4 Aug 2021 19:11:22 +0200 Subject: [PATCH 170/188] Use Bluetooth brand color for BLE logo #0082FC --- src/displayapp/screens/WatchFaceDigital.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/displayapp/screens/WatchFaceDigital.cpp b/src/displayapp/screens/WatchFaceDigital.cpp index 1b8547fb..4d9eaf37 100644 --- a/src/displayapp/screens/WatchFaceDigital.cpp +++ b/src/displayapp/screens/WatchFaceDigital.cpp @@ -44,7 +44,7 @@ WatchFaceDigital::WatchFaceDigital(DisplayApp* app, lv_obj_align(batteryPlug, batteryIcon, LV_ALIGN_OUT_LEFT_MID, -5, 0); 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(0xFFFFFF)); + lv_obj_set_style_local_text_color(bleIcon, LV_LABEL_PART_MAIN, LV_STATE_DEFAULT, lv_color_hex(0x0082FC)); lv_label_set_text(bleIcon, Symbols::bluetooth); lv_obj_align(bleIcon, batteryPlug, LV_ALIGN_OUT_LEFT_MID, -5, 0); From 1832a6c23114a2a1d824de3aa519c70e6f78cfa8 Mon Sep 17 00:00:00 2001 From: Eli Weiss Date: Mon, 29 Nov 2021 21:03:23 -0600 Subject: [PATCH 171/188] Update buildAndProgram.md Improved documentation readability. --- doc/buildAndProgram.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/doc/buildAndProgram.md b/doc/buildAndProgram.md index 3686871a..feef9f6d 100644 --- a/doc/buildAndProgram.md +++ b/doc/buildAndProgram.md @@ -4,7 +4,7 @@ To build this project, you'll need: - A cross-compiler : [ARM-GCC (9-2020-q2-update)](https://developer.arm.com/tools-and-software/open-source-software/developer-tools/gnu-toolchain/gnu-rm/downloads/9-2020-q2-update) - The NRF52 SDK 15.3.0 : [nRF-SDK v15.3.0](https://developer.nordicsemi.com/nRF5_SDK/nRF5_SDK_v15.x.x/nRF5_SDK_15.3.0_59ac345.zip) - The Python 3 modules `cbor`, `intelhex`, `click` and `cryptography` modules for the `mcuboot` tool (see [requirements.txt](../tools/mcuboot/requirements.txt)) - - To to keep the system clean a python virtual environment (`venv`) can be used to install the python modules into + - To keep the system clean, you can install python modules into a python virtual environment (`venv`) ```sh python -m venv .venv source .venv/bin/activate @@ -260,4 +260,4 @@ Finally, merge them together with **mergehex**: This file must be flashed at offset **0x00** of the internal memory of the NRF52832. #### spinor.bin -This file is the MCUBoot image of the last stable version of the recovery firmware. It must be flashed at offset **0x00** of the external SPINOR flash memory. \ No newline at end of file +This file is the MCUBoot image of the last stable version of the recovery firmware. It must be flashed at offset **0x00** of the external SPINOR flash memory. From f66fcdd3ca64fcbecfa264a506b7973b47ba1213 Mon Sep 17 00:00:00 2001 From: Eli Weiss Date: Mon, 29 Nov 2021 21:51:35 -0600 Subject: [PATCH 172/188] Improved documentation readability Removed extra space in contribute.md and cleaned up MemoryAnalysis.md phrasing and confusing punctuation. --- doc/MemoryAnalysis.md | 18 +++++++++--------- doc/contribute.md | 2 +- 2 files changed, 10 insertions(+), 10 deletions(-) diff --git a/doc/MemoryAnalysis.md b/doc/MemoryAnalysis.md index 7304e3f3..20bb9283 100644 --- a/doc/MemoryAnalysis.md +++ b/doc/MemoryAnalysis.md @@ -32,13 +32,13 @@ In this analysis, I used [Linkermapviz](https://github.com/PromyLOPh/linkermapvi ### Linkermapviz -[Linkermapviz](https://github.com/PromyLOPh/linkermapviz) parses the MAP file and displays its content in a graphical way into an HTML page: +[Linkermapviz](https://github.com/PromyLOPh/linkermapviz) parses the MAP file and displays its content on an HTML page as a graphic: ![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,... +Using this tool, you can compare the relative size of symbols. This can be helpful for checking memory usage at a glance. -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/InfiniTimeOrg/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... +Also, as Linkermapviz is written in Python, you can easily modify and adapt it to your firmware or export data in another format. For example, [here it is modified to parse the contents of the MAP file and export it in a CSV file](https://github.com/InfiniTimeOrg/InfiniTime/issues/313#issuecomment-842338620). This file could later be opened in LibreOffice Calc where sort/filter functionality could be used 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... @@ -46,8 +46,8 @@ Also, as Linkermapviz is written in Python, you can easily modify it to adapt it Puncover is really easy to install: - - clone the repo and cd into the cloned directory - - setup a venv + - Clone the repo and cd into the cloned directory + - Setup a venv - `python -m virtualenv venv` - `source venv/bin/activate` - Install : `pip install .` @@ -60,13 +60,13 @@ Puncover is really easy to install: - 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. +Using the MAP file and tools, we can easily see what symbols are using most of the flash memory. In this case, with no surprise, fonts and graphics are the largest use of flash memory. ![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. +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. +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/InfiniTimeOrg/InfiniTime/issues/313#issuecomment-842338620 @@ -210,7 +210,7 @@ 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. +According to my experimentation, InfiniTime uses ~6000bytes of heap most of the time. Except when the Navigation app is launched, where the heap usage exceeds 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: diff --git a/doc/contribute.md b/doc/contribute.md index b1be84a4..f2a4aeaa 100644 --- a/doc/contribute.md +++ b/doc/contribute.md @@ -46,7 +46,7 @@ Other contributors can post comments about the pull request, maybe ask for more Once the pull request is reviewed and accepted, it'll be merged into **develop** and will be released in the next version of the firmware. -## Why all these rules? +## Why all these rules? Reviewing pull requests is a **very time consuming task**. Everything you do to make reviewing easier will **get your PR merged faster**. From c8214bc666a5daf1b0c1c323ae4af7cb5ae2510b Mon Sep 17 00:00:00 2001 From: Eli Weiss Date: Tue, 30 Nov 2021 13:22:47 -0600 Subject: [PATCH 173/188] Update MemoryAnalysis.md Cleaned up MemoryAnalysis.md for greater readability --- doc/MemoryAnalysis.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/doc/MemoryAnalysis.md b/doc/MemoryAnalysis.md index 20bb9283..376f98f6 100644 --- a/doc/MemoryAnalysis.md +++ b/doc/MemoryAnalysis.md @@ -60,7 +60,7 @@ Puncover is really easy to install: - 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. In this case, with no surprise, fonts and graphics are the largest use of flash memory. +Using the MAP file and tools, we can easily see what symbols are using most of the flash memory. In this case, unsuprisingly, fonts and graphics are the largest use of flash memory. ![Puncover](./memoryAnalysis/puncover-all-symbols.png) @@ -245,7 +245,7 @@ Using this technique, I was able to trace all malloc calls at boot (boot -> digi - 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). +I did a deep analysis of the usage of the buffer dedicated to 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 : @@ -256,7 +256,7 @@ 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. +The most interesting metric is `mon.max_used` which specifies the maximum number of bytes 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. From 90352af626cc0087143e824f62f5dcee9f58f29c Mon Sep 17 00:00:00 2001 From: Eli Weiss Date: Thu, 2 Dec 2021 14:50:59 -0600 Subject: [PATCH 174/188] Improved documentation readability Improved documentation readability by rephrasing confusing sentences. Added Sitronix ST7789V datasheet link to SPI-LCD-driver.md for easier reference. --- doc/NavigationService.md | 4 ++-- doc/PinetimeStubWithNrf52DK.md | 12 ++++++------ doc/SPI-LCD-driver.md | 2 +- doc/SWD.md | 4 ++-- doc/ble.md | 4 ++-- doc/branches.md | 2 +- doc/openOCD.md | 10 +++++----- 7 files changed, 19 insertions(+), 19 deletions(-) diff --git a/doc/NavigationService.md b/doc/NavigationService.md index fd81d0bf..b24a03b7 100644 --- a/doc/NavigationService.md +++ b/doc/NavigationService.md @@ -1,6 +1,6 @@ # Navigation Service ## Introduction -The navigation ble service provides 4 characteristics to allow the the watch to display navigation instructions from a companion application. The intended purpose is when performing some outdoor activities, for example running or cycling. +The navigation ble service provides 4 characteristics to allow the the watch to display navigation instructions from a companion application. This service is intended to be used when performing some outdoor activities, for example running or cycling. The 4 characteristics are: flag (string) - Upcoming icon name @@ -22,7 +22,7 @@ This is a client supplied string describing the upcoming instruction such as "At This is a short string describing the distance to the upcoming instruction such as "50 m". ## Progress (UUID 00010004-78fc-48fe-8e23-433b3a1942d0) -The percent complete in a uint8. The watch displays this as an overall progress in a progress bar. +The percent complete in a uint8. The watch displays this as an overall progress in a progress bar. ## Full icon list * arrive diff --git a/doc/PinetimeStubWithNrf52DK.md b/doc/PinetimeStubWithNrf52DK.md index c4857921..e85bd554 100644 --- a/doc/PinetimeStubWithNrf52DK.md +++ b/doc/PinetimeStubWithNrf52DK.md @@ -1,11 +1,11 @@ # Build a stub for PineTime using NRF52-DK -[NRF52-DK](https://www.nordicsemi.com/Software-and-Tools/Development-Kits/nRF52-DK) is the official developpment kit for NRF52832 SoC from Nordic Semiconductor. +[NRF52-DK](https://www.nordicsemi.com/Software-and-Tools/Development-Kits/nRF52-DK) is the official developpment kit for the NRF52832 SoC from Nordic Semiconductor used in the PineTime. -It can be very useful for PineTime development: - * You can use it embedded JLink SWD programmer/debugger to program and debug you code on the PineTime - * As it's based on the same SoC than the PineTime, you can program it to actually run the same code than the PineTime. +This development kit can be very useful for PineTime development: + * You can use its embedded JLink SWD programmer/debugger to program and debug your code on the PineTime + * As it's based on the same SoC than the PineTime, you can program it to actually run the same code as the PineTime. -This page is about the 2nd point : we will build a stub that will allow us to run the same code than the one you could run on the PineTime. This will allow you to work more easily if you don't have a PineTime dev kit around, if you don't want to modify your dev kit for SWD programming, or if you want to use some feature from the DK (like power measurement). +This page is about the 2nd point : we will build a stub that will allow us to run the same code you can run on the PineTime. This will allow you to work more easily if you don't have a PineTime dev kit around, if you don't want to modify your dev kit for SWD programming, or if you want to use some feature from the NRF52-DK (like power measurement). This stub only implements the display, the button and the BLE radio. The other features from the pintime are missing: * heart rate sensor @@ -41,7 +41,7 @@ You just need to make the following connections: | P0.13 | Button IN (D3 in my case) | | GND | GND | -You also need to enable the I/O expander to disconnect pins from buttons and led on the NRF52-DK and leave them available on the pin headers: +You also need to enable the I/O expander to disconnect pins from the buttons and LED on the NRF52-DK and leave them available on the pin headers: | NRF52 -DK | NRF52- DK | | --------- | --------- | diff --git a/doc/SPI-LCD-driver.md b/doc/SPI-LCD-driver.md index f787aab7..29f3bbfa 100644 --- a/doc/SPI-LCD-driver.md +++ b/doc/SPI-LCD-driver.md @@ -1,6 +1,6 @@ # The SPI LCD driver ## Introduction -The LCD controller that drive the display of the Pinetime is the Sitronix ST7789V. This controller is easy to integrate with an MCU thanks to its SPI interface, and has some interesting features like: +The LCD controller that drives the display of the Pinetime is the [Sitronix ST7789V](https://wiki.pine64.org/images/5/54/ST7789V_v1.6.pdf). This controller is easy to integrate with an MCU thanks to its SPI interface, and has some interesting features like: - an on-chip display data RAM that can store the whole framebuffer - partial screen update - hardware assisted vertical scrolling diff --git a/doc/SWD.md b/doc/SWD.md index 4146e6ae..668eaa5c 100644 --- a/doc/SWD.md +++ b/doc/SWD.md @@ -4,9 +4,9 @@ Download the files **bootloader.bin**, **image-x.y.z.bin** and **pinetime-graphi ![Image file](imageFile.png) The bootloader reads a boot logo from the external SPI flash memory. The first step consists of flashing a tool in the MCU that will flash the boot logo into this SPI flash memory. This first step is optional but recommended (the bootloader will display garbage on screen for a few second if you don't do it). -Using your SWD tool, flash **pinetime-graphics-x.y.z.bin** at offset **0x0000**. Reset the MCU and wait for a few second, until the logo is completely drawn on the display. +Using your SWD tool, flash **pinetime-graphics-x.y.z.bin** at offset **0x0000**. Reset the MCU and wait for a few seconds until the logo is completely drawn on the display. -Then, using your SWD tool, flash those file at specific offset: +Then, using your SWD tool. Flash those file at specific offset: - bootloader.bin : **0x0000** - image-x.y.z.bin : **0x8000** diff --git a/doc/ble.md b/doc/ble.md index 314097d7..d2502636 100644 --- a/doc/ble.md +++ b/doc/ble.md @@ -120,11 +120,11 @@ Reading a value from the firmware version characteristic will yield a UTF-8 enco #### Battery Level -Reading from the battery level characteristic yields a single byte of data. This byte can be converted to an unsigned 8-bit integer which will be the battery percentage. This characteristic allows notify for updates as the value changes. +Reading from the battery level characteristic yields a single byte of data. This byte can be converted to an unsigned 8-bit integer which will be the battery percentage. This characteristic allows notifications for updates as the value changes. #### Heart Rate -Reading from the heart rate characteristic yields two bytes of data. I am not sure of the function of the first byte. It appears to always be zero. The second byte can be converted to an unsigned 8-bit integer which is the current heart rate. This characteristic also allows notify for updates as the value changes. +Reading from the heart rate characteristic yields two bytes of data. I am not sure of the function of the first byte. It appears to always be zero. The second byte can be converted to an unsigned 8-bit integer which is the current heart rate. This characteristic also allows notifications for updates as the value changes. --- diff --git a/doc/branches.md b/doc/branches.md index ef280f40..b06c10cc 100644 --- a/doc/branches.md +++ b/doc/branches.md @@ -9,4 +9,4 @@ New features should be implemented in **feature branches** created from **develo To release a new version of the application, when develop is considered stable, a **release** branch is created from **develop**. This can be considered as a *release candidate* branch. When everything is OK, this release branch is merged into **master** and the release is generated (a tag is applied to git, the release note is finalized, binaries are built,...) from **master**. -Git flow also supports the creation of **hotfix** branches when a bug is discovered in a released version. The **hotfix** branch is created from **master** and will be used only to implement a fix to this bug. Multiple hotfix branches can be created for the same release if more than one bugs are discovered. \ No newline at end of file +Git flow also supports the creation of **hotfix** branches when a bug is discovered in a released version. The **hotfix** branch is created from **master** and will be used only to implement a fix to this bug. Multiple hotfix branches can be created for the same release if multiple bugs are discovered. \ No newline at end of file diff --git a/doc/openOCD.md b/doc/openOCD.md index b3661cee..a7386e34 100644 --- a/doc/openOCD.md +++ b/doc/openOCD.md @@ -1,12 +1,12 @@ # OpenOCD and STLink OpenOCD (**Open O**n **C**hip **D**ebugger) is an open source tool that interfaces with many SWD/JTAG debugger to provide debugging and *in-system* programming for embedded target devices. -It supports the **NRF52** (the CPU of the PineTime) and the **STLinkV2**, a cheap SWD debugger. +OpenOCD supports the **NRF52** (the CPU of the PineTime) and the **STLinkV2**, a cheap SWD debugger. -It works on X86 computers, as well as ARM/ARM64 computers and SBC (like the RaspberryPi and Pine64 Pinebook Pro) ! +OpenOCD works on X86 computers, ARM/ARM64 computers, and SBCs (like the RaspberryPi and Pine64 Pinebook Pro)! ## Installation -We will build OpenOCD from sources, as packages from Linux distributions are most of the time outdated and do not support the NRF52 correctly. +We will build OpenOCD from sources, as packages from Linux distributions are often outdated and do not support the NRF52 correctly. - Fetch the sources from GIT, and build and install it: @@ -27,7 +27,7 @@ sudo cp contrib/60-openocd.rules /etc/udev/rules.d/ sudo udevadm control --reload-rules ``` - - You can now plug your STLinkV2 in a USB port and run OpenOCD to see if it's working correctly: + - You can now plug your STLinkV2 into a USB port and run OpenOCD to see if it's working correctly: ``` $ openocd -f interface/stlink.cfg -f target/nrf52.cfg @@ -63,7 +63,7 @@ gdb_breakpoint_override hard source [find target/nrf52.cfg] ``` -This file specifies to OpenOCD which debugger and target it will be connected to.. +This file specifies to OpenOCD which debugger and target it will be connected to. Then, we use various *user files* to use OpenOCD to flash InfiniTime binary files. From 97668c775bb5e501b32fce2fc92f4a5995aec1b1 Mon Sep 17 00:00:00 2001 From: Eli Weiss Date: Sun, 5 Dec 2021 10:41:01 -0600 Subject: [PATCH 175/188] Improved "Getting Started" readability Clarified ambiguous references, clarified phrasing --- doc/branches.md | 2 +- doc/code/Apps.md | 6 +++--- doc/code/Intro.md | 4 ++-- doc/gettingStarted/about-software.md | 10 +++++----- doc/gettingStarted/gettingStarted-1.0.md | 2 +- doc/gettingStarted/ota-gadgetbridge.md | 2 +- doc/openOCD.md | 2 +- 7 files changed, 14 insertions(+), 14 deletions(-) diff --git a/doc/branches.md b/doc/branches.md index b06c10cc..3c86375f 100644 --- a/doc/branches.md +++ b/doc/branches.md @@ -1,7 +1,7 @@ # Branches The branching model of this project is based on the workflow named [Git flow](https://nvie.com/posts/a-successful-git-branching-model/). -It is based on 2 main branches: +The project is based on 2 main branches: - **master** : this branch is always ready to be deployed. It means that at any time, we should be able to build the branch and release a new version of the application. - **develop** : this branch contains the latest development that will be integrated in the next release once it's considered as stable. diff --git a/doc/code/Apps.md b/doc/code/Apps.md index b1c7d20e..0e6d13cf 100644 --- a/doc/code/Apps.md +++ b/doc/code/Apps.md @@ -8,8 +8,8 @@ This page will teach you: The user interface of InfiniTime is made up of **screens**. Screens that are opened from the app launcher are considered **apps**. Every app in InfiniTime is it's own class. -An instance of the class is created when the app is launched and destroyed when the user exits the app. -They run inside the "displayapp" task (briefly discussed [here](./Intro.md)). +An instance of the class is created when the app is launched, and destroyed when the user exits the app. +Apps run inside the "displayapp" task (briefly discussed [here](./Intro.md)). Apps are responsible for everything drawn on the screen when they are running. By default, apps only do something (as in a function is executed) when they are created or when a touch event is detected. @@ -21,7 +21,7 @@ A destructor is needed to clean up LVGL and restore any changes (for example re- App classes can override `bool OnButtonPushed()`, `bool OnTouchEvent(TouchEvents event)` and `bool OnTouchEvent(uint16_t x, uint16_t y)` to implement their own functionality for those events. If an app only needs to display some text and do something upon a touch screen button press, it does not need to override any of these functions, as LVGL can also handle touch events for you. -If you have any doubts, you can always look at how the other apps are doing things. +If you have any doubts, you can always look at how the other apps function for examples. ### Continuous updating If your app needs to be updated continuously, you can do so by overriding the `Refresh()` function in your class diff --git a/doc/code/Intro.md b/doc/code/Intro.md index bf68c7a5..23b3ade1 100644 --- a/doc/code/Intro.md +++ b/doc/code/Intro.md @@ -24,9 +24,9 @@ There are also other tasks that are responsible for Bluetooth ("ll" and "ble" in and periodic tasks like heartrate measurements ([heartratetask/HeartRateTask.cpp](/src/heartratetask/HeartRateTask.cpp)). While it is possible for you to create your own task when you need it, it is recommended to just add functionality to `SystemTask::Work()` if possible. -If you absolutely need to create another task, try to guess how much [stack space](https://www.freertos.org/FAQMem.html#StackSize) (in words/4-byte packets) +If you absolutely need to create another task, try to estimate how much [stack space](https://www.freertos.org/FAQMem.html#StackSize) (in words/4-byte packets) it will need instead of just typing in a large-ish number. -You can use the define `configMINIMAL_STACK_SIZE` which is currently set to 120 words. +You can use `configMINIMAL_STACK_SIZE` which is currently set to 120 words. ## Controllers Controllers in InfiniTime are singleton objects that can provide access to certain resources to apps. diff --git a/doc/gettingStarted/about-software.md b/doc/gettingStarted/about-software.md index b19a610f..e935d938 100644 --- a/doc/gettingStarted/about-software.md +++ b/doc/gettingStarted/about-software.md @@ -12,15 +12,15 @@ InfiniTime has three distinct firmwares: **OTA** (**O**ver **T**he **A**ir) refers to updating of the firmware over BLE (**B**luetooth **L**ow **E**nergy). This is a functionality that allows the user to update the firmware on their device wirelessly. -**DFU** (**D**evice **F**irmware **U**pdate) is the file format and protocol used to send the update of the firmware to the watch over-the-air. InfiniTime implement the (legacy) DFU protocol from Nordic Semiconductor (NRF). +**DFU** (**D**evice **F**irmware **U**pdate) is the file format and protocol used to send the update of the firmware to the watch over-the-air. InfiniTime implements the (legacy) DFU protocol from Nordic Semiconductor (NRF). ## Bootloader -Most of the time, the bootloader just runs without your intervention (update and load the firmware). +Most of the time, the bootloader just runs without your intervention (updating and loading the firmware). -However, you can enable 2 functionalities using the push button: +However, you can use the bootloader to rollback to the previous firmware, or load the recovery firmware using the push button: - - Push the button until the pine cone is drawn in **blue** to force the rollback of the previous version of the firmware, even if you've already validated the updated one - - Push the button until the pine cone is drawn in **red** to load the recovery firmware. This recovery firmware only provides BLE connectivity and OTA functionality. + - Press and hold the button until the pine cone is drawn in **blue** to force the rollback of the previous version of the firmware, even if you've already validated the current one. + - Press and hold the button until the pine cone is drawn in **red** to load the recovery firmware. This recovery firmware only provides BLE connectivity and OTA functionality. More info about the bootloader in [its project page](https://github.com/JF002/pinetime-mcuboot-bootloader/blob/master/README.md). diff --git a/doc/gettingStarted/gettingStarted-1.0.md b/doc/gettingStarted/gettingStarted-1.0.md index 30b8bdb0..890164fe 100644 --- a/doc/gettingStarted/gettingStarted-1.0.md +++ b/doc/gettingStarted/gettingStarted-1.0.md @@ -18,7 +18,7 @@ You can sync the time using companion apps. You can also set the time in the settings without a companion app. (version >1.7.0) -InfiniTime doesn't handle daylight savings automatically, so make sure to set the correct the time or sync it with a companion app +InfiniTime doesn't handle daylight savings automatically, so make sure to set the correct the time or sync it with a companion app. ### Digital watch face diff --git a/doc/gettingStarted/ota-gadgetbridge.md b/doc/gettingStarted/ota-gadgetbridge.md index 022b5e4d..fe26c03b 100644 --- a/doc/gettingStarted/ota-gadgetbridge.md +++ b/doc/gettingStarted/ota-gadgetbridge.md @@ -18,7 +18,7 @@ Now that Gadgetbridge is connected to your PineTime, use a file browser applicat ![Gadgetbridge 3](gadgetbridge3.jpg) -Read carefully the warning and tap **Install**: +Read the warning carefully and tap **Install**: ![Gadgetbridge 4](gadgetbridge4.jpg) diff --git a/doc/openOCD.md b/doc/openOCD.md index a7386e34..df24b30b 100644 --- a/doc/openOCD.md +++ b/doc/openOCD.md @@ -6,7 +6,7 @@ OpenOCD supports the **NRF52** (the CPU of the PineTime) and the **STLinkV2**, a OpenOCD works on X86 computers, ARM/ARM64 computers, and SBCs (like the RaspberryPi and Pine64 Pinebook Pro)! ## Installation -We will build OpenOCD from sources, as packages from Linux distributions are often outdated and do not support the NRF52 correctly. +We will build OpenOCD from sources, as packages from Linux distributions are most of the time outdated and do not support the NRF52 properly. - Fetch the sources from GIT, and build and install it: From ab059b90044981b0feb3f37201fcf6635d2c4e1f Mon Sep 17 00:00:00 2001 From: Eli Weiss Date: Sun, 5 Dec 2021 14:04:35 -0600 Subject: [PATCH 176/188] Revised documentation --- doc/NavigationService.md | 2 +- doc/PinetimeStubWithNrf52DK.md | 2 +- doc/SWD.md | 2 +- doc/code/Apps.md | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/doc/NavigationService.md b/doc/NavigationService.md index b24a03b7..5a4f69e0 100644 --- a/doc/NavigationService.md +++ b/doc/NavigationService.md @@ -1,6 +1,6 @@ # Navigation Service ## Introduction -The navigation ble service provides 4 characteristics to allow the the watch to display navigation instructions from a companion application. This service is intended to be used when performing some outdoor activities, for example running or cycling. +The navigation ble service provides 4 characteristics to allow the watch to display navigation instructions from a companion application. This service is intended to be used when performing some outdoor activities, for example running or cycling. The 4 characteristics are: flag (string) - Upcoming icon name diff --git a/doc/PinetimeStubWithNrf52DK.md b/doc/PinetimeStubWithNrf52DK.md index e85bd554..dcaad69b 100644 --- a/doc/PinetimeStubWithNrf52DK.md +++ b/doc/PinetimeStubWithNrf52DK.md @@ -5,7 +5,7 @@ This development kit can be very useful for PineTime development: * You can use its embedded JLink SWD programmer/debugger to program and debug your code on the PineTime * As it's based on the same SoC than the PineTime, you can program it to actually run the same code as the PineTime. -This page is about the 2nd point : we will build a stub that will allow us to run the same code you can run on the PineTime. This will allow you to work more easily if you don't have a PineTime dev kit around, if you don't want to modify your dev kit for SWD programming, or if you want to use some feature from the NRF52-DK (like power measurement). +This page is about the 2nd point. We will build a stub that will allow us to run the same code you can run on the PineTime. This will allow you to work more easily if you don't have a PineTime dev kit around, if you don't want to modify your dev kit for SWD programming, or if you want to use some feature from the NRF52-DK (like power measurement). This stub only implements the display, the button and the BLE radio. The other features from the pintime are missing: * heart rate sensor diff --git a/doc/SWD.md b/doc/SWD.md index 668eaa5c..155983b3 100644 --- a/doc/SWD.md +++ b/doc/SWD.md @@ -6,7 +6,7 @@ Download the files **bootloader.bin**, **image-x.y.z.bin** and **pinetime-graphi The bootloader reads a boot logo from the external SPI flash memory. The first step consists of flashing a tool in the MCU that will flash the boot logo into this SPI flash memory. This first step is optional but recommended (the bootloader will display garbage on screen for a few second if you don't do it). Using your SWD tool, flash **pinetime-graphics-x.y.z.bin** at offset **0x0000**. Reset the MCU and wait for a few seconds until the logo is completely drawn on the display. -Then, using your SWD tool. Flash those file at specific offset: +Then, using your SWD tool, flash these file at the following offsets: - bootloader.bin : **0x0000** - image-x.y.z.bin : **0x8000** diff --git a/doc/code/Apps.md b/doc/code/Apps.md index 0e6d13cf..f067b58b 100644 --- a/doc/code/Apps.md +++ b/doc/code/Apps.md @@ -21,7 +21,7 @@ A destructor is needed to clean up LVGL and restore any changes (for example re- App classes can override `bool OnButtonPushed()`, `bool OnTouchEvent(TouchEvents event)` and `bool OnTouchEvent(uint16_t x, uint16_t y)` to implement their own functionality for those events. If an app only needs to display some text and do something upon a touch screen button press, it does not need to override any of these functions, as LVGL can also handle touch events for you. -If you have any doubts, you can always look at how the other apps function for examples. +If you have any doubts, you can always look at how the other apps function for reference. ### Continuous updating If your app needs to be updated continuously, you can do so by overriding the `Refresh()` function in your class From fb1946b06ec8fcdeca0936e3ac0f0ed36bd42e9a Mon Sep 17 00:00:00 2001 From: Eli Weiss Date: Wed, 15 Dec 2021 13:29:39 -0500 Subject: [PATCH 177/188] Update .gitignore --- .gitignore | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/.gitignore b/.gitignore index 39fb672b..0474017b 100644 --- a/.gitignore +++ b/.gitignore @@ -43,3 +43,7 @@ Testing/Temporary/ #VSCODE .vscode/.cortex-debug.registers.state.json .vscode/.cortex-debug.peripherals.state.json + +#build files +src/nRF5_SDK_15.3.0_59ac345 +src/arm-none-eabi From 5b7915b5c9474ba74f7d31eae5e62c5d4793b0f6 Mon Sep 17 00:00:00 2001 From: Reinhold Gschweicher Date: Wed, 13 Oct 2021 23:35:54 +0200 Subject: [PATCH 178/188] InfiniPaint: add missing include algorithm for std::fill --- src/displayapp/screens/InfiniPaint.cpp | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/displayapp/screens/InfiniPaint.cpp b/src/displayapp/screens/InfiniPaint.cpp index 93c3c4a0..d279fafc 100644 --- a/src/displayapp/screens/InfiniPaint.cpp +++ b/src/displayapp/screens/InfiniPaint.cpp @@ -2,6 +2,8 @@ #include "displayapp/DisplayApp.h" #include "displayapp/LittleVgl.h" +#include // std::fill + using namespace Pinetime::Applications::Screens; InfiniPaint::InfiniPaint(Pinetime::Applications::DisplayApp* app, From 86d180a85590f742f2f8e27ce2751e988f194245 Mon Sep 17 00:00:00 2001 From: Riku Isokoski Date: Mon, 4 Oct 2021 11:13:45 +0300 Subject: [PATCH 179/188] Improve gesture consistency across the firmware --- src/displayapp/screens/Metronome.cpp | 14 ++++++++++++++ src/displayapp/screens/Metronome.h | 2 ++ src/displayapp/screens/Music.cpp | 14 ++++++++------ 3 files changed, 24 insertions(+), 6 deletions(-) diff --git a/src/displayapp/screens/Metronome.cpp b/src/displayapp/screens/Metronome.cpp index 8347e1bb..6b6ad2c6 100644 --- a/src/displayapp/screens/Metronome.cpp +++ b/src/displayapp/screens/Metronome.cpp @@ -113,9 +113,15 @@ void Metronome::OnEvent(lv_obj_t* obj, lv_event_t event) { lv_label_set_text_fmt(bpmValue, "%03d", bpm); } tappedTime = xTaskGetTickCount(); + allowExit = true; } break; } + case LV_EVENT_RELEASED: + case LV_EVENT_PRESS_LOST: + if (obj == bpmTap) { + allowExit = false; + } case LV_EVENT_CLICKED: { if (obj == playPause) { metronomeStarted = !metronomeStarted; @@ -135,3 +141,11 @@ void Metronome::OnEvent(lv_obj_t* obj, lv_event_t event) { break; } } + +bool Metronome::OnTouchEvent(TouchEvents event) { + if (event == TouchEvents::SwipeDown && allowExit) { + running = false; + return true; + } + return false; +} diff --git a/src/displayapp/screens/Metronome.h b/src/displayapp/screens/Metronome.h index 373c884c..6e6589fe 100644 --- a/src/displayapp/screens/Metronome.h +++ b/src/displayapp/screens/Metronome.h @@ -14,6 +14,7 @@ namespace Pinetime { ~Metronome() override; void Refresh() override; void OnEvent(lv_obj_t* obj, lv_event_t event); + bool OnTouchEvent(TouchEvents event) override; private: TickType_t startTime = 0; @@ -25,6 +26,7 @@ namespace Pinetime { uint8_t counter = 1; bool metronomeStarted = false; + bool allowExit = false; lv_obj_t *bpmArc, *bpmTap, *bpmValue; lv_obj_t *bpbDropdown, *currentBpbText; diff --git a/src/displayapp/screens/Music.cpp b/src/displayapp/screens/Music.cpp index 8a01a6fe..9f17b956 100644 --- a/src/displayapp/screens/Music.cpp +++ b/src/displayapp/screens/Music.cpp @@ -277,12 +277,14 @@ bool Music::OnTouchEvent(Pinetime::Applications::TouchEvents event) { return true; } case TouchEvents::SwipeDown: { - lv_obj_set_hidden(btnNext, false); - lv_obj_set_hidden(btnPrev, false); - - lv_obj_set_hidden(btnVolDown, true); - lv_obj_set_hidden(btnVolUp, true); - return true; + if (lv_obj_get_hidden(btnNext)) { + lv_obj_set_hidden(btnNext, false); + lv_obj_set_hidden(btnPrev, false); + lv_obj_set_hidden(btnVolDown, true); + lv_obj_set_hidden(btnVolUp, true); + return true; + } + return false; } case TouchEvents::SwipeLeft: { musicService.event(Controllers::MusicService::EVENT_MUSIC_NEXT); From 54f588ce6314708f50cc4cff96d8d3d921733dee Mon Sep 17 00:00:00 2001 From: Riku Isokoski Date: Mon, 4 Oct 2021 11:32:50 +0300 Subject: [PATCH 180/188] Add missing break --- src/displayapp/screens/Metronome.cpp | 1 + 1 file changed, 1 insertion(+) diff --git a/src/displayapp/screens/Metronome.cpp b/src/displayapp/screens/Metronome.cpp index 6b6ad2c6..f6f269dc 100644 --- a/src/displayapp/screens/Metronome.cpp +++ b/src/displayapp/screens/Metronome.cpp @@ -122,6 +122,7 @@ void Metronome::OnEvent(lv_obj_t* obj, lv_event_t event) { if (obj == bpmTap) { allowExit = false; } + break; case LV_EVENT_CLICKED: { if (obj == playPause) { metronomeStarted = !metronomeStarted; From 51d2888b52cb5d8563426954ac4b06679314cee5 Mon Sep 17 00:00:00 2001 From: Jackson Date: Mon, 29 Nov 2021 12:54:30 -0500 Subject: [PATCH 181/188] Switch CI/CD to build using ninja vs. make By switching the CI/CD workflow to use CMake's `ninja` backend, the build time goes down considerably (~4.5 minutes to ~2) compared to GNU Make --- .github/workflows/main.yml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 3b753a37..ac0611cb 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -113,7 +113,7 @@ jobs: run: | mkdir -p build cd build - cmake -DARM_NONE_EABI_TOOLCHAIN_PATH=${{ runner.temp }}/arm-none-eabi -DNRF5_SDK_PATH=${{ runner.temp }}/nrf5_sdk -DUSE_OPENOCD=1 -DBUILD_DFU=1 ../ + cmake -G Ninja -DARM_NONE_EABI_TOOLCHAIN_PATH=${{ runner.temp }}/arm-none-eabi -DNRF5_SDK_PATH=${{ runner.temp }}/nrf5_sdk -DUSE_OPENOCD=1 -DBUILD_DFU=1 ../ ######################################################################################### # Make and Upload DFU Package @@ -126,7 +126,7 @@ jobs: - name: Make pinetime-mcuboot-app run: | cd build - make pinetime-mcuboot-app + ninja pinetime-mcuboot-app - name: Unzip DFU package run: | @@ -145,7 +145,7 @@ jobs: - name: Make pinetime-app run: | cd build - make pinetime-app + ninja pinetime-app - name: Upload standalone firmware uses: actions/upload-artifact@v2 @@ -159,7 +159,7 @@ jobs: - name: Make pinetime-recovery run: | cd build - make pinetime-recovery + ninja pinetime-recovery ######################################################################################### # Finish From baa5954724a91b81e35812ffd1939438689f3446 Mon Sep 17 00:00:00 2001 From: Jackson Date: Tue, 7 Dec 2021 15:38:53 -0500 Subject: [PATCH 182/188] Use CMake universal build command Rather than using generator-specific build commands (ex. `make` or `ninja`), the CI build now uses `cmake --build` for a more modern, best practices approach. --- .github/workflows/main.yml | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index ac0611cb..58a63931 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -125,8 +125,7 @@ jobs: - name: Make pinetime-mcuboot-app run: | - cd build - ninja pinetime-mcuboot-app + cmake --build build --target pinetime-mcuboot-app - name: Unzip DFU package run: | @@ -144,8 +143,7 @@ jobs: - name: Make pinetime-app run: | - cd build - ninja pinetime-app + cmake --build build --target pinetime-app - name: Upload standalone firmware uses: actions/upload-artifact@v2 @@ -158,8 +156,7 @@ jobs: - name: Make pinetime-recovery run: | - cd build - ninja pinetime-recovery + cmake --build build --target pinetime-recovery ######################################################################################### # Finish From d034bd131e11fd2a2ab33058991802aab7cfa305 Mon Sep 17 00:00:00 2001 From: Stephanie Date: Tue, 19 Oct 2021 23:42:48 -0400 Subject: [PATCH 183/188] Added "lap" button to step counter --- src/components/motion/MotionController.h | 7 ++++ src/displayapp/screens/Steps.cpp | 52 ++++++++++++++++++++---- src/displayapp/screens/Steps.h | 6 +++ 3 files changed, 57 insertions(+), 8 deletions(-) diff --git a/src/components/motion/MotionController.h b/src/components/motion/MotionController.h index c72d8a4a..3b4d78b8 100644 --- a/src/components/motion/MotionController.h +++ b/src/components/motion/MotionController.h @@ -28,6 +28,12 @@ namespace Pinetime { uint32_t NbSteps() const { return nbSteps; } + void SetPrevTotalSteps(uint32_t steps) { + stepsAtLastLap = steps; + } + uint32_t GetPrevTotalSteps() const { + return stepsAtLastLap; + } bool ShouldWakeUp(bool isSleeping); void IsSensorOk(bool isOk); @@ -44,6 +50,7 @@ namespace Pinetime { private: uint32_t nbSteps; + uint32_t stepsAtLastLap = 0; int16_t x; int16_t y; int16_t z; diff --git a/src/displayapp/screens/Steps.cpp b/src/displayapp/screens/Steps.cpp index 916138ed..572b9fb7 100644 --- a/src/displayapp/screens/Steps.cpp +++ b/src/displayapp/screens/Steps.cpp @@ -5,6 +5,11 @@ using namespace Pinetime::Applications::Screens; +static void lap_event_handler(lv_obj_t* obj, lv_event_t event) { + auto* steps = static_cast(obj->user_data); + steps->lapBtnEventHandler(event); +} + Steps::Steps(Pinetime::Applications::DisplayApp* app, Controllers::MotionController& motionController, Controllers::Settings& settingsController) @@ -17,30 +22,31 @@ Steps::Steps(Pinetime::Applications::DisplayApp* app, 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_obj_set_size(stepsArc, 200, 200); lv_arc_set_range(stepsArc, 0, 500); - lv_obj_align(stepsArc, nullptr, LV_ALIGN_CENTER, 0, 0); + lv_obj_align(stepsArc, nullptr, LV_ALIGN_CENTER, 0, -20); stepsCount = motionController.NbSteps(); + currentLapSteps = stepsCount - motionController.GetPrevTotalSteps(); lv_arc_set_value(stepsArc, int16_t(500 * stepsCount / settingsController.GetStepsGoal())); 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_align(lSteps, nullptr, LV_ALIGN_CENTER, 0, -20); + lv_label_set_text_fmt(lSteps, "%li", currentLapSteps); + lv_obj_align(lSteps, nullptr, LV_ALIGN_CENTER, 0, -40); 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_obj_align(lstepsL, lSteps, LV_ALIGN_OUT_BOTTOM_MID, 0, 10); + lv_obj_align(lstepsL, lSteps, LV_ALIGN_OUT_BOTTOM_MID, 0, 5); 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%lu", settingsController.GetStepsGoal()); lv_label_set_align(lstepsGoal, LV_LABEL_ALIGN_CENTER); - lv_obj_align(lstepsGoal, lSteps, LV_ALIGN_OUT_BOTTOM_MID, 0, 60); + lv_obj_align(lstepsGoal, lSteps, LV_ALIGN_OUT_BOTTOM_MID, 0, 30); lv_obj_t* backgroundLabel = lv_label_create(lv_scr_act(), nullptr); lv_label_set_long_mode(backgroundLabel, LV_LABEL_LONG_CROP); @@ -48,6 +54,22 @@ Steps::Steps(Pinetime::Applications::DisplayApp* app, lv_obj_set_pos(backgroundLabel, 0, 0); lv_label_set_text_static(backgroundLabel, ""); + btnLap = lv_btn_create(lv_scr_act(), nullptr); + btnLap->user_data = this; + lv_obj_set_event_cb(btnLap, lap_event_handler); + lv_obj_set_height(btnLap, 50); + lv_obj_set_width(btnLap, 115); + lv_obj_align(btnLap, lv_scr_act(), LV_ALIGN_IN_BOTTOM_LEFT, 0, 0); + lv_obj_set_style_local_bg_color(btnLap, LV_BTN_PART_MAIN, LV_STATE_DISABLED, lv_color_hex(0x080808)); + txtLap = lv_label_create(btnLap, nullptr); + lv_obj_set_style_local_text_color(btnLap, LV_BTN_PART_MAIN, LV_STATE_DISABLED, lv_color_hex(0x888888)); + lv_label_set_text(txtLap, Symbols::lapsFlag); + + totalStepsText = lv_label_create(lv_scr_act(), nullptr); + lv_obj_set_style_local_text_color(totalStepsText, LV_LABEL_PART_MAIN, LV_STATE_DEFAULT, LV_COLOR_YELLOW); + lv_label_set_text_fmt(totalStepsText, "Total\n%li", motionController.GetPrevTotalSteps()); + lv_obj_align(totalStepsText, lv_scr_act(), LV_ALIGN_IN_BOTTOM_RIGHT, 0, 0); + taskRefresh = lv_task_create(RefreshTaskCallback, 100, LV_TASK_PRIO_MID, this); } @@ -58,9 +80,23 @@ Steps::~Steps() { void Steps::Refresh() { stepsCount = motionController.NbSteps(); + currentLapSteps = stepsCount - motionController.GetPrevTotalSteps(); - lv_label_set_text_fmt(lSteps, "%li", stepsCount); - lv_obj_align(lSteps, nullptr, LV_ALIGN_CENTER, 0, -20); + lv_label_set_text_fmt(lSteps, "%li", currentLapSteps); + lv_obj_align(lSteps, nullptr, LV_ALIGN_CENTER, 0, -40); + + lv_label_set_text_fmt(totalStepsText, "Total\n%li", stepsCount); + lv_obj_align(totalStepsText, lv_scr_act(), LV_ALIGN_IN_BOTTOM_RIGHT, 0, 0); lv_arc_set_value(stepsArc, int16_t(500 * stepsCount / settingsController.GetStepsGoal())); } + +void Steps::lapBtnEventHandler(lv_event_t event) { + if (event != LV_EVENT_CLICKED) { + return; + } + stepsCount = motionController.NbSteps(); + motionController.SetPrevTotalSteps(stepsCount); + Refresh(); +} + diff --git a/src/displayapp/screens/Steps.h b/src/displayapp/screens/Steps.h index 68daf16d..08f8ea25 100644 --- a/src/displayapp/screens/Steps.h +++ b/src/displayapp/screens/Steps.h @@ -20,14 +20,20 @@ namespace Pinetime { ~Steps() override; void Refresh() override; + void lapBtnEventHandler(lv_event_t event); private: Controllers::MotionController& motionController; Controllers::Settings& settingsController; + uint32_t currentLapSteps = 0; + lv_obj_t* lSteps; lv_obj_t* lStepsIcon; lv_obj_t* stepsArc; + lv_obj_t* btnLap; + lv_obj_t* txtLap; + lv_obj_t* totalStepsText; uint32_t stepsCount; From fb87fdb2d9720ce1bca2c4920b859658a6480167 Mon Sep 17 00:00:00 2001 From: Stephanie Date: Wed, 20 Oct 2021 14:29:10 -0400 Subject: [PATCH 184/188] Changed lap counter to trip meter --- src/components/motion/MotionController.h | 10 ++-- src/displayapp/screens/Steps.cpp | 58 ++++++++++++++---------- src/displayapp/screens/Steps.h | 8 ++-- 3 files changed, 43 insertions(+), 33 deletions(-) diff --git a/src/components/motion/MotionController.h b/src/components/motion/MotionController.h index 3b4d78b8..aea82f76 100644 --- a/src/components/motion/MotionController.h +++ b/src/components/motion/MotionController.h @@ -28,11 +28,11 @@ namespace Pinetime { uint32_t NbSteps() const { return nbSteps; } - void SetPrevTotalSteps(uint32_t steps) { - stepsAtLastLap = steps; + void SetTripSteps(uint32_t steps) { + stepsAtLastTrip = steps; } - uint32_t GetPrevTotalSteps() const { - return stepsAtLastLap; + uint32_t GetTripSteps() const { + return stepsAtLastTrip; } bool ShouldWakeUp(bool isSleeping); @@ -50,7 +50,7 @@ namespace Pinetime { private: uint32_t nbSteps; - uint32_t stepsAtLastLap = 0; + uint32_t stepsAtLastTrip = 0; int16_t x; int16_t y; int16_t z; diff --git a/src/displayapp/screens/Steps.cpp b/src/displayapp/screens/Steps.cpp index 572b9fb7..5d8c3861 100644 --- a/src/displayapp/screens/Steps.cpp +++ b/src/displayapp/screens/Steps.cpp @@ -22,19 +22,19 @@ Steps::Steps(Pinetime::Applications::DisplayApp* app, 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, 200, 200); + lv_obj_set_size(stepsArc, 240, 240); lv_arc_set_range(stepsArc, 0, 500); - lv_obj_align(stepsArc, nullptr, LV_ALIGN_CENTER, 0, -20); + lv_obj_align(stepsArc, nullptr, LV_ALIGN_CENTER, 0, 0); stepsCount = motionController.NbSteps(); - currentLapSteps = stepsCount - motionController.GetPrevTotalSteps(); + currentTripSteps = stepsCount - motionController.GetTripSteps(); lv_arc_set_value(stepsArc, int16_t(500 * stepsCount / settingsController.GetStepsGoal())); 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", currentLapSteps); + lv_label_set_text_fmt(lSteps, "%li", stepsCount); lv_obj_align(lSteps, nullptr, LV_ALIGN_CENTER, 0, -40); lv_obj_t* lstepsL = lv_label_create(lv_scr_act(), nullptr); @@ -44,7 +44,7 @@ Steps::Steps(Pinetime::Applications::DisplayApp* app, 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%lu", settingsController.GetStepsGoal()); + lv_label_set_text_fmt(lstepsGoal, "Goal: %lu", settingsController.GetStepsGoal()); lv_label_set_align(lstepsGoal, LV_LABEL_ALIGN_CENTER); lv_obj_align(lstepsGoal, lSteps, LV_ALIGN_OUT_BOTTOM_MID, 0, 30); @@ -54,21 +54,27 @@ Steps::Steps(Pinetime::Applications::DisplayApp* app, lv_obj_set_pos(backgroundLabel, 0, 0); lv_label_set_text_static(backgroundLabel, ""); - btnLap = lv_btn_create(lv_scr_act(), nullptr); - btnLap->user_data = this; - lv_obj_set_event_cb(btnLap, lap_event_handler); - lv_obj_set_height(btnLap, 50); - lv_obj_set_width(btnLap, 115); - lv_obj_align(btnLap, lv_scr_act(), LV_ALIGN_IN_BOTTOM_LEFT, 0, 0); - lv_obj_set_style_local_bg_color(btnLap, LV_BTN_PART_MAIN, LV_STATE_DISABLED, lv_color_hex(0x080808)); - txtLap = lv_label_create(btnLap, nullptr); - lv_obj_set_style_local_text_color(btnLap, LV_BTN_PART_MAIN, LV_STATE_DISABLED, lv_color_hex(0x888888)); - lv_label_set_text(txtLap, Symbols::lapsFlag); + btnTrip = lv_btn_create(lv_scr_act(), nullptr); + btnTrip->user_data = this; + lv_obj_set_event_cb(btnTrip, lap_event_handler); + lv_obj_set_height(btnTrip, 50); + lv_obj_set_width(btnTrip, 115); + lv_obj_align(btnTrip, lv_scr_act(), LV_ALIGN_IN_BOTTOM_MID, 0, 0); + lv_obj_set_style_local_bg_color(btnTrip, LV_BTN_PART_MAIN, LV_STATE_DISABLED, lv_color_hex(0x080808)); + txtTrip = lv_label_create(btnTrip, nullptr); + lv_obj_set_style_local_text_color(btnTrip, LV_BTN_PART_MAIN, LV_STATE_DISABLED, lv_color_hex(0x888888)); + lv_label_set_text(txtTrip, "Reset"); - totalStepsText = lv_label_create(lv_scr_act(), nullptr); - lv_obj_set_style_local_text_color(totalStepsText, LV_LABEL_PART_MAIN, LV_STATE_DEFAULT, LV_COLOR_YELLOW); - lv_label_set_text_fmt(totalStepsText, "Total\n%li", motionController.GetPrevTotalSteps()); - lv_obj_align(totalStepsText, lv_scr_act(), LV_ALIGN_IN_BOTTOM_RIGHT, 0, 0); + if(stepsCount >= motionController.GetTripSteps()){ + currentTripSteps = stepsCount - motionController.GetTripSteps(); + } else { + currentTripSteps = stepsCount + motionController.GetTripSteps(); + } + + tripText = lv_label_create(lv_scr_act(), nullptr); + lv_obj_set_style_local_text_color(tripText, LV_LABEL_PART_MAIN, LV_STATE_DEFAULT, LV_COLOR_YELLOW); + lv_label_set_text_fmt(tripText, "Trip: %li", currentTripSteps); + lv_obj_align(tripText, lSteps, LV_ALIGN_OUT_BOTTOM_MID, 0, 50); taskRefresh = lv_task_create(RefreshTaskCallback, 100, LV_TASK_PRIO_MID, this); } @@ -80,13 +86,17 @@ Steps::~Steps() { void Steps::Refresh() { stepsCount = motionController.NbSteps(); - currentLapSteps = stepsCount - motionController.GetPrevTotalSteps(); + if(stepsCount >= motionController.GetTripSteps()){ + currentTripSteps = stepsCount - motionController.GetTripSteps(); + } else { + currentTripSteps = stepsCount + motionController.GetTripSteps(); + } - lv_label_set_text_fmt(lSteps, "%li", currentLapSteps); + lv_label_set_text_fmt(lSteps, "%li", stepsCount); lv_obj_align(lSteps, nullptr, LV_ALIGN_CENTER, 0, -40); - lv_label_set_text_fmt(totalStepsText, "Total\n%li", stepsCount); - lv_obj_align(totalStepsText, lv_scr_act(), LV_ALIGN_IN_BOTTOM_RIGHT, 0, 0); + lv_label_set_text_fmt(tripText, "Trip: %li", currentTripSteps); + lv_obj_align(tripText, lSteps, LV_ALIGN_OUT_BOTTOM_MID, 0, 50); lv_arc_set_value(stepsArc, int16_t(500 * stepsCount / settingsController.GetStepsGoal())); } @@ -96,7 +106,7 @@ void Steps::lapBtnEventHandler(lv_event_t event) { return; } stepsCount = motionController.NbSteps(); - motionController.SetPrevTotalSteps(stepsCount); + motionController.SetTripSteps(stepsCount); Refresh(); } diff --git a/src/displayapp/screens/Steps.h b/src/displayapp/screens/Steps.h index 08f8ea25..3510c500 100644 --- a/src/displayapp/screens/Steps.h +++ b/src/displayapp/screens/Steps.h @@ -26,14 +26,14 @@ namespace Pinetime { Controllers::MotionController& motionController; Controllers::Settings& settingsController; - uint32_t currentLapSteps = 0; + uint32_t currentTripSteps = 0; lv_obj_t* lSteps; lv_obj_t* lStepsIcon; lv_obj_t* stepsArc; - lv_obj_t* btnLap; - lv_obj_t* txtLap; - lv_obj_t* totalStepsText; + lv_obj_t* btnTrip; + lv_obj_t* txtTrip; + lv_obj_t* tripText; uint32_t stepsCount; From f7d1b3f36847bcbd0699feeb8515bb6517690066 Mon Sep 17 00:00:00 2001 From: Stephanie Date: Thu, 21 Oct 2021 23:37:35 -0400 Subject: [PATCH 185/188] Moved trip meter update to MotionController and changed trip meter logic --- src/components/motion/MotionController.cpp | 4 ++++ src/components/motion/MotionController.h | 10 ++++++---- src/displayapp/screens/Steps.cpp | 14 +++----------- 3 files changed, 13 insertions(+), 15 deletions(-) diff --git a/src/components/motion/MotionController.cpp b/src/components/motion/MotionController.cpp index cae49105..59114f4c 100644 --- a/src/components/motion/MotionController.cpp +++ b/src/components/motion/MotionController.cpp @@ -14,7 +14,11 @@ void MotionController::Update(int16_t x, int16_t y, int16_t z, uint32_t nbSteps) this->x = x; this->y = y; this->z = z; + deltaSteps = nbSteps - this->nbSteps; this->nbSteps = nbSteps; + if(deltaSteps > 0){ + currentTripSteps += deltaSteps; + } } bool MotionController::ShouldWakeUp(bool isSleeping) { diff --git a/src/components/motion/MotionController.h b/src/components/motion/MotionController.h index aea82f76..17bdc52e 100644 --- a/src/components/motion/MotionController.h +++ b/src/components/motion/MotionController.h @@ -28,11 +28,12 @@ namespace Pinetime { uint32_t NbSteps() const { return nbSteps; } - void SetTripSteps(uint32_t steps) { - stepsAtLastTrip = steps; + + void ResetTrip() { + currentTripSteps = 0; } uint32_t GetTripSteps() const { - return stepsAtLastTrip; + return currentTripSteps; } bool ShouldWakeUp(bool isSleeping); @@ -50,7 +51,8 @@ namespace Pinetime { private: uint32_t nbSteps; - uint32_t stepsAtLastTrip = 0; + int32_t deltaSteps = 0; + uint32_t currentTripSteps = 0; int16_t x; int16_t y; int16_t z; diff --git a/src/displayapp/screens/Steps.cpp b/src/displayapp/screens/Steps.cpp index 5d8c3861..cb1297b6 100644 --- a/src/displayapp/screens/Steps.cpp +++ b/src/displayapp/screens/Steps.cpp @@ -65,11 +65,7 @@ Steps::Steps(Pinetime::Applications::DisplayApp* app, lv_obj_set_style_local_text_color(btnTrip, LV_BTN_PART_MAIN, LV_STATE_DISABLED, lv_color_hex(0x888888)); lv_label_set_text(txtTrip, "Reset"); - if(stepsCount >= motionController.GetTripSteps()){ - currentTripSteps = stepsCount - motionController.GetTripSteps(); - } else { - currentTripSteps = stepsCount + motionController.GetTripSteps(); - } + currentTripSteps = motionController.GetTripSteps(); tripText = lv_label_create(lv_scr_act(), nullptr); lv_obj_set_style_local_text_color(tripText, LV_LABEL_PART_MAIN, LV_STATE_DEFAULT, LV_COLOR_YELLOW); @@ -86,11 +82,7 @@ Steps::~Steps() { void Steps::Refresh() { stepsCount = motionController.NbSteps(); - if(stepsCount >= motionController.GetTripSteps()){ - currentTripSteps = stepsCount - motionController.GetTripSteps(); - } else { - currentTripSteps = stepsCount + motionController.GetTripSteps(); - } + currentTripSteps = motionController.GetTripSteps(); lv_label_set_text_fmt(lSteps, "%li", stepsCount); lv_obj_align(lSteps, nullptr, LV_ALIGN_CENTER, 0, -40); @@ -106,7 +98,7 @@ void Steps::lapBtnEventHandler(lv_event_t event) { return; } stepsCount = motionController.NbSteps(); - motionController.SetTripSteps(stepsCount); + motionController.ResetTrip(); Refresh(); } From 7eff1dbcc631c41e05b372e993383be3554f348c Mon Sep 17 00:00:00 2001 From: Stephanie Date: Fri, 22 Oct 2021 19:21:51 -0400 Subject: [PATCH 186/188] Changed text to left pad --- src/displayapp/screens/Steps.cpp | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/src/displayapp/screens/Steps.cpp b/src/displayapp/screens/Steps.cpp index cb1297b6..ea11ca6d 100644 --- a/src/displayapp/screens/Steps.cpp +++ b/src/displayapp/screens/Steps.cpp @@ -44,9 +44,9 @@ Steps::Steps(Pinetime::Applications::DisplayApp* app, 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: %lu", settingsController.GetStepsGoal()); + lv_label_set_text_fmt(lstepsGoal, "Goal: %5lu", settingsController.GetStepsGoal()); lv_label_set_align(lstepsGoal, LV_LABEL_ALIGN_CENTER); - lv_obj_align(lstepsGoal, lSteps, LV_ALIGN_OUT_BOTTOM_MID, 0, 30); + lv_obj_align(lstepsGoal, lSteps, LV_ALIGN_OUT_BOTTOM_MID, 0, 40); lv_obj_t* backgroundLabel = lv_label_create(lv_scr_act(), nullptr); lv_label_set_long_mode(backgroundLabel, LV_LABEL_LONG_CROP); @@ -69,8 +69,8 @@ Steps::Steps(Pinetime::Applications::DisplayApp* app, tripText = lv_label_create(lv_scr_act(), nullptr); lv_obj_set_style_local_text_color(tripText, LV_LABEL_PART_MAIN, LV_STATE_DEFAULT, LV_COLOR_YELLOW); - lv_label_set_text_fmt(tripText, "Trip: %li", currentTripSteps); - lv_obj_align(tripText, lSteps, LV_ALIGN_OUT_BOTTOM_MID, 0, 50); + lv_label_set_text_fmt(tripText, "Trip: %5li", currentTripSteps); + lv_obj_align(tripText, lstepsGoal, LV_ALIGN_IN_LEFT_MID, 0, 20); taskRefresh = lv_task_create(RefreshTaskCallback, 100, LV_TASK_PRIO_MID, this); } @@ -87,9 +87,11 @@ void Steps::Refresh() { lv_label_set_text_fmt(lSteps, "%li", stepsCount); lv_obj_align(lSteps, nullptr, LV_ALIGN_CENTER, 0, -40); - lv_label_set_text_fmt(tripText, "Trip: %li", currentTripSteps); - lv_obj_align(tripText, lSteps, LV_ALIGN_OUT_BOTTOM_MID, 0, 50); - + if (currentTripSteps < 100000){ + lv_label_set_text_fmt(tripText, "Trip: %5li", currentTripSteps); + } else { + lv_label_set_text_fmt(tripText, "Trip: 99999+"); + } lv_arc_set_value(stepsArc, int16_t(500 * stepsCount / settingsController.GetStepsGoal())); } From a65f173e3c63730c7db3c29bf44e538773971dc7 Mon Sep 17 00:00:00 2001 From: Stephanie Date: Sat, 23 Oct 2021 13:41:10 -0400 Subject: [PATCH 187/188] Renamed confusing variables and general cleanup --- src/components/motion/MotionController.cpp | 2 +- src/components/motion/MotionController.h | 1 - src/displayapp/screens/Steps.cpp | 30 ++++++++++------------ src/displayapp/screens/Steps.h | 6 ++--- 4 files changed, 18 insertions(+), 21 deletions(-) diff --git a/src/components/motion/MotionController.cpp b/src/components/motion/MotionController.cpp index 59114f4c..f2b36ad0 100644 --- a/src/components/motion/MotionController.cpp +++ b/src/components/motion/MotionController.cpp @@ -14,7 +14,7 @@ void MotionController::Update(int16_t x, int16_t y, int16_t z, uint32_t nbSteps) this->x = x; this->y = y; this->z = z; - deltaSteps = nbSteps - this->nbSteps; + int32_t deltaSteps = nbSteps - this->nbSteps; this->nbSteps = nbSteps; if(deltaSteps > 0){ currentTripSteps += deltaSteps; diff --git a/src/components/motion/MotionController.h b/src/components/motion/MotionController.h index 17bdc52e..3de03d19 100644 --- a/src/components/motion/MotionController.h +++ b/src/components/motion/MotionController.h @@ -51,7 +51,6 @@ namespace Pinetime { private: uint32_t nbSteps; - int32_t deltaSteps = 0; uint32_t currentTripSteps = 0; int16_t x; int16_t y; diff --git a/src/displayapp/screens/Steps.cpp b/src/displayapp/screens/Steps.cpp index ea11ca6d..3ab28e43 100644 --- a/src/displayapp/screens/Steps.cpp +++ b/src/displayapp/screens/Steps.cpp @@ -54,23 +54,21 @@ Steps::Steps(Pinetime::Applications::DisplayApp* app, lv_obj_set_pos(backgroundLabel, 0, 0); lv_label_set_text_static(backgroundLabel, ""); - btnTrip = lv_btn_create(lv_scr_act(), nullptr); - btnTrip->user_data = this; - lv_obj_set_event_cb(btnTrip, lap_event_handler); - lv_obj_set_height(btnTrip, 50); - lv_obj_set_width(btnTrip, 115); - lv_obj_align(btnTrip, lv_scr_act(), LV_ALIGN_IN_BOTTOM_MID, 0, 0); - lv_obj_set_style_local_bg_color(btnTrip, LV_BTN_PART_MAIN, LV_STATE_DISABLED, lv_color_hex(0x080808)); - txtTrip = lv_label_create(btnTrip, nullptr); - lv_obj_set_style_local_text_color(btnTrip, LV_BTN_PART_MAIN, LV_STATE_DISABLED, lv_color_hex(0x888888)); - lv_label_set_text(txtTrip, "Reset"); + resetBtn = lv_btn_create(lv_scr_act(), nullptr); + resetBtn->user_data = this; + lv_obj_set_event_cb(resetBtn, lap_event_handler); + lv_obj_set_height(resetBtn, 50); + lv_obj_set_width(resetBtn, 115); + lv_obj_align(resetBtn, lv_scr_act(), LV_ALIGN_IN_BOTTOM_MID, 0, 0); + resetButtonLabel = lv_label_create(resetBtn, nullptr); + lv_label_set_text(resetButtonLabel, "Reset"); currentTripSteps = motionController.GetTripSteps(); - tripText = lv_label_create(lv_scr_act(), nullptr); - lv_obj_set_style_local_text_color(tripText, LV_LABEL_PART_MAIN, LV_STATE_DEFAULT, LV_COLOR_YELLOW); - lv_label_set_text_fmt(tripText, "Trip: %5li", currentTripSteps); - lv_obj_align(tripText, lstepsGoal, LV_ALIGN_IN_LEFT_MID, 0, 20); + tripLabel = lv_label_create(lv_scr_act(), nullptr); + lv_obj_set_style_local_text_color(tripLabel, LV_LABEL_PART_MAIN, LV_STATE_DEFAULT, LV_COLOR_YELLOW); + lv_label_set_text_fmt(tripLabel, "Trip: %5li", currentTripSteps); + lv_obj_align(tripLabel, lstepsGoal, LV_ALIGN_IN_LEFT_MID, 0, 20); taskRefresh = lv_task_create(RefreshTaskCallback, 100, LV_TASK_PRIO_MID, this); } @@ -88,9 +86,9 @@ void Steps::Refresh() { lv_obj_align(lSteps, nullptr, LV_ALIGN_CENTER, 0, -40); if (currentTripSteps < 100000){ - lv_label_set_text_fmt(tripText, "Trip: %5li", currentTripSteps); + lv_label_set_text_fmt(tripLabel, "Trip: %5li", currentTripSteps); } else { - lv_label_set_text_fmt(tripText, "Trip: 99999+"); + lv_label_set_text_fmt(tripLabel, "Trip: 99999+"); } lv_arc_set_value(stepsArc, int16_t(500 * stepsCount / settingsController.GetStepsGoal())); } diff --git a/src/displayapp/screens/Steps.h b/src/displayapp/screens/Steps.h index 3510c500..f109e0f2 100644 --- a/src/displayapp/screens/Steps.h +++ b/src/displayapp/screens/Steps.h @@ -31,9 +31,9 @@ namespace Pinetime { lv_obj_t* lSteps; lv_obj_t* lStepsIcon; lv_obj_t* stepsArc; - lv_obj_t* btnTrip; - lv_obj_t* txtTrip; - lv_obj_t* tripText; + lv_obj_t* resetBtn; + lv_obj_t* resetButtonLabel; + lv_obj_t* tripLabel; uint32_t stepsCount; From e0013e730448f4dc142e3610f970f22c807ac41e Mon Sep 17 00:00:00 2001 From: Stephanie Date: Sun, 31 Oct 2021 11:53:13 -0400 Subject: [PATCH 188/188] Ran clang-format --- src/components/motion/MotionController.cpp | 16 +++++++++++----- src/components/motion/MotionController.h | 4 ++-- src/displayapp/screens/Steps.cpp | 3 +-- 3 files changed, 14 insertions(+), 9 deletions(-) diff --git a/src/components/motion/MotionController.cpp b/src/components/motion/MotionController.cpp index f2b36ad0..97a8feb2 100644 --- a/src/components/motion/MotionController.cpp +++ b/src/components/motion/MotionController.cpp @@ -16,7 +16,7 @@ void MotionController::Update(int16_t x, int16_t y, int16_t z, uint32_t nbSteps) this->z = z; int32_t deltaSteps = nbSteps - this->nbSteps; this->nbSteps = nbSteps; - if(deltaSteps > 0){ + if (deltaSteps > 0) { currentTripSteps += deltaSteps; } } @@ -47,10 +47,16 @@ 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; + 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; } } void MotionController::SetService(Pinetime::Controllers::MotionService* service) { diff --git a/src/components/motion/MotionController.h b/src/components/motion/MotionController.h index 3de03d19..3eac7176 100644 --- a/src/components/motion/MotionController.h +++ b/src/components/motion/MotionController.h @@ -8,7 +8,7 @@ namespace Pinetime { namespace Controllers { class MotionController { public: - enum class DeviceTypes{ + enum class DeviceTypes { Unknown, BMA421, BMA425, @@ -28,7 +28,7 @@ namespace Pinetime { uint32_t NbSteps() const { return nbSteps; } - + void ResetTrip() { currentTripSteps = 0; } diff --git a/src/displayapp/screens/Steps.cpp b/src/displayapp/screens/Steps.cpp index 3ab28e43..3e7f8201 100644 --- a/src/displayapp/screens/Steps.cpp +++ b/src/displayapp/screens/Steps.cpp @@ -85,7 +85,7 @@ void Steps::Refresh() { lv_label_set_text_fmt(lSteps, "%li", stepsCount); lv_obj_align(lSteps, nullptr, LV_ALIGN_CENTER, 0, -40); - if (currentTripSteps < 100000){ + if (currentTripSteps < 100000) { lv_label_set_text_fmt(tripLabel, "Trip: %5li", currentTripSteps); } else { lv_label_set_text_fmt(tripLabel, "Trip: 99999+"); @@ -101,4 +101,3 @@ void Steps::lapBtnEventHandler(lv_event_t event) { motionController.ResetTrip(); Refresh(); } -

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ΞkSp< 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 z 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