![]() |
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) |
取得邊緣觸發事件物件。 | |
![]() | |
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提供的那樣。 | |
![]() | |
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 |
短按時間閾值,單位為微秒