[zhoulongyu]: 1. 更改部分函数名, 避免不同的 class里的函数名一样, 造成代码阅读困难; 2. 优化中间件的对外接口; 3. 更改 LedManager 的构造函数的默认参数(闪烁时间改为0)

This commit is contained in:
jas 2024-01-10 10:21:11 +08:00
parent ca56f16a20
commit 1b11f55fa4
8 changed files with 44 additions and 30 deletions

View File

@ -71,7 +71,7 @@ public:
{ {
return CreateStatusCode(STATUS_CODE_VIRTUAL_FUNCTION); 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 #if 0
@ -83,7 +83,7 @@ public:
// StatusCode SetLedHalOwner(std::shared_ptr<VLedHalOwner> owner) override; // StatusCode SetLedHalOwner(std::shared_ptr<VLedHalOwner> owner) override;
StatusCode SetHalLedState(const HalLedState &state) override; StatusCode SetHalLedState(const HalLedState &state) override;
StatusCode GetLedName(std::string &LedName) override; std::string GetLedName(void) override;
private: private:
// VLedHalOwner m_LedHalOwner; // VLedHalOwner m_LedHalOwner;
@ -101,7 +101,7 @@ public:
static std::shared_ptr<IHalCpp> &GetInstance(std::shared_ptr<IHalCpp> *impl = nullptr); static std::shared_ptr<IHalCpp> &GetInstance(std::shared_ptr<IHalCpp> *impl = nullptr);
virtual StatusCode Init(void) { return CreateStatusCode(STATUS_CODE_VIRTUAL_FUNCTION); } virtual StatusCode Init(void) { return CreateStatusCode(STATUS_CODE_VIRTUAL_FUNCTION); }
virtual StatusCode UnInit(void) { return CreateStatusCode(STATUS_CODE_VIRTUAL_FUNCTION); } virtual StatusCode UnInit(void) { return CreateStatusCode(STATUS_CODE_VIRTUAL_FUNCTION); }
virtual StatusCode GetLedHal(std::vector<std::shared_ptr<VLedHal>> &ledHals) virtual StatusCode GetLedHals(std::vector<std::shared_ptr<VLedHal>> &ledHals)
{ {
return CreateStatusCode(STATUS_CODE_VIRTUAL_FUNCTION); return CreateStatusCode(STATUS_CODE_VIRTUAL_FUNCTION);
} }

View File

@ -24,7 +24,7 @@ StatusCode HalCpp::UnInit(void)
LogInfo("HalCpp::UnInit\n"); LogInfo("HalCpp::UnInit\n");
return CreateStatusCode(STATUS_CODE_OK); return CreateStatusCode(STATUS_CODE_OK);
} }
StatusCode HalCpp::GetLedHal(std::vector<std::shared_ptr<VLedHal>> &ledHals) StatusCode HalCpp::GetLedHals(std::vector<std::shared_ptr<VLedHal>> &ledHals)
{ {
ledHals = mLedHals; ledHals = mLedHals;
return CreateStatusCode(STATUS_CODE_OK); return CreateStatusCode(STATUS_CODE_OK);

View File

@ -22,7 +22,7 @@ public:
virtual ~HalCpp() = default; virtual ~HalCpp() = default;
StatusCode Init(void) override; StatusCode Init(void) override;
StatusCode UnInit(void) override; StatusCode UnInit(void) override;
StatusCode GetLedHal(std::vector<std::shared_ptr<VLedHal>> &ledHals) override; StatusCode GetLedHals(std::vector<std::shared_ptr<VLedHal>> &ledHals) override;
private: private:
std::vector<std::shared_ptr<VLedHal>> mLedHals; std::vector<std::shared_ptr<VLedHal>> mLedHals;

View File

@ -48,18 +48,6 @@ enum LedState
LED_STATE_END 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 class IDeviceManager
{ {
public: public:
@ -69,8 +57,11 @@ public:
virtual const StatusCode Init(void) { return CreateStatusCode(STATUS_CODE_OK); } virtual const StatusCode Init(void) { return CreateStatusCode(STATUS_CODE_OK); }
virtual const StatusCode UnInit(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 IpcMission GetIpcMissiony(void) { return IpcMission::END; }
// virtual const StatusCode GetLedManager(std::vector<std::shared_ptr<VLedManager>> &ledManagers) { return virtual const StatusCode ISetLedState(std::string ledName, LedState &CurrentState,
// CreateStatusCode(STATUS_CODE_VIRTUAL_FUNCTION); } const unsigned int &KeepAliveTime, const unsigned int &BlinkPeriod)
{
return CreateStatusCode(STATUS_CODE_VIRTUAL_FUNCTION);
}
}; };
bool CreateDeviceManagerModule(void); bool CreateDeviceManagerModule(void);
#endif #endif

View File

@ -19,16 +19,17 @@
const StatusCode DeviceManager::Init(void) const StatusCode DeviceManager::Init(void)
{ {
std::vector<std::shared_ptr<VLedHal>> ledHals; std::vector<std::shared_ptr<VLedHal>> ledHals;
IHalCpp::GetInstance()->GetLedHal(ledHals); IHalCpp::GetInstance()->GetLedHals(ledHals);
for (auto it = ledHals.begin(); it != ledHals.end(); ++it) { for (auto it = ledHals.begin(); it != ledHals.end(); ++it) {
std::shared_ptr<VLedHal> ledHal = *it; std::shared_ptr<VLedHal> ledHal = *it;
std::shared_ptr<LedManager> ledOut = std::shared_ptr<LedManager> ledOut =
std::make_shared<LedManager>(ledHal, NEW_LED_STATE, DEFAULT_KEEP_ALIVE_TIME, BLINKING_FAST_MS); std::make_shared<LedManager>(ledHal, NEW_LED_STATE, DEFAULT_KEEP_ALIVE_TIME, LED_NOT_BLINK);
mLedManagers.push_back(ledOut); mLedManagers.push_back(ledOut);
} }
return CreateStatusCode(STATUS_CODE_OK); return CreateStatusCode(STATUS_CODE_OK);
} }
const StatusCode DeviceManager::UnInit(void) const StatusCode DeviceManager::UnInit(void)
{ {
if (!mLedManagers.empty()) { if (!mLedManagers.empty()) {
@ -37,4 +38,18 @@ const StatusCode DeviceManager::UnInit(void)
return CreateStatusCode(STATUS_CODE_OK); return CreateStatusCode(STATUS_CODE_OK);
} }
const IpcMission DeviceManager::GetIpcMissiony(void) { return IpcMission::TEST; } 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<LedManager> ledOut = *it;
if (ledOut->GetLedHal()->GetLedName() == ledName) {
ledOut->SetLedState(CurrentState, KeepAliveTime, BlinkPeriod);
return CreateStatusCode(STATUS_CODE_OK);
}
}
return CreateStatusCode(STATUS_CODE_NOT_OK);
}

View File

@ -26,9 +26,12 @@ public:
const StatusCode Init(void) override; const StatusCode Init(void) override;
const StatusCode UnInit(void) override; const StatusCode UnInit(void) override;
const IpcMission GetIpcMissiony(void) override; const IpcMission GetIpcMissiony(void) override;
// const StatusCode GetLedManager(std::vector<std::shared_ptr<VLedManager>> &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: private:
std::vector<std::shared_ptr<VLedManager>> mLedManagers; std::vector<std::shared_ptr<LedManager>> mLedManagers;
}; };
#endif #endif

View File

@ -20,10 +20,11 @@ LedManager::LedManager()
{ {
mLedHal = nullptr; mLedHal = nullptr;
mCurrentState = NEW_LED_STATE; mCurrentState = NEW_LED_STATE;
mBlinkPeriod = BLINKING_FAST_MS; mBlinkPeriod = LED_NOT_BLINK;
mKeepAliveTime = DEFAULT_KEEP_ALIVE_TIME; mKeepAliveTime = DEFAULT_KEEP_ALIVE_TIME;
mStateAliveTime = 0; mStateAliveTime = 0;
} }
LedManager::LedManager(std::shared_ptr<VLedHal> &LedHal, const LedState &CurrentState, LedManager::LedManager(std::shared_ptr<VLedHal> &LedHal, const LedState &CurrentState,
const unsigned int &KeepAliveTime, const unsigned int &BlinkPeriod) const unsigned int &KeepAliveTime, const unsigned int &BlinkPeriod)
{ {
@ -34,13 +35,17 @@ LedManager::LedManager(std::shared_ptr<VLedHal> &LedHal, const LedState &Current
mStateAliveTime = 0; mStateAliveTime = 0;
} }
StatusCode LedManager::SetLedState(std::string ledName, LedState &CurrentState, const unsigned int &KeepAliveTime, std::shared_ptr<VLedHal> LedManager::GetLedHal(void) { return mLedHal; }
StatusCode LedManager::SetLedState(LedState &CurrentState, const unsigned int &KeepAliveTime,
const unsigned int &BlinkPeriod) const unsigned int &BlinkPeriod)
{ {
mCurrentState = CurrentState; mCurrentState = CurrentState;
mKeepAliveTime = KeepAliveTime; mKeepAliveTime = KeepAliveTime;
mBlinkPeriod = BlinkPeriod;
return CreateStatusCode(STATUS_CODE_OK); return CreateStatusCode(STATUS_CODE_OK);
} }
StatusCode LedManager::GetLedState(LedState &CurrentState) StatusCode LedManager::GetLedState(LedState &CurrentState)
{ {
CurrentState = mCurrentState; CurrentState = mCurrentState;

View File

@ -28,21 +28,21 @@ constexpr long int DEFAULT_KEEP_ALIVE_TIME = 1500;
constexpr unsigned int DELETED_LED_STATE = -1; constexpr unsigned int DELETED_LED_STATE = -1;
constexpr unsigned int DO_NOT_KEEP_ALIVE = -2; constexpr unsigned int DO_NOT_KEEP_ALIVE = -2;
class LedManager : public VLedManager class LedManager
{ {
public: public:
LedManager(); LedManager();
LedManager(std::shared_ptr<VLedHal> &LedHal, const LedState &CurrentState, LedManager(std::shared_ptr<VLedHal> &LedHal, const LedState &CurrentState,
const unsigned int &KeepAliveTime = DEFAULT_KEEP_ALIVE_TIME, const unsigned int &KeepAliveTime = DEFAULT_KEEP_ALIVE_TIME,
const unsigned int &BlinkPeriod = BLINKING_FAST_MS); const unsigned int &BlinkPeriod = LED_NOT_BLINK);
~LedManager() = default; ~LedManager() = default;
StatusCode Init(void) { return CreateStatusCode(STATUS_CODE_NOT_OK); } StatusCode Init(void) { return CreateStatusCode(STATUS_CODE_NOT_OK); }
StatusCode Unit(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: public:
std::shared_ptr<VLedHal> 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 GetLedState(LedState &CurrentState);
StatusCode BlinkOn(LedState CurrentState, unsigned int KeepAliveTime); StatusCode BlinkOn(LedState CurrentState, unsigned int KeepAliveTime);
StatusCode BlinkOff(void); StatusCode BlinkOff(void);