Improve:Led Hal code.

This commit is contained in:
Fancy code 2024-06-06 22:57:48 +08:00
parent a9b4eee4ea
commit 281c4dfe73
8 changed files with 32 additions and 30 deletions

View File

@ -12,6 +12,7 @@ include_directories(
${UTILS_SOURCE_PATH}/Log/include ${UTILS_SOURCE_PATH}/Log/include
${UTILS_SOURCE_PATH}/LinuxApi/include ${UTILS_SOURCE_PATH}/LinuxApi/include
${UTILS_SOURCE_PATH}/KeyControl/include ${UTILS_SOURCE_PATH}/KeyControl/include
${UTILS_SOURCE_PATH}/LedControl/include
) )
#do not rely on any other library #do not rely on any other library
# link_directories( # link_directories(
@ -24,7 +25,7 @@ aux_source_directory(./src IMPL_SRC_FILES)
set(ABSTRACT_TARGET HalAbstract) set(ABSTRACT_TARGET HalAbstract)
set(IMPL_TARGET Hal) set(IMPL_TARGET Hal)
add_library(${ABSTRACT_TARGET} STATIC ${ABSTRACT_SRC_FILES}) 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}) add_library(${IMPL_TARGET} STATIC ${IMPL_SRC_FILES})
target_link_libraries(${IMPL_TARGET} ${ABSTRACT_TARGET}) target_link_libraries(${IMPL_TARGET} ${ABSTRACT_TARGET})

View File

@ -70,7 +70,6 @@ public:
virtual void CheckKeyStatus(void); virtual void CheckKeyStatus(void);
virtual void GetHoldPressingTimeMs(long int &holdTimeMs, VirtualKeyEvent &event); virtual void GetHoldPressingTimeMs(long int &holdTimeMs, VirtualKeyEvent &event);
virtual void SetKeyMonitor(std::shared_ptr<VKeyHalMonitor> &monitor); virtual void SetKeyMonitor(std::shared_ptr<VKeyHalMonitor> &monitor);
// virtual std::string GetKeyHalName(void);
}; };
class VLedHal class VLedHal
{ {

View File

@ -30,12 +30,8 @@ StatusCode HalCpp::Init(void)
if (nullptr != sdCardImpl) { if (nullptr != sdCardImpl) {
sdCardImpl->Init(); sdCardImpl->Init();
} }
HalMakePtr::GetInstance()->CreateAllKeyHal(mKeys); HalMakePtr::GetInstance()->CreateAllKeysHal(mKeys);
// auto checkPinValue = [](std::shared_ptr<HalCpp> impl) { HalMakePtr::GetInstance()->CreateAllLedsHal(mLeds);
// LogInfo("HalCpp::CheckAllPinVauleThread start\n");
// impl->CheckAllPinVauleThread();
// };
// mCheckPinThread = std::thread(checkPinValue, shared_from_this());
return CreateStatusCode(STATUS_CODE_OK); return CreateStatusCode(STATUS_CODE_OK);
} }
StatusCode HalCpp::UnInit(void) StatusCode HalCpp::UnInit(void)
@ -45,10 +41,6 @@ StatusCode HalCpp::UnInit(void)
if (nullptr != sdCardImpl) { if (nullptr != sdCardImpl) {
sdCardImpl->UnInit(); sdCardImpl->UnInit();
} }
mThreadRuning = false;
if (mCheckPinThread.joinable()) {
mCheckPinThread.join();
}
mWifiHal.reset(); mWifiHal.reset();
mSdCardHal.reset(); mSdCardHal.reset();
return CreateStatusCode(STATUS_CODE_OK); return CreateStatusCode(STATUS_CODE_OK);
@ -63,6 +55,19 @@ StatusCode HalCpp::GetSdCardHal(std::shared_ptr<VSdCardHal> &sdCard)
sdCard = mSdCardHal; sdCard = mSdCardHal;
return CreateStatusCode(STATUS_CODE_OK); return CreateStatusCode(STATUS_CODE_OK);
} }
StatusCode HalCpp::GetAllLeds(std::map<std::string, std::shared_ptr<VLedHal>> &allLeds)
{
LogInfo("GetAllLeds\n");
for (auto &led : mLeds) {
std::shared_ptr<VLedHal> ledControl = std::dynamic_pointer_cast<VLedHal>(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<std::string, std::shared_ptr<VKeyHal>> &allKeys) StatusCode HalCpp::GetAllKeys(std::map<std::string, std::shared_ptr<VKeyHal>> &allKeys)
{ {
LogInfo("GetAllKeys\n"); LogInfo("GetAllKeys\n");
@ -76,12 +81,3 @@ StatusCode HalCpp::GetAllKeys(std::map<std::string, std::shared_ptr<VKeyHal>> &a
} }
return CreateStatusCode(STATUS_CODE_OK); 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));
// }
}

