<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                合規國際互聯網加速 OSASE為企業客戶提供高速穩定SD-WAN國際加速解決方案。 廣告
                ## **MVC 架構簡介** &emsp;&emsp;經典的MVC是一種常用的代碼架構設計思想,其中M表示Model(模型),V表示View(視圖),C表示控制器(Controller),相關含義如下: * Model(模型):封裝了數據的互操作操作,是實際進行數據處理的地方。 * View(視圖):負責程序和用戶之間的交互,例如在屏幕上顯示信息。 * Controller(控制器):用于操作Model(模型)和View(視圖)。 <br/> ## **SDK 模型** &emsp;&emsp;通過借鑒MVC的模型設計,我們將SDK設計成為HAL,Services和Tasks三層,該設計的描述如下: **HAL**: HAL(Hardware Abstraction Layer,硬件抽象層),對各種硬件外設進行抽象,從而達到向上層提供統一的標準接口。 ### **Services**:服務組件,對HAL進行服務化抽象和管理。HAL的重點是操作和管理某一個硬件,例如串口和顯示器等。然而,Service的重點是為上層提供服務,例如Log組件為上層提供日志打印服務,這個組件既能通過串口寫入日志數據,又能通過顯示器上顯示日志;又例如Sender組件為上層提供NB-IoT數據發送服務,上層無需理會使用哪個型號的NB-IoT模組去發送的,因為這個組件會自行去處理這些細節。 ### **Tasks**:是指某種更貼合用戶需求的任務,例如定時地獲取傳感器的數值,并上報給指定的服務器。 <br/> ## **編程規范** * 整個SDK采用unix的命名方式,代碼風格高度統一,在實際的項目開發過程中,建議使用unix的命名方式,即小寫字母加下劃線的方式,以保證整體的可讀性和流暢性。 * 整個SDK的注釋都為英文,建議不使用中文進行注釋,避免不同編輯器和編譯器由于編碼問題而出現亂碼。 <br/> ## **SDK 預覽** ![](https://img.kancloud.cn/1b/6a/1b6af951665c3ccb5ba07e476f2d2067_1011x805.png =500x) ### ## **HAL** &emsp;&emsp;HAL 層目前包含的驅動程序包括: * system:提供和系統相關的功能,比如重啟,獲取芯片ID等等。 * systick:提供延時函數及系統定時器等功能。 * idt:中斷描述表(Interrupt Description Table),提供對外部中斷及其他中斷入口進行集中管理的服務。 * ioctl:簡化GPIO的配置過程,提供GPIO輸入輸出,中斷等配置的功能。 * flash:提供操作芯片內部FLASH的能力。 * lpm:低功耗管理器(Low Power Manager),向上層提供讓芯片進入低功耗模式的能力。 * rtc:實時時鐘及鬧鐘服務。 * iwdg:獨立看門狗,是防止系統跑飛的基本驅動組件。 * uart:串口,向上層提供操作串口的能力。 * i2c:I2C總線驅動。 * led:LED驅動服務,向上層提供操作LED的標準接口,比如對LED進行開/關,閃爍等。 * button:按鍵驅動服務,向上層提供按鍵的常見功能,比如按鍵的單擊,雙擊,三擊,長按3秒,長按5秒等等。 * vht2x:溫濕度傳感器(DHT20/DHT22/AHT25/AHT21B等)的驅動程序。 * lcd:顯示器驅動程序,向上層提供屏幕的顯示服務。 * HW:存放各種第三方的驅動程序,比如OLED12864顯示屏的驅動程序,軟件SPI的驅動程序,等等。 * STDLibs:官方標準庫。 ### ## **Services** &emsp;&emsp;Services 層目前包含的服務程序包括: * system:為上層提供系統任務調度服務,提供系統自動低功耗調度能力,任務定時器及快速輪詢服務,以及事件通知服務等等,是整個系統進行調度的核心組件。 * msg:管理串口驅動程序的服務。 * hid:管理系統默認按鍵和系統默認LED的服務。 * database:鍵值數據庫,提供數據的存儲服務,具有操作簡單,掉電保護,二級緩存,快速寫入等優點。 * log:日志服務,為上層提供簡潔的接口操作LCD,串口等的信息輸出。 * humiture:溫濕度服務,用于獲取溫度和濕度數據的服務。 ### ## **tasks** &emsp;&emsp;Tasks 層默認包含兩個任務方便用戶進行快速學習: * system:一個完整的任務所需要編寫的程序。 * example:獲取溫濕度數據,在顯示屏上進行顯示,進入低功耗模式,定期喚醒再獲取溫濕度數據,再顯示,然后再進入低功耗,如此反復。 <br/> <br/>
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看