🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
>[success] **技术支持说明:** >**1**.一般以自主学习为主 > **2**.可到官方问答社区中提问:[**去提问**](https://bbs.csdn.net/forums/nb-iot) > **3**.工程师**会尽快**解答社区问题,但他们是一线开发,【**难以保证**】解答时效,解答辛苦,感谢理解! <br/> 笔者结合了经典的MVC设计思想为配套的开发板设计了一套SDK供读者使用,能够大大地缩短产品开发周期。 <br/> ## **MVC 架构简介** 经典的MVC是一种常用的代码架构设计思想,其中M表示Model(模型),V表示View(视图),C表示控制器(Controller),相关含义如下: * Model(模型):封装了数据和对数据的操作,是实际进行数据处理的地方 * View(视图):负责程序和用户之间的交互,例如负责把数据在在屏幕上显示出来 * Controller(控制器):用于操作模型和视图 后续课程将会结合代码讲解如何把这种设计思想应用到嵌入式软件开发中。 <br/> ## **SDK 设计模式** SDK可以分解成3个层次,自定向下分别是: ![](https://img.kancloud.cn/b2/56/b2565242c3f869225e902da24589d92e_669x723.png =500x) ### **HAL**: HAL(Hardware Abstraction Layer,硬件抽象层),前面课程已经一步一步地带读者实现了部分HAL API。 ### **Service**:服务组件,对HAL进行服务化抽象和管理。HAL的重点是操作和管理某一个硬件,例如串口和显示器等。然而,Service的重点是为上层提供服务,例如Log组件为上层提供日志打印服务,这个组件既能通过串口写入日志数据,又能通过显示器上显示日志;又例如Sender组件为上层提供NB-IoT数据发送服务,上层无需理会使用哪个型号的NB-IoT模组去发送的,因此这个组件会自行去处理这些细节。 ### **Task**:是指某种更贴合用户需求的任务,例如定时地获取传感器的数值,并上报给指定的服务器。 <br/> <br/> ## **商务合作** 如有以下需求,可扫码添加管理员好友,注明“**商务合作**” * 项目定制开发,技术范围:**NB-IoT**、**CATn(4G)**、**WiFi**、**ZigBee**、**BLE Mesh**以及**STM32**、**嵌入式Linux**等; * 入驻平台,成为讲师; * 接项目赚外快; * 善学坊官网:[www.sxf-iot.com](https://www.sxf-iot.com/) ![](https://img.kancloud.cn/b7/5a/b75ac8c3da945f20568771f5935c388f_430x430.png =150x) (非商务合作**勿扰**,此处**非**技术支持)