![]() |
mFrame
|
序列總線基礎類別 更多...
#include <SerialBus.h>
複合項目 | |
| 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::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 |
| 虛擬析構函式 | |
序列總線基礎類別
實現序列總線的基本功能,用於處理 IIC 通訊協議。提供讀寫操作和事件處理機制, 並整合 IIC 主設備介面的各種事件回調。此類別作為其他序列總線實作的基礎, 提供統一的介面來處理同步和非同步的資料傳輸。
| ufm::io::SerialBus::SerialBus | ( | hal::serial::IICMaster & | iicMaster | ) |
建構SerialBus物件
初始化序列總線物件並綁定 IIC 主設備。設定各種事件處理器, 準備進行 IIC 通訊操作。
| iicMaster | IIC 主設備參考,提供硬體通訊功能 |
|
overridevirtual |
解構SerialBus物件
清理資源並取消正在進行的傳輸操作。
|
virtual |
取消當前傳輸
中止正在進行的傳輸操作,釋放總線資源。
|
virtual |
|
overridevirtual |
IIC 總線忙碌錯誤事件處理
當總線忙碌錯誤時被呼叫,觸發總線錯誤事件。
| queueRemainingCount | 佇列中剩餘的資料數量 |
|
overridevirtual |
IIC 無回應錯誤事件處理
當發生 NAK 錯誤時被呼叫,觸發無回應事件。
| queueRemainingCount | 佇列中剩餘的資料數量 |
|
overridevirtual |
IIC 接收事件處理
當 IIC 硬體接收到資料時被呼叫,將資料存入緩衝區。
| data | 接收到的資料 |
|
overridevirtual |
IIC 停止事件處理
當 IIC 通訊停止時被呼叫,觸發相應的完成或錯誤事件。
| queueRemainingCount | 佇列中剩餘的資料數量 |
|
overridevirtual |
IIC 傳輸事件處理
當 IIC 硬體準備發送下一個位元組時被呼叫,從緩衝區提供資料。
| data | 要傳輸的資料引用 |
|
virtual |
從指定設備讀取資料
從指定位址的 IIC 設備讀取資料。操作為非阻塞式,結果透過事件回調通知。
| address | 目標設備的 7-bit 位址 |
| length | 要讀取的資料長度(位元組數) |
| buffer | 接收資料的緩衝區指標 |
| event | 傳輸事件回調,可為 nullptr |
在ufm::io::SerialBusQueue重新實作.
|
virtual |
寫入資料到指定設備
向指定位址的 IIC 設備寫入資料。操作為非阻塞式,結果透過事件回調通知。
| address | 目標設備的 7-bit 位址 |
| length | 要寫入的資料長度(位元組數) |
| source | 來源資料緩衝區指標 |
| event | 傳輸事件回調,可為 nullptr |
在ufm::io::SerialBusQueue重新實作.