mFrame
載入中...
搜尋中...
無符合項目
ufm::hw::SimpleButton 類別 參考文件
類別ufm::hw::SimpleButton的繼承圖:
ufm::lang::Object ufm::hw::PulseTimer::Event ufm::lang::Updatable ufm::lang::Interface

複合項目

struct  Event
 [Interface] 按鈕事件處理介面。 更多...
 
union  Flag
 [Union] 按鈕狀態標誌。 更多...
 

公開型態

enum class  State : uint8 {
  SHORT_PRESS , DOUBLE_PRESS , LONG_PRESS , SHORT_LONG_PRESS ,
  NONE
}
 按鈕按壓類型枚舉。 更多...
 

公開方法(Public Methods)

 SimpleButton (Event *event=nullptr, uint32 debounce=10000UL, uint32 shortPress=100000UL, uint32 longPress=2000000UL)
 Construct a new Simple Button object.
 
virtual ~SimpleButton (void) override
 Destroy the object.
 
virtual void onHighDuration (uint32 microscronds) override
 處理高電平持續時間事件。
 
virtual void onLowDuration (uint32 microscronds) override
 處理低電平持續時間事件。
 
virtual void update (void) override
 更新方法
 
void setLongPress (uint32 micros)
 設定長按時間。
 
void setShortPress (uint32 micros)
 設定短按時間。
 
void setNagetive (bool nagetive)
 設定是否為反向按鈕。
 
void setEvent (Event *event)
 設定按鈕事件處理物件。
 
hal::digital::EdgeTrigger::EventgetEdgeTriggerEvent (void)
 取得邊緣觸發事件物件。
 
- 公開方法(Public Methods) 繼承自 ufm::lang::Object
void * operator new (size_t n)
 使用運算子 new 分配記憶體
 
void * operator new (size_t n, void *p)
 在指定記憶體上調用運算子 new
 
virtual ufm::lang::ObjectgetObject (void) override
 取得對應的 Object 物件
 
void delay (int milliseconds) const
 延遲指定的毫秒數進行執行緒等待
 
bool equals (Object *object) const
 判斷與另一物件是否為相同參照(指標型態比較)
 
bool equals (Object &object) const
 判斷與另一物件是否為相同參照(參照型態比較)
 
void wait (void) const
 使當前線程等待直到被通知
 
bool wait (int timeout) const
 等待通知或超時
 
bool yield (void) const
 讓執行緒讓渡控制權給同優先權的下一個執行緒
 
int lock (void) const
 核心鎖定,鎖定期間禁止線程切換
 
int unlock (void) const
 核心解鎖
 
ufm::sys::ThreadcurrentThread (void) const
 取得當前執行緒指標
 
virtual int hashcode (void) const
 返回對象的哈希碼值。支持這種方法是為了散列表,如HashMap提供的那樣。
 
- 公開方法(Public Methods) 繼承自 ufm::lang::Interface
virtual ~Interface (void)=default
 虛擬析構函式
 

公開屬性

ufm::hw::PulseTimer vPulseTimer
 
EventvEvent
 
uint32 vShortPressThreshold
 
uint32 vLongPressThreshold
 
Flag vFlag
 
bool vNagetive
 

列舉型態成員說明文件

◆ State

enum class ufm::hw::SimpleButton::State : uint8
strong

按鈕按壓類型枚舉。

定義了按鈕的按壓類型,包括短按、長按和無按壓。

列舉值
SHORT_PRESS 

短按

DOUBLE_PRESS 

雙擊

LONG_PRESS 

長按

SHORT_LONG_PRESS 

短按後長按

NONE 

無按壓

建構子與解構子說明文件

◆ SimpleButton()

ufm::hw::SimpleButton::SimpleButton ( Event * event = nullptr,
uint32 debounce = 10000UL,
uint32 shortPress = 100000UL,
uint32 longPress = 2000000UL )

Construct a new Simple Button object.

初始化按鈕,設定去彈跳時間、短按和長按的閾值。

參數
event按鈕事件處理物件指標,預設為 nullptr。
debounce去彈跳時間,以微秒為單位,預設為 10000 微秒(10 毫秒)。
shortPress短按時間閾值,以微秒為單位,預設為 100000 微秒(100 毫秒)。
longPress長按時間閾值,以微秒為單位,預設為 2000000 微秒(2 秒)。

函式成員說明文件

◆ getEdgeTriggerEvent()

hal::digital::EdgeTrigger::Event & ufm::hw::SimpleButton::getEdgeTriggerEvent ( void )
inline

取得邊緣觸發事件物件。

傳回值
hal::digital::EdgeTrigger::Event& 返回指向按鈕事件處理物件的指標。

◆ onHighDuration()

virtual void ufm::hw::SimpleButton::onHighDuration ( uint32 microscronds)
overridevirtual

處理高電平持續時間事件。

當由高電平轉換為低電平後,高電平持續時間達到指定的微秒數時, 將自動呼叫此方法。

參數
microscronds高電平持續時間,以微秒為單位。

實作 ufm::hw::PulseTimer::Event.

◆ onLowDuration()

virtual void ufm::hw::SimpleButton::onLowDuration ( uint32 microscronds)
overridevirtual

處理低電平持續時間事件。

當由低電平轉換為高電平後,低電平持續時間達到指定的微秒數時, 將自動呼叫此方法。

參數
microscronds低電平持續時間,以微秒為單位。

實作 ufm::hw::PulseTimer::Event.

◆ setEvent()

void ufm::hw::SimpleButton::setEvent ( Event * event)
inline

設定按鈕事件處理物件。

參數
event指向 Event 物件的指標。

◆ setLongPress()

void ufm::hw::SimpleButton::setLongPress ( uint32 micros)
inline

設定長按時間。

參數
micros長按時間,以微秒為單位。

◆ setNagetive()

void ufm::hw::SimpleButton::setNagetive ( bool nagetive)
inline

設定是否為反向按鈕。

參數
nagetivetrue 表示為反向按鈕,false 表示為正向按鈕。

◆ setShortPress()

void ufm::hw::SimpleButton::setShortPress ( uint32 micros)
inline

設定短按時間。

參數
micros短按時間,以微秒為單位。

◆ update()

virtual void ufm::hw::SimpleButton::update ( void )
overridevirtual

更新方法

當系統需要更新物件狀態時被呼叫, 實現類應在此方法中進行必要的狀態更新邏輯。

實作 ufm::lang::Updatable.

資料成員說明文件

◆ vEvent

Event* ufm::hw::SimpleButton::vEvent

按鈕事件處理物件指標

◆ vFlag

Flag ufm::hw::SimpleButton::vFlag

按鈕狀態標誌

◆ vLongPressThreshold

uint32 ufm::hw::SimpleButton::vLongPressThreshold

長按時間,單位為微秒

◆ vNagetive

bool ufm::hw::SimpleButton::vNagetive

是否為反向

◆ vShortPressThreshold

uint32 ufm::hw::SimpleButton::vShortPressThreshold

短按時間閾值,單位為微秒


此類別(class) 文件是由下列檔案中產生: