1#ifndef OF_NOTIFY_GUARD_HPP
2#define OF_NOTIFY_GUARD_HPP
18 template<
typename StatusT>
29 bool set(
const StatusT& status)
31 if (m_last_status.has_value() && m_last_status.value() == status)
35 m_last_status = status;
45 m_last_status.reset();
51 const std::optional<StatusT>&
current()
const
58 std::optional<StatusT> m_last_status;
60 void sendStatus(
const StatusT& status);
65 inline void NotifyGuard<LEDStatus>::sendStatus(
const LEDStatus& status)
72 inline void NotifyGuard<BuzzerStatus>::sendStatus(
const BuzzerStatus& status)
const std::optional< StatusT > & current() const
获取当前缓存的状态(如果有)
定义 NotifyGuard.hpp:51
bool set(const StatusT &status)
设置状态,只有与上次不同时才发送
定义 NotifyGuard.hpp:29
NotifyGuard(const FixedString< MAX_KEY_LEN > &key)
定义 NotifyGuard.hpp:22
void reset()
重置缓存,下次 set 将强制发送
定义 NotifyGuard.hpp:43
static void setBuzzerStatus(const FixedString< MAX_KEY_LEN > &key, const BuzzerStatus &status)
定义 NotifyHub.cpp:131
static void setLEDStatus(const FixedString< MAX_KEY_LEN > &key, const LEDStatus &status)
定义 NotifyHub.cpp:149
定义 JointSetpointGenerator.hpp:9