mFrame
載入中...
搜尋中...
無符合項目
ufm::hw::InvertGeneralPin 類別 參考文件

反轉數位引腳包裝器類別 更多...

#include <InvertGeneralPin.h>

類別ufm::hw::InvertGeneralPin的繼承圖:
ufm::lang::Object hal::digital::GeneralPin ufm::lang::Interface hal::digital::GeneralOutput hal::digital::GeneralInput

公開方法(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::GeneralPinsetDir (bool dir) override
 設定引腳的方向
 
virtual hal::digital::GeneralPinsetInput (void) override
 將引腳模式設定為輸入模式
 
virtual hal::digital::GeneralPinsetOutput (void) override
 將引腳模式設定為輸出模式
 
virtual hal::digital::GeneralOutputsetHigh (void) override
 設定輸出為高電平(實際輸出低電平)
 
virtual hal::digital::GeneralOutputsetLow (void) override
 設定輸出為低電平(實際輸出高電平)
 
virtual hal::digital::GeneralOutputsetToggle (void) override
 設定引腳輸出反向電平
 
virtual hal::digital::GeneralOutputsetValue (bool level) override
 設定引腳輸出電平(反轉後輸出)
 
virtual bool getValue (void) override
 讀取反轉後的引腳輸入電平
 
- 公開方法(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
 虛擬析構函式
 
- 公開方法(Public Methods) 繼承自 hal::digital::GeneralPin
virtual GeneralPin::Mode setPinMode (GeneralPin::Mode mode) override
 設定引腳的工作模式。
 

額外的繼承成員

- 公開型態 繼承自 hal::digital::GeneralPin
enum struct  Mode : uint8 {
  NOT_SUPPORT , FLOAT , PUSH_PULL , PULL_UP ,
  PULL_DOWN , OPEN_DRAIN , OPEN_DRAIN_PULL_UP
}
 GPIO引腳電氣特性模式。 更多...
 

詳細描述

反轉數位引腳包裝器類別

這個類別提供了一個包裝器,用於反轉底層 GeneralPin 的所有數位信號操作。 當進行輸出操作時,會將邏輯電平進行反轉後再傳送到底層引腳; 當進行輸入操作時,會將底層引腳的讀取值進行反轉後回傳。

主要用於處理反邏輯的硬體設計,例如:

  • 低電平觸發的 LED(寫入 true 時 LED 亮起,實際輸出低電平)
  • 反邏輯的按鈕或開關
  • 需要反轉信號的硬體電路

建構子與解構子說明文件

◆ InvertGeneralPin()

ufm::hw::InvertGeneralPin::InvertGeneralPin ( hal::digital::GeneralPin & generalPin)

建構一個新的反轉數位引腳物件

使用提供的 GeneralPin 介面建構一個反轉包裝器。 建構後的物件會將所有數位邏輯操作進行反轉處理。

參數
generalPin要包裝的底層數位引腳介面參考
傳入的 generalPin 參考必須在此物件的生命週期內保持有效
引腳的模式設定和方向設定不會被反轉,只有邏輯電平會被反轉

◆ ~InvertGeneralPin()

virtual ufm::hw::InvertGeneralPin::~InvertGeneralPin ( void )
overridevirtual

解構物件

清理物件資源並進行必要的解構操作。 不會影響底層的 GeneralPin 物件。

函式成員說明文件

◆ getDir()

virtual bool ufm::hw::InvertGeneralPin::getDir ( void )
overridevirtual

取得引腳的方向

此方法直接回傳底層引腳的方向設定,方向設定不會被反轉。 用以確認該引腳是處於輸出或輸入模式。

傳回值
true 當前設定為輸出模式
false 當前設定為輸入模式

實作 hal::digital::GeneralPin.

◆ getPinMode()

virtual GeneralPin::Mode ufm::hw::InvertGeneralPin::getPinMode ( void )
overridevirtual

取得引腳目前的工作模式

此方法直接回傳底層引腳的工作模式,模式設定不會被反轉。 可用於檢查或在切換模式前確認目前狀態。

傳回值
hal::digital::GeneralPin::Mode 目前的引腳工作模式

實作 hal::digital::GeneralPin.

◆ getValue()

virtual bool ufm::hw::InvertGeneralPin::getValue ( void )
overridevirtual

讀取反轉後的引腳輸入電平

讀取底層引腳的電平狀態並進行邏輯反轉。當底層硬體輸入為高電平時 回傳邏輯低電平,當底層硬體輸入為低電平時回傳邏輯高電平。

這個方法覆寫了 hal::digital::GeneralInput 介面的 getValue 方法, 提供反轉邏輯的實作。適用於反邏輯的按鈕、開關或感測器。

傳回值
true 底層硬體輸入為低電平(反轉後的邏輯高電平)
false 底層硬體輸入為高電平(反轉後的邏輯低電平)
此方法是執行緒安全的,前提是底層的 GeneralPin 實作也是執行緒安全的
硬體電平與邏輯電平相反

實作 hal::digital::GeneralInput.

◆ setDir()

virtual hal::digital::GeneralPin & ufm::hw::InvertGeneralPin::setDir ( bool dir)
overridevirtual

設定引腳的方向

根據傳入的參數,直接設定底層引腳為輸出或輸入。 方向設定不會被反轉,此方法可動態調整引腳方向。

參數
dir設定方向:true 為輸出,false 為輸入
傳回值
hal::digital::GeneralPin& 回傳自身參考,支援鏈式呼叫

實作 hal::digital::GeneralPin.

◆ setHigh()

virtual hal::digital::GeneralOutput & ufm::hw::InvertGeneralPin::setHigh ( void )
overridevirtual

設定輸出為高電平(實際輸出低電平)

將 GPIO 引腳輸出設為邏輯高電平,但由於反轉邏輯, 實際硬體引腳會輸出低電平。適用於低電平觸發的設備。

傳回值
hal::digital::GeneralOutput& 回傳自身參考,支援鏈式呼叫
邏輯高電平 -> 實際硬體低電平

實作 hal::digital::GeneralOutput.

◆ setInput()

virtual hal::digital::GeneralPin & ufm::hw::InvertGeneralPin::setInput ( void )
overridevirtual

將引腳模式設定為輸入模式

此方法相當於執行 setDir(false) 操作,方便使用者直觀地將引腳設定為輸入模式。 方向設定不會被反轉。

傳回值
hal::digital::GeneralPin& 回傳自身參考,支援鏈式呼叫

實作 hal::digital::GeneralPin.

◆ setLow()

virtual hal::digital::GeneralOutput & ufm::hw::InvertGeneralPin::setLow ( void )
overridevirtual

設定輸出為低電平(實際輸出高電平)

將 GPIO 引腳輸出設為邏輯低電平,但由於反轉邏輯, 實際硬體引腳會輸出高電平。

傳回值
hal::digital::GeneralOutput& 回傳自身參考,支援鏈式呼叫
邏輯低電平 -> 實際硬體高電平

實作 hal::digital::GeneralOutput.

◆ setOutput()

virtual hal::digital::GeneralPin & ufm::hw::InvertGeneralPin::setOutput ( void )
overridevirtual

將引腳模式設定為輸出模式

此方法相當於執行 setDir(true) 操作,方便使用者直觀地將引腳設定為輸出模式。 方向設定不會被反轉。

傳回值
hal::digital::GeneralPin& 回傳自身參考,支援鏈式呼叫

實作 hal::digital::GeneralPin.

◆ setPinMode()

virtual GeneralPin::Mode ufm::hw::InvertGeneralPin::setPinMode ( GeneralPin::Mode mode)
overridevirtual

設定引腳的工作模式

此方法直接設定底層引腳的工作模式,模式設定不會被反轉。 使用者可根據硬體需求設定合適的模式。

參數
mode指定的工作模式,選項如下:
傳回值
hal::digital::GeneralPin::Mode 設定成功後的工作模式

◆ setToggle()

virtual hal::digital::GeneralOutput & ufm::hw::InvertGeneralPin::setToggle ( void )
overridevirtual

設定引腳輸出反向電平

將當前邏輯輸出電平反轉:邏輯高電平變邏輯低電平,邏輯低電平變邏輯高電平。 實際硬體電平也會相應變化(由於雙重反轉)。

傳回值
hal::digital::GeneralOutput& 回傳自身參考,支援鏈式呼叫
此操作會讀取當前硬體狀態並進行反轉

實作 hal::digital::GeneralOutput.

◆ setValue()

virtual hal::digital::GeneralOutput & ufm::hw::InvertGeneralPin::setValue ( bool level)
overridevirtual

設定引腳輸出電平(反轉後輸出)

根據輸入的邏輯電平設定輸出,但實際硬體電平會被反轉。

參數
level邏輯電平:true 為邏輯高電平(實際輸出低電平), false 為邏輯低電平(實際輸出高電平)
傳回值
hal::digital::GeneralOutput& 回傳自身參考,支援鏈式呼叫
邏輯電平與實際硬體電平相反

實作 hal::digital::GeneralOutput.


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