From 281c4dfe73eafa395c85977dc30cb63110baaccb Mon Sep 17 00:00:00 2001 From: Fancy code <258828110.@qq.com> Date: Thu, 6 Jun 2024 22:57:48 +0800 Subject: [PATCH] Improve:Led Hal code. --- hal/CMakeLists.txt | 3 ++- hal/include/IHalCpp.h | 1 - hal/src/HalCpp.cpp | 34 ++++++++++++---------------- hal/src/HalCpp.h | 7 +++--- hal/src/HalMakePtr.cpp | 7 +++++- hal/src/HalMakePtr.h | 4 +++- test/hal/tool/src/HalMakePtrTest.cpp | 4 ++-- test/hal/tool/src/HalMakePtrTest.h | 2 +- 8 files changed, 32 insertions(+), 30 deletions(-) diff --git a/hal/CMakeLists.txt b/hal/CMakeLists.txt index 87358f33..a299a953 100644 --- a/hal/CMakeLists.txt +++ b/hal/CMakeLists.txt @@ -12,6 +12,7 @@ include_directories( ${UTILS_SOURCE_PATH}/Log/include ${UTILS_SOURCE_PATH}/LinuxApi/include ${UTILS_SOURCE_PATH}/KeyControl/include + ${UTILS_SOURCE_PATH}/LedControl/include ) #do not rely on any other library # link_directories( @@ -24,7 +25,7 @@ aux_source_directory(./src IMPL_SRC_FILES) set(ABSTRACT_TARGET HalAbstract) set(IMPL_TARGET Hal) add_library(${ABSTRACT_TARGET} STATIC ${ABSTRACT_SRC_FILES}) -target_link_libraries(${ABSTRACT_TARGET} LinuxApi KeyControl StatusCode Log) +target_link_libraries(${ABSTRACT_TARGET} LinuxApi KeyControl LedControl StatusCode Log) add_library(${IMPL_TARGET} STATIC ${IMPL_SRC_FILES}) target_link_libraries(${IMPL_TARGET} ${ABSTRACT_TARGET}) diff --git a/hal/include/IHalCpp.h b/hal/include/IHalCpp.h index fab89b6c..42e421b0 100644 --- a/hal/include/IHalCpp.h +++ b/hal/include/IHalCpp.h @@ -70,7 +70,6 @@ public: virtual void CheckKeyStatus(void); virtual void GetHoldPressingTimeMs(long int &holdTimeMs, VirtualKeyEvent &event); virtual void SetKeyMonitor(std::shared_ptr &monitor); - // virtual std::string GetKeyHalName(void); }; class VLedHal { diff --git a/hal/src/HalCpp.cpp b/hal/src/HalCpp.cpp index 088387f2..b9875e3e 100644 --- a/hal/src/HalCpp.cpp +++ b/hal/src/HalCpp.cpp @@ -30,12 +30,8 @@ StatusCode HalCpp::Init(void) if (nullptr != sdCardImpl) { sdCardImpl->Init(); } - HalMakePtr::GetInstance()->CreateAllKeyHal(mKeys); - // auto checkPinValue = [](std::shared_ptr impl) { - // LogInfo("HalCpp::CheckAllPinVauleThread start\n"); - // impl->CheckAllPinVauleThread(); - // }; - // mCheckPinThread = std::thread(checkPinValue, shared_from_this()); + HalMakePtr::GetInstance()->CreateAllKeysHal(mKeys); + HalMakePtr::GetInstance()->CreateAllLedsHal(mLeds); return CreateStatusCode(STATUS_CODE_OK); } StatusCode HalCpp::UnInit(void) @@ -45,10 +41,6 @@ StatusCode HalCpp::UnInit(void) if (nullptr != sdCardImpl) { sdCardImpl->UnInit(); } - mThreadRuning = false; - if (mCheckPinThread.joinable()) { - mCheckPinThread.join(); - } mWifiHal.reset(); mSdCardHal.reset(); return CreateStatusCode(STATUS_CODE_OK); @@ -63,6 +55,19 @@ StatusCode HalCpp::GetSdCardHal(std::shared_ptr &sdCard) sdCard = mSdCardHal; return CreateStatusCode(STATUS_CODE_OK); } +StatusCode HalCpp::GetAllLeds(std::map> &allLeds) +{ + LogInfo("GetAllLeds\n"); + for (auto &led : mLeds) { + std::shared_ptr ledControl = std::dynamic_pointer_cast(led); + if (nullptr == ledControl) { + LogError("ledControl is nullptr\n"); + continue; + } + allLeds.insert(std::make_pair(led->GetLedName(), ledControl)); + } + return CreateStatusCode(STATUS_CODE_OK); +} StatusCode HalCpp::GetAllKeys(std::map> &allKeys) { LogInfo("GetAllKeys\n"); @@ -76,12 +81,3 @@ StatusCode HalCpp::GetAllKeys(std::map> &a } return CreateStatusCode(STATUS_CODE_OK); } -void HalCpp::CheckAllPinVauleThread(void) -{ - // mThreadRuning = true; - // while (mThreadRuning) { - // for (auto &keyHalImpl : mKeys) { - // } - // std::this_thread::sleep_for(std::chrono::milliseconds(PERIPHERAL_CHECK_PERIOD_MS)); - // } -} diff --git a/hal/src/HalCpp.h b/hal/src/HalCpp.h index 87e627ba..9f54bd37 100644 --- a/hal/src/HalCpp.h +++ b/hal/src/HalCpp.h @@ -16,6 +16,7 @@ #define HALCPP_H #include "IHalCpp.h" #include "KeyControl.h" +#include "LedControl.h" #include #include class HalCpp : public IHalCpp, public std::enable_shared_from_this @@ -27,17 +28,15 @@ public: StatusCode UnInit(void) override; StatusCode GetWifiHal(std::shared_ptr &wifi) override; StatusCode GetSdCardHal(std::shared_ptr &sdCard) override; + StatusCode GetAllLeds(std::map> &allLeds) override; StatusCode GetAllKeys(std::map> &allKeys) override; private: - void CheckAllPinVauleThread(void); - private: std::vector> mLedHals; std::shared_ptr mWifiHal; std::shared_ptr mSdCardHal; std::vector> mKeys; - bool mThreadRuning = false; - std::thread mCheckPinThread; + std::vector> mLeds; }; #endif \ No newline at end of file diff --git a/hal/src/HalMakePtr.cpp b/hal/src/HalMakePtr.cpp index 69b5bdb8..a46c3e3e 100644 --- a/hal/src/HalMakePtr.cpp +++ b/hal/src/HalMakePtr.cpp @@ -93,7 +93,12 @@ StatusCode HalMakePtr::CreateSdCardHal(std::shared_ptr &impl) impl = std::make_shared(); return CreateStatusCode(STATUS_CODE_OK); } -StatusCode HalMakePtr::CreateAllKeyHal(std::vector> &keys) +StatusCode HalMakePtr::CreateAllKeysHal(std::vector> &keys) +{ + LogInfo("STATUS_CODE_VIRTUAL_FUNCTION.\n"); + return CreateStatusCode(STATUS_CODE_VIRTUAL_FUNCTION); +} +StatusCode HalMakePtr::CreateAllLedsHal(std::vector> &leds) { LogInfo("STATUS_CODE_VIRTUAL_FUNCTION.\n"); return CreateStatusCode(STATUS_CODE_VIRTUAL_FUNCTION); diff --git a/hal/src/HalMakePtr.h b/hal/src/HalMakePtr.h index 72dfbf54..4278a2e7 100644 --- a/hal/src/HalMakePtr.h +++ b/hal/src/HalMakePtr.h @@ -18,6 +18,7 @@ #include "IHalCpp.h" #include "StatusCode.h" #include "KeyControl.h" +#include "LedControl.h" #include class HalMakePtr { @@ -38,6 +39,7 @@ public: virtual StatusCode CreateWifiHal(std::shared_ptr &impl); virtual StatusCode CreateCameraHal(std::shared_ptr &impl); virtual StatusCode CreateSdCardHal(std::shared_ptr &impl); - virtual StatusCode CreateAllKeyHal(std::vector> &keys); + virtual StatusCode CreateAllKeysHal(std::vector> &keys); + virtual StatusCode CreateAllLedsHal(std::vector> &leds); }; #endif \ No newline at end of file diff --git a/test/hal/tool/src/HalMakePtrTest.cpp b/test/hal/tool/src/HalMakePtrTest.cpp index 49ecd77b..2e6454a2 100644 --- a/test/hal/tool/src/HalMakePtrTest.cpp +++ b/test/hal/tool/src/HalMakePtrTest.cpp @@ -59,14 +59,14 @@ StatusCode HalMakePtrTest::CreateSdCardHal(std::shared_ptr &impl) impl = mSdCardHalMock; return CreateStatusCode(STATUS_CODE_OK); } -StatusCode HalMakePtrTest::CreateAllKeyHal(std::vector> &keys) +StatusCode HalMakePtrTest::CreateAllKeysHal(std::vector> &keys) { if (mKeysMock.size() > 0) { LogInfo("Create mock keys.size = %d\n", mKeysMock.size()); keys = mKeysMock; } else { - HalMakePtr::CreateAllKeyHal(keys); + HalMakePtr::CreateAllKeysHal(keys); } return CreateStatusCode(STATUS_CODE_OK); } \ No newline at end of file diff --git a/test/hal/tool/src/HalMakePtrTest.h b/test/hal/tool/src/HalMakePtrTest.h index d2ca99db..8cb25399 100644 --- a/test/hal/tool/src/HalMakePtrTest.h +++ b/test/hal/tool/src/HalMakePtrTest.h @@ -28,7 +28,7 @@ public: virtual ~HalMakePtrTest(); StatusCode CreateHalSharePtr(std::shared_ptr &impl) override; StatusCode CreateSdCardHal(std::shared_ptr &impl) override; - StatusCode CreateAllKeyHal(std::vector> &keys) override; + StatusCode CreateAllKeysHal(std::vector> &keys) override; public: std::shared_ptr mHalCppMock;