View File

@ -16,6 +16,7 @@
#define HALCPP_H #define HALCPP_H
#include "IHalCpp.h" #include "IHalCpp.h"
#include "KeyControl.h" #include "KeyControl.h"
#include "LedControl.h"
#include <memory> #include <memory>
#include <thread> #include <thread>
class HalCpp : public IHalCpp, public std::enable_shared_from_this<HalCpp> class HalCpp : public IHalCpp, public std::enable_shared_from_this<HalCpp>
@ -27,17 +28,15 @@ public:
StatusCode UnInit(void) override; StatusCode UnInit(void) override;
StatusCode GetWifiHal(std::shared_ptr<VWifiHal> &wifi) override; StatusCode GetWifiHal(std::shared_ptr<VWifiHal> &wifi) override;
StatusCode GetSdCardHal(std::shared_ptr<VSdCardHal> &sdCard) override; StatusCode GetSdCardHal(std::shared_ptr<VSdCardHal> &sdCard) override;
StatusCode GetAllLeds(std::map<std::string, std::shared_ptr<VLedHal>> &allLeds) override;
StatusCode GetAllKeys(std::map<std::string, std::shared_ptr<VKeyHal>> &allKeys) override; StatusCode GetAllKeys(std::map<std::string, std::shared_ptr<VKeyHal>> &allKeys) override;
private: private:
void CheckAllPinVauleThread(void);
private: private:
std::vector<std::shared_ptr<VLedHal>> mLedHals; std::vector<std::shared_ptr<VLedHal>> mLedHals;
std::shared_ptr<VWifiHal> mWifiHal; std::shared_ptr<VWifiHal> mWifiHal;
std::shared_ptr<VSdCardHal> mSdCardHal; std::shared_ptr<VSdCardHal> mSdCardHal;
std::vector<std::shared_ptr<VKeyControl>> mKeys; std::vector<std::shared_ptr<VKeyControl>> mKeys;
bool mThreadRuning = false; std::vector<std::shared_ptr<VLedControl>> mLeds;
std::thread mCheckPinThread;
}; };
#endif #endif

View File

