Backup key hal code.

This commit is contained in:
Fancy code 2024-05-27 22:01:38 +08:00
parent 70042cc449
commit 353aa7d63e
13 changed files with 69 additions and 30 deletions

View File

@ -11,6 +11,7 @@ include_directories(
${UTILS_SOURCE_PATH}/StatusCode/include ${UTILS_SOURCE_PATH}/StatusCode/include
${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
) )
#do not rely on any other library #do not rely on any other library
# link_directories( # link_directories(
@ -23,7 +24,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 StatusCode Log) target_link_libraries(${ABSTRACT_TARGET} LinuxApi KeyControl 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

@ -19,8 +19,7 @@ camera_report_event::camera_report_event(const std::string &fileName, const Came
: mFileName(fileName), mCameraType(cameraType) : mFileName(fileName), mCameraType(cameraType)
{ {
} }
void VKeyHalMonitor::KeyEventHappened(const std::string &keyName, const VirtualKeyEvent &event, void VKeyHalMonitor::KeyEventHappened(const std::string &keyName, const VirtualKeyEvent &event)
const unsigned int &timeMs)
{ {
} }
void VKeyHal::CheckKeyStatus(void) void VKeyHal::CheckKeyStatus(void)
@ -73,7 +72,8 @@ SdCardHalStatus VSdCardHal::GetSdCardStatus(void)
LogWarning("STATUS_CODE_VIRTUAL_FUNCTION.\n"); LogWarning("STATUS_CODE_VIRTUAL_FUNCTION.\n");
return SdCardHalStatus::END; 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); return CreateStatusCode(STATUS_CODE_VIRTUAL_FUNCTION);
} }

View File

@ -53,7 +53,7 @@ class VKeyHalMonitor
public: public:
VKeyHalMonitor() = default; VKeyHalMonitor() = default;
virtual ~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 class VKeyHal
{ {
@ -106,7 +106,8 @@ public:
virtual ~VSdCardHal() = default; virtual ~VSdCardHal() = default;
virtual void SetSdCardMonitor(std::shared_ptr<VSdCardHalMonitor> &monitor); virtual void SetSdCardMonitor(std::shared_ptr<VSdCardHalMonitor> &monitor);
virtual SdCardHalStatus GetSdCardStatus(void); 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 class IHalCpp
{ {

View File

@ -25,6 +25,12 @@ StatusCode HalCpp::Init(void)
if (nullptr != sdCardImpl) { if (nullptr != sdCardImpl) {
sdCardImpl->Init(); sdCardImpl->Init();
} }
HalMakePtr::GetInstance()->CreateAllKeyHal(mKeys);
auto checkPinValue = [](std::shared_ptr<HalCpp> impl) {
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)
@ -34,6 +40,10 @@ 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);
@ -48,3 +58,12 @@ StatusCode HalCpp::GetSdCardHal(std::shared_ptr<VSdCardHal> &sdCard)
sdCard = mSdCardHal; sdCard = mSdCardHal;
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

@ -15,8 +15,10 @@
#ifndef HALCPP_H #ifndef HALCPP_H
#define HALCPP_H #define HALCPP_H
#include "IHalCpp.h" #include "IHalCpp.h"
#include "KeyControl.h"
#include <memory> #include <memory>
class HalCpp : public IHalCpp #include <thread>
class HalCpp : public IHalCpp, public std::enable_shared_from_this<HalCpp>
{ {
public: public:
HalCpp() = default; HalCpp() = default;
@ -26,9 +28,15 @@ public:
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;
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;
bool mThreadRuning = false;
std::thread mCheckPinThread;
}; };
#endif #endif

View File

@ -93,3 +93,7 @@ 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)
{
return CreateStatusCode(STATUS_CODE_VIRTUAL_FUNCTION);
}

View File

@ -17,6 +17,7 @@
#include "IHal.h" #include "IHal.h"
#include "IHalCpp.h" #include "IHalCpp.h"
#include "StatusCode.h" #include "StatusCode.h"
#include "KeyControl.h"
#include <memory> #include <memory>
class HalMakePtr class HalMakePtr
{ {
@ -37,5 +38,6 @@ 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);
}; };
#endif #endif

View File

@ -4,6 +4,7 @@
| ---- | ---- | ---- | | ---- | ---- | ---- |
| V1.0 | 2024-5-21 | 首次评审。 | | V1.0 | 2024-5-21 | 首次评审。 |
| V1.1 | 2024-5-25 | 增加标准设置项和动态设置参数协议。 | | V1.1 | 2024-5-25 | 增加标准设置项和动态设置参数协议。 |
| V1.2 | 2024-5-27 | 完善自定义协议描述。 |
## 1.1. 概述 ## 1.1. 概述
@ -110,6 +111,8 @@
**打猎机参数需求列表:** **打猎机参数需求列表:**
&emsp;&emsp;**下述列表中未支持的设置项作为标准设置项需求APP在切换语言时需要做对应的翻译。**
| 参数名称 | 数据类型 | 取值说明 | 公版支持 | 备注 | | 参数名称 | 数据类型 | 取值说明 | 公版支持 | 备注 |
| ---- | ---- | ---- | ---- | ---- | | ---- | ---- | ---- | ---- | ---- |
| 记录仪WiFi名称 | ---- | ---- | 支持 | ---- | | 记录仪WiFi名称 | ---- | ---- | 支持 | ---- |

View File

@ -30,16 +30,13 @@ std::shared_ptr<KeyManager> &KeyManager::GetInstance(std::shared_ptr<KeyManager>
} }
KeyManager::KeyManager() KeyManager::KeyManager()
{ {
//
} }
void KeyManager::Init(void) void KeyManager::Init(void)
{ {
//
IHalCpp::GetInstance()->GetAllKeys(mAllKeyHal); IHalCpp::GetInstance()->GetAllKeys(mAllKeyHal);
} }
void KeyManager::UnInit(void) void KeyManager::UnInit(void)
{ {
//
StopTimer(); StopTimer();
mAllKeyHal.clear(); mAllKeyHal.clear();
} }
@ -101,13 +98,13 @@ void KeyManager::SetKeyHalMonitor(void)
keyHal->SetKeyMonitor(monitor); 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(); auto monitor = mKeyMonitor.lock();
if (mKeyMonitor.expired()) { if (mKeyMonitor.expired()) {
LogError("monitor is nullptr.\n"); LogError("monitor is nullptr.\n");
return; return;
} }
LogInfo("KeyManager::KeyEventHappened: key = %s, event = %d, time = %u\n", keyName.c_str(), event, timeMs); LogInfo("KeyManager::KeyEventHappened: key = %s, event = %d, time = %u\n", keyName.c_str(), event);
monitor->KeyEventReport(keyName, static_cast<VirtualKeyEvent>(event), timeMs); monitor->KeyEventReport(keyName, static_cast<VirtualKeyEvent>(event), 99999);
} }

