From 1b11f55fa45167b0a752b897a73600d498b62b0a Mon Sep 17 00:00:00 2001 From: jas <1790731762@qq.com> Date: Wed, 10 Jan 2024 10:21:11 +0800 Subject: [PATCH] =?UTF-8?q?[zhoulongyu]:=201.=20=E6=9B=B4=E6=94=B9?= =?UTF-8?q?=E9=83=A8=E5=88=86=E5=87=BD=E6=95=B0=E5=90=8D,=20=E9=81=BF?= =?UTF-8?q?=E5=85=8D=E4=B8=8D=E5=90=8C=E7=9A=84=20class=E9=87=8C=E7=9A=84?= =?UTF-8?q?=E5=87=BD=E6=95=B0=E5=90=8D=E4=B8=80=E6=A0=B7,=20=E9=80=A0?= =?UTF-8?q?=E6=88=90=E4=BB=A3=E7=A0=81=E9=98=85=E8=AF=BB=E5=9B=B0=E9=9A=BE?= =?UTF-8?q?;=202.=20=E4=BC=98=E5=8C=96=E4=B8=AD=E9=97=B4=E4=BB=B6=E7=9A=84?= =?UTF-8?q?=E5=AF=B9=E5=A4=96=E6=8E=A5=E5=8F=A3;=203.=20=E6=9B=B4=E6=94=B9?= =?UTF-8?q?=20LedManager=20=E7=9A=84=E6=9E=84=E9=80=A0=E5=87=BD=E6=95=B0?= =?UTF-8?q?=E7=9A=84=E9=BB=98=E8=AE=A4=E5=8F=82=E6=95=B0(=E9=97=AA?= =?UTF-8?q?=E7=83=81=E6=97=B6=E9=97=B4=E6=94=B9=E4=B8=BA0)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- hal/include/IHalCpp.h | 6 +++--- hal/src/HalCpp.cpp | 2 +- hal/src/HalCpp.h | 2 +- .../DeviceManager/include/IDeviceManager.h | 19 +++++-------------- .../DeviceManager/src/DeviceManager.cpp | 19 +++++++++++++++++-- middleware/DeviceManager/src/DeviceManager.h | 7 +++++-- middleware/DeviceManager/src/LedManager.cpp | 9 +++++++-- middleware/DeviceManager/src/LedManager.h | 10 +++++----- 8 files changed, 44 insertions(+), 30 deletions(-) diff --git a/hal/include/IHalCpp.h b/hal/include/IHalCpp.h index 5d8f3b5..6c4e10e 100644 --- a/hal/include/IHalCpp.h +++ b/hal/include/IHalCpp.h @@ -71,7 +71,7 @@ public: { return CreateStatusCode(STATUS_CODE_VIRTUAL_FUNCTION); } - virtual StatusCode GetLedName(std::string &LedName) { return CreateStatusCode(STATUS_CODE_VIRTUAL_FUNCTION); } + virtual std::string GetLedName(void) { return "undefine"; } }; #if 0 @@ -83,7 +83,7 @@ public: // StatusCode SetLedHalOwner(std::shared_ptr owner) override; StatusCode SetHalLedState(const HalLedState &state) override; - StatusCode GetLedName(std::string &LedName) override; + std::string GetLedName(void) override; private: // VLedHalOwner m_LedHalOwner; @@ -101,7 +101,7 @@ public: static std::shared_ptr &GetInstance(std::shared_ptr *impl = nullptr); virtual StatusCode Init(void) { return CreateStatusCode(STATUS_CODE_VIRTUAL_FUNCTION); } virtual StatusCode UnInit(void) { return CreateStatusCode(STATUS_CODE_VIRTUAL_FUNCTION); } - virtual StatusCode GetLedHal(std::vector> &ledHals) + virtual StatusCode GetLedHals(std::vector> &ledHals) { return CreateStatusCode(STATUS_CODE_VIRTUAL_FUNCTION); } diff --git a/hal/src/HalCpp.cpp b/hal/src/HalCpp.cpp index 095c22b..d6ee8d0 100644 --- a/hal/src/HalCpp.cpp +++ b/hal/src/HalCpp.cpp @@ -24,7 +24,7 @@ StatusCode HalCpp::UnInit(void) LogInfo("HalCpp::UnInit\n"); return CreateStatusCode(STATUS_CODE_OK); } -StatusCode HalCpp::GetLedHal(std::vector> &ledHals) +StatusCode HalCpp::GetLedHals(std::vector> &ledHals) { ledHals = mLedHals; return CreateStatusCode(STATUS_CODE_OK); diff --git a/hal/src/HalCpp.h b/hal/src/HalCpp.h index 09191f7..4185a94 100644 --- a/hal/src/HalCpp.h +++ b/hal/src/HalCpp.h @@ -22,7 +22,7 @@ public: virtual ~HalCpp() = default; StatusCode Init(void) override; StatusCode UnInit(void) override; - StatusCode GetLedHal(std::vector> &ledHals) override; + StatusCode GetLedHals(std::vector> &ledHals) override; private: std::vector> mLedHals; diff --git a/middleware/DeviceManager/include/IDeviceManager.h b/middleware/DeviceManager/include/IDeviceManager.h index 2545fa0..4ba7538 100644 --- a/middleware/DeviceManager/include/IDeviceManager.h +++ b/middleware/DeviceManager/include/IDeviceManager.h @@ -48,18 +48,6 @@ enum LedState LED_STATE_END }; -class VLedManager -{ -public: - VLedManager() = default; - ~VLedManager() = default; - virtual StatusCode SetLedState(std::string ledName, LedState &CurrentState, const unsigned int &KeepAliveTime, - const unsigned int &BlinkPeriod) - { - return CreateStatusCode(STATUS_CODE_VIRTUAL_FUNCTION); - } -}; - class IDeviceManager { public: @@ -69,8 +57,11 @@ public: virtual const StatusCode Init(void) { return CreateStatusCode(STATUS_CODE_OK); } virtual const StatusCode UnInit(void) { return CreateStatusCode(STATUS_CODE_OK); } virtual const IpcMission GetIpcMissiony(void) { return IpcMission::END; } - // virtual const StatusCode GetLedManager(std::vector> &ledManagers) { return - // CreateStatusCode(STATUS_CODE_VIRTUAL_FUNCTION); } + virtual const StatusCode ISetLedState(std::string ledName, LedState &CurrentState, + const unsigned int &KeepAliveTime, const unsigned int &BlinkPeriod) + { + return CreateStatusCode(STATUS_CODE_VIRTUAL_FUNCTION); + } }; bool CreateDeviceManagerModule(void); #endif \ No newline at end of file diff --git a/middleware/DeviceManager/src/DeviceManager.cpp b/middleware/DeviceManager/src/DeviceManager.cpp index 7ebd017..ab97471 100644 --- a/middleware/DeviceManager/src/DeviceManager.cpp +++ b/middleware/DeviceManager/src/DeviceManager.cpp @@ -19,16 +19,17 @@ const StatusCode DeviceManager::Init(void) { std::vector> ledHals; - IHalCpp::GetInstance()->GetLedHal(ledHals); + IHalCpp::GetInstance()->GetLedHals(ledHals); for (auto it = ledHals.begin(); it != ledHals.end(); ++it) { std::shared_ptr ledHal = *it; std::shared_ptr ledOut = - std::make_shared(ledHal, NEW_LED_STATE, DEFAULT_KEEP_ALIVE_TIME, BLINKING_FAST_MS); + std::make_shared(ledHal, NEW_LED_STATE, DEFAULT_KEEP_ALIVE_TIME, LED_NOT_BLINK); mLedManagers.push_back(ledOut); } return CreateStatusCode(STATUS_CODE_OK); } + const StatusCode DeviceManager::UnInit(void) { if (!mLedManagers.empty()) { @@ -37,4 +38,18 @@ const StatusCode DeviceManager::UnInit(void) return CreateStatusCode(STATUS_CODE_OK); } + const IpcMission DeviceManager::GetIpcMissiony(void) { return IpcMission::TEST; } + +const StatusCode DeviceManager::ISetLedState(std::string ledName, LedState &CurrentState, + const unsigned int &KeepAliveTime, const unsigned int &BlinkPeriod) +{ + for (auto it = mLedManagers.begin(); it != mLedManagers.end(); ++it) { + std::shared_ptr ledOut = *it; + if (ledOut->GetLedHal()->GetLedName() == ledName) { + ledOut->SetLedState(CurrentState, KeepAliveTime, BlinkPeriod); + return CreateStatusCode(STATUS_CODE_OK); + } + } + return CreateStatusCode(STATUS_CODE_NOT_OK); +} diff --git a/middleware/DeviceManager/src/DeviceManager.h b/middleware/DeviceManager/src/DeviceManager.h index c810df1..0e53ad7 100644 --- a/middleware/DeviceManager/src/DeviceManager.h +++ b/middleware/DeviceManager/src/DeviceManager.h @@ -26,9 +26,12 @@ public: const StatusCode Init(void) override; const StatusCode UnInit(void) override; const IpcMission GetIpcMissiony(void) override; - // const StatusCode GetLedManager(std::vector> &ledManagers) override; + const StatusCode ISetLedState(std::string ledName, LedState &CurrentState, + const unsigned int &KeepAliveTime = DEFAULT_KEEP_ALIVE_TIME, + const unsigned int &BlinkPeriod = LED_NOT_BLINK) override; + private: - std::vector> mLedManagers; + std::vector> mLedManagers; }; #endif diff --git a/middleware/DeviceManager/src/LedManager.cpp b/middleware/DeviceManager/src/LedManager.cpp index b23ac37..eceb2cc 100644 --- a/middleware/DeviceManager/src/LedManager.cpp +++ b/middleware/DeviceManager/src/LedManager.cpp @@ -20,10 +20,11 @@ LedManager::LedManager() { mLedHal = nullptr; mCurrentState = NEW_LED_STATE; - mBlinkPeriod = BLINKING_FAST_MS; + mBlinkPeriod = LED_NOT_BLINK; mKeepAliveTime = DEFAULT_KEEP_ALIVE_TIME; mStateAliveTime = 0; } + LedManager::LedManager(std::shared_ptr &LedHal, const LedState &CurrentState, const unsigned int &KeepAliveTime, const unsigned int &BlinkPeriod) { @@ -34,13 +35,17 @@ LedManager::LedManager(std::shared_ptr &LedHal, const LedState &Current mStateAliveTime = 0; } -StatusCode LedManager::SetLedState(std::string ledName, LedState &CurrentState, const unsigned int &KeepAliveTime, +std::shared_ptr LedManager::GetLedHal(void) { return mLedHal; } + +StatusCode LedManager::SetLedState(LedState &CurrentState, const unsigned int &KeepAliveTime, const unsigned int &BlinkPeriod) { mCurrentState = CurrentState; mKeepAliveTime = KeepAliveTime; + mBlinkPeriod = BlinkPeriod; return CreateStatusCode(STATUS_CODE_OK); } + StatusCode LedManager::GetLedState(LedState &CurrentState) { CurrentState = mCurrentState; diff --git a/middleware/DeviceManager/src/LedManager.h b/middleware/DeviceManager/src/LedManager.h index 57faa81..e9caf07 100644 --- a/middleware/DeviceManager/src/LedManager.h +++ b/middleware/DeviceManager/src/LedManager.h @@ -28,21 +28,21 @@ constexpr long int DEFAULT_KEEP_ALIVE_TIME = 1500; constexpr unsigned int DELETED_LED_STATE = -1; constexpr unsigned int DO_NOT_KEEP_ALIVE = -2; -class LedManager : public VLedManager +class LedManager { public: LedManager(); LedManager(std::shared_ptr &LedHal, const LedState &CurrentState, const unsigned int &KeepAliveTime = DEFAULT_KEEP_ALIVE_TIME, - const unsigned int &BlinkPeriod = BLINKING_FAST_MS); + const unsigned int &BlinkPeriod = LED_NOT_BLINK); ~LedManager() = default; StatusCode Init(void) { return CreateStatusCode(STATUS_CODE_NOT_OK); } StatusCode Unit(void) { return CreateStatusCode(STATUS_CODE_NOT_OK); } - StatusCode SetLedState(std::string ledName, LedState &CurrentState, - const unsigned int &KeepAliveTime = DEFAULT_KEEP_ALIVE_TIME, - const unsigned int &BlinkPeriod = LED_NOT_BLINK) override; public: + std::shared_ptr GetLedHal(void); + StatusCode SetLedState(LedState &CurrentState, const unsigned int &KeepAliveTime = DEFAULT_KEEP_ALIVE_TIME, + const unsigned int &BlinkPeriod = LED_NOT_BLINK); StatusCode GetLedState(LedState &CurrentState); StatusCode BlinkOn(LedState CurrentState, unsigned int KeepAliveTime); StatusCode BlinkOff(void);