@ -93,7 +93,12 @@ StatusCode HalMakePtr::CreateSdCardHal(std::shared_ptr<VSdCardHal> &impl)
impl = std::make_shared<SdCardHal>(); impl = std::make_shared<SdCardHal>();
return CreateStatusCode(STATUS_CODE_OK); return CreateStatusCode(STATUS_CODE_OK);
} }
StatusCode HalMakePtr::CreateAllKeyHal(std::vector<std::shared_ptr<VKeyControl>> &keys) StatusCode HalMakePtr::CreateAllKeysHal(std::vector<std::shared_ptr<VKeyControl>> &keys)
{
LogInfo("STATUS_CODE_VIRTUAL_FUNCTION.\n");
return CreateStatusCode(STATUS_CODE_VIRTUAL_FUNCTION);
}
StatusCode HalMakePtr::CreateAllLedsHal(std::vector<std::shared_ptr<VLedControl>> &leds)
{ {
LogInfo("STATUS_CODE_VIRTUAL_FUNCTION.\n"); LogInfo("STATUS_CODE_VIRTUAL_FUNCTION.\n");
return CreateStatusCode(STATUS_CODE_VIRTUAL_FUNCTION); return CreateStatusCode(STATUS_CODE_VIRTUAL_FUNCTION);

View File

@ -18,6 +18,7 @@
#include "IHalCpp.h" #include "IHalCpp.h"
#include "StatusCode.h" #include "StatusCode.h"
#include "KeyControl.h" #include "KeyControl.h"
#include "LedControl.h"
#include <memory> #include <memory>
class HalMakePtr class HalMakePtr
{ {
@ -38,6 +39,7 @@ public:
virtual StatusCode CreateWifiHal(std::shared_ptr<VWifiHal> &impl); virtual StatusCode CreateWifiHal(std::shared_ptr<VWifiHal> &impl);
virtual StatusCode CreateCameraHal(std::shared_ptr<VCameraHal> &impl); virtual StatusCode CreateCameraHal(std::shared_ptr<VCameraHal> &impl);
virtual StatusCode CreateSdCardHal(std::shared_ptr<VSdCardHal> &impl); virtual StatusCode CreateSdCardHal(std::shared_ptr<VSdCardHal> &impl);
virtual StatusCode CreateAllKeyHal(std::vector<std::shared_ptr<VKeyControl>> &keys); virtual StatusCode CreateAllKeysHal(std::vector<std::shared_ptr<VKeyControl>> &keys);
virtual StatusCode CreateAllLedsHal(std::vector<std::shared_ptr<VLedControl>> &leds);
}; };
#endif #endif

View File

@ -59,14 +59,14 @@ StatusCode HalMakePtrTest::CreateSdCardHal(std::shared_ptr<VSdCardHal> &impl)
impl = mSdCardHalMock; impl = mSdCardHalMock;
return CreateStatusCode(STATUS_CODE_OK); return CreateStatusCode(STATUS_CODE_OK);
} }
StatusCode HalMakePtrTest::CreateAllKeyHal(std::vector<std::shared_ptr<VKeyControl>> &keys) StatusCode HalMakePtrTest::CreateAllKeysHal(std::vector<std::shared_ptr<VKeyControl>> &keys)
{ {
if (mKeysMock.size() > 0) { if (mKeysMock.size() > 0) {
LogInfo("Create mock keys.size = %d\n", mKeysMock.size()); LogInfo("Create mock keys.size = %d\n", mKeysMock.size());
keys = mKeysMock; keys = mKeysMock;
} }
else { else {
HalMakePtr::CreateAllKeyHal(keys); HalMakePtr::CreateAllKeysHal(keys);
} }
return CreateStatusCode(STATUS_CODE_OK); return CreateStatusCode(STATUS_CODE_OK);
} }

View File

@ -28,7 +28,7 @@ public:
virtual ~HalMakePtrTest(); virtual ~HalMakePtrTest();
StatusCode CreateHalSharePtr(std::shared_ptr<IHalCpp> &impl) override; StatusCode CreateHalSharePtr(std::shared_ptr<IHalCpp> &impl) override;
StatusCode CreateSdCardHal(std::shared_ptr<VSdCardHal> &impl) override; StatusCode CreateSdCardHal(std::shared_ptr<VSdCardHal> &impl) override;
StatusCode CreateAllKeyHal(std::vector<std::shared_ptr<VKeyControl>> &keys) override; StatusCode CreateAllKeysHal(std::vector<std::shared_ptr<VKeyControl>> &keys) override;
public: public:
std::shared_ptr<HalCppMock> mHalCppMock; std::shared_ptr<HalCppMock> mHalCppMock;