![]() |
mFrame
|
複合項目 | |
| 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::Event & | getEdgeTriggerEvent (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::Object & | getObject (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::Thread * | currentThread (void) const |
| 取得當前執行緒指標 | |
| virtual int | hashcode (void) const |
| 返回對象的哈希碼值。支持這種方法是為了散列表,如HashMap提供的那樣。 | |
公開方法(Public Methods) 繼承自 ufm::lang::Interface | |
| virtual | ~Interface (void)=default |
| 虛擬析構函式 | |
公開屬性 | |
| ufm::hw::PulseTimer | vPulseTimer |
| Event * | vEvent |
| uint32 | vShortPressThreshold |
| uint32 | vLongPressThreshold |
| Flag | vFlag |
| bool | vNagetive |
|
strong |
| 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 秒)。 |
|
inline |
取得邊緣觸發事件物件。
|
overridevirtual |
處理高電平持續時間事件。
當由高電平轉換為低電平後,高電平持續時間達到指定的微秒數時, 將自動呼叫此方法。
| microscronds | 高電平持續時間,以微秒為單位。 |
|
overridevirtual |
處理低電平持續時間事件。
當由低電平轉換為高電平後,低電平持續時間達到指定的微秒數時, 將自動呼叫此方法。
| microscronds | 低電平持續時間,以微秒為單位。 |
|
inline |
設定長按時間。
| micros | 長按時間,以微秒為單位。 |
|
inline |
設定是否為反向按鈕。
| nagetive | true 表示為反向按鈕,false 表示為正向按鈕。 |
|
inline |
設定短按時間。
| micros | 短按時間,以微秒為單位。 |
|
overridevirtual |
| Event* ufm::hw::SimpleButton::vEvent |
按鈕事件處理物件指標
| Flag ufm::hw::SimpleButton::vFlag |
按鈕狀態標誌
| uint32 ufm::hw::SimpleButton::vLongPressThreshold |
長按時間,單位為微秒
| bool ufm::hw::SimpleButton::vNagetive |
是否為反向
| uint32 ufm::hw::SimpleButton::vShortPressThreshold |
短按時間閾值,單位為微秒