diff --git a/hal/CMakeLists.txt b/hal/CMakeLists.txt index 5471788..87358f3 100644 --- a/hal/CMakeLists.txt +++ b/hal/CMakeLists.txt @@ -11,6 +11,7 @@ include_directories( ${UTILS_SOURCE_PATH}/StatusCode/include ${UTILS_SOURCE_PATH}/Log/include ${UTILS_SOURCE_PATH}/LinuxApi/include + ${UTILS_SOURCE_PATH}/KeyControl/include ) #do not rely on any other library # link_directories( @@ -23,7 +24,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 StatusCode Log) +target_link_libraries(${ABSTRACT_TARGET} LinuxApi KeyControl StatusCode Log) add_library(${IMPL_TARGET} STATIC ${IMPL_SRC_FILES}) target_link_libraries(${IMPL_TARGET} ${ABSTRACT_TARGET}) diff --git a/hal/abstract/IHalCpp.cpp b/hal/abstract/IHalCpp.cpp index dc05edf..92e0568 100644 --- a/hal/abstract/IHalCpp.cpp +++ b/hal/abstract/IHalCpp.cpp @@ -19,8 +19,7 @@ camera_report_event::camera_report_event(const std::string &fileName, const Came : mFileName(fileName), mCameraType(cameraType) { } -void VKeyHalMonitor::KeyEventHappened(const std::string &keyName, const VirtualKeyEvent &event, - const unsigned int &timeMs) +void VKeyHalMonitor::KeyEventHappened(const std::string &keyName, const VirtualKeyEvent &event) { } void VKeyHal::CheckKeyStatus(void) @@ -73,7 +72,8 @@ SdCardHalStatus VSdCardHal::GetSdCardStatus(void) LogWarning("STATUS_CODE_VIRTUAL_FUNCTION.\n"); return SdCardHalStatus::END; } -StatusCode VSdCardHal::GetCapacity(unsigned long long &totalSizeMB, unsigned long long &freeSizeMB, unsigned long long &usedSizeMB) +StatusCode VSdCardHal::GetCapacity(unsigned long long &totalSizeMB, unsigned long long &freeSizeMB, + unsigned long long &usedSizeMB) { return CreateStatusCode(STATUS_CODE_VIRTUAL_FUNCTION); } diff --git a/hal/include/IHalCpp.h b/hal/include/IHalCpp.h index 7710cda..5fe8a8d 100644 --- a/hal/include/IHalCpp.h +++ b/hal/include/IHalCpp.h @@ -53,7 +53,7 @@ class VKeyHalMonitor public: VKeyHalMonitor() = default; virtual ~VKeyHalMonitor() = default; - virtual void KeyEventHappened(const std::string &keyName, const VirtualKeyEvent &event, const unsigned int &timeMs); + virtual void KeyEventHappened(const std::string &keyName, const VirtualKeyEvent &event); }; class VKeyHal { @@ -106,7 +106,8 @@ public: virtual ~VSdCardHal() = default; virtual void SetSdCardMonitor(std::shared_ptr &monitor); virtual SdCardHalStatus GetSdCardStatus(void); - virtual StatusCode GetCapacity(unsigned long long &totalSizeMB, unsigned long long &freeSizeMB, unsigned long long &usedSizeMB); + virtual StatusCode GetCapacity(unsigned long long &totalSizeMB, unsigned long long &freeSizeMB, + unsigned long long &usedSizeMB); }; class IHalCpp { diff --git a/hal/src/HalCpp.cpp b/hal/src/HalCpp.cpp index 51651a8..96078c7 100644 --- a/hal/src/HalCpp.cpp +++ b/hal/src/HalCpp.cpp @@ -25,6 +25,12 @@ 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()); return CreateStatusCode(STATUS_CODE_OK); } StatusCode HalCpp::UnInit(void) @@ -34,6 +40,10 @@ 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); @@ -48,3 +58,12 @@ StatusCode HalCpp::GetSdCardHal(std::shared_ptr &sdCard) sdCard = mSdCardHal; 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 b15e213..427a74c 100644 --- a/hal/src/HalCpp.h +++ b/hal/src/HalCpp.h @@ -15,8 +15,10 @@ #ifndef HALCPP_H #define HALCPP_H #include "IHalCpp.h" +#include "KeyControl.h" #include -class HalCpp : public IHalCpp +#include +class HalCpp : public IHalCpp, public std::enable_shared_from_this { public: HalCpp() = default; @@ -26,9 +28,15 @@ public: StatusCode GetWifiHal(std::shared_ptr &wifi) override; StatusCode GetSdCardHal(std::shared_ptr &sdCard) 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; }; #endif \ No newline at end of file diff --git a/hal/src/HalMakePtr.cpp b/hal/src/HalMakePtr.cpp index 0537dac..fe02b3f 100644 --- a/hal/src/HalMakePtr.cpp +++ b/hal/src/HalMakePtr.cpp @@ -92,4 +92,8 @@ StatusCode HalMakePtr::CreateSdCardHal(std::shared_ptr &impl) LogInfo("CreateSdCardHal.\n"); impl = std::make_shared(); return CreateStatusCode(STATUS_CODE_OK); +} +StatusCode HalMakePtr::CreateAllKeyHal(std::vector> &keys) +{ + return CreateStatusCode(STATUS_CODE_VIRTUAL_FUNCTION); } \ No newline at end of file diff --git a/hal/src/HalMakePtr.h b/hal/src/HalMakePtr.h index ac73f0c..72dfbf5 100644 --- a/hal/src/HalMakePtr.h +++ b/hal/src/HalMakePtr.h @@ -17,6 +17,7 @@ #include "IHal.h" #include "IHalCpp.h" #include "StatusCode.h" +#include "KeyControl.h" #include class HalMakePtr { @@ -37,5 +38,6 @@ 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); }; #endif \ No newline at end of file diff --git a/middleware/AppManager/README.md b/middleware/AppManager/README.md index c8e044f..ffcc05c 100644 --- a/middleware/AppManager/README.md +++ b/middleware/AppManager/README.md @@ -4,6 +4,7 @@ | ---- | ---- | ---- | | V1.0 | 2024-5-21 | 首次评审。 | | V1.1 | 2024-5-25 | 增加标准设置项和动态设置参数协议。 | +| V1.2 | 2024-5-27 | 完善自定义协议描述。 | ## 1.1. 概述 @@ -110,6 +111,8 @@ **打猎机参数需求列表:** +  **下述列表中,未支持的设置项作为标准设置项需求,APP在切换语言时需要做对应的翻译。** + | 参数名称 | 数据类型 | 取值说明 | 公版支持 | 备注 | | ---- | ---- | ---- | ---- | ---- | | 记录仪WiFi名称 | ---- | ---- | 支持 | ---- | diff --git a/middleware/DeviceManager/src/KeyManager.cpp b/middleware/DeviceManager/src/KeyManager.cpp index b56513a..74b4a75 100644 --- a/middleware/DeviceManager/src/KeyManager.cpp +++ b/middleware/DeviceManager/src/KeyManager.cpp @@ -30,16 +30,13 @@ std::shared_ptr &KeyManager::GetInstance(std::shared_ptr } KeyManager::KeyManager() { - // } void KeyManager::Init(void) { - // IHalCpp::GetInstance()->GetAllKeys(mAllKeyHal); } void KeyManager::UnInit(void) { - // StopTimer(); mAllKeyHal.clear(); } @@ -101,13 +98,13 @@ void KeyManager::SetKeyHalMonitor(void) keyHal->SetKeyMonitor(monitor); } } -void KeyManager::KeyEventHappened(const std::string &keyName, const VirtualKeyEvent &event, const unsigned int &timeMs) +void KeyManager::KeyEventHappened(const std::string &keyName, const VirtualKeyEvent &event) { auto monitor = mKeyMonitor.lock(); if (mKeyMonitor.expired()) { LogError("monitor is nullptr.\n"); return; } - LogInfo("KeyManager::KeyEventHappened: key = %s, event = %d, time = %u\n", keyName.c_str(), event, timeMs); - monitor->KeyEventReport(keyName, static_cast(event), timeMs); + LogInfo("KeyManager::KeyEventHappened: key = %s, event = %d, time = %u\n", keyName.c_str(), event); + monitor->KeyEventReport(keyName, static_cast(event), 99999); } \ No newline at end of file diff --git a/middleware/DeviceManager/src/KeyManager.h b/middleware/DeviceManager/src/KeyManager.h index b2f24fc..976ebea 100644 --- a/middleware/DeviceManager/src/KeyManager.h +++ b/middleware/DeviceManager/src/KeyManager.h @@ -38,8 +38,7 @@ private: void SetKeyHalMonitor(void); private: - void KeyEventHappened(const std::string &keyName, const VirtualKeyEvent &event, - const unsigned int &timeMs) override; + void KeyEventHappened(const std::string &keyName, const VirtualKeyEvent &event) override; private: std::mutex mMutex; diff --git a/test/hal/tool/src/KeyControlMock.cpp b/test/hal/tool/src/KeyControlMock.cpp index fa7c18b..2a85280 100644 --- a/test/hal/tool/src/KeyControlMock.cpp +++ b/test/hal/tool/src/KeyControlMock.cpp @@ -38,7 +38,7 @@ void KeyControlTest::KeyEventTrigger(const std::string &keyName, const KeyEvent LogError("monitor is nullptr.\n"); return; } - monitor->KeyEventHappened(keyName, static_cast(event), timeMs); + monitor->KeyEventHappened(keyName, static_cast(event)); } const std::string KeyControlTest::GetKeyName(void) { diff --git a/utils/KeyControl/include/KeyControl.h b/utils/KeyControl/include/KeyControl.h index b601e99..1676537 100644 --- a/utils/KeyControl/include/KeyControl.h +++ b/utils/KeyControl/include/KeyControl.h @@ -38,25 +38,17 @@ class VKeyControl public: VKeyControl() = default; virtual ~VKeyControl() = default; - virtual const std::string GetKeyName(void) - { - return "undefine"; - } - virtual unsigned int GetStatusCheckPeriodMs(void) - { - return 0; - } - virtual void KeyEventTrigger(const std::string &keyName, const KeyEvent &event, const unsigned int &timeMs) - { - } + virtual const std::string GetKeyName(void); + virtual unsigned int GetStatusCheckPeriodMs(void); + virtual void KeyEventTrigger(const std::string &keyName, const KeyEvent &event, const unsigned int &timeMs); }; class KeyControl : public VKeyControl, public std::enable_shared_from_this { public: KeyControl(); virtual ~KeyControl(); - void Init(void); - void UnInit(void); + virtual void Init(void); + virtual void UnInit(void); void KeyHalEventHandle(const std::string &key, const KeyHalEvent &keyEvent); void TimerKeyEventTrigger(const KeyHalEvent &event); void KeyHalEventTrigger(const KeyHalEvent &event); diff --git a/utils/KeyControl/src/KeyControl.cpp b/utils/KeyControl/src/KeyControl.cpp index 9fce910..eac5f61 100644 --- a/utils/KeyControl/src/KeyControl.cpp +++ b/utils/KeyControl/src/KeyControl.cpp @@ -28,6 +28,20 @@ bool KeyControl::IsKeyPressing(void) { return mPressingTime >= KEY_PRESSING ? true : false; } +const std::string VKeyControl::GetKeyName(void) +{ + return "undefine"; +} +unsigned int VKeyControl::GetStatusCheckPeriodMs(void) +{ + return 0; +} +void VKeyControl::KeyEventTrigger(const std::string &keyName, const KeyEvent &event, const unsigned int &timeMs) +{ +} +void KeyControl::Init(void) +{ +} void KeyControl::UnInit(void) { } @@ -62,7 +76,6 @@ void KeyControl::KeyHalEventTrigger(const KeyHalEvent &event) } long int KeyControl::GetHoldPressingTimeMs(void) { - // return mPressingTime; } void KeyControl::KeyPressingTrigger(const std::string &key)