mFrame
載入中...
搜尋中...
無符合項目
SimpleProvider.h
1
7#ifndef MCXA153_B047CBB0_C5F9_4D9E_B61F_71ECAB84FE24
8#define MCXA153_B047CBB0_C5F9_4D9E_B61F_71ECAB84FE24
9
10/* ***************************************************************************************
11 * Include
12 */
13#include "mframe.h"
14
15//----------------------------------------------------------------------------------------
16
17//----------------------------------------------------------------------------------------
18
19/* ***************************************************************************************
20 * Namespace
21 */
22namespace mcxa153::simp {
23 class SimpleProvider;
24} // namespace mcxa153::simp
25
26/* ***************************************************************************************
27 * Class/Interface/Struct/Enum
28 */
29
39 /* *************************************************************************************
40 * Variable
41 */
42 public:
49
50 private:
51 ufm::util::ArrayQueue vRunnableQueue;
52 ufm::lang::Memory vApplicationsBuffer;
53 ufm::lang::Memory vTimerSchedulerBuffer;
54 ufm::util::ApplicationHandle vApplicationHandler;
55
57 uint32 vBufferRunnableQueue[32];
58
60 uint32 vBufferApplication[32];
61
63 uint32 vBufferTimerScheduler[sizeof(ufm::util::TimerScheduler::Block) * 16];
64
66 uint8 vOutput[1024];
67
69 uint8 vInput[256];
70
71 /* *************************************************************************************
72 * Abstract Method
73 */
74
75 /* *************************************************************************************
76 * Construct Method
77 */
78 public:
86
92 virtual ~SimpleProvider(void) override;
93
94 /* *************************************************************************************
95 * Operator Method
96 */
97
98 /* *************************************************************************************
99 * Override - ufm::sys::SystemProvider
100 */
101 public:
110 virtual ufm::lang::Readable& in(void) override;
111
120 virtual ufm::io::PrintStream& out(void) override;
121
130 virtual ufm::lang::Clock& clock(void) override;
131
141
150 virtual ufm::lang::Memory& applicationsBuffer(void) override;
151
161
162 /* *************************************************************************************
163 * Override - ufm::util::Application
164 */
165 public:
171 virtual void onCreate(void) override;
172
179 virtual bool onInitialize(void) override;
180
186 virtual void onRun(void) override;
187
194 virtual bool onStop(void) override;
195
201 virtual void onDestroy(void) override;
202
210
211 /* *************************************************************************************
212 * Public Method
213 */
214
215 /* *************************************************************************************
216 * Protected Method
217 */
218
219 /* *************************************************************************************
220 * Private Method
221 */
222
223 /* *************************************************************************************
224 * Static Variable
225 */
226
227 /* *************************************************************************************
228 * Static Method
229 */
230};
231
232/* ***************************************************************************************
233 * End of file
234 */
235
236#endif /* MCXA153_B047CBB0_C5F9_4D9E_B61F_71ECAB84FE24 */
簡易系統提供者類別
Definition SimpleProvider.h:38
virtual void onDestroy(void) override
應用程式銷毀方法
virtual ufm::io::PrintStream & out(void) override
取得標準輸出裝置
virtual ufm::lang::Memory & timerSchedulerBuffer(void) override
取得計時器排程器緩衝區記憶體
ufm::io::SerialPort vSerialPort
串列埠包裝器
Definition SimpleProvider.h:45
virtual ufm::util::Queue< ufm::func::Runnable * > & runnables(void) override
取得系統可執行物件佇列
virtual bool onInitialize(void) override
應用程式初始化方法
virtual bool onStop(void) override
應用程式停止方法
ufm::io::PrintStream vPrintStream
列印串流
Definition SimpleProvider.h:48
hal::serial::UART & vConsole
控制台串列埠參考
Definition SimpleProvider.h:44
ufm::io::OutputBuffer vOutputBuffer
輸出緩衝區
Definition SimpleProvider.h:46
ufm::lang::Clock & vClock
系統時鐘參考
Definition SimpleProvider.h:43
virtual ufm::lang::Memory & applicationsBuffer(void) override
取得應用程式緩衝區記憶體
virtual void onCreate(void) override
應用程式建立時的處理方法
virtual ufm::util::ApplicationHandle & getApplicationHandle(void) override
取得應用程式處理器
virtual void onRun(void) override
應用程式主要執行方法
SimpleProvider(ufm::lang::Clock &clock, hal::serial::UART &console)
建構簡易系統提供者物件
ufm::io::InputBuffer vInputBuffer
輸入緩衝區
Definition SimpleProvider.h:47
virtual ufm::lang::Clock & clock(void) override
取得系統時鐘
virtual ~SimpleProvider(void) override
解構簡易系統提供者物件
virtual ufm::lang::Readable & in(void) override
取得標準輸入裝置
輸入緩衝區
Definition mframe/src/ufm/io/InputBuffer.h:42
輸出緩衝區
Definition OutputBuffer.h:41
格式化輸出串流
Definition PrintStream.h:44
序列埠通訊類別
Definition SerialPort.h:42
動態記憶體管理類別
Definition Memory.h:38
物件基底類別
Definition Object.h:63
應用程式處理器類別,負責管理應用程式的生命週期狀態與資源使用率。
Definition ApplicationHandle.h:107
指標陣列佇列類別,實作 FIFO (先進先出) 佇列結構。
Definition ArrayQueue.h:98
Definition SimplePeripheral.h:23
UART硬體抽象層介面
Definition UART.h:38
時鐘介面
Definition mframe/src/ufm/lang/Clock.h:39
[Interface] 定義資料讀取介面
Definition Readable.h:46
系統資源提供者抽象介面
Definition SystemProvider.h:56
應用程式生命週期監聽介面,定義應用程式的基本生命週期方法。
Definition Application.h:294
佇列介面,定義先進先出(FIFO)的容器操作。
Definition Queue.h:94
計時器任務排程資料塊
Definition TimerScheduler.h:247