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}/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})

View File

@ -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);
}

View File

@ -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<VSdCardHalMonitor> &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
{

View File

@ -25,6 +25,12 @@ StatusCode HalCpp::Init(void)
if (nullptr != sdCardImpl) {
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);
}
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<VSdCardHal> &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));
// }
}

View File

@ -15,8 +15,10 @@
#ifndef HALCPP_H
#define HALCPP_H
#include "IHalCpp.h"
#include "KeyControl.h"
#include <memory>
class HalCpp : public IHalCpp
#include <thread>
class HalCpp : public IHalCpp, public std::enable_shared_from_this<HalCpp>
{
public:
HalCpp() = default;
@ -26,9 +28,15 @@ public:
StatusCode GetWifiHal(std::shared_ptr<VWifiHal> &wifi) override;
StatusCode GetSdCardHal(std::shared_ptr<VSdCardHal> &sdCard) override;
private:
void CheckAllPinVauleThread(void);
private:
std::vector<std::shared_ptr<VLedHal>> mLedHals;
std::shared_ptr<VWifiHal> mWifiHal;
std::shared_ptr<VSdCardHal> mSdCardHal;
std::vector<std::shared_ptr<VKeyControl>> mKeys;
bool mThreadRuning = false;
std::thread mCheckPinThread;
};
#endif

View File

@ -92,4 +92,8 @@ StatusCode HalMakePtr::CreateSdCardHal(std::shared_ptr<VSdCardHal> &impl)
LogInfo("CreateSdCardHal.\n");
impl = std::make_shared<SdCardHal>();
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 "IHalCpp.h"
#include "StatusCode.h"
#include "KeyControl.h"
#include <memory>
class HalMakePtr
{
@ -37,5 +38,6 @@ public:
virtual StatusCode CreateWifiHal(std::shared_ptr<VWifiHal> &impl);
virtual StatusCode CreateCameraHal(std::shared_ptr<VCameraHal> &impl);
virtual StatusCode CreateSdCardHal(std::shared_ptr<VSdCardHal> &impl);
virtual StatusCode CreateAllKeyHal(std::vector<std::shared_ptr<VKeyControl>> &keys);
};
#endif

View File

@ -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 @@
**打猎机参数需求列表:**
&emsp;&emsp;**下述列表中未支持的设置项作为标准设置项需求APP在切换语言时需要做对应的翻译。**
| 参数名称 | 数据类型 | 取值说明 | 公版支持 | 备注 |
| ---- | ---- | ---- | ---- | ---- |
| 记录仪WiFi名称 | ---- | ---- | 支持 | ---- |

View File

@ -30,16 +30,13 @@ std::shared_ptr<KeyManager> &KeyManager::GetInstance(std::shared_ptr<KeyManager>
}
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<VirtualKeyEvent>(event), timeMs);
LogInfo("KeyManager::KeyEventHappened: key = %s, event = %d, time = %u\n", keyName.c_str(), event);
monitor->KeyEventReport(keyName, static_cast<VirtualKeyEvent>(event), 99999);
}

View File

@ -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;

View File

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

View File

@ -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<KeyControl>
{
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);

View File

@ -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)