mFrame
載入中...
搜尋中...
無符合項目
SerialBus.h
1
7#ifndef MFRAME_A1AF0B90_C246_476C_9487_B0164A301552
8#define MFRAME_A1AF0B90_C246_476C_9487_B0164A301552
9
10/* ***************************************************************************************
11 * Include
12 */
13
14//----------------------------------------------------------------------------------------
15
16//----------------------------------------------------------------------------------------
17#include "./../../hal/serial/IICMaster.h"
18#include "./../../ufm/lang/Object.h"
19
20/* ***************************************************************************************
21 * Namespace
22 */
23namespace ufm::io {
24 class SerialBus;
25} // namespace ufm::io
26
27/* ***************************************************************************************
28 * Class/Interface/Struct/Enum
29 */
30
44 /* *************************************************************************************
45 * Class/Interface/Struct/Enum
46 */
47 public:
56 struct Event {
60 virtual void onComplete(void) abstract;
61
67 virtual void onNoResponseEvent(int completedQuantity) abstract;
68
74 virtual void onBusErrorEvent(int completedQuantity) abstract;
75
81 virtual void onCancel(int completedQuantity) abstract;
82 };
83
84 /* *************************************************************************************
85 * Variable
86 */
87 private:
88 hal::serial::IICMaster& vIICMaster;
90 uint8* vBuffer;
91 uint16 vLength;
92 uint16 vIndex;
93
94 /* *************************************************************************************
95 * Abstract Method
96 */
97
98 /* *************************************************************************************
99 * Construct Method
100 */
101 public:
109
115 virtual ~SerialBus(void) override;
116
117 /* *************************************************************************************
118 * Operator Method
119 */
120
121 /* *************************************************************************************
122 * Override Method - hal::serial::IICEventTransfer
123 */
124 public:
125 virtual bool onTransfer(uint8& data) override;
126
127 /* *************************************************************************************
128 * Override Method - hal::serial::IICEventReceiver
129 */
130 public:
131 virtual bool onReceiver(const uint8 data) override;
132
133 /* *************************************************************************************
134 * Override Method - hal::serial::IICEventStop
135 */
136 public:
137 virtual void onStop(void) override;
138
139 /* *************************************************************************************
140 * Override Method - hal::serial::IICEventError
141 */
142 public:
143 virtual void onNanAcknowledgeEvent(int queueRemainingCount) override;
144
145 virtual void onBusBusyEvent(void) override;
146
147 /* *************************************************************************************
148 * Public Method
149 */
150 public:
151 virtual bool isBusy(void);
152
153 virtual bool write(uint16 address,
154 int length,
155 const void* source,
156 SerialBus::Event* event);
157
158 virtual bool read(uint16 address, int length, void* buffer, SerialBus::Event* event);
159
160 virtual bool cancel(void);
161
162 /* *************************************************************************************
163 * Protected Method
164 */
165
166 /* *************************************************************************************
167 * Private Method
168 */
169 private:
175 void flush(void);
176
177 /* *************************************************************************************
178 * Static Variable
179 */
180
181 /* *************************************************************************************
182 * Static Method
183 */
184};
185
186/* ***************************************************************************************
187 * End of file
188 */
189
190#endif /* MFRAME_A1AF0B90_C246_476C_9487_B0164A301552 */
[Interface] 序列總線裝置
Definition SerialBus.h:43
virtual void onStop(void) override
當IIC通訊停止時調用此方法
virtual ~SerialBus(void) override
解構SerialBus物件
virtual bool onReceiver(const uint8 data) override
當接收到資料時調用此方法
virtual void onBusBusyEvent(void) override
當發生總線忙碌事件時調用
virtual void onNanAcknowledgeEvent(int queueRemainingCount) override
當發生無回應(NAK)事件時調用
virtual bool onTransfer(uint8 &data) override
當需要傳輸資料時調用此方法
SerialBus(hal::serial::IICMaster &iicMaster)
建構SerialBus物件
物件基底類別
Definition Object.h:63
Definition Buffer.h:24
[Interface] IIC接收事件處理器
Definition IIC.h:80
[Interface] IIC停止事件監聽器
Definition IIC.h:103
[Interface] IIC傳輸事件處理器
Definition IIC.h:122
[Interface] IIC錯誤事件處理器
Definition IICMaster.h:139
[Interface] IIC主端設備介面
Definition IICMaster.h:39
[Interface] 序列總線事件監聽器
Definition SerialBus.h:56
virtual void onBusErrorEvent(int completedQuantity) override
當發生總線忙碌事件時調用
virtual void onNoResponseEvent(int completedQuantity) override
當發生無回應事件時調用
virtual void onComplete(void) override
當傳輸完成時調用
virtual void onCancel(int completedQuantity) override
當傳輸被取消時調用