mFrame
載入中...
搜尋中...
無符合項目
SerialBusQueue.h
1
7#ifndef MFRAME_1571B467_887D_4AC9_A803_148C427F0C68
8#define MFRAME_1571B467_887D_4AC9_A803_148C427F0C68
9
10/* ***************************************************************************************
11 * Include
12 */
13
14//----------------------------------------------------------------------------------------
15
16//----------------------------------------------------------------------------------------
17#include "./../util/ArrayQueue.h"
18#include "./SerialBus.h"
19
20/* ***************************************************************************************
21 * Namespace
22 */
23namespace ufm::io {
24 class SerialBusQueue;
25} // namespace ufm::io
26
27/* ***************************************************************************************
28 * Class/Interface/Struct/Enum
29 */
30
42 /* *************************************************************************************
43 * Struct
44 */
45 public:
60
61 /* *************************************************************************************
62 * Variable
63 */
64 private:
68 /* *************************************************************************************
69 * Abstract Method
70 */
71
72 /* *************************************************************************************
73 * Construct Method
74 */
75 public:
84 SerialBusQueue(hal::serial::IICMaster& iicMaster, int queueSize);
85
95 ufm::lang::Memory queueBuffer) noexcept;
96
102 virtual ~SerialBusQueue(void) override;
103
104 /* *************************************************************************************
105 * Operator Method
106 */
107 public:
108 /* *************************************************************************************
109 * Override Method - ufm::io::SerialBus
110 */
117 virtual bool isBusy(void) override;
118
131 virtual bool write(uint16 address,
132 int length,
133 const void* source,
134 SerialBus::Event* event) override;
135
148 virtual bool read(uint16 address,
149 int length,
150 void* buffer,
151 SerialBus::Event* event) override;
152
153 /* *************************************************************************************
154 * Override Method - ufm::io::SerialBusEvent
155 */
156 public:
162 virtual void onComplete(int completedQuantity) override;
163
171 virtual void onNoResponseEvent(int completedQuantity) override;
172
180 virtual void onBusErrorEvent(int completedQuantity) override;
181
189 virtual void onCancel(int completedQuantity) override;
190
191 /* *************************************************************************************
192 * Public Method
193 */
194 public:
201 void cancelAll(void);
202
209 bool isEmpty(void);
210
211 /* *************************************************************************************
212 * Protected Method
213 */
214
215 /* *************************************************************************************
216 * Private Method
217 */
218 private:
232 bool pushBlock(
233 uint16 address, int length, void* buffer, SerialBus::Event* event, bool write);
234
241 void pollBlock(void);
242
243 /* *************************************************************************************
244 * Static Variable
245 */
246
247 /* *************************************************************************************
248 * Static Method
249 */
250};
251
252/* ***************************************************************************************
253 * End of file
254 */
255
256#endif /* MFRAME_1571B467_887D_4AC9_A803_148C427F0C68 */
序列總線基礎類別
Definition SerialBus.h:44
SerialBus佇列管理器
Definition SerialBusQueue.h:41
virtual void onComplete(int completedQuantity) override
傳輸完成事件處理
virtual bool write(uint16 address, int length, const void *source, SerialBus::Event *event) override
寫入資料到指定設備位址
virtual ~SerialBusQueue(void) override
解構SerialBusQueue物件
virtual bool isBusy(void) override
檢查總線是否忙碌
virtual void onBusErrorEvent(int completedQuantity) override
總線錯誤事件處理
SerialBusQueue(hal::serial::IICMaster &iicMaster, ufm::lang::Memory queueBuffer) noexcept
建構一個新的SerialBusQueue物件
virtual void onNoResponseEvent(int completedQuantity) override
無回應事件處理
virtual bool read(uint16 address, int length, void *buffer, SerialBus::Event *event) override
從指定設備位址讀取資料
bool isEmpty(void)
檢查佇列是否為空
virtual void onCancel(int completedQuantity) override
取消事件處理
void cancelAll(void)
取消所有佇列中的傳輸請求
SerialBusQueue(hal::serial::IICMaster &iicMaster, int queueSize)
建構一個新的SerialBusQueue物件
動態記憶體管理類別
Definition Memory.h:38
指標陣列佇列類別,實作 FIFO (先進先出) 佇列結構。
Definition ArrayQueue.h:98
輸入/輸出操作命名空間
Definition Buffer.h:24
[Interface] IIC主端設備介面
Definition IICMaster.h:39
序列總線事件處理介面
Definition SerialBus.h:241
SerialBus 佇列區塊結構
Definition SerialBusQueue.h:54
uint16 vLength
Definition SerialBusQueue.h:57
uint16 vAddress
Definition SerialBusQueue.h:58
uint8 * vBuffer
Definition SerialBusQueue.h:56
ufm::io::SerialBus::Event * vEvent
Definition SerialBusQueue.h:55