diff --git a/AZURE_RTOS/App/app_azure_rtos.c b/AZURE_RTOS/App/app_azure_rtos.c index 4be4c52..9be75ba 100644 --- a/AZURE_RTOS/App/app_azure_rtos.c +++ b/AZURE_RTOS/App/app_azure_rtos.c @@ -64,7 +64,7 @@ static TX_BYTE_POOL tx_app_byte_pool; /* USER CODE BEGIN PV */ TX_THREAD app_thread; TX_THREAD ui_thread; -TX_QUEUE ui_queue; +TX_QUEUE gui_button_queue; /* USER CODE END PV */ /* Private function prototypes -----------------------------------------------*/ @@ -159,12 +159,13 @@ VOID tx_application_define(VOID *first_unused_memory) { } void *ui_queue_start = mem; - ULONG ui_queue_msg_size = sizeof(UIMessage) / sizeof(ULONG); - if (ui_queue_msg_size % sizeof(ULONG) != 0) { + ULONG ui_queue_msg_size = sizeof(ButtonMessage) / sizeof(ULONG); + if (sizeof(ButtonMessage) % sizeof(ULONG) != 0) { ui_queue_msg_size++; } mem += UI_QUEUE_SIZE * ui_queue_msg_size; - if (tx_queue_create(&ui_queue, "UI Queue", ui_queue_msg_size, ui_queue_start, + if (tx_queue_create(&gui_button_queue, "UI Queue", ui_queue_msg_size, + ui_queue_start, UI_QUEUE_SIZE * ui_queue_msg_size) != TX_SUCCESS) { Error_Handler(); } diff --git a/Core/Inc/STWButtonController.hpp b/Core/Inc/STWButtonController.hpp new file mode 100644 index 0000000..563aecc --- /dev/null +++ b/Core/Inc/STWButtonController.hpp @@ -0,0 +1,24 @@ +#ifndef __INC_STW_BUTTON_CONTROLLER_HPP +#define __INC_STW_BUTTON_CONTROLLER_HPP + +#include "platform/driver/button/ButtonController.hpp" +#include + +constexpr uint8_t KEY_BTN1 = 1; +constexpr uint8_t KEY_BTN2 = 2; +constexpr uint8_t KEY_BTN3 = 3; +constexpr uint8_t KEY_BTN4 = 4; +constexpr uint8_t KEY_BTN5 = 5; +constexpr uint8_t KEY_BTN6 = 6; +constexpr uint8_t KEY_ENC1_CW = 21; +constexpr uint8_t KEY_ENC1_CCW = 22; +constexpr uint8_t KEY_ENC2_CW = 23; +constexpr uint8_t KEY_ENC2_CCW = 24; + +class STWButtonController : public touchgfx::ButtonController { +public: + virtual void init(); + virtual bool sample(uint8_t &key); +}; + +#endif // __INC_STW_BUTTON_CONTROLLER_HPP diff --git a/Core/Inc/main.h b/Core/Inc/main.h index 6548fe1..281e3a0 100644 --- a/Core/Inc/main.h +++ b/Core/Inc/main.h @@ -42,7 +42,7 @@ extern "C" { /* Exported constants --------------------------------------------------------*/ /* USER CODE BEGIN EC */ extern volatile int ltdc_cb_triggered; -extern TX_QUEUE ui_queue; +extern TX_QUEUE gui_button_queue; /* USER CODE END EC */ /* Exported macro ------------------------------------------------------------*/ @@ -62,16 +62,12 @@ void Error_Handler(void); /* Private defines -----------------------------------------------------------*/ #define ENC1A_Pin GPIO_PIN_3 #define ENC1A_GPIO_Port GPIOE -#define ENC1A_EXTI_IRQn EXTI3_IRQn #define ENC1B_Pin GPIO_PIN_4 #define ENC1B_GPIO_Port GPIOE -#define ENC1B_EXTI_IRQn EXTI4_IRQn #define ENC2A_Pin GPIO_PIN_5 #define ENC2A_GPIO_Port GPIOE -#define ENC2A_EXTI_IRQn EXTI9_5_IRQn #define ENC2B_Pin GPIO_PIN_6 #define ENC2B_GPIO_Port GPIOE -#define ENC2B_EXTI_IRQn EXTI9_5_IRQn #define BTN1_Pin GPIO_PIN_0 #define BTN1_GPIO_Port GPIOF #define BTN2_Pin GPIO_PIN_1 diff --git a/Core/Inc/ui.h b/Core/Inc/ui.h index 85566d7..8caff04 100644 --- a/Core/Inc/ui.h +++ b/Core/Inc/ui.h @@ -12,12 +12,12 @@ extern "C" { #define BUTTON_MIN_PRESS_TIME 50 // ms #define ENC_MAX_PHASE 50 // ms -typedef enum { UMK_BTN_RELEASED, UMK_ENC_CW, UMK_ENC_CCW } UIMessageKind; +typedef enum { UMK_BTN_RELEASED, UMK_ENC_CW, UMK_ENC_CCW } ButtonMessageKind; typedef struct { - UIMessageKind kind; + ButtonMessageKind kind; int number; -} UIMessage; +} ButtonMessage; void ui_thread_entry(ULONG _); diff --git a/Core/Src/STWButtonController.cpp b/Core/Src/STWButtonController.cpp new file mode 100644 index 0000000..aa974cc --- /dev/null +++ b/Core/Src/STWButtonController.cpp @@ -0,0 +1,36 @@ +#include "STWButtonController.hpp" + +#include "main.h" +#include "tx_api.h" +#include "ui.h" + +void STWButtonController::init() {} + +bool STWButtonController::sample(uint8_t &key) { + ButtonMessage msg; + if (tx_queue_receive(&gui_button_queue, &msg, TX_NO_WAIT) == TX_SUCCESS) { + switch (msg.kind) { + case UMK_BTN_RELEASED: + key = KEY_BTN1 + msg.number; + break; + case UMK_ENC_CW: { + if (msg.number == 0) { + key = KEY_ENC1_CW; + } else { + key = KEY_ENC2_CW; + } + break; + } + case UMK_ENC_CCW: + if (msg.number == 0) { + key = KEY_ENC1_CCW; + } else { + key = KEY_ENC2_CCW; + } + } + HAL_GPIO_TogglePin(STATUS2_GPIO_Port, STATUS2_Pin); + return true; + } + + return false; +} diff --git a/Core/Src/ui.c b/Core/Src/ui.c index 39d34c7..21f3aec 100644 --- a/Core/Src/ui.c +++ b/Core/Src/ui.c @@ -25,8 +25,8 @@ void ui_thread_entry(ULONG _) { uint32_t now = HAL_GetTick(); if (state == GPIO_PIN_RESET && now - button_change_times[i]) { // Button release event! - UIMessage msg = {.kind = UMK_BTN_RELEASED, .number = i}; - tx_queue_send(&ui_queue, &msg, TX_NO_WAIT); + ButtonMessage msg = {.kind = UMK_BTN_RELEASED, .number = i}; + tx_queue_send(&gui_button_queue, &msg, TX_NO_WAIT); } button_change_times[i] = now; button_states[i] = state; @@ -52,7 +52,7 @@ void HAL_GPIO_EXTI_Callback(uint16_t GPIO_Pin) { uint16_t pin_a, pin_b; int idx_a, idx_b; - UIMessage msg; + ButtonMessage msg; if (GPIO_Pin == ENC1A_Pin || GPIO_Pin == ENC1B_Pin) { pin_a = ENC1A_Pin; pin_b = ENC1B_Pin; @@ -92,6 +92,6 @@ void HAL_GPIO_EXTI_Callback(uint16_t GPIO_Pin) { // This shouldn't happen. Ignore this event. return; } - tx_queue_send(&ui_queue, &msg, TX_NO_WAIT); + tx_queue_send(&gui_button_queue, &msg, TX_NO_WAIT); } } diff --git a/STM32Make.make b/STM32Make.make index 0a0f2ac..76766e9 100644 --- a/STM32Make.make +++ b/STM32Make.make @@ -234,6 +234,7 @@ Utilities/JPEG/jpeg_utils.c CPP_SOURCES = \ +Core/Src/STWButtonController.cpp \ TouchGFX/Middlewares/ST/touchgfx/framework/source/touchgfx/containers/CacheableContainer.cpp \ TouchGFX/Middlewares/ST/touchgfx/framework/source/touchgfx/containers/Container.cpp \ TouchGFX/Middlewares/ST/touchgfx/framework/source/touchgfx/containers/ListLayout.cpp \ diff --git a/TouchGFX/generated/gui_generated/include/gui_generated/missionselect_screen/MissionSelectViewBase.hpp b/TouchGFX/generated/gui_generated/include/gui_generated/missionselect_screen/MissionSelectViewBase.hpp index 9ee056f..a72f674 100644 --- a/TouchGFX/generated/gui_generated/include/gui_generated/missionselect_screen/MissionSelectViewBase.hpp +++ b/TouchGFX/generated/gui_generated/include/gui_generated/missionselect_screen/MissionSelectViewBase.hpp @@ -21,6 +21,19 @@ public: MissionSelectViewBase(); virtual ~MissionSelectViewBase(); virtual void setupScreen(); + virtual void handleKeyEvent(uint8_t key); + + /* + * Virtual Action Handlers + */ + virtual void incMission() + { + // Override and implement this function in MissionSelect + } + virtual void decMission() + { + // Override and implement this function in MissionSelect + } protected: FrontendApplication& application() { diff --git a/TouchGFX/generated/gui_generated/src/missionselect_screen/MissionSelectViewBase.cpp b/TouchGFX/generated/gui_generated/src/missionselect_screen/MissionSelectViewBase.cpp index c9236c5..fe6d13c 100644 --- a/TouchGFX/generated/gui_generated/src/missionselect_screen/MissionSelectViewBase.cpp +++ b/TouchGFX/generated/gui_generated/src/missionselect_screen/MissionSelectViewBase.cpp @@ -69,3 +69,24 @@ void MissionSelectViewBase::setupScreen() inspection.initialize(); manual.initialize(); } + +void MissionSelectViewBase::handleKeyEvent(uint8_t key) +{ + if(23 == key) + { + //SelectNextMission + //When hardware button 23 clicked call virtual function + //Call incMission + incMission(); + + } + + if(24 == key) + { + //SelectPrevMission + //When hardware button 24 clicked call virtual function + //Call decMission + decMission(); + + } +} diff --git a/TouchGFX/gui/include/gui/missionselect_screen/MissionSelectPresenter.hpp b/TouchGFX/gui/include/gui/missionselect_screen/MissionSelectPresenter.hpp index 094edf1..8872168 100644 --- a/TouchGFX/gui/include/gui/missionselect_screen/MissionSelectPresenter.hpp +++ b/TouchGFX/gui/include/gui/missionselect_screen/MissionSelectPresenter.hpp @@ -28,8 +28,6 @@ public: virtual ~MissionSelectPresenter(){}; - virtual void notifyMissionChanged(Mission mission) override; - private: MissionSelectPresenter(); diff --git a/TouchGFX/gui/include/gui/missionselect_screen/MissionSelectView.hpp b/TouchGFX/gui/include/gui/missionselect_screen/MissionSelectView.hpp index c168ee1..23a21ff 100644 --- a/TouchGFX/gui/include/gui/missionselect_screen/MissionSelectView.hpp +++ b/TouchGFX/gui/include/gui/missionselect_screen/MissionSelectView.hpp @@ -14,9 +14,13 @@ public: void setSelectedMission(Mission mission); + virtual void incMission(); + virtual void decMission(); + protected: private: MissionSelectElement *selected; + Mission selectedMission; }; #endif // MISSIONSELECTVIEW_HPP diff --git a/TouchGFX/gui/include/gui/model/Model.hpp b/TouchGFX/gui/include/gui/model/Model.hpp index 9bf14fe..85d97b6 100644 --- a/TouchGFX/gui/include/gui/model/Model.hpp +++ b/TouchGFX/gui/include/gui/model/Model.hpp @@ -12,13 +12,8 @@ public: void tick(); - Mission getCurrentMission() const { return mission; } - protected: ModelListener *modelListener; - -private: - Mission mission; }; #endif // MODEL_HPP diff --git a/TouchGFX/gui/include/gui/model/ModelListener.hpp b/TouchGFX/gui/include/gui/model/ModelListener.hpp index c039aca..c1176ed 100644 --- a/TouchGFX/gui/include/gui/model/ModelListener.hpp +++ b/TouchGFX/gui/include/gui/model/ModelListener.hpp @@ -13,8 +13,6 @@ public: void bind(Model *m) { model = m; } - virtual void notifyMissionChanged(Mission newMission){}; - protected: Model *model; }; diff --git a/TouchGFX/gui/src/containers/MissionSelectElement.cpp b/TouchGFX/gui/src/containers/MissionSelectElement.cpp index 331c8b4..e12660c 100644 --- a/TouchGFX/gui/src/containers/MissionSelectElement.cpp +++ b/TouchGFX/gui/src/containers/MissionSelectElement.cpp @@ -11,9 +11,9 @@ void MissionSelectElement::initialize() { void MissionSelectElement::setUp(uint32_t i, TEXTS label) { uint8_t val; if (i % 2 == 0) { - val = 0b10000; + val = 0x22; } else { - val = 0b11000; + val = 0x11; } bgColor = touchgfx::Color::getColorFromRGB(val, val, val); bg.setColor(bgColor); diff --git a/TouchGFX/gui/src/missionselect_screen/MissionSelectPresenter.cpp b/TouchGFX/gui/src/missionselect_screen/MissionSelectPresenter.cpp index a3562dd..a462024 100644 --- a/TouchGFX/gui/src/missionselect_screen/MissionSelectPresenter.cpp +++ b/TouchGFX/gui/src/missionselect_screen/MissionSelectPresenter.cpp @@ -7,7 +7,3 @@ MissionSelectPresenter::MissionSelectPresenter(MissionSelectView &v) void MissionSelectPresenter::activate() {} void MissionSelectPresenter::deactivate() {} - -void MissionSelectPresenter::notifyMissionChanged(Mission mission) { - view.setSelectedMission(mission); -} diff --git a/TouchGFX/gui/src/missionselect_screen/MissionSelectView.cpp b/TouchGFX/gui/src/missionselect_screen/MissionSelectView.cpp index eab896a..2d93342 100644 --- a/TouchGFX/gui/src/missionselect_screen/MissionSelectView.cpp +++ b/TouchGFX/gui/src/missionselect_screen/MissionSelectView.cpp @@ -1,7 +1,9 @@ +#include "stw_defines.h" #include "texts/TextKeysAndLanguages.hpp" #include -MissionSelectView::MissionSelectView() : selected{nullptr} {} +MissionSelectView::MissionSelectView() + : selected{nullptr}, selectedMission{MISSION_NONE} {} void MissionSelectView::setupScreen() { MissionSelectViewBase::setupScreen(); @@ -10,14 +12,38 @@ void MissionSelectView::setupScreen() { autox.setUp(2, T_AUTOX); trackdrive.setUp(3, T_TRACKDRIVE); ebs.setUp(4, T_EBS); - inspection.setUp(6, T_INSPECTION); - manual.setUp(7, T_MANUAL); + inspection.setUp(5, T_INSPECTION); + manual.setUp(6, T_MANUAL); } void MissionSelectView::tearDownScreen() { MissionSelectViewBase::tearDownScreen(); } +void MissionSelectView::incMission() { + int mission_int = static_cast(selectedMission); + mission_int++; + // mission_int = 0 is MISSION_NONE, which we don't want to select. + // NUM_MISSIONS is equal to the last mission, so check for strictly + // greater. + if (mission_int > NUM_MISSIONS) { + mission_int = 1; + } + setSelectedMission(static_cast(mission_int)); +} + +void MissionSelectView::decMission() { + int mission_int = static_cast(selectedMission); + mission_int--; + // mission_int = 0 is MISSION_NONE, which we don't want to select. + // NUM_MISSIONS is equal to the last mission, so check for strictly + // greater. + if (mission_int <= 0) { + mission_int = NUM_MISSIONS; + } + setSelectedMission(static_cast(mission_int)); +} + void MissionSelectView::setSelectedMission(Mission mission) { if (selected != nullptr) { selected->setSelected(false); @@ -49,4 +75,5 @@ void MissionSelectView::setSelectedMission(Mission mission) { break; } selected->setSelected(true); + selectedMission = mission; } diff --git a/TouchGFX/gui/src/model/Model.cpp b/TouchGFX/gui/src/model/Model.cpp index 98f42a5..9cc0eb1 100644 --- a/TouchGFX/gui/src/model/Model.cpp +++ b/TouchGFX/gui/src/model/Model.cpp @@ -6,38 +6,6 @@ #include #include -Model::Model() : modelListener(0), mission{MISSION_NONE} {} +Model::Model() : modelListener(0) {} -void Model::tick() { - UIMessage msg; - while (tx_queue_receive(&ui_queue, &msg, TX_NO_WAIT) == TX_SUCCESS) { - switch (msg.kind) { - case UMK_BTN_RELEASED: - // TODO: What do we do with this? - break; - case UMK_ENC_CW: { - int mission_int = static_cast(mission); - mission_int++; - // mission_int = 0 is MISSION_NONE, which we don't want to select. - // NUM_MISSIONS is equal to the last mission, so check for strictly - // greater. - if (mission_int > NUM_MISSIONS) { - mission_int = 1; - } - mission = static_cast(mission_int); - modelListener->notifyMissionChanged(mission); - break; - } - case UMK_ENC_CCW: - int mission_int = static_cast(mission); - mission_int--; - if (mission_int <= 0) { - mission_int = NUM_MISSIONS; - } - mission = static_cast(mission_int); - modelListener->notifyMissionChanged(mission); - break; - } - HAL_GPIO_TogglePin(STATUS2_GPIO_Port, STATUS2_Pin); - } -} +void Model::tick() {} diff --git a/TouchGFX/steering-wheel.touchgfx b/TouchGFX/steering-wheel.touchgfx index 5d80511..9cde3ea 100644 --- a/TouchGFX/steering-wheel.touchgfx +++ b/TouchGFX/steering-wheel.touchgfx @@ -110,7 +110,30 @@ "RelativeFilename": "logo_dv_small_white.png" } ], - "Interactions": [] + "Interactions": [ + { + "InteractionName": "SelectNextMission", + "Trigger": { + "Type": "TriggerPhysicalButtonClicked", + "ButtonKey": 23 + }, + "Action": { + "Type": "ActionCustom", + "FunctionName": "incMission" + } + }, + { + "InteractionName": "SelectPrevMission", + "Trigger": { + "Type": "TriggerPhysicalButtonClicked", + "ButtonKey": 24 + }, + "Action": { + "Type": "ActionCustom", + "FunctionName": "decMission" + } + } + ] } ], "CustomContainerDefinitions": [ diff --git a/TouchGFX/target/TouchGFXHAL.cpp b/TouchGFX/target/TouchGFXHAL.cpp index fff4d1c..759906c 100644 --- a/TouchGFX/target/TouchGFXHAL.cpp +++ b/TouchGFX/target/TouchGFXHAL.cpp @@ -1,40 +1,42 @@ /* USER CODE BEGIN Header */ /** - ****************************************************************************** - * File Name : TouchGFXHAL.cpp - ****************************************************************************** - * This file was created by TouchGFX Generator 4.21.1. This file is only - * generated once! Delete this file from your project and re-generate code - * using STM32CubeMX or change this file manually to update it. - ****************************************************************************** - * @attention - * - * Copyright (c) 2023 STMicroelectronics. - * All rights reserved. - * - * This software is licensed under terms that can be found in the LICENSE file - * in the root directory of this software component. - * If no LICENSE file comes with this software, it is provided AS-IS. - * - ****************************************************************************** - */ + ****************************************************************************** + * File Name : TouchGFXHAL.cpp + ****************************************************************************** + * This file was created by TouchGFX Generator 4.21.1. This file is only + * generated once! Delete this file from your project and re-generate code + * using STM32CubeMX or change this file manually to update it. + ****************************************************************************** + * @attention + * + * Copyright (c) 2023 STMicroelectronics. + * All rights reserved. + * + * This software is licensed under terms that can be found in the LICENSE file + * in the root directory of this software component. + * If no LICENSE file comes with this software, it is provided AS-IS. + * + ****************************************************************************** + */ /* USER CODE END Header */ #include /* USER CODE BEGIN TouchGFXHAL.cpp */ +#include "STWButtonController.hpp" +STWButtonController stwBC; using namespace touchgfx; -void TouchGFXHAL::initialize() -{ - // Calling parent implementation of initialize(). - // - // To overwrite the generated implementation, omit call to parent function - // and implemented needed functionality here. - // Please note, HAL::initialize() must be called to initialize the framework. +void TouchGFXHAL::initialize() { + // Calling parent implementation of initialize(). + // + // To overwrite the generated implementation, omit call to parent function + // and implemented needed functionality here. + // Please note, HAL::initialize() must be called to initialize the framework. - TouchGFXGeneratedHAL::initialize(); + TouchGFXGeneratedHAL::initialize(); + setButtonController(&stwBC); } /** @@ -42,14 +44,13 @@ void TouchGFXHAL::initialize() * * @return The address of the frame buffer currently being displayed on the TFT. */ -uint16_t* TouchGFXHAL::getTFTFrameBuffer() const -{ - // Calling parent implementation of getTFTFrameBuffer(). - // - // To overwrite the generated implementation, omit call to parent function - // and implemented needed functionality here. +uint16_t *TouchGFXHAL::getTFTFrameBuffer() const { + // Calling parent implementation of getTFTFrameBuffer(). + // + // To overwrite the generated implementation, omit call to parent function + // and implemented needed functionality here. - return TouchGFXGeneratedHAL::getTFTFrameBuffer(); + return TouchGFXGeneratedHAL::getTFTFrameBuffer(); } /** @@ -57,106 +58,96 @@ uint16_t* TouchGFXHAL::getTFTFrameBuffer() const * * @param [in] address New frame buffer address. */ -void TouchGFXHAL::setTFTFrameBuffer(uint16_t* address) -{ - // Calling parent implementation of setTFTFrameBuffer(uint16_t* address). - // - // To overwrite the generated implementation, omit call to parent function - // and implemented needed functionality here. +void TouchGFXHAL::setTFTFrameBuffer(uint16_t *address) { + // Calling parent implementation of setTFTFrameBuffer(uint16_t* address). + // + // To overwrite the generated implementation, omit call to parent function + // and implemented needed functionality here. - TouchGFXGeneratedHAL::setTFTFrameBuffer(address); + TouchGFXGeneratedHAL::setTFTFrameBuffer(address); } /** * This function is called whenever the framework has performed a partial draw. * - * @param rect The area of the screen that has been drawn, expressed in absolute coordinates. + * @param rect The area of the screen that has been drawn, expressed in absolute + * coordinates. * * @see flushFrameBuffer(). */ -void TouchGFXHAL::flushFrameBuffer(const touchgfx::Rect& rect) -{ - // Calling parent implementation of flushFrameBuffer(const touchgfx::Rect& rect). - // - // To overwrite the generated implementation, omit call to parent function - // and implemented needed functionality here. - // Please note, HAL::flushFrameBuffer(const touchgfx::Rect& rect) must - // be called to notify the touchgfx framework that flush has been performed. - // To calculate he start adress of rect, - // use advanceFrameBufferToRect(uint8_t* fbPtr, const touchgfx::Rect& rect) - // defined in TouchGFXGeneratedHAL.cpp +void TouchGFXHAL::flushFrameBuffer(const touchgfx::Rect &rect) { + // Calling parent implementation of flushFrameBuffer(const touchgfx::Rect& + // rect). + // + // To overwrite the generated implementation, omit call to parent function + // and implemented needed functionality here. + // Please note, HAL::flushFrameBuffer(const touchgfx::Rect& rect) must + // be called to notify the touchgfx framework that flush has been performed. + // To calculate he start adress of rect, + // use advanceFrameBufferToRect(uint8_t* fbPtr, const touchgfx::Rect& rect) + // defined in TouchGFXGeneratedHAL.cpp - TouchGFXGeneratedHAL::flushFrameBuffer(rect); + TouchGFXGeneratedHAL::flushFrameBuffer(rect); } -bool TouchGFXHAL::blockCopy(void* RESTRICT dest, const void* RESTRICT src, uint32_t numBytes) -{ - return TouchGFXGeneratedHAL::blockCopy(dest, src, numBytes); +bool TouchGFXHAL::blockCopy(void *RESTRICT dest, const void *RESTRICT src, + uint32_t numBytes) { + return TouchGFXGeneratedHAL::blockCopy(dest, src, numBytes); } /** - * Configures the interrupts relevant for TouchGFX. This primarily entails setting - * the interrupt priorities for the DMA and LCD interrupts. + * Configures the interrupts relevant for TouchGFX. This primarily entails + * setting the interrupt priorities for the DMA and LCD interrupts. */ -void TouchGFXHAL::configureInterrupts() -{ - // Calling parent implementation of configureInterrupts(). - // - // To overwrite the generated implementation, omit call to parent function - // and implemented needed functionality here. +void TouchGFXHAL::configureInterrupts() { + // Calling parent implementation of configureInterrupts(). + // + // To overwrite the generated implementation, omit call to parent function + // and implemented needed functionality here. - TouchGFXGeneratedHAL::configureInterrupts(); + TouchGFXGeneratedHAL::configureInterrupts(); } /** * Used for enabling interrupts set in configureInterrupts() */ -void TouchGFXHAL::enableInterrupts() -{ - // Calling parent implementation of enableInterrupts(). - // - // To overwrite the generated implementation, omit call to parent function - // and implemented needed functionality here. +void TouchGFXHAL::enableInterrupts() { + // Calling parent implementation of enableInterrupts(). + // + // To overwrite the generated implementation, omit call to parent function + // and implemented needed functionality here. - TouchGFXGeneratedHAL::enableInterrupts(); + TouchGFXGeneratedHAL::enableInterrupts(); } /** * Used for disabling interrupts set in configureInterrupts() */ -void TouchGFXHAL::disableInterrupts() -{ - // Calling parent implementation of disableInterrupts(). - // - // To overwrite the generated implementation, omit call to parent function - // and implemented needed functionality here. +void TouchGFXHAL::disableInterrupts() { + // Calling parent implementation of disableInterrupts(). + // + // To overwrite the generated implementation, omit call to parent function + // and implemented needed functionality here. - TouchGFXGeneratedHAL::disableInterrupts(); + TouchGFXGeneratedHAL::disableInterrupts(); } /** - * Configure the LCD controller to fire interrupts at VSYNC. Called automatically - * once TouchGFX initialization has completed. + * Configure the LCD controller to fire interrupts at VSYNC. Called + * automatically once TouchGFX initialization has completed. */ -void TouchGFXHAL::enableLCDControllerInterrupt() -{ - // Calling parent implementation of enableLCDControllerInterrupt(). - // - // To overwrite the generated implementation, omit call to parent function - // and implemented needed functionality here. +void TouchGFXHAL::enableLCDControllerInterrupt() { + // Calling parent implementation of enableLCDControllerInterrupt(). + // + // To overwrite the generated implementation, omit call to parent function + // and implemented needed functionality here. - TouchGFXGeneratedHAL::enableLCDControllerInterrupt(); + TouchGFXGeneratedHAL::enableLCDControllerInterrupt(); } -bool TouchGFXHAL::beginFrame() -{ - return TouchGFXGeneratedHAL::beginFrame(); -} +bool TouchGFXHAL::beginFrame() { return TouchGFXGeneratedHAL::beginFrame(); } -void TouchGFXHAL::endFrame() -{ - TouchGFXGeneratedHAL::endFrame(); -} +void TouchGFXHAL::endFrame() { TouchGFXGeneratedHAL::endFrame(); } /* USER CODE END TouchGFXHAL.cpp */