轻应用框架¶
1、文件目录结构¶
为了兼容 MicroPython 系统框架,扩展 MicroPython 生态,Python 轻应用定义了文件目录结构。相关文件目录如下所示:
. ├── adapter # 适配层 ├── engine # 引擎层 ├── external # 外部资源文件 ├── framework # 系统框架层 ├── modules # 轻应用组件 ├── tests # 测试单元 ├── package.yaml # YAML 编译文件 ├── makefile # Cmake 编译文件 └── README.md # 说明文件
适配层
适配层用来扩展不同的设备,包括外设和os系统相关的实现都放在这个文件夹下。目前adapter层包含了 haas100,haas200,haasedu,haas506 和 haas510 硬件设备。
适配层包含了硬件设备为适配 Python 轻应用而实现的模块,包括系统配置宏定义,HAL层,os层和machine等模块的适配。具体文件及模块可以参考 haas100 文件内容
. ├── engine ├── haas100 # Alios Things 系统, HaaS1000 处理器 ├── haas200 # Alios Things 系统, RealTeck 处理器 ├── haasedu # Alios Things 系统, HaaS1000 处理器 ├── haas506 # FreeRtos 系统, 展锐 DTU 模组, OpenCpu ├── haas510 # FreeRtos 系统, 移远 4G Cat 1模组, OpenCpu ├── ......
如果三方硬件已经完成了 MircoPython 的外设和OS系统的适配, 则可以直接创建文件夹并将适配文件放到该文件夹下;
如果三方硬件想扩展 MicroPython 适配,可以直接参考 haas100 已经实现的功能做相应的外设和OS适配即可。极大地方便了三方资源的 Python 轻应用适配。
引擎层
引擎层包含了 MicroPython 的核心代码,包括VM, 解析器, 编译器及 buildin 扩展层等。 Python轻应用采用的引擎版本为 version 1.15。
. ├── adapter ├── drivers ├── extmod ├── genhdr ├── lib ├── mpy-cross ├── py ├── tools ├── py.mk
外部资源文件
外部资源文件用来存放功能模块相关文件,包括开源软件或者基于开源软件修改后的文件, Python轻应用扩展的功能文件等。
所有对三方资源的依赖文件都可以放在这里。
. ├── external ├── amp_boot # 轻应用启动管理模块 ├── amp_task # 轻应用任务管理模块 ├── amp_utils # 轻应用功能模块 ├── app_mgr # 轻应用管理模块 ├── libs # 不方便开源代码生成的静态库 ├── unzip # 开源软件修改后的解压文件 ├── ......
系统框架层
系统框架层提供应用层面的功能扩展模块,用以对用户外提供丰富的系统能力。包括传感器,屏幕,语音,网络和物联网接口等。
. ├── framework ├── ap3216c.py # 光强传感器 ├── iot.py # 物联网接口 ├── mpu6050.py # 空间运动传感器 ├── network.py # 网络接口 ├── speech_utils.py # 语音播控接口 ├── spl06.py # 压力/温度传感器 ├── si7006.py # 温湿度传感器 ├── ......
轻应用组件层
组件层用来存放 Python 轻应用和三方厂家实现的组件模块,为应用层开发提供 Python 组件。
三方厂家可以把扩展的组件放在这里,也可以沿用轻应用已经实现的组件。
. ├── modules ├── audio ├── driver ├── linksdk ├── minicv ├── modbus ├── mqtt ├── netmgr ├── network ├── netconfig ├── oss ├── ota ├── sntp ├── kv ├── ulog ├── ucamera ├── ......
测试单元
测试单元包含测试框架和所有模块的测试集,三方代码在集成的同时也需要提供对应的测试集。
. ├── tests ├── run-tests ├── basics ├── haas ├── extmod ├── ......
2、如何扩展模块¶
如果开发者想自行扩展组件接口,可以参考 如何扩展Python轻应用编程接口 文章,学习如何完成组件接口的扩展。