Merge branch 'update_touch_driver' of git://github.com/Riksu9000/InfiniTime into Riksu9000-update_touch_driver

# Conflicts:
#	src/displayapp/Apps.h
This commit is contained in:
Jean-François Milants
2021-10-10 16:48:45 +02:00
12 changed files with 161 additions and 24 deletions

View File

@@ -0,0 +1,50 @@
#include "Error.h"
using namespace Pinetime::Applications::Screens;
namespace {
void ButtonEventCallback(lv_obj_t* obj, lv_event_t /*event*/) {
auto* errorScreen = static_cast<Error*>(obj->user_data);
errorScreen->ButtonEventHandler();
}
}
Error::Error(Pinetime::Applications::DisplayApp* app, System::BootErrors error)
: Screen(app) {
lv_obj_t* warningLabel = lv_label_create(lv_scr_act(), nullptr);
lv_obj_set_style_local_text_color(warningLabel, LV_LABEL_PART_MAIN, LV_STATE_DEFAULT, LV_COLOR_ORANGE);
lv_label_set_text_static(warningLabel, "Warning");
lv_obj_align(warningLabel, nullptr, LV_ALIGN_IN_TOP_MID, 0, 0);
lv_obj_t* causeLabel = lv_label_create(lv_scr_act(), nullptr);
lv_label_set_long_mode(causeLabel, LV_LABEL_LONG_BREAK);
lv_obj_set_width(causeLabel, LV_HOR_RES);
lv_obj_align(causeLabel, warningLabel, LV_ALIGN_OUT_BOTTOM_MID, 0, 0);
if (error == System::BootErrors::TouchController) {
lv_label_set_text_static(causeLabel, "Touch controller error detected.");
}
lv_obj_t* tipLabel = lv_label_create(lv_scr_act(), nullptr);
lv_label_set_long_mode(tipLabel, LV_LABEL_LONG_BREAK);
lv_obj_set_width(tipLabel, LV_HOR_RES);
lv_label_set_text_static(tipLabel, "If you encounter problems and your device is under warranty, contact the devices seller.");
lv_obj_align(tipLabel, causeLabel, LV_ALIGN_OUT_BOTTOM_MID, 0, 0);
btnOk = lv_btn_create(lv_scr_act(), nullptr);
btnOk->user_data = this;
lv_obj_set_event_cb(btnOk, ButtonEventCallback);
lv_obj_set_size(btnOk, LV_HOR_RES, 50);
lv_obj_align(btnOk, lv_scr_act(), LV_ALIGN_IN_BOTTOM_MID, 0, 0);
lv_obj_set_style_local_value_str(btnOk, LV_BTN_PART_MAIN, LV_STATE_DEFAULT, "Proceed");
lv_obj_set_style_local_bg_color(btnOk, LV_BTN_PART_MAIN, LV_STATE_DEFAULT, LV_COLOR_ORANGE);
}
void Error::ButtonEventHandler() {
running = false;
}
Error::~Error() {
lv_obj_clean(lv_scr_act());
}

View File

@@ -0,0 +1,21 @@
#pragma once
#include "Screen.h"
#include "BootErrors.h"
#include <lvgl/lvgl.h>
namespace Pinetime {
namespace Applications {
namespace Screens {
class Error : public Screen {
public:
Error(DisplayApp* app, System::BootErrors error);
~Error() override;
void ButtonEventHandler();
private:
lv_obj_t* btnOk;
};
}
}
}

View File

@@ -33,7 +33,8 @@ SystemInfo::SystemInfo(Pinetime::Applications::DisplayApp* app,
Pinetime::Controllers::BrightnessController& brightnessController,
Pinetime::Controllers::Ble& bleController,
Pinetime::Drivers::WatchdogView& watchdog,
Pinetime::Controllers::MotionController& motionController)
Pinetime::Controllers::MotionController& motionController,
Pinetime::Drivers::Cst816S& touchPanel)
: Screen(app),
dateTimeController {dateTimeController},
batteryController {batteryController},
@@ -41,6 +42,7 @@ SystemInfo::SystemInfo(Pinetime::Applications::DisplayApp* app,
bleController {bleController},
watchdog {watchdog},
motionController{motionController},
touchPanel{touchPanel},
screens {app,
0,
{[this]() -> std::unique_ptr<Screen> {
@@ -141,7 +143,8 @@ std::unique_ptr<Screen> SystemInfo::CreateScreen2() {
"#444444 Battery# %d%%/%03imV\n"
"#444444 Backlight# %s\n"
"#444444 Last reset# %s\n"
"#444444 Accel.# %s\n",
"#444444 Accel.# %s\n"
"#444444 Touch.# %x.%x.%x\n",
dateTimeController.Day(),
static_cast<uint8_t>(dateTimeController.Month()),
dateTimeController.Year(),
@@ -156,7 +159,10 @@ std::unique_ptr<Screen> SystemInfo::CreateScreen2() {
batteryController.Voltage(),
brightnessController.ToString(),
resetReason,
ToString(motionController.DeviceType()));
ToString(motionController.DeviceType()),
touchPanel.GetChipId(),
touchPanel.GetVendorId(),
touchPanel.GetFwVersion());
lv_obj_align(label, lv_scr_act(), LV_ALIGN_CENTER, 0, 0);
return std::make_unique<Screens::Label>(1, 5, app, label);
}

View File

@@ -28,7 +28,8 @@ namespace Pinetime {
Pinetime::Controllers::BrightnessController& brightnessController,
Pinetime::Controllers::Ble& bleController,
Pinetime::Drivers::WatchdogView& watchdog,
Pinetime::Controllers::MotionController& motionController);
Pinetime::Controllers::MotionController& motionController,
Pinetime::Drivers::Cst816S& touchPanel);
~SystemInfo() override;
bool OnTouchEvent(TouchEvents event) override;
@@ -39,6 +40,7 @@ namespace Pinetime {
Pinetime::Controllers::Ble& bleController;
Pinetime::Drivers::WatchdogView& watchdog;
Pinetime::Controllers::MotionController& motionController;
Pinetime::Drivers::Cst816S& touchPanel;
ScreenList<5> screens;