轻应用框架


1、文件目录结构

为了兼容 MicroPython 系统框架,扩展 MicroPython 生态,Python 轻应用定义了文件目录结构。相关文件目录如下所示:

.
├── adapter             # 适配层
├── engine              # 引擎层
├── external            # 外部资源文件
├── framework           # 系统框架层
├── modules             # 轻应用组件
├── tests               # 测试单元
├── package.yaml        # YAML 编译文件
├── makefile            # Cmake 编译文件
└── README.md           # 说明文件

  1. 适配层

    适配层用来扩展不同的设备,包括外设和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 轻应用适配。


  1. 引擎层

    引擎层包含了 MicroPython 的核心代码,包括VM, 解析器, 编译器及 buildin 扩展层等。 Python轻应用采用的引擎版本为 version 1.15。

    .
    ├── adapter
        ├── drivers
        ├── extmod
        ├── genhdr
        ├── lib
        ├── mpy-cross
        ├── py
        ├── tools
        ├── py.mk
    

  1. 外部资源文件

    外部资源文件用来存放功能模块相关文件,包括开源软件或者基于开源软件修改后的文件, Python轻应用扩展的功能文件等。

    所有对三方资源的依赖文件都可以放在这里。

    .
    ├── external
        ├── amp_boot        # 轻应用启动管理模块
        ├── amp_task        # 轻应用任务管理模块
        ├── amp_utils       # 轻应用功能模块
        ├── app_mgr         # 轻应用管理模块
        ├── libs            # 不方便开源代码生成的静态库
        ├── unzip           # 开源软件修改后的解压文件
        ├── ......
    

  1. 系统框架层

    系统框架层提供应用层面的功能扩展模块,用以对用户外提供丰富的系统能力。包括传感器,屏幕,语音,网络和物联网接口等。

    .
    ├── framework
        ├── ap3216c.py          # 光强传感器
        ├── iot.py              # 物联网接口
        ├── mpu6050.py          # 空间运动传感器
        ├── network.py          # 网络接口
        ├── speech_utils.py     # 语音播控接口
        ├── spl06.py            # 压力/温度传感器
        ├── si7006.py           # 温湿度传感器
        ├── ......
    

  1. 轻应用组件层

    组件层用来存放 Python 轻应用和三方厂家实现的组件模块,为应用层开发提供 Python 组件。

    三方厂家可以把扩展的组件放在这里,也可以沿用轻应用已经实现的组件。

    .
    ├── modules
        ├── audio
        ├── driver
        ├── linksdk
        ├── minicv
        ├── modbus
        ├── mqtt
        ├── netmgr
        ├── network
        ├── netconfig
        ├── oss
        ├── ota
        ├── sntp
        ├── kv
        ├── ulog
        ├── ucamera
        ├── ......
    

  1. 测试单元

    测试单元包含测试框架和所有模块的测试集,三方代码在集成的同时也需要提供对应的测试集。

    .
    ├── tests
        ├── run-tests
        ├── basics
        ├── haas
        ├── extmod
        ├── ......
    

2、如何扩展模块

如果开发者想自行扩展组件接口,可以参考 如何扩展Python轻应用编程接口 文章,学习如何完成组件接口的扩展。