IFFIOT资料大全
ML307开发板
开发板硬件PCB图
307N DC和DL区别
307N的Lua开发资料
ML307N的Lua开发资料和烧录
ML307N运行Lua功耗
NT26-4G模组
DTU固件(iRTU固件)
DTU固件开源代码及说明
DTU固件云配置
Lua基础知识
LuatOS运行框架讲解
LuatOS 的消息机制
LuatOS系统消息
LuatOS库函数开发手册
-
+
首页
LuatOS系统消息
>i **信息提示** > **资料来自合宙官网** [https://docs.openluat.com/osapi/sys_pub/](https://docs.openluat.com/osapi/sys_pub/) 此处列举了LuatOS框架中自带的系统消息列表 ## sys [sys接口文档页](https://docs.openluat.com/osapi/core/sys/) --- ## pm [pm接口文档页](https://docs.openluat.com/osapi/core/pm/) ### DTIMER_WAKEUP deep sleep timer定时时间到回调 **额外返回参数** 无 **例子** ``` sys.subscribe("DTIMER_WAKEUP", function(timer_id) log.info("deep sleep timer", timer_id) end) ``` --- ### YHM27XX_REG YHM27XX芯片寄存器信息更新回调 **额外返回参数** 无 **例子** ``` sys.subscribe("YHM27XX_REG", function(data) -- 注意, 会一次性读出0-9,总共8个寄存器值 log.info("yhm27xx", data and data:toHex()) end) ``` --- --- ## uart [uart接口文档页](https://docs.openluat.com/osapi/core/uart/) ### VUART_STATE 虚拟串口(USB CDC)的连接状态变化 **额外返回参数** | 返回参数类型 | 解释 | | --- | --- | | number | 串口id | | boolean | 连接状态, true为已连接 | **例子** ``` sys.subscribe("VUART_STATE", function(id, state) log.info("uart", "vuart state", id, state) end) ``` --- ## airlink [airlink接口文档页](https://docs.openluat.com/osapi/core/airlink/) ### AIRLINK_PING_RESULT airlink ping的结果 **额外返回参数** | 返回参数类型 | 解释 | | --- | --- | | number | 本次ping的包id | | boolean | 是否ping通 | | any | 成功时为往返耗时ms(number); 失败时为"timeout"(string)或错误码(number) | | string | 成功时为回显数据, 失败时为nil | **例子** ``` sys.subscribe("AIRLINK_PING_RESULT", function(pkgid, ok, rtt, echo) log.info("airlink", "ping result", pkgid, ok, rtt) end) ``` --- ### AIRLINK_SFOTA_DONE AIRLINK升级结束消息 2025/10/24启用 **额外返回参数** | 返回参数类型 | 解释 | | --- | --- | | bool | result, 升级成功为true,否则为false | | string | reason, 失败原因,当前取值有"no_memory" 内存不足, "file_error" 文件打开异常 | **例子** ``` -- 订阅式 sys.subscribe("AIRLINK_SFOTA_DONE", function(result, reason) log.info("airlink fota", result, reason) end) ``` --- ### AIRLINK_SDATA 收到airlink对端设备发来的自定义数据(sdata) **额外返回参数** | 返回参数类型 | 解释 | | --- | --- | | string | 数据内容 | **例子** ``` sys.subscribe("AIRLINK_SDATA", function(data) log.info("airlink", "sdata", data) end) ``` --- ## wlan [wlan接口文档页](https://docs.openluat.com/osapi/core/wlan/) ### WLAN_SCAN_DONE WIFI扫描结束 **额外返回参数** 无 **例子** ``` sys.taskInit(function() sys.waitUntil("WLAN_SCAN_DONE") log.info("wlan", "scan done") end) ``` --- ### WLAN_STA_INC WLAN的STA事件, 连接上AP或断开连接时上报 **额外返回参数** | 返回参数类型 | 解释 | | --- | --- | | string | 事件类型, 例如 "CONNECTED" 已连接, "DISCONNECTED" 已断开 | | any | 事件为"CONNECTED"时为已连接的SSID(string); 否则为断开原因码(number) | | string | 事件为"CONNECTED"时为AP的BSSID(6字节二进制), 其他事件无此参数 | **例子** ``` sys.subscribe("WLAN_STA_INC", function(event, arg1, arg2) log.info("wlan", "sta event", event, arg1, arg2) end) ``` --- ### WLAN_AP_INC WLAN的AP热点事件, 有设备连接/断开本机热点时上报 **额外返回参数** | 返回参数类型 | 解释 | | --- | --- | | string | 事件类型, 例如 "CONNECTED" 有设备连入, "DISCONNECTED" 有设备断开 | | string | 对端设备的MAC地址(6字节二进制), 可能为空字符串 | **例子** ``` sys.subscribe("WLAN_AP_INC", function(event, mac) log.info("wlan", "ap event", event, mac and mac:toHex() or "") end) ``` --- ## lora [lora接口文档页](https://docs.openluat.com/osapi/core/lora2/) ### LORA_TX_DONE LORA 发送完成 **额外返回参数** 无 **例子** ``` sys.subscribe("LORA_TX_DONE", function() lora.recive(1000) end) ``` --- ### LORA_RX_DONE LORA 接收完成 **额外返回参数** 无 **例子** ``` sys.subscribe("LORA_RX_DONE", function(data, size, rssi, snr) -- rssi 和 snr 于 2023-09-06 新增 log.info("LORA_RX_DONE: ", data, size, rssi, snr) lora.send("PING") end) ``` --- ### LORA_TX_TIMEOUT LORA 发送超时 **额外返回参数** 无 **例子** ``` sys.subscribe("LORA_TX_TIMEOUT", function() lora.recive(1000) end) ``` --- ### LORA_RX_TIMEOUT LORA 接收超时 **额外返回参数** 无 **例子** ``` sys.subscribe("LORA_RX_TIMEOUT", function() lora.recive(1000) end) ``` --- ### LORA_RX_ERROR LORA 接收错误 **额外返回参数** 无 **例子** ``` sys.subscribe("LORA_RX_ERROR", function() lora.recive(1000) end) ``` --- ## libgnss [libgnss接口文档页](https://docs.openluat.com/osapi/core/libgnss/) ### GNSS_STATE GNSS状态变化 **额外返回参数** 无 **例子** ``` sys.subscribe("GNSS_STATE", function(event, ticks) -- event取值有 -- FIXED 定位成功 -- LOSE 定位丢失 -- ticks是事件发生的时间,一般可以忽略 log.info("gnss", "state", event, ticks) end) ``` --- ## mobile [mobile接口文档页](https://docs.openluat.com/osapi/core/mobile/) ### SIM_IND sim卡状态变化 **额外返回参数** 无 **例子** ``` sys.subscribe("SIM_IND", function(status, value) -- status的取值有: -- RDY SIM卡就绪, value为nil -- NORDY 无SIM卡, value为nil -- SIM_PIN 需要输入PIN, value为nil -- GET_NUMBER 获取到电话号码(不一定有值), value为nil -- SIM_WC SIM卡的写入次数统计,掉电归0, value为统计值 log.info("sim status", status, value) end) ``` --- ### CELL_INFO_UPDATE 基站数据已更新 **额外返回参数** 无 **例子** ``` -- 订阅式 sys.subscribe("CELL_INFO_UPDATE", function() log.info("cell", json.encode(mobile.getCellInfo())) end) ``` --- ### SCELL_INFO 服务小区额外信息更新 **额外返回参数** 无 **例子** ``` -- 订阅式 sys.subscribe("SCELL_INFO", function() log.info("service cell", mobile.scell())) end) ``` --- --- ### NTP_UPDATE 时间已经同步 **额外返回参数** 无 **例子** ``` -- 对于电信/移动的卡, 联网后,基站会下发时间,但联通卡不会,务必留意 sys.subscribe("NTP_UPDATE", function() log.info("mobile", "time", os.date()) end) ``` --- ### CSCON RRC状态 **额外返回参数** 无 **例子** ``` -- state 1 CONNECT 0 IDLE sys.subscribe("CSCON", function(state) log.info("mobile", "CSCON", state) end) ``` --- ### CC_IND 通话状态变化 **额外返回参数** 无 **通话状态回调参数** status,通话状态,string类型,取值如下: * "READY":通话准备完成,可以拨打电话或者呼入电话了 * "INCOMINGCALL":有电话呼入 * "CONNECTED":电话已经接通 * "DISCONNECTED":电话被对方挂断 * "SPEECH_START":通话开始 * "MAKE_CALL_OK":拨打电话请求成功 * "MAKE_CALL_FAILED":拨打电话请求失败 * "ANSWER_CALL_DONE":接听电话请求完成 * "HANGUP_CALL_DONE":挂断电话请求完成 * "PLAY":开始有音频输出 **例子** ``` sys.subscribe("CC_IND", function(status) log.info("CC状态", status) end) ``` --- ### SMS_READY 短信功能初始化完成。SIM卡注册网络后底层发出此消息,此时可以正常收发短信。 **额外返回参数** id, SIM卡索引, number类型,从1开始 **回调参数说明** | 参数 | 类型 | 说明 | | --- | --- | --- | | id | number | SIM卡索引,从1开始 | **注意事项** * 未插卡或未注册网络时不会触发此消息 * 建议在发送/接收短信前先等待该消息,确保短信模块已就绪 **例子** ``` sys.subscribe("SMS_READY", function(id) log.info("sms", "ready, sim id:", id) -- 收到SMS_READY后可安全收发短信 sms.send("10010", "101") end) ``` --- ### RRC_IND RRC部分信息上报,2025/9/15启用 **额外返回参数** 无 **例子** ``` sys.subscribe("RRC_IND", function(event, value, ...) log.info("rrc status", event, value, ...) end) event目前有 1、"DRX",DRX周期值,后续跟1个参数为具体的DRX周期值,单位ms,目前只有320,640,1280,2560 2、"IDLE_MEAS_THRESHOLD",RRC IDLE下邻区测量阈值,后续跟4个参数为具体的测量阈值,单位dbm 4个参数分别为sIntraSearchP, sNonIntraSearchP, sIntraSearchQ, sNonIntraSearchQ 当rsrp <= sIntraSearchP,启动同频邻区测量,低功耗下功耗有所升高 当rsrp <= sNonIntraSearchP,启动异频邻区测量,低功耗下功耗显著升高 如果sIntraSearchQ不为0,当rsrq <= sIntraSearchQ,启动同频邻区测量,低功耗下功耗有所升高 如果sNonIntraSearchQ不为0,当rsrq <= sNonIntraSearchQ,启动异频邻区测量,低功耗下功耗显著升高 ``` --- ## netdrv [netdrv接口文档页](https://docs.openluat.com/osapi/core/netdrv/) ### PING_RESULT ping的应答结果 **额外返回参数** | 返回参数类型 | 解释 | | --- | --- | | number | 网络适配器id | | number | 往返耗时, 单位ms | | string | 目标IP地址 | | number | TTL值 | **例子** ``` sys.subscribe("PING_RESULT", function(adapter, time_used, ip, ttl) log.info("icmp", "ping", ip, time_used, ttl) end) ``` --- ## iperf [iperf接口文档页](https://docs.openluat.com/osapi/core/iperf/) ### IPERF_REPORT iperf测试的报告 **额外返回参数** | 返回参数类型 | 解释 | | --- | --- | | number | 传输的总字节数 | | number | 测试时长, 单位ms | | number | 带宽, 单位kbps | **例子** ``` sys.subscribe("IPERF_REPORT", function(bytes, ms, kbps) log.info("iperf", "report", bytes, ms, kbps) end) ``` --- ## mqtt [mqtt接口文档页](https://docs.openluat.com/osapi/core/mqtt/) ### MQTT_PONG 收到MQTT服务器的PING响应 **额外返回参数** | 返回参数类型 | 解释 | | --- | --- | | userdata | mqtt客户端对象 | **例子** ``` sys.subscribe("MQTT_PONG", function(mqtt_client) log.info("mqtt", "pong") end) ``` --- ## socket [socket接口文档页](https://docs.openluat.com/osapi/core/socket/) ### IP_READY 已联网 **额外返回参数** 无 **例子** ``` -- 联网后会发一次这个消息 sys.subscribe("IP_READY", function(ip, adapter) log.info("mobile", "IP_READY", ip, (adapter or -1) == socket.LWIP_GP) end) ``` 补充说明: 在如下几种情况下, 系统都会发布 IP_READY 消息: (1)4G 的 PDP 成功激活, (2)WiFi 连接宽带成功分配 IP, (3)以太网连接宽带成功分配 IP, (4)WiFi 设置静态 IP,连接成功了另一个 AP; (5)以太网设置静态 IP,连接成功了网线。 如果没有插 SIM 卡的情况下,或者是 4G 的网络没有建立的情况下, 注意有如下两种情况: (1) 以太网网线接好(假如接到了宽带路由器),系统会发布 IP_READY ; (2) WiFi STA 连上了一个 AP, 系统会发布 IP_READY ; 通过消息的回调参数,来取得 IP 和 网卡的 ID,可以区分是哪种上网方式。 --- ### IP_LOSE 已断网 **额外返回参数** 无 **例子** ``` -- 断网后会发一次这个消息 sys.subscribe("IP_LOSE", function(adapter) log.info("mobile", "IP_LOSE", (adapter or -1) == socket.LWIP_GP) end) ``` ### NTP_UPDATE 时间已经同步 **额外返回参数** 无 **例子** ``` sys.subscribe("NTP_UPDATE", function() log.info("socket", "sntp", os.date()) end) ``` --- ### NTP_ERROR 时间同步失败 **额外返回参数** 无 **例子** ``` sys.subscribe("NTP_ERROR", function() log.info("socket", "sntp error") end) ``` --- ## websocket [websocket接口文档页](https://docs.openluat.com/osapi/core/websocket/) ### WEBSOCKET_CONNACK websocket连接建立成功 **额外返回参数** | 返回参数类型 | 解释 | | --- | --- | | userdata | websocket对象 | **例子** ``` sys.subscribe("WEBSOCKET_CONNACK", function(wsc) log.info("websocket", "connected") end) ``` --- ## sms [sms接口文档页](https://docs.openluat.com/osapi/core/sms/) ### SMS_SENT 短信发送结果 **额外返回参数** | 返回参数类型 | 解释 | | --- | --- | | result | boolean 发送结果,成功为true, 失败为false | **例子** ``` sys.subscribe("SMS_SENT", function(result) log.info("sms send result", result) end) ``` --- ### SMS_INC 收到短信 **额外返回参数** | 返回参数类型 | 解释 | | --- | --- | | string | 手机号 | | string | 短信内容,UTF8编码 | **例子** ``` --使用的例子,可多行 -- 接收短信, 支持多种方式, 选一种就可以了 -- 1. 设置回调函数 --sms.setNewSmsCb( function(phone,sms) log.info("sms",phone,sms) end) -- 2. 订阅系统消息 --sys.subscribe("SMS_INC", function(phone,sms) log.info("sms",phone,sms) end) ``` --- ### SMS_READY 表示短信功能初始化完成。 **额外返回参数** | 返回参数类型 | 解释 | | --- | --- | | number | SIM卡索引, 从1开始 | 例子 ``` -- id 为SIM卡的索引 sys.subscribe("SMS_READY", function(id) log.info("mobile", "SMS_READY", id) log.info("sms", "ready, sim id:", id) -- 收到SMS_READY后可安全收发短信 sms.send("10010", "101") end) ``` ## usbapp [usbapp接口文档页](https://gitee.com/openLuat/LuatOS/blob/master/components/usbapp/luat_lib_usbapp.c) ### USB_HID_INC USB虚拟HID设备的状态变化 **额外返回参数** | 返回参数类型 | 解释 | | --- | --- | | number | 事件id: 0未就绪, 1就绪, 2发送完成, 3收到新数据 | **例子** ``` sys.subscribe("USB_HID_INC", function(event) log.info("usbapp", "hid event", event) end) ``` ---
handrap
2026年11月4日 10:08
转发文档
收藏文档
上一篇
下一篇
手机扫码
复制链接
手机扫一扫转发分享
复制链接
Markdown文件
PDF文档(打印)
分享
链接
类型
密码
更新密码
AI