LuatOS系统消息机制全解析:从概念到应用
系统消息是LuatOS实现高效事件处理与模块解耦的核心机制。它以轻量级、非阻塞的方式传递状态变更、外设中断和定时任务等事件,极大提升了嵌入式应用的实时性与可维护性。本文将从基本概念出发,逐步解析消息注册、分发与回调的完整链路,并结合实际案例说明其在项目开发中的典型应用模式。
此处列举了LuatOS框架中自带的系统消息列表
一、sys
文档链接:https://docs.openluat.com/osapi/core/sys/
二、pm
文档链接:https://docs.openluat.com/osapi/core/pm/
1、DTIMER_WAKEUP
deep sleep timer定时时间到回调
额外返回参数
无
例子

2、YHM27XX_REG
YHM27XX芯片寄存器信息更新回调
额外返回参数
无
例子

三、lora
文档链接:https://docs.openluat.com/osapi/core/lora2/
1、LORA_TX_DONE
LORA 发送完成
额外返回参数
无
例子

2、LORA_RX_DONE
LORA 接收完成
额外返回参数
无
例子

3、LORA_TX_TIMEOUT
LORA 发送超时
额外返回参数
无
例子

4、LORA_RX_TIMEOUT
LORA 接收超时
额外返回参数
无
例子

5、LORA_RX_ERROR
LORA 接收错误
额外返回参数
无
例子

四、libgnss
文档链接:https://docs.openluat.com/osapi/core/libgnss/
1、GNSS_STATE
GNSS状态变化
额外返回参数
无
例子

五、mobile
文档链接:https://docs.openluat.com/osapi/core/mobile/
1、SIM_IND
sim卡状态变化
额外返回参数
无
例子

2、CELL_INFO_UPDATE
基站数据已更新
额外返回参数
无
例子

3、SCELL_INFO
服务小区额外信息更新
额外返回参数
无
例子

4、NTP_UPDATE
时间已经同步
额外返回参数
无
例子

5、CSCON
RRC状态
额外返回参数
无
例子

6、CC_IND
通话状态变化
额外返回参数
无
通话状态回调参数
status,通话状态,string类型,取值如下:
-
"READY":通话准备完成,可以拨打电话或者呼入电话了
-
"INCOMINGCALL":有电话呼入
-
"CONNECTED":电话已经接通
-
"DISCONNECTED":电话被对方挂断
-
"SPEECH_START":通话开始
-
"MAKE_CALL_OK":拨打电话请求成功
-
"MAKE_CALL_FAILED":拨打电话请求失败
-
"ANSWER_CALL_DONE":接听电话请求完成
-
"HANGUP_CALL_DONE":挂断电话请求完成
-
"PLAY":开始有音频输出
例子

六、socket
文档链接:https://docs.openluat.com/osapi/core/socket/
1、IP_READY
已联网
额外返回参数
无
例子

补充说明:
在如下几种情况下, 系统都会发布 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,可以区分是哪种上网方式。
2、IP_LOSE
已断网
额外返回参数
无
例子

3、NTP_UPDATE
时间已经同步
额外返回参数
无
例子

4、NTP_ERROR
时间同步失败
额外返回参数
无
例子

七、sms
文档链接:https://docs.openluat.com/osapi/core/sms/
1、SMS_INC
收到短信
额外返回参数

例子

今天的内容就分享到这里了~

浙公网安备 33010602011771号