init: Air780EPM 官方 LuatOS 项目代码基线
- 来源: 合宙 LuatOS 官方仓库 air780epm 模块完整代码 - 路径: luatos/air780epm/module/Air780EPM/demo 含官方 demo(含 mqtt/mqtts/socket/uart 等) - 后续: 基于 demo 开发 UART<->MQTT 数据上报功能
This commit is contained in:
@@ -0,0 +1,112 @@
|
||||
## 演示功能概述
|
||||
|
||||
本demo支持两种基于USB的网络连接模式:RNDIS和ECM。
|
||||
|
||||
- **RNDIS**(Remote NDIS):基于USB实现的TCP/IP over USB,让USB设备在Windows系统上呈现为一块网卡,从而使Windows/Linux可以通过USB设备连接网络。
|
||||
|
||||
- **ECM**(Ethernet Control Model):一种基于USB的通信设备类(CDC)子类协议,将"TCP/IP over USB"抽象成一条虚拟以太网链路,在主机侧呈现为一块标准的以太网卡。Linux、macOS等操作系统无需额外专用驱动即可使用。
|
||||
|
||||
#### 1、功能使用说明
|
||||
|
||||
本demo已将功能拆分为三个文件:
|
||||
- `main.lua`:主入口文件,负责加载和调度各个功能模块
|
||||
- `open_rndis.lua`:RNDIS功能实现模块
|
||||
- `open_ecm.lua`:ECM功能实现模块
|
||||
|
||||
由于 Air780EPM 只支持 LUATOS 模式,且RNDIS/ECM网卡应用默认关闭,需要使用接口打开。
|
||||
|
||||
**注意:**
|
||||
- 本demo在Windows系统上主要测试RNDIS功能
|
||||
- ECM功能由于Windows系统缺少测试环境,无法在Windows上完整测试
|
||||
|
||||
#### 2、启动 RNDIS 服务
|
||||
|
||||
- 运行 rndis_task 任务,来执行开启 RNDIS 的操作。
|
||||
|
||||
- RNDIS 需要在飞行模式下开启,所以首先进入飞行模式。
|
||||
|
||||
- 进入飞行模式后,使用 mobile.config(mobile.CONF_USB_ETHERNET, 3) 来启用 RNDIS 功能。
|
||||
|
||||
> 函数讲解:mobile.config(mobile.CONF_USB_ETHERNET, 3)
|
||||
传入的第二个参数 3 ,实际为二进制的 0011
|
||||
从右往前数第0个bit位为1,则开启USB以太网卡控制,第一个bit位为1,则使用NAT模式(基站分配ip),第二个bit位为0,则开启RNDIS模式。
|
||||
|
||||
#### 3、启动 ECM 服务
|
||||
|
||||
- 运行 ecm_task 任务,来执行开启 ECM 的操作。
|
||||
|
||||
- ECM 需要在飞行模式下开启,所以首先进入飞行模式。
|
||||
|
||||
- 进入飞行模式后,使用 mobile.config(mobile.CONF_USB_ETHERNET, 7) 来启用 ECM 功能。
|
||||
|
||||
> 函数讲解:mobile.config(mobile.CONF_USB_ETHERNET, 7)
|
||||
传入的第二个参数 7 ,实际为二进制的 0111
|
||||
从右往前数第0个bit位为1,则开启USB以太网卡控制,第一个bit位为1,则使用NAT模式(基站分配ip),第二个bit位为1,则开启ECM模式。
|
||||
|
||||
> 特别说明:由于Windows系统缺少测试环境,ECM功能无法在Windows系统上完整测试。在Linux、macOS等系统上可能需要不同的配置和测试方法。
|
||||
>
|
||||
>注:在v2013以下固件使用mobile.config()的返回值有bug,无论是否开启成功,返回值均为false,需要烧录V2013及以上固件才能完整验证此功能。
|
||||
|
||||
#### 4、运行效果
|
||||
|
||||
- **飞行模式进入成功**:日志打印 “进入飞行模式成功”
|
||||
|
||||
- **RNDIS 创建成功**:日志中会打印“我看看 RNDIS 是否启动成功: true”,并且在电脑网络上显示出RNDIS联网图标。
|
||||
|
||||
- **ECM 创建**:由于Windows系统缺少测试环境,ECM功能在Windows系统上无法完整测试。在日志中会打印“我看看 ECM 是否启动成功: [结果]”,但无法在Windows系统上验证网络连接状态。
|
||||
|
||||
> **注意**:在main.lua中,RNDIS和ECM功能默认只启用了RNDIS。如需测试ECM功能,请修改main.lua文件,注释掉`require "open_rndis"`并取消注释`require "open_ecm"`
|
||||
|
||||
## 演示硬件环境
|
||||
|
||||
1、Air780EPM核心板/开发板一块
|
||||
|
||||
2、配套天线一套
|
||||
|
||||
3、TYPE-C USB数据线一根
|
||||
|
||||
## 演示软件环境
|
||||
|
||||
1、Luatools下载调试工具
|
||||
|
||||
2、[Air780EPM 版本固件](https://docs.openluat.com/air780EPM/luatos/firmware/)(V2013以下固件使用mobile.config()的返回值有bug,需要烧录V2013及以上固件才能完整验证此demo)
|
||||
|
||||
3、确保插入的sim卡可以正常上网。
|
||||
|
||||
## 演示核心步骤
|
||||
|
||||
### RNDIS功能测试步骤
|
||||
|
||||
1、搭建好硬件环境
|
||||
|
||||
2、通过Luatools将demo与固件烧录到核心板中(默认启用RNDIS功能)
|
||||
|
||||
3、烧录好后,板子开机同时在luatools上查看日志,确认是否进入飞行模式、RNDIS是否启用成功。
|
||||
|
||||
`
|
||||
[2025-08-22 09:55:54.459][000000000.210] I/user.main RNDIS_ECM 1.0.0
|
||||
[2025-08-22 09:55:54.529][000000000.661] I/user.进入飞行模式成功,打开RNDIS模式
|
||||
[2025-08-22 09:55:54.533][000000000.661] I/user.我看看 RNDIS 是否启动成功: true
|
||||
[2025-08-22 09:55:54.649][000000000.815] I/user.退出飞行模式 false
|
||||
|
||||
`
|
||||
|
||||
4、日志提示成功后,可以在**Windows** → **设备管理器** → **网络适配器** 中查看是否有 **“Remote NDIS based Internet Sharing Device”** 来确认 RNDIS是否开启成功,如果被禁用请手动开启。
|
||||
|
||||
### ECM功能测试说明
|
||||
|
||||
1、**修改配置**:在测试ECM功能前,需要修改main.lua文件,注释掉`require = "open_rndis"`并取消注释`require = "open_ecm"`
|
||||
|
||||
2、**烧录程序**:通过Luatools将修改后的demo与固件烧录到核心板中
|
||||
|
||||
3、**查看日志**:板子开机后在luatools上查看日志,确认是否进入飞行模式、ECM是否尝试启动
|
||||
|
||||
`
|
||||
[2025-08-22 09:55:54.459][000000000.210] I/user.main RNDIS_ECM 1.0.0
|
||||
[2025-08-22 09:55:54.529][000000000.661] I/user.进入飞行模式成功,打开ECM模式
|
||||
[2025-08-22 09:55:54.533][000000000.661] I/user.我看看 ECM 是否启动成功: [结果]
|
||||
[2025-08-22 09:55:54.649][000000000.815] I/user.退出飞行模式 false
|
||||
|
||||
`
|
||||
|
||||
4、**特别说明**:由于Windows系统缺少测试环境,ECM功能在Windows系统上无法完整测试。即使日志显示ECM启动成功,也无法在Windows系统上验证网络连接状态。ECM功能主要适用于Linux、macOS等操作系统。
|
||||
Reference in New Issue
Block a user