summaryrefslogtreecommitdiff
path: root/src/DisplayApp
diff options
context:
space:
mode:
Diffstat (limited to 'src/DisplayApp')
-rw-r--r--src/DisplayApp/DisplayApp.cpp45
-rw-r--r--src/DisplayApp/DisplayApp.h17
2 files changed, 26 insertions, 36 deletions
diff --git a/src/DisplayApp/DisplayApp.cpp b/src/DisplayApp/DisplayApp.cpp
index c1561cc2..8795416c 100644
--- a/src/DisplayApp/DisplayApp.cpp
+++ b/src/DisplayApp/DisplayApp.cpp
@@ -14,25 +14,20 @@
using namespace Pinetime::Applications;
-DisplayApp::DisplayApp(Controllers::Battery &batteryController,
+DisplayApp::DisplayApp(Pinetime::Drivers::St7789& lcd,
+ Pinetime::Components::Gfx& gfx,
+ Pinetime::Drivers::Cst816S& touchPanel,
+ Controllers::Battery &batteryController,
Controllers::Ble &bleController,
Controllers::DateTime &dateTimeController) :
- spi{Drivers::SpiMaster::SpiModule::SPI0, {
- Drivers::SpiMaster::BitOrder::Msb_Lsb,
- Drivers::SpiMaster::Modes::Mode3,
- Drivers::SpiMaster::Frequencies::Freq8Mhz,
- pinSpiSck,
- pinSpiMosi,
- pinSpiMiso,
- pinSpiCsn
- }},
- lcd{new Drivers::St7789(spi, pinLcdDataCommand)},
- gfx{new Components::Gfx(*lcd.get()) },
+ lcd{lcd},
+ gfx{gfx},
+ touchPanel{touchPanel},
batteryController{batteryController},
bleController{bleController},
dateTimeController{dateTimeController},
- clockScreen{*(gfx.get())},
- messageScreen{*(gfx.get())} {
+ clockScreen{gfx},
+ messageScreen{gfx} {
msgQueue = xQueueCreate(queueSize, itemSize);
currentScreen = &clockScreen;
}
@@ -59,22 +54,19 @@ void DisplayApp::InitHw() {
nrf_gpio_pin_clear(pinLcdBacklight2);
nrf_gpio_pin_clear(pinLcdBacklight3);
- spi.Init();
- gfx->Init();
currentScreen->Refresh(true);
- touchPanel.Init();
}
uint32_t acc = 0;
uint32_t count = 0;
bool toggle = true;
void DisplayApp::Refresh() {
-
+#if 0
uint32_t before = nrf_rtc_counter_get(portNRF_RTC_REG);
if(toggle) {
- gfx->FillRectangle(0,0,240,240,0x0000);
+ gfx.FillRectangle(0,0,240,240,0x0000);
} else {
- gfx->FillRectangle(0,0,240,240,0xffff);
+ gfx.FillRectangle(0,0,240,240,0xffff);
}
uint32_t after = nrf_rtc_counter_get(portNRF_RTC_REG);
@@ -85,8 +77,9 @@ void DisplayApp::Refresh() {
}
count++;
toggle = !toggle;
+#endif
-#if 0
+#if 1
TickType_t queueTimeout;
switch (state) {
case States::Idle:
@@ -108,16 +101,16 @@ void DisplayApp::Refresh() {
nrf_gpio_pin_set(pinLcdBacklight2);
vTaskDelay(100);
nrf_gpio_pin_set(pinLcdBacklight1);
- lcd->DisplayOff();
- lcd->Sleep();
+ lcd.DisplayOff();
+ lcd.Sleep();
touchPanel.Sleep();
state = States::Idle;
break;
case Messages::GoToRunning:
- lcd->Wakeup();
+ lcd.Wakeup();
touchPanel.Wakeup();
- lcd->DisplayOn();
+ lcd.DisplayOn();
nrf_gpio_pin_clear(pinLcdBacklight3);
nrf_gpio_pin_clear(pinLcdBacklight2);
nrf_gpio_pin_clear(pinLcdBacklight1);
@@ -179,7 +172,7 @@ void DisplayApp::OnTouchEvent() {
auto info = touchPanel.GetTouchInfo();
if(info.isTouch) {
- gfx->FillRectangle(info.x-10, info.y-10, 20,20, pointColor);
+ gfx.FillRectangle(info.x-10, info.y-10, 20,20, pointColor);
pointColor+=10;
}
}
diff --git a/src/DisplayApp/DisplayApp.h b/src/DisplayApp/DisplayApp.h
index eabfe099..04265426 100644
--- a/src/DisplayApp/DisplayApp.h
+++ b/src/DisplayApp/DisplayApp.h
@@ -23,7 +23,10 @@ namespace Pinetime {
public:
enum class States {Idle, Running};
enum class Messages : uint8_t {GoToSleep, GoToRunning, UpdateDateTime, UpdateBleConnection, UpdateBatteryLevel, TouchEvent} ;
- DisplayApp(Controllers::Battery &batteryController,
+ DisplayApp(Pinetime::Drivers::St7789& lcd,
+ Pinetime::Components::Gfx& gfx,
+ Pinetime::Drivers::Cst816S&,
+ Controllers::Battery &batteryController,
Controllers::Ble &bleController,
Controllers::DateTime& dateTimeController);
void Start();
@@ -33,9 +36,8 @@ namespace Pinetime {
TaskHandle_t taskHandle;
static void Process(void* instance);
void InitHw();
- Pinetime::Drivers::SpiMaster spi;
- std::unique_ptr<Drivers::St7789> lcd;
- std::unique_ptr<Components::Gfx> gfx;
+ Pinetime::Drivers::St7789& lcd;
+ Pinetime::Components::Gfx& gfx;
const FONT_INFO largeFont {lCD_70ptFontInfo.height, lCD_70ptFontInfo.startChar, lCD_70ptFontInfo.endChar, lCD_70ptFontInfo.spacePixels, lCD_70ptFontInfo.charInfo, lCD_70ptFontInfo.data};
const FONT_INFO smallFont {lCD_14ptFontInfo.height, lCD_14ptFontInfo.startChar, lCD_14ptFontInfo.endChar, lCD_14ptFontInfo.spacePixels, lCD_14ptFontInfo.charInfo, lCD_14ptFontInfo.data};
void Refresh();
@@ -52,18 +54,13 @@ namespace Pinetime {
Pinetime::Controllers::Ble &bleController;
Pinetime::Controllers::DateTime& dateTimeController;
- Pinetime::Drivers::Cst816S touchPanel;
+ Pinetime::Drivers::Cst816S& touchPanel;
void OnTouchEvent();
Screens::Clock clockScreen;
Screens::Screen* currentScreen = nullptr;
Screens::Message messageScreen;
bool screenState = false;
- static constexpr uint8_t pinSpiSck = 2;
- static constexpr uint8_t pinSpiMosi = 3;
- static constexpr uint8_t pinSpiMiso = 4;
- static constexpr uint8_t pinSpiCsn = 25;
- static constexpr uint8_t pinLcdDataCommand = 18;
static constexpr uint8_t pinLcdBacklight1 = 14;
static constexpr uint8_t pinLcdBacklight2 = 22;
static constexpr uint8_t pinLcdBacklight3 = 23;