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

序列總線基礎類別 更多...

#include <SerialBus.h>

類別ufm::io::SerialBus的繼承圖:
ufm::lang::Object hal::serial::IIC::EventTransfer hal::serial::IIC::EventReceiver hal::serial::IIC::EventStop hal::serial::IICMaster::EventError ufm::lang::Interface ufm::io::SerialBusQueue

複合項目

struct  Event
 序列總線事件處理介面 更多...
 

公開方法(Public Methods)

 SerialBus (hal::serial::IICMaster &iicMaster)
 建構SerialBus物件
 
virtual ~SerialBus (void) override
 解構SerialBus物件
 
virtual bool onTransfer (uint8 &data) override
 IIC 傳輸事件處理
 
virtual bool onReceiver (const uint8 data) override
 IIC 接收事件處理
 
virtual void onStop (int queueRemainingCount) override
 IIC 停止事件處理
 
virtual void onNanAcknowledgeEvent (int queueRemainingCount) override
 IIC 無回應錯誤事件處理
 
virtual void onBusBusyEvent (int queueRemainingCount) override
 IIC 總線忙碌錯誤事件處理
 
virtual bool isBusy (void)
 檢查總線是否忙碌
 
virtual bool write (uint16 address, int length, const void *source, SerialBus::Event *event)
 寫入資料到指定設備
 
virtual bool read (uint16 address, int length, void *buffer, SerialBus::Event *event)
 從指定設備讀取資料
 
virtual bool cancel (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
 虛擬析構函式
 

詳細描述

序列總線基礎類別

實現序列總線的基本功能,用於處理 IIC 通訊協議。提供讀寫操作和事件處理機制, 並整合 IIC 主設備介面的各種事件回調。此類別作為其他序列總線實作的基礎, 提供統一的介面來處理同步和非同步的資料傳輸。

1.0.0

建構子與解構子說明文件

◆ SerialBus()

ufm::io::SerialBus::SerialBus ( hal::serial::IICMaster & iicMaster)

建構SerialBus物件

初始化序列總線物件並綁定 IIC 主設備。設定各種事件處理器, 準備進行 IIC 通訊操作。

參數
iicMasterIIC 主設備參考,提供硬體通訊功能

◆ ~SerialBus()

virtual ufm::io::SerialBus::~SerialBus ( void )
overridevirtual

解構SerialBus物件

清理資源並取消正在進行的傳輸操作。

函式成員說明文件

◆ cancel()

virtual bool ufm::io::SerialBus::cancel ( void )
virtual

取消當前傳輸

中止正在進行的傳輸操作,釋放總線資源。

傳回值
true 成功取消傳輸
false 沒有傳輸可取消或取消失敗

◆ isBusy()

virtual bool ufm::io::SerialBus::isBusy ( void )
virtual

檢查總線是否忙碌

傳回值
true 總線忙碌中,有傳輸正在進行
false 總線閒置,可以開始新的傳輸

ufm::io::SerialBusQueue重新實作.

◆ onBusBusyEvent()

virtual void ufm::io::SerialBus::onBusBusyEvent ( int queueRemainingCount)
overridevirtual

IIC 總線忙碌錯誤事件處理

當總線忙碌錯誤時被呼叫,觸發總線錯誤事件。

參數
queueRemainingCount佇列中剩餘的資料數量

實作 hal::serial::IICMaster::EventError.

◆ onNanAcknowledgeEvent()

virtual void ufm::io::SerialBus::onNanAcknowledgeEvent ( int queueRemainingCount)
overridevirtual

IIC 無回應錯誤事件處理

當發生 NAK 錯誤時被呼叫,觸發無回應事件。

參數
queueRemainingCount佇列中剩餘的資料數量

實作 hal::serial::IICMaster::EventError.

◆ onReceiver()

virtual bool ufm::io::SerialBus::onReceiver ( const uint8 data)
overridevirtual

IIC 接收事件處理

當 IIC 硬體接收到資料時被呼叫,將資料存入緩衝區。

參數
data接收到的資料
傳回值
true 繼續接收下一個位元組
false 停止接收

實作 hal::serial::IIC::EventReceiver.

◆ onStop()

virtual void ufm::io::SerialBus::onStop ( int queueRemainingCount)
overridevirtual

IIC 停止事件處理

當 IIC 通訊停止時被呼叫,觸發相應的完成或錯誤事件。

參數
queueRemainingCount佇列中剩餘的資料數量

實作 hal::serial::IIC::EventStop.

◆ onTransfer()

virtual bool ufm::io::SerialBus::onTransfer ( uint8 & data)
overridevirtual

IIC 傳輸事件處理

當 IIC 硬體準備發送下一個位元組時被呼叫,從緩衝區提供資料。

參數
data要傳輸的資料引用
傳回值
true 繼續傳輸下一個位元組
false 結束傳輸

實作 hal::serial::IIC::EventTransfer.

◆ read()

virtual bool ufm::io::SerialBus::read ( uint16 address,
int length,
void * buffer,
SerialBus::Event * event )
virtual

從指定設備讀取資料

從指定位址的 IIC 設備讀取資料。操作為非阻塞式,結果透過事件回調通知。

參數
address目標設備的 7-bit 位址
length要讀取的資料長度(位元組數)
buffer接收資料的緩衝區指標
event傳輸事件回調,可為 nullptr
傳回值
true 讀取操作成功開始
false 讀取操作失敗(總線忙碌或參數無效)

ufm::io::SerialBusQueue重新實作.

◆ write()

virtual bool ufm::io::SerialBus::write ( uint16 address,
int length,
const void * source,
SerialBus::Event * event )
virtual

寫入資料到指定設備

向指定位址的 IIC 設備寫入資料。操作為非阻塞式,結果透過事件回調通知。

參數
address目標設備的 7-bit 位址
length要寫入的資料長度(位元組數)
source來源資料緩衝區指標
event傳輸事件回調,可為 nullptr
傳回值
true 寫入操作成功開始
false 寫入操作失敗(總線忙碌或參數無效)

ufm::io::SerialBusQueue重新實作.


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