View File

@ -38,8 +38,7 @@ private:
void SetKeyHalMonitor(void); void SetKeyHalMonitor(void);
private: private:
void KeyEventHappened(const std::string &keyName, const VirtualKeyEvent &event, void KeyEventHappened(const std::string &keyName, const VirtualKeyEvent &event) override;
const unsigned int &timeMs) override;
private: private:
std::mutex mMutex; std::mutex mMutex;

View File

@ -38,7 +38,7 @@ void KeyControlTest::KeyEventTrigger(const std::string &keyName, const KeyEvent
LogError("monitor is nullptr.\n"); LogError("monitor is nullptr.\n");
return; return;
} }
monitor->KeyEventHappened(keyName, static_cast<VirtualKeyEvent>(event), timeMs); monitor->KeyEventHappened(keyName, static_cast<VirtualKeyEvent>(event));
} }
const std::string KeyControlTest::GetKeyName(void) const std::string KeyControlTest::GetKeyName(void)
{ {

View File

@ -38,25 +38,17 @@ class VKeyControl
public: public:
VKeyControl() = default; VKeyControl() = default;
virtual ~VKeyControl() = default; virtual ~VKeyControl() = default;
virtual const std::string GetKeyName(void) virtual const std::string GetKeyName(void);
{ virtual unsigned int GetStatusCheckPeriodMs(void);
return "undefine"; virtual void KeyEventTrigger(const std::string &keyName, const KeyEvent &event, const unsigned int &timeMs);
}
virtual unsigned int GetStatusCheckPeriodMs(void)
{
return 0;
}
virtual void KeyEventTrigger(const std::string &keyName, const KeyEvent &event, const unsigned int &timeMs)
{
}
}; };
class KeyControl : public VKeyControl, public std::enable_shared_from_this<KeyControl> class KeyControl : public VKeyControl, public std::enable_shared_from_this<KeyControl>
{ {
public: public:
KeyControl(); KeyControl();
virtual ~KeyControl(); virtual ~KeyControl();
void Init(void); virtual void Init(void);
void UnInit(void); virtual void UnInit(void);
void KeyHalEventHandle(const std::string &key, const KeyHalEvent &keyEvent); void KeyHalEventHandle(const std::string &key, const KeyHalEvent &keyEvent);
void TimerKeyEventTrigger(const KeyHalEvent &event); void TimerKeyEventTrigger(const KeyHalEvent &event);
void KeyHalEventTrigger(const KeyHalEvent &event); void KeyHalEventTrigger(const KeyHalEvent &event);

View File

@ -28,6 +28,20 @@ bool KeyControl::IsKeyPressing(void)
{ {
return mPressingTime >= KEY_PRESSING ? true : false; 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) void KeyControl::UnInit(void)
{ {
} }
@ -62,7 +76,6 @@ void KeyControl::KeyHalEventTrigger(const KeyHalEvent &event)
} }
long int KeyControl::GetHoldPressingTimeMs(void) long int KeyControl::GetHoldPressingTimeMs(void)
{ {
//
return mPressingTime; return mPressingTime;
} }
void KeyControl::KeyPressingTrigger(const std::string &key) void KeyControl::KeyPressingTrigger(const std::string &key)