![]() |
mFrame
|
反轉數位引腳包裝器類別 更多...
#include <InvertGeneralPin.h>
公開方法(Public Methods) | |
InvertGeneralPin (hal::digital::GeneralPin &generalPin) | |
建構一個新的反轉數位引腳物件 | |
virtual | ~InvertGeneralPin (void) override |
解構物件 | |
virtual GeneralPin::Mode | getPinMode (void) override |
取得引腳目前的工作模式 | |
virtual GeneralPin::Mode | setPinMode (GeneralPin::Mode mode) override |
設定引腳的工作模式 | |
virtual bool | getDir (void) override |
取得引腳的方向 | |
virtual hal::digital::GeneralPin & | setDir (bool dir) override |
設定引腳的方向 | |
virtual hal::digital::GeneralPin & | setInput (void) override |
將引腳模式設定為輸入模式 | |
virtual hal::digital::GeneralPin & | setOutput (void) override |
將引腳模式設定為輸出模式 | |
virtual hal::digital::GeneralOutput & | setHigh (void) override |
設定輸出為高電平(實際輸出低電平) | |
virtual hal::digital::GeneralOutput & | setLow (void) override |
設定輸出為低電平(實際輸出高電平) | |
virtual hal::digital::GeneralOutput & | setToggle (void) override |
設定引腳輸出反向電平 | |
virtual hal::digital::GeneralOutput & | setValue (bool level) override |
設定引腳輸出電平(反轉後輸出) | |
virtual bool | getValue (void) override |
讀取反轉後的引腳輸入電平 | |
![]() | |
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 |
虛擬析構函式 | |
![]() | |
virtual GeneralPin::Mode | setPinMode (GeneralPin::Mode mode) override |
設定引腳的工作模式。 | |
額外的繼承成員 | |
![]() | |
enum struct | Mode : uint8 { NOT_SUPPORT , FLOAT , PUSH_PULL , PULL_UP , PULL_DOWN , OPEN_DRAIN , OPEN_DRAIN_PULL_UP } |
GPIO引腳電氣特性模式。 更多... | |
反轉數位引腳包裝器類別
這個類別提供了一個包裝器,用於反轉底層 GeneralPin 的所有數位信號操作。 當進行輸出操作時,會將邏輯電平進行反轉後再傳送到底層引腳; 當進行輸入操作時,會將底層引腳的讀取值進行反轉後回傳。
主要用於處理反邏輯的硬體設計,例如:
ufm::hw::InvertGeneralPin::InvertGeneralPin | ( | hal::digital::GeneralPin & | generalPin | ) |
建構一個新的反轉數位引腳物件
使用提供的 GeneralPin 介面建構一個反轉包裝器。 建構後的物件會將所有數位邏輯操作進行反轉處理。
generalPin | 要包裝的底層數位引腳介面參考 |
|
overridevirtual |
解構物件
清理物件資源並進行必要的解構操作。 不會影響底層的 GeneralPin 物件。
|
overridevirtual |
取得引腳的方向
此方法直接回傳底層引腳的方向設定,方向設定不會被反轉。 用以確認該引腳是處於輸出或輸入模式。
|
overridevirtual |
取得引腳目前的工作模式
此方法直接回傳底層引腳的工作模式,模式設定不會被反轉。 可用於檢查或在切換模式前確認目前狀態。
|
overridevirtual |
讀取反轉後的引腳輸入電平
讀取底層引腳的電平狀態並進行邏輯反轉。當底層硬體輸入為高電平時 回傳邏輯低電平,當底層硬體輸入為低電平時回傳邏輯高電平。
這個方法覆寫了 hal::digital::GeneralInput 介面的 getValue 方法, 提供反轉邏輯的實作。適用於反邏輯的按鈕、開關或感測器。
|
overridevirtual |
設定引腳的方向
根據傳入的參數,直接設定底層引腳為輸出或輸入。 方向設定不會被反轉,此方法可動態調整引腳方向。
dir | 設定方向:true 為輸出,false 為輸入 |
|
overridevirtual |
設定輸出為高電平(實際輸出低電平)
將 GPIO 引腳輸出設為邏輯高電平,但由於反轉邏輯, 實際硬體引腳會輸出低電平。適用於低電平觸發的設備。
|
overridevirtual |
將引腳模式設定為輸入模式
此方法相當於執行 setDir(false) 操作,方便使用者直觀地將引腳設定為輸入模式。 方向設定不會被反轉。
|
overridevirtual |
設定輸出為低電平(實際輸出高電平)
將 GPIO 引腳輸出設為邏輯低電平,但由於反轉邏輯, 實際硬體引腳會輸出高電平。
|
overridevirtual |
將引腳模式設定為輸出模式
此方法相當於執行 setDir(true) 操作,方便使用者直觀地將引腳設定為輸出模式。 方向設定不會被反轉。
|
overridevirtual |
設定引腳的工作模式
此方法直接設定底層引腳的工作模式,模式設定不會被反轉。 使用者可根據硬體需求設定合適的模式。
mode | 指定的工作模式,選項如下: |
|
overridevirtual |
設定引腳輸出反向電平
將當前邏輯輸出電平反轉:邏輯高電平變邏輯低電平,邏輯低電平變邏輯高電平。 實際硬體電平也會相應變化(由於雙重反轉)。
|
overridevirtual |
設定引腳輸出電平(反轉後輸出)
根據輸入的邏輯電平設定輸出,但實際硬體電平會被反轉。
level | 邏輯電平:true 為邏輯高電平(實際輸出低電平), false 為邏輯低電平(實際輸出高電平) |