init: Air780EPM 官方 LuatOS 项目代码基线

- 来源: 合宙 LuatOS 官方仓库 air780epm 模块完整代码
- 路径: luatos/air780epm/module/Air780EPM/demo 含官方 demo(含 mqtt/mqtts/socket/uart 等)
- 后续: 基于 demo 开发 UART<->MQTT 数据上报功能
This commit is contained in:
wangfq
2026-08-31 08:53:49 +08:00
commit 173dd6874f
813 changed files with 125484 additions and 0 deletions
@@ -0,0 +1,62 @@
--[[
@module main
@summary LuatOS用户应用脚本文件入口,总体调度应用逻辑
@version 1.0
@date 2025.09.25
@author 李源龙
@usage
本demo演示的核心功能为:
使用xxtea加密算法,对数据进行加密和解密
]]
--[[
必须定义PROJECT和VERSION变量,Luatools工具会用到这两个变量,远程升级功能也会用到这两个变量
PROJECT:项目名,ascii string类型
可以随便定义,只要不使用,就行
VERSION:项目版本号,ascii string类型
如果使用合宙iot.openluat.com进行远程升级,必须按照"XXX.YYY.ZZZ"三段格式定义:
X、Y、Z各表示1位数字,三个X表示的数字可以相同,也可以不同,同理三个Y和三个Z表示的数字也是可以相同,可以不同
因为历史原因,YYY这三位数字必须存在,但是没有任何用处,可以一直写为999
如果不使用合宙iot.openluat.com进行远程升级,根据自己项目的需求,自定义格式即可
]]
PROJECT = "xxtea"
VERSION = "001.999.000"
-- 在日志中打印项目名和项目版本号
log.info("main", PROJECT, VERSION)
-- 如果内核固件支持errDump功能,此处进行配置,【强烈建议打开此处的注释】
-- 因为此功能模块可以记录并且上传脚本在运行过程中出现的语法错误或者其他自定义的错误信息,可以初步分析一些设备运行异常的问题
-- 以下代码是最基本的用法,更复杂的用法可以详细阅读API说明文档
-- 启动errDump日志存储并且上传功能,600秒上传一次
-- if errDump then
-- errDump.config(true, 600)
-- end
-- 使用LuatOS开发的任何一个项目,都强烈建议使用远程升级FOTA功能
-- 可以使用合宙的iot.openluat.com平台进行远程升级
-- 也可以使用客户自己搭建的平台进行远程升级
-- 远程升级的详细用法,可以参考fota的demo进行使用
-- 启动一个循环定时器
-- 每隔3秒钟打印一次总内存,实时的已使用内存,历史最高的已使用内存情况
-- 方便分析内存使用是否有异常
-- sys.timerLoopStart(function()
-- log.info("mem.lua", rtos.meminfo())
-- log.info("mem.sys", rtos.meminfo("sys"))
-- end, 3000)
--加载xxtea_demo模块
require "xxtea_demo"
-- 用户代码已结束---------------------------------------------
-- 结尾总是这一句
sys.run()
-- sys.run()之后不要加任何语句!!!!!因为添加的任何语句都不会被执行
@@ -0,0 +1,55 @@
## 演示功能概述
使用Air780EPM开发板,本示例主要是展示xxtea核心库的使用,使用xxtea加密算法,对数据进行加密和解密
## 演示硬件环境
1、Air780EPM开发板一块
2、TYPE-C USB数据线一根
3、Air780EPM开发板和数据线的硬件接线方式为
- Air780EPM开发板通过TYPE-C USB口供电;
- TYPE-C USB数据线直接插到核心板的TYPE-C USB座子,另外一端连接电脑USB口;
## 演示软件环境
1、Luatools下载调试工具
2、[Air780EPM V2014版本固件](https://docs.openluat.com/air780epm/luatos/firmware/version/)
## 演示核心步骤
1、搭建好硬件环境
2、通过Luatools将demo与固件烧录到整机开发板中
3、烧录好后,板子开机将会在Luatools上看到如下打印:
xxtea_encrypt为加密后的字符串,xxtea_decrypt为解密后的字符串,通过16进制展示
```lua
[2025-09-25 12:01:10.767][000000001.449] I/user.testCrypto.xxteaTest xxtea_encrypt: 4088CEEE2EDF81BE3DCDC5FAB6D20925 32
[2025-09-25 12:01:10.777][000000001.449] I/user.testCrypto.xxteaTest decrypt_data: 48656C6C6F20576F726C6421 24
[2025-09-25 12:01:11.055][000000002.450] I/user.testCrypto.xxteaTest xxtea_encrypt: 4088CEEE2EDF81BE3DCDC5FAB6D20925 32
[2025-09-25 12:01:11.064][000000002.450] I/user.testCrypto.xxteaTest decrypt_data: 48656C6C6F20576F726C6421 24
[2025-09-25 12:01:12.053][000000003.451] I/user.testCrypto.xxteaTest xxtea_encrypt: 4088CEEE2EDF81BE3DCDC5FAB6D20925 32
[2025-09-25 12:01:12.061][000000003.451] I/user.testCrypto.xxteaTest decrypt_data: 48656C6C6F20576F726C6421 24
[2025-09-25 12:01:13.105][000000004.478] I/user.testCrypto.xxteaTest xxtea_encrypt: 4088CEEE2EDF81BE3DCDC5FAB6D20925 32
[2025-09-25 12:01:13.113][000000004.479] I/user.testCrypto.xxteaTest decrypt_data: 48656C6C6F20576F726C6421 24
[2025-09-25 12:01:14.080][000000005.480] I/user.testCrypto.xxteaTest xxtea_encrypt: 4088CEEE2EDF81BE3DCDC5FAB6D20925 32
[2025-09-25 12:01:14.089][000000005.480] I/user.testCrypto.xxteaTest decrypt_data: 48656C6C6F20576F726C6421 24
[2025-09-25 12:01:15.079][000000006.481] I/user.testCrypto.xxteaTest xxtea_encrypt: 4088CEEE2EDF81BE3DCDC5FAB6D20925 32
[2025-09-25 12:01:15.090][000000006.481] I/user.testCrypto.xxteaTest decrypt_data: 48656C6C6F20576F726C6421 24
[2025-09-25 12:01:16.089][000000007.482] I/user.testCrypto.xxteaTest xxtea_encrypt: 4088CEEE2EDF81BE3DCDC5FAB6D20925 32
[2025-09-25 12:01:16.098][000000007.482] I/user.testCrypto.xxteaTest decrypt_data: 48656C6C6F20576F726C6421 24
[2025-09-25 12:01:17.091][000000008.483] I/user.testCrypto.xxteaTest xxtea_encrypt: 4088CEEE2EDF81BE3DCDC5FAB6D20925 32
[2025-09-25 12:01:17.100][000000008.483] I/user.testCrypto.xxteaTest decrypt_data: 48656C6C6F20576F726C6421 24
```
@@ -0,0 +1,27 @@
--[[
@module xxtea_demo
@summary xxtea加密算法
@version 1.0
@date 2025.09.25
@author 李源龙
@usage
本demo主要使用xxtea加密算法,对数据进行加密和解密
]]
function xxtea_fnc()
while true do
sys.wait(1000)
--代加密数据
local text = "Hello World!"
--key为密钥
local key = "07946"
local encrypt_data = xxtea.encrypt(text, key)
--加密之后打印加密数据,使用toHex()进行16进制显示
log.info("testCrypto.xxteaTest","xxtea_encrypt:", encrypt_data:toHex())
local decrypt_data = xxtea.decrypt(encrypt_data, key)
--解密之后打印解密数据,使用toHex()进行16进制显示
log.info("testCrypto.xxteaTest","decrypt_data:", decrypt_data:toHex())
end
end
sys.taskInit(xxtea_fnc)