跳转至

001 Hello_LuatOS

作者:朱天华 | 最后修改:2026-04-22

重要提醒:

1、当你安装配置好智能体、规则和技能后,最终一定要参考验证智能体、规则和技能是否安装成功来验证安装配置是否正确;

2、Trae中内置的免费大模型,会经常排队,并且性能不可控,容易出问题,所以推荐参考:001 发送会话请求时,提示排队,如何解决?的方法,订阅收费的大模型(目前每月40元);这样可以大大提高AI性能;如果不想使用收费模型,在非正常工作时间段内,使用内置的免费模型也能勉强凑合;

3、选择收费大模型时,经过我们的实际测试,根据工作任务的不同,可以按照如下建议选择(仅供参考,具体情况还需要根据你自己的实际使用情况来定):

  • 代码开发任务,优先选择GLM(可能是使用的人数太多,有时候处理较慢);如果GLM处理太慢,再考虑切换到MiniMax;
  • 其他任务,可以首先选择ark-code-latest,其次选择MiniMax,最后选择GLM(可能是使用的人数太多,有时候处理较慢);

一、概述

在本文中,我们来演示如何使用 luatos-docs-code 协助开发 Hello_LuatOS 项目脚本代码;

二、项目功能需求

帮我生成一个 LuatOS 项目代码,功能需求如下:

硬件模组:Air8000A

软件功能需求:每隔 1 秒钟,打印一次 Hello, LuatOS!

三、使用 luatos-docs-code 开发以及调试过程

3.1 输入项目需求,luatos-docs-code 第一次生成代码

3.2 生成的代码存在的问题

刚才生成的代码存在以下问题:

3.2.1 编程规范需要改进

要遵循 Air8000 demo 代码的以下编程规范

  1. 任何一个 LuatOS 项目脚本都要包含 main.lua 和一个或者多个其他具体功能应用的 lua 文件,main.lua 文件、其他 lua 文件功能都要模块化解耦设计
  2. main.lua 中,要有最基本的项目名,版本号,fota 升级使用说明,errDump 使用说明,require 其他功能应用的 lua 文件,sys.run()代码

3.2.2 需要单独创建一个文件夹保存所有的项目文件

目前生成的脚本文件,直接放在了 Trae 配置的项目文件夹下,这样不合理,需要根据项目功能需求,新建一个文件夹,然后把生成的脚本文件存储到新文件中

请你再修复一下

3.3 告知 luatos-docs-code 存在的问题,让它重新生成代码

将 3.2 章节的内容告知 luatos-docs-code 后,让它重新生成,交互过程如下

这次生成的代码质量就很高了,给他提的两个问题已经解决!

3.4 最终生成的项目脚本代码

3.4.1 项目代码目录结构

hello_luatos/

├── main.lua # 主入口文件

└── hello_app.lua # Hello 打印功能模块

3.4.2 main.lua

--[[
@module  main
@summary LuatOS用户应用脚本文件入口,总体调度应用逻辑
@version 1.0
@date    2026.03.15
@author  LuatOS
@usage
本demo演示的核心功能为:
hello_app.lua: 每隔1秒钟,打印一次 Hello, LuatOS!

本demo可直接在Air8000A模组上运行
]]

--[[
必须定义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 = "hello_luatos"
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进行使用
-- 启动fota功能,请参考fota相关demo代码

require "hello_app"

-- 用户代码已结束---------------------------------------------
-- 结尾总是这一句
sys.run()
-- sys.run()之后后面不要加任何语句!!!!!

3.4.3 hello_app.lua

--[[
@module  hello_app
@summary Hello打印功能模块
@version 1.0
@date    2026.03.15
@author  LuatOS
@usage
本文件为Hello打印功能模块,核心业务逻辑为:
每隔1秒钟,打印一次 Hello, LuatOS!

本文件没有对外接口,直接在其他功能模块中require "hello_app"就可以加载运行;
]]

local function hello_task()
    while 1 do
        log.info("hello_app", "Hello, LuatOS!")
        sys.wait(1000)
    end
end

sys.taskInit(hello_task)

四、 其他说明

通过此项目的演示,我们发现,当开发完整的 LuatOS 项目脚本时,luatos-docs-code 可以从以下几方面调试改进:

  1. 默认配置为新建一个文件夹,保存所有的项目代码和资源文件;
  2. 配置约定好 main.lua 的编程规范,以及各个 lua 文件之间的解耦设计要求;

这两方面需要改进的点,我们将在后续的 luatos-docs-code 版本中去修复;