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 zcmeFZbzBx**DyMCcS}nn4bmk@cO%^;-3`*+2uO#dph&kg2-4jl9a55l-=N<0eox)c zIp_B~f4rOPnpv~gUcGkA?78?p^L+(Cmll^22OuCIfS2GO@O=&Pos_7kzM`^%xRk6I zhyVb{9BX46CukM`u(5S^RF)7S(|o2y2Dbq~0{8$nKn*-HG--bD;X#7m{q`^0{PN%Tc|a6^f`q*PfCU=-z`(=6KtsbI!ok79BO@XsBOxLop`c=- zqo87-A|avUqGMoTV&h|C<6z%2fq(*OpkWYTU=XlTkWjGycKO}`V8BEA z!vIha7yu*&1QZ6u_bz}KOngWP7>IjM{3>wpun>@-ng}485bR-)Q1{*J_W}V81p^BS z_k9jPh60i3Q0QPT*O2{=|6kz0_5f5_AcsSzOM-@5-|0rrf6WGxNY6)1pZlPhk!hG_ z`)tf_gnRL+|9{Jlv#ZA&%`oy*I};-7{M(Sr)TzOL%L-oNo10RQLkj_5dzRE1+x^+A zMe@Jp#d2uwLu@Z#<`1}98>I+lc3f+e{_J(~3(R}h|JbMjIq{rWZ0^3u{sO*AqsoU=W;T!+|iaDIf>(s1lW=g!N_j$ML%{cU(&BJ*1j)z^92sBqPE^_Vg7f#^-(3$H(Q1i%bJCuJ4waX z@_pOVYJ||PdpU)KQI_(QuZ0NW4{PZDE9UFRtaihEI)0+nBY;(EcGKr|z220nW!&qR z-vLa3I354>aM4j~^4x#p7Kj20U%ZMg51SPLqM)Aba^LVA06d$dm6yjZZN2M1{1*y8 zHONSj32+eL1oc560{{XEslvpjJ3eq0`P+p&{Iscldh6CVo)S~|o*Fac{jis>KF=Oc zm;e3s-zpF*mgf%opKkQ{ecuTdiIRTxKHEBF`cf50cF#s4(@h}A`4!##Ch-=B?CUdM zc8WzS<-aB1zA?mxVgr`ZY@yfuEQ zAbp_tAMyCD5hQ+VqyvHX-up2c;XkpP6s#DFsyl1NOK1L5?QcZ?;v5=UHX|nV_~7#0 z=kS|DnOw8xfz#Gux3u3$pm3IU*9323Gkp!0%=t2%GnXCa`hLg$2LRNk*H%8kDe3ac!7DOvBo14P%cZ!4;Qr$-17%x^a$JYbBtA|3NtG~K_c->8bI%KW{-e*nN~ zz*?ki`V6O4)FP~3Z1v8JUp#gT`<)Q_>#5PUcKhC5d1BLan!*l|o>=4L@7VtUSUcXO zzv{JH-EsYG?fi=f&a8*dZRZ&AKFo$&_Y_b8m*{^f@+xCHCQCOlQ^J3#{#O^GsGD`8(@;|u3IC%NY@y$R z<5io+P{IE|{PRoWS8~<5r!m9kf27o}#^8jddM$w$cUU9*&&mIa;rFrG&ffItg(dR; zD*_yltcK{Eb{76d4B(yVXTt?e7tTs%pu29rP(&WqNM;Q&B)Wa_${Ircvj8a7p2d{M zfoHEUJ@~I*3A)T(S2KDxX@Rp>y`FXJ|J3B4T*Li7c{f6^#ExBhD|i(Vzag;3`zRQ` zRF?W@DlE*4g($yCr~Jg;lD&;(VK9xwRmLp~mM;F|D9)}=JUbm4CmA^a9uz(OGjjld z4gdhFjPF3hMwRc||FDN~1le`E%%nVO9)tD=ps6K6j+Fl3;kSZvm#1s<>$3?TqXer9P@v_P*Ex&okCn$4ptUjn~tXI>fzdFu+ zwubKNpg9ixL)rhh68+xm_l5ISC*=CIHDT1w&l=c*fLKXQ1gL5R=5gnawipOeI+FXmd9n8Sf)6o5cnHEXk_ zZdb3w{dQ5^%X3?NF94#{Q7{mk5z!+5&B#I|F?1W!I6u+AZ1fR;>W~^s_C*_|kom?+!qlej%oAdkR3{mBw`P_wKtpkqU6~?sZETKU|N4st( z>hCZAd07*5v38l7%4|r%H2_Eu1wE|4wuGhgDKCb+%_LW_ndlI>Y~!#4fG9`ff|TuN z*C}kvB>oRD_4uNx)r|IMd;_1K6Z!*1>O1FHc2?R@cq6tH%$euf2B2)%CoPj7 zm&Mmy{>>^1jC6TS1+u9%i)h;p2m{q&3)TGI%_I}bvZl(&+>qoG!?t^Xog_v?i zvE{+d30jmtXwd)dMr}unr8k_VGasjDba=Y|kt^SUv)&yz>+yrwYDq_vE4n z+5M}+9e-M9__kJ!@lT$tceZo)ZEnBXTSmldptk(0GZPI(_D0&WjL(5HtU-v){H?oA zeWx93N+C?3*G$lJzh)XYdYQ!gL+$frX}l}xc&j(M>1ZQ1zMb{}x}G(@T^r}CnmBNM z`bY194qtL?$W|KuH<|)rjz&ZLUj6wa02&M_f34@doAiELDD&`QOzVtUW?>N(@74^=x1Dfx>Z)f%nUO!4WarwoPXs@5C<)nh-DF6p>=M$h>;-uLj|gWe`GqtcM(ehz$U_BvCBL!_50oszG~D5Qjl8T9@- z`@Djfuu7hxCa>Flfay`U_<>BFI^*wsXf>;q{mZACG7Ipr6;UK+fX{+khh4*!olW`jdGdMDV!B0oT%h&gPatwA-5~AK=xtPXd zrJ26^&wuf2Uh!O6>~KciaJ{i08aR4_(f@7q`~X0+pb8bWUk*i~J$HEfvNgHW4t%cr zuggCgmg<}Y#;;r8T*U12YpC>jeo!Dh9 zzcSvT4~jVTYVZBD4lkEk#xrp`K?}WJ{YNXqq#NC5g!=Cm02tmng?H&*$}`~Pb(LDR zm08G_Gk4;3%5*Cc^tBe-|6gkfKy-QU&g_+!^Eojwd;s{dy-#NMY!)9?g%EvE(RN;A zxMbV+u=_;#0iYmt-=XdZ-kx5L^9I-DaG|WHEebDQzGBqRnEWB4M3&X^6k{MDb-0iHU%Ko z9)?=e&UwBp)OjWx>*HQHU9#bRqKBwH2EdU_p1i| zS+61xz^wMvpqBLz{vhC9aIt-}B(UtsRR=)8YPm${=Yp!RIdO~sY?Ji zO3soK=rqF_*zp%cI|~q94*n?Hn?ILA|FH@NS>MLBlR_i+hO0-CWO?JF)yPbL zZ@mVG-5I1WPat#{4A(r~C*N;({jCDg6Pq=?y?l*#^8tWRu~Cn!{G7qE0U!q27NmzV zJWt2=NF>fEvm*EuV9}ms(3^y~YK$!Ks?{Nuoa9Tkt8I(_-;xFZ4*6R(*IakOcSqpn z(7aj!g9i;Vk1*t`g(6mi;bf1m@)as=Nz4=4E>uL%z{$wJ0+(g2wQ>lbJ!V1PXKUnd zO5+|qox3Ic4v2gQ+yQ{zrgRLKKQV+T2SSEPIqUh%ONWgppUcE=Ud897=2>hCsq8QQ z-|!9`KX~f@D;(wd}uLu5r;eq>2U2b%6 z*$fQ{4-E?mZad$rb-$krK)}M0Jx0d>ca(A2I9WIh?6L4z*@YFUsL3fGQuxQ^fLpro z;8rgL4CHrU{$Vg6t(rBs9L`OXvcDPvox{r=?(lAKtC4_iFQrN)YcNZfD|g4(d3t|- zzG8|%!OZ$lSyQ75O}-6QGmKyAlW_GT$@6E6Ly`mNg{+oI8~iAHK|v?-2pc!FpI5Lc zGc01+dnOU}2S#9rm) zO0!H%=dVfxdBb$kq?b7R?%fYN_O~7v8kH+OFd3m>waVLgk4#BI*^{e@Q{Y8-7Mh~F zqPaHlj56W?soIg>-!?#DE@s5x^YuBWxLa&>@@vuGP>+sRc;^Q0a-3>}HWG5CS zWmPQeL^b)>^aZ;>@mt*d;?EIsk42I~Uz$WSsic~XY)}Pzp{~@^O7S0;aEYmRu=ir; zVJX$QCw>Rm+@D(Ed}0)DESAoaQfY?^XDwETu_WmzRfY~K*L+-LdHq2%9zr6jvN?D~ zJSYjq(oTnxCc#31d4^pMfvSNU!C^TGbaNW$=64UV18LlN-mstIFLJg7c)DCxeVax6 zY5Cqooo=|Vr&Cwz#3RV+SiNRmTmOvnqHEZV4iOLPpp#qI%{6Q)e1m8rRTtJ^qIOl} zd=WZip_iAJ+ER48rUkTiT5!;BhP+A=vf6Z+w4k4sfX}zKOEkr!P6jYKEo3QemQysy zIa090k#)S--H^nPZPWD{lyeXw^s1lBj~NcPkK-~LS1bC=1pCToTBLQA5YMj(x!*G}|S<~{=XA`ZS)UM_RlyR#V=DpUfFUn9rg zwx{fAE^@x!gLC7dU=T^|z8;DAY3J@19*|49{?sG;t-O2UgJ1*o#NF~QA3TkEXq(7@wHU$_1cZ$TSdm|qwqST{ zk-F;laZvaRW!!nUSN06qAva)imhSs2~P2ft#0mWqUo4A_h5uo1S|moFafS z20nrNf#ixM#fyR%=mc&=%@sOhf2tUL8KTygJRS^=Cz=}*l>;TlDJl|7)G;~=MD8afqsQ97pX%QTMH;0~ON;$79UEKXdTUEXj!@KP`}G z5P#F4mmQKP6=SfwmmQDjqpA~~(%@?eHY}n(StoLg!Jwz5Y-IU@biQ5Oxrl41v`+~x zqoQv{m%90D?Zk$(iY}%4FcTA~5tRkPQws>BJwIPgmmSTd-$CdlxRw*n5k<042V!rL z4frTPs7r47TS?P9Y6=&HnL(G>m8|y>9Ta@kb&~{bG;8h1TIuCD!kstnBF3Yt8dk&`iPLjnQz<@^Z>>~IJCAJ>!P$+? zY`N{--#u;TB?=>&0I57G_AvK)Jc0oqj(d=0d`fg_rq4!O$>LGV$RUcdXFi zPm0Ha$w?Bp4wz4;%4!`1Hz0Oc;*%dK-yA1eHZFEcUXVPBo~x9e-wbs{OO9easSFWR zXX*XegMX#jiBjHGoi}oo7+JA&9)cK31t%4RugEBRIICqlA;ui%Kg} z9~glF>;8uEI{@7#m42RbwWl`Eo$cs_7vU|_9jYY7|UwijKj>~*JqtBd+IX$RNd8Q_> zIedDeBx2452o*`yax4>%n%MMpv&gE<@rJY3RNEp)t*Gw+)VkSQy5&1FnG2Erxv?C-a zOmto4P-T_}k8Cc@5GBA!1r|;!TyIPoEh#D6u^W5Q_CL`1%|83>(Wa2e$8=CH5kf=~ zo2*9(SKe`bW4YFPpEFSWFw2-e+XhS!xWaK0RQL}o;giiaOq?4Rk*wWQhx8Kl$2zu? z-F8hfP@g!1_f217z6i+ee==^>~;u9pR>WGgW zIsPSdj;s%b2&GZJK7C!qETjH-lw)7zi^&8^{e8&htOJ-jar?IMhLCUQ_L6@W6(JI3 z=~(2e&)Pe%$$jPBOUj(O+5*8C&hg4ZlIcyoG#+yyG4xsQFC{!d9>uvNmygbhY97`6 za<+@|Yr5LBCkgIdYeA2~xO36XFbC4|?Ib9rZW-+6oms$6Q8D|=V)V-yIM*7fLE(xp zuf%zrIn<)-pC(7ZRX4*8X85>XRI{k^(DK@7*olr?5U1n5egKn1u|;UqlyE2iNBUeY z{YW28O~P~29Vg$h?|^_+lR4I*B1yVjoJFIxc7AZR_iC($bKB>Cn438}HM%W%yR5bY zH>z*t%4rD=1CI zHM2TdYouNbsJ)eRX{)8v>M%&>{DDc#`pL5vfW*$G)w>fsCV&xh{P52`_UE(}P% zyS7{kw{v%5c$a|e#TKpgZvP{v>5A3SX4nh5?xRl3q}QRVA%ggRM{y!?RL#kR{Yt+M z5ZIv%ko@n4J?Oa-a;W_WDL7!dl5lvoGd>g8Q3;EY%SaAFIQ&kah$U?Pw#;#mGi{aW zxFd7TEDJ-bd`20(c!F)oF@<;x_2TQpgeeM4lL{n==NNBfn_!kXgdb=?jnSDpK$V&3 zY_$>%AAgD zdj?NSDfwCTq=b4K%=?U-w9T)I3mxb5&rKMeE7E&6_P+xX?~J!~Gs#ah56>Me-y?Gw z=+BhX`n_nBO;0S#e46{IcJ{sfl=f@p{n~o1opP?&fpHhBS4M)?4ZWXIXpI}>QEgj4 zpyj$chxQvc&2|^|u`H6?sGb+|aU56=^rTvzzu;?*lT=A`2`tU8?wB(icmLK>SESe) zy0MP!-E0(;#LkOD@>d26?KWzhU3?r}8x^Xzl(3=OO^$cIBeB}@KNVK^9||LDtEttz zEY*-(ggbfZ>$knr?5j6?b^|LIJUd286;V^R_^K36<8`cAjT)+Kfwon2`>`3~_HelB zeB5q9^&)svZr=SJAO{UD!hjUGS%&7H(jSH_h* zm!CYBODMv5Z16a|{uHZ_j$BKvmQtT1xHNOfptBbSxZl7G>-wN(S~6!it6uMO2K~MSr^$0pB|nf&gzt zDCFoibR_wB2%~4sh-~DF$KHl2Cq7%03`WnV$?{@^_c~jaH$hA3G*SC3G928%xOUoZ zDN;0Lx7x&uBUqIx8+L`Cjl5oZ;wThieW~5K)bNr^Tc((URw|}=uh9>wJ;V{mL+c3! zWw9=TLxeP~M<}{Y>251dIF7Q00@=K!C6`LT%*%CXxw_4VLmnycUsPWZ%fRHKd8h9T znjU4i;*h&3;~O$OT(h5_8^I_JaDGWBO)OaDhrl_PsWuT7pGbgx+HLn-SUeA5Oj9=O zV+c*x(Qb1_>?(A@gflrTfrOlbI-gB&#a?({kSp$KK~mhqTotVH*AokhiNs3N&Ua{4 ztG1Eu&DXGMgH#CeVk0T|1$kdmwXo+Z%2wui(Qb!)GJk3lq7O5BR9DojC(2x1ovX4( zu~MvrDqZRUT@a@sV_Ib4u3R52{!pu;dTWw5K4d|rq&chRwIvozlbvFyRpZ$9&P0H! zG<_T!1wDQ?`VWT%JnT_TUStTAqbgXCpVt~zDQdI!4NmBoF}}L`TEtRI!loID;yC^E z^8@QwPso~UdB^mmaz$iaBy`6w30|sRA5uyfvW~iNOCvkK^>EA9-9G4hRDmPPz}aD2 zt4Y;EM_ZJtg;Jxd@geLT@l{lCS9(17PkhNJbN|#yh{Gqs+?m7=pvMU-T z{grI7hAjEp3Cf$yCk)Ns0R&4etElqvXEChI6QTIY*9f&H@uxXaSCSSPj0x-5Nh*Vk zuwZ^J+SC@Qxjdva=@H{Unp1b0A9r|Pf`7#3h3rlsw9Yb_PSvf;F~YXAQC+JCPGoN` zi1n^ojX(5%2MA)JXug?YnSWFoTL~rYWRpAiX{7J2w48(px?z&@#8+RfA6elHCcRj* zo?i+Z6%Mj|n8UPk-|c9Ne(}=V2|Jyygwq1zSHntePW5&Rha}`nt82uEBvjx@4?G>N zu4NsP(1EArLlVZj)pgQC5>5&GQwa7SgWc9~qDQc=`9&=GfrOMWGimndFy6p+A<<1Tp7O^N!5%;6bSL?4m5@Y-+; z!*^iY!MqpOYsA641>V7}1r84c-F)Ei+@$Rp1#G}-T~^I*@-RVLw?xLc_*se zJZ`9Hcb$RXfp;t4fkSSgn;2A|^}uZRm8}JC-lkAE4f~b7Ln30I&cL_z_AVEws9W}{ zsBWm}_owR^^e@HtC(MiDRc6oN!nJ52=pq>&Zj_#dRG(QqP?Jt284UESe9IUnB1g$(Nmv~{Cw@TT zngNTJV`B0H4L_l|ILMwg^Io3q3+|IT%w0R0a?6iPkDN0i=Sl}37v-6HybEk}`EYL7 zqB;Gt%aSQPaGO9+_{qrLidb?!{}5;l9GR zQDb~-MmQPmVJ)7pohlgUDe`eAB<6L^FWM|ZPE+5AYg>kNsS**HEpkxxXFq9)<)m|~ zau2*%mfk!cFycs&5_4`hwv%*uOdm4oeBO*vTv;F4p2yZ9AzA{D#V=x8#^U z$4ghT8NOI`yQat}VrPV0Bhq*_Wk;nt#R=B!(NYlfSQ2Lw)gu>}NdAtY>SkAGLETgxa0tTzoG&WG<0v~H@=6qSSrYiVqr3F_$niWKK3DKe zl1o1(R+u+SV1Ik(Sw=1v!JyiWOZzV4UA^>MGPf{43KWfDq*+L%I3_P5HF(u_(-)t} z-jaw!Vr%Agx}09Z-JI$5aTQ^8d^v7@AgDUCx}*k~=u9CG=N#gAi3cK4cDjzN+rku% z6qQCwAJCWPE_8a@^A)hCd}v$FJF=6f0qsRC8l-cJc=0|Lt_oE0FfMqJ@XN@uZ-7p- z^Ci+x9*2f4B37l=UMy1?s5>Z>QNd$)lDf?PZEa#JOBwRJC_9WnuZUd*QlB%R z?jUa*F<)%A#DM}_V9#E{1@aiUNt!diP|$zU{YpLvMf^=W!vNV_^s`kbMez(YSVvH- z4991#Qo>1;-9W3y=0_;J_di$al+T2Lff2fC2Umpx;HnTB{3Q__6a*~nk4Mx$R)sJa zY~Zr+$Epxq6e_D2*yDoBLfD5!4)M7ZlvW)U+Q~!v= zZI8< zYx+z~DQvUgEhgOwlp_s(JvEUYCq`qNI|c z(n~4XPW$qKm#IvC2whzd391~7nCKjAjn(yM-=1lF>nLYA*m|kJ(xV-!kli6)|1#mZ zUVtEvQj8y}9oRq}$1>E8zeFkLm{P|0BV!|R_fbHS6n$#iAS#_ZhNby!Mz{@SVboPv z$|&k+xf!l|lKCs*ubtfTWFk-V=-zAjqNU5$h1Nfpe?d@`2GhKrlIe+g`AdHX%7UFE z>p4^ZI^=A@??6@3AQ$37gJrZY(koeM0={Y;gTcXFKTF!wb;i!dZ#XQmvJZs9xYsh3 z%02fJKT5NI)3Cu9Gb6Q%#z77oEDuh%#S^T~lef#d+I#Aq92TUOmlrT%Q#?{GNhKcG z70(z;Tf6Os*Nzcy5oGru@Jj_%r-PS?3J1AB@{k@O%_w8n)6v$$5@OUmNUHjmn1x-= zPWE!^nqltCF7nyFeQuM;tK2UTFvAM_yS^dcY==InuOz^&?`18MeFY#*gLa3)bERhNV62Dng3bxG3je zN9>s$=~DGNcBWCQq30l>47YX=s~cLoXq=E_kjA2W(ft!ZpQ4`z5_4v@BE@bchWC3_ts%@%SWEJO$rLtIDF%220ze)+k0Bv07|b7n2lF0=daa=YtEUD#JN{<^8> zdTnu`KK4UcVd#~#5!M+BO-4o-$g}m8c-ZxItYwt%#mA!(D~Z=%2wzD+zBmarL63Nn zz=Q9TZ`jRQ@ufrR^LB*z)d3ucih+UJK#XfAPz)3A$ROMt-B0N$MHyaY2~G^}$`qK| z3%8`M3A@}7=g~jkNcyCy0zF@v8+UNjnv1%Ow2SU)4nKyXx%)8d0F7>$v_o>!x^`-H zJm+`3Y7YjCiha;W=Gv!(uM20Nb~=_1ydrH(%9B#<8Z&T^`4A~{G8P^K+W!178hXyO zS)fy5pv}gQHu(V>=F?j4y!kB$uYA{7h(-zjMT!r$@he<%+4c)u8-yX>@~dh#h%?{P z?hjr`n3;d%V;5AKO*@Gh98PlO_9NT3zZ14+=`DqKh1VxXB}MeC6%A>>HsQ7=EffuI z_Y}K@Lkc*Hyhg==*+BR zeNL*FKQ6Q{m@84}H{&A`OCDQHc!GcZqK!O8a5|}X0>wkt;oQ5B`-Vh?$S0OAhQBwd zm&Ev^ajfVissP%GaZD#FA2Ol`vLRwmf<`-QTzI7QNX{v}q1oKslmbkf-d9h&b|*>5 z2yu=D;l43vp{fu=C8k76WVTe-{_1Z8+$kF0I>o--4Jkp*&Mz^opQlj{XRq|XUA$3` z*E1s$Cow@T>+71*pG|2ND>`QjV;b2!R!^zH%5gl5hRMu1d(T9e}?GP5V;0UNwckuwRqi8Wr)NgrmPuHX*dA%04e|hnrxcH}8}e1uGq*)?shD6oYiwp?E2&mJcjB}{T;zcNz=C9?wnyY4V>2Qe zTOqE^+j5#03tTOFMF+|wd~Q!;kzSaFmBeR4z1$L;$8$K7F;2-+o{C-?H4xr0f3bi!e>+P7b-ExqeUuvH3vh+!5|qFQ=SQwKMUo zb$iF8*2tP->8xE>#)_ShK!F#dYk6erR77%fx1JuvFkf6 zaumofp%+N`tWf(>E>)9+HFAgWAMRMhY0J+!-{LpgnJXcsFeO@soz2vu){> zCY2hs0{D`?mWrSU?Jr4m@oZ;4HU);4Xc+UtF%Cu6GFnmL_q@f3)}wgPEdJO%+VOR( zPDezj?CZ+;T8@g9H7o7=xK+P8MKg~MlGS#{Cb5)dnAbB)R~ewBQ9-xw54K2Wwx$t2 zSOhssh{6n(;%dsW=Z4<%W?J8V*~`p-&kAE?7k*a_NgfM1c+O*PL?G9hI^pDJ_VsOh zn7rew{xV&1V^R%9-}RvUQ9bXgWKr?~r@Vv6`fIAnfnm^DzgN3vxmKfD=n`}_wrxIO z-b#1|H@CQD3CTbua^7!2+?01Puk6elEy<}V+xeHEAIwW`yF7@qeplSbG(I%-;s7bn zR8O4x{oP>88lymTZIQa9d?8t`3j8QpOSKl9?RJx^c(QU~?_W)M&*4IE4aTb+YR);+ zl9_Czk`TU_%RVbW1}3Npe3fZ$-g1P;P4t1cXsDWFU$7x-v>>?^1;aKkeor=fRcUO2 zG`%YAuFFSJ3^=B~WJA`lfT$8M_!ErojSej3-84uq=qQts=1uY+7TtN~t*S;8IN}JG ziX48NEzD?F>^+Qg9%yGLzhG0b>uZoz%Yr1%Zpgn3Xin^E< zADIc&J=8=K>Ayk$V)0z~pq(bDBUz-P2kf)) znXL<|h=6LKrtg%w{Y8zoX2<2)7(RPhgp%XvTg>x~dtA@Gfm#kjsx z13boEv-S(JbHczQ=Z2mS46j&I9USdOo3`H`*>16Y&KI=yao|Ca@4w_U2>bjshOtNF zo$hP9>6QKviea8%S8gwquqW$67MINai*(ly<&`~w)yV^Rfx?wl-x{&LlIGRsAGsW<@Lt8G(5f5zBs1|yvSsrF1I6S% z{=^LxmzLQZ?WjGNIrUp#cs%YIn1Ds}-VoP1glJs4_@4Rn9KOn+C>{|sf*XkscjD}u zJxupM@urEtYkkTodcO5GCZLs&8m+iEjwYH*1+^Vz6J^OkNAvT)9+@2NEUAMS6ID1 zGP@nIdN@GYpPpT^_mJR1Ga%cNxs}bKd&#w5!t1RY;5oq>Ubo6^eQMe{LQafhfVBvn z{@NT=#9ZnNfp5gWG=9AzZh!Cm4^Yq&nR}!&gcPWXf%DnbUOxTruEx(ac)kOMs9)vn z1Lthf>M~D=+VScavS?J4GYDO>8tCg*D`&I3(8(4^r?ksi2PZ!gAkEKpq_MN}INAx? zEGyU!EM~u>pcn#o?_cU3^Do@Q8N*`5803a;9zrqi5%V;}$o4jH(x$s%&)5YyWig4U zq)ZAfq%_Y!>+CNEqSve=6jkDN!=rw=wKREyX1Pz-1K%mN4sAki&?LQVGmv2o*`L6g z>N_%vZ!Lmm>pOZ-K4jY8<2`eIHyON}u?kncKx%`GL6lW_Tb1Z>YQA%j_9MgG4muFz z^;K_-1AgY0pY2bU3wP7Yd_xA2OSTG!kmBa>0u473HLnlvAenv1173AP@kQ)aZRoms zmlVq4RaHNec;xvO?>4c2=OFZXf`)E3J%|-fVeM@E$TOdaR29ZI!P5a|i{K<^5KNF~ zOCZjvC_!>8S6>UR0?hV%ce0@;gT#kQA_C&`=L+;MnqPNEikv;;$II(q2^3@RzL~Jk zs5n^voaH@x?WL--Zh(vAEP7!pA`1Fw;)FGulRXRUZ|wx|noMI{LN&zVmrVKIxY4ah z;>$4kb^)U`7IW1$TGZuO>fvQiC-baEA6sZuGiu?MBdG_M2~Xx&jXbt^09K$^lUoFg z!sKf`20s(J%8jqh9*3}w@da~>g+t`=$ONH$Kc;3E-l^`OgggkvqNwQ8Df3*EJ9reiG{ z_j0Ue_3#1ljeN(^1{b2n3SAARvP9kI`fV#xmV2()n#V>$G9S4;YQG_E;PbEhmM-U8 z+YG4~+nIkTOEm1>z(C2p7F1i$`cm}Xe)Qv=*J=E2&N&fvMwjtII!saQ7UHM07=iYg zTJJZOhfL~N;__1hODm&G>RCb=jQoDwTJCrD)yLmfE!VF)#(PhLi()qs56C;49U8uH zJ{Rj(H)g39Xdd%YXpvBYdbj3Y&;5Fc6RP^HWbEdX^2`{Aebnyu1a+1ROnI8m7HzHq z>g}R*imH`8$BnxWLI`UPS}9$H&f4fBncv2$ykXcdf5h|b=@@^bpa#x^5!Ek zuB(VqxjUn36~EMSu!5dml8HRbpmy_{OZxlFa(mk^xK*x-6RBJ8YToW0}9&j@_Lal#vO-=F3irAu9I#|iFbNSXK3lQ`sO_>!&{n?aD+cwZdu7DhaA|q z5qZ59tphE0uy^eh{foJ;N?AQhBAb~?cGGq8?HH1&=808DhXsiqqcy zq58xlhS6+4r|oMpDZKcSHxFrv%CN5?H}k}+^YogI^@v}wKe^VaLAHq$DyG}b#xNl> z&|SQ&<#~zaEPw5+)6~nod9I_NU}4py;AzV6%qF?F`Q9~H7r`>}$F424D#~pX`7R+9 zT{BC2pA-i9l@60pmjvW1V?~Q^j}3if4H~(0u<_diMpKcsKFvPivo104Rd1}z3F6Y?$ZYpO3HK-`E7kDeCtj=%HsIC+BQ^RAi4yC#qN+nDi&846UdYQF$P7Kl zB)1}xGJ~A#W`32iW|#Rytpq&X_fPj|^%OE=Q;$l9y@ithVZK5iRCNnHIu)o@Zl~dt zTr|aSI2}DDDN#6Qx>v!lku;g_kUXG#5thoDJPoIrzgU7woO_=hYWDbN$9{FLZE}(FCX54>?u&+`sbn;=x%vKmJos zm!Ic%!R{4AnJ?EoH4R@@tS2eFbL@UQ^(Rpwy|h1uyRHWd1v$%_Tj!>K^mm#ss5D8e zt!DYmC*|Im|I`?C)puGCV(^a$e5~|p4G`x#6K(BC}1_%D= zTpa3#Ptl?euF8H&ddP|QgXi^#F)Wg}0WWeVAFJ0{R#uCrOY> z`GroT9IbKVTOUa-;}qCMjB#~a60TK@J470t2bP0ib@Z{$G*lU0#>%2qhxp|&IKzR> z>bdYUwqW_8+P_^NBW;L8V0NqdP=8B<#{WZwC z!Sk`*#|_#3SLaeMSFcXjhIZZQ^@&3?JKqGFZ>%~DlG?w^F_r!F#SB9&q?B$QCSajh zC_@hw#lcRSRcUZmKd9FbslL>+&@4XZ7|~+U(hB9hE6nS}E&AxCeR?C}=}bjIJ68-vf2AXq%YloyYwKkOVY85_e$C}2{DHL1NuYsGBO>v5 z>#9^U_r#k+(`f{iW_^^+x&3^n3S?yip(X5O1~*>uIU%13({)5{@AZ#YE!(CyoCIps?FuuZSXBW%wl1F1WWk1n2s@X z;a0aKzOHoCWZ0YHP_?sB=Lfs8lfI|*a8%Q|te#j{G$F}v;zL$q{h1~TmuWfS=5ulv z`3|wuJELhD{Cy@Qn#-6l-qcDdq+g)YqTNs&s%iTzeKWGRJ-SWy9l7y_c74rx_2ix4 zA`I@%vVFl4k=0wrqOR9&=g&0IF8rXd0^LIQ%g)(Rf7>Dgf65>PzGGJ_f9anuE6H)(mS4^!FC}IW zcJ;}cOp34s5Y{0=%Qq&+XBT6K>WZ2sr(oyvDw@tK-+c_YeRmnXX*ITIyByc-hv{IGT)pVA-Nv88-fS7+QP{KHr~lEi8oIKQmoIAiiQK9-@$jA`rE@k!Fm{(pt(r| z32Y&>v+-~XhE(mZ9$cDWthOV|brHdkK6hk$^(<>sJAs$U36;mY>WhP3wywA#R+e$90`SLgcZ-L&}&3 z(xj)pPK;m*55nsoOo)I-dk?=D_fRgjOY%~R>>7FI0}IwuCSnMCe`xeol6qOWR}g{7 z++$}$EP6|we1XvNSOF#~4%=j3p+6^?=-g=y((dv1L6X%AzQCx3N>FM~ZF^-wu9>#8 zjle(w6H~3tRfyX74Gd2(W2ByNcD11j&8g_Oz z^2~~=n*qbg+LeY$Tb~oShzv z?q5k(QXRbp0WTXJM)Q_0j747RsX=3t{si9>7qP^5{JU%zfgDa8{F0xpb90yx^t`(2#YB1>Z7^sMI55wY2I?BV~Dzm zINd;9_UuM#7*A(?F0rWV*w+(TCranqS8b^r2`P#@~`@vdHh3WbYRG6~l)| z;Vr_1VZ_aFh(o5UW?+1>UXYvvzPY(%62Q(FjvI!hLPKsr`t1;X7K?zb#ivHEgoPmL z_ur(kguwZb(FZ^x1%4vS!AekBF#4dNy-%4c#qOIHl!yS`p`jIK3%cV8Bo=_tPYJ(V zOX2P>0zrX@us65@kNl)@2!O87T}z44LvV+dxkKur5$bo}SWStlLWr{FUSpb#HdS zA9B+gg!%i4LEZEfNI@OPK>7u(FwzN)+=Q2#p^?OHBH3(9>iMA9DPjOlJ3yHl zTfp|Mx+C!y5$sqbMr^fMJ|K@DN??|90RRyjE-5CK18H8Q3AU-1AOf4L7JF4lOhcj= zeItC#LV^XAyn;U<7#;({zT=Z#<~O~W3Ne!Nr2F{`FTQ7SYO^7Ev`k;vgj0G|*`A-slgQR}&uTxoU|k}Y2SbQa7r zGJ;ID_s(FY!dn?P5dlz_2kX#l%_j>uxl|rVZFK^yYqkwm$NHSeVosop zOn23b>!yYuOl>^%Z8{lR-V4~oW{gGByu!8+Z1OOsmmKN;TU>S&QaX3@Ih9F4xG`#$-{UD@3kLv^+q}`E2z2`{8S@nBuGn0OK zLXTaANwZQ8>-B3dS<@t4UsGt!P81>FORkSG$m;(^ayHk_I+2d84RjV01Gyl9)dOEXkR1JeE z*9k4FiM(QND*4K)J3vNp<4O{lm#QvmsZkf)eNhE-0&DXzlM&1? z7YlS4FgfNIFeVZL(zEjiYdet8=m4!qQjcmd4n6uV#7v^AUz5+R5XH_RlxRC{IhjQp z&kG5_HvRNE6U%6@ssRE^sIZMIEW1b&JH8COKb|L_(;q1#30eA?GBv1mTp%9jZiz4s zpr!qnxheV`;s%ALJFin%KU;bt|K1O6 z6yV-yj(#G65zyh(cQUUYJ<9u0q zrSO4=RGe2RS^e$wFB-J%Dpy<@UFwEmaEb`&aR(9nasI4vakz*FH={KmePD$PH@zFY z4Toh$DxUG6^$CllLbSAc-sqyl(X)j4IP~qtrAc7BE>-*N4{}AFAQ=-B9D&u8ToMLN zuev}nN+Jj`NUE8t6WIM|SY<;H(1cBSYlLF9iJ;!(1`Ds`KLep7an3?`iaj4Wgf*{e5Cng+6Ar!o6VW@}yMx$y3{33%i zN1pEx`8V4=#dN-0q4lz9wawMs@{yG+vL4Y~+FCM~FHwYf{-Ib$y>o&1QVt`VcSov> zCNP$g%T8f}3qm6Bp9#!M;}{SS?9ERuC4R_|Nu``L_0i5ykw3AAGE znMnfErYhomy?Uj2gPkV&uMfh5JVvjVOzEFG^{bgQsqW}oSmb6xZPwas=Q3wgitget zeFgyeCdT97J=>)I2qR{Cg;vJ{|084Bf%Z!d;T{pA^P4!p>s;f~g1h7=rzQURo-%=O z!nznD0P1dXoKE;A1_~HA4^#j3Fon!QI2?l?WJD&DSY}69Lf9$Q#UHc`LK#lQFRv`@cSHcuKSN1212UhaVz%l?M4gWMAu>(+&TX1+3 z(fY*)xvYQjn9V;M)EI)|IrX_?^0Akb9%Ct%dx9#eF)jzM4e5=pJ!WJNj{lJY|0OOk z`oDR=X5!b`px?cx`VXDR`LX3;?)xg0P;!Jg*t z*av6L(XRi_zJSC4)S;g|$hE5eC+s{!>7OhT{ZBTY)fe|4v2fOZvQ*83!016B1gR48 zcWf*)Db?r$<$zw${n=l{H&AuT0fQf?p1)y=T2xAuAvBW6l z7}o^j`aJi>Mk)qzKyw>3ryke{^lO*=H4)-ntMr_!S85>zks9 z8-8g!Bh}Y-s_>aiCe`7HlW!0>t&o>T4)lW264bsn&a@x3tdbX2nK&*|7OcKG=V>L| zTexrR!(+(MHgxWM)07^-AGs5qs+%_#W@0F3>=+9?Iq%K~A4_Rb>Ion!kgp|3?$j3A?7%&a70EXPR%g3I;oh!_kXW5eQ_E`Y0ucen>+p;|e!Ip0a% z=A2OO(N7$y-UC<~7~jt$!}OKi1LE%i<{!*%gSBIGwjF=)in!^;p+>A4INXi>z}kb=GjfZ**8E^t*qJ(rL&|q13r!xZ z(G5jU-?y&>YoUI>$|ZP%jwKRn?Czk)RoJ2=qRcpz(SD+{V&gsf(gPvKv-E(+aJ$*2 z;L+paq{hMu>+O0QkejmxY<0$NSw_jbfFmWTnNh{5{rI_fAuDT&!Z!;DJ^O+bZ{94p zv?!-qI$=&qR+Hz|PP*ls&x>P-gmv4$Kjv(y;scyYg*Rx(&m8`|kI^3DyX z>7!Y4X{*7LCbOd{HV&)rY=G+CO1fWU94tmh^!6=_Ja*ITTQm*kbV0Lyu6eOt z)g=_3->|m@kFbW;+V_$gsjZH^L|lEI`ji+q??@cL+6pw%IcG{fEuXg_vr8WZE2g$& z+WLXZ+}%7DGfAA$Ozg;N1k$anAjgYPNkv~w3W@TLT8ye0R>O)4LWzg@7i}8^QPsX# z*u{<1#eVN!NT!oh*X&BB%^ha1kD0fBp^$)-*bwZ%XlU4Qg$}z*PcpS zCa7pvuNz_TIx@e79nqVh*yYT0qsD*Bn+~F5!uW=eE72*uI zWOx@@Y%9oXXgv0Qnm1Rgj3>?wZP+l97^&!7TwM!%;I`!A!*uAp2;wSrUbM0~Cp5l= z#p{Y+aQh7ey-cQOpxyLRJ8IzN+}4BoXxJMC-#n6;g%5VB>0*gh zQkvj0BDygX;=8`>uID|~$Vx1-adO7dgI)S5 z>;|bKA!gTPnJ6{{5vJ;I!a1ImZ$+3P3=}3MORHXDfpmX^zJg1jKsRVGqzU^m_jVRy ze8(cBoGkxd6@^u&lfgMo+@8Iyg6eG?x+TnjGgn<1}uvc1~MT@q4IPEb`xtS zn?Ve@&y-Hg@-Jy#ddfJUzvb1z4Nm`TSq^;x)-y%|GeK}m#Znm4r@){%BQdhqV`(wd z7Mpg?>@7-dX0PueM!9)GK}89!{YIT-Qq#uyAInl)@3wp*%oL}gUPWCme+}n z6m>X9P$0yZVkehaSo)|jc9clfps=!0ib~NcUXfOHmY%OOmyUk>6scY*1F~#xU66?o zFN>s)R!%?V2?!-HLPNl7BFNErHegN@h<^nq2`DXC<*im{s`H#yj$WAK@pj&3(4wTK z5JVAU(&bscYTzE94}kTAw~NP72e%(=e6xyxd@PD*mZ;K5`Fe4+ULs{JKVQ(jGXO9j zbC+PM^J^0u`Tp$XtVRD=c76Q{tylTyRjD(3pB}cnjovsuQ=rzWg@gWard3{)G5lZ=DMhqx)@ zx~FT(1}Uz>PG_pp0*HNZnq8PSdEb=ExPzyHBc|S3=t4_jTpl%_=E@8!=pWoj;-oK4 z2=O)LZK$GFN4|%A|ImwdhBTu6Rg|loj&!FvuHh(BCI8DEO^HUI%vi?vux+NS-aD=d z4JR_e_@mJNIqnrIuXoTF@Exg|i}$Tw9(iS*nQ3#m8V?APydI^k@!q?rQ_Xb`H)ebF z3U!_h#QBEr5%k?EOWyYY)lXg+Hf*Pf7mCBv@pz60w@UpV&M0zS-=C3LPkbzbVfsqR zelqP*?vbmUf=0q#nNk!0JwRyuk*y6N%2`3IN#(&#7{qVu6OipkAG$62hXM-VcHDW0%>37 zS$+h3z4kNzwsbRcbK8CL)b&zj-cRF4PSS1v7DAJ^pT%|D$opH$^t*Ncv{3R37@ff6 zwdU0zlDL|S%qKM$F&a-TjySuLkLiCHQV<)ciKepF{_roxA2?>pbm3dz7i9Q!_H0iQ ziRzd$aD>q3me6)UC1kS8GK>r;I?0%1P2cG|=TU1Z=}?(^mi=(rzQaKiA9j^c zDn`#srXm>~lgFuKkHkKNXwbj9eugBq{WxrB7r^MDz0?xj`jWF=Z9Xly*$VePZi z?+UMgojJa7QFzQ9BV3wc(2$(^9QS421BSZ0WEXBxa-X!8C9txL5PRt!Px8+TlJs~>` zB~4?0psR!jqQX}Uf@SjGKD&KHC>$T*Bb_Wm$1>w~*Mtt9c6SL78#rvYnh<xC~tK;k_~5J!_!1Y2sS}ip#asDSYFmj zX(|dJy{THueDH5OYL$RwzB?UMu=`SGxbExWpYpbp#djaQq%z)or792`d=MxtqH~0f zM%&H11(oDOK(1Jyw*H{(Uzv$K)sA<@xkcsLty}E0o`#$b317R+r|^JwRg<< z`Os9ryiRmP!)tO_k~!W+UEgKYZVmL)-NMx(K0f}KKWwlv>ccHXM~j~}+?P)v9Taeg zCEf=M{qMv2j*4nChO~D_zP*eO=bc9{J*onqSsMS>$1lp>*z4t%lXid;*6PG}GE26=al>hZET0WT%iLF-YO8? zW5Tf_nwou4@IBy%B6tLKvt~EA_L44++HZ^|lo|y?Q{EgWx9dGPnxbg1n@q#nPTnGc zN=A~8epADT$A)dXz@N+Vp%0b=;1H0Zw;X<3m=FEJLd~H@ zC2rz)h#i;!eXjh|5j)5Mx-S2Zn-dSq@}XZ?_G3b1b)q82Lz|cFCRQqe#CR89;yqE3 zS8?0Ss%q+3o%xPm4QP`v995U;Ylulz$;RfHrjT`BX1uup!_EZzSWB&DE$|w9xd(LE z1BmF0jv!p}$%)F2B=~j)%Y~OOG=g3dqXw8d-m$U^%pz`=ymTUDUdVm^sgG8x8MBM3 z=vm1}g1jIBhdahjMk_bw_l)H)qjoE!7*I=ev3yEhdlig0vzRiRc}Z#2XWO^X0cB8C zn1gL48ZvXk+ej{~$V4pkzBbc*Yp?}#b|&47svMDpRqPtxAlGN7f_Qf7CS0@My>(&b zHFOp;XOA2w7|go}4wt}(mmql7{?e{mQp4u?6LgxfRd$>@)7BoHSCeziog*vk{qXOO zKKo<30iL(y*(h;6?O**!6>P?_V2a}pdn(uT)j90Tsz16ai2|vkPb1x;=ZAGSR&j&< zn>RrO!N5EG4jjd@1CNMg>+KKg9O;S>Yd`Z6|1L?+-gcnEM+Jhte&I4njciE55_Y>P z_35$uW$HS-t{YOkz7kFDt*LA`> zf%X$=D~Wy5yk&fbcUl+)Xp<-z`qO5w&zhe+!x!yw+r%g)nCoS!TzN^%g}Q$9S@ME0 z|B?L@2dU)9@@^MfVyVY?0@-T@h`9k`aDb=m4$<12tDQu>xxJ2awo@sGQ`-`)rdX+m zQZk!#O{97)I&oJs!K&JBcdC-8JuCjOkC>^&q@U?(NA43-)n!h!*;y3s!- zPrf+Z1Dx^LF=-KqVQK`Q`VV0uC1qvs_iAa+df%PCan%X<6wF?39D7CLccoFv(${?lDXX!SZe)Zaox}!tojn=84NX6zE4NT$hW4(H z7qs}^l&7%jiLE5sNz^%k!H;foT5&e0ikYxIgST6+M%sN&dkdqY4H(5VctV2fM+)E(bJ3y|;%y9pBqzmk+8 zG)->*OxYX)`#b|yWJn6^?LVX^&$^m%LT%5EeLEz> zM6?E9hjvp#Paer=b7?Xi|C^8+cqlCjISikR-%^(> zkbz(}Nh7tpCGZ{~{$d%l$`_3#&2;1bxjyv>wT5C`YAAB~doZZqCLKfw7QLi&4G8Pl zP{yblZx<`L2lSvEGX-rTIj@O+qjZfzGQA}=eAlHK&g|ZA+Ev+*{+^S_EdI9a#*k_H zFwXR}1?Ig-%1d)HKh_L`E54B{osnnB+E`w_T`~=yjE}fbOG&4~yhUS9M3YZYU!X2Y z?4lcO_wE>$1{RE$;(>HC?*UdIWch$-)p2`YeJ#%oeif8153v_;cT5Ir!VFVloJejR zvzQvR$2kzr+t(U^(oLLwH2ocA^#zVDgBm@ju`9-289)REdys&O#C}@-E$nzM>4Ky(rDp(W)(NmneX2t-vid}X!Lx-dR8wealj_) zSP^HG&=%f2PM(9eONm>W>b&kNxy}SK9E&);2Sl7b{Ct46@S&2AllvRmfU%MsNn*&n z2cC>huOZbpq}ELfoVC!jst%RHvBIuayRfOZoW6snvbu%_iC^));-=UnuKNnDv-UUp zF?_nC=QV~3*gX=xxQO6zOTGsre(^t6o3+pXoK&hJR!sK(LK2S3gB*1A1o7_amPsoE z9>)Akd^kP=%njoL5#!-oSoMVPdq7M(vR>m#B_E)p-{V79RPJ+2Dny>ZDtbq9l~kmQ zXala`P!^nMn=|^@)-HR(@AYxSPS(@Gt!^I~<~qo=T^U*xCgu78ZVr!UgO*Zg`U^_G zz}4rMMD_DX+r@7_65O#Yn1;VkF7U5#pVxe94(kWE9f(qzS zkJ%D-!^i8?jqwRN835;amB^hhwH#@1S*C2xO+68wYdE*RR#cpY$9J06vWv+|x}Ix= zSvSuil*J2u9~r?*F+P4K^V@tU@$hHM7Ju2yxYd%!SOWxKm3_--p}7)v9&+q55J(RM z9-#?sMWNM$IybzD(yRx7fbWCHV@mZ#`t!6&y6J)m7LT7hq#TSi$Pu(?6NWBPY+U6i zP0zV&OxjJ?W=rp4IrsN$Mz>6Bo_r+Tb}Du|Q_?82xj+VA(OH-TsilnBFSl^jkPWVH zG81K1BB@TlcGj^d|Mr?owhjFeigq?|lKPPi%y*-S^*g=Y`r%=3a6G@TA989I((G|a z*HKW~J>URq>dL;NyE!}4zC8ca~!$07784mn~W3g?OW@8aBORGY+?ox@Qy zW6dsce7m*LT*yJHWYGH%r^|+6t|Gk4`f{5_iR8JOGOgE0Q^4<6OwfubWMh}v_TCm%L<`4ba?bQe)VyUqd&{(B6zC>zb0gKFyh$7 zk53+ilm(l_<2~S498CBY@kV{=8@m%%$!`7E1r?gpB=-iC{K)O5Sns~t;I?Qk!ZbFs z=W`T$1gmYPbe}CWX9fE{1iWG@d4>0wmpGYej!XZe$cdccc>^|T~iGI@uPgM60`?C>d)JuFOi3_&w z&E;RS$j(Hk2CIS+WOFM!t#9;WPL)qSoVnC|Pi@RYQ(P|(SE_jQ>a+HQCsC1Eq0txH z+RpD*k*wm5l0JO{?vZa`eoq}SeILeksrHh z!NimORL;$kYR#qjtuZI7nAAJnnpUFX(XCC64r8ikZoR!XHIr7+>CX|blM6Zl1mQe( zZP#K>QFsjMqFc?Bora-Xil@O#s>Co?^{SmAGj&l0NtL4Xazj($UYWiRv3nhxo(9ku zboO2yG$ZIp)-K0}K^BLoFr6t^y) z?b4!fm`S~Qf`~Z1d?N&~cPXgkAj~^V^_=*NQ-oEAuToJxHIK-*F1p$=BzV~h+L{m4%9ER^*3qk6MOSq|hEqHeA1)kD+5Q)~zg?w% zCWozM1sO?@ZkD@ycMPc12Cv5im{%iI*K+tD+bUJU9DtgPEL_%m+SKN#odB`-QF&+C zneQsU7ZonPvl5P)G?{?G?RT+tO~n_EBV%D0Dt2JAgvNiBddTx0upaQ0w5Gy(@2t(a z$g1j1Phj-fM1U!OZo*DFaTquMe@vQFVXWe^mt7<)=a8FziLa0=o(1U- zR?NOJP$%MZo5L*uT6i@=%q&JttMxTR`g!S{gKA+C*y&bk`VGuD#@j9<1EjhXO9Bi- zfob<))#E~z&Si|@F9?p$v(FzR zkw^PQV)UkZq9qt&6g{?7;p;-_r?SWa=~Rp2AGOo`4;^DY9|id${;^@&4jt8`t04og z(67*~U7n-98iKJ+TI^%Q%q1{dauX|nzd|4U5@%M`tynnuh3n_W{*ErUg!#w9J>Vjs zPEp58Ip;haUy{I2Kowh^n{K&-92hS^tG4?=PCJn8g$CjCy_|t$!aDl*jGwrT^m3y( z!pYH5Gb?(b&%#BPhkHqy9(%MGXzx;E)vBiGHg?Vo$I@^-5(y6H7jrydaUYu5Mzm}O zCdt@$S1aGu$uInEWFJ{s;$FHBQl`B2Yj~PL0RJ*99aFB`ifAG zbH4{LjFBW14qIIq40r5UATFOJ@=WW)dht@VJT;nH%)wU}Bj+`6c8wD7( zhlRu=Xi)V?EFK~)g6GMGGnG)F8!}9Safe`G^cN5R&J+99ZkFx-0(s}QCvfj!C^loY zc0VJ0NA|aEVwc}G@KiJNXygGMim^{9Z57pOE@2+{ud#hUQz98ZyaxntFAuxMU#8YF zCq#W!Y!C}V8;1GJjE%ft;@F|%Qxgw)yM1hTkYfE#aAmrmA+jg%AJGW8L2jR70+wxlJ!R=^Z zQ^;}k^VDuWldcqZQ;ruupPG##nC=0Ib1&X%t5PXB;wn5;k3tYfnq!MnqW4sH2D z$6x0HN%PZdEX>6|(j}9LMSOSM^Dv>VH1zSq$iM&s-uh^~^#W@)ggsXDs)eG&&>v}0 zk%*ZHUR}qg8%j4puuY^WBHVNfAnH`1SE! z0jgwv&iKmeE@8F1SXSQU#m&2U6d_GL2&mNRGluHLW%c77y>rNi5d{-z5?LS5;T{^mNy(`-%Gn;IV>?ybJ&X0|Uf^f581B(S)?OtrY;s z%QFGU001BX*f4Ma3w|Ov%pdRrTbMuLIj|TOlnxHO5`yJ$e@co7-Xs1KjQ1z}fCmHn2On|} zANEhUj1a5<6Y}rB`+v6GgBl>_{WKs6AR{6oAtE3nAt9llAfuw=VxXg;p%Y=_VB(Sy zQ;?Gplaf->veHvhKcyihW#D6c%Fe;f%}qfsAk5Dx#LC6Z`M?AQ1qB5i4V@4JgOHPo zl#28JINkpQu#kZ{7*JVi02T`d4h!bK6`%m+L;!pGp|k%?FtBj&2#83?D5z*4LgnKJ zOTody!yzER!-LrVU_Ahjg@8@PA&!WnZiYndg3I|jDh-)NqO=K5WAK2M%iJ{(1r?uw zkcgP>2|WWN6E_bpAHRU0q?ELbtem`prk1vjuAaVug(bww+Q!z-&E3P(%ln1To3}yl zf=C6UNw1V9HIBgz!ZD_rthgE)?nQ7L75Lj`gfYQ4C$f3|4C*} zIwY?@)8dWqyT__JNqf?H z-DN&k`EJrrU$=~aC*2AjIyY%yDlj~Oc0qEJ1V?IR5Enk)Ti zhD)Jfu$*DwZpYZP6_FUbtnr9*@=I|<8Knnh9ud4|LF7SS^=jF~Ok=lqc%+lv4)ZR1 z%_nolyw=MwX%w|oX0Uhalwd;{zW$GLd1bf`3+wm`%I+EJtC6dq8v~C5WyZ|`pTy&W z>rD@|sxO++KA7U0CRP@adN!^dO98>3=L4Gsht?9BLyB2x>r%4gK0G6hQP;&1X)HFl zXk#It{4zShlpeV#+LpMxz2?I26I%=6dkOLHcMZ4Estc{GK$UKKa8U%{aCJ-uiuP-{_?}5i91cwo|`L<=#)0+cTmIB8>pMOE#kYn-C)Yuy2s5tPQ zGp5YGNin{*vjWewQQ79mLJ6U{QJzPn=6G)5E`?U4R>dP^?2<=6-c{IdZH|P?<+aUn zt>>UfsBq3A;HvA$sY~Mm|1N9s@o^Z44J$OM%h<`&%4Jx4qULkT?;0W27m4Hu$aNXI zi!z*^^R$Jx%c805dzA@(tFhHhsq=^ zl$Lo$mG!vBwV=kGe?>Dl{p;8CP{!YKj7j-9YCDjIg)OB>~3uuLlA%EwNNe z3PrsC-RNLM0kBnotYX#Hx_t}_ySpLwJMI4Wtu2_!eO4n33Kf^;S`WjenzyR=I!=@e zbBSk7a6e2Xyr|7`ENmc|AZA?TOXZlhVUgg_>9TK<_o_{w+P6Lozx1}|A}>uGa>#V) z2^%JZhFbbg*HV;K5S`Jk2RbK5Q_cYRh*DsFy`MIMt1e9ygsUzFcFiBzRd78#pzO4! z;sR=5PKcr^*{}Sga$H-Vds?8xq9J;Yw<+bK`hpX{B{>)`1PmqwP>q{QlOPparpS`?A`t4tCj2*`>m$Gj~JCDlI=^A}8 zQ!kTF)TMnpK7z6U|26Af?Uf}$eza1~@L$U2e7Dvqv=#4jk}?)_&7&jS(>WxsdAiJ7 zwR?R=!9mf?970=4n;bJT)J4-vBTs|xDL^}7;$U%SK!1C}yzKI+b}8RYxQ=G?+l2Q( zFw=bQ6(e5UJFP(Ba2A&oDrsB|AU%}fzvMj1M8y~JdY=mNI;k_VUknEHOWgxMg0u`( z4sptLtg|-2c{J;j%WI~C?G1aGh7QG%%;CLwZ$sw6S3>M1vgP%mXOr|Ht9mbGel)Un zJXI2a9J1U4zb=0{5=`_YilWh{hcXZGOZ>~kfl6GJho4|)`O;Ft%Dp)GOI;EkkHenCm;I4SW0$=UCL{`pPW8>-;Dm%*!gi_Vwt z@VAn6zVFzZ6hHc2yK-_WG~8Ura~2Mv^%|G(^6Z59fIy*XcshCyG!xDrpNKN4UPw|@ z4uSq_$kslVl*hkyi(zYiFtU(FWb<7`Cv>ZE5k2PaWx`P=*czwl<&|pZnCYZmI{;#S4e)R25;m?E zihj4W%f3Od$>!h1x@ej-w74Kla~E;k9*A0!XD2hNvnws|DU3$8sdeOF8?o9j$^k|e8T z^&bm9)(Q(`91YHD^Uu`ptbVSDik>GKEs83-_;mPL#hW|8eq)R&**rzJdtS!71cUEM z-gQqMA48$&g~Cbye%C$VM{Ej$jh7o>BTZSSGkiBUraqYY<9D*>B5)Q6=P-U{_zP z=NaeOJ3SKmNs2>UZgG^?xae*laKboq56tJ}uUH;uOm37ggMQv-Y^XoJbF$eWz*FJ& zW9)N=GeMy5E%PWN_t>(saA4@MzjZrtRzll%KJoV>dcX3?khi~_ZsPJhuThs%f#F#m z@^kQY!mWyP%aQsH*@(o@rUR!CiZ*imiZR+CGyCv+fcgs}VaZ9+7Jx~Uxa6mpej6|O z0`_h-@)y!U;?!aI${G3NQP!eNj$TsujEJu%g_uE!L1W(+kZDKO>=T|I#>Yg9(YhH; zG|;+mCqs_-TFfC5S%Yt+ZMO{+H@&3LKN-e4ZR*DzYTK&B&OE7<9nnm-lU8`f4o-X2 z%@4C)y%Upesrzs2@rnPeh%QN-KNza+o-=$+bhrW^5dCLKBF9`N_3Kis|;Pri8!t8CxO!Hz%_ zA-;c1T)W6Q2YZp?zc{Hf`%KM=cjU{fGm3aorXhn_q7G%*n}B=ZBl+ihz&Q01^`rzX zptA^^w8jxicrNaNdw^1y>#nZx2yfE_{~m}kRK5p_(d2I!vJSaSO8tz%?(!_Z2TWY= zfsH3s1q5yLNA&ihr|WEYfp%E3NjEUkP$aFHulGQf7sXDI&pi-FadT|i{loIYciGsj z`O1HUSmzCE7HQeOwUpsD?=Vb<$@QFijUaUEs7(Pv-SmQ*j zy!RCkVZQ4*nhCXb+*%`pg5;Q(L5NiNN^Lw zLVq^}ny5)=J>b3nnkU?A@`q{BNqH|ry7ql{KDd-QF$9R1=xS&M7PGEOg z-U9>SUOsVIMQ2GaP#>78DAcZ)*P-nPGD(@6CS;0G;_Y4DKv}Bed3x#(o6oDNc|Fhw zE75cU)tgAk7siw4^%c$B50nHnn|5T2e1ahMi4u06IX1BFM4H>XCOVMUdLeGIOQw-g z8w)Nk+l|UD^w-@rGs737GNKgfk{|nO+OHVcPNquMXjPpZ85_}Zpx2Y4hSrOsZi*<0 zLO;LsqM#HGF7jCTR)V7~nWKrW>>-g9GoMzOttXqKmx(gs+Ph`9imN--jEbcm(Ruko zzN=Pva^)T%emvIi}8DaY99miPY9@e!6eN+ zpq088I=B-yw&NlG;vOL9qd4ttj8px`aMDm;nuiNmc@9#}iC$q9r!JiZ(_V2CpGK!v z*+$THpE3yE0|sj%h~U_5D!B(50#0a5#yy1vbyX7BKlnc^4lTWY5T$AyB)>|Msykk!A9x-1lJKTr zv;XgLl|yG4MBv%$({|`}^M0!T_C?P<@HKI&(3BvcGo=vJEV=OtrEoB9?H&NM$dI%; zk#3nAuM13?N(1UdnT{}DQ5*rIqTAc|0L0*oIPXR&#E(G?*Z{6H2Bqb#BQ6s67Jodm zsamr>(lyiShZDA+C}_Kp6J5FoZ0-TM?J1_Lfw&Qw>zqv!%!B?rMUmROoqOPlUAKX6 zR#f32;9bCx{%QaDZ+}nrG>_jn!3>=v5urSQwlu$;oy4q=e%;?Qg4x2;eDR^x^dRO2 zodBEHv1lcNvBSCPRsZt%VTtQ=B88}rGRQo~6p=f{eq{M}S5KMm0qkA*c$*GLQ$Ix( zzx~&o?3}V2YS5P<;QDIX^pQSnIzqhn2h;(RnJHn zf=RQ*oN~eBc5sFcKI!#EPiTw@B1WoTS2}-)k<{t7N@s@LYTydI9|*n1>KO()!88ow+F7uHp0N&)vbj z3PvKy3>x$TbgV5#o3H4-TrE>F;oQ-iV~?lh+2(D=5q?zWNaMmp=3VGYj5!ANWn@ho z{UUI@#GxmT%X4zVE2fhDtMSv{1d?!jLx!2q?Lc z2t4wrJZMX<>g?!=$^pu*mOZ$Oks#R{Q;v}&9oduOb`h>Us0i>^hq?t_+@c{Sf`?>D zv$kJ|%Mx)vw)d_>TOMV^m_&Uw+Dh<|(zM5aZ|m2(A4Ed+VmbNC2=~~M%32DpZpy`a z`%8v{3?mcC^l9Zx=?ed}m8Kq23t&ADm(Cxio-A{UJV~SkzknrK*%x$#kQLN{V%4Up z@%NRlj_rM<@O5^H8!&N`s@KP3Lbn+?f-LneETo4$7PTXxk#3})ao&ZwF)IdZH%aY&76<&ts6MW79&ps7V7B&O;qEjZPzD@o z=?C>oyX#{`jc~FzX>cNE8&0>_!ZtZ!OJk!mQU0U|dVZm+cF1y311>a!72f?U7D@wk z_BrPn93uR8+Yk?RnsoPo#yzl?=+9|-%67N;6_e+J3Y>Z3_HP5aZi0NEFA|zCFL6r( zw(nF|n1}7M>Tx|$kMDtSiX){;%&SezyKse*e=VRnq*7e8HU%HhosHlMV!SSZ%77>3 z|9eYEZhR<0TX*R67D}tuMY~5xz6|><=MX&=GpW^tm}yP^ko6O;|33S|>x-C6o&Ctp zm?f__Y5g*ux0n~Ys!O7X2HSVEgFLokvu4a(Z*DAzC}IG+lc5!_(shan#l=*D3u63^ zDag~|#`Ba=>(eLS+Zzg&O!t0JUXZK*B=A+eJ&W6_$SNb=dg0ZUG{L=V(LC;@T83QQ z^UQ*uMAs04^ubCW73;O?LhKjxyVwA2>(vPh==k zj_t%Kj}&?Mi!g693iZ5rx8jEtbun6J$=>GlI22b)dLy45K_nC0kNK}}-v3;dT^Ao7 z>p_FN#Q+y|;k#&9g1nJ{&!5s#%W)hXAY zBU7>BQkC44$!%QZt8V(B@-w?9C28H>qRNLdpNbIc{h=;Sq;?;XEv9tI8;*^QaW#nA zz27wR`7}myE4vD07(#{R+-c(Jy;OhcT1(>^J$3oPc@RDyQkjB!Hf6I+?9utT<&hrj zBcxU11UrWGMT_@`=RrKCSp8W>wz}+1!eQBJL&Y*K5plBDd`n)ph$r(m;B#+#JY8L7 zskHCHWV-ciY55MDdD=eOW%UKtPDinQdU~kjzi##Z-`?{ef zv6b_2g=qSyXj%B!TL@TEi;7SRc?)_&ouLqSGfHo$gQJ_Ew=nf@=7J#nP|QY6`5VRE zUYJ@BJm8UZa)nTGvvRYtvw#Opo}APm4_8YoK@BOHKRJMR!qk6?>gDCd>cz$CI0ruD)Z!lnUnbMkPtfJl2n9NlUDBDb{oo7UOG z)#0}SmKJOf2M82Ia|12T@pn@X=U#tfKPYT%3w8cY0b2HNED-)1>Aw~Jp=nSUrJn#WIv)Y18csU^!ynK9oEPU){ye!=O=A112{FdA-=9U7y5KeA( zUJFjkzvxw6Z9z9ObNFX@9{5;-e7G$+xXrl*1X#GuEI~fz{G2QTmi$&Myqs42pb#8Z zR(xjEl$I8PGES~gGq4|Qp=Q<)HalmCH8tgfy#&S8`G~LY}EXTpi#mgbU!Oh1B%FoNr`zMAD#MKS-mj_nA&mDgYFDU5>F>`lv z)pBxj5T^e7Sn|Qo{xGqets7YV;!n@jgt+_(IoMME_8UPniw7?hrgk&)gn$P5qtL>} z%+VSGjwi5B|0uEjZ%k|^z-a~HW#?hxK|2IcB zCo6X^GgpYXHQ3*vq+oCVK0u{p_-zHozuNJ#fjp=Po~W{beb3IT_1B3iGdrgsJ3BQS zC_mf7koiLuwtv;~cile?ufNd2G5Y}iJq3tR{wMv%0{^kVe=P7H3;f3d|FOXTdlvY| zO9aFbTN7wtRs79$=`02PoU`^q?U+#8F!lywZZ1 z6p#hv0cAi9pajeT55N|10Neo<@ahPbxB(hqy~O{9p7=Mt8c1ahQrQ9)AcYj*1V90^ z-}JykAAmSu`iE`ZthhLT7r~%Q006?={rxc=7!()-0Jk6S@2}JD?{Cw=pt>0V`04l$ zdZ(`dz<&ysfBZ)oZ7Kj@z6F4))_;_lCjdZoFc_FO>1^g|_Pd>j_&ZoDFaYr=2LLei z0RU$J08kD8up3zSP!D8`gL}20t(1BJ;Bz7XJh29O8~tzeeu!fH+iw3B=TH0n4&?hQ zpzMEeh5bi@`#b#(tq6%Ubqe^r84golVYWF*A3g+T@s>jh-)>!gk`H$=6pMUTfqkuW%*>9OuB^Rbx^2+(-KkxbM=Vq7H zhZAsL58S?{I2jX|z4;u~EByz)StEz2u@TGY94;w1kP(MZNUQ$!VagWt+Vnu4d8xFslY_?_8Pqy z0I;j(2KIcVTW8ZhUI{zLWOzVzuKH&9QBYO#BIhBj6#%ZPzD=0Ax>ogH??-^Qs8r{i zzO5n$qWVoD*=P=a1fzHPU@_8CV(R`&P3Og4YvIZsebN~<0DyNmNHq+ai5aL{-Vt#U z^C?MHV)Z{0>0t%&;qtG|_QkzdULU1O#NfD$;Y|CLo~*Zm^8@|r%itV*6a4Y;%9|o@ zeJ?b}Wrc&PhNt!6tjkcJL(>+r8E6T*mvh-3cgZSqbKL$+2dNO+Sgp>Sb`Eo1-}MWf zA(|}h~FMC#N{aMMGQsqyXSMzoY2F!RWd=;)@pC?S06*l4&aoXuFXnx*g{#v#; z(vUjH(Ubb!9T1+Z>0#XeB9&`eeChk?eLNlo8|K2af3i%M&P}Fvy_Axj;^DyjfZxsR z&}=Mml5di!6_(?s{x82EIOS%Q6qbIa&Y~aC%{?vBLgR1Ezr?=KZ29Z2rP={0!g0O6 z`x6a)1(_L88D2RpzXqAcs%!3ukFUyH;&-vw^4L1$hd;){QBZN8REuiAHxw){*K`ff zHuJ=PIz<1-C}MhT?#l}H%uup{?-!w`m9Eag`pcpM?0f;Gm#rr|5mvYPb=4J5b!GiP z)>1R!(Ix)3=!w@XQ`Dv!rV-g$i#ubyieAqrI<|uAeai0vMc1%wvqBTmmvt-L^e^Lg zriW(=P#C5~!=p~{#zYa$@YY+5HP0Ql^=18CS>^e#8NV1jS)+yo$@aABWf~QkcF9MJ_Nu7m!_~hH&P}{))$?&n$Gg$i2=96^CQ-BvGo>6)DT`AJsD>u zFK;{PC0_Nb-}vu?b!Pe!{95fM#-a?aDe!Dh3YNxZ%BD{vlzhgYu&f62>O&VEF#nqb z2TpfvkAa7%Wdt}_#NQ7GaKwXA%>XPC4Dw@q0(M?JJ~13zEJ8{udMCv=O>yZ{>@@n@Ja=59oXsGvppOXz)C&HQEetd=FiF8^&x~@&#p8v` zdNj*J-%sV6*BqfMuP7CKvL4icW=;ALb!C53vdlDAXxIsj$^%a6G>utr!rtgr1{ctX?9M~;^#{Tpra(u%(u^)XmCYQtTpnf)$^>?@~l;J zt(9}F6?3c=va98{t7W&VeQHQq(nwgSi*vqi_RjE^>l87B<)08OODJDC=ps```m zj+!`MBJw%L2=DXycLzdjP`Ai-NM8fJ^&N%m9L5`V?>Y5XH(y_kaW*ecluq6QfxFM9 znP%Y)jz4Qc*A!LXIoeN=)%iX%{C-%0t?a#&)<#Kw_eys;;#LV}+j&Mum(dQC`%@6=?e;r#Jpg|ZN$1c&liVUY59Y0$@SQIe$PW+pXQe$sqgdK#_3(5>D|83FWIBH3B~T2RG^DPSiglT7fz zUuBT4Rn%j9m2B=o3Ig6jRYv>vpJWSgg9h zcVBl^@S@p&pWT( z6wX+bjItvQF;S!INu4o4n^sqn-kNKv`fwP{1ZOBjP#9UMy@y4mnf*2O^%YxaJ~k?) z`9=<1lMS>$lfki-gn5BMye}DxbK7ROe0{m_Q#|0OUfSQJ#lZ#tSLPN{k z^>tKqT50p(&;dRrEuEyMTTD~>qLg%CM%i-<%Qs8E=O}P}CknI9?(D*aoGIS)wV19= zozhlRL{X7XAWm|2wA(_=$Ze^>-CChT@_i}AXngIFO6FlS;pMOighGE|iyjNohQ z?My1ir@RwPE;6ssS5ok6bXf>|2tH)I;tJMGxSR47udWiIiV-fU9JV{|sg1+ow!xmN z+?J>x^?79M;h$jkMeErn;|o;EH_2GZ9)0V&G$CrAPbMiG)C%N;UkQKSkBAt73Or?V zzXxI{24`;$lPG-WHW*dt=Is|PHb-L+H~F|C&_CaliaJ7tMrq3Bc7pv<6+FYfJJt4f zF10-g;FX=kw(G{U@^yWtJ`vHm`ipacB!!<(`U=_x_kKJ4`_j?Gblj|P+nf4_cruVB*jbsA3m~q$C;0I#Iai=bg zW%pWpeDSnur{d$vD}|5zY1j;mrn9hoXbzP%SsX^&u2J?Qzd{z@z72l;PKuOTf+|TF z8}aq=YQOz>?Z~@xnQ{t>h>&+j3}1)+#CGuZiDV2&s8FCV6_ygxNWj$x2_tdn3$?G} z3%qr{DRPc)Ed~cjmX?fi<@NKRNZ(YCR5Zm6RV_cdUD~YKg|F~(LZ8&w{7?+)vtCw7>- zsZkko9Ft;dm_53l;3oLQW`M5Je(X)D$(sb@RI>@|xJOqC+sfOW=wJIDi%oz zVmZWAElY3;5ns8JB$~U<1?yR*>NTe2+dZDU_OY?&ge_%Sk!#xL_^#?U1MNL7(G|oj zmF{wa%u2B|3^Y`SzLjXsET(ExXC&(4t@V=rPzt9#sHrQA=W0b9ESNf5%d_@Q ziFWnlwwwv4>qqek=|@H#dKE&?9)~?4CPI-C#D>*C0N~hRr!!{yctosSM{Z}fYTYAS z^oJK7+>7*-Q6m;RN}I$nz%_`~qEMu;c%gb}xb#DsyI znm`Ee4=?rWQqERoZ5Ge0EQeiHzf`%j^`vB@2zulOE_XM#xLESmmuAHMX1T7DoAP0O zri|~Fx{`WJ(J?sUZJ6B9sBewdbx5ST(Til>B%-f>S?hMw_u5+LEt^_XGqdFu8nDI> zGne(x`~XQXe2L=G<^s=*XCWupUPMFH2^EZKm&;~Vw2&qf?{sGr#O0;fO-*t1a^+uH zvX0U6pL_FbAOK6UOnBig;~ObK`gRYSLye+U(t^#?r?|un3|hAER2-&4#Z^dy5uAza0XuYD`!CC>@Yt1yZ+-3j<^}ZR=-kWghm;>L!P$A_Vet#BgXzuN{k_r4+zV(I z;`zCG!-ya6O0eIvZ%KFn4UXRd;BvazBK}@1{)=YH8=mwa-S{$Vb42@LxFau}a?=?d4)^irB zsqIUr+g@y5uyn@noE^UOd5PvqS8w{60IaJ#sn<2wc2cUyO|VGr){ICF8GG?1Ch65g z9_1?)&39j|Th!dl+Eq#&EVuD<`AJ+J<&YufHL0JP_*Vg}R!`z*rY;YgVmqzuuH9_c z6huR!Cca$Kbf;u&t33HurtenH&>~}~>=~0rV=KVIm)NF~&H5_?!^A~<0`YD5D@*){ zt(pL|OG0a5mB^7ZZQB=`Oj^XpISdQDrefYKPd3qRRU!Ojo7RB?>=@GAM*3=0T3yOX zEbZPeC;MgV2EIX?bsy(0+h<2UE>D43s3^}JZua+n0^Kjg;4{#vdgWcyM}1|7f!W_@ zFa;U0JM`Iw83|cv;@OnD6~CDbo_*(mh0c(+@>oO0S;oRX&X>61XwO!vmk8ib@xPcT z5$`J4+Kch2Ip$b4A}(NgrxVuW#-R)AgL~1Jj1^W>^G+v9D@)%Wl%9$rZzq57YxVbb znsk|$aL1daYKD4U8*&v%nQW)Ru?t>VU(giO7Z)cP+z0ihBGMcM#Lw>D?3LjsVB>#z zJ1I#-Yk-hd{)oga9scS-$)_k1J)l#+zpOnt0A(gPShgRfq9=EB>2wM%534DVmrNa5 zK~0QGY$3XjhE@}QO-&}^>nbsB3ga`(^L|_0y+;R%>YRZ>>E$^JcvS(%*&5 z<6YpXe;mJu$FPxsu)RHDoYtIJ3=J`4tC(VxE@11AL|@OOITemGe9TfP?M}xVs1Y61 z%$DJB#qGD1l{rflkhhZq_x1>l?!H&a36w~Lyx=&@T)>5&#Fe(Lqq)$TI zvf4uP1ilqj&EmRHNje&#Nsy{A{bZcBxXev~3lG z;l~}er&5$-BC2|Bs9eXeB=K&Vj!~>lF5Ov;yi_l=ovxCS#zy3ty=FWrQm0*mi;Vmk zJqfObyB=TX9OIIM)%N>v12Xqt?PtYL+L57|Drq*!wg-ew(BNjav8!>!^;jOFIUR~dmoWL?T0-H5 z0>(=8TiV!foaZ?Pzwc`mNi&BR{|sc}GGNO~KETW$c*TTLQNZEgQ^cM7mWgOcya~Ue z8oxPSOs>7Z$&uyF&DhPNCCejvGI-o=GRxR3*!Q@E-q8d{gDc+vRP-?oiFZt8*+1dK zv{vNG27+-yzoB|A7%D#-#>P|jT#_^Gk&W(@AW>lgP{0UXFc!WQ(0*81!y>>VKYEM+ zi}d%(8bHLN;y`+gtqy*-%Ox(MVFs?Q*}26eHCZJ*C4AG1qvf z+|=H;QG1jCnfZW_%sYCy^P@~5F{wv83w`UQdqG%`orZEpReS|+;PP9#iVyPqFiQCl zB9DBoEbOc(-ANsq`a+lfPEzrcN`0lo@o_uLaS7Ty4gNs5ybh@Y!Kfl3dp`Lw37eLk zHqMYw9thtmg6Jd;#DBh-7BK17l_~PjkXZkY?GWN3!8lLEz47in z4IiDMt=9MbZ^xd#XieFq55e?P>xdTUEaxmMMRipjIZq?q*u{v13=tEP@b+d|Z7Y7T zBIP}>?jl!5c>V_OrDNl}PcnnD^}M3Q-ZN=ctNK&5>fOxR3TRnnqX;@k!=&0Rf{7O5Da70DdQxnJfiW=eBG8F_+~U+-X9iz1ixSt;Rfp zrx54R-qvdj&pB7#t=p;kr~zRu2IZ~g7|&!_6Qr{vUMq_n=Mo+Gi3ZfgQ835Frz=v# zDYmFe2-rFZIMvj+7&x@g;U*O|8kYzz@8z8<7Z*uOZPQNqXRrx8I-(}x6%0av%Y9=b zVxXH`G^TLQYOc$U!G$;)WLED#+SH+4qyIC?nKng7+n|>{-|gMn(6NuB0Y9nuEaep@ z%(tPE{;bnzt&ur{A_gznzL@5?2WP1$fY>Ey6G^OgilkRmsTGU}%QfmPsSl0YI0})?mJocK__4)+QIlUg9c4Ec>I-H4@iF zvrk)&VWQT-(B*)YF}FPyHz;#LLk6B$Cx2OwIoXb;0B)MOCO^UriP~ZJtbPD8!Tzv9$Fw?&km)?xM0_FTKUP zMDK=-s?qU<4D+l~XvfdOYWyK^mI; z#gG6-Lq^xUPNQ?-Uy6B)W8Esn7cYaEqF>O?1rQ8i>v@@5a4S@(vGAhHj|gn6DIUEY zhKzR8xMQ(7GRCr#PPt^s7axZP^Jq<}5Nj6LRAttnC`8K%A<*iH@nOjZjKq1m zR8l=2T6y}$Jdmuy?Sl#Rp0hNmL5g$T_o?^v%|6R2ED6}hUi@*eLez&c_W(#BX)Cdq z)uTs{n>MW~P`bdj258ic+qU^8p)@RTCuj^n866(K&BS)B$eoj?jrNP}D)RHmR(7XW zh@%Oi6#Sx+qrsCC-mN_GTF(2O`6nqQ&cF!+iRd(M$~k0V$X1l*lChSQQW;9eSbVbWjxug^5!TuSlSiCF z7e%rJlSWKGP`xa<%+a*_aA?W*@y=a1JdfLA)d-I zL#uRjer^AWjz7iHZGcY77N(ML{aZ5Egp9z6cJ8pWK{zrEu^YP0vc0XrBQ(5Eu+F_^ z{F>-)T#r`78J!-pWa}My4Xwu+tn^;DwfWZJwCeA@a@F!OhRhj7gD-rN5 z&u=)O5`uiO{BU{DIwVUMSa6gL!9L7D?|w?$wWxlnz#G$N3p3$#@#D=G-=)FtI7 zjEY@K7TzS0Z`HpaieSmN-$mjKx$*p1o}a$T!y{fX ze*H7bs=%Liu;@^PJ#)CM|CLo-iAAu>FR{#~kJH!Gd^rf|(R01B{pZB8X9hO{S0Ar{y?eL3Su_BG z9i0%U9imN7awViH|7+|bl~BV1`9`t{il&)SXwSWAX-&UNk%Aw@TNdOPgzc_{mpde| zBKp|K$?bVB+YaB2=52QP^&WiXtU-gf=*v(=Uk(b<8C!};`-8Q>_exwritw4)zeWQk z*$Sg`AUL#}l7b@c1+V2tGLt%16-ITe@D!X^(x0;_ZLYy!7M32607gUWr*>4m|3NQuFT(NC*vge0Ys7w-NvY1?I zs?HzjuioBPBs*;!3e$5LF8P_sXY6xdU=+y{lfp;fsC@XaAK`By&5*mvbV^KV`;=Zk z(^t-lGOg6yfhg-|vpIowWYRrFac~A_smbXxj^C zsR+&8FH90KXZ+nCaZUw?3~sA#^j|uuFrLTKEM{X>%kA|>V3Ls(6ZGXbNMu?8Uz;ZZ=Asv0L+){sfBIN8UUr#6Ioanijd^tgWRm3>ju>p>dJL_gD%F0FAZ4iT@37L3+^Pr z*OBKBCyg)&un4H=k5L|e;_Bh|lE9-zL@aD79FE7h)ZmW^aq>u*xp>A_4&%|XgS-8j z;9h@B8u&)SE2$9}6&+VvQPnmy!Y5_n?or+}x&;1c(sQr)^o-`g<%7dNk0udCVNVGl z^3DckA2pqOT&Z7bn>Z%%sE6jy=w*tva+*jMVrLIKzE7{YqMzA(x6LKUXg;0Sjki7J zB6yapVu5frNE8jgGGbvbP*Z=(&o5q)s>Tgb;O<=ST3dFcpX{Hbw@Ib&nW?0CO(zAZ zY-HnX%8^NENrCueDYpXghE4PCsg0BeUKE zRVHiKJ_sHC1L1Y8O9HYM9M7C&bZp8hyGIY)i|-t;}uIDyZp(mXuC8CR4%Ml&yX9c=UT+b->P`5DL&)XU-uZjj&G^7t=JXA z8L73ChLs5Ev43e|`EklOBS28U`ZI@1j+k;eUaK4mhlKQo*4dkK$QKy{QvbsQy9s&+ ztNQ5S5)6GKLbW$r9Eqz1&t+IDdTc{c>yF=kieAh=(Oc6zu3AP6?|FAd;@zrW^`dNv z_EE?ZZ6cdL!APL70 zsIP*k_2!TW_e8aiD8mm+DEC-pNZSxb{6teK8~DmQ{rnShNOnj_Jh9Tcu;5Q0<6&b6 zJL6b>@p+e->8VQc;1Y}sPJ#xMg>G6Y-^?l$QD#x zBPt6Geh9B&evJ~k6dEsKlqM($dXeCZFHqsG`OogBvJ4gDBAHAXB4TXC(N1AgITIb# zCLTjQtT~)Qgy2qx?IRkqG70Hu0cNF1n@lv=hJI{ zxlQhMVg7|h#sgFHD*0{myxMb|1I_xM+*{F|h|_+w6+0IAbI<`CbWMJK)VGMaHK7y8 z**Ym$wAv0UQerMxE^2hh5-${Ma;qMb!6U$HrXjGaCXFJaaNyu!t3=T@Y3}QFTInQW z(`h+aN~yzZ4-J{&t<>$r5RiKei<8QWk-$pST*eg6UcF^IF>iBI59G3*OCwt~OIbUE$Gm>L_fP7bsr5NN_3c?oiyl zv?RC|Z?P6Hw52#TD9@KZ?|IMp@y(CDS0>5KzGjkHYwdmC_d4(S2jDuD>%3yX%TP_B zBXTL)UrJ+Wxr^*SIDB8Su@l&Hrx^}Ccf9PrW7{1)Y-j?%bZx&!AXlgNhqO zwYr$lW{e>ijU!Pq4t9q-^eD)fHok%@o-~`R*`_^W@|_F-0P33xo2@2?W;R@C${?mv*&bl;F^-IUR7 zbZiqUz6nym!O?k1u;3t6Y(ZiY`{2PTdu_l7Hqx!rCL$U{p&(MgCGeW*dnuJp z=u7|iuQ2t8nGWmMKee_p%FiC(!)>_J$aZ~g-eug34l6ailC1fxvsCE3zUy6e=*?wV z!@MLtRe<2a-i0^T_Z9ATyG*Po>MTn90?#Yu#GbH92qZmW^n#Uef+)%ny}f${@24@r zKQa!?AIBI!oT&?;5l^Nj75KeE)6^si5pf80kQi<>vR z{%}NI%jJ_@ef0~Tg>lR0PVQEB;ffcX7FH}#rWe<`k%xhb?3bVp;sMZ}&ag8hNJ|No zPi16uWYoh(u&rjylX5!!wrw`_ZxE5Y0AY*%j82SKpRz+-M7-INeor$}w8^CQba~w} zf4SE<(a5FUo^*k&$aTZ-fsS5HV{2L={Ov%AM$N78cK=7%-OIX-I&PB!%BSPae?-0w zHC*9Ljxz4cmRzvZ@po8c@$x=mn~l5@Xn7nx z`wKyXdvRtyxL;?|v~*9VukApm>HKJqz7%en6~+cjGFnrX7pT;%e#LEat1kWBU3WnA znctMVenlADz=F_@xM1&Fj)jY;ob}VL;8aFT&zH{NY{^`vaVOH5*en0ZncC_!^;vhp z)W98Yy01ZqcHE{i=@L1$boq0xm9VPwQBKk{OwdoM9C}ZD!E)}+kB5(L1TUEB~I}LvuV9Aj!!m;%#m3zcP2Ye2-7LYvHF@>OG^MywF+$xR_k}BS`$n zqDg+n3~IL}*!I3#a)itu*H22rVbqS*D;6%@D~A581blHHJLVlp1$v7zzF~vFaSLlZ z+>Ta9ZXOzP?5hInw)wxYM3IaK(jEkXF!N4^sakHxF6i{WDtLBwE!3Z7mombDF?k8I z8mCt+&Zc)X;^ic{?>ud{QT55;z@0oOT|ZE;Cnmh^i+`onm-tU{kNS*yb*^IHWewqA z=J!Z#>`ya381<(=N)>QAT=GPqDaUE*n#Z#45lOxm?wn~~$GsC5vMpee#p_D6y>J%`l(Mk`-*YVp4QOK*zDd`v*@B&mqD)+}p&u9C04Tfeeqz!;j znu=yfVd@Z$0IKByQ%cR;haUoZK8A^Yg|9?nR2td#y14C(ZNM%%_RS&{dA#@fo&I~r z1UIPalj;MFp8j(3R#lHafoWzum3(qBd3jIWm;+NBp{`V?) z5H#F*%N1}*HG(kGU!4bM^X?i0H5zaSb%mJo+zidM2tAdwPdf|Wtcf1=RAfX!GUde; z)El6W^iLUX-uJ~VT5Zfdifni7u^RHv`LsOR$$xYy?Vs-Rdek9hWgvKI$BuKqQocz! z=^p@H%E)*9@9XIuT-|8C3ds&Jtzhbf9YqKBk@#u-N}+X|4So@V4QE~Tf3{W4 zNd1yESMusJbJe{2ju^iRJ;AjeTp0hYMUP69ax(9JI$IubB}xBpka$X7P2zK5rSWnJ z4#ga73O4Pyx@h0e<1ROhZt7n`^;3F?Ya|v^2Xk&#EIFrF$&Rtu_(FW0&gwCE*g(7vbv!1!*AbUE6Gf6bTX|^%EIEzUTi~x z#7>J;eG8cWz$pr^(xk>sBKjA|_12n?%~5r=p0@0`irV+&Oxfd7Z~L7BRKlC$sq1r4 z5H6F+vYPSzGA`M#s+9|@9ojWY>)y`Z3;H?!ZwpWMv0$^emsM8R+m8LwJWC2PIb1>% z`R?aVmiFtaY3mXks7vnJoU8B2>Ng$1%?=2NbV(sarEc2QCsUPi@=)|k36AGVf@{8= zi3f;l%L)Cx70$(kx~p91K`^V3)2?^mJ-mtT&#}Gh1uMZyE`BvTs`OQPHcca8KH^1= zt7znU6xSz7LxhV94mqYzX}FGVTnrG31su-)MNyLI6o{1ay{OSS8)fs&RUR-Bo3 zM9EpX8gS9IP7J&UhSbcggWo9K0mGEL42Kbi*HkC;syD)q=f29&oX>a-eKpaSJ|vmf z9W3~uD%HBc?!N!w%cFAG&$VtvsTZdHk7!h9!MW^|%oy3rsD-EbK~E+Akbitz*ZFnF zB4j~-8IfdOlsAhIEbmC&z>uO%zCDio?gxaB%BnePPQQy=JVJv-*olDX8Cc5hb9WC!FiqRhZb{phyqW6;h*3`k#>k*gRdUakt z$#+MktZ5&1^_1;_kyvK1H#V1p$&VF-lqs}f0%0#|VlN*He$~Q?p*$^BYEYpQ{gORj z^ME&UbI(&1KMX$8TX88+PN@(nn$*fUr7mt|h^Qr9)sbb#z zbS5rKE-RIN)d%!qF7x{QGzwa>m60b_{9Zg%6Irz$YCaa}C2eUaYOlrrxxSNn)oqd z1jW=>B4>th<1%;oJ6^G>pyUp-ZVw*8MEQKLR&huc0~A2D3Fpnym!8OpKloH;*q{oq zCUBH2t{sHhY*~@s5pC(^n1%DR{{_)MWIL*_7R38qf$q0? z&HY#itiy`<_))R2sA3W#f$z}gaH(o8C!~m8>|7J=HeV#Zl(q_xH%-jE;OzDOH2ftd zF~LkVf3mRSUVg<^$FPFM4uhwApWBsa_lSpW!n5w#q11bM4}9^Xq{h^y_1?KjvYlAp zEWbNh=sN)ChW-Lwyk&rb*$MZ}WKBSMp*k-*6GLsxXJ-P1{V_T5IUplm1yuz_r(=4! z3i%~}^r>6!WV2H69I&}1pm-_575fmC3zT5VsKzUk584_*;sx-_ZX0=sS$mY zmXW9&-5g}X>kph6jTtS<(Bb}C`%VArhMyTWTm8BE$#smVn&lgSR zZyYRd5IjS<#^<#q5j7E$m~5t+M)^#8;i-k=EzIHTaZ2DI(vy{qXBuZWUnnNJl{Dr1 zBC{dTm^^Y@kPebgYC%+QMy=RHH>Br6cG2axup#IWedez{W$Hyxg(2kPp)s)hmB{G$ znUUSJJ7%~yP68{i1H>&O9LVx?ArJkr$!&CpJoAl23$C1~G$sXvDhpwEe>w-jJl2Sn?y!xemZkAJz_b{MzzgpMZK_@hbBFe zKiT%ZMpfInmBViC=L4_mrxpj}YKzLke%`fZZ$ZN1 zEOivNdPUFMb`%B;Vtyz?_VR!atJ?Sa0|+6D&uB-Rl|`~u5w7>X{vW{eN1b(yb2qDx zg60KJjBV`=3=}|p&t@f;zsh`dOhIXPXs`m z>0hx1sirB?a|*b+3q$}QekLts2O=BVI6!B;*+R#K)>YoG)Bt{I`e+LI`7iuQM{-E4 zB(h&~#)_~VA-ihLHp;C9nDIXRs<~(jPVV7?7k}hPiUDm-!u%YA*eW@0Ci>8+#Ew() z+OZhp&$9|l+&~(8fk!ROjIvry_fk7kOgy<`T(>p{J9kHK^kZs%tG@`)Za$Fm214Id z-Y+!W#sh%)&0W-Ir@6eRsTwke)0*Tbk_$@O6E%b{!j!uMH)jIH!%TP-u>Y-1b9I@J zcVlcbTGPxpYH45^;ZIC8rDATYpUwH1 zLtT+bbD&YtfA|2xARx~r0zdu%w`XlA*uLMOArbDH)BH_?-uDdOE0AJd-v+(a(ElN( z%J&yMj28!KHh|kQz$)!6dEUfc^L@Z(_oXE(#k*(EsKYm?DLhTL@GYLaf)$8}o}HEs z@J8Vk52vfAGDiPaS$7~Q)|lgdh2Og5pOaVJddOS#K!1J@>>RIUv`Y5WL1Y%FOtL0R z|FM`oa39k&)aWXLLm}ODEFV>#kJXT$F+Gy;=K4~s`PkR26oZzUhe^DKQqO8!Iz5ZM z6@O3>y9Q)TdA(NsT%_WrM_q?21D?pR?hT!b{L-FU=4fAqs`;ONGx_urUbdDWkPnaKr;! z<+WBP^y8zJ+6Ai&9m!C8_rT?D#G*^KM14IE(c3;i293m5!HY?4i99m(&&5Pmsb5z0 zQFY^F*wb6*K?QySi+T+@NoBbB!E(yt78(TJbz|%&@ma$MU!Aq7)Ee5XkBsJ9=bt{K z-ifoT>X`6rS~7tG1$Y^Imi5BwwWXH>Axe={gf;^6+L77Mi>AysG|~_FoVBx}U3v0q z(8imXpak9`Q|CUlF6-qt``HS@rZgcZVdqxYw1Ln`pdgM4qdfjYqMGCV*~?ov@i z#X~=d18yZ4r8qmbz^q=sw=WNpSA{Et^7sx4tz{{mIA_1;aiODwUbpPm*Neh2gfSMl zno3@1A0YX<2E~S!)mJDi0>&kK0+6KD(q;*9CFA6$ZE7Q^A6Jq5&i4zkSq6gnSUWtq zBf~Dc{99__UurRy7WUuWI0XPq4nPJ6+T^Hu1JBBE0DsN^SCJ$B02Dd! zCmo6x8i75~uibeXKp-sudo%#viJB+Xzhl5E=~fJrVRvCSD&U<<4)R}<3%W-l3hpdV&9-~tt+L4XxBqhHDC$EV< zqI?CU-PwBj6juB7gvR%nR! z5`wF@L?ClbcOTo=#4DueXW5z&scj|PB11stEGpD2gbjA0rNuJ~sHI3Ock-K=LACMZ zlX(N5#6(aV9V>^zB0w69UlxLY%X31Iy=j>yMy+%o$Pv>49_e&*7~O?O=Y03mth4#wC=dlz%Of^ji{0%^Kj1n&ro zZ=ipH7=m^yx=5HnC&QeG4{_g!shB5U!Nf*8;zG}yxhxq?CP2Z~c4Vq4&cp)riM3j&5}zsLX5awBh*V=&-{T z)E9Y(;=yMm{;EN5BWG6T&~`et4~K;{=qxo$yb5=q(I$a2bw-aDhguCsL%}mTDUeju zk$9;`oq_n>3?%!_v1jiTDsIv}NmFb7n}(>c4U#}Ct@D|N8m|V3e3^B78ZlNW05HU% z*WQr_;k4?7U_2~Sb`?U~fX^?(W`aD${}g^QjM6@ZZR%N{_)D&XFCnj|A3GLBje za^HjtwZ(BD00}~|@}SqaFNMf9!e_{?!cD1d9&Y7nZ5(6;0@+W+71%5O0iY%mx(g5E zNr)rT3&2SzGrd!0>ZRY?HWsSn_j6InB6e(Lws2a#miD3IJfrztL-~xijP$!8=K zbXNDvyZg`Q`EPz2Bhhq!tcmYfm`i8A#a8<%C_t*zhcj7?S6M!i`Wb|g6x$k09v4!Y z*IsF_(@(&^($FP80PoZoGPc)CEEjXq%BAUzfH} zC|rKOYqnS>i2!8G8mm-(I9ANcD^<+4?KbCS`UY5pXg@8RmFKG?kR9HX_?(7NUxW_94BoogDj)L=*MwNI5vCPCVD_WA!T%E ze_7gB0OSZjrdWBkhQ*vieJ4ep&6iiQf>|s@Z07ZXn3zzW=PfbDx#7Z_0K!l`hO;Rj zDAyV@Q!BupLN6jHa{E~GFr^{r8$h2&`BR8jCR>7V-6vt>y4_6X{KlLAr z{e?p7V(K=6N|=}|U9B*I;Iv-FnG(75f!LLloLNt~SWwe-H?cXFAeTK*s6uH`qVl(U zBx`JHLeU=vcKlbd?Gv+lxJ2f2JK>vvmsQZ+jGimKWCU7XprzqW@;l|0);~6I6f%&u z2+YPn*=~zOC!Kh2n=q2|04Y7L#+2g{Ezp- z1^-tu{3n1pUUKI(M4kLAURU8JDf zo#FWyI$n`7bM078t0EjPy0BG+M0Bz!eQ|8LT`bMMuNYTar!zwqAv+2887`2Iv}w;) zylj31we7A5j77+{^7*9aeuFmtJf2W%(+{brWN9HnczJ;dK>$3Y%zQknJ^@J|ua;MT zWR6CIam&tZ)D%6A7O?*mb%hU@ptpfpZ`W`-XHYp;ZgSxY(Z(L~5vx`*qMoKJJ#G_3 zsOy=IohKxc)J}z#&A`5CM`dNj9gQw%gsZ`bNFxOwf>~G%;PBAsbfxZ2CJf=c2$FLd z2D~p887a@Lj4KM@*>R3QguN(It431mb;ie#r|u|Kw5qM7fw%&$qt0enc$@)6MUfCb z!&TA3inKm~s(R#NSVlVSgvj0APd%xubbi2Zk@~(AC#X3{J(j!)t5B@h_jm;ijGCTY zvvcgUA#Tmqt*1gF8UgMmsDsf}iwUl1cS2_g7VE39Ky#%X33Ua68d6Gy0IH|_gqzXE zVMW_&7`^JUUT0dX0?@~*XNlS1$h0i+So%u6ERYFBr!#DO1P~GJFI!qmu+oZKe?*Ga z>j$V%Kxp-O7a^1JtmWW9t_S+y+Uc3Z3NeCxoMKKQEZiN~!D3qzSmGT6LO5DABP~=r z&E`i}h!brW@+m67Q;i%TrA%rw*OSC9la^%zhnyX7f7OFH9UD#pwHR|XQCtVo;$R1< zMyggMh?>x6&MLCZvO97$ggg+G4y8QmOAt0Uq%u}EwlqzBhh2Kw{KL`>d$JewWDJWZ zHB#9k`}2MB$Ipdt{DZ0R-KABzaq>K$!oa9y`_(_{+j_a_&l$f{$gL`b))<*UyeCv( zAyH`V!jp4<#D6NYSEGqDbvWyS!@)rLg`WaGJ1{ayN`<;wA_;by@^b*GH zc*0!-NERnuqqXwJT;|-qPNl}#WgWel`-}2`$LImIxIZUu6!>U`v1YkCq{eX8@7pIK z(CPUkC>-Y}e$h|CPo9Cn;jqmiRS0-01;p1KUYw?stVS|+iw`Y@ZqB8An>VLQWI#O; z2Pu!Pdw*htlw>}bIg<)*>5C)9;FpQUS4d<-B?J6%UHms$cIuEZwXq+BBC?KTK|W_e z^D>UISF)jo_{tk z?56PFx;AvYE6+VV8JHWrizq4ldqTPLCHuA%KSqxbSdJGndJ-xyS*9yYm9$R*NPd_B zg%|K^E~!n33Llz=ti#bD5?^gj@_<;~FYFy#E%i1LJD)#kN-89Ixrl~e2?l%W?n>w7 z*6KmlKvqwt9uDZ#bD9{R4D|9klWow!R9Y~hNNI+_bZw)WIZFJ(mvPG5VtaI#GNkDq z`goIR?>gVyjC-n-5#qyo`2aKoAPLfsf##I$(hy`KjFZar#Bk*MIyI}RGdsX|SfC{d zBme$g|6N@iCcs-BPw6;$^tZpszeC9X{Q7bH$&+#aI{-!Y$VIEfEzQuYx%_QkTRxf} z_n*wwy(Nu$W{O+Q*ZoA0vICdusLPiW%!xZ^`h^_kz1QycJW1B_O-E5;`-b1 z`6M5Uuz2^Cf`Kq>ZR^YvKp=K4Sv!KW5C6UMj(DOoGe;D|73J(LJmZP*G|U+oF@$Kt z8M8Um6E?ji$c}V35)!CY?7do*xj2C2Y-|b73%pyHqZAP2TGMUE!H3UjM-$1}{Cpy2 z#^X+pJ8yZHx8~-#uWtAW&Lo|-^83jC%zgO14OzI)o%1%@k3WWJ*TTyLu2o99_2lJ_ zP6^|V%k$L)wY-A7BqRZ?s{IDR?1h#F8&pC$Nu@G8{2hnzi-mcJ#j?O$R=6qZo{dt5 zI<4E_+?pXf#H>@=x5K5uG~YbFbj?s;Ud`-#o_dCM!XfT#nW7Fr75JauM}} zgp|cQEOH!M8p#_}q|x3g?`fBM%YyZI+~in+lfRW5|E>1;H>dmWEG{-z!=`NMv~E^>@>R>$9#xycpRCD2Wvx%8QKe_ZH*|?_vmmmP!?m;-__9 z0y){sgMhEliLR5y92Y|D`P`_dLmMCaD>lG_iE!fy3n9y#F#1V!{ z@XPf4TtE>?$MyNpsQu%ZJE>w79*i{(5Kn)-R*yZFu#<*Ho@PZo64o@-HPrvaF&2T z`=!fb95^oi!v%2jBj#X^`JCWGazh9hR0h-=W8ZRh5q;pukUtcj?OKJvnK+J@_}#JR zK{%R)t~@SM-anT%AE7|lys^&1jRTNeoC>}747cm(qlkBwYp zcXvj}-aJcFC0RTrh=EcKRSlD@tEzeMwEiGLe?he8#L$7vW-}!j)1f$9%~v zs)7D_kUSJ9LYahe)8VZppq3TXP)U3M9P^^1)2=m7y< zmQwFe?Zv8saW5)k!Sj;TDN#Z(<)XxLX$MI81BS_#TQU(Fg#hW(HL0VpsdvHAh)oJs zIg2Yuszd1ei@s6VP679k<_ob8+q&~OupYlw$#eYAiO^fMKQZI!E#tSzW2f}4gXWeB zW8a~_cV2w(Kd=9JjD`|@us=?;L18|;Jju%6!T(9p=0AucnfG4ae__y6R-0j@!a3A{Qe*j|+5K9i52cAqd4^{8VBYggx-f9t*aC6Gd zUq-QCPY$}1eFA|hvpH|UXsFSN!XMs1qIMnbL8)QgxyBoo=Bk|XkkL=X5BS9zi*=`l z#Ul3;oaDUh*0eMa`5=Y;2QB7mjNu7Tp) z6COHNTW;#j1OJb-IQFLDPhGi_#9`T;%Wm8`;{ILbO#JmG_i zR7S(cmV)%Ay=e@CqbFgg$9QxlBDVUBJX8fl)oMU#PqHeeviLlb?cV^5ivAqlvW82f z#h1bK4EGDM5`Z3rfP7&G&z-gc_4OPPU>mluR=R(+J!8X;&C;h4DTnq&gHRgxa*#de%1N}$;Q1Ry1U_T@hEQa|`SGJF2wLcAeF z$?bGI*195NwcmSrS$e*qGHgi7gf%XnL8H7eYwC-&Jv26-`;$X!3VbBH$HCDBs^+Z4 z#l#E4kRvK2?1Y|IwKypTp`;|ixA6xtx&$f0QLOy`0NT&PoIKOjVs|C=>RXA8gH@nZ zNr};A`$xCWWn2|HH0Y0l-gp3Q_Y04%p1u8hodHM^06pM`VA#0Qb;Qu6@)ToyVuLTi zfJW>EhpwX7A(%^c%!fxI=lSY4vC63Dkht!MEx=5D&!NhJ&pyqUbDR4M89XnNd=1L* z=-$1D6}%02^6Oo*7qK{55u^EDC=ACA?*mRh&H#c5jY5!(`$i8X${>73P99FT(insRjMwNbDZ2^B*%zI#gL$XgS=YIe@V7E0_c zX9pwVBi8Lba+GS3dS|ArTK}xL%s<{6rD%qVAS~qnz0G6&soI1D9Un`hk>Qc?j1?$q zONvw&l5Z>YIrMcG=8xPqzY?sKnR?lwR~9P=aC7K2qx3eEOmQPapzAgJ`?ja%8KfPO z7SLz_0VD9mB2#?203}@ 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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 j4W2JxM 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

ikjn1AOE|rv0t5FWsa>0K?L2&bJl%Z=LAybAGe zhaK|`P_Z@}-XH%?FOi>jk-BgI_8YA0w+_dmZfd?4T_~`VR6lmTv^Ro%V$DB5u_p?B zsckZ?wZbRH>{k5JGU_{+y!e+r1G_&7epV4}2&Oc?o51s|3C=mkkMy_KE|U;mbKm%5(=*|qu74O z7rz;0%k&Qj~A4zNPP%1T{&sRSc z$d`pS@Rry*%9H@i*14p^Q9XE{LUXFx=}%u$Qg1E zcDIn-nwSLUe0tC#&p=~`Ka{$cy7fJa)2vTITpzZ_+GT*Ft2FvpMx_xFV+@{va)713 z2fW|XDOkTm&oxJ55Yn2(~1QEb5C zE|Y@SVFJKA_(B|XBz~EXa|Us*XA7pY5VQm4sq}4&r2kVQ| zU=21ndIlevM4ub_oEk3Kk$aE1(cSm4Dc(h$Y`|S8f+PeS+V_lW=w@Sd2cfOtr9cfe zTFDuO=Y*E%!o~WWYsWa4hV(cc*M0KzT17I|`ceHuqLWu4r-yvf=`=)g$(j`nZpCzh z{zp_NXQ+x?3}&~2qIO~oT8jnKnrb07^}SZ!o6BE=_&MBfLtJR}yXYnI@+ne#teke; z0JJn!m50aM&~8#3FJ(H}OjfSd==@sFoOR>t?DXJ&AQZ*;?Oiu6qGi;g46B6!=2CAZ zL(!7lfW@t0DI^$Elmm644 zhU$4?(CkvSE#twRM!M(|w3VP#xKQ}MJ^`O((0Kr@l+q=4>D)~beJ8B*pL z$PuTj%>ffXC~+sQvTT>9+#E?8a@SKLK3zW-H|#H%Z2UZq2uk z*7Wg?M$1iv-WNFe-Ge34Gqy4Zm$AKzCqkqW(kodPcS5NJB1c~riswE z6?KN6PEY^Ao?tjj)b24SgtszzD|Nq!oTpsQ`orl#b*g*3K7Ji zARf1g`C-2g=`6~mW{)I0V% z?(@1y3LexoNjodYV-$2J(eBwyIwR9;+{lPjS|iGPTJzldi4CDB<)~K15K!#%hUq2{ z{%zC5*KLS|81C2i8h@awaeD3(BS92_eJcz@$D-mVFulaluAZNk2yOQGv8tS(d-)+# zf057(aB6c|knC!fu?H(mQbqB7VZo4qR$!Z)gN6DQo+x!DyB9XFV^ZH{!1@SMm@4KM zw*ow*+0m3lw5*RVIfJSx`pB&H9?q5z$ed6HyKm4q+Hl+N(_cS50tsJgn1+FA(?$lt@7*BXU{fapup#oJFcxSa-@ul5)vFf0A;-nO!Nq zb76DVGgTMNeVa|LRo#+2XJ?J(R(yzdcu5_AL%E5l8gLMtrA_{pn?{0X|B9{(UTN;J z#gQ9lsN=obB?^9%da_#H3QN$Un3wuOF+ck9pl}!?E)JJ==YZ%;%iuAus$_gUF4f{B zV;o^f7KHL*YkUqq$3rjm)y=ca;1T1&VaI&slqrki=`iYWWpVunJ-`^E(;Q4ttOT&q zm+zH?V6vVm=X|xw;vTx9^qZ01P4O1QaQR!>T}Kz96Ic%E^GZ|Gr+F_?L$Oqcn;XSP z`HziKtpQ<(Asl*)>{NKK4kiIm|n zX4uVJKGs}m7)TJ&4bA!oN?xWyN7L<6=qM|0Dp=PG)%WXbYh{HaW2U)t3 z2J(~+RJD!yR$(fX%P0bfnMb|Q82q?znx}&n6x*c*SqXZAyz#=!PXqtHt7?*DBwJ<+ z)frHm5Z@`uk2o_yp|Da3ha#is|AF4t7bA%i9R$Q}*UYf>)iYP9=zS`@j&jW1Dah&= zw^Q~EyftvwAJ?s_J$KxHrZ3A869oBkX9L+G3Nm){#!{E(cD#BwY#0-X_z6CFTE6+%7v|ZK_@5E}=N*{ao~;vUpiB z;sx#-iA`W_F1O0uGoA^u6==q=^NMJ+?&}2lD90^g#6ciYO}1L&V?-M&T>jr^#ea^C zCA-@kwXD!dA#}n67HVSve{o;!8?;VgmlWgPDb=~93eEnDK3(YgE=sz8)^#nv z2?jr}3^`BzDdDYX`eM35qert(dn`ckr{mmLDhIwwJ#sznhc|8i6BqwQ1sT}(zki83 zrzQ{oQOq<5&tuBU5i`}Z$}5aa=P6AD1cA0SUkl4=NqO|NX>&XX<|g z>;HSuB?~c9dP3+WO8l;z0~(dLD@tymVP16c zOZi|XrtAJXt_LIS*&Qo6IHL&zU0Z^2vZQ}1b4LI2%K@@w(H`-@2}7BUpJ0_KL z`5#)!CWUyRAUGpdLsFfkPyVjxxOu7jr~&#W6|LG%rLNjP(E5u9d|S0t6sNTEr9C+b zEs*S)Jd3CMjYv6Lbb38DjWXIhsV&bu%cs)1ylufSh#)gFO(MbSEFGf9vuO@@G<4w5 zV@$Oju<6uY6~?#yo#)0eSVqZ$7#BzVS*k)xP32rA#`>4ydgwQ} zP7WDEhOFknk&zP~UfCCGTy|@IIUPRu%}0Gd&(XuSR6Vc@!ov_pD@JVwv9(Jd zD+QmgU3(@5I^<<_CI(g4PX<~|j@cqbC-EPn;Vh*lCJ9qU!sbMhV&rT3rNBR+AH@A1 zTowa_!pr^#mqh`9|AWhtvI)wu{tsMMprm2yxM%f57KN6@MMM7&EXy?H9m6iWX9nV) z$I-Xl`!LkFu59@=VqBda>EOwv(73i|SnQXQnp1(y~DYMPWC7#j#9L$9rk7 zfZxN*5RaioMprq-e3l(afrI5fBqSm*QR_ctL!+Z22G!P^(Qz@g z++6uKu9CiiXyj`#?*NZfVl&IeoKZ0J5v9lBpEK~FMHwi4_BX4V5Pm5+ZX?@bF{s`B zYQ*-5R|}U9HV(czXM#bF8+naM{M%@#-Mn%*{CUdjK?VmGGkkSK3$zsV9E4lmo;})D z6a6;`Zw(I$=u~f0$|cwg(>!M+{C+8tnQdMBO&|x0)Wzcj0kO!)PPaWGID4Vb!4R=l zF>2?NpE#h}RQ=I`g)9JKN-gvD}l0Q=h z@E_0|@Z+MN(dcAVln&RUzWKyHo-ZdVLGiRlVKHW*cq%$7EI|#HQf5p7Q;qswT$)Bc zWdwyLD4K}riT!~8`Mb;1#FF3-xR0c~(l>UcL^i3<89 zQE(fN;d-e=LIybIiXLY?GS>v~Un^#fj zAQ4T)-bxL5HmYq?YFJX6pJ^MIkO45Q?w8{!@L8b8Y*Q1gAjvy3s)V=$#W!=jXP&;#H^yniozhw)-^wEiWlhNI5OsM!FjeHJ>O3Fk*s@OyRHQ4NR z=D-nh>MEs$rOX@457p`-{nDkQY`5-cAq}?d9(1fV_Ju;Pa>a5&`GAv zE*pa)DRK*9q75dmn6=RW2y-YyB7ckN@MY$`bMnLV3o)M*ql5%(q?qY1M28*rcw$o;^Wke5au8!h~vivhDXAuqiyHR%e7%9N~EZY*cbWYkM?NSSzqd zGWJsvH$_>DwO~&k}|9*a`I<{V2OzMRG_=(_7n| zFdLtHAG#K>|AAY(Sh&c^j#i2>oHJ$}Vd%cs!{FCb?C_-CM4@8kmq?1R%8K;f0SPIR<{Blv$L}ktEgZV8vz*Rv0uI+ z0x`>@FWCQvV-5O;wbJ-8KJk!F%vZNYEV$G#49*y@Bx3m6 z0!cr_`8oimn918gkxo(qV;czyRMsgwK-yic&G~?J{oh@?m>~ue&)KO|kBp;Qr__?r ztzb~hCo56}O#V1&<+RA%=QAd$?uyp2$Vlo!D8FZ@rdF-!l*l!Zi-Owg{;+SN5p^)n z&QPb`?D>$rBJf1n+{d)IVvr3&BaQcphSA~95P`Tuz0pU;H)F#Fw-;HM?^r z;Q}{At=3>7dZ-;w>hn!F$!$>Vuq!}LxQ5mv%|*u$m~{ z1V!{sIR+n#UNg%GFGYPR#COh3p;j(`&z0pFQr#14gxWq7Ef zmTSxU+zLs?yZWZ_aGU2?FeETfuUM79+`tG8YQ!`f{%G6`r5YAt#z)LBJCH8up*!

P9w5NcDiNli-FA74o(TRV7lHj|C39BOkh>#?Rg7@nU zUozo3Y7Y(sD^URe7+=62&XP9pr0ZJ=Urqfm-~j+q5&-1kE?G2-#7ZBBT^SZ2;zu2t zH~#8EgB<;-D1_!J51QN$NOVXmoBjP18tx;hJoxpvL3A{*{xZ>`(B!%$$>JEF^#(qC z6xV?W+IhnoE<6g_z!w{;0h_u+bP_ap7>Fw5i}y3FXk;+=79ip$OA*B(3aJK>&MakU zZ;Uwot*%N?3tkFAbYSp>S(N+hFe501$u^bFMTEve*=h=AJ{+N*%knv9<~iv5ZISgofp_&)lD*#g35u){hF%5j3F`Yyy4oWF`+AbPUci(Z^Q^IZ_f?)d1UlU8*s33|R`fZ_#HnLlKbW z&p}EJ7!brCsoun5u50V@rhe!MZ6;Yr1ivN>FSb)P?CPLNAOe!Y2mK)>)BkSz2UlWI zp6H@a0y%NFQS;anpuKSWH^YMquKzv{;h6G# z(FGZu|9vqy2=?!fa>P_{4O)DCN)sV^HlSrCE1(4<+AkU)r3x(qPz3-;8ir|xx{veT z`sCoD6CjZNL;(JNQBpFM3s!^qXy9sNG>o<>U~L{LR&(ife3~j)Mq895&YU2=GUWRz zcMomjkNO{ETH8g*qF8OJO8Mv$6h_AirI~9~JOEQ9OMifb=!ZCoi8pq6bzC+65E>)~ zM1378R?G$~scIez3&7kD-{YEOQ8_<=%)BM%u!IJ<;*BL^ zh%*w6fO{p8N9dRY2*X2~q;GJK0b+I)zp1mC$k5Hm0^DZ$*18Gkil$81Vr18b!B18T z=H_Y8|EE3wA3qNb37*UURa*nm(MVZIM3syjSVa8e>*wA)E^ui3X6k-!@y%?Jg^k&-|j|kwR)l8E?6JW!-JE8Be;Fh-1Gb;gaGx#WJGI( zi_mBU2S-j*-bbIu1djYX7S?wEmC+)y6k_CN^AC+=?i_MmATdkFOyCOM3)N~MkC88G z+&rG?aaSmHkH8K$FgXkDIb>NAXivzxk0GLHKo06STb>_~VldND?+dxT@V$n6irzu_ zM$ydQ;<#RKRL1EBY_ps3s=6CKXYd}ho6shUHZE8=$FJJ^`JyX`C$^ER+dmdRU7IZT!_jE;?qCC zxz9p}`H{z`w?A6=-%~jGwv$X2B{>67y5BL7am-M~b1Nj}>ORfMp`D8d4PC$2$*~01 z;mjm(OZ|)AUYnvvAub zyE52N6D=Qzf56%i&<;Xm@q{+=FYa_`1--`Br4Gy;Nl7|7X}xQ`i~8n&)>NQBhseft zf?ZTywrFa3SG_(&kjIEq;`#$@mKUX-w*A&dB`{Nq_2N{li%Gsss)fpS37pcdf3Zo- z0b;Olw~by!Ie!r>601M+m*BkhvG>>HI$s|=St$j&-2;0&+gQ&Y;0KT|^}>Z7tq#4L zw6Jp-h`0#uZ8)c#7}owOOCzKg7ZPn!%>vCZgSz$e-MVv z_OEup$V~vD`1Tp8q`7G;=rK$MEJw_eWufrA{p5EmuzmR<+F~Mf-L@9@M`;C`b>0Oo zRr)(oYw9Md9tS;S_kspu-_9R3Lev|4tvX z6Z%2-t(VYD>mn?R;NRL^=tI&fT6`vuXK3ikt=Ap{294YKeoq>6xt?jMp)=2o07Nde z0`rn^pr0EEvy6pDpaHo-cbj_ca`+r#uQ`55rq!;@DdedaVw&Bw^|)8JcF`9PwGxqh zNw+P5j5{srr;x~ zsZ8}XNxQ9G^$jY;tYyG9@KDjmz>x3iDDa?ZEb2yRl){7EX3awBN>~?mOnM|Lve(Vh zt|iZZdAX8u^^)7&+t2&MAvnn+d*j58`|8DSa0>&Cky$x%`yas7ZLoF}Y2}ZNMHY)j zxg!?qQ{+Yx(J6Bk@NI%<*Um2UebU}&HKiUEV|XWVQ*natS!iRTQ$ldt4JB>gAw!Jx zg~2$|84_=-w%iX$_6o$@Uuw4HF8>Eub9?Hd4Acp5@sh{*_9NGYbW z)U~*c?v?#iAS7~&w9beEK)R5xH&@u8Z~NB>pW7cpR!i$=*vHGntCZ-#SUl zAih9?Y7hxaR4X?@T^QMk%o^I=tAN_X6yhYzyLt3U{zED31=gsxmUOpre=*Dx4xgm&-FdM#ly1mO?$k^0sR))_l7$Gwtwr1rZLO^94o`0#U6_A%Ajz5;0t}yJ%VXU4 z#`BGdA?WmfQZQ0PWO^q9t9ut*e=u^CvkyDo8?TcGhGfXmiwOS!2mM&W*|Luu8+6#m zoHxEVy8;Nby&!fu()NAh>BpRz%A?Wt9I*X;lO#vf&5`<(`~Lu_@_(X0w;g!3mHs1R zuh;#c1{~pn-?@K0$=l2IU!wgIzNcM>ksO@ykQ8{;$^m z07M^wYv@8?WRAht9@)d~gce%F2q5P)k0dN(KJUIdzW4_4l6v(EIBuNQJ>#XbJ{f7o z<7@DC5zF5ge@I;Ah2zJm_VIe)?e2P)uZ_KMDR;nafyRFy+lKPeec-pguN<~ru(4q# zUZ>b^Y~=Th{+9e$-pHQ}+fa4$J-+V|=NYkm2yRGVBm*6R45#f8w zzlL|S4i3yN4H)9GK$M*s9 zW*v@CVC8;A^~2>}z zCfIPthu9BfG41Lc<=wE(4vesm38dF{BwDvQ1?PXmAC?wMd~tX^`8&5#K>|sSTm-o} z2J-uRVa`Xga1FJRqunRUjWb~rX~2TmWi29}nbn7Xxx`at{mK3~nYuxyrhlkB@@`yg;${taW1 zixBTCoS3m`#w{huUs2>NdGiihwd4Q9049GC0RaI30{{a700II70RaF20RRyYAu%99 zQDJeBFoB`5!O`LW+5iXv0s#R(5a8G9J+!p6w6vFH<95|#`?LE1klI9MU=5fLj7G(+ zB%reFwgvl5kX?=5^~>)Wljp>9jW{Mh-J8^-E%zz**h)Nvx5osew=UJITtdb^?%aPE z%vhXphVz_Yc164hd*SChlVP=&AbpwA)Yd%w%RX5KtroeSmhDDdTjm2bo2{|iwl-dsF%)1146h>wI54)LcNT^>ukVzh5uowDc0 z2rMDOI}_v@SeJIJY;q3gwV7kVGw&~+ zCI>A!T}xrqJ@Db*84jaoz$oG$1kZ`=1c6~uJX&QcrbpHSog{sN+eYLz|F1Yel(UIkkmH8(m z?}BmO*zonRL}Gv2C@0!(4v%_={_W(Ky!yWd$9!@EA@sfX0Y}l_%VC;fyRJ-F;5Nc= zl*sdz(6zu#yjBAL0FA!ToKO=V5))vqYbEFgctPd9d035p~+haC66hDmbbN+jW1?1y)-JBrU zk~%xImyp;o;0OZ$0C%dN`;=nv`#V1JZQlc1U6c_$OA97_+rY~-MDQ6s!JKPr#`S9t zQSF-Ap11=q5E}z*IUIkqT9+fq-d^5(Us(&Kwr<`-rd~2ja9c7kUL(#ksP=n#1(aCW z*td2t<1U;AM2l%}^2LiBFyWoaC>%azH%xyo7j-`Y zY?1FH0QHXb+YOCcKA@~_jQ2egZx_kLdpAh9YQ!=CyCB(%t1pq17JLSu0W*Q>-lw9+ zxIv5%wXh|s(!$Q?GTbFLuLoC%3~U1Pd3XB8=mY-%HpJi~J!}5Up~mb^XVvCCf*;kK zc!U$a#HWfw_iump)zi5*23pwqKFN{fxO_tpLE)|7#n`>Fj5)*Q+{cma=Lcc_N^Y3} zoW1<~jbRx3oy>RH{{Yq!CC8`%yF%cGBtu`>PzRkbMThBX_#dT}U45VWk#Vuw zr^Fv{Y!JNg@pnF6lJ4oT9?zdIcBP5H3%_WOea$d8`#6959!dC(mXnm*qAcAfWG~!6 zXIE#lI=hXrWZe?(eB)%>&wz3Qb1A~Y9ZTGMCdLiZZ`T3H=Ljd+l9f|5km{Z2dH!Qz zz`5%F%eS-bo42f>m^6cI@XM4!X5QOJe#0I>EBM~0$O}#sX1pIg( zIa}~NfJ+Q|H?Obcc^kAKUin7Lyn5pah=e<-fJ?!>Y&B$uLHwDf8x8x*WA(z2jTlj# zxp9@yO7GkcwjB(J$GioN;>RS;4<(6UYx}o*-RggTQUV1Q#x{2YZkPx$;PZ#e8#y9q z!~2tp=*GU!ac8;PC65rK!)zp7TV#Rv9k{-uB=$t@tvy{lE>Do}2_DSQyl{P#mV5(C z$tz`33c?)4+=b{v8-X&&yZ$ChmAIh=9<@NZU@gK25NCgkqPGBjJuf0q9M zC1)3B1`A#tZ!LLP@)y$)-C475XWs!>h2wj$o@cU_oHXGyh+ZV@$k_*JPO&i54TdMS z#(j>=L*!n< zlOcG+syzuhULS86IqbGu24)bgS%m$-2*g2n=$-OZRZ2_`xjZp*1i$KHl*=RUuG#g`G@{{YAG(~ggKt^CdrMv%5$<&1wV zrOvpaRDYaAHSqU-rWEGI@;~p6Exp=Hvm3t$qRr#P>1LNpu;x97Bg-Fv(`MKX0T*j8 z`dSDM!_E9`5rmW&I+n34H+A~`K&zv`Fqj|C0hzZwn+KN3m;G6u%EvQiNhM+0>ty3g zOtlNJ>kM~wmPG9{dd?4L&Kl%4%(Q>Ygb}{NT&DfY-+))`iwArrTM)?q0Px6mU}slR zk@xsm9Y!bD@@OaPt4U9;qf=Op{q6ziz5LrO{`|Vb?$;h{8!#Q=xpeu(_rgh+u35cb zZ-EJV@L4d;iayLMQ14!4-+rVMro+eXeMv79rY~Ys?}Bz8oL>P3Hu%W;n4W*+x_RZ9 zH*}7Lm#v>{P9J#I9f!Glye-}MQqR5zEFH_}SX$s2!S4+QNPD{*GJt)PIR}~7QuFja z^?t&Owv$@}lO78?g?sNMFpY1*;N0i_uC05$bB)mA&m`k#ths5!?>?;VERAgC!W+e? z-V3*%0NFF1;zPAR$eg=pU&epXh5Gj>YJG&O<7241V*TitPq`-DMC(C`-JtchaJ2Vj z{@X{u`@&`GjWXEFq@mexv*TlWjt^|>9^G*J!i!Ndu{W#gKr?LODR-G6dSFAtm!Kb6-aH1_gJ$TgHw&6LD%!P%d@cOemY{qRulJ5hqPgXKXWVtT7R zP3-oLbm4wakY&{5`D-5V8o@feCSIi5I7eq-Lv&*&T~5h&FRzDOA7$%-G90^Z$e1Ks zwre2AgC{-=Yx5r6nRkB=cr0aE2_@b|tdDOq(KC{L-o6hi?2IhzE>xW3e{RykFp`C& z<*?)MX95xL51gBNmt;4Ccs)tf`SU#G_l56+?0Y7bEt$e?naB-`IXaU#!upa9O02wCc&JCo!nW3`2uK!x4BHUemTmP z?*`vj)Ejv-cjBcb$~9x4Wt8#o}DytUP^B z9efyjgJIk!Ib!ZrfZh$3EPMlOZl^f%>x9cb3*Fzm>n!m0)!=enu;Zx=>R88K2TNOZ_-n?t zylZM-faR~A@TUo~cf#kv_Ft*%oh9nl9pP||OS@Z;*p{)~g@uH2`dRaH8ThX@c;kcA zd%~Ty_#b~~$x+}o4(_;nmV93CJmUj9vIpw=?~vOY8y-wR7glT6Au(a_pE-T!9GShJ z|HJ?(5CH%J0s;X90{{X80RaF20096IAu&NwVGwbFkszV5Fu~E`@bN(Z+5iXv0RRC% z5T#>}G4L85=s?{li>IarkWAs`&A|iH#NmEpWI%tfi~#=t?&2PEE@PR#6$!2?o5)>! z&6!|VSeJ2Ac5Lo14hSp8b~4!=?qBVL<1u0^cN{kdQljY3ajL6NnW&?TlE^vp0~o(~ zZDV+i0$%QLg7ukI54?yW@-XNJ?mZCaQpt`O_5+^awlU@tA?F%Dj%nvQg88XIhz4=*r~i@RVw zp|NV`9wP7++%)1H`V6)TPnd8|wOf6(#jh$i$<%yCKu#gcV?lHA2WT}wp!Z$E7vwQ7 zJi@XKL-aAdV_&%B{1J-fkUxz<*Mu-vOQ?S=RH$0Uz`w+Y<6Xu!oKamuzP zsEufrA*j)eMrDg|#VcGaeO4EXM2q0_5N-oDL`A+pflAZK7*TEp1MtC-)oLIW7J`4M z*K9h9T|;PB#C{^0xM1~W5@ZrF*tofbGk9XVIg5(kQkAA+J%Liqb&Ny5)zE8*GG&QN z<(K{5mUPALX3TXo3usmg;$_em;crtm`_9kN7CP&<@!M9Z< zJa9pDb6NHbB3=Nh#IYGrB zoRBO#^-U*=c%pwJPvT{gDlQFbqmLxue?1>)ijU5@iW{BG80NflF1|bFlcT_mQE`_l z1zU=C<~mk2?w@z@0i;k7GB!(=GY1gcE5T59*s6OM8La&U)IX~k+o!!orm>k~4UzUV zTm(P25AuvEo^n>{ZzHv*SzqoyAR9YB9IpJ;)pUf7VoS~`WhuS;nx zCO8}1+tskdV-as2g05t$Wvc7&IlF*v*n$@TX&qpMbc{4Y>an#v(0jrL6!Qeug`4?U zA3>%faP*p&6?&K{MW9RB?ErznKm&`Id@)wgyE=h~<8|pz(;vj?yEOS}mUgPml);JT zDkK5_08oEaB2=mZud-0tE3}2$sY}ctfQOLV*wsc~gTyIS=Lg(c@WxWGXbh~WN*ifm z^PI=)FsSUOGZzS;HZun3JC?lQRlzR%apq{BYtu@NSouufqs4l1g6X|}DP={R#HOa{ zE-fl43LVSUd3c&pJB}q{5n9odq^OgjNT{@p$h?27DAQkFk1)5cqZGY_!W5@XJV4U~xdp@-@#Fb z{MtojkVmdiYPlMV9`(Z3Ll&N zw?sj4uvY>%WlF7-Eep#5YcDec77?MQ__%_{3ER1L{{Z+wV_d`A)bscoBb@q=9eUpK z`kTb1M^Gp;KD4is9%lQGFPrmsE);(?mOLm_LMRa&+$A~5)K!=Ll>qNsBVv|(Fwj<@ zqbSLQ0M~h!A_6nXCAD*K1{0qF{mYrqJyNQmu0MaBA!#mLMA`mII*CmZo}ep&9rx<1 zzf*XK3DkcFXjfXSm{f>TDa)4$la+#mVjCOH>ObfOP+mdjI+-5KU93I%#6f=&sftsy zc0M8Ou0~ch`a;NJo>CNx?##O*&{D6INk!LpIrJ5tV3&?!cwwO+crF`yx++noo(LMh zf}>78(2ahWGzqV0tp(|f)Ak6I`k>Srl;|T^Tkc(I-%`vUrlUcBFqf-7#48HlQ0mDH z>GTTc)K(vbwi)hGo?|Ki;lF?ROWMyvqOfAf3qgkZnL+)=(~S2m!-BP2fu|E;F~+E% zR!U`@-o?!30@9$szwKYlCAJCESi0yT)0tFjQ=Jmnv8`O^+j7N1mR@1)0Y!$Vf;k>m zfQH1SnAH~emepwhSYyOU-9Ad3f#MFIQQ%SCkqftcCv;uJN(eFNyzqZZp#ob{_jUV} zw^D+iP&ym)9#LG7fV?MD+6z_BbVO;JzXNIx1CijC-Ws_0I18s+pTNv>QK=xcnw2MCVwy)ZI4BM zLjl1+RZJ9pLtSU8w5dY%32i4GAZ9)z%7-{AbS|dv?#)v4$%X~z(2gOs7sv8+?x`yt;Avt7E{dF^< zARj9-HT;Lt@qnY=0|ru+xnk~8+_wP49Y0Xi57aWIAy9t_%sLWB%l2~+1|b#$3e^q9 zV1kvaDY-R>4HAi2su|KP#wqj}NBWF1@DdQ06seoCTvi}GkixkjD4KzaMU@;pF%89G z{{W65=l=lfP{{B^t<850uwk|km}s*sW(?GAN{1H)o+14DXop<(V!;Wj`sJFvwvUK_ zRpT+xNM3&-ZO<@PQxvSC(K!=^oVSe+aFL%kYz?-BLnBRa7!E98#l}XQTK;Zi*>ItH zfKq@hyE*P2eHy%wUqD=-;8Uo%AcfSNK`{cH0e~^oDNtLEKyot`5`HcN$mTylUgl!j zJ)jla%PknxJk$or!FluMKP*dw4}W@_j00;>?xBDG0M-Grc7lTV!~$`|2D>x^3F8bf z%3kSF@63D-98B9t4Z(c)OG`#1ZvLiyXhR5`x%JjtNr`djV&QcHq?O3mYx&^(g3=34u z${}vp5XJVLMFNF#5Oslqj4JtTU=v1DcEG}jr;Ord6kge{^$JZl{{U!G$9R8H0)T(P z9|;H$)2~4qhG~x9!h{b51F5JmQB10t z=k_8hPr8U&x6I$B>+8ettQQOghz^+#(8L}qVubkyViY~)(r|SFRh4u6jj&dE#nk71 zFpB-vQCg|QDjM_mncEvJR$zZ2C0ovUi~iDjWJm>^1{SsajZjj&OPbY0tT0UAg_Ba7 z?G{I1o=4QAX)E3tR(nO-C%ny77a}QdQKOrC^c9}vJwZ5_?fs?sBjPOGb96d;ATMr@R{Hm{nM7{{U(hS^*YMYJyY(f!+wN7)|jSq~-#P10sJ@o#qwi?$NqE zv8WyxyQR@Dd?Y+1n64ar38Y^*~~7K-2u#N zBVbT>;GKlq-s=}BJ)0j>6;sG2^?YV2bCG|sjRU4%IYGB-whu021t0?=OjtcFK-{1; z$wBUAS#v(j!VASl@M(Wo8E@4ZQFH=P3%j_LA;M2+aelh~3W0FDVx}8U<^U?XTbq7b z7qKkPYAa|Xzx5LM)ls1h-B*a?cn}(o)F<8Hs*K{dEJagr+IftTDz;o_YRerG0bN4Y zxNa!Yz@^76pSi2l2#0)()wm&r00O9-!sBwixtHvM-P7Iy*4%%>W2oa`til;Y*bV)} zoJGC~jf_xrEK-Kqem_Z?U|Xu@Zz$nX)n7}5*n}<$4dIR&n)>TshD03776nPRpQ12D zkmTC^O}hQ1OxKR(CJ=LjVcZWbo9TnHq}{F0g@-;^vaV{NY!IgGRT7_cJjK%VVUf@w)yxeon6|O0Y0=z&cGi^-9%=`o#rgKRu)X4bEG_1B`T-UV3 z6ks^j#(9eD+(5+II*53(qt2tp%&@zFxdpQ6O6!?pND*BM%TS+bYfeBimAKajmYQUk z%L3dDv}iY~^DBhvPx>O^xY#gQ_lIl>SFTQa{19YHA-I2>P+!zH4&KNY-n;V#4$zKH zHxBT{h>aOR&SeCVoyCu0GP?*@U46{(28+!@vt>VXVK8O}Xo9rT${KS5D&i$+;##fs z8)^~=0~E(O(L*LMJX9ECxkV?>m<$C7pbQlqh>8V|#Hd$PK$^vMV-AUYIxDYgmw`|N zt7wt0q=A3Z@XbQZRNS2siODX5?o4{tlgS_!lBEaK?ggU!8o+5t^khJi<9VLqXFD7PYvz1NU=+xqzpa z_)cWglc)^xR6^~w5-V=E9tf!I7w%G{uagj50h@nTp-x~EF?Z$zRe6SwM+-A?Y))TD z1qEkN;6M;?*2s^SCf2Qga2bY9t_0*c*#RXX!(}km>Yy8YMFiNwTaB@)SoG3{O51n5z%5}phEq?U zT}^-fKL?~V&2f!?+7OB4IPSO@rZ2g)c+^;Qi8{d1fsvdoFtD6X1zhbD`!RC6$XYkU zEKf)lqbU-ia*GyNK1k}E72Tx`eM>E#iFhG(pG}xi1qFfnAkgyzB;jpcM*L8mipBY= zj%k2O=!oHL(MHG^t%zsJ-(^Q~rDXFmBF29SOe7xs6L6NKDj2}Z1ze-x!9uC@F-%wj zb<+h!t#KVZCkfmy9Kg1)Za5}D67SonTN#2Q%Y2+7yg8P*X84&~IhE;^>6UIGZ2ULB zGKVHXAC+_U5cF8su&oVZz{2$!P~tJgN^xMAWi&TM-r<2nDkK%v2K&s(JG@r+{*iyB zyZHBT6-6-JQWNd+K zJub{Gn63OI(`~{ zCBO%&0xPo;wj)UM2lg~CBsnsC0Q?YfX8K1OUu8U&olSqX@0Q4>6S%FdK(~s8(d9 z!m(Q&qHNQ-eLdYW)OgGRhAe;3z1SUBF}evwdR4taO8gQsnrbEUuMj(7qPdh~hQIR% z#g9N^%RQ=p%ngXV7Jp-q;_?;tfY_lCPKW!BQB|t#^;{)}y~64QeWs=hal&Q(q)-v7 zD=cMB5XFjcnv6wDxCw0WdQ|QuH2M)On$anD5&NX-$Uzbdi%UnexHW$^fTKE>qn473 z%D?k5m5-O9`C*arITa)IC@D@sdm|MbD!%;{MSvN$R@x9thZvWr2CgEN)L3P1C8b8? zQvDI8R=#0X5AGU$;S!B~n58!yxC>!>G73~`_P*y8>R&8qVhM7~OpL}`zjzlvxEDXT zf7?a5ea>x&J0MmM%U^$=O-XS?2Gt`G%s@E3FqRp{-i!3f*VK&Hn&lCQTLs%#(<6%L_&nGR+~z=Ek-7Umu450E%jk z{WU!eWsP&(vD5x7o|^g`+`5)1bwd9Dal%3Nm>K3Vk;J8<0*im^5{+sYE8SGb@hmIA zm6c-iaw%F}5h`-vfEtBkg7ik~5q3P?rK#YMUZD}>ue&!Rw8~RaSZU@ZJr__YuUDGy z^L#@M`c3$cHDBV{^f8Oqq15US$h$)O3$X5K-aAgrMZ0|FcRFw-eA01web^ro+xuqcj|jc zQ~td!5QAV*5lSLcQ-6t2!7Q@=W4}SQ#BYeUZ_FSHaJ+Q#;T1NIUO@dYH?ta)Hg&0^ zMx~@6crgi}JV9|mPtO-l*znq<#7h(cyz}S;auk0+KdF{5e$_JZ@gMd|5}0s0w~S+K za=2ZkS7siQVTKqZZyUs3&*CK16Tj3$glCBr<|y0xgZE6g8f(=A%)->5voJb6D7&a9 zL>xh?^;>Q$Uq)H$-7z9&0^;z#JaCDF z_h5g${-AcU8zG{iQ(3_jIgS)84QOI=!(;6S^~qE`%1)u$YrV#$!8}^My_a_erQ2ms?S$wQ`lo~A@ z1Hc%KMGY5i9b8Z$UeXY#0Cf(?BjE)vriT!s36iGIM7%Rh3*alsMuFu!zl{CN^Nf>~2PU z85SNODM-}Lr?GKYDd@(RBo>~IppJh`#te~15mEe(U%)iLE+kwT-Xa*dmv9=0cX8_# za>Wg?d=idjUW?6cIzV16M*#VhUsN;lp2)5bRH(O8v5sZ3j!5WCQ(b3`<&RtB=sh=kKU}}!~hk`QKj%EYOn`!0&YFgZ5OHxzi z$wm`Q1-p*&8Z*Cms^Bdn6M62YmPfA*vkX;5X1hnguP9R|n!`O$455E8_=k|X&Z96u zvzB<6+@oa+A6Wz}$c41(H~z^@PPA4bYN4yRk$S#jc{dPRj^LS96Rj^-3XVO(szel6 z6nThOBvCj!%+*0W#ShSq@JAabnM;82I92z7FbKLKJAI%ujiS&s+@w)_#js`!0%t;E zSjhZo1U*5Jn2k-#XA*zF)NRbMu@GR8R3XJ~OXds4f>=ff4TwS-xR(;0)J3vn%68b6%j{qsHk*uICWgw?t)cNQ&IIg7v1 zf!My~n|^aVkGXeo6iQ|k^8$*R9?@B{QmaBra=8UoW#0~%gv5VsW!W9GuMpDJ=My4f zOHp}#rH(ehGZn+lS`#%lVGF1l5y^wZMZT7(<}lLs#HDICTy{y=YE(Nu(xYucXMJ*Gd`l7o>;e#}MM|ixjGS&ElG%u-BOZ76<HSVGsFpNY)lPr^0IDNP@hpGWH>cu0!MsZArr102KUSi4SG-IE@IbL-@d7FLNc9KQ zG*RMY)WHfV{6w2Is8A=wI>FIOq1;#J&fE$ZA{q{$5<^8mfo_$=F+q6hACXGMH5n$R z%pOwk@e!HnGYM@@!T0|F2(NSoDY>5Ip?<3FL`WWf2?TK@&|kh$C>oAzDfR z+^O2I=vAfrsiJnzyU;ke3Hp_gHS$MI1w7D9j#l`sc0&81;y@q-6qj(B12yecYMF|SKrEo6g zB}zT}x8)muUM6jXYHz)Ot|}kBO9b(MdSD9SeNy-A%oIIm>RVlzu~| zh8Tp&abX<2#hVqZpX1&k*F6ILj5#A4`yV23Iyntyg5pADRgvF%o5=1`i7m%5FI)`KIvvJ&i1gdPcD=?JWxfS6QdTGGp{X*_F;GhHb- z@~m?5ft&IVIjN78Se$|roHQ(h0&O*Fp~cBs^>_Bz-%v!iqfCHz$Lgbq@H~k|gzm%2 zmZEdpmfIH^4Bf60S|;Qy)8Y(?8;1jckH%9*_mi4b<4=9^XoxN9vHBVkz0#?w<;TET z(%BSHnQbbZMi1|_8eXWzuIdm2K0Pzdz;;t*gZo+|OXsa$=xD&Qgtx*)EuKN)qo}Hp znSg3%;%q}n&o;3CFEpwNPO95+iug7r9y zlehfnsA~NohJVYa=$jV?XW@^(pzE^6eL9WykxHMB(wzGZVh)j^M_7`N71-a(Nj`lS z)e+Zz<0p2ciSVIvs)e_0OvofrOEM}Fxp1ewOpw{{k2V5uVU=@@m%uIlLF2Lvk)e)0 zJaP&M@P+d^yTY5+P@Qo%yy*LKE3sVi_U`Zn)VP%Ewbw(l?eV;$<_wUAON7?(TXN|H ztLcAFazMQ-+vnA8?-werA;c>#<$TwI_fFm(jz^2)3Z|XMOz;9SY00@}7Rkuy;rMlK zrO*z58}0x&GyC>B{eP@x=26M*cfW0)^JklidbX<`8IAt^v(R zL}ObJt+^z|eern=JJOH#->yrY(KtDo;HKNxyVmw;YN$Oav6K+K3HQoBJoH=JB)XX~ z^HT^+R*wuZp~Usq{}w`@hQx=HhRJJ$ELX;!cy9rX`=mGcB+OXv-TSRD?BU{szFX!0 zw#S_RkQ$yWwcd;^MEZ=MUFVd1kip^2h2h@v{$YPM>O{n($=BD-3OV1C_oMt9RG%TI zS2Edm#i&>Q1S43DE#BTM6UG_@et(5H-!Bx z$mj{^#*t4Rvh>(GUC)UNFrc;7F1V}Cmn>_7JFpns=H#|4j>zy7{?^?gJBBGbP&&uN+64&b4je1QhwIk zacAf6%~tRq8!+|_Sx;iA##}ASsHjja z%(DJStHIAm27g}iUwMW2GMU)-I&hR%9?D)^RDv8viSL`vVwPfv*6w@I{WIPyClHul zqfB_OV_d35!>gC1C&&3JMUFU9 zI|s6mbR}b=?+Cp>x}sr{ESYkx6d%El3IPnxUrooy+Wt^mtJE&HiL0wJB6J#ppYkYE zz-%ZDZ5+aR>juyCQf!dglGA6+r*~d>26DxIHr~egIcs0n z*Q#o#6%g%u1Lp&VJ`v=A3p?4v#I}Sz)SpVMtpk@-zAx%N6&n$0E3 z%IKq-tEP(6eDz5pwX>6kRSCC5_+umSc=050+$rTp%*?-zw3SBf$I6ZHNwfkAo3*tU z=?mrXqCyE``ikgsAcKwO=>(;{!4u71e?!`9I~BXRYjB4#A%zSR+^VSP;WrRb+^5Bk`CVkv+7Mzq$9pH@WM`&P`Hb))t;imskF zSC1hkZ!7Dh|0#T~nMiSH<91HsI*;`d+9$f2bb@)YBsLyHg7yUyw)q8*BrS}TF}O!5 zD2tOXzgNXURf|10IED9P++blIERcUb&ECccnEeDDZQp3~yL;lj1^|##q4Lqbh`tX= zN1#?a`TSq5g!%OY!8N8e1wF1I-3rVun!G+`=sSksDeHLbX&kPCn0@ zH$fvlDI!DAN&=O-{02g}=9ykV#|9I`U)Vl&93~!{%ilIR-Wuzq1(lCj$)Lg6PjU#g4i#C%ViVz! zoio5qsb#C$*`tL3%kPL*+~@c@e@rgXtPB*&nL6pxBw*^=Fb`^IfhW@nJG3AfKeV-H z^;sJOl|-|@0wvEoQIGLn0gg6@L?LN9HPQ|+94mTH zdOgU#AQmZaq|O;mzL(}UEI460e&Vfayq7FUNm_Ba54?bCR9C`GhSudjdVCB7i~?AA zvkXYGlaEAnF`4Wz4!=<%9IN`!#IYuajiFl2qgnBs_Q&A|{k@iWu1b&jgDj#OYWVK^ ze&W9J_kpjJIo>q0p>`5GSqOd_+7^*NypHD+(k}+5CMqZ`74MLLeKOlTLpNz?o&I|{ zTAKQ2t_VnzEGOlh)KDMlR!h$}h_re*Is0_A-H<)MNP>6zlfTddcB5L8Sf(bW?~SrS zrhLStaEfc7e;?+lIZ&AYrlg^z&^2Nx6kh3%UYsL~@~k<{SUMINij8=Lff;@&4e`?M z^fB(H!oL%K-}n0GYJs#;ajH^iiods>`HVH^npc5!oGVQF6}e=ar)|5x7^G*1vvnIr zE4Nu}bTRk%edm&X7vKN-9SK9~Jn34a3r)Z)=EWO4pXfJwBhc>OlZ~OZKBCaH%;0kHExH>tircihrx-$1X$x-;A zDsKp=SS0cDEDipY~8>Bo_zHe6} z+#+eM>n8;tt5<#uWp^g;*y7e%|UN7cm!x}N?WfH$N;XED|a>`5u`s6ZZs zAghvU{vAYdMT`6A9xe&>Hy;=>Z{v>d`z9|Q)sBt=^Q+d7ET`Wlm%y)G+J2p|2R7us zAvz-?kp3ZKNu1-bYB=+bT-&+%xCTg{Cg;JKENU-gE6D1esj9t=Y0HtJt!;LQkm4=08>CY8Dce!_+cb>o44ipKui#bvbjeIR^?tZw z9ZVL-#P8Ps?!jsIN=}cK?m*O0n-3{Jui?0rTl4NR|1NQV`RkV@uzUIfqI$Kzt7EVg z{nK3fVt={Qk%byp+C7|>-J9AYVUrb4_H!bV;+P`gMefwpF5$y5?)aSs2ljeS*i=P% za6RBPr@h3INgJq}Z>^zY+Wg!A`|bouNv1dC19c7{_9rGf)e)7gPMgI zpKsPj_X9dQHabsYv>vDG1)v~hLyXIW0y4><(?-h8^cb+j*o|Xa{@FEhJujTPmdk?F zj*Pp2>s0bLix*HL@wvrKPxV~)I~IZHZwMkb7E1>}4bEEDiMND+ zNw}h~T@5GChmTDDSNNsl>R+tYN}?=>8HB1vJa-95U8crE{vAJ7yaTu-m94qxn3#rlT?-?H2> zG3{dH>d7&^Q?$Mz#k9vK(c&3UW+xEc*(UvUYB#w)r1;Hj3uVxM9hMx}e!V)i#j?;# zbsMmvBCsT&*oH$b*9^Q(e|EOM8JUzoJ9p}iO--J}dk$*~gvfdyQn=*jZg#u6$6e@E zJ=a!sPMlY27i~+TUDCK8>b|Byrg>2@ovMUn9vXX2akW$Olnw;@KVLvR8d-AdIYMDQ z6j=-3i;9(qySSKnILak{h#lI^>_pP9O!Oh`TvB?Q*MO(@r2tpi8x(6FRs?YkNr_Sc zlN2VGP^D=l5|6Ckdp%1ESoOUNGR8qKplS;GDt$d@UNn9kr3<;Xf;7tGae_u~pV1%h zg`q@&c8baNw1@syK<8?~%_H~$f1z0UJBNbkl z+)}v@yE6GwZ4~26f-D6NS(li?+?=>dAA>y`A=uyi>*W5?Mn8~i4IvKSpbhyp`zLIj@YJ*ES;il6Fn`pc7Gme}$`^-GJ4tKie?Fu@(ZUhoWgTCA<>R=$}&=+sGW7+|r;X_*JPX zqT#EnrNy9g7 z-QfWnLE8OI)q%x(mA>EOynq1%a5WtWXUK@f6V{hpg>$KR~rJPd_S8`)O zwg3nFuFfS{cfeNqreoTvv)h0R-N|R8WcRDry@7-r9@)Hue44+dal)a`uUkHbmEz~K z$7=D6&J6aVwxo5&#>0+8vZ-Hsw4OA-FUw}Y^EJ%b>4c0Y^o*q?P$J94ErthpSa{o1 zCUWb?^k`$LPtzy!82EWQ`6f`{m#Q>^DX{;^FqQ-gOi4XfhY{88d>ibY@Os154KPQx zizQ5ezY`reO0Qk<=_#$>wBv2dkp8Wr9&8}Stn2%2@>sWaT{WA&_F2l7GzClC`Kn?s zr->&+Bzof8;Yu+N5B!%K-7w?FXFdbgJTOLLi{Zb3gy*sneU0SLRQM?5J7Ub$sz3ux zCacQzAtZ511S6ko^+%-OejguOWQ-Xt;=%i~-akL6r4xRNu?+uB(5JAbc>$3#+%Gj8 zaVoi&t_}YnqV_@-%?aP=c62{a2*Bl1w0S7Q1ur{KB7#U0etm}C;1`$O`TD3i4&xTP z>f{w%Kfb-F#QNgNByNbAsJy^ZL;^H%IWS*B^kzMGQ$(W#XlQa%NQIK!l}(c$!>HOlowL1Z{s^h^Lh2QY2xlpURl~DOix00i1~s)R`ZP zD+Oy4wJ#)QER$i)*tFKE2f`r;=(jpJn%=dm-!a5tUg$U%iMu9($EI!JAi!89MFVO0 z9C{yr;$4_7&oi}{ZYsGIq6hznfn`EeQ31|jEgL_!+yTy#>%ynxA{0*P&Y!{lRCiHU zXhk}F6>pB_UHjz$o^RQ*J{#+h_Bb3vmw?4j?YqAXRaJk)K1tN*_>-KvekTL{(O_$? z7#Xgi%6RkZ9dEvXpr*ReRUN=_hMC;3@YiyL@x+u63xz@A$??)R%{p|M{OZd#88@5u z2rqDUMZp}1b0|sfm+)_djIbIjLhrT(jNe4RGpUZnoRi$FO}MKK?Z#H1{;F#ig?v0{ zd%iNZY7>0R^K;$B9XBX#lwm9);ryQWLz` zm~Z$I7%0A${0#0B&Q6mEU(?Z;*LD#vz9@Fa-CkrE!uA!O{isLeZsM`*vaGo(_?Pj4=RT%wF_ZV?J#%pSlN^PO+bLRG&a7>2q(|Gb#!V#0GO+T*9AL5? zOW9$5Qv5KK37m|GK=OGbW6d*0cw4 zQSGTjB0MESmYSyjuqj%KE}a;+$PH=zdrnY|_5Ikcw~Kcp-m(yF;!_2S{6>nF>MIJT zh`K1Jb5+WbmxT{X@)}_{R%h=`Gr>r=nsXPQ&u&Oj2h^n617=Tm5H6~SIGrKfLf?e0 zDsIkBB|XE#6_MSX6U_rc_E&%El2oeL^?*bhFmoQX-S$Nxao&5G)S=u#^2-eo7thTA zjmaN3zb{P=ul3fl{OLuw8kzJ zj**cNFjNlr0&>F7$q%V>_|v5Msc#h@mx=7>B#$xz`4w)5Se4|!q781vl&8kXFns~y z4pBJ)T>jfyg6F$U~wl2;H*l10YR%7 zKlUGMQ75le=jgPNmz-%9jxk-ANBsfgDN-COlfH{@A^$snvV|o_mHK9eDzLP+Nrj_TPPL>J5as3+;^gJ!65tc$<>D2jrc_W;(-hXX@$htT za}}fJX6NE$=jNrRw6+qKck^(u@DihTaIvtn;c)zDW0%@Xd*9?oABBR01i}QNzwY=J zR-PZFG&NOIr8tP2m^jYh0r+WnDFis2*N6iS0SE4707Uj5vVi~x_aEl*e+>>Egn)?j z1{nqQRZRLS`G4*I%l}XOvI4?DfCIr}BVfOxCYSkh&mPU7G{hR$#x9o0WiT6F4VmTa zSkbh?xKdq?P+&Jus*(nb?6RscFIXE>Om$3_EgB-WFpuvU5h$l!lOB4ycdWU+cWKLP zNlE7lxj5=Q<>-9~(sw1nGYTY-kEy9KXGk`N3dNNi1)EvNqUojmR7hqvHj(4P)pUp{ zK#R&^ne6r1JwD4_3%0Sb&-&zqB%8(WJk6>dlcbqqSYV@_FWvx%nqF_XPO!*jEJN>4 z`zHSOPNBIWvhnE~epbP#OG|2Yz}F{>E*__nHBz7)DV*lPZ~TB$lF^(oo$<2~wJ+~3 z;8A_0C0(~(kw+GfU=S7W8;W$xGMmsRYbcdMzTXDcgNB6NWPw+o&a!xP=4x;rD%419 zzLF_Is?xd|GQtLw85qXo`W8=C4br8|N`c$q59HFrXe%*LDw;IYTDDBY%y4Sxi#}1~ zs}k9MDft{%gs2$9q(qxxq=e^x^X1~Lf$|e3$^}&bmt9UigJHTNq598Q?K)|C~ColD5L)L*)G=0K&`|t zVKHcMus~2jXH{Wx$)fv&ea22+msh)_#Vn&@S~MJ0Ay@VN!(>F1-l#q%D*Uu`tw{fw z@9JH^GH<^e00~CD3<|0Kb0+o~Rhg3S9X|mh-w1LxVyscQ45_3CR46PFq=xI zCp3zmGo$ClLilCa0t{$irq#6UjoQ)`6JAE>%U%~XK()G9db;vAMJC6V^aaP+elk`> zwy^5VVZZwjJFnn9)GQZtIh1$<3mG*1A}L%)W~nsU(n37<4T0F+RoKe7qfUlbzSqDd=cY7`39uB>DDb#(Ws zd4nw!Ag)trK`u>iEJcf~k_$)DH`-d|#?wzQ8aVS^xf2oR{RPcyI^rn3c*r+T7@%e} zgrmc@XO&A!L=p4p>Ap;KkoF;^iF8SP3M9b0~F&Iw;>Sd1K2J|ZQU^TL8K{UVNF4%s1L&Dsom=UXo z7&9}Oph9@JC=lDa1Y18VC!9D=tnVF$t@>`Y1W_V7?1gHV;7t=((?{(?{VplYGmNpv znyZu**r>JZp}GVlOwyU3sZ0ECC^UfKzlYs0IF}{?G6F-qdPC4y{dcfeSbyTH6%lwOl;oyp`L zu0k znQ$;_6T5p#zYekK{0-r<)aSBpKhjFJkt1qwEFQ*TPcf57EZ%ll^NLHf)J-q6&_huK%PW?l(ZM<6ezhT(n=&+Gf6!oXDs?dG1Qa+L zLfR%ob`|BKrmd^rC@8Ol;{!D;ABR2t3ey#vYli4xMKz5JA7m_;OIaEaGakse3MM=r zyB>M+W?0LAY9SghLk*It;BfRK5HkiiDXUhxuWHVGUe)xsWox{f!@=%V-@@JKTzowp zKlMl$R?66djinLKhn53_NaeAZGPSSH%erHWi&+Hvx{SLB%W}L%u>j#-cqS0(eqc<; z7Zw^W(@dvDs|ionh{IZ-NULpSXDBZIAo1Qg&Y{J*PVVyTKJn=B*o}`kuPWwOa-@!> zG@@{keq>vpyY!uV#C%GP=ocx?&#d)IIBMzITJ5{bW{0B0&>k+`~zJ!j4r~68b=WnK!cY?6zLsi zoAjeeoVl5s6|Es&cjS`Y6|cs+b29h^Byo2WEM2V`7R7=mjmd&LLtBq%h^^$fw~!sV zd)j#JGqPK@&^qOCeb*a)Z_afIRtwWhvj3KbuFeY8!7Tn!4tVFBOsLjbIkG8Pvst0> zWvnfGS)nN-S53eDzzj1_RQQ(jgsDWmV1*s3%dAfbfqg>>M>I)RqN@`?fUVm7KJ^td zc3M6aKc(n+;()C1sOo_{IXob>H;A%P?G*mUo>`P_GGzr33DUf|HL zCvkntRLLuuYLKo~nfkLuO%gv&L>2#+4jmm}LaAAvipg2q~gu3`~mQCi6| zWj+NBu+-P3Ms;q0V>v?OhN-1UPGkESen^*%7`o~OT)Q*`oZ}p~C&UZxL*A-i`(=V1 z^%ES7z{VcbEy=oVXv}oRsAkb|`o=CQX5R5|{Kjee#Q39J(JHQnW%UcmloL9TU7^Ff z7tqv9v~CP*Jc6!lbYaOC2N{=-%xOU}<4epkY=(z5=a*~l>vQ@8MnnouZ{WJC-;SuR=GNvNm{2r9Y&6aoR&50GRkSJ?DfkyKb$f~q0UEkMvuoz z3HdlywIvl&x=CO&GV3VKX6*<$ByTtf3M+>0P-8>&?nF~j$4$O@_ENAJS+oi9VCxTS zdsf{@T0wX^Wz`;{$x_uLHu-H;PrNo&6c2nLrUe{4=mA}5G7C)TRfDzVc^p<|;yPuT zpp3lM|83=&TZ=wJL3(i9*r=LG@REs4Ukr#=yn_9&$hiKHCvw!>i!K=bmQ^fp*N=l@ z;#74)FaLt8Y9Iwa4C0OibSH2t2;kpHMu31< zf(r{O{LduHFS4{$Z_?(DT-)-F>%?C`OZ^84&(854twzkhX7OV2wP*`1*?Kdl1m|t2 zVae>c2F4`|VD0T8aP6zpv%O;%6IZ^t52_>Maxc*hWo4wqju?Ue`AH34s+E%7nTl~h zNxP&zLyl9SnonSzYsGu#@agUe=Lq;0L#dqhiMSp{Bg%H_{+ z_OW>3qs4j+}5|P;68pG_JW_4gsKg|E+|X zlL(u1fi+4+eFPPXVnii;oV4y|X zL}NN5drk753AyyLR}d^4mIhH%8?zYVa&A$X`gi%rwRd^f%BG|3_!S+=P#XKSXG!c& zRMgn%D4?X*6Qu&hxSlLAfaj8wOW>YqGoabz(f;*4Jn-?7zMw5j8_Up-4(&hf*pkM|_quOh$KZ z(pkMpK-(|2J2tZEy79TqYdo${NSLMZbmN zY@(aY0jwC+_`?KtWte@GXINU1e_msjRZiOmV0vJ6j&BCT6#5vF9#JU-Ik+R@tMx}Vm> zkO470H3`nV5@qY9;UB0~ip&^8uKa7*`NhcuXiu)J8F0KxwPd$26WGrK6#7HV9%a-j zXRh2gf>A4^!MLoInh{i}tW>zljPtZ8I4G~WOk7B1lZ;}Nc@%J6PC98vHts~@f8T$2 z`v53pj39Z?f(eY@ny#wwsalp1(RxadQ}fwMim06 zn&~LAuR1KPtCXvpPMiK}AaJ0Rq@<+AQA@do?8|Giov2hhm{lHhF(m2w?kRe8rxG$e zR%r$rF86Lxf$}>fI9b`y7di1qMl2Hw^&ayzI`KL7WF0dct3^kZGIL2SdAA-<=za*_^xkI_zIlSM8&ztwCoX>a+BAEV`G9=${&tGcQHp<2F} z&UHI0b~D$goE~On18-ZrrST96^NF=UcOEcHlTeZlymX@Tyx84opUwsJ@}Fx~wojkR zuUCzI|3`0sUQ3|tc2fpG-wm+UIM|fDJX}$5Pv!&yb$7t2@)O6ep0`VPW`WVm zJC8uwzo`*GR`nEo_O!A&8E9?1nJIIx0SOijJT1R_l+Y+QJg!)(TY8QkTGjLyhaT zkdE#k$Ig*@c>q$|zT#+MRR`}U1F z6k_`&=$=?A?#)Ry0ISE-y|<%)*^j%8Twvh(xR38|mhn=;&84|ePj~*()PdW|3y5Ro zp_k@nIO$pB-Yw@j@UlOnWs_yK>{fg^_X`T1Z8|Cr&?53=r)SKnHKo4~UL9UBm-*gs zIH*#iabKIZ)Cd=$QyWV@;x$XNC;(rEcW^DP1b-IlQMmaIkq8i~-uH-f5 zq-Qlw20E|x*d6D)#a5j5<8h{Rwg?>smmmo0_B@0jx^ISr?}0a?8=lMWCQnZvfqeX1VCI3N@@`7!ely|D?e6B<>)-Wa zkeh4ycA&i1Q->P>T$m1)`D`lmUu_;sOg$=OUiEQ5vpf(syZ#EQvrRmEzJtt$#zKCS zQ0R33fsvEsZRV{CP>DBO`HQ^O$hvY)8NsW1tFxT3ldUhi=(%_Bb^J9h`oedvkiW1E zn1$R5EpfPkE1{W?&$5&A6Sj@5&`bCAr_C%e6Op$qch5Ul<|&t(<#$-`qK^bO!|ws^ z$NXcRd^NZ6o5N>{Mmx2oe5nWXT&MBn_{G4f6ClgOt>+bO&wh%VAUFLG#NnEG@jRN# zTMwFuP!!L-aV3NaxlRTK9qok_UikyT6briugQZd|V(-fCX>v2ExOAw;kx~hxym>A8 z&fCcI-tJv(*_8_i6v7PNp{cMpuCgH3Eajb^1|2{3Ivl0WuRnAPzw%3iAYAgD4&od$ z{dcC@u-v-UvyO)Qa29pYm$cUpH7%3!t`vn9?(CzmlusyV%tIMMEn#ZEbQUOxwo32`MW z?;@Kty?NJE+e0tIjjdNS)9>oN=6$0V5JR2$+0#4XlnB>UkwgE+-a4iYjD>TpeFm~$ zeqCDohdkEMdfd3uq{z+ydZ4g{b_Z~8n%H@TksrY?2${^N~=Lc%JM@+axua$q^y@T8e|!8q5Z zGB($_ai-RdJ)d|dL~5#j@~%sK5SA)#4z<*!Q;rzJ9Z`&ckHO=PuwToSu_(4EE;-0q zaGxGTgjmYrC8HWRT*^)H=4gn7IA>feb-Lfbo!J(S!%r!B*K_HjI-1_GRK^l0Y@7}e zoGYs%6PFk^r`v6T0Q*x#e0dC|=Rr)PHdM2qB=AxG+p?)Zu79f&`%SR@rWH4{+l@XT ze*Yd+q~qxprfc6SX?Bp@j@Zn^InRcZSQ-@a>KPJbMoP% zTZXyOd)9=UKWCiXrpU4jgXj0J`PkqSPHwYe*Z|m?ya%Dy$0TRbRi80qIrv>UMcI?M zOs_hphkhPlw%TXf>Ez0iwWQMQM9}E`%>ahO58fQP2w~Vgjpds%{yM4N1T|W$pQ(gb zA-sXUfEfEu{8vYL+Fm(h=f@8L{2{d~6yr~jM+t_Uv!_17`^{PS-2I{_j&a!iv;4iu zb;vV?RB+<&T)MkHzM!`!M(TYs$h$Wh>6?&8-+6#EKpKRDs_A&pBH|#V%6)gF;&}bA zfAzL}&{y34k*MBbdD*Gz|D({tDxGOYYG6_?WR{j?%q5~C;2h+u$kiX{aWAlb6MNb zlR0wVToEiU{089R=}UE*>%SU4c>zTP-SyuuApv7F#Y+9W3ruZ)c#C$_bI_yIh-X|1nr*tkC|W4FL01 z%&$7pWIVoZ=$UGc7mKT=wM~Q6%n`iU4nFRuO&74Ke;NMdrBBso>vpSmY4_bGZoghY zTKne163QE|A$s*;a3Au{6XKhF;DI7LYjgB~Lg(W3gU;RN^Mw4(%$&dMepVRs582;0 z9|QF3V5|9$67$utMOoVE&&hzzXl=Gmy}HJGmW(oQhqlA1<0*w)sQY);zHdF_`&Nam9B;&iKlePR^!%Jk{ z*G)-!1Wl~1ou>+>ahWV0#EE|M51<<-SA0UR=F9fAry*XW?E+M*9V1&bEK@?6R^iitW|3K}eD9xI3qH z{`AwFW%|E}nOX`{d5yu>q>SC1O_lT~_^RCXy_o}BOAe;Z`x!CfZ`rCX#*(EhE~1{bdzDtem{J8*;^yk_J%83Iyxh9Ht3I!9vpNV4GTUHR z$=~?Ra6mUtUohX)%iWXnncr9;N60bHs4n4m85lQWI)w^@jDOLWIH!)y=6q%{mxt*7 zxQ?V{^3DlbQUy(@o2#N*RH=@S`@+awlEHpP{J+&yZlitm_ z;GYo7;c&1B83#k#oh4fcwU@oyt-kU&QM}(*b(%6rTtGcA^&C6Jq{nDsu2QCM1Ys(s z$XQ|o>Fly)3zU|)UtaUNWNK`apU_mzZ1jBDxr7~P&S6tAQQVVCZD6ivNt5bIm5l2} zPk$Mt{LO&uPe%)Zh>ql_%Iv1hJ=N}YAvLNs@1gu!&fmk6hY`9H@Hl$bDTY#?rLohI zzGy}eMpP)iRwiOPBunZS1H}eBI~LWw++XP`86mZY!xox|o|f8|73N@GYUQ9r7wCGwV{8P><4;$v8C1 zQW4-tHcBgxPw>n&#S^%yd;M%x37%T$+P*e1(=<0=P&nM+t6{boKX>uYv5e_sX`TeK z7Sv-i6Rko>A!JNVGxz%mr(@lflU0t;g;6;}jA_Y%V(bX|q$H4%O){8rg;!bLBLeNW9w-9>(377Bj~b9Y<7p5sjY%=Z*XqV zUrTVLse#GDW&(jLzqgK_X@Rs+;8j>@$aBCv zqx%L{ZZT)x!7_d)e;o_N1dpe^7mJwM*a+6tlvy`yx2*g+vcOK`@phB8z0R4$`&etW zS(lsUSY%vH-G0S+b9^6c2P2ROlixJr($#~gsBuehDoV7_CE;0L;~BBsLm-x(-RtMt zP@YMT-I16F?5m!~rA^D*;L6w(*egldx>%)jaI`Gm+1b@=&YV`6kI#Ysio^V??{4ix zRXu&n*9{4_rR?}@0y{10@gib$kSyApS!<9~7# zxEdfK-}e1PwDrP3savC{B`0FEgE$SDxPItTzv`EelWDlh7ckliOrO+7r9sVo3Vgw& zU&bF(FEX*tlVv*y2oQfI*dAhcAzEZ-{45nsh-C926fGGJ8xejWmH?DY?aL5h8+3zUPGun>9zfL7dx-7a+1xCH$6Q>8isYkFj-65mjEwi7tb45OGq?gS4 zg+P}IS2u(9f2)tw@DZhO_(@0>a5&VXn8pN${yElrc>zEdL&m_R;FV!3h1L!C*A%Yu zE3ct1>4XcSS@)gC&dGc{V=S!0ETju2k8_4JhZy#Vh{Wk2TC5aM$xf-4-s6((Uv19Y_0p?#O>HtPvus7Fm#i3& z&DhHD;{a>?(iGt_v`~3@rc#5*dL0-oS~z8kH4Bn-RaGclqq2>?MJ)FS560I zq~zuy`vXinmWX_Sw>P(bn&urwX}@Nx+<1eUiPauoRZCgCsGa|Qvm#ytT*2!*(!TyR z9O|)%S3eX{5k)+QQIo!>l$_qd2WCqd5$fOu?oXyXJywtuC+el+Jk8<_nXIkkJk>BV z*{PE0ywh~(2*Mc$RcU`$PsH0;73qnje3Qm4K#@%OtQ98pBPz$9?}M}qF_zbDTeXe- zzv*M^GB#L8qG_x*NYa|66j!_ZCYWENjN8yOJtjGxne9-{6o;987G9-=E1tkE**MAo zuQyDtZ;(BBy}5@8s@Y(zSfCV#xDsO4K`yN;?cx$Ixw=1 z;AV_SV<_Uu!GYtmefWRQ^^e&&*Th-@e!h)Y9=``W&2ccpNc~Jc!R}kE^=N7$QEgqh zym^^dZQ!h7U@aSy^e_04LS3R=&2@glpAc(h`6Gm}v6JxN=m;Yy@d^rPE%)`emvg(F zJ!>{d2-k)cT~&rAwAT&Bnmb5oStApC=c<*9`bj<7%fOP6Df(igta=K~G;AKgj^Y99 zS#QUJ_rRhQUYu-78b1t=2$vZL6$uqp6T3`wZbyG#gUprhSkN59lvgWhta#<$cV!-D z)&`6BIhQ$2?{RC1Xj$}8M3@a+MzO!3b|qwvCF9I?iQ3ijt#f-L;Zae}X;XHFNnyxW zqhVJ_$MCViv-7)jU-@|5_3*m^^_INt6PQ?B$0l18JacAz;qKbW@Sy%28@Q9802CKsr0k}g(RcZsraiQ zWD~wIXn2Wcd@6NCDXr?KH&{?b&J1N7P_s>lZwRlaFSvJk;$s$Ajdy^JuvU()HHFGs zaVIdZnssah+8$|vq08x@PiLuYIbh)&X_P0nN|@`PO@LG*Mco_*swzqQgdus9O=+DG zgFVYU_d0Kd@NzHjn=J#e&SfgPxQMMaa+R#j)JdIRckVw+(ux{Zu@PEJGRZ?iai}cW z(7=%6;Rh>{S~^6h4~%b9e$pDt7E#)MaQ*B|z)673{l7f|VybnMJ#E5m1hWH{BQaMt zL>M*Jq0;v1A~lq>8JNth@SM|)Y+{nOgBUPNklu%mbMl` z&cu)rY-3uKAGM+#L>(rr%jUU(?0k(A+(MwnVM4{2#*GL(U6qM@cN1tVL~rH;K2(tw zY~QFgGSi4=n*e{oAo{4b|J=@TWIP5*=m_5}97BLG*vOuy~B{|;4bAF=l z{nABE8Wf`lFx6fhx3?`#q*2xquw2g?4xk(2Ty7nUOrs%9r&e+yMzfTeHCcL}@?Cz4 z_&ClrOE~3+EG7s$v=Ey%MOkx1x1vJjO)|aign7L6#oS=~64YaH#qrx)%0k&J)&>u) z6XunSH-eKh1k0-0M#LZAqf@1577-RIx1^QUH#h4H10t5a?U1m3Y}_#%ZeCu)a9t(V zaXtb>>iLQk=8Q)tp1cH?tlr{y*HRYe#B?W@NM&{hW7c+jOTP4+M7BouK6K&6EdoeO zYDv`F35wC!GoJ^9KJvXEnO9lM#r%f)9eX>pvB~A}&UB@=QQw^wPc(TtG9qJ4Nx~PE;54CT#kkOl^^KbVfT8?Sj3#i+R4F0kip|VpyOl6uIf7g8(Z~nM| zm83xd@`bvDd52O>auy3Lvw-Iw;ufi&k_8=F7|lO(i{?ot`#?TO>{ z0|ioYeg!P@R__#ic_FiX`!3%-)A?uxyh56Id_troH_cAL;FaB zG(XqaqU@0Q#M`b~CH#=!{P6E_{6%-DIyxQ}>&A>jAQnC97j$BNpf-^0QyJK6oJ9(~uNEA1DO;%3>z4}KB$LxwKeMp}` z5s#(L^|fO#T#J7CQzB!|D3ux}f_P31ry=yWL?n*&9~H_dxU01cGy-vjm?+*FRxr#h zk(j7=s%dJ8(S#p|hEqrV<=!fv|I#Y8iGQ+itOhU=82~;q#~CtQ7%D!L;Rft*PJ<)! zg%z84FG~Y>*FtAEUoZzgOI}GM{9<7&eXvffWFg`#e<57oyj|#-xb>Ap8itRDIq`Ix z8vQJR1Wu~{gWm~~E=?KGg&ck~C7CTmj(c2uJcF+_B*_C*aY`3mMAxxDaH4re4^KBZ z?KwTx0aq&HjCA)JXED5jLx7;hOOnPRq0{Mz2KX!3nE}nh{^PdP)zLqs)}ZHF}1`Ci(4sDlcU?6?lDk;Ik$jFX(O2+3$ax~Izh)ePx zeeRXNsey*K4J?gDACIIh#!gIpUYb-#>D6``{fQW*t@+%=AN3DO^MjUEn?FBy$s>2A zH0+2FjJQP%f+G=+po+#ieT>01&rcXNbuZ5S>AV_Qcj9nUEa@uF8dzI3I+e2~7X5*j zXLm@}KRr~3Xh@ZY#;Ngqqr?5ziY1WY5_mSmoltRwjXpmaG#dXvz|Xa_z1Y_V6t0g^ zQg1`E-dOQu7KtZNstHD zHpga7imh{HbCDR*EYA>yh>=8K`@~rQrKgDSN3$7uuD$X{i(>fDXr_zwB_7}vNbDA^ ztR9=nK^Q1==eLx|=l-C7A=8rI0Pp2+;X*zz|MBBDvMK(Ul@_U~Gw~-?JZHI8YGcV+ zWD4-KIVSjecG!iNr39zWRLqC9gQ?7?NlAk@(ZbZrMc*+khJNz|5$^MA0jGkCrmS+8n8)uByb<2(KQg~~&{#Z> zG-=VR5BD*PgTaT;Z`!;h1u;rz$0tV9dh~z0M-kUG-~B^^7e``=1IQ!H+l?e1NY@lz z^oJ&IOLK=0i9hJ$=sS5DF~o6hdoXmB1f=IThI$yO-rOa6Ji-O9o)+bcX1tvR`i#my zxb4IZRT1FopvS&kHa?wqh`f^zCD3Or__WU@fh>d}dD=EGB^OjTzPJ5nSG@Vo;Jt^j zX5a&C04`pP3))Mdm0)8*D6lLDipH(Zf=M6(Vlv*EdMpb~#}?^z=0~@Vef5h0?&*cdJ;z z$f75xaFqHV5^FFX=T!pCnPe#?!;F#t&TGs@+k25qA({la9azm>tTe3adttMlkV+gm z?KH^#<{NL8sKYXL5wi2Es&Mw#C`OoXq7Jhd_!5#HB>R$uRb7Ttuy*%XY;;vL{iG}W z#b)ZnG$^)%Khbv5lRC2#TThp0c`^FX{>9Kg;`(AW^MlZHnlp_gC<84r+xeC1koov2 z?jmcALJ>#A4-5c)vdztg@HIPldDC0=!Gu^n1$9Zg2{TNFmMO6{RC}2%S^CFz6~#zR z8WegZ_47W;Zr^F9oVbzv?7V9>=q(aOHJ826)pV}Rt1bzZaw`ng322!&`;7no*YUoc z`uGwlZ2`G632QG(hT9THw$HR_0fwnM+oA!<84R|M#SAEnF<9dy^IE6%U%b*DAK|&+ zbQS+u8Su*UT?^8};6AUTpBIO5ylbE4=d9+4#k``Wuo*w>+5tS~NW9n;+zl~y-0(6X zn0J=ylV_CN-RA#J5t@!zp+l^51(%>L^6s0^isg#zzwX1~{nxZCnLxtf8^|if00LnZIv?o?MtSM5e9R^AJMIqdgoTmH_snH?W?GrKSf*2{O z$f9!smxk|rniAieciF}8^DEepRZrTbfBy!Sf69-~=3=z?zmAF2?LJczUv$=(l8_qm z*dTWj_qQ7nae>m}iv#3a0L(g{$r$EwyAmKvfT(*NW%wVG=X!`4%b2q9kH)B8GVJ0+ zbxjl-9E|{NF)|yxFv%Ka;gx=_nLIV@&+}^{;v%AC=G2tqOBD3mg>JCpzrkqTRB1T>5&+=(|7_996gHm(L9nw(y^ zO)cCLi>7Yz3ZwTjqIaW47Pb9nFeE#IAlK1_(RoG(((kQmhGi*!x=4(v7 zZ%+ArB*49H{#;&TnB+UoFLRLj|ISZ~>Q7PLq9e1Z@dn#@D?i$gP(%ukr<2ZNG77wI z`PKwWx+X=_qFj<^H02Dse+dEdoK>^+Z>^0XptX9P8mRkDQ*)a^ITWUOTd@OTUC?c!p75xy~O>x-3ZMChE3aKR4f)zHvdJF z-}nYETVvtm$ZoB$azyJa_eVF!oH6oHk(mv?Zwk{)heDl9x$!9x`8*)4Z(KmZy2Z@% zZJD*oI^m`4GSta7Ageq~=Jx*G_pt#-8<(rk`;_T|#mU?*uECys*=q_qpA1*nRxRDy zI{6VbIG4AiT1z&y>r1asK}iPTrkqOEN6b1Sj%+?I^PY&Bn*483o?%N$Zds8D-9jB#LRn;c;5zV3dH^>Q z-{*qieLCjcgbIUqVaK-d>Epj`L0U)!3^;s1ccN;nW*``eG)?S)qlbXu!QavF`% z$C%jp$DusXlC*jb>)j|#6H475nNwM#ytrg%T&sz(hP==b*+vw~4 za0B^jM1>;QW9Is0#l}L_4VCk}8GW|OlAnGT@PON~T=`^hN$DO`_nYK(K+rZZIE&6R z+K+UEC&sB#7hO&J)pXY_PBPhd_mnk#8dpQcus)9UTb?2Db7Xs7rL4~hrG zO?Dy|rParONUyhc1gyH=&5PV9)7Z*cXe%*~-l9wNHVHAl9XA#UI#}DVk)Prcp;vWa zG6D^ZjyaWl$i;g1S?&bYtCdYcrTGvv4rG<&27b(CC#REKbo$8p-e-DVnOH$ORa?IA zB^12*)Blw8hkJqI+kwh2(`^rMlA-mWgv>x~cc{9sc|7ZU)j5a9Vk-WAxgfXMfu9{*AJh{y$2m7>aMX1%AVZk1fETLY%o z2<0laOjN0w>fKyRt6W6{skc_rXWY$Rr2UlGX~Mxp-DgG%r`LnvS-DS<-SJ;1+<7oFd6tt>%SKinA^V zCZ9KR9U0Rra(&eqmJi8Fh;HACLJxu*DuS&~wc2p2=vHs-e$MZwtIiyn+RAfC(Wpp1 z2BbsIHawhsGYjiQl9&9u*Va4z+|}<|JDIDYy&I(S37Q`(oyi9;^-g-~fws2Ro>u5o z)mkq!2ge!n`-mig2<2QUs5^@CcJEjV>Hc{qFMT&R1+6guUc*jCTC;K(Rgn4lmg z4N+8T59WO46X*QNA#m$K?-DWXi|Ny){}%Jj!|DwK&QTC8uS~6}D|;LpB!Aq)M8|PA z#B@Ybg@uMKCvA-M4U%r|$!EshYA{SrmoY-sT!|Oqb5E{Zh))axu&nqpI*ZP^F7vYW zq;Ae++$u*5N_vCZ{jr3s`~-_0H(GX3WmvzdlN`H^2T8JJOC%RpRn%m)Y2*;sYdjIen`3G&ByZ2u#- zAGbG}Ua&@GI`WEr4T6IomDjsmtMXm#!*=K{HZN{@)8;9bZ)rGGOf^kk*SoXbUDrGF z`n+y2-lAaEQ9d{$ZNSjt3Bt&3jAM}QFOQy~nQ>1ox*M4T3{!%tE2y6{L7q;Hc3(O2 zTyhZ_#A95aO>f&e4~7k~K=b$DDTqzO@nyrp80rm&4{q5!ZNW6sG7feAX%!qw`GqyN zTI+L;AyeC9jE_|gLRWisWbj!qFY!(~pZ9H3cKilSZK)%@~u~{i|=YrU|y-uorsV>u(e>r7hfn;co=PZED zr*%}ven3+N9?SZ{4!-IU3@PlVj?BeDc00GbUgxqNKkf9B=|#H_c>W=2`O;vBjYq6> zngiKhlPbr4(UhB~>ZRnv-=_t}lO`JPF7k@#t7T!ZxR6Em4^*ui1|QEKCAw-H^FEo( z>|Cgw3f66{O0f4h!F%Mcurnsvb)`8<|J;@nN$zWUnW+R77*80dm1ld?Bq z+Ek{Wofh;;vT~+-8M4Y7pV;XF6`Xujl5uXGpI8^p@tF2X; ztiGkekb)z>2n5N1@VD0BW}M2unL^h#jAJ4}wK@gvZj00N)AOkyhx3FXMae!RwBmEK zPKd*R?Ri*Fnc%j0$#HX_dDR6Nkt6?v--@4fyMG}5w(T0L{G2Q6in$=PZ^^e8Fyhb8 z{gmZYguXB*{kIgF^3t)s!m?lakZ(%k!kFAlr-ZzMx0{uM?<1kf#r&(JL3O*pb0NX& zs-B&Z?_22!oIzSX8g(ZNwh6Eb#{(Q=F`p~QOoFcZ*HVbvA*Z@~NcpSGKkoCc&T91# zwzj(so7{_Ye=A+pWq1LV-=?}PummMvK(DR!seRrW-;lj&OjGG77s{2wOn4j8TJ|$E zOr`giMOOJFI&^}p{_f>jH5A487r)~3MY_{)ql^jV&wJe=6+WwM4QKnx*9V;My<{O$ zcT35l32&$8?xq)cqPQJNjHiAB(Ws7<<=U(-*&7qpTcgLZ{F4<$a zP0(C9h};eu&Bd~px2s)Vp;*N*asxJu1DjZhL+_V@EmK|H(7FhpAMXhy;ny~3kV|yQ;n?SbjBYR)L2nF zxPy5H`4;Hx_`L)fu^n4*%*!+M7XYu4cY;rKKX2B`a)0VQna@s={0?}cNbR6*3Y&$imgLN%D0>V%e%39+55B&k_Qy!yV21JtQ z;8mjfp!dhn-`iR-uowK`*TYunu9j&-Af3=T$v+`qI-i(zW&L{|KUGG#=ePn_E)AZh z?xs3imYg{GInK;pI!iIGFL(jkjKUJ=1%lx z-;@jaD$~r}8*|jz)z^@QvZYKpI;3q!p8@;$SYx~WOC}@Awv126#h*@XZEcCE%w#h( z>Jubec;e}$N){Sgv@1?1I+w5IQ=|u~^3l`>b_goW3^)&ri`GWLX14rh*dG6K(Y7ghPK&l^=p4Bl*bV)DB+7Zk~qRc#RJ&ruvNrWjQ? zh^0q_m`Indiav#y7gvHDLC~$1O+cnvCUwZD(*cc`l64c5HJCv)yyQPtoylcarFP4mk~v&E5BF&T-Wkk|XyRxQz+nwaq!Qvp_2p8LL5uju>%S+K&w2g# zA5%3lA)CYc&btNhmEQ;l*OP=`VF50&qU(T}l9HPI>N#6NyQ9EDuC4j$+z?KX{+{iP zWOL85dHxap>FRHL+W8hUA%(KJHjS;t6P$=!3$>Cv%>U*p%}H&=LyNWu2;D^3-=s%>E ze@LA-$ZG_xX7+ya4>!W#X&KiJY+rxX4(i-{vqsYP!Twk5QEV#+3m%mtpt8QC-)?@X zQjl831fLk}N93ODXkQX^t`n;f0U*a*nL6VJY`tlPvmjw{`f3PMo$`DWcO%q+^E>0F(b99J)PXdVWYiy~&Y1Qg}xW*W^Fhs<7crs*{= z5TDoCG*70-042tO=zp{;bpHhAaGGu?iqEm_x`2|MW>}5Ri=l)KDxCa!g9wvBk5_D0 zzvr@wLO# z@8tTt=Vrg&FuJIaFjPghQ#w#kWFG@}Pv91#WY_fb+`k#;y< zUCzz$Y{fVm_xc(@UypHJ3!uU6)mPBuMbq1QZ|pCuf5r2dIRtj+C{6j_DeQ$;)kpi9(n`O=#RYW({S#vr$DP`G@oRO4d8GG`Z>Uh3l~Ly(3rr|1=khA z7Q3TnAi%g9dRm^UROcx8*Iyaqf|HW_#FdEqWD>JV{jgMi!@z&hplNrEvY)*iduzPw zrh4;R*Z%0jcipm}p7)%z;byg3lekl##*TwHKsDRQj5iX zJQke@t`!K$I1-DAjG5#oQ*;lK$wM{dIBqzKtMEd6E?y-n5OdyJKY$ zlnu|+ZBs8ohUsh#;->I7Us{a^23CQIy6>6{eD#YfbjDmIt6pl+K5m$|Ep)=G5zsng z*RAdM6m}Id)208A)Ro-SopW++LS&hTNnyLhHIZhvN#xFs@~oW*I$rI%sG9rfgzS_Z{tO#SJah z)G#s827wrIlt|m4A%M7lM7rPvW^&ScvNM~_SFTFyEfX~(N*{g!(A&HPRkAOwZ_e!I z^P&S+=0>R71SDDRl}dYh+f3MlIe$rE7qz;DmoK@R-P>L0N8z`r23LcgTV7S>eEoL+i&xN#_ls^2b6E+bB3|(%z69{`#Y>cDEdZJD<+4^$ zA0G*q)k4E(17nyVt98GOLS-RrRBA@;H+vLYD6572jVz^CFj$)!kV!HW4t^Z2HhRc{ zi2BQ(yeV1waz?x}hgXpzmMgzH0 z%pd=~gdvmLl+ovm;Bz=@GyJWBjcBy;nwqK<11*U|`tIRw2Ulo3jLqp#PM?MqikoHM za?{9LsLg59;xcCxs;I(V6swViBhkc5$X7*M&TB9S@W4Q#MJLU5CG}*IlDQ#1&3pq! zRC;)|yPS)VcFc&5?$z9mTTvoVy7QwAQC$dA#?GFm{s}QS?Mdyqu;7h)Qsyd1F6fJp zfx4cBQ_R<^{Pp6bZM-V)aNkmcXi*XKhb?{`)x&S{$+*yZm!ApZXq4JhTEDl8^h(}# zfr)AX4_*MF?w9io6v><4>BE4|_*b`3fW zk)LA~pn~7keMdE^9hLn^Wc&#MMtVZ_EyL{}lE-*~9cxClWsn)4DRz$YUzCV5eWXgB zVv@gHb#*X=JN>WwRar$`sp0QL@5&xVLQsbOTrzs6OS{J9RSd1V;SR^S+8{!@O-E>g$>QxT=p&I)($}aw41&zxOhZn|S2q86*cDopms>NZ z)p%HCw$8gHvKkML!08{C(8-i3qbCn>be6s*O}6D!E9t5W@Ru>GFe+_yjNbqU0-3fL zED3k>qqDtTUsZ0d!p5a99qAo?cp?Xf`p9>a*FEdr$n@t}zpq99hvZWK{!_86vH>6I zJJZvg(ed35N*Eg=-a?CynMSmT^inzkTdBy`*PD|fr3JgW@ErQ5jOclSlt@oX;+BcUtQxmKw=ahkZDkn1Jef_tXg z)R^C8(mSYs!0@3`m?N2;-B8oCG9YsrJ`(B-7O6hzK(_uPsK7WhUV_Q0=aQC~F1x=X zLzmNoyeC#LHh$Og#lNE=dKq5wfynZEa9>uIH6i1NYVx{odeL1Y%LVTaX0IKpt#MBI6~FiG3ML5>E^;2;(JQcv@tiDhmZ{IW!DXL6#M zsE6ej$o=@bR!%r5MJJ*$wY5d?IxQ4w-?YH4Fqu2kT8$wyv9mKw&G>J)&Z@&|3QGJx zYbwiQYOg;>9;P9-AOU{UyJ%&jT4#!Wmn~?MbYEXCdb2!+dTPu;o+RPQY4=5neXdZ| z8{PVD#jhoT69cIco1{(h>m;5z3Pf8$b5DBqe~{{TPmU})T4ck))~Yu)U#ck6mP=@5 zjW|WGksU<~s`f)^$_1r5FGMuUTz7tstLa^`6|;^1nyj8!g6thJ!Q8QX_R)Jw0z9Uu zB+$DK{Ms0O0Gy56t-TgnC(*21R7sB)Ca-?Mr*7)%5_${*v>!0ou*gmiC^QYeQt-A6 zf3cg3RBO9Au^C0RIyvok_i=;yo@q7dYsg#})yY$1^zJVAaq~3hbkEF73aK7`U8XhN zKc?{aS9ipr>unk!Hw`l1SVi07!=%dFCN+&HSVmyv0<|e&PXyD|H$B5ocu||-u0k&$ zup=Mmnon~YX4rG8*RdJzu-Ds*`4;7?iM?_J*$Y3K?pho8M29c+_`k-vFh?Zv)!KfS zokT?AbMM*(&Ygn0ew*2i-Se8lb#&eGFTQiN?r@R!{ze!DGwfX1$JyWiA(7lrEiTi+ zOM`7>0X)-i(qj6_AtYI{q5`k>CE`WlA~A3-4h&BNFAyaO`33w1@_|PI_lNr~i?iKE z?F|2Z+pg{sCM{D^~2Y6?B`#sA^gs8 zXQZPwAJ`?Y%*laJ1{U`W%~*7GZVm5P1~%S6oe$-R&+wO)iRMwO51H~YqNq@z$fb}&5pop zsG07cU)y4*{pFWeDMmcDQYIh@N@J}!I1(KNZ%|~ui9}n-@-yNL*fK!y(O>IXF1R(& zv(dQUjNfGR$<{Z`fJJ1;pUXj^eDqy(1P^k<5dR$_OXW@b-Po^t)NH>A4#F~cyHN{; zkxgv6!XJzBby&mL%MGzc_~LitCQa+D@^1NmNRfYs7IVJaOsiz-d#WETtQE;_@WMvf zD@FKgmgtT{!@_dCsSp{R=E_5&()rK8q{Y~gTOCYcv~UF%T(M4qxm2{zh-}g4^@^X~5iZFrZz*m_*}kjOB4cOIqf#Y|a#v>w zYWSvlabYtuA~1c%JJZJe+54GnayCT5stuj(pG^aLj<$;ApX-0oq|FrijLAU(ltl&7 zOzM5H5<&x;S!6CanjP_KhpbJ(FQb}_FKL!XZs9M~gq7NzO||1EkRug7N$Ve(dF8w1 za>;?t=N=aRoD{g##Ty`G@U}($FVfVSyhCN0Gh=e?2BYdy`fuQZY=5rfqOG?@vj{#g z_)tfXN`IDNoU$OQRAlBhL9z^RgkdweWuplxUSY?#8r_g6^qG+w3G`M9qm7c-nwh;e z2rW3bwT)MIXc`*wcS5X{Ql&nUO5bQYP)XLg?j!>@Onu-T(nPxI;Bf%nq28m|Wz*zz zRu{pDHr~W#p!g&ehA9L2%{BpRGOz(HS}kmxF2K!b!VOM=rP%u$M-w~g6RF*&m%a(G z%W#=VlvL&po5<+^=2HPgwy`7uBHI`l4RIi&prgJ-U{oTqjR_C{mH4k|-_h|%qZ1O* z^U7#zdGdv)5tGOQmg&U|aypHSOu8Se`ey!@c8thTmU@xtMNzJyQ)#K)ziIpQ=H>>H z`h*-oe?n6U#k{7FmI<}iOxj{8c_!43l}0f;t1nVefdIWu??T!<_+AfcXryKvx4Cp~ z%v$pEONF^yJ?NSUnr0iNR}`VvGH4`Jcw^2cz*6@d7W|@_xwxU~>ESR-2u%5c&nBQ4 zaha6K)?g9cet+bg-K1~)2DqpF^5r#qp58o~iHUtpB{dKS*Kk*6Xe*Rvi8Q zvEPXdtPAsJgz8idi?QCXQPZl+*#hOSD_O5om?WQ-)#d2GQ`5=XkFQv?iWT+#rsl>> zWL%d7JN!6pDMYmL))8ENU>O(ePl^nYxB_4z5eR~w8#LmVvQd5AM2JDMv(4bLTEyNL z`svLOV|_3ND*Ect8Rgtg6!NS=tFECw7y)Oe55^+--|@c@(dDwy<%)8aAPPvOAXYTR zfhPY||7@Oe@q083G%Q4y=2~_HS%|UTfApit6ty$mqGV}_b%0D?O7F}=Nes+Hb%+0& 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

Wa0@ESO8|eE2OxvqNWRkBfIf&ThWI6*9xfoW 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 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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 SqcAU8W3bp`P#hc^pa0qaY%|6H delta 125483 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ⅈ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ψUvH#H+d%#qIUzDRLqU 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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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

    aPl 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

    7ePc3P9e{DYBzL>Bj)wvpXU&2 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 literal 0 HcmV?d00001 diff --git a/doc/gettingStarted/ui/notifications.jpg b/doc/gettingStarted/ui/notifications.jpg new file mode 100644 index 0000000000000000000000000000000000000000..00b272671b48359b52be9226d4ef84b35162ac86 GIT binary patch literal 186887 zcmeFZbzB`=(=NDif&@>1V8LBCu7Tk04na1q8z)#GcyM=jcMl1{-JK91IE3KAZK}zz_7WMj9>dZfOPr zNlVj%kU=02DhLAx76cC<9W`+fCV-Iu91ASiFmNCkpnO~iVGw?osQ`ZQ2j>Eq_KyxM zfZ2ey=s;NtEbIWr1-=3x zO3N#eu`{!=GPCmlmRZ@^_}Ct2GBz+DD+eD37(@h0_5aI1a==c;A50Hm@{qr_4VVPc z{J~6s92AZ8J7!jPc2>CPzkFo}_$K(<6SYqyJM9|0zHJ zDgW^u1bPCx2m1a|`*8um{DmJ^VEzrm0wep;3mf1M+@Dd72&^Oi8^-&CAN62h|FQ!G zR$%{NJR+b1n2>+}9{zoQeB3y&#fK%37zh~=5eX3i83_sL$rEH0G+cBvR8%wqY#a<+ zVnR|9VnQM!GD>C|GIB-=A|hIDI!0DDFc?fq!z;+cF2KwIW`8sS^W@1BG*mQvbaZ_7 zmqahw|6flJpFmj1k3PY{kb_{cVBoM|9=buKfS(A!(c|#|@@E2e2Y3WTB;+S3sDMHP z&_ghAaIo-j2ng`ND1z~R++EklTJsrCW#T6#hcVRu z3CgqQ_ymMh)HJko^k7adZXRAfvDe}fl2Xz#s%q*Qnp)aACZ-TGa|=r=CubK|H+K)u zfcJqx!6Bhxv2pPUiAl*RskwRi1%*Y$C8f1>^$m?p%`L56U%GpG`}zk4C#R-oX6NP? z7T4A{zHe@A@9gd!pPZhZUtIpWx_*r7G0wlIzXJQ8;=%&rf`x~NgGYLd3kKE=Sm3bW z5ni$(V!u*GGIGQrXMcx`D;kqi^Z5w{hssYpW9S6RGfMCp)$wC!za#s97MTD4QDpxL z?4P(6L1=I=KfrLR9qE5<lcwOTuHy->Y9=eTbd9n@3I=~wOp=vXbUOOtYAFx^|-_g5(=T;^AcQ*`^R zCo3QB_k8UWe0x(KK*$YS7(dKLeOrZlBSgNOqLUa^a4EcosIw( zXDH<^)GN>Z<)V5pkjkiI`W*h^w#HD%64Ow7kLyyYL^9%}qMnGfx5NKSPt$Sf)knRL zZAqkqsW^gEPtNY>yQ)9o4Orf@)Tg0BBd`Sf$XhLF!rTM8*T&E2oisvf9Ec+6)pynB zPA*IEs@-=*aGrM1eGYOjo?{fW+@OgI1BGN+eMrv~=dBx8Mc!yWFNAvvb9Ox~_YGEB z3CT&(#-sr1!#3+PV8OV~ZyFB?5q$mts*Xcu-v-*~KZ{0Mi z^TOBYwCNYdZ1GovwEftHVXQ_x-}Wyh;MrDn{b5fP;sXP86l~)#PWvP7;l5*m$+Qwa z0tMl(oB>?9-D?U+C8Z;-+vS}JOt8bd@8jtfIb+J%z6OH>z)=k z)bVjRbgt?s)|1_HRyqvx_pfHqq<5Z9bn-DjGncYcz3GZOq`TX!w2>43=*uTCbANTa z(_B6Z2&39*Z)8Z<@kTuI>as?YhDrZ4lD-JM|54 zyViU=9zap5ffGo<_BVSi?-+c?Os=Nd=K!zzPIGq{N3-=iZ_j;iex$Qd0kTQoRrMi{ zNsKESORuZ9vJ&q~rtc~hPHOHfZe9tBl3wPi-Z8{kUny-27Znz8IFN!Z2s3!ym;J_d zNpIfdU8xR)dn~4bHZJYHJb)_n*7vyKns4_k&ZS|l=1zF?MB4bMS`s;0>AZU2?(~x3 z@9-V3!j{HwWtr-)-Ys$)cEV>(`zq_be?GwaZ93Nfm#KFg%W|{}$*N2l%65mvbvI!} zQ*tmiMkj$lg;hWw-ntO}F>du}9Y&%>noZ3%u$Rqp9wcfiuPjMAVh!^7(~9V;D9&cS zAUVf0cHdP%vUidbdm>2BHC8E17@gIXV}tUBZPf}}3WW0W=!LaBI7u}ifWlVM=mE4> zrFV=z(J;ZBkA!44aW0@aW;t&HjZaQ5XlVtBXVdNNXY4>A@Yi3t1KKj#SlYu4f z_^cVtxtTk zdM#!WqdX6A+FPaPU&BFdOEr1JZ}`Ta#o5U}Lk-^|Rh8Xps-Pa!&pgv&W=Z|pKtVtO ziu>YR+@+rQ@?K&$k|(#zrd%(xeiPb3hvv>xfHh&X?4HtLx$a85_mWi5Qs$dkIE)!X zqa@N~R0)M|})Y=0;7G$xo7^ElH;E8lJm# zZ~nP}7tJdPh7KXsUo|T^7CT5kwZ_QqKM8R7PGR0GpoCN(*}RoCBPpO}{o$OG{M%cz zQ7bn$G59Hvo+gg zZ1?JGeBt)f=E8@BiF$7IFw@s4qP_Wst<%FwLA^hCaqqTLK`UX051=*D>bJl89{2;chub7@#ne;9AEir>h;I#e1>9c*)329!zC@Zi3`JT->@xpD+ur-6b7dF9sKjuKPLo9#i zLdE_4lB5&DU@^Z*3_g;;@l*rJ=&R94Yd6F=R|e0%FRE6`^<5T5n(1FKZ8ApL9s6W- zSy1#0UTwWd&U4}yDPGw8wA=I8*FCzukfc!hfyIz=$owpzi5kWSokHg7WX z(cE9M!-WLTccottpHO5hKReD#O7dkqrj^Tg-w3l^_N2)}tq*b7nL-Kq9~}EjUq{$w zpo`woOPDMZ1`eEMOJ?4RCf$**2)7Xk11HRV%@Bp9N-Cjp>-l@Ke%}VZs6?#W5%;0= z8o^Vgp%A~@!Zb-IX?gVEV~uGa%8y~(5ndHlAis#tE{?Ie)b1l4jYZuNd^c~uv-Qg7 zJFhFI>$pR!imI(Ow0tbO6=@AKqMhMqoGPUj)jYi#f65Yxgse>ekh>&o5p2&OIru7w1JXvr5+jb>M5OFK)~CM~0q3!nh-NJI!IE zD->AxUIp-8MOA`M>YX(hw-=gj~A&ZN*JeSgy6xmjb(`hxSF%>CY5M=CfuIYa@NrY79BoXG6U{4)*4v@4)n1G@ zx55^0-&34WH$Bhn@Gfp4`ySb??!o(mUV|wUilFJ^c~(d0-hbE(p&&RMfyi{2QxSAK6`^va#1N?{l0{N7 zZ)d|%r`uG%E_)tBllxsC|M5S^43`MHh5@A4Gl+|pwW*w{83pueX76R}5L&{?v zjS3a)dJ~ri&{JB~_X$fi!PW&UD=ROYKa@pvG-EaG%i0%=F)jG3#ggSQe%0o=Wzf9Q znRoZ6>nf(5F+YL8L&&0R>bxG55bJ|S;NsoIZ{rHy#v_fZOaZ%sml1?>nwnJ`7 zp8f51w0J$^n?$#7#_y++3x?XFs{?}67|SJXW+Mu7i2V(_liCvUsL8Y6wNHVEiX#ek zT0f#(BC9dLI(SzO-GwSH~7I&#;;Tx9HS%uHQPL_)jf1jn&;>NgmfF4z>~jd zCd6BiPi$#j-pxR&4U#6UWH75auj+hm5R_ZgrN_;IKzma^p@7&T-_4Y|@^b*VkoCRv z?W%q|yB#!k4IE>j(SlLg?PQ;R`7E2~*xw<~Nu=zjZnhJBxq)ToeWAF8^-i@1Z z^!?H>LCDv0nRD8uQe!zsPKgls)J=41Jqhy)D!7ttBEmQ1cgN?IUGS$U65489h+8`h zQHJLM`})w>9I0=S2^GwR>U=M_Te17Vm`e&#lwn0i0IArqL%%*jm_E;f!qvyyCvc|0IfQm7-N9-) zwVT~wN#UXh(u$ylu}t#RQB!m2t)kmnbc-T#WkEr<^$d|VpKrr){X1+ zpRX3BSb?)tVl7$kGS8{lD`rZc8TC%>hLxG;EgN>3hHemjqZ5eJc&7vGOG5gvURUxn2_vMx2*siZ{*@OLtd8|oTG zorRxAx9^|dO^IBSTz%_(0EH4pNm}h`yo#I|bZ5!H#JINb^ue3L@ZFRfc8b|U@F?oJ zKoYBiyMOxtk~s?|26o|7((sB05cUw>dHe&2ULH86qiS6_i<1oLwe0H)wYu(F@Ow23 zznO$|hXu$=%fSktmz`I(kYxXP(?ei^%;R8)fzqtVI3R0ndCpM>!#%h37d6)=(Q z%8GyraueTy@FJ>Qf{!b5v=%S5e1fkvfN=G=*#db~ExTHtzRN$=B_RgliuFb}$!w@w z`wX1*@PrRik;X5p5H@aJbY6eCV<-{Js(^k)1=MKAZqI}#Tm8IwaxmEyto?q)*R^ELgIam1R6>*mTnFMBCoz5am@@0^9JX8^>N#;O62N{S?-?z7U z>!xpCjGiB~Lz~xt+beB7vTS&SvQO9|%XXiEakJi9Sg~s}Tx!P^J&`Ii-w!BJTZp0< zOs7wd!^leU7C9HfDvJ{r!_bLS(H6o^h~xU{O$Bm*v!`IzYtA1)S0=xJfi{O1Q*{<_ ze4mh^7?^+&ieI0bN(TfT!#_J0%yE}1yuum!waJTfH17cf5+3z?OLF>c0vM9uK9xg# zdbADBQFjrnoSwd8?$gSIrxp^XD$b>KXl0Iz<^5l0G*o0#HHgQMj{RO5E~?&HNBFi| zHy-;tv0t8s+{rttpz&Uhs}S-jS&FR3CJ&TL*slRsf0`=iL%R>46U<cG{o$*syI20?Nb8rBCNWs5GSmz9KO>Xyt;*L_!Fo>wBI!MpPvu4}x?l0F=^dutV zgAxPeAQ3#i-MyrjW%+RxPC9SlKZYiML#zy)H)|@WNs#XbXIOGbr!EjY9U&;(`Y;aH zBPX<}fmjq#%O(<}GX4cI&IJrtd?e4L@G3496m!2*T&ECIDliVa6;Cw9A%lU7=EB64 z1pX9b&0`PQ1Lhehq+#7WWG7oHMP6%eLD<^M5+6? zw4ID2_w%@L^OqHPu9jQ@lT`QWrOkW7d}Gz}i4M$sWTXWaH01BiG)(r@^N%#r(bO$r zh)dpmC*hBJ&i#e-(3k#H^YE-n=lBf%tKz%M^$`ya*J~AK3R;0wL5pl-*jFQ3`Vwnu z=$|%P@N_$Hr>x)9LaGjBqb_{u6%S>zE`;fe-3uqinAbPO#}0KL*M%D@edljWGpLA8 zeh?M6-Bmc<_if6w_KZ{f@KKitGnmx>5-S)Xe3%w1yqUGB%vI%*_3gGa(n28B2dIj1 zWsWe|7Q{Iz5pJ~eyT=%;D=s*sS>`1-;Om*V-`*6N`QbDnOrIxC^4m`M18DJ5DD+C@ z0c5?rk?W%_8vl0cA{N;2N6xoduWw5vsvLK+5|j#X@ABKi6M(054R(UhPfDlcP8+v* zIq{fjq4tjXiJuh?rNi_brA#!BG#$VF3h&LkIazOxCuO~!%Xfb^-%_LJy$k14?=RUP zk}OW*=Um2+>M!J9PR3hkrXGE&{pI(^0h(k0}&w#p+$k9 zB`r*0Z2Y7O3~fPvKCH5=vfK0Yu9@~kf-Y5FNiUm5g$dqJf4C8k?>`?!jwx`|sSo(-oNt|jE6%I&9j z@Iw6t8!0$As(@U3no3L2s)~doK;u~omBd!IXGZCB+)ou`=&2{GMD7lo`4K*v{P7z( zXH}{`3_|yl{7Y_O>IhQ#y-{iT*snKVkOjz_G(&mMD=&LUuww~yw5G_;?D}re9j0_f zP!mjfNtP#Bps;N61-q$w<81Nq8&NU}f^?v-XYoG-Y1jQ;h_m3n0Rjd$)%w4@$dNeW%+I909FF2*dqymEP2FxyniuUeUQo(@Mlo`>`6vw__#Im|wC2373d7$+nbx2M1pHI zW;(R7mLOiG@-Td?e$M{Aub7Rk@I8Sv8TqD~=45-I(%L915f7%z06TKCZX3y_5v@22 z>|PH!?^k#SCsiBTr`;9NYFKBvU$z7c*2i^;WSXxDt8OBf`Zj>4jFrK?7SDCa(9r!` zI{ag#RLIA$S#N2VNN+EMFUKB02GQAP`6s6$eI6DfcbE74GA6Gkm9Ny^(k_T#doVnJ z1mlhoqq~K-OMMzhlOzU3gop4SKw4Q9wBh%ueb>{!^{%{pD->s=n1K7`M=i-DxhGsK zx95g~5hZ{D$xXSF9+pH}n0dvkJ>R3$CTnB6y3HT<-6%!Xo|;BKuPNiS6ZBt^Nb?9Q zi+pHq7v$LR7bbcDP$bp58nUw`3Anfj7WMU0*CNqYZTiOYd zAGLLolUbSyl529xv&uV&K`bn#JfRR(PX#p-PiqriQ*vP;G68o!cUuQrh_exyyRD6# z6Q8>v`ETQV0Dcs+kdysZakdsD*8*O!i`hdVWMF16Gb3_ ztO=6;an;SujoFQZ*&b@n!p6(X%fiae!p_bFXfQc>*f|@yGub&&{B7Yi#K{C|>ELV$ zyxxDbXk={f;w(rGZ2vFEY#rp~|7G~U%z>@#qqo1cot(v8fyVz`#+=kV93U(z5GQ*V zs0l>e6=LU1@pp4mlYg~!aDm$V4#3oe1!4oS1=O5?jI;e~Q;)oZe`!AkY;I}m@Vf<& z*?(yP_+Lu@rSp%Q1|sBpZExc8xDn~sg5-~u_)P6hEKT`-Lta)Rc5XJX36mMO2`>{E z%xlDCWX8eH#0lo&Fy=O6*S=;< zV0Kn6CSwR28xt=t8-&}0hn3BQm+SBLicm{n7#Z38yFZV1OdsvAgE@JOOgWjrW=6(L zU``GQld&nUF_S3=7y>ro2D7sngUQKEP5312p|(aqKUmrtnL}8t93bZ8WRLmcd!-~T zNY2j8`e#+i#>m+W&=n+?v$S(@|07kiw1ucT8$D)@jf;bei-Vn=4b02V1~~dhLjwYJ z0>;auso%Vh-_G-iK_N!Y_E0r@dmBOWf6+o7$Jt*gma=pLsy+UUTvdqUA7o=m_Iup$ z8JRqeLP2sTBUgwi`5&Q)g^`^(1lXT|KK)D0^1nzitBDbhF}oQj&_zbNZz5ScOLPq;L3v_?$xmiFSLj)Kt zOh9L`v8l0f@Nx3;fw>r1+4)#m$yxqC^q&V}%)!deW5UD%HUqlWl*g3G2*SI#J}0J;iIc-CB_+AP*^K{dc`^G)%mjg^ zm>zBYul4_}1l<(4*#TIPWPp~4i38Lbz;6J|<>u`0h?4<~3tVsld{~%r05d`X2LU|) zC^!BKA3S37-}pDX6&I?eA_m0v$i*cy|2J&>Z`i~FY76Lq0Ub(HTRXr$tkz%H^bvbK zVp|&*z_;JiV}xiBJ9Sl{qy!cskR(VNVA(2x$Uw#*7my{$2ILH40!lkT;sjCw>P7!I z?FoOkR{~lY1FbAUCP0hVAbXH4$mn-_&|@C}I>7W#Zk>SJo8KZBG*N(t{Pp4ClnS6w z$ALh1(GL$dIS&taxd8EY83g)d_fLEKY=AI)4#=bbkx^!WKp5{qpvLZhWX4G#P*X4n zgumcm1U34-9e|b#f;9t(?>CXe4F?18T>mEfk^ln{{*e~@n2O&MK<$M`03jkjK|%pYvqb+Q&Hi2go9l~+ zfQ0<;hkA+$2avpBE)=J{l5fO#W3>=zu_P)G^HCfCGEQixU)|0&!B$aJHEf!aaKyMv&opN)P^xN!grep$ch7q>!Yv{BMvTv0W8vOeErx!e z!K!{w;8%U@*P2bJZJ(@=MWK0`=<vK&DYbEp|8Tfhzl1AfI+64q6#w6M#G~n5Y=2{pR91Da7L9ltxy^DKg&d z=j3SgVjWm4&lbai=Tq|OD6s&!Jky$4?VG*bS%Esnif_Z4q{_9qEv>BCDD*>A_|Y-O zmOQcrS)#UCbX1Io)F;Y^ba2EZGK|aJTm8g>3>Tk1`n9>7QwfDqf-5+waY7iebf`Ip zTFg^Fs-fIAPP7*ZwJ}GKW+vn;#PrgZO8GU21(OLPlf}!w0)^9aS+1!NEO+&<4R)`> zj^coWbj1qR1Tu0q+ZMUZEjOyNug1y{eD*De_$095By+1>tm=3shdrJ)o;GSO8zv?< zjciY-)>(!l5Q8uvP9SK#|}qG}Jl)pVM|Il(!*b(Y%4 z@{bKuL)NcnTKK(T`(|1xFR=s}p6_*D*Sq0}plMt+@Ri=#%158jTk+{< z{J8Jz9jokqWx`V_UNQa6=dB0Y^sm>RTcrimG*8mg=Q)~T zYBZ!yM>$9kM2aVS=c~q~3hCA6dAa$GktZxUEPFoswX@0Je@UA$61r{Q!cEE~&~U8M z*TIN)@MUZ=2ppTeTTk!@y;j@_ft?-shB6H6S4&ORqs!iqBH~yB5rxsd>@KcHB$(ir zl)NahYN4h#R(CAXA4#X$oJA7Lxa>0;k`SqgI;COI;2NAJOZDTVQ@ ztAySD*#+zfV-IolNMToi#A_wZF3dPJmxX97ZEfP0M1&l{a`~&|C=%q_qrTor<)PSq60H8cxI#yJQYZ-dt<4gozCt;dPefUVbPHREv7#9& zcvwMo2JNzJEN{rl%PbpNaS>Cho^|KHTH10u>svBrSC;G!@7&I@ zhv1cOmGsQs=%h=5jQr%0C-kjznrn4hO?BmfLDjL4`7z|EH+EM_`@Z;fc@J`{?%5X* zxd{yAZbAZ)-SWthqJT#`#LVBIHLOLSep+s-tx zoWJ>={ zfTYG{Cr+s^jX}xfN4u4+wlzZwgSzi&J+gXREZQYsrF7Eq1;1 zllPXriB2~Oe35MWd6dX zulm$m{}<^_<>~DH1_{}H@ondhknEB3+&7=my8WrG`?4{`s|tES9pRd*o|Db`Ti=`) zx$&#^0f&Z(*G!UA4!5f3iY#YUFD`tF)_lfB@1h1vuZg@)Z=OduN^_~vYih0UZ~MO3 zQBOG-{r)~Nx~L9t32kHY4yO?&mCC`Yz6j~_ZLC3O#HpKDeqC8IO{#|L(5z7B$e}Pr z>(I7FUvSV#Vow*;)s&q_3did8CiYdV|ZwodOf20<97bL*XhD71Ig2) z+Iz>{SC@TvmuVlb1fe;)M{%pCW2!%yc=#Ju%X;@KTP{92m5*AslyU-5*BA!!T6blL#pU^?^wqwQw`ZJJN_$#+ z@l`eF0Yr7F;^Vk_t2w={xJNqVvwGE6b6vI7X&n56I`5LF$(Lre*#r1K;e_<<)?ORW zwb=2P<8kMN!0K?vSn3tVuJDr;4lBBpwrBKtC~4-KK?z`e`{2CHTem!axM?@84}oiT zjRHPx<(`F8@fvPSWiLGVM`i}~cYoqLTM%8mv)G`pd*$3nY;t(pw%lvTq!h+dF#5w< zI0f=D*mc>P;fwcb#C^n;t&gwlgl*o&r5Esm%S)q``Ujc%WYC-=-VheOvBdj?fySyY zc6P@;IZvIQkA`M^uhOye)f?m1p0pzv+ipkmirGHcQp_0`S-#_w6xQRDZW~~)59%$M zxnCNp&DNHDmLkHX`cxwv4*}#S}X2txZc;z5dnX zc*UC*-;IJ%VR$)0k{i`~UCoDs*oBDNb}x$&&dghEpOy>Z6ArsZMA*k~G-lxNkJ5bGPQY-4f4-$H1Vd#+{x-BQ3NxOlBpq%UVSy{VP z&GAxr*{1i;?<9&jB@EoAZ=Wr^h&|A^o;LV0%%=7vdJrLvEMQ{<9n0V7z3Hr+6VQ~X%%9(`9qqMG#%X{pw$F0#={lykqR$^nx4TphkoQ>Ed*Hkpr- zFOQFpXeOrAmrGku>=9=geUi_%Yfk03ko{cj;qy@BwSz*#<4Z&Ye2rdoYDnsH@G_872rz|u>_c*CP=#(^UipB zkSPBAT1{Cw8Tm0BDS3a+dT9S-sHlpclMQPxrePt9uB3f#3thw{y_njld zZDTr-5ld9Ovr15#5jLe9%@h?JfA_Q)os8J%jLPj$><*d->nx!> zwV}XeFo%(xoX*733d&o2if8-*)~<%qlquCe#I2{W+;pHc{>0wzJUqRtb%aP@s*R1; zJ4DMFp~%V^*&s%q&z{*rU{EmCm`|G+I!R%4xte#{`h42U9X-W@f=gNs>rG@4qhg^s zQH?ANK1U-?5m$1b(TDf(BK`WW`=>J%%slFmxv74!sK1M1@Q?X2FLapGbKtyr>60Rh zF3%(xDCNsW?KNt5hr@%wSG;X8wxgeJ=yh(0^0Z7Imx}c>;+P3_ zQzKJrEz_5d{rhGFjPIf_M3&}8{)~zy-OdVLf3_4(_<&U;-;M)C<8%i zv8l^wkhb}FS)EkgV5xgheDXZ|+zl~B=m<6VmGrz0ee7&BbkU@wOan$GVjDY)C3yU5 zG|vW^EEP<37FBk7zq|WU-E0J6x!(M(kexs@ZvK5jpmnRVd~&3CEM9Y*dirOFelQf* z(LA2{J)0$GoN;>S)nzH2S}ot^2Rj-?QH-$*eMqYgmz+yn>9&mj$G5#-HK)q9YU^z9 z3YVUpdQ7d8?i+kUx7BEJ*~(d_}nADY?!0T??W)E z94BEatQtFc&`&il-Z|}-6b8d*8rV`UADri*t;7VHd<)RlJ!kVsH-1%6imU5htm||8 zeMM#Np>vtZMvc@W!`x}4Qt?eJ!#1dmzIya?e)xJBoT++)??e@!6mP z<*{RX5=$TREN7d5H)sGCy`PjO+0+Vx_>3o?y7?(Td2XV73>R0QI9l_!6eh><5U!q3 zH6Gdcr!TqmhFwPGm!70%c@Sl`M*3`(GtMuKS+VFiL?d2(C+(x3iljNq4&_h^sW@2R zk=im-Ms$utiJx~E_|B_+%8ZR8Zk(Jr)Ckc~WeKutkfNOzd{@b**4?x914^beFMpkw z?$g`v+^5J?_{?26@v2mzM+nlmnbbR8u3rqRxNn;}(hfZgSice)F zu^G}C6ALE%`ND}{iZxh#6ZISrPw zNNaF}4fCmqO$`>d3t|vb%Td~`XR`>msuEtcAg-wIMBvH&LMG%&d51S+EpNIjhk}5} z^(vedepos=lIVTKheD@B`kYUCg`A`Q&gyY#QW3{R@+)VjRD4J2?k(WAcOSaS+XCyv*xu-F<>Hx>Q(Y_(Ql%S+ya<+LEcveC z8#R`v$|A+7`^=1>r&gXr4inzYRx3e-gN)gTR;#U+pKnULRhgLC%#N?K1cKX=v-HAS z&+*)DCA#h4xo(oI!^LY^!hs@-7Yf<$>Ol-HZ%Q?his1~?CRwNBy*gAkr;0`i+OGsX z!(dmKD4$eI>w6|Lr6lHBe502NbYmY6Qb&205NWO6fIg?6(bRF{E0}Ar~T|bFKRDKrBh&OA0xTH_~&~47}0@?{Y zgyX;jK14@=MSz1v{PU;|_~QHVi+n6hY$P1qmuz@sugKYvpHWhQIVo5W>FeELf$Cm0f@WrGTizMQ> zG2w;PU}q^u?5fxsgfc5NeT%ov{mx{uU|Ybh`F&trm~yO8t1i+oX1n%=-iu}-PU|*< zt$va1@`e1Gk9ugFHE7D#&8011M_wVv+aM6n6MoAZF+1W}c8_AdT%%PSFNqFX;D%0u zS|!D26+B+Tbn1=*aKc$(d{4twm*5!%l#wYrfhpy{^z{W9V)hj>5H5Mv8_A%l^>pK6Sz3a?5)1z#Bx!F-6s#6lSEb+u2M=h zDB$am@%GHWK9`=E8;&h<$MJ;}_e9<7JI+ z0+i+W16&Ie$M+1Qcc)eVmZR<;sDh2h!!Z3ON7+A6 z6b0v}Qr7$T2UIiFl{p1sp>f!zLd+-czht1A9==rGk2YUhc%H?}b{9mHimVOuriIsz zfa!HZ$pq{=XFr6h(sNo0Ey08`=N!&vM80}jdLiU}w^P!1$opVAV-$h(2he-QF72Ss zZVe-rW0vD`FOMPy7U|8t=0%y#e@_wie04)02`l?A|3c@W1|AysdO7V46UTDdbJudKWd$qYn=yPCnUtytx`d-H8xx9 zb!XR8@M|Q1|D4dAy&f>DvEJnNR5xs8o>wIo-|3>ekGy!b9)b`Z^~NVpDQri@Wq$ts z{V_`Tnh|GqYmTvWxJHM?$^J|kbBpLZk+twWT>F89Vwbn~l7*qR4qwq`UM7}HT@s(u zA)ZY@`)Yn(#^{$naIjG!sekckq@j*L~+}21wz>yy7xGZ zUFyTmwU@b?$d@_G!j20Rh3+aow|25?vopsvH0Ka9W-vd1Ts}XG>w2ZhAs|>ZJfKne zwBVL2ikAb{K16BZ>5=x-HjnnvFVBVkbl{m=sWn1MmjYHRYO|YXh|({~&3^a5l~Tj| zGj6-MToRX;5kXB9v4*kR32%Fy`R(>Y#0AK6-Jn0xz7O}&Q+^*>m(0vc!#;m9KttH0 zSRCp&mpP%58B9l^UaU$?vfWIb-P^n$vuSFb;3<_=sa_iWZDo$AzC2>dQI$-*?FU_G zYQ|^H@*=(SJ|R~ht31vO_S)LoVs0vf#f*w$?Cln#uWrk-6^(~0h7EaoZWTSwxf&V= z#iTxJ!q>W^cL-&eLSKUu<9AXNx;#)rj=$KJ4XoATcR~4ZR~ZAb86w!dJ#9|F3kTO; zTk?D!gkC4?IAuBM5;Bg?PT_fJ5-JuHOziLL2Y0ugE3&p=%~A7x?-fOZ42HERYckVs zcI%Qf3fe*kujJ{1G29Y~_!eC)FI1a!ZJ`#FEjiENPdIw;n{&Qa-jVx8MG#z0nJzG~ zluR{#bUpxIO&bxJ!@OYxmvb5wbC#KC%rbrGG0W^Xg7yEIu^BeQUos1KYJ*+?eoiCE z6PwB2Tz**lyzLlWxVKvIip&nX`tYiM+G9`8lFmKagsqdwI&=F~$n?Cj0hz3LO1Nh3 zsB$5l^P<;qetNpcRcb*Ezmy-{BuNOOGZQpAPf>BO-djD@rhxZegA-2SS_5eZQ~qQ< zyf#(6@L=kf^8@JKvW+OG>B%u``fc(17Dw%E+dbf4ObB|BXZz0T|9U5qYSV#YmxZQw z>2l<7WQ8`@^yI3aW{QfYkXWLPWpMc5$&j6=z+ERqp%Go>XF2OMbrHE*xs@e^eA26> zRIe&2x1Pq6TM}`JLN+vA5M%I@lDAgfaanJgzL$YZXP|1HU}=x!m>fA-AK%gm>J7b<>LIH} z;B&p=n@N{C&cHR3eTBT*4HL!6cjFOTef;lE~jFxK}{8Iz20g@iUm)bnLJO;jY*KhNpGOp}d{=VRKBpXFM7eo821c=?z;@ZE3tMNhh7vQe;R|5G=9q?E?x z`JQ12x6d(|uXQQWbZxp5=8ihU)jr`Rq3h-C?OPx3d3DEB*G{Awqw8|7vs;#Xc=oNF zhS&5oQQdTRdy?0sRhD{L~$9+y)7G#d`N&{90zU zJll#3a(zwnt*V_ zJCXkZn?Pj0=oL%)^XE)y56zT6ZsEuxhQ}aqo#FXWL$P@e-fCaZDX8He1zVrlIOExs zmDvqIL5S@Loahsqpwr{BE8s7b+$xXo51l>~HD(M`czVoR{eXwqKNxw+c3GY!!D*0~O-BrK2q4ymMwm-3YI%Q|t23LXP`x3!LBh5% z>GpglGJwFaqTx6N6!*WI`{h;JDr6z&Lal%2#O{jhitfI2%4c;GK)fI|Z`$uZ%x6K} zVGOD7>(AYx@$nDswwty>+G%AN0z-U6$}Pf+jByE}wYum6uzdXBtZ8fi06rm3#tO~Vz908|Wo2hvAcj=;@CfgKf+x4k6+vg|sV&)0hF5T$Q;L27;!81B zxQ5!hht!URTRo?qQ793nR&>scIA3rh1QnD@CnG@nvZ`XITZ2U}aI%O5%2Nk{Rd)D`&_pR?+-nYGOdfyQ?BhZZW z=RAzPZhC9tBNirkkry%|5h5;RRn3ZoSgV^EbEBaiGUrBI_^7z*-!4H>SdNKVE$nFn;0=)xkz`;Ldf*Rnme#+{MV2w`Vm2x@puOI5pfqWpPW!sKy zpod76eO9Z(>Nh@e8wLO@EjdjI*>ZPe{HTFX%R`x$zAcAAi8n18QZ`(SP0iYIq4$xe z%Feh$vd{WPgGgbGPm1@rZgH`#=&+e>Qd>!oXK{qj4IrYNpOoR<{w{hXI=rphYsKFh zS|kk%h+UV`wuQI3XwXyD$wqWG9);Y)M<%V#Fvc4k&LXOb;`;sB@Hr( zSy@|_R#7V}aamo~PMOykUQ`Nn)WhxTDb9&%*^HD>n$|WMBs8wYG+_XqFr0|Mh>vhu zp2bm+m79ZFu!KQXvZ71AX55YxS}ay5l;YH7pas)QM2GP+rn(@X`^Ooh`&E2WIOXQs*SB9`YSP-8tyT9Klf zWt<71*bz#j+fp>g6ilau8LDOkH;K!3n=qzq$pL4>^3LP`!~jGQ009C61qK8L0RsaA0|EyC0Rj;KAu$6I zK~Z4@B5{F{@G_yX!37gS(c$q@6eD5=Gjb4uqC=9x6(klQQ)9By;{VzJ2mu2D0Y3qd zd)QOFAk4eAz52m<5%qR^oHG`|^6C47c}{uv_lW@^cOLxni8!19Qg=<`0hm0)_3!f% z;9nnDOvdz_&(ppT7%BU1{b2XHkA;eHhwV7Tnr!yKYhFgPQ7~{h#+Mn=JowUOyGluC;*$+l`JdI ztQ5?Ef47Eu2J+zt!sfM~v&sk(lQ(?n2})|yeIxuzS@=$zU-JYcB(PyVK5h2%f&r~N z=?3Y>W|1%mJKAuDl#4tvzM||q<18R5ZBk*tXAVz&@PH`Yn7T{6mEZ5II1M)93^6Q7 zt9PuRhsB0X&#WBDuWr%dy(pNVyjimAr#`WGH08{|0Fbg>xMvRR<)23M!YElg!?)9f zPWO?37d_T_JvefJmb?~w@~#2!gt}#Z?*XF%P9AwYqHL1#9+dU{#sX1`yTj_=^wude z5B~sD{{TsU)7Sq1$a;U#q3eUe4>~+&7`8B_S6sSzljQ|PMdlGJQ63C9Poh8S!=_jRZbMd_rSpOeCy{PAQH`od3S_6 z95wIt7p38Lg7?3~!MZVW;=Zt5w^QFC(g;ZilatbULt{7Zo5h`*mMRG$m}5UlO{*KX zmJ&gga3p1~7yyt8T)CalXDm4VLIPG9As{muv217cc}Qysvsh;r3S=C-$}|7cq;AW z8^nO)C;tFC%Q>7df{S2)RHTHcnXu*c={zx{Cd$(Dn`=DCt5+q;Rd*tguL(+RZ0{_P zD~ALk4)gZ$e z3intRc8uyk0Dq9po0plx0HCyn`6QBMG0Ix>gMWFfS9KD?y+@SbUJMsxp)CycoVA3h z+C??PC*_0{qGUNA@jji1`Ju>TBHk5Oqzg+mNh?ah8jn`}KxH^^;&sD1_Rv*kQdIZw zuUCsORJIFXFEjbpto>V(rBs4(!@S_xq=&sNXWlSTaFSC=cfuY(wL6?Vn1+`RxyBWf z_;G;6DJ`T4NuaxjHSf|0C6e>UUU7Mq#-5RPGhB1;-WU>~JVE>E1k1qP_w5&VOOICk z!2lG27fE`zefq#f!1r%AN5pAb^ox%7-8OjB5O|X_hmF}qBEQS+T1A}(NFZQ{L~ zzIB8y&^an)D;L9);ZoyQA*1FQDN82In~yQ!24gM1^*Q1ZW31fXq6SXV(k18~$mOk%*1F-gwK)pISOG0;k*J#mt~B`PoynCkNC?SYGuxl6zNbRY+TXj*{emG z!cr_;sWJqRLr%QEaI~zDGTj*$JUOxJ0`=nP7v@@gc|lo1R03})Mn@*Yw=V|pQF}Qr ztmI!XURpVm2r9J+D!OivdEtg^e$W!O7KsF24@|CsF0;hS4e-o@38|#=$+-JM#j0+| z%;zJ>8RRmBBGoA_9W!aaeoxX9WTXU!1rmNa&E+@e1cxMe3pkh>3^WwVbCvPCxKwBS zndjT!AS$*+EqjcIDIRjqI3jMOf)iOZ!8l35siQWJ0@MB0Qcx`!n@`NR!tD+9-b}P*zS4nev?N)F zQ6YgY+{4JRl+P%>pwcaADz-TAl}T=}R<#WEPU+&pTx309B`cN3`FW7w8P0VFc=llm zAR$a|84wN`9ED7vu6OF-$=&#J9#FEW5F7&X!+|14kLC@qKvIj7Iu<;e6Vd7`3AII{ zuB~MSP9GOJ{aIjfoZ`_eRz;=PmhWJlWt<-+Q%!Z_rggb8#=JfIXg7Q+#v3IFCgO&M za4R^xD)uw1<>{oPb7wA%&;SCHJX(0_(efvI{{T?P zR2Rv{8N#fYGDhmFnU)Pc_`wd6kn+-6>srOFmDJrffhB$78lBb+m;&+@cKFIqtiXQ0 z(Kc9jC7S6uF~PCN8Not|fCG5>HC~U*dxDGWO+7yBi zP1~w7cgd!IdPm9(Q-F86OUa0E?MEeyZ(VnijEl|QZu!fb&7dZAzH!WP<@;d>D>qf) zY^UY+%CG~f@JoFq`F+@kN(;?^FHG~}Hs%12mddXut7A?%!LoC7v(7^3c`$RhU?fZBrDOw-Es-L7O>4W<`E!QvOSyv2c#sW_1QUZdo z!yKPVWeT$fOzIqS;Bm~2HC2iT3Q&-3Io7TCgdi)xmrU_G_dj@5fM5iJYFVhwu5Z#l zP?@aQlgB<7@T{RbI4Vkk+(fHWfNAosaH}JD1q-)@SUP<*=O5j&yo7HhI=g^6gXIHq zMMHRAV8*{mdAFyW1}d{Bc)K4wo7J!|n|4pjQFi|T$1ZK2uu_)%s_|8J_zP(kG^@@OGoo2-?yBr2X%cYZU?g_$8KM2P7*A6|`=D#Qeld~Pspc-?wC ziZe<+S_g^L=1rD`xHO?4Ub-+fH91aHevb)KlX#^60B~W5&VHORgsJbZ!V~yB=?WHP zPXY-1=jjK=1IoD2nVASCc&s^)qj2j4G?I$u)adU8Zs02NxMq4EI8=q}F}fvzY#v(a zNSczLnCLT-Sj)M<8@S{$uDHvL_{HZcedB2E@4!(Zt*|)c=h;}CM0s8s$cuU<;Qfg)iJ$gU~JL<>v zNS)M#s_Pth`c884g+J0=>g}#w;2;1|a&O}3)alZu0;)+N2M3)1$Mwz>3ArJ5&o;{* zf)l<%ye&L%)x6Lqf!?9}541M5kC+fnD`4qZl5cN+Kli>VH;0b3sV zL9+ljEV^G<_>rDsVavJC!E?x_yV zU^<-Ds(YLy;!Wd-{xuNyuD{e~8(lSmmkcDAlkoD4FAosw345X3Kes;lz*%sdDABs? zON>liXa4{uz{$OQ;FQtlhu$x!xx)@Hg@18rQU3srz0_6(nMi$mlqzA{c{$}gzY%mL zl`?S41K%DIiilGVnKo2P%bCKx5tHI=_pE$ z_uO~y4fM2z8uRY32>NOv$xDA9-@FFS=^R=lDMK*L`{MwBUj+Bpgb?$3bA0mOOQo1pu~4yx8D=<4oh` zUfoDynwbqU@0=@iEj}(o%cramZ01!mMNIqS(+HUpH=b#m=ZC3_HM-IZspv9(wH$PX z7A4CA!-0W#xCP5dwL9U)K4O3ulme5baqkGUv}qGvIR1Ef!CRmd%b&Lh3MzFp!25n; z`Bn|b4*j60Jzt%B^NJk1cq%MI)OX)VD=kiO^Bm84$CfPsvW%qN^ZP>an_7YxicY<^EaTz|RIVg;fVoTti~k0>j0L;~RAp-ETL603w>2K`64#C~8}gM*am-gtC{ZzYe@F3)A) z{{V=bswpgcq$Y(!c$sL<+GVFI!AKU0N(SO;NSxsiO{bA_c> z=GRk;ncx}RctDGVC}A*y@7|56gLoOrRmY1!4&jTnd;G;F_g&@RtQiNypWog;i8u&g zNyZX1lv>_MKoZ5L#m<~`iv%RuTysJ}EJhd%p0aU)tR_+inU`8fP70lX8D1x@F2^Q` zkC-It1-KEfl%*F=<1-1*IZLa|a*IT{A@06hbN1&6MW7RDXdkUT%r5(eHLF*HS3C^j z@An>ix;JJMCs-GgJbS0CO(_DWH}5WxtEy6PDj8+yPZ&@tB0(TX=UzSfI67u!pXBm{ z;c>-Z@hSR8(hIRZdi~*r(J=WA`5g3z1T*X1Vqxz~x_5*oM;7nbD7}kv*SE?A_wPTp zPsVI2QAO+l9FbPN(e_iQEdBcckU1 z!h8eyLK39jzl7YE4=HzqDK4OAyHDF^7p5FB&%VT6@RpuB!!`}~oFt9}JLwDv)Ql@3 zNxE%>-WoPRuxZ zM5fbM<=_?}qy~7`o^ZyYJ=DMBtR#zvH}vkEV9AM^&w9n%(*gZ^^@5jqTvrS|qR!1WcZAhb*1hA#CBDEixOsN)10+tKRMNf55onnk z@)&T&15IeSMFj;o`M_-FNOyLxetwXGNk|`4_0}Y90v1SmyO~MkJfSyKwSvC|GHD7i zI^hlpH=RiiX8L`@K5$eEk{F_yR7;<<;hXrP>o%e(C%sN@S1#DUlqqQiH=S458i5Pj zt!#cMt(MtMvlUzd=#q#Hi_GqX@Qs&kD;r9!?L$~vs3eI=oD6k~FNj#%+9J#bRiu*a z0<)i{b7qh~wmRn^`Fi2ncBm?xl;!OZKT^I?}M%nQM*qa1dw*LT$Mq+Zq!=96*Z2NNm0H-$lTM>AqU8IDZ zf_H^ZFCPk8mt}4hwf_K8)}@Gfcvx=$%f)@yDg=f?Ne$#U4)c!c5z2!uo7tEE}ox{ygf*fl!rd$gcF(Pm2!ej z+JYrck+y9J*tT!#t(0!NC;XH!8CGVvG+BIPqTa2?AJ@@S)0WnTy3pV0UH5Uw#}S>XIt#XTy_Y`HO24v~6D+v_))H zVx)h`Axd<nDmPND`53fPZB_75U@zJrS&K=uA?uMD8 zR|xpztadPv>b&yf!JWA@SzGL-1!*8yrGl7lgGM2^Va_%!ro(63Hs#tZBo?|}L^|d) zo-4W8%N=Y*q{aQbE46G$hY{ zY-Sj^tc+{{{xNH3^HFJLQGgdt`X_OyI}v6q2gLUD?PUhVKr&R3bnhQ69|0d3`AXQW z)4Hor!td2dHX$u68TxJ3)@R^Wb~bBGrL~GsR-97Se}jRiRSO^fxA5QTh+>0!;cxvl zRi)z2hgh>kou|b9GkG`DXJS+wOm7|RC+K6~*N?-{2*%N;{{ZeOxi?NQ>hOs?`@#vW z@kxD%@`oTLjYmV1!*2j)q?wNY05C(|n~A^WkGvUOdWP>zF^}~o@4>9MFC*vLN|Z&F zeR{EtysG!WerDDEO0T5w3beFPK^zV4eBSc$8Jdw2%%oSHl)?R4)`7efHkK2c&_ZIC=<`S+Ar zc+wVc1AylB(xXT=j3)7q5 z(Wm=y)&qpC)Izb>xj?f@lx-U7l{OboldvfHU^wXq8;E>3y=eB#q$ z+3m?yt)1hWWy2@w2>5=-W%B}TLt7*TYLQ3$F^dg{X4#abSy_ZA%9EBv&}k=uvTVZE z-rY8BX|yG+3zt%A&hoAegjiTu*dSS0CgKuIpAxIaXEIG;K!z;myr9Sy-s9^47GNu+ zUAp&^%DsE8P(rW{VE9U!?B+7_a~6q3rH!?MnAxqIPG=4Z8Hu+O8$ZLg8yjR>e3w!s zi7k$8k?po`hkTv0YTNCtes!+Y)0k!?u$jg3lMQ2PvHqsd~PX7 z{u#2^+6!wN8@7uRQ8-P+%&NwZQvo84TH+09JbSDv>jj^uzrK1!;HP=Mv-?Vo0huL9 zeo~iWaH~R7a;dx-o}x`jzA#eqG#q^~d~%CKll{Wz4sk7CL%W!Q^5x&QZxoS~`|Y8~ zGoBFcOPBSZIH6)>I>VN5X)4Fird8D?ywAQ-Vvq`ocXx3nxd~6FHVp^~JMv)v0Qq9> zCf>Qh2q7=7t@pxSP_-d9#Z;;P0LQv#(k`Y!CwWt92g-10ZvaVW(9fnFyZ{1CN>p&i zx7Y5k5jTKJYtzb*c8fJ7)omNBL?b}4FnB$DQ=O5JAC5g2ORx=W*#y_dBXposm%a&+ubp69*qMuD^$=~WNB*KgFO&;wBR`rI&lncAU;dzRtQ$)z{K1>Q zZ#hNuOnkwv2eSs&%1ogAM}Cp>5V?H7Z)!W2yk0=54y@03Kv*O?!A}vde|Y(bCQ1gA zd3yPnD->{FSsC&3hfKk=-fa1I!Ufu2d%DlD?Ez>cDu=yj{?dg>p1hc4pWn&~cayxy zo`YTFQL0Wl#K;FG$BuC= zxPE3311qZB~|+i!!-p42Buk6N^qv zD-*gEQbk@(^*(P{Qo&8tI93nl!hZVbU9Sz}LDpuXUV<*TBBr=kzEH)yM>%&fon;%B zNxI4sX)$R@>D;3QfB;DHr8NDteN9BwLXN`%Y2L8YHjSQs{{XJA6;$|DK>q-)hLD*H zp&l>20rkTebqmFX+cPaQpWn(}m0|eGbIw3Y5Lj-d!!UQqSDXN~68;k|ZARr@ zaFPRw7H7 ze|(BJP+upX2nQRipauso%R<;8$a7pveekD~MWJ_c>KSs!pBMy$%ryAd?WfuW<0rr8 zE0trH(bH1=Lz^O)P5FzBY8H6RKi7Ako+q;=x05*;kKI{ zp3bGR)ozzegq#DBsUoxM7W+M=iFBA_rv9_~8QucKsYzYeSV&d*mVX|8??pTr}B$CbPt$m|s*)4XxqRPg}E^Q6d zCmcz`i1D{3~xZGiY4 zrF+U*@PrHh0Qzo5Q_r`{lnGv)8Ku$3dBGN-0;H4|X{WrUsAr9z;agtQv0Lqk7i_Fd z%?V`ir|v9J6tp2m;Vryfrg6_d+fpR`|gX{FkDYt7|G z$}Xg(O)%z?uQz(JVF@6UCY?AEAxSE{LEahm*mQw4GB<;UmUGIFgY=1lw2;d29K7jB zyrNTo`(TFjFV8-Y0A4eZq{N%ZX2S_a%#xdX2cdcAyIntVg9#qRcz29k6n0qs;(7XI z2^UL}<@picZqUZ^q(h#a_FxdFT%UK-))>%+C*SSTEmWYCf*dYH{{Zo3GH~3x`$2Zs4v};lJKs+2W%L><*jGy2eoQbLlYP$rUjj`&szQiQurrH**%)+Xlb)5vMg z1=9DJf0v}7RYaow(m|uMnw$>?kA_=WkA-|cXHr2%&o;;a~mU&+%I=r4MCdNJN-5*L_GO{?I`RChgmdHPnqI!#PL#X&1gPXLT-a zs%41vmN;U~0RI42XYp$bbf(c3Dq%11OU}5;cyNRSY@hunW3aMHZ1#|E00syut5?aANZ;U(yKJ=s7vP{E_@X8aj z{{UI>+a)96{{Yj3qWaRiq2$3#9zo;`Z5uwzw(J{dQqgPjovsh|)G&F^rlLL-@jG?= z6K>i*S|4TIKoW2en$~7?Y@=uR&9c5EE&ffA8$e15K$8Ul`N-lU{X?^&)8ktOpUNLD z*q{*jJ4>%fyI{Sx)8Pu)k^LfUMb->KGUg>JH%Ry;jg^kY@pZ1nB-vUJ90hoF?s4(! z8wLC`;oEX-(u-}NCiTW?rSWM6bHW};DyZ$*=lc*8Z{VD%K{u^s+d&ezMKO2Ixlf&7 zgnY+2Xx%4`bixz>03=>)^Zb4zWeNHAWTsAEFA3luy&_->=maONM61KB5hcGIOsMm~ zcF-J2!%s|)Z18R<*LXaz>*Wm0!ss2(IACuUya=hQ$m_2&po>-s`H4H~{!--HaODp~ zl(7=y*oSo|ajxm>_JWf(p&j)s zMQl-l88s=#CaY2%2|?y-m>JGlc~%XXQc1#e$WsjY!a-1SE+l>_&t5Q_p(`29+|!4h zX&4MIyO1g};{Yn_T?{4r&MgypTZPj6IgDB9gb#`BHdY%oiU_kt%%G&yoJClia|N`G zqvLya(QRY2m0Y#3rO?=8lhLIcXZnY3+ANi`5StRFa+0dp&R*6Z>V3M#%{EF(R+}Lu z6qg4oeW2}|N!mu=d>e2=WNG+_o)aUOD3w+CAprZ~)oZvOrd%{{{KRP!#KmtS(Wd8uH zdFvq?JDW=pd6N0NO1$PN87VwVX!-W=i`V3E@`a=nsgw&5hX;TX_nDLW`%|oMB%w_% z^v{!Vh9%h}<(hkWj>KBYTdR_0OA5N2N|~H1D6|bhF5lKJsG0ZnXjsv%=chd4LFHdc z!x2Q?2iK>pCiSAyF5a03pL}51+ITLx(8~rIf_>u7_0R4WQhcN`6UZ1Zyihk!J_EnR zEL})1G{|?}FtSM{J`=0IAJi~HO`MB@ahDf@Fg_zwg)!D70|N5)gK2;ine^(moHcTUppz+wB_?EycB*i;dKWnd8}wmtxvB^{UTiv2~6zV~IJ| zm8@;w1^AZ9XY*HM{h*TSNqeVVI{CtX)4vnAtJW7%pcKv>>r7g0Yh^5L ziM&*YB8GqB;!(Bisk8Wo)w5YSxVxZZgMFsnaIf_L0L2kvi)%|4xS6D#_Bsay=~*_A zzlQCbHpOSP+9W2%*vR8IA?w51Hoc2$*%M{`LN0vN?zsW%2g63F&m+LH3S3@RhK-?+>xqI04!0?(7{8nXP0i+U)usm-GkU^Q6iSss4xUW& zRUoL|NG9@_J8E6qvq)diB`IVnDv^hzITG7VrEk1Zs z0FX<#5BHvWPn0nud8g97G=zkz=(-v5ImN1Xz%4P4{EoZ2*UlD@%oDrm?lj9-ChiV7 z_pDWtC52@dU5FF=>xMARdBx!gMWREa#xkfmn#zyw7KZAL;Wpm9B~WA=+EvOdl%S85 zXrGxm<|qIh>j5quC6t=CzZfM-r1as8=RQ)x9Uv0&6YOK8-f(1spkMQw;gl6K?)cB6 zaqPvZ0Va1tRB-P{fVDS;$Qb^o<*a|CRHAmPKbTJ7lb$Tk*OOx(2-)__AB+|4po{6X z`B#phuq4+_UM)UlkHfw&t8&3=w7Yn_$gvY)kP?ETl`C@U-b0k!F&om}tjy#6CZr9g zY!-&?rJ^O2yiD23m`*mN+gN-9ZBEjoe){TW#cnGvK_BUjpKC_PwEV|5cBvmKW|P#8 zoLW8!vu)oG+qRVahZc!;Q4Y_T;?ePoAU+tYb*+0ciT?m?O9dp72l-2Zi(4yi>;4;T z?PX?#{LHB*4)Zw!8wIA$f7N?Z?*sE31FH|Q{{YG2-{Ds3`0_1wgsR5I-q_t(x*W{n z{{X~v!Ngd<^&3c4l9GgmyrTDoSO>$Fk?@6CZRpy*9cU%8Ta|}nBWZsg4Jru#08s5; z*Zfk^0e{=F+)wcaWSuf6OmU!4ZR0lb?+AaF_3i-gBPP|n{h=agSMr{MY<&3YV(2Bx z?-4x&=bL$rAO!;LGdW-+;sx8TR2Y*cY%#3C13y@`x)zq3wi;J-ye-NBrRoZ}s}U~b z3=4`?1Mgqzl(oMi5Ouz;aIt=_(4U&LM)Rd}=K)}Mc9atJA8yF90_eo&7Dg)@2M zEcrs5Z#~rZaKcSLXtqfTbC5V|AV*o}gc%ccid?YItcPX^#L(&QlyYkI=M<#p?N|Zk zGmEa37iCwDe0W2osaL~cDp#vLP8v!qkX3alqL0&;e9m%#rt29Nl)2A@DN+{{T=Otvfl{4W)oWSyY_By83Vuqzh#N2$2*tIlI@cakOo_O|8^g?JKk> zP;L38SQ`1|1LA)X2?zScz7xY&%M%|4_?@1?{avE3D{Hkz;dul5=`7)8R*PD#P1PCD z5?{&tculClT>!RtJ$|N{!J(7lC!VZa9Q8hsrwaa8jQLaAdQqZ9J{zT3OIhb2TcMOG zLh%=w*apiPh78qaZg3e4!{!HZ=OA%+>(UaG&g`zU=JRkn5XDJJNw^E0<4`|*!G{cP zq~6A02j|LAl0$$ujO!zZNxa}pD2?DIOzAu^lwGv5-V6dy8UFwmrD+=~$Ir1zQBtn~ zIttRiZblsVOWmtsOZF3m_ChEc21XX))3e6cQ39ai=OD+3OaUsP08-4z3@M ztY1o;Dqi&JAxQyJ6F+S-gn|UCK6IWQ@Ta=05OKl(0Fi0%XNJ0W!>9=#PE-!jx}%uUJCJGw=-eMh*<>@_0$C>wsz+=E0?dv4t!fM5(5!JwB;_+l=AV=mfidbPVj? z&@ZJSAx9bEmZMA#P)Ih23aONXQ@=<;C;h;{mXXNu$>|H6oBMoTY}3~su$2&-ts?WT zQ>*#s8@@ZmnvGEOt!L%d`vG=$vXtud%8yu8nBA+i^R6ONFgKE{un#jc^$kQhID zyH||i!MdUYP3qHP-~!lj${Z3B2vHKH2so2dJq|FS@=AOzqIokuAEBHjA%o%vP}0hD zCcNQ6(vYc2Z_Zq)h|d@xB!^HsRmK_)=@x1WySx3or-;kfUXfs*{^r1e^ftf06IKV)BZe@b2&(j*$EIJ6~JYf4#4ZqIatS-PFPPBnhTeIn2`^#q%= z4!}#BQ;!G*L>Cg2F^Sd*av!!r!?E&eS*Tp?ofBFr&rH28BG;RR9yDHp)#Ku$Rv za)r^#W;hee&x9!slX+EgDth_MW8{U|fcI}DAj+b3n^m&qoD{v|c!utk8GWDy83QHA z>75+XtnCI{-Vlmsiy49UYQrc1$_WlC&qsGN_K}MMO}&7sRJJV4>`dj~oCmnUCX=3i z{P@M$8Qpd#T(ObEp9nKci7m68bC(|85Q!DdhO?bNF(S=V{{WXRgVq^q3PaS$Q}F&> zBHfKqd7M4%1LN=Q61o7#&jP)b#i9(YBk z_b*yrDj>0#4<_bVPcYG9yTBy1FwAz+7)8=|NSMG)g?&8CFL(eZGT5Gs*p40)e`s9rR&Vc^b*M>k0}|SSChqL*-pxj3G;6#_Gf9?DUocKg0yL%LU0T zJUQX{FDgM$4?Qu@hBC()JS2R#Q|~H=1~bQ`1SDA#;SzH zsVvQTL!`aayquYvhM$;H*+C}?&%Qii72{dg5u=~Jkvcr0qam!ra# zqC+I!ReE`M#O@>nfL%eSj-|EJ2vTyYam%_xEsi&j9vS+@yC%ZXVGgD~k~Hayz~A3X zR-7IEGR71+UuwvJ1q0;R{o<$&kP4;wpqud-0~U9Lj_^|n;KE0VKW$*Bq0*GzSt%21 ztvNToW#L9c1W@Vc*^ST`39dq7yk*D8zyS_!iHYbXgH`c!3KB^PafcSbaLNV7JEclB zX4gMC@YT-h7Ff?;PP3j6O81hj@LrXan>;?oH-JI$62R!x{{ZBA(gxvk^MXJ~9)7c_dFeSS zNxYO-4g~$3pDqDv8{aTBszkJG=y7~;#uK~(R2)gz&Rs;!TL@dJkS!_U;Bt@;0VTxm z3^->{{VF481Y2zBA;DW^rAflQMlhY@bg%nPs-+@AOjeP>^@Kp>@7gaAyk^6c`0wcU0E6HIaMvj*b?nS$Jplv^Nti)-qY#a%M% z*08BsFeDo4Ce9x`UzBcX;~V`Qv!NQki}{M zy2@!!U3;Bfz#%uDjw#4jj*&vtT{J#mIIa-iF!)sAoIA_Te~e*5Wq~SBWd2@F4pmnd zi4F*;$Gu^|Nm2vaCTbJW$>G3{SYlMBWTd$biw

    Faa0T=XV$Dha7(hAZ}fqb8IFv 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

    xTgTVFW2#nLL4BhSP{7>=G5* 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 AW&i*H literal 0 HcmV?d00001 diff --git a/doc/gettingStarted/ui/settings.jpg b/doc/gettingStarted/ui/settings.jpg new file mode 100644 index 0000000000000000000000000000000000000000..a61279bf525b7d58540f164afb2d092523311288 GIT binary patch literal 138145 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 X#skmi_i3}#q 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

    {^2{ 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 literal 0 HcmV?d00001 diff --git a/doc/gettingStarted/version-071.jpg b/doc/gettingStarted/version-071.jpg deleted file mode 100644 index bc9bc5b589bd4191be73d5461534b19125598825..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 111556 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

    G7XeozNzPL3~9pW3(Dj8wX z&Ms&cU{)o*gKBB_y<53B)ov(Q5i3=d_$JF3sk7tXz<=cY+t-Dn@Q&rE*>q(yw zRV%zwNa}1>V$Mr^+ic{UXYjh^L(97!7MMY>%1+P~uy+M0>>n;8H;;qHGa?EHxy__p z(~6!BBX)yMhQua%it@@!^Q7|D$`!^7&3|znwK@b_h>G&-l!V00S-C_mF03fu%ttkR~_97nR145zF5jHl#u;J4s( zRA!u8D;_i57z}b8R!XeTU9yz4Xq9~0aguQ0O!yXdp#TABs2xc)2S4xSqE!_0 zw%J^XFz(4NcU;d)l=KZHtEo>NCoKSmDu0=bPcq-V{aB-D$%@&U66N z6w>XfH*Z`*%xhe_h4;Qprdn)z!Lz9vMFV*3z5r<=4+46VytdaJrhG)SC=W_Z5tJkp zB1wy52zX-xg=i9iL$B$h+0y4@J@qc_V*!olS==I}aN`y7;&u+_DfX0RLktpXqOT-O z0Fkyd$Tq>12I#@p`f98;0Tf>L)1zb6Q%O~7l&a+^0>vt}uM)obXVmj1FeO;8^0JoQ z^E%tDka**LdAjcIr|tn>w-ST>R>s{ z?h^qKMB3LXNg@Fq@B^slKcvp^Sa+Nr9;xnks_G3>&)`J}J3`#oJZ9u_GL2IhBdrlN zM)4cV>n`Ii{gUGd%ii1EOcB~C;bn1jIacUToM5V0oJ2|QWfagcnLy%Ctqd*&F2D*) z)NgI^oGta46&WHZVxjLZ09MlbI9_D=>_Uior-VQB68CBjgeVmyTr@#zZk_Cixo62~ zq9)QF@w0S?0e497O#!+)kpO1F=O@+xRydK2d=9P^jA^~c^Je<7^LP;}EVH^ey7C@_ zOmxDRBvb$G5A3=LCh+ihQ8p3SN`OC)>)Ke&%{M%oh*j?u_1ZoxFr3;X_yAoFV64mn z;IiZxs{()yu_EJ4>+3CO2GXV8!j-Cs9S_ceS&&o~Z{KNCF3Y6Hs0>kvy&Ec(v9YoZ zkKic$-ekdO!~*2dT}Kg39tZ1cN>rt=;Xl%oJ<4a2YIUP&-_fj`|sX1jt|^!8N64A;lzBMt}Ml{mc9Ddt*5colKS9s1GJF znnnZ9bQ@dRDoHqzT?6~uG$cz%vpf}+QB|FyE!|tn6s0=aIjZ)HKd3j;CvH^*iPs&C@Bm1?N=lRjd(31p4HUlQOJ#pAGbbv9=Ff0rcU?P%c(?)M`suD=}ZZD{o zM|HAQzmRdzr`u;DeVaAxpxWd?_=W4;+Srs2)+4vNRgxo@tLtdKT?9Lm_)A99O6`m- zANKH)hR0P?u;=5VquB$j@=rhtnRIR>9p<62tWks(CAh6T)f92Nv$EU!>UNi|)<)dJPiF{Zp9mXcqu2`BY-zR*kK?axq^zzi9q z##L`K`38lm+i@j&WtXY#^}e&}u2MIFt(-zZ!&BXRQfM$jn)o_i>fYf&C&i`9(UwEQ zRqZ9FX2i7V?y=D89>RKA_|O>c)YqFd0j_eD#OEZ8y`Kw>lnP@f54^gF;fHMt(j-(O zf|KtOPijmDP5v*U-U6zv=ZhAmv=j;yDekTTTHM{;gA~_7aCZvDDNrQ17Iz83rMSBW zZE!DMyf451d*Av_*2>MgE6JLB?j$p__nv)d3v>opY{l6Ge9gyT30s}nFTpk~xJYHw zDj6DI-!P}}#)Tp0>+~akzgstKn5ks3w1T9<95RNpSS)h+l$o;?8mt|}11wDdWNe|#X%1vwEY;#$)oNlGONp{UTHQ1^%N0+A`0r{dO2 zMcdp{ezv5H+9R5e`0kokq~q06_NqY(l+X}hXF!SM{FJAc!=EkD!R9{~l;HR{0B ziVRj>@XMuwq2ARvHhUzrD4lYPm{d-gR6^vhIxMtE6wDJGr-Dv%O>Rk}^bH18#VMmc zC2jTHh}AzIL4_7Mr=*1ZXbx^=-QbEBqj;;OzuOe)^oTHim4Q?dz066(L@>((d3Ip> zoRt)Vrb3jJlm;%IJ{qnD*C!O5uRo3b+z*amY;Lq576abwk!@>2_7;RS!KQz_s(yYn znlx=dZ5#d={YH1KrMQGHR|9njTjBtzEGM!jATFi(=w7`$IW3omQ)f33Gcgfe&muI2 zS|f&2isFqK(uW0(96=9{)9fNX?Ffj0r8Qe|(xkY;LfX;t&WC8JNQtOK(=`4q1A)1Z ztqCyt&Sdbf_zbiN=?^#|m_>fP0i~NGV^io=8tCB+D$2@q(KAY~5<|a+Mnxfo>sor+ zO%;|p6#LBBR67hXKuA*uvi+Vuo~~Rb)eROzzfvmP&CO;~H*6qMRb~2zK3@wX}AZZowE@jJl_61h@Q9E8qM-hqswP~84>#YBq=U(0(9J)B< zpUgn&z7angV>LrgEZQW)E=$KgF_dZ$nX0JTIa zlA?134@dpt)QX_SDbV1Ym;Hb*4-AYWt4bY7Sx~a@SyUs1y|<4015Z0^v36)elC>X^ zPDp(yErR?VJ}SbsRMb`KVb$MuP*^Ue537lab7^Y~7(2Mw8$iqq!^<6W6DnFg?m~Yct32FoY3QrseJV*G-Ca$x5`6-7i|i zXENC2Y#a=f3T|s1HL}+0Pd@;eJ0S)Jr;`tnccrT!T_1rk&iY=lN;H&kaNPO@)4Kel zg1;k%8nwZcfWdi|002NZ=jp?;vhf(2I!vSnn4-Xs$ zqH*`Wpzj6RcQ1i;8CSDs9CNq5y<3DtICU*GbPiR2{>y3(1eSBpp|n(mb&Fg|^%DaD zRfLD1H^iV3d_U3EJPVu3O+oB__sRnyTDeQ`zxx2rsS39Kha`HzomJ?Jd;Yo(0v=mp zeyI8wMvhBem4AAv#6X~HyKXzB5FFlJvXMnm2RX5}w(ZDiD4hxoj7g*>x(Fj$@uCk; z(mcTsYttb~pB@^S;g9OQGr-tMab5Oe zu*QUMvfFJ%_tw_ky0vmBhI?cTu>Ar5XbqomGdL5QVgQ44hn^b(SK}fl^aI8CMwx8= zyx(ZZ2q3qDQ?}gomds)C=Xj{K%8-9Zl%y?HY)qUkMtUd-*X}ESfFplzQA{|TUX#6Q zBE%IFEtoaNAz9*K=j^Vee=WfbDS=$|9!}^AinntvS{SK zlev=Hm#157GuF+unMiapTMM8&3_SAxE~#0xbq&n_R~YcUdk*QR3j`e3(B+T3zV?GRk1#5C)C=CrueJ56$sFbO*u9t>2kHQ$^gBal8@ z70u1*@fbI{!M#|`yH)T1hqSiLtZ%Zn^Qt|ncM|ruJYfyR*5PmXkI;hyUn4Aehm+vd zrVVa~1%rGfJqGYa_eJuuzo6eP-VvnpQzSGey^T+N)vkB%d%EPVPizJN(BHF1C~tn7 z0CAr+&QHk7TyuPKJjm(N;~kqbKlc}Ox(Y8PPdww^FU~)2Tw`Nn`)E9-vAP67d)xKX(GH7f3r2*VMi28dtuTcU*l|)+p5qi>h8C9GclHx#?Rqw zl${Tr!S#|^JyUJVvf-ybx!w2cOKDS)LKkf@og^aoS|_aDVuTAONzXBl9S^%)D#Rmt z%O)3M@zG*f(yvzc0rHTF-lGpdaRo%{1JD}5JwBj5!2f-q_=OJ_05Y@8W%;xjC1EF% zDnBM;v zTP-z!P{bKP%ogG&3qYK|F{&%_!|Khy7ZKROB5QoOR&_H-u%v{aBuVtp$1V))M@dF; zzO4aZAcErVlycHPN(QONjNZ7E|x-;GF3a*vlWHDoi4Q1si1ZmZzvHbjaHj#O7y-$X<( z;0g#aQrglZ;y`ghM+aZTx!hxkKS zdmW7R;oNx|ogsMIP{Jweny%!m;2O0AWA{n?8Y&?c;b9RxLm5{!EEaqHE>!&IGm1$3 zgX}c#j`M6ynAS7Lfe%Cb^g2O_W@LVw=tw8$TzwZu_Ke8^4?AE=zqnMYWUf&mKcYjE zbAAi=F!7EJPtjtaT}FQK$DOf?cZwrWgZAqV|F&5x4GVhb{c*SIF#tD{v{+S2B)$jI zu5PZEGf3<0JlGS6@-nx6sGFUdyO)02#_cA3{JGELmj2nx@zcV)87SB)E%AT3$S)b9W{46Ah2GmK)4qTi^o8>F9_QHYsoenG zQYrF7ij0@?e@M@;< zbHb~?Qn8L9d^ScZ#4WHds{?Q3quJgg50+fPwJpO^E#TDV)$iq@(D4$*c-9Ve|F$rfSOVxAHKv6vFDDzh-CU>RGHX$W~EZ}!(1E!wgu1a=X~Rm1lKACm(Weu zmST&n)!b&|Ie<()akX{J)Cse~pQ5%xs%uevUj-yweL#O2P*{1)(_8JUF>dcdx3~O< zWTfE4-}?$F^5>zd%2ERskPvxvbjrq?74|kTbP}d&8d(}Nv4qV|^`Z2amT2f(6F9yz z2~DnARW|8;&nKSIbqw^jiSQ#Ko#6R4KfFol{ z8Szthxccaub}HT^nFb3wj_Z)`C2khq7UT2}rEfnh5rr(Cx$QK>cn{xy_Z!T*XyT^; z7kg;g>5)051^J_AJ$6o*N>W5wHyD#kfGZ>;6q&9E(4P2)4+a>Y)bX|*sGy(K8iw~g zx_F=<-s!omp|OuFATCv@aRLWmvSzNJO*<2l^kc&a-J3*1D?>VZF^Z^7atnypb}BWyx3dSVPTwj#GI&VxZ@h}erS3U(i|$Uo z4`8Yfe6c!T3}?(!);v4~NjP?s(rz>*C^c0G(1oZ4}hf>wP{)c2P9Cj^c@o1?@C4>CRvV{X&M>8Lo zRF`*~mmQS5SeqZmn4HiA#Q7q>{M{3hXnZW*(9-1ELV2t0rHde5T63y^Y{uxUE#wwjskt~tab`PX_6;1 zr9X=)!|^bIU{#kKQ3$IADpx~o?pdoS$<(9W`oczcBcRoQbC;OGtobG$YuUhWAo)Ls2Hj zAGEFm5sZMHg*vXDtzaIrV|3fLfy4F@PeZfuk)xg-Bxt)xZtSGuJ0)M)$w28CkB|!Q z4utM!V$5MKpRP@{mH}@~L$*V6ITOFfBphl6Uc0yHvGGm2F0Pvg_icOr|QyfqIMd_Nx=o;3eM z!j8}__NXS2F%~S9w0`C<5xa5vF|*@nk~x!MbNj9MYEH;sHKXy`m?dT~t<-n!=K{D* zEJHCQQ8#7|W^%Fs(9@}uS#5TZf*mX+%~WmRc6PBJV+KsjR($sqs2QfuxoQ*Iop`v( zcz5DlF;s1kMMiv5F|-6j|JYu-xn-AgZ(snNI$_D)_vQ`6q}Rm)sCl0qs(z{dE!5|M z9${HJle%-mV>&RLS^0c0{;~RT$SLT@YXtDUAeVM{@ z%IH7pb?2hx9YPpatXEG^%~zUyg&9*5*9%CTWX!m7NtjexZqz2DUNDA7<@{bcmKz@R za*+Q}U;bA1=B$RteYqcgtalnGc{O3hp$tgEGD-z{#cg!5FtLk^EkGVwgL8j{KH&Er z5$v$nvt4pIr6(?4k6IEmGPO|{>5;O(f8A@VzF1#Eh5|MAo>=?f`c0#9&U#xD=gx0+ z86gPFNZ((`975Q;+<&%TElR2m;y$dQd=sJ0RASesQ@42M?Mc*7lL73`3Rp41_Y~#( z_}<>oGg7~5rmu?huib5ccc#l0b}bg@LE={a@^^W2BBG@yRwrV992Ovd2BVin{6ehv zqvFDEh~NhaAML(7JP}FC{zHn67&Fr?aeum zzXmCre{XwtljYMS>QwersX0VKF)ChN<$Bmm8$a{BIUvatP1J8nV{UF4z{ci)d{Fq% zl4mnNNJD>?4ARHr6y7-_n$E~UQDnTZDjIC{@PDewuxnsG=FxR*Lcbx|R<4lZbkd|J z(0}9}>?4SiQkfvI1bE!?DB5hBLGi-F#!_f1fj0`em7br*QY=dEZ>U~D7Q>C9z>#|A zzFPcbSc<{rtk^_sl7Z)Lk$d1-aWnkzTXyfqmDpo8E%74L%lPp}Fn`p3*n|A#W`gCr z7Gv@keqVnQ!w^_EUw7A3+Uw+Yz3IivQanL1!Sz>%cw-8!s*BV%In-8d!j_3`R+6=| zmCB!{%S6A)6yP^C#vu3$vE2SsR0+3ls&ky~%7sz(OYuz7nl-iXx67DJ2?u6xEzJ|l zPPqCL-qTVG>Ze2Xf(hH^Tz|J;<VrT&zZHx>Z&{~y zY6l{fb8(Wlo3ax20sZZY>*==^EnTSu?M zTr8N^%fj&@0RblWTqp*{Jk@oBN15NdT$8n;=1UIj<{oxO)e`-fPjK#{P*r-%qIGz&W>Zr9ejz{x!?EZtYSg*#?b8>QZ{3 z4Qiw;e7PNOh1w3+w?i7pmZMY|Aio2Vcn`ICm)}z0prr{dm1ADObPT3A_4sI|bOPQW zq2iMzlO18>V_Nz#>dUiKH5gtd^Jk)_iS@zXnapKAJX!H(vH1nUG%5^%$8XbNX=C9t zu}eEiihWrwUdXpd)~%=A*>_OlFq(qck}zOrbhqO6_<5b0MhZ|^DA8RH_$iH*!UicE zTaB!8z~90mVCD4OLbm!KV@wVas@K~Pz^eX;_vDzqe4nI)?hX3QYAFS!D^`}*mz(!o z?fUyhmSi?NFdperjrEW!>jCjsvfGGjHowlE8^+F8{H2fyaE~;t()QZ!gBQ zinql>`$b83=zOz%zJpo)fV+SGSq`Fo6ZR}MHdo}H#z5BT`^KcfYx`ss(G^PQJEKZZ z@QC2CPpjh1B5e*;k@Egjg~x{B85F9M;Y%hYPWIgTm8CpAwt z?~^qGmDwDMO@2SH`&Y|rVIP-vq5yK;CrjFDlL~BvZrJ3X9bx$e6mdX|sZ#hb>uT+r zzaJGRCv4{D*;g#{L$N?%p0$C7&Y6euPr1XBzao>0>zNs)5U7ot!Q_O2#D|R68~Jm3 zyXXFVLED#`ZKh|~;mmYqncY~E?#5(B7BMG`d8&}X>IDK>Wm53HDLWOni0%ysul-$e z+l0Ha#sYh%mSb!LbhvV88&$PDhO=5)H~#^AqqJoD*?5LI?bw4J0@9wbiB7AOE#cOx z7jRr|yr-&sFQ*Jy&#+T%H>m>Nv`k0p*07CKtpxZvmAY%q{oXRIXl zPnC8EJp@&auC${n&O^uz8AwCbvMcBzbD7c>qQd!n&UZB-!Zb723f9oM75&5&#%K!n z(l1q>_Pl6TE(_4IUMtC50uT{hfalguEM3I&p)D=iYf#%U*?axhVO8;>a@Uc4KbN1V zCXTp>V4-+!RiBRZPLw&1TGG!FlN%XRehb14sM^EB2l$u-hDz0TDN`0G^ev=a2t_kS zS-L&)ecHv%LZ1W-FBA5xxrPjt3{A>~bsfFFbB`_Z9E)~pzVh5CDmscR%W;JIMMG_~ zs*B^b7cQlpwT{T=oDn|FD}K)vS0f7#-3j+EMPy~3GG3q{|4OxGUVrEbW%&YauBxdH zCbVh;d~qbyI5U@d3UWJM`q|*Pk*HbCSK@3(+6f}CyjJ$}WlN>X(mqfXFU8vhboixM&Y+}dv;l9l$1k&aL3R5q3K6j5kcq8elkN1$ zNFf?xiO!Sa*KU-tcyr9>tSFFk>v6YTZatOL=E7y)_y>&%ytjIKcrL50KIeE0fsCsM z`5M2;>`H$YIxAFb{G@NS__;)H-0OxjRXx%sVbL_RmG6`Dy!A%4X|7 zBp>8QO@)aFI136x=o`eec7Y|GAQKF<^`&-iGl6 zfme7~-gr^==8>6HOVLV-n4j9`d`CK4xbv-XC@YRmA>+AhC`udCapk;Q}x7uYQp=`~ngHNp+8wh)>-s%fXt zrvtCW3GT$qsb&~_*7t1v7^B%FV|2dB#HKY-Hl;P+bb6#E&)}sS!(tsu`ht=mB=fhG zwA1jlU&`&!mB%aVkWXyXgg6xG`YW8rCj{aC@NO=iyK1u-Rkhkwb!P+(7s--gJQ?7w z%!V1Jnn6WOiM=N~JrAN{NNsvoTnYHhHWBVS;@HM7aeqFdSiNhTx(#Ci&&oK@^H_Xc zb@@`r*(z+4scB?54_Jv{t%CYz#4zvHZGFmQw?r4PuN-1cc*a)HdR(|M#K;?dIlle!K_*( zWa4Gxs!D*@l)U)fRuR9GSZCLp--OLLMomOC#0le#-a$zh*t+&JGS~g;Wc_>{ zE1aJ*5$5u-wcF=@Ew|xxF1O6>oJ}~(4%01vJpq58bdecg2$KGWEnpQyW;* zKO{Q*`JH`wPqXI(C>6kbclRMb2B5W2?>Zy+L#xtjynZpMgO3VeY%`emd&tkyT%yl{ zn3wqT`!B|H`3?jhpH)L{+Lmv_?$*h+Rc_@bOgdXm+i!#U89bK0JES^lhzQAON(NEc z$GQlqeUiJkP9h7ElDpIDvfnB!j<+ku?Puw_ZUzG-6M*GMV$kv`A!sU>fn}@62MLz0 z!^k+G?4IwHO&;47hI3MiYPq;*WI*P_My`Cceli^P$!Pjl@Wq z`kcBlXndALgi$y0_;r70fcGfc$3-gAgl)2IGhzMu4e$0_fLOzwpkZav)^iNT0ZQaz zO@P#@mV^XiM`P2kKxSix4D-g7=&wrm7S?2Zf}=8;(!lk9NZbrQm1FoQdjjT{OAKvh zX{jj3pH$+Uxdz9V?WF#WT6Uu-(r;Vrrs{>?<}joV8W5NYvX>xoXCas~aejxl+)15s z#TK|YK_I?KrEh_A(|UqNmrRFmN;#}*^kWkvhRzb&^MK#C&}#rJF->#udJ>g^<#Ue^ zgA`H>Qz7}TZ~K0JXlqR3oW*{N%QiGAw+w`?iu9O&L}GG;L9P8VUW14RgNI zu4-!EYk=86H25$QxP*wGY?`jpM^9`;n#i<&ojZ)u%Fd~iH&I`X$1B1x25f;`BTS10 zL)GeLlH%9Oq_NwuUi%?mw4Vf1r{xV*Gr0mBLpb59!p;RvR1};x93PI(RU!%t?}Bsf zdIfkl^7j1tWUKOzbCYWBUkW_zGB!2+L>mkr3TM=?9|~sN)IToPByb8J^UF1IAA2kH z_uW*M816rN%@FTDd(5sK2DRzBmp&X~ehu{8CVOeMM+x5W8$)|ot>K}n7L}pmUv#QK z5H@R~MsM3-@U?ekB%ubLFF=dh@Keh5lM;jqF-Q9#Db# z;MXuTe-wP(`bWi`^zwtuuhS=zqwP(?(oPeu_i;D-?D)1nYLqjK(ip~TKp6H@uO%K=e-c;LLTE%6YGKZ;dvE~Cvk^)o{h ziNUA4ky%6QeLel=?Y6THSErZr7s)q#y@_3^pL-p}qf^D(RqA(lj#{(aH3ldDA?=_T zXJ-#Gz7M^Yckp^2v8=yF9XdILVxM@PNg~4Hh>bjFni|jd)2EjSLD})us`b~|EiB=S zc~MU4@rH+o$DdRiiVRi>rZx^22}JZn|1})R{PQA93WNeOi!S92z*%ps`IlTb-bpVY zA)xU8;B)KrCk2x=A)>b}@!0!es|*!V7~Oa086=Du`anA`o%lY>>({>vy8I0z?(~iH z2*ShsdC>$!O3Z(Kr}79n2?8I!{IGK?$FSraIiN`Sqa%uQr+WMOC;-(TL2002mVdc# zagb*4O?6)n|5{i7(#7{ba$zfrSmg`)M_IBoHpV0cX>(ZaGV0M&gKDG~f4oRFs)}d3 zvFmj8qP-$X-16#l30j@S_u4mwc%kPeErS1n_vl-CA6mfSp)KIhy1F_&8Wy!c(sU^0G)8F|-!5XytZB0_+#Kz)vRApyS?Lmdms$foAodJ* zSA)tKu{j=nTf>fdG2vc{(TnMDRwu5-^@;5_TH+lqWC0}Yw1S6gWZeJ^ZUCmWcNIKC z`HCveIKplrr|6vESyJ1y>NWoNn%E{;b8%U?JUou`#tfy$_4ey@7AaRVnXlm-XoD>$ z!OOipDqkiE`Cq-6IV9G6KNQ6Gu6pF~nP3H+zKv>&Qw=cDuCp<^RZZ zxD$hT!PSv@De22s%RI1a*ii)<<3uCIiLU&n7qKuP^2Xo@`L`ZYCbE_6s6d|v8qEou z$M29-Hb-qRqjaDY_^0=k96l$JaB-vA@M<$oeLchHLX;kVm3kxfxfPWDm-r(5PENa@ zyG%3PtiR-gcTPj=H{%eup}va{SM9#H_k1Jk70VB3W#}t&q=)Ox)w(Qy9vh0XR_FFE8LLI!quGh z1M@F{C?gH0p7%p$_Pv;+j^2VAht*1#vk!bZvgDfmi*X6{#5(pFJJXG2*LQ|>!hsr_ zugo}VX`XfY1ovA$5Nb->wD2!a`FEM?>#sSc2vbK6csfNw>0LcAbe&>m;ku2+LKT=8 zF^E1@7X?Ug*ZGuIlQAtqKe&ycfQKEyIq~aCzMkZH!W3P&0I@9WYxLlW;1F0`l~8I?Se7)Z*v_yMQ$RoF$qiGt%7=RpVTX1L))@Ej@Y5!`B!5sk~8W{c1YzCCt`^L^7 z&3vuHB{2%jc0Pi>!}u~-WIAQ{XL7*I3HP*@M(=Tvkcgni#Yh`Sh%?Hum3gTr^SR%` z1tF&xMl4okh-7u22gAH?0H~I*!&ZzXN7Fgwgc9OjswaHfFn3RXcS{=RQR1HYU5Z$~=M+KME_a}e0rs2A z=tbUF{q3 zcWpvPsBOe>5o#M`q}Qm35}|KUUZea!wG9d`qCV(b96ahz5|a3|nq1}tbW*Mwh%%vs z^oTWo&&)XkueA2X|5P^!r#10cw+U)D>LtRV-}3{9#BKa@b52l;@V^9y<ND^M7XdvlbLyA38yWEEQ=dcgA-zPya)DEf%e&cCB8IPEYs`=@;+5m{fMoS!lwz zsHm?8bbqNvJNYTH8x%CmJbi--*{s_6rQsMTBM9}>-(Sl3elC$@!X&!wO!m3+`IMw&f}?U7oJ=bk@qequX}G)Hel zBM_G|*3E(_1`^gUs(E+}qrA*JJOqsu*UCnDJ5P#)IL~g@iD~5>*xA{E#%fO4*?oH? z$D&=Sce^G09zWlpZ^^=aLP&^6nP7*Yc4ZUC>gxP!if#evwG{2#*rgAfr8Up~bUSvl z*s8*pZ*cx1u(m1Lv7m^K?B`{c8i_x{IEJ^YYAlm751D@_SP~>29w`f0&SVN-2>Umw z0YTG$MM|mEgCZXP9y)gixo<2n3SwQHs(VCcifJES{aN|{W6MZ6I#7oCI4Zb;TW+H` zP}lWYQr`Yuuylx)Q8n7?8nP3JaJzt6Q)wilzpsApT{zD@U-QYRtGbv!Ov&fBh&RZt zvtl4`-XqfPg5%&H(yi)55A~WV$4ieml&4VSqaEsb$*Ci8w*mv!iuOOGn-qU-yl!RO zk+t&xO`?xyIV&*9r3mo_#Z{6_et5WY69=?=*Dko9&^m?pE6R_t9cFh|XYu$iURl&< znR@NYX(8EW;p&aP?b30a4rH{x)WTk@+Pgeo#{6(& zI#3hw0>ymt514I#*1iO;ZOzcYUk)S2<2G>-+aOV5BdMiLJj6XkN3sg~tA#0-V{_Nr zAHjG#%BF?_^&GSqxg+X zqhfKiPtrFd5%{Nk;M3#HXd>ll^}Vpx)Q7hK93RKMpRW&ZvjlBrutxjmzivNC2_Evi za;S7#i>dV4(Qg@As`sj%c(8%|)v)|bb_ctx`epFRc~{oNP^XWgCSdW^Nlez75=0Q{ zIQycj5|C>7@y<9sp4(5+>ILjI;yEqunK;op9fP2vGmGCO4U-ZE5tr+{r>eADGUQ|f z1*3P?z8dJOaE|8OcI(pwEnB(8WgA2)yqH(g2=DmC>!~s!=^kHXk(kT}z+@HXr{sp=D{3IF~DQ_34X(w33 z3>Ohm#`*J-DSwhjg&$U4A;2ANxhycEF?GEtu&DNDX`;VO%VVYr%0J{AVwfBrdt}^8 zjF0(vQ?!SE_Y*#%=^SPh%(^;~9IYGP5ICu?Aek5KRlGIP1daUpn1hsXUKl-9|0~S# z%dCwQt4E`_R>B{*cH-zPQCBDTtHZ z>~1riIy17o>-nC4hgGfY{z`4yVnS(gTSAnNIZxv5%9?v_St6){iA)QC;dZw5lU4(*e>&eb?FHDhcN>@zwV)=MP+6m4BzgH~DUH34M|Gm^ zA9XH=mvvx@`!zJdz12@6-+-3nN8_NmqIpu;A$z`qaO(?95>PjWX}HBZIx^N|0f0l5 zlVS=j2kZD5RJcf-H3BeDc8Fd{Y&FF?K6T;C?6a4aIWV~F;ACEKKRXGFSWk^oTOnvQ zh99tA2-&shA%Rv&hbIWgKgC66XhK)!bVq09kVKVm`Eml;bRifR2p+0*$h7537}{u$ zDETMQeS;Dc8OrtdV}+&7#@v2jPlGR;>ZgB5tz)E?7gm^u>)qViz{RJwOXTLwZpn4L zhr&HTlkmCa%W>2nWzsVYRi?{!#X{8z(pi1)*Sg;Y=!^1o{R!>yD8w?t`J_Y9u{${YYr(d9e-L3{wgKPJ`2xrdX}VnYcQ0}IYPyv% zUcw6UxGSM6cdh!R30Z#tyL!c6LkCl^sH+?&(P#qmC@)5ExtE$Wz1D}wobs-~>W9eA zb-bCY+XgxY8{G2>-HTc-em9t&B|#}19W)0+68WQyPtPaT)6md(sqSuNyILDsnH~A8 z8kl$XGj~v%rUZ&6mb)sQ_NB;nrj8kuk<&|X^g%bk!RH95*JCB|$u7`xohU3nAw~jy zl24F$RFhxksp4*W^e5Ae!FS8@VMbKTT~$r6;RY2LW7`Hl@lN9shQVTRA-P2bR_Y*d zF|w_^uL2sPzjx0r&iHG~O$8>TM}O-L{@$?q^>PM%z^DH-#S?x0%%2CjPdjR8s}uFk z*N$Ov=u=JSP6l@GfFw$Kj)n6j6&S{N*zgZ2iPEd&z7e`6YRgo(BYJBYq4g%V5$9P< zwE+VE?3=TuL_D@LJJ6!tLJlE$OR_?@e=nn)cOK%f{tV>ZFN-NbY`fDxk3dY8dyI2usqmWv#e|@0vXI zBZa}Vt6;mnpKexK#*k40LplVfai8ZB13Mv)akD(D^aV)B$6F%=TpQYZLV!F~X>m5( z!ddz4ym9fWE6IpOOIzkD%Zf+)y`HmTkO}vUypruA7e}vne`a4NQf8#rGwxycPj6E} z;~HNp&g09lDdVhkGF02lskcoB;tf2THne&+h3~l>+%c%O#Jt5`4>KPMvu;*+d_%aT zR4T~gn$fK4pBVY9V#AZ2ynA0zMQ(GpD6nDV3_fP=1wq65rhC9S(_#iCwYI(f=aDXZ zwTU@!5fMSiw?isX=SNMe=52ajWoMs{T;3+fPle$UZOX&*YxaTfFfI00?_d>5 z1D+zM`^_f9c7FE)41(--9mzn?=teElrEW(C8D&snpY{e zk?#p|3Mu?|WN^dbW~{vDigcmH;0L5VoDAWe_U(YA2935o(eZruO`<4pfz-PKXq9@jld z$6K6wwNznstH{hL!yhWNpw@sehT(Ax`0j|88V$ptDK!k^E=AW(-S?nmL^Wt6m0Aw0 zFK}=%?4@vToQpG)X=m-t1q7btX&u6b36v6@sE!zf88mYRIL-gCra;>$T z9xA#j+V>M&ozntQQ0;#1c!c=GV_>L}{C3Z~8sVC&ck3dIS6WVQ8HO)N#+eN?dA-37gfd*(loyyS6!MdVIuWbGHVVMVN!n!o*UwqOsg>1)eJ~ zpmv5>`@IbY`VDPXsv_O2>+Ou-lP-zPr$J`uP=&ZhL)baL* z+Xo?6iuc*#CD+uCv+HMGjriQjmm%iK>t4MHvogc5@g$t4Q7Flv=Lk2wBe#lI@5w#Y z=QZIWAJwZYd6|hrx?z0&NU>h`DsHMc46=Z+cK2I=a zR23gvNZ*FStGLIz`t9g4T)PR^5h2Q(yf*rMZx79n~)lTZAS=14LA3m34ZRgWcbo zuU{bL5QAD*Bs$o8V-V8tF_zo=vso# zqkADeq!;%a>ciwEH|eVB|KOwgQjGBi8)PC>byXq8*Sk^C`L254SI;nO%F0@0UmJ?W zaHuKXZ`R4wP5d3!I_W2xS;~qyrw=~zT)GcUW~1`BJ0=bI#}*gV0Z%1+ITrP`M6$6V zkkgtwUBI1a9g>G6wghz(B3csN7#tm)XIM>@p}dSx6|}+8e0~xv@_FA_p1wj`sk-(H z(!VcyUqH|snL;>v@`f#@xkUlUQB1Ja4l}WD@(gc;YwWCLT&Wd^x`noQ&#e6P`n6wS zLOsE4gPJlm-GCz5!qd=&Zzib_8v`+Yjgc=HHcXN*Vi1-$@5?Ii4+(y$^jG+Xjcrpo z#=ZECL;S237IDiy+kd7^pxLzl+glc#KMK?ThlC+$*`GojT*M}eVSseZv0of9GFxe4 z!VgkVTGgWfpdJ}KeX3Lr_`H&FQvD4?@{j=6s`qC2qC!E?oMdgnR7dbg^xDPk z7w{~Vu?+=WKDsBY1>ue(7!~whEV7Ah!h-c^RHx}GHz#*Asih+&Zk{@Jb=H;VDAzYA#0 zhu9(tpkv7g7GBo<1!%fI=^<4wUo>FVQ?XYi1B5uN(!eAUY&hYCXPQRs0t8tzI;m{d zb;lHh@-(IZ&xWO!JaCHR>iaE!@?cNc0g91(u|I$JNu_lI0p$VBkQ5dg^e=>R z<4d{A-%Tjv?`z?yT&U6ONc!khQB%hf7A&iyZ+gU{d#E?C@-gTc|M9f_z!7#fiQAk8StapcjEk^qJ{X<#ntr? zSZhkLrI%*)GU}Hs%ly$P#DLAw4>RtB=}fy%eqh0yh-&Rr^Vdx0=NRKt4QoF>`si&- zxK)MPDzX{{vTjwN(%qtJ-&E@SpFz>KP((pN&IKpVjZZ6;6h<~``caR*b~an7dOjVb z_QdeFEDfOaqpF?ysWLju)r6CJPujX?5jPVQBO9}JqbLJd)fCgb437|Ndg?&zLz-}g z`uI{LG4Y18ex_=D*~kt-MdQ(arXNaH#z2Yv_9+Gd@SW>fGk4c1>-_^;CEPXeAJQwG z)xGnLQ%CCy&iN7O>P`dKumT%}m@ea4S>0d9%{$eDNFV8`;^N|7=pm@1T=Uw!Rglvq znv}1@(!!ZgEv&M!{%Tu9;UV0_j!hmO9+z9Chv9$~P~B=HPzB$@eatff4*9~Z8LMqUg6f>L!Pj!Gfq{7o$U?~w0Y+m=N?RhL4uhg zhW$(bey7lN!iDU4{<&aSH{&0Y`qd+AGrQWKvXnm{?xaHdA91y-$&B4jAJK%9YG4H| z(lJi9i}fF9Sq{F>4ZG7xN}cK2T0@w zV#O!Y%2llR%L9dte@fNIwQAoROFXgSqPd~$DyIYxVTLG+Tm=g`gUzoasJ>Z7Rq*U) zcE1)vp*leGj=xwhE-pe|3hK1eB=1CSmyOS&QH~HRkXw?+%X}$#x99qMWneizF5l_^ z;$?5pNQHV|As|3Sl)$oV@J&MIjcBknUXeQ#8a*N(-~6K`ev@z3fiu1Z zQA-u*6)r2)sqbT@7z8-I(6)rc)e}V(=i=W~C(OH7Vn_52t5+%CY?3c%)o8VUES+cI zfkxZ;y*$0w@ERgXSxw#-dxc!nQA`-v23 z!bpbiE$&`DvF}zB&4qh(4U9QvY8 zB3xX{7Z0Et7m`tdl*sH_pxwoy-K93D4EPZ~6EnqpA9bQcb~^Q}x?hl_vw`i9MF6_~ zNgpb;=c1$VTDz`K@URw@&V837w6r?lHK~P!%?Q};DlX*VS%~>~bx`DfY&DgJ9bDvy zV@@fdW*U?`11guUA>FE-t}bu2W)t^t*@iyJL=JC@sO}j%Nc1@EO{(To!OokZ?p+ZE zABgfQpFBolTqADO7V6;}{d-TE>4G~I>p^w*Vp=>@hU?Fk56pSbH0~#n&+tbgNoJ20 z;ys*N&IVohKNO-LeH#-xaQE_oGeWKCUMgYT@gffn!Nkgz0 zBi9JfW{+6*UMr&5!@$zA3;UmN`H&9*_(-ZTC*Fe=b6 zvNb)Vd|~K3d-Z)H%YSM}^XFc;`u|uH0Z>);cHyjRT#pN~-+v%4)Rvmn529~%>U8jGE z`)U2u(@)TH*VR?8O<2Z zhqSG_$gBpo=M=}7+?Me91kG()Qax1b&#yGOW*pRASG|k5`g4dhpu>jUW`*(;dt?$6 z#5da=OmQC?;h5yO?!Pmo#w6R>K|mK;Z*PJ(Cmo=8aObh*fjboKu{8X#ch;p26%qp+_w#WZW2RHwA0% zEgs5#OPsAG!XxIqE<5(2y6VDt#53!CL`jwM=WVr9YQ+Iib0gm=1^U~56PG^|Dan13 zS{S-PD;m&I2~Ofq{NnQZ{loE*RFg(4GUIMqDF0CSY?w{!cO@S{(e6<)mB}tFH)iGM zcMl~CIct9yL|D@C{L*S+0Yy?lLn3`&Rj!D{>CSU3qW4|Ur3EIH=UdEb3Kg@mXbul^$M$f-0^p^ZDjclc}?0QcMQeP%;teBXk9S1 zza|;$N8_M~1f3RE8ApvPZ38WZSa;{4uf4HkLSE)QS zCccK)YKg!+q@XkTyP}%w-jD>5OIC&3=(bvpJgMK8gs72!D1X%5Sm}@5?uyS7V9$re zi!nw)**;8<#ZR3yW;}!rwE$%|fy~ctK^B{z*JSjyr}y$>6Cydn97% zt(AW9qTdGo1wt(O``|rhK)~bG2iq;>3p2|ZK^F#d458UAF59>pH4`@du&L@R^@W(3 zP($i0agg`1fm1keAEm}y`0hrIvJevW?pU7O8?}5ZGrWFiON1uOyjEEHJ(Xrczg%?U zTmKahV!s0`v?&8NneUJ}(jiqvIp+ASuR*JD|Lbh(H?r-is00Dd5WgNkh-0_7OB{loMKVBWH% zhD<45PJ;3WEfoQ=aBBd!cHb8M4>09V$|RcRQf`vWPrVnTpb8S$xug6l&wiyXgm1@k zr2?IDtoVXX^ENx)laPuCs*a>+KFI^7lzD&CvU%hXdmKyO@LsC613BHI5a$cIQCvl~ zT1ugWPF{lh~azr)0uKc zdO0~JA|Jv;1N~Ani`b2|jWzt15{zDtBJLDSy?8KK5b?9#LJil8_=CYkn2C1WEH?vezGXaa&-%(WZI*q$};bkQY#$guzLs`V5r-R0KYuRNPB|p-u)69gE=RHJNucWibwTNoY~C>iN2-RH*I=nKAx>> z9;s~&yYsmQJ-qKDpySglClVX2VCiNb@RjE-osFz-$6qdlnEgX2lk5+z)Q-tNaUAi| zgJMdaN3*V4Z4Imb>=l1$_X(`KRO^Ys%~EXo%zq7hUcyo5?`Wy|MOM*BQ&ZbRmXC%T zx`bqqo1$CIzU+VBWS^l@J)BbY4T?U1!Qel(Lsg)m)pJ^e7}vqsl1PE4;S)Q%4`x?D zsq~mw^R>aGNL7+;fRgX0h%8@ZmA1gMdad-e^ibu+k=xC<^3j8in@=eB-6s}>~ z<=OPqeEHRxWkZ)tsZZf>QBjq{)tMKO>KS#U^xRstkJ#P{nh5L{=~LwsX5pC>)z$>{ zV;SM4?RY~&mxke|2#<*~>ThRjnMgR0=znma7ymgkzI=g!j`shF@4O*;k5t}y{Yeso z_yZlc8VQe-v2#!Yy{dYC4QbEh1_LkO|G+>)J6t;oHq?d7B>$Z$hj*)w=^}FRshuDX-jJaQ zn3)j+=G}ySiTemMDm+`t91+V`r$aC&d-EIvt;;(1%LtL>@bADR>fbI~$&7ysex1;$ zXGOusi?#gocCkCk%l~4A0-Xv^gL`3lxL9bb`sM%cs2FDbzabt*TJT$^u>wk+28=IU z9%mF0)Vc0`rKdF;Ds)*}H=dHKSbkI8Sn+*CXP5b}^HC^yh?dCx&6tg=8f6jn{>irx zRT~(iNcz>dr`S)l^|<^i@pUxRSG(gJ-sd&Ty)ZMM!LhQDYv#g}U@OV?1)XCgPqb^k zSyp2yQij;SS&@4BKgo~(4eI_LQ6{u)U(4p1-$EA$NKo?sMw}v2afFSH9cr^w-I$LS zOZMWOp=c|ryl$SQ< z(}y+$KXCsbv{`B_H(hMtb)A~t>qwyKO*%M{l6c9|O7(b+V?Z`RFuKmnD_0`%Bb+!; zQE08@P^H+6rr{u0x%qjo%xXGHDHEykoEUMiZ#bcV4C$xqF)xcBe3;iJR|qE#xW!-q zVRxp0Io@I`H~wqPr)jrrk(=YMlL!2cI0L!L@0ySZ;)8}=k=2pFV0#?Aqdu&uBEg|( zz!enRhfmMg>bD}zab6*=@-45qBcZ?x3F99eI9NSLVLTQIPn3Bv<*c!C-C8frALY3k z1zQ<4)0Q^hvfB`m%)1h==MII1ef!~EU9)ULiPTjMwEBl~r2-`Tsv0dz8c(nkDvZt) zM&!d%rtkz5+%J3tH~;F;wJ@{E5bX=2vZ#?iiPp5^cln}Loz7hx$4aGDWP7r;4}Ej^ zEjNYOSBmZ3kj}k^f$xcvsbpI<=>&Ps#2SugqzQbQF>z#PuQw)LNaZCinTJ;M(?duL zA}fv-7Z8Z41{%A%lPS0LZ&@`?PnaCnZxV|6Nd~lzRe=3?ED|oCj|8$gNd9&wns3 zq^x`__(7zHrryxCX`mshDEQOCU+i1BuTyj==oLVdFGugQ`o}jey z+{Kmjm0-w0Z(Z##FH;wg^;Y$CgCvnuM!n1P_6I8}l6$|8SHjr)D;}oeh>8p-K0pIjrGY@Y` zZ2Uv173~)jsoz+!G1`R{2O~NT+w?zDb-^u9u8bb%N=kqhvdxdoy7k6N-lOdc85sg$ zO&7{W=(bD|q@+Jc7rI9I^7G~XYUp^p=^V4Pp;UBJ>H`ZK1#!DzYl;Oz|6@;g?jNwU+0aKd zJapQ3k|oBhc607DGt|UJFA|&c?i4La?!oIZVCXzV`7 z`CfG+20l}ssfD=a^ZJKU(x@uDW37zpUwNMAN{&cjAN*{#qa8@;2+lUOP@A=N^6&7{ zd$#&RynVWO$|sQQgMKxWC1hCKOc&Yg$85evtrpC@!;t?KRldIx@V4hQ8xufw?xp2z zijHYMhM}5=2|YmM`8>Y!k14n640?1b4Ne5{wND+E+wWxR{jEVYeNjv0J*K0?hWluM zaDE*ltlnKS=iWtr=Eqv85hTJ^R>PjN%}UYz2YF`Kful@0$Zg~mPN;;#3S_tXu6UzH zKj@tDk>phw1@@0YR{3)JT<1G*$IyFG#zzQOt5pWJQXfT_d17m~t;CAIs)RDlwG83N z_8D{GqF8n2&VQF9FZaQ8SS$AO&Pf9U)fXGE;wh)QLSpkq9^VHrv;4)`>`-ILQM-G; zFz)JHdyy+{5En#Xt`U}Rw(ZBfTm#X5j^u22*v4a`cDd=PEqKG&#Vf5)&P;A0K6bLi&5Al_uo=`-_CZtIy z)%4b2Mdg@K!pmRPgJdnwge^1#UTQ0=YdCV`{bh@um{wo|n3GQ-g!HO+h7UN`W2I%8 zIBOROD2&m%(zKj%&CV1F! zv^}nBtHba@)+_;Z z_pwd0Fp{$L*9ZxcC*|>+D8zv3d`dsj$lN1~gUpL1O&2nI)RLgu_BRzvt_HO{VI<$1 zLzq}D#O2_P5*yW|DwlbYL!8*xTPw|FLm%PA0`f$gc1e!T=k+nQ?JbgDU%{I`k2^-H zgjLBkLO;k*n`Fh=4~rGkj=h~$uNBH|;p<}t?p~mabjchqhHB#qK=c46QI4Ou2>kFNVTjLeo{NIw&NJZ z)x=U2rTfLP_aRjPb^1I?ykw>X?R2?Kl9P79Gz*5Tc+XHGan-7YE^O?E{&N_!CQS&V zLfp@ye3<(>hvn05(+=qV5t}a8XrlVCM@9|T?BHLJL5$;KZS%omVaYKGtI6UXPAl=j2iWRp%2Hc>q3OQ z#5UXLTh;)^^_{BX5Y@K~DzPGVi=SsMQT`#W0VH}JjL9uyU^}*;a4DY_+n!o$2d}ID z&i_N4b&qN7WManaW23>Wj_mp@@^ls=Gd0@pr$FiF+8=;SOhe6JHQ`?_sZXBo{gK54>IB^?ues< zHtMiF5`bV&Y8?o8yC^!`vPu*?cLhQ`7ahJMpz(HbHkC>!y4cW;3rgHfGqF4YAbsa5 z5dad;dfrFKgP$7BZ*~*y-+Dv=psC5Lzd`>{(EKj{i_OK;basyRHx{rM-$&$KiRLO( z%3lp|_1lp9c_3SV^dIabBEP!a=)hN3maE?)+OVgDw$Ql-Bv6>Z$t1UL1R3Gy*&=Z6 z5tU@~pZ6?v68Cxt`5~2+!FBr^DRt;#qa-e8J66-**{;?6tC{d= zPAeL_-qKg7tvw5MdjaDglDE}>nYg$%gm0QDH_*l<_l2NK8PF!q3jS?ZSUa(0%nItP z`J&g0EgbpERsAeZVuwNL$r1R#>!eFqF`;z9CQ3+gy%&u z@?E|RL>mg!EJx6o!(b)!u)r~p+sVswA)iw zF!xge5QIC+m%LIZrz1big@2sY%;gQ&vEXNOez7PZY4UVS*)JxVVcdv&bFuyk)%KPb zv-%7%@01a1DT(xo)mw}+$2<0ehCrEj63p$q1%YT3@o}H!R=;


    db_cmGgMG!o@1 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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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

    VyVup<{0hxaI#xD0Qjtsh%jnx~ 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 UbKbzBZhT- zkmzggU?@?3q5z}yCykbn1UkG37?oDZBd$As7h6;baTG(@BieGRY9}1n`lGrgiuHI} z%Att$SQX)->{X#GTSdrjZh%E%v+d58fA#JJjIH?$%EcQ3tld;8k~t|-07u+$0g>qP z-2Xm{HV0c}e`%FZXE{qi!|903NOCUfO_ks=L(Eyi^S4y5ivM2#?*kD0%7JMYh}Z($ z+ci`o`Mzhg+{P58%zI|V^e*Dy7#yq;R4HYE*874)_9gNq+z6O2W>ABfYR>-vhTn(; z0_(iovUD^yznNxBI+pf(ScNCl7=K(GQkBbAT}0UHPyhy(E*H_POgi)}GyKAsXZ)D^ z-@`w`^K$cZH+L<&zs%1Ny$9k~N79~|PfQcU@Jf1=>Y?VU)O3ZS!1d;2mE^A3m7}b| zR@hY;fr41vwlvpz1Pvsrr?TcJA)-7(BAtesm4y=ci`_^J{{WlG6eka0gMY}x9H82< zU)SpkIc&CbZr;2!|iUnYv z26!bsGTlmgVMip-Kfr8@>JOy{X(}|O%;Rg^AYa@BTnaJ7y9Q-FGLlFgq9RL90hNBf zr57s2t(Xr!VD_YV48xSyCx1k98eVQ9LA)XoIb6iP9%?=**Rt$+hOsf+BUaQlli8KQ zc+3C-YQqsCXPY^gVZ0bGMelVO8>bCLWmSV)jVrU@J2t z04rF|rHvPgob21NR2I#RGX3T*Y@2bQ6lSs5)K6 zDYDvln=+Z(MQST*WDR?Hm%s~EN2_6rZIJYxMUko52~vBJilT1?UC(#o1&f(3*i%ak za~t3yJk zzI2WSQRR&SkBA1@0fqS^lJ02h&@w_x+Gm%&L&s&jqh@)y z*oF$Xnv}?+Sb$K=+`Dcf*($>h2kKz2Fi}i$d}2{W&Gi_w?xF!z#-Vw{Ee(=^sLLV= zOe({vp>-%YmX%S`E&+CP4Gdv{OcH}cp$Vmw1P5o-BOMiqniPT!3=Y?VSF$Zx55yms OGSoS~B|8GH=l|KbRm~Ov delta 112194 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

    g=CRqyne=yy2j%87D=ZK*=@Fnhgimt*APECrf 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 From c3c5ab347308d820843d2076db5543ffa93934d1 Mon Sep 17 00:00:00 2001 From: Riku Isokoski 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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 %Jmwi~ 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 VkBHY75E+<(3f+E0l(!*2|JhCS)Y$+4 diff --git a/doc/gettingStarted/appmenu.jpg b/doc/gettingStarted/appmenu.jpg deleted file mode 100644 index 5e3d6a8f46532d57e56de254aa144ed932b48eae..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 49909 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

    adhF@JJ+W#XkoaCBALJ|`XvbbTXiwXW$=;h z&%C3NF5!$>ke61%QSIIr`z7WV4N1eZrO-;rEyB)x`p*n<9&K@1dWEa?GMHmwa zcm;7d9{t$=07}1l!@K5JD=Ssdo%zHgt94CR`y!xqn2`!m4|sa(#}|(?S+}c7rd!)6 z<|^)6{tX5hW2f`F0~g41{5O4}M{SNDcrsj%(A@P@J*IGRRv;i-TU{H^1g2I3AklM^ z_W|{R4uk#5I-o5(0q`==SRlTj4IEqpfuq2(d7$z>mK$TXy>B%TXZ!WMr%(C!kG+0a zlI?XXT3W$>14YZdyjd-%Xf6QP&BEO7T7<$guZu*wTyC*3$98HxH{NKv^bJ3VH3-fx zq20vAO!3xX!ZX2Kj*gp&)!3Mx{+phbcNQ?uBuXp6>eaR1{6l+%Ry_qfzrmGIeJBoG ziK5kvbXCOBj6@Z+4MPIL!h}>@En9~;2%D=fh_cH8%HfP?;`e0-EIFf*wo!9O9=tyq zt$OFb_^rD1-S``*26D7R4XtC8H-OQOrOw9{1pvn!r%DRLHM}j@Zo?cv)iw2{Z#;a* zzQm)ODhpJW54>DU2C}>`i!!}y-2QLE-G7sh$OTtlmj3`Ao4*YUflqRb?jBP6n!f;1 zG=`{ZR$@@us0}Cy+CT2)u7^st@2Qei(NU$p5zM3#;%>lkLv!Xj%rUP)3G-DDF^TnKTiBe`ZJmCq z5D~--AGq6<&A*wl?HC7wQT4Kp#O5Pbr@AUWrF+$m9$>;BxEnn{@0c!LeFZGv;&HD) zydUI9)UQmhOs`C@OcDIdHvm?*E7LqtY!x}n9X!fzM>TKgE*l+l73es(SCXOH!bSp- zTMfbj#ie9kqB%fE1jux+@iTQatTBE8iHiQob72Z%G_hQC)U*_wz_hG1ap__3^%`uA z-hFTU8^06{v&sG{*8Ma~9HyNN`;d`Rng;3G!d9x{6f~Ir5`%*@>8O<`7N(Cd$}=D- zcU)9%EJlLE+>PPGWg8|%1|xcl2if6?Sba2>c_O{P&%5&xftQ!)i)G;Xi{f5+r#I-! zPJwE|@?rTn%8aDtiJU8>>MgIhS%}>VbVe>YTYB{F6>6cCLaE##X5cDt#8eTf+>L7Z zl#;t1OZ#0xgo0XQeKP8qBY6rC!-y<$Gm&mF<+_p6TwM>F$W_ z^2#V$1)<}pgb3Si<#QhqI&0zrm*PH*tGJiyO2aPIR4&*oCqj;A;FQjy({XwiSwNWg zMt*9e9S@krjkuj{WGtv4s_QRtB8K54VzhBkrmHf@kXm0n z2Q@9qvUYG(uNTXEzeX48hxpMsbAgW>&$zBXP^iBFzTz~7#EunnBaBY5Lkb{Gg<}M| zYjiOvrW~u3*_)Q6pwU-Q!Vc3c5OaF}0Hgq+-9eNA)NpHC&LRTn)>z9nM=6(e-q8hD zK}1BprRsp}W7=L}w6+dWzcVgU0jNF?acjv4NX|S#Rep(02hQSi8?VP5{-!Gr;DfXAt8pnfm$^mXrtyp( z)7_j#P1.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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
    Nh1#hbF$Ers8bkttap^jY3%-8Gk#66D-kn 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
    +fz1ef}$8Ju}$+Ov+d1ihx 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 z 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 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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 Wm#jqXqcAU8W3bp`P#hc^pa0nh8M5>M diff --git a/doc/gettingStarted/ui/applist.jpg b/doc/gettingStarted/ui/applist.jpg new file mode 100644 index 0000000000000000000000000000000000000000..927780e2223c87f309ceaf8742e392d06600b34e GIT binary patch literal 133036 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ⓈI4^fVN_y*p5n%2zmpdi4$dTaw2H&{(pXW&6g&-{`ihE1>f8E{k~*! zI7owMlD>cU9p9cYw)MPyxBmc~3GLVR{{Z)vhksA!t|bw;?Vs22#J0Xq^ZU;L0*CwG z17s8Zdh3uNx%K_xI8ZBz*ME79{&^xI{{UtA`SZvE0e?T;_ry$qU{sZg&8F&oauSM} z4j(WA8<^Oy9mZi$iX6jq$6sPIL?~=%03s6=J&VC#lF9{aUg9Y*K`uD1OM&jO1ypa6 z2%Jhx3U96V^dfkLPEucSbJ+$GW;moknV))+-D;`x#gz%W$aO96_Yph<2#`tC>1u9V zN85-`SJF_LD-zp#d0}-1jO?iKmc8EslurD8s&)0xAZ#bDiEGBDzW`y6UmoHA03C3W zC}BKB8k30tNjZ&?_0O--F`O$i6AXE4yjL26VSY4+hF>Ld0gi=XE2zw~EzEVnEMmj( zv{hvP0N%h%s{$eGw0unPrcAzZ4&NEi*O7{|vavAzEg~n3iH9BJ-;U$cF~~qgE;Zam zWyWf+ib{h$wd!p&a1;Q*bq0I->xCpWII@xeTd zkG*CBRAh^N*PS0K9A-%q{2pTtQKj`|JMz zc+#lQdeR#+xjs3NouCu}f_x22z5B)etC)teWxW2foWa4i)CJ!5&TQSLcN_Z}2 zv5((3TkT{yo1LEGr;s_wB6_YOHaFCl${5k?Wr|#5a^h~d;{;A@oW%QLW8&K5s#0}c zvjZ1L&2k1&3_f+)FWVdC9hM3Ev$l0!xq1jQHu4>f(I)CRf?%4W79jB`OoLm4lLwSq z(LHsz^Thy?qvt;|N3KB1N6(8t&Iyypuesu`BZ?7=_2;>iZ-5FU$IIv0v+2MTi;ytE z0@DN-mi@wEP$)=IcM%CjJGJ0Fk4(#H(WenJ@Z=CHNLW=nLTJ1lH0q^H=!(SEYs5zh z5=Ape%S`7V+8Yn~0a@4faqj*(1Qoje?l=47GBG%Ry!>AwiFNze*R1f727lQ4e@6q0F~ADs73Kb( zHcMQ8p17i-AN$3q&$#;k09Vf>4F3R6{(tW&sK4v_atROBf6;uQ1TXdSbRSux96*^r z%=gBY_5A+;b;yQKNA>43#=%a%UO5yE!S6;7_((Z{zPj7z>FpT0G~hmz%56A zGgod88|9HwrSE?qLUYPlNzh1lt<*6;PCcR^YGO|^-k6-!JOKzJDqen`f8)SZC>Wn; z&~1!&z75T>Wn}Ir1QSE<=2B-9GHU1A3eT=4U$EE(N@{w&Z-jzHi8a}sV(Rd6U=SG~ zyv2KU^AU1_GD`#B_shxKO$(BEkfg}g4P*3GaOyJ-Vfy3q-gytJaVLDs3jC3ux6Kj0 zLUdIU1!_71kR)mC7$IT|_?SG;Xg75$O`~z?l9T7+UM>J-2T?N-8zQ$HV+MVnh%d%G z9E_-k&MAic6#C#6iu)V)y;R2d$a9sfPTPn+{c+4w8r5fijgvf1eXN9+Kd72|SUPmY z%EzgODxmuCIq1TKVqurlx{2YYV=#HiaQ$~1;}e4GE5wq+Onv!32x(-*{C{hYjGu~q zu;YawYx~a|1i}9RJaOShR~z3SWyV$s@wZ=7ne(wJD!QC~;F&oC6Xu>`EZ_9<83UP- zsxdOP;Pb_l3qN5F{{SbM<0Pn-#l~~u&KWYqBO^QNIWtH1TTVesQJeYw@=7Rq4OoEJ zo-i^ygPdW95uR=BD~v{Qk8$4?k>)B+bOra=IL8{Yo|}}5Q|HB33j$I^rYtMCZDgYyZvwqwD!|&9&UHsazqTVfXrJM zz@Loq$)-JaZ6~}RNxe8n`~LtZtKSJAPV2HRGnmO(;PLb|vF>TDX6yd(0X4?F&)?oB%S8*oD@%JcgwtF|(j{ecW>Z2~rsFffiV|3d zp}4uADyBEgDgZY(i&)IIYA=^dVRCICTD^uNfSNWPBN~|_sqn`vOKZ9@G{cVc=ZLEY zW>A*u{+f5W!d5#*y|lgZ*x=+7Rv_|SO%aK{x5E!Ny1H+&rhX#00Z;wLr(f`nNfT!3 z(qD`r9}lyX1jVF=`Uw`%m)(aT@}%z4x_uU>f@M!PR`;nw1!2;&r5G=Y$WTt#<# zwk3t)8^z35jm9H9XoN`IL^lspWkp)K9gHL(OcPnUo}WCxjWS$2J{hkRajM(I%P=$4 z`CIApx1Tj8TgpUEm}8u3;gZ6iK!_I!v+Plm-GKW+oU@K8E7BfnorA(Jt zEd1v@&WcV6WZr+4j!hIpW@-h|@oOGFH@=7yvM|a79EmehVEFF1W5SQ9FBdpR#>{ze_qgDOs9EHX zOnv5lBv8{Q0FXd$zf#QgUZMNX8XS9zf?UDb-1v%4^8_|-Gllgk?jcQ&P4ypQQX16q zLQqNK{Q|y0eD%Q4xXBo@dS_wqaR|u?s2M&68YZG3j!hmGY{c0&=+SV&jyjN*Vbc>v zGn39`;>wYAX2zp7ztV&X_8Fe9q=s(CftUWCLq<})9n0em z_=Yi*L<&Yq+FK&#q2n}J<5o3)-uUQImmkv=nfh|ZO}Zhj{*kwRGDm5Iqjv1>&oRkZ zzYR0-@f+j=sGy4}j;>jyykoVvMiK=Bsr zk8%7nlvQj_Z^aV^=ZuEdGLXm2Gnc(*ga%c7OqB=I-wP-AU4uDgCl~3&1yHC~SLkJ! zeP0NqpC09D)Zaw49Hy9JBkS#($B!umGKQtP*y`3oet0sno5EECjHj0;GX&EB>1COQ z@vouDC`IoO`S9Y}V_ZjO;Eu>@%e|W978%O#Xt?Qde@+ic^tDfR>G7CaNW{@avO^S{wCq zY)n^5QXG<{qFu7z$=e&_F(y8tSN7t3 z*O!(CpMLdv`S{=wC&EnURRcdx6h%WmXY5BGvj;+ zgr+u)0zW-Imy9JO2~l$)R)Q?OuO5_`BjDkg`Lov~Ah4X`HkCmwL&R_;L>2XM5m>wN z!=s&1p%eEyo9H-19xrkJ@<0JFJrnZ`-)UZq0CK^Dr|ZeygBD8k)M926A}yu}@TD~gd+E<_N1<;X496^y2irPr1E=O-Qpfef1X$>qFb1RI~! zcwB-_{{YJ2Wv3aQXM@-=h_|$cdygxXATji~GbG}7?BR$*mgRIt1V2YG@j)44dqlAj z(1^R6cq>Co7-sPwTvx{-4qAis=N?kyjZKBft}5qS$ev~xlkGiH;UgK(jt@v$cnB%r zT@!tvH&4&hp0|BRo`kF8LZh6>BoV`9&IQ3JpTZA;+%jrItppLbmN4uL%n~WC~Wpw z&L_2m!lMy0h8cohh^c7>Ea_scDKWuNjYgCxDvpCtMTjPmRuUn*#pbmQmWEPbqJkOR zxR0wmBZg3IGU_!rs+^nyP8=}js;k}OB5>AO2uai`6ULyAJX)NcRL`Rx26%|bd@=Wq zxCt{*(dO}AEX-oE&=5Mu-SaIhd545JlfnJ{I5{Y^7$-43Ms|BDVPjNM6L;Dql|r2u z#0)V&ZDqhL&%|YIui| zYMWe@=pR|C;|m!RY}D9{S^nTeB$ru^h=MvV@v>1P;~zW%;2i1&k)W2g>1&Q;S>5I? zsGhVP@Itzw$QDT25470u;9+1C;w`h&C$1aTfC>OZG)+U-lbMJsGuq*Mn9GM5kqbw4 zfVjqGKIPFM0+X4C5t&F+7dOky&-pdXkpy69OfzSO=(xp9OTR~~Z9e>h#0e3jds>Av zF*0%Nq{C@8C7AW{N}&-cDoJY75hf;Ospc&7k;8v|*8X^ys3tNcjr_!UqrL#NsO;Re zOz+BSGFePa*oI-r{ypG1Qj7!Usl3z}CLC83$f1MLi1ot^hu$uG^}CF6EWwg2#CY>H zx#4O7pY}CbudgC0A8F)*sNEWl5UjJf2|784ucm^`DwPEShcHX=en|;gYNG@4S6(~Y zR3sBwaTsgQ0@FFa_si4Q5X=KiU-_+kats}^%Z!up=e#gus06Cq$9Q5f2+3zCyI+*c! zG~8T!G0A7t<#zeW{&8WX>Gkx+Jn}OW1`QIHHpP)!$-<`+Sg#mJC~!BM(U=q>5|aZW zAlFw=Z;Hw`xu`L6kt9v%s^r+IBVt7NR!25w9;P2L!r;&pN;jC9_Dx}VeUA@wD0z=w_)J>SGQq1H#7FtYfo5G{@fnK$ z0Gu*`6m+HTHS|sK)yyd}^c6Xsv5fJBVYrL=ECivl33%Pi;APo5G}>iyykA0-DAA!D8QAJu;xL(9$k%naZD=Y*0nI=X+K z_mDG#4kBl9bAQo%t4vEwYK)nSF?;|@Zwq1}?P41~7~@6C?#;#^3B!HJ@R>rEK^sIL z7f-$<8{nFIBT-$SN0EyIWJtb9VtNfjIN~y8Wjl;+VT&I8Lwdy$=TpK%QF8&OX562lz zcFkyjGrut>MR?B)3?#^4@44Bi)L#_w7?lEE%}c3u)JqY>7ADHgw~smGN66Y7b(`u$ z-xDOonA}HUA>!J2OH9azCKqg1p&Qo;lM6B>hC>F+Dly3bFK!E(S=6Bcr9 z&`~u8D-yN5uNyevnTSIqVP`Rjb9@OPDW=4JVfUW6;Fl+(#LF^FzwqShvUNV(^`h}w zl`Uk3U3m5Pj=6#t>eegbe|!lf6VpDpfQqWdV@>*#fySr^$D_r#XT)(Lq7LSxB=sA6 zsJSJUDGYb?&gbKjsY5ET#XjDlgx>`sNA9r0WUq=2*|84^(YeE^x5*L94lwGkNdExa zam5s?Lvr5hs31OZPY^wdfWEh@;!I*6n&P)oh+#7hpitp~53#VDTEydW7~~X@E~bJP z%H5Zv9KZtUnvKlMn~QH@$Yv6eGz5&8Sh9wTqRtBd$XLw+eQc`EIRr8%I+%{+olnH^ ztV?GMqzT{oeg+|*@9l6J!B5V^4SMdmN^KEh`1HYx&iJP6k^+`OITw#h^Q!B-he7PC+Bg)}iaKjvNKI+;tzA;$9M=>@(#%h>iiFUOGOHUHrUaC1x?_ z=ldRKj3}sMHQhA9hwaPsX1+IGe;x45CiIleLzd#aaIGrozOG^xMm%(xAE80+^D<0s zN#6#Cgwi4-5=3@Q1&H--kB1v`$bdDtn{ypc zsMj3{B5Y8^i2axJJUBtWd*DM`?}=M%-YBM5z~yy59hNErfbxXG}HlZ0S$kYwm{7`%1Biv_xR zTC5-W5b&W%3ps+X1bEjbFm`y%M@-Fp%y6&=2F-mg*ZetnsrR4E*0Ei10+=2j5EK0v z@MNUS_hy=d*Zy!))=P=WiO5HpVB%0_q&z@=*&Rv5+CG37Mj6NO54;siNDF zi7VeNB#4s)PgVN6-zGl4r0dUD_&A6>$7VfmuZ}6oaOlPV>gWBTTuOc1NJ%Qwh6R z2ySTk&auWiP4}7{9rY=mOq+;;E>knLAssf#XN)llBx9`T#%;Y>KafcyQv|ub;(zR? z<0~OBBflbGBIl0?fQe)_eYk-<6wun7U%ZiXiR0WCDmKmFEBxXq2qYU>$BzB+lvE@l z#!;*?dZ?3(m5D1iht8bm)4QZ3kZFv}CgJj=NGTz@L zOvj!T8V#;46sCzKj<0}8$#a=x`^B^BUJ^-uari%j;!J3lH#>7V^FQ#C81}~LKdIw- zrs6#6PO2(8<=iAYWszn=2ipnqae#>|qg633dpr7^7|o0eE}}D?6JL>oS6w%c1V5hn z5;0e^<=Zl6-UPNRz5UMX_~4@}$%y%t#DAQSW)m4R>oGr@;T}j7Ja^)y>*9GfrnI0~ z+iqemDIM_`^saa7Vcu^!jy5^8sj_iWLlJXE_$?a{F%=y#@*V=XODZPlP9tU5kX4=p z0xEEQl4l_bMCh(EjR_4^n+uHOU)te!Bkv zd2xj+wia?mN#3=|r$}@>)J(*AmZJCo20Y^qqC}*rmOA948u1%Q{ck)3DfpQHj;H?s zcO1&t3N|qpSq~7tI6F`h1x@b5OYxrhJd_PYRKFxVOmBpkTl(@H5P>qT!MGe>gM>Mf z?+7SI{Bl!_s#E4ybOg=WG59cykvm!SnX>&)4K_pkOeIBqym2Wkq&J9)nTaL|S-ZMe z0IQzQb*&QV!@&g#srzD1izFf^fM0cUr`Wm6-SLP@LlcZ2m%lN?s;3#BkNNYG$)r@| za_Toe^Yr5I5qWFYAb{LhTL+5+xY}T4njedG*~LOp)^VJCzjIt-G=3&x zDeJ>O;F(?kTBI@%wxG(DLnxaj%}RyW0OP}9W$TNoC!>u_(PRypLm$*@y11`CL&@; zm~VTSj)G&^A_=@0_X}%Nn=C1~W(blneAXuU0VE`=({pTXzo!7*{{ROe1gX?ivnbl# zF+Yw~6A%(sFDkv&JH85+Y+en=m``$@jYQMD;BzcTiTiN&z{t@rcQshMa_5qZg_)dK zoY^Tie%Lr57E(;a>bC?>?jBY)hLpk;?q=#rpdt}Qw%ZjE zH5<%NB2-96zrR@OGdw`cL`fvp20sBbH*f$P>{eBN`v z96}V#Q5Y)N>8Sc}g2jbISsyfNbB+ieKex~H_rVh&Nz1%%I*HtIAw|uMAd?pbf}_n4 zp#xv{7~Z%NUSIg)CnxWSjMvgzpH(;H-zO2MkK56Y=ZFXrSuyCBWiX}U;8_G_A-R=Z znE6Mp1(7CF33ylvFyNc9p52qO$ZpT?v)1_64A!>G$&dEm=pQoWs~RxH=Y05VAo z#wp*&bUj$HEc$gzUN3ud#FBSOY|q>K*Ay_Ri;v9u`gg^I1wL|T48rEBae@Rw)*()b zVjv}8=}SCiAVOuBkIpM{R7CN_EVq(}w%L9+d_yEfu_HIu2w{Y+@&aL)NLkF!hY^A* ztQK6%2~%Dc#gcCa5Ez6u;&!iN9k`DKV-D%dvU4x-$p9-O>ki1SLLrQX!j84{lN`}H z!q^7MTGvEkIAV|~k2dObZu;X9f?ImsH zRt2MZJ$R3NL!b(rWIe&CvVN*QBCcFU$&EqVuV}0xn!{TnF&G(q^2Fj31pffd)@qA6 zB{sUI`=JFz-R5{FnBf{GGYH?A++&3jL!|b`3A@GtmyqD6kHL>Vct{94pBdNv;|<5$ z8NRzc_r5q2bo(dcKF<#`nr9tM^;q@AOcMqWdii(>WI_tEGlM#e&jKiz1GiK2JK&+4 zTKr?@eejfKXWl*~{58xmp2u;&9Z1*G4UKgJ;~0m>zG(_(7t~D38e)B&7V#^UF)h+Rzy40U3|3Aw%vGH@(rC4B*@pqqu$OsdRFDF93IwZ2XOtXdx@ z6;#0!b;y9B7OywkF`PJxem=_VEQjJ;J$e%$7nNSuf zEtr~~_^?R}0hK0VClwX5j6fwp5C#;8ihgFIcv=J@Er8o53=3y(4HWmnP%#wUW&ThB?v?DFIu~@p*wZ@SI z%nVE-_NSl&90kY<#3(^jRI>oo8#qFR5Y2_Hnn0118P^jg3^O^uw{>LvCG4z}ll54b zmse+eu#*)9UH~rv=-lv)StWhmy!+@lCiaWle?I+Zf?(4!(wKE;yz8I<;&w(oN$Km? z1VO&aJpJaUdfHQXchLT$@4-q$U6wMRB<|#y-KADKk zM^V=$DJ{PkK79Rnl_aSzhVWxL`|~F6O9X?(=qA>%oP!ui(p1DO=4a_X2>=(WL@LRW zqXZsOCxS#qz}zgbHi~sqd?hGVu)3b&r^ZJ4c;E$A6xwiAZpxM6+Yt4fl2(^)AdQun zT}@$Q6%#Q!`H?GYuWmXIUrt2!kJ_HNU=pcD7IQNlxxlf$W%e>>GFlkaltae=B!I00 z8G;ieu$&&rE-Ij#G=d<~y|T5al4z0-nkt7O!JnqVRBC*8+N{j-3f8b(NxNcXTwZGj z0;(x09s*X)n~32IEA=1U@Zb=6J`79KlK}C}nKM7Kdt9>-)`{qctKb-~Q(Me!nMuzOVN&(=7~kiDorSUQ zIsVr#pgZomeRvn=lfpg5C=9)qd!1J%#t6YI$vI?ZzSDqS3W%@{s~6Tc`FN6!5({xY zCo$Ie%y=H=)jxk+6OkdU-;n)%gZ51t_)tJJzq`tx}i;w0qC;4%?Y@$bhd zDyQ2I-%a)Nz$i4R$5lTqmCIl*yb#qldepI=g=|LdcL%1_&z=H>shmAbrHCU?gV>bZ z#VHcZEJ8}W@-5P4AEm?=oBC&%Q4^4xM%qP|qc@x2XDv(Ou{gx{xHQOEQ!K*_PAG)_ za0InD5RBFk2ZDc3CS;y_`#-*U5=z`R*!h-LAlA4YiN6PPlexfKUEY{Wf+=-35NWjN zu*x{vP*@uRDvEHb=?Z#eibRwFW;}5r39_Ma9<_}}o($HFB3(Uf!JToAlSDN-uFM5q zGs3jU{v(VCfNv_An2YbXcf~}=5d;dR;ypuO7r`9Vt(O^qQy03ZUo0D0pn0JS5)RfLSD9K`Vk*K7@LJ@ShN?PCjmK2mL-DJnvP58M0v zARGI?_p(XkYAiqJ{_Dm&z{@xUCiXI2nr>=IxySF|aYBYnp$lcMLf%tS#8k|C|~#2Bv3O2F<;@We=lZQF;$~f#1W6cnOM!xO=zKNH1X99MMs0&jWQSeP z5~#5c!JoGwqKqnVdtzc^a^sRlOlMi#Ql=74xLlko6(mgbj49mRz%-?ioBTp}e|%t= zVVOb0Z5W!Scah4~FivU(A-@JZM>fi4SLYJ~tIhWR@(GsG0k9945-%Vo8GhRfY`9$f89bd9TX-rQB%9{faP9uKTZdANEQIvo|+k|u1Z|3M|z(aNLfUV zXk{jz)0Qp`)Xx?rGJRq#=<)k_3`7rw`m^e|#@Q!&G*c5B>s4iXiViWT6TV!E(f^ zK@K&MTw;BU$F*pq2Pc9+`A_{gndvN<=qM?sS5Y+a*iLfIEG=?U00Ei2RLg#sjC#?4|Ia*-d(nASRipE|!fk+~ZO_LaETEB2m z*r}d~GWj<-h~dBn!L!_w$Vg`66T)N?Le6XMSl7v}OvRQ6Zbxu|RkmWdaYTV;azx-+ zF;g?w2@-^O8FB?gzA>gw6cP!EyWh#@A7!fumvCUJ&%XW(1dQyizkiJI)g@arn&^CM z>Bz#h#Or=~j)|)tKm<@UMW!wy>{&Y)j$WZ~Z!9c8#P1@v98IT+$D5tZoKP(XJ-%qc z81A_smv&1R4!&OZ%SESOB$>M|wQm9qg&zfHx&E#cVo95nAinTMRDPTYwiJaUHzH>H z0bOt*%g6~kpFh0Rz-M&Xm~Su(7_XzrQivuYkDIgo;fP37k*0I|51tO7AlHeec0^B& zUoK&YyvA;IcKF241yVxoB99(S_=V%mkU$fdwh5!i?bi@CMkT;MO-@5F!C3^`cBe*d z--9r42?7%3TDiyG86~kvmPp7$D?udOX{jAo1d+~m%l5gK6XTyyV>!U4Zd?-mW6vpL zpoudRG{JAK7$6#Q<#%eTcO`H@q8gFx`d`fRBQ&DKP7+c?rTcmN3E=fB+W<^(7E;Vk z+ZmW9nuWu@A(bdrseo!5HR>DX!XjX)p5r(UyQ$!(LMB?4G7D3ciPL5PKkcY2Y_*K^kh9u_35nHNsJn@v&$;$Y7zaVzL5d zf`W3BaTZy88ij{$rWs&j+mAFh0J9nCkGoLco2Y?G7~Q0OBXiEyLTOv|k0Vv%j!~2I zpNL_8Dot<^Kp~PkTRWcbCnkXOpT-{CVlROxCj}c!^wt6g%*O(Ta{5Csk&rWIQ&8CT zYP|d3=ZPUOZ?HUQzkCpi&NN5Y^Zx*O2#el~PNH(hy>e_Z&OSrlewyMbU8dQ~h)5yx z8_Z4=6QZXEBmgOeW^>340Fa9ATHW2oBa$x@c&EEsjePRr8z??EQCruE;|3#=^m2^UZ}vMcw< zYf@yEH8V2<8hGVdnnfgy%{p24cgaes(kZCcZnKG~#{#t`@@_!v=f50aL77Mg!mNaR z{J1~DrWIctpOIPu7uslTt=_~V1J_~9gyOo%1vB;fq=YXHR+iT?n&nA;aBM8dxfOgsL_w9gPd zCJ893S@Fd-Dk>Dx3R>RPmGi|ZT2QDNs3R4KnVt&s%qf{7Dsep!%v@En;!GKb6Xq8Q z#3I-hSWnhpjByH;%I1!VtJ9a0MUjj_jg;aJtG*}zfN&0`uC82q@I1WBFw#v82_9~7 z96>P&#{B)7n%#0}AS6gCRrk4wp3U+BDCZWc`Ovl;vMJ@E-B=*}tY82R(Y0tBXxZv)6?ONMRa;siw?aFve9THLRU z1`1;3APKf2EyCvb^UOYaF8&mQv<}rXtsH@sL&;uW9^#cua-M_=mXovOe4>S2gB- zhH!tpCZQVsKj!#_62*P`J%5~lCVKV#-QnSakB$ETZT)ZoU(9>+SI8D=R-$dC+~*ux z)!jsWJ7ya7t__572|tfKV-p{F_Wn5mAghn&I6$-4!JD7+f&Cxv*JXIQpbv6iI0%0{ z6lKqgy?<|9OU2P2p1yU&2_|AO>3q-Mu1ZEDdilr1aMlPaCUJUPBHo*1A_qbm^ykM-X)jP%woG-mAj^9mr6V2Ph;=upvII|!Zp z#@+@-=8oE_${$>shz{GF^+^(I=P}3yyD|5{>&CUlD5$;DHEDssy3Y8pk~465VmG=Y zFBfG?B9mk;ewl_CS`-;sKIM1o=YuK!+3oAhA8swZBzbSm9Xq}il=y}Ahu7|HgMdV$ zXFo~zZ>;bVixb>pc3?8k#v_J=5Pnq=IH@-t=aPiT(-l5e%EJW1TT)6y1}((YZ%us+ zCWJ2J+;8pbAYkK&u(LCm>4}m0{lM(vef~3!=Nw8h^rIhGR}%dW1XT>Xys?ADf9wd& zF6_m`&`dL?XV)YSeSfpuef>#Dtmgjr!35H82?v>-TzANbQw`K&{{W1Acu)+@;eGrW z$1{Z+@fGCPqAEBro{y)3@z>{yMg3nr8`^8cOpZS0J##nUCPCWkrmA?3rSOs~>ulGe?0T~&N{WImoBXh_s0rU7j%GVj= z$Jb}^jtH1Cy(u?4^;^2+C=wX+TVFe1xV{V?Z#G_r_f?0F#UPWQq>Xzb? z#X9a2iV1e5{Hfh|@28W9F$_TsP8@~!kH0K|A-XJxFid*g@h~Y(FHe6-hv}ju5F*7f zhSSchjqzroz}>U%Vnt@?*BP7)_B!tOJ|IpJ8>18P_rcc`r?P1EpB+KAFOvYkl48f) z9&27JiRA(IeP+B@#WC1V-s-50u}EPXu8TRYxDp9FF2-;?efM(MteRPK z6F8K9KKz6WBWY(-k1^k_R#{GSxnVW=-v|(lVKBID>qIK=JV=4O+F7hV^}CKR4XDT9 z>Ng**A6QLm{{SV3zm6o~OS;MZ`sM<9^RE1V=QLOT^5^G|==kF1N4b*v$9-}zJ`Le| z)|tm3bH-nz8V?g3g+>IXeh&WtCgY6oIDSsQI{aGzPiwtb0U1k+#^z%_-B%2X0AYw@ ztj-~IH5{NO@!Q_(%Y1_a`Y`_heK;YN{bSwr=ZFIz*M7L96w|+_$MeBa1Lr?hHhSVt zq|NK^9ym%vsPyJNGbahy_mYJ8oZ(MAE0~kU>@sd{u-^nA5SB^HA`7eX&jv3NS&iJy zul>y9#rbAPTl-hXo+&h0mu%51X8!;@S9sHLi-7p);(#)3+<))L<2+C_A-5ACW@HUSYNVu?UYD`I)>&i zTfWrDLa^7I-O}}{<`GHi%{ok#J)G>4(X1XX`)u$~KpN4lTw*P`1=9 zhkL<~zg#IbF5Jgm=ZS!ahV1j*a&+ad*1epAMnBrb@sLu~Kd+{1Sa_I~T=}l67m_@3 zN!pL;zfto%kZMVe+su6Qb;wS{9`R@Sz#`CZS--DczIbg8uGrMnRwwBcwbJ?RzO$$N z;rSW=0CyMTe8?I-{9{k^%t4X#{l$3iJV+AD{;%&`lz}5Zn3H^%HHIHKiS&P*BMAX! zi`ZLJF>$!QMXr$MV_DSi?Z&l?Z(m>Uw4{_o#(l?$k6!pq!!vOb9$^U)R@f+)nxY+?&5&1U$3 zQg`ieB)~sU6+QCHsUq8i##!FEAW(t;^36@(=Ujk@SMuN681v4O?&BVNobZ-tD${sp zQ;4H`Tyh*DYq*o8CO`9zw8DC;$(x5CSBYX1Qq7DfIL>rilM;g9Bn)C> z;*^V+fH}fI!`z+EZ`W{15mp4YhLg?oOVO!I13Rt*_dIIfG{HBY6xY?xb@?3$mGP%(=U(rJYB&xaI+B2 z%kPNli7U^3yN)&3tk8d+4bRKL0Qg7J^Vhs192J)oWxvlvPZ=PDXnttl_Ho1#m45Yp zyZrJ(t81k2HT$mlQBdfAopoFVmnvWIoyGa$60CRetUqp06P}BIAFuu9a!eTd%>8q! z;y5$?=j%G)f;sKQ<&zQT{NpDp=4h?{Ba9gI#eGe8$P9s#{_cL?90(lDS#yK!*Xno( z8@M$EY505K+Eka_*VE^Osz=(&yDP0ZH_vujR1guo&YZqDQcWhSPjAeXUdy$QjAQ)u z>xov1=Czf!$LAT~O^gzp&9xC4G52_^?5alR7wRZLMAr$ILYd5uWMQfEe27IdHnTQJ zUdwYO@rS4c6V&EWyMKIcS+GR*?eDE4&#eY+iz9^z})U_9`*VS>kCM9gk69td~ zWD|8RSO9^WNDp|_+%hF`1&A`DMaZP8sMd6Hxgf1egAcGj?-0b+s)&O8Mqrt$6O|An zYh;8G-|x2hA{$w~zUK4a30dYcc(EGsC(u$k8!%O9`W4q)vH=!$XC4ova9dVy;%b-r zc_NlmGbc=G`R;iM6K=^FGvSh}ZvaH*-lO!*{i_@hs+4qMJI*yL0RezoM!m0(S4^DlK*_2m~4jAq|vA0D`}vO^v(UD+@10?E$Y19*(N%|8#W6o6AYsQ& z6|qs(YNlb&t_4zwZoZgd-uvaEQ$K`BhOS)OTo*eSqYZ0X`*G9-7T$yp48f@R;t2zJ z?@ySC!*vtE5?Da!uu|tqH87FL8N+!MV{z_t9ZwwUc6E1hUIvD-EON_&1-vDIH#sEi zk&}>12}NLSOJ2y1yW>Lbfl@yay5HY{6p*xKfP^vcTE!fh3e$=lo&4yH@g%Rz*5doa z*<6UA3&4|@HQ!$ON>~F@z%F8}l!|D;;rh7a5KhUBY6P2z z${54}GR(}ScQXuma8lO@HV=;x>;2#wK25PQih{9TeFTDn0Au9D%>MwNekg?sYG4cQ zZ*?{Ez@6Duzj!Nm<2+E(Adku~+9T=7Zmh0t~j{V_oMS z7H5(YauN3f$?kb7ALdVw&EPpLpQphe>|dTvujt3b{{X*U3X%skF>XlBYyIP^`1XDx z9wkl)N!m4xQ|=d)5DD|+`uGMQx;yG4{i%-(_(ndL=J^;%02Npd<^|KG-k}$AjS}`Pl=NK$v&f%6i{{WZCQj5&@*9Ztwsy*LwyUw|n zD)!yYdWjAIsF<3}*NU%>Ofw--oJ$+|OmnIPLgcGT>#aH0C1+$vZVQ>s?Z$P(C)wOg zRYVu(?;N6Jfdm%VFyV#~?Pr7$s@<7F9K(jDVtFG*nHL2Jl9~Si-YV%vR^@3xTn;87 zcgYGs)ggW4C=$s#2yl)7%~ORV1$Q7p69bco0^>E9H2h~B@km-{etb)L{MP~lOw7#d zt<_z%ToMF&?9gc*Hs26Lryd*5dY@MuCOEtj3lj%RUO^uothSNxAbveK?A#=YFDUVj^O= z%1_n59wOaF-W_j^{blvGDs`QGo=Y}mA-Za7H7bI<1Zni$TUL^ zQ${MD1}G<{Ub05@tLqh1o4>!reRvfp+)h8f{2c=>;%N8y$=4EsVq)-Lo|5>=G3+9L zM*PP4X{74)Iq!aWuR-b)ykEJV_@Yeqx%T+P@>;IGogcqkXv!)z9}o6pt|*RdHC@a- z{Wv1Xrvy&3OV{hNoB*41AM?+Q@a#@0nr9Sz&Gqc+c&5I|tg_mzwtv+kzuW z{{Y!>zmzYM0IgY-)M$jSTuNlhyad2yFlUfhs*`t^NX8=FZgVk?b6o$#P*Yk`|GqBNz@$uz(GlD8Q@f$jCIN)tWXU~3o z{x)F*U>Vz-Vq;FHJ!C5}D~C_T_o%)gIFT?0?pT5rRh!YmK_*fY5fgE_ai#jN1da4Y zVk8n=rd{zuRkDd%x+JU^o(PClAKJ1N+|BlKFrgSjLp$)D@LRRvGgng%E9#LPbGO@x zeR1(I$udDk{@3@9lY=748YK*@el@Nmh`39a@%!*W96=GOtV8*G zio}&X3IR%F?KX@^gfVyE;F|$oA8#M{HNgQibf0gZhn58>F_vO3%>6gl6y3z0@e#Vl z4e}z+TGacG9{un`Y&4sG4?mC0A^`4OOHa?H`5XQQ412z=J@Sb`kdl64@%!Hhg0B0) zjQaO;JY{6fnd#2c1Y-U28cf8#rG6oC72CmpQ;b$(rlxaxocs`GSshEu_6^S*^U8MI!b5K9x)U1cbU;a+LaVX?etvJX9es*QBk%eu4v{^C1i}G&{ibyGspp8 z47KqFfboGgv_VCb%FeOWcs-nY5O39{2r1)tlY=l8cP^8nvPZ+oRdGFLD!#rrmVV^J z5%u52%$x{GQj~}L4Ps}{A0SjG)@14ko-v|BWngErUv<0VoFo+USAV}T!l;%Y@k@hW zKWZQsDxG`tUM4*pU`ihKXY0?)#ak@iajgDzXAwlGKR&*{UL|s-jDJsDE>tpNjAFxj zCp~l6+OkJ~p1txIjSlkBQy4Wk=XqIuQ4~HmJL3UCHy8aLKDyVj=p9*MMoJUQ*dN_Yf}{*HA__S7xdFF z(}-vSU~6Kxi1F@uKt=1Y?hhGZ*0?59V>2lE>*nXJfsje0KFZM!VsGb`lNB~m6(0dP z^Bl8E2EfUUN1VqfJpwd2d%*bfJczSpl_b!!h#@}WP4^@W^;M-V?RCX529Y_N)HCrH zd=`~ncW(7L@mu357a=*5b^O66AuQ@69#WZnSI!V|mX&R9za7txB4iL}7xWMW@_FMZ z6`#bFah$X3m4<9}g2}yJ{BjCMB6V!BUT*N`l&amj?3lUH8TG+{p0K1%j7*b6--(VR zB_k_IfnY>SEQB#U9;H(ky^L8Z%x?Hhig1aXnfvPY93crUUNhvMzce%%V%e8!%)?z} zp9@XwQxS$W0a=W^&ym$1b)7zCJG=zK<9~eKTgh znf1g7BbAAowi08^)_D{$wj3~xh5k>tObOAP)z|j@kV6cNW{rPG5YBSOB6R1~=ck!M zREU!PaQnTk`IvB$WgWqs`|k%Ap%Yb{5e6$!#2JCv6Q#}3MQ4Etgu=YR<&Xz|`IZ|$-;1=$Cv`1(bi>ROo=Ti=aC3}(m*Duj%B9$PQ3v%o{Q4&IlP0g7qmS+(e-#669hM z8X=fW%;32gQg|vyyf7g!vzBHEFn7wt=QMTy06U5E$%8UJD`!x8&lNEPO1(#ay83ZU ziX(1faP|6!9r1z`M>fv0=K(S1Ie?0gwvs086V~UcV39tz&~@Z@y`bbx`EzxL>GXIk z1Z1wsF}z|uY65Dbe$k#0Hk;w^*+g`6GrJ5Qzy%_!;kxqs-->pRRAt4k2xf=f18S zy>P5pim!ctJPedUjmLO?2~JQ zo+bg#PBB1$VrE+(S;6K_@kJ%fbb31n8aPIhHHKcl9b=Qhf^=Win9P&HYfMV4Tr)Ix zTMOc>47nERqaPI-^-2rH>JvWK=`-VyS|!KyDT?mzDKHd81>33}%_`B8wHW7;j@dA(kbqZxGdeuaiLt&J3pefAGf!NJ1FK4{y@v?Zzo_d){YJ z05tq?utHAUHvs zFCKy0Dh*3}>hj)ruAsHszojk-U!Ef}iI^(;CSstA^E{Dsw=(DMFfL@e1mKlK1Wr`I z?jVo0INWK3tL|3YvTAj{NTf+Hwq>0+6aN5tR$ySZo!m<~Vg0-rm>-IV-Dlfc;ate{ z0%{;D71Ohl-3o|r{qm3b#zr8D$Dl{)tQ=kya=G_mPOw*e8W@@)Xq?Q;`SHp~7}8Ej z`N8uy#sa96LXd=rmr_f%F%~6BAjV~ZBHLDy0@!Lpe(bQzEH?Y$Kul6w8kvr^q+7#| zZ60M?RnK0RjD`-p{-apGuN44QnZ*+Mn!l{;h*cvDwoKscypA{+qf9sYhcZaU_>*K( zoz7xr<1C$rKh^Ia_djPkI5>x6g&fDR$|gIV!y$YB%FG^>8QJ5UgB&ASW$PG~woztr zh>VP*6v+x1DO-~9y*=*xzW#>malNnWb-iBC*Y4^)U;g5= zB`Sx=rw&FN1x74wk3_}Et1$0be6fX?sMAH^@|KV z&g&;Q&0PG%-=921RQ<^5;ZsLpKlh%D@TzU)5la?B)b%aIx?fWsC@)9e5gKDdI^@5s z`4(Z&GCOb7`Kps2I-<0+u;4hLq;A%x&Kr402bZe$M|dbC!zWU;#M}|L@Z_V#gEnH) z4+UDl9m^LMlf;xJmx!6RzsLuu>bes{_WldUT-oL(&5Hmdt1dzXDvX|V}ho%-kaOKfn`a(t-WTxDCm6koR9z#*%yQ`*(1 z^A8F9$b+Jcf%=r%?_`p9Fn-DP+uSKZ;-a+J9oCbbmD5_47j%VNfkjCVSK;vKbnmzL z00J1?@!HsT*)@8B{sC+aN(``Wz17sC3EJl>joLVvg%5E1pM5X&DYpEHi2MP!__v)2 zlhg74UcOotuJiaH+N+VZU%L6gw?89J?XpWSEIo<$&ZupfHr(#!z}gqDZ}d#-O9S5{|DN4m7T{5{4YEU+ zs6*rb)swp1Jcn;S!K0#%W%sI7&WrcVq)}eM4YnCYC?2(hgisPKCty)-Sd|2o`_%K- z4+^=TfHml^z;Q9A3wLwP-~n-EZ!=eM>w8luMmI{0nR^AwF~P+gcK0dPUO?sCv9IhrAH) z0H7qX_e8pXSVtDkw%%_y&=k(^iHUm)&bGYY?vrX{a`}0;z= zi#V4zKaOd6UBQuVrD%G5vP(}(!zqHf6U?PGKbpQ+c;n3YJ0RDS@y}%VPg;ual5VRV zg;!=SW_!vSA=ZXjl}l5C>DBMunF5eP0vB#>_(6Fr7Y$j*DbT^aVGY$MxH9e`_^wX1 ze$|P3=$vwk{_euJD<2RM92;uy-?4_#g`n1FzNB71?=t8cn(XlxpLfgg6k9rTi0d*w z@!7!m$PKjK+#X2zyiOnmk>y<5HNn#=;**rh5(uex1{6|GCrOl&WfvjJ0l}|t-SB!7 z`XS^~bcF=;G^NWMayM$7q{r`;k(qg_3GynxU?IH>@jGY=QdR5QR7)w5x51jegNt2I zYn@5ULh!zW-c_`B5Pbp>Q8W@f3kcD+L%>u9t4`u3)4w>_3z8w|yd9aAiIxbq42-$4 z0*_}On}4mw?-)5938$WOKgklVE7@4dZg+40+(|Wm_bOs=Pmcs;KXNO5`2&^aR@izt zm{a-KIw#HWAsDflg(aOgPQ>FgPnR{>fG(AmPrnVU|Z1QP#U(7 zy?{sOdgmNXsKNSum!ApSa)=%buv*<(4N(qTuI4+3Cnb_Yf~7787o;@Mvi*+(+C**!kpFq{;-5%z_uhUV$FjF%Td@natA`rnTu$qCf!2 ze0%hMvS3v?zl1heKI9vQb?c*1l6fjnkXe2ujR!jI;{+|{9Qjz*0f-6IilMhf{8;-< zoFDxSmPh+p5mI1a9vY~XWrF85rmFuBy8m+cuHEi*6_A92kNP>!XHJzKS_yf)??~)q=X_-Skdtm zyCfya$md(m30SV_!P)bR-cIL}s=*n(RgzJ|Q#PHVO53G@qeKw8foqA@7N95jZgc&> z?4)dY;E1P1PWW!_i~DQK2r^UDMkh`c%c}f#POfXO0?3i-`u1XP(*}?@ow7c5G5JoN z(jW@W0FyN~j5i4x1(6*Zr~!ud+ZO7%?$1dzx9JtsxN3+n;YZ!C(T?H_mk}=5v&rJ+ ziUduu7Y38ktf*5qVdYE>I8?ha$6pW^{Smm)pUsLIlZsevrE2P4mV1SNZIFS^d?fly z3s9*7YJ~-wBXo+;k{GqxtR!$uFoucd!}

GqM;&H@RrCos- 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 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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�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