rtos¶
作者:吴永 更新时间:2020年8月11日 关键字:rtos、文件系统空间大小、定时器、闹钟、tick、fota升级、core版本、重启原因、开机原因
rtos¶
系统相关接口
@[ TOC] |
### rt os.r ecei ve() |
接收 消息 |
语法 |
``m sg,m sgpa ra =
s.re ceiv e(ti meou t)`` |
参数 |
| 参数 | 释义 | | ——- | ———— ———— ———— ———— ———— | | tim eout | tim eout 超 时返 回以 毫秒 为单 位, 可以 用#r tos. INF_ TIME OUT# 表示 阻塞 等待 消息 | |
返 回值 |
如果 msg 为 t able 类 型, msg 根 据不 同的 消息 ms g.id 会有 不同 的数 据: |
如果 msg 为 nu mber 类 型, msg 根 据不 同的 消息 msg 会 有不 同的 数据 |
> 1.rt os.M SG_T IMER 定 时器 超时 消息 |
msg. time r_id 或者 msg para 为 超时 的定 时器 id |
>2. rtos .MSG _UAR T_RX DATA 串口 ATC 数据 提醒 |
msg .uar t_id 或 者m sgpa ra为 收到 的数 据的 串口 id或 者at c,收 到该 消息 后可 以通 过u art. read 接口 读取 数据 |
>3 .rto s.MS G_KE YPAD 键盘 消息 ,必 须初 始化 按键 (#rt os.i nit_ modu le#) 后才 会有 键盘 消息 |
msg .pre ssed 按 键按 下/ 弹起 |
ms g.ke y_ma trix _row 按键 所在 行值 |
ms g.ke y_ma trix _col 按键 所在 列值 |
>4.r tos. WAIT _MSG _TIM EOUT 等待 消息 超时 |
>5. rtos .MSG _INT 中断 消息 |
ms g.in t_id 中断 id |
ms g.in t_re snum 中断 pin 脚 编号 |
>6. rtos .MSG _PMD 电源 管理 消息 |
msg .pre sent 电池 在位 状态 |
m sg.l evel 百 分比 0 -100 |
msg .vol tage 电池 电压 |
msg .cha rger 充 电器 在位 状态 |
m sg.s tate 充电 状态 :0- 不在 充电 1-充 电中 2- 充电 停止 |
rtos.timer_start()¶
启动定时器
语法
rtos.timer_start(timer_id, timeout)
参数
参数
释义
timer_id
定时器 id,可以是任意整数,定时器到时 msg.timer_id 值为启动时定时器
timeout
定时器延时时间以毫秒为单位
返回值
无
rtos.timer_stop()¶
停止定时器
语法
rtos.timer_stop(timer_id)
参数
参数
释义
timer_id
输入与启动定时器时定义的 id 即可停止定时器
返回值
无
### rto s.ti ck() |
获取 系统 tick |
语法 |
|
参数 |
无 |
返 回值 |
系统 启动 后的 计数 个数 ,单 位为 5ms |
rtos.set_alarm()¶
打开/关闭闹钟
语法
rtos.set_alarm(on,year,month,day,hour,min,sec)
参数
参数
释义
on
打开/关闭闹钟,1表示打开,0表示关闭
year
闹钟日期-年,如2020,表示2020年
month
闹钟日期-月,如8,表示8月
day
闹钟日期-日,如20,表示20号
hour
闹钟时间-小时,如10,表示10点
min
闹钟时间-分钟,如20,表示20分
sec
闹钟时间-秒,如20,表示20秒
返回值
无
### rto s.se t_ti me() |
设置 系统 时间 |
语法 |
`` rtos .set _tim e(ye ar,m onth ,day ,hou r,mi n,se c)`` |
参数 |
| 参数 | 释义 | | ——– | —— ———— ———— ———— | |ye ar| 日期 -年, 如20 20, 表示 2020 年| |mon th\| 日 期- 月, 如8 ,表 示8 月\| \|da y|日 期- 日, 如20 ,表 示20 号\| \|h our| 时间 -小 时, 如10 ,表 示10 点| | min| 时间 -分 钟, 如20 ,表 示20 分| |se c|时 间- 秒, 如20 ,表 示20 秒| |
返 回值 |
无 |
rtos.poweron_reason()¶
读取开机原因值
语法
reason=rtos.poweron_reason()
参数
无
返回值
rtos. POWERON_KEY(=0)
按键开机
rtos. POWERON_CHARGER(=1)
充电开机
rtos. POWERON_ALARM(=2)
闹钟开机
rtos. POWERON_RESTART(=3)
软件(异常)重启开机
rtos. POWERON_EXCEPTION(=4)
看门狗重启
5
硬件重启
rtos.get_env_usage()¶
获取 lua 任务消息队列的使用百分比
语法
percentage=rtos.get_env_usage()
参数
无
返回值
percentage,百分比,例如使用了 80%,则 percentage 为 80
rtos.toint64()¶
将数字字符串转为int64类型数据
语法
rtos.toint64(str,typ)
参数
参数
释义
str
待转换的字符串
typ
"big"
或"little"
,表示大端还是小端返回值
int64数据的二进制内容字符串
rtos.fota_start()¶
远程升级初始化
语法
rtos.fota_start()
参数
无
返回值
无
rtos.fota_process()
远程升级
语法
rtos.fota_process(data, len)
参数
参数
释义
data
从网络端下载的固件包,部分数据 ,string类型,二进制数据流
len
差分包的总长度,不是本次写入的数据长度
返回值
返回值
释义
0
固件数据包处理正常,可以继续下载
-99
内存不足
-96
固件校验错误
-95
固件写入错误
rtos.fota_end()
远程升级结束,不管升级成功还是失败,都要调用一下该接口。
语法
rtos.fota_end()
参数
无
返回值
无
注意
固件下载成功后,需要调用一下rtos.restart()接口,进行固件更新
sim 卡热 插拔 |
语法 |
|
参数 |
| 参数 | 释义 | | ——– | ———— ———— ———— ———— ———— | | ns im| sim 卡nu mber ,si m0为 1, sim 1为2 | | con nect | 0 代表 拔卡 ,1 代表 插卡 | |
返 回值 |
无 |
使用 说明 |
** 硬件 上将 sim 卡的 插拔 和某 个IO 关联 起来 ,软 件上 将这 个IO 配置 为中 断, 当s im卡 插拔 时, 产生 IO中 断, 根据 中断 状态 ,调 用rt os.n otif y_si m_de tect 接口 来实 现热 插拔 的检 测** |
rtos.on()¶
注册外部消息的处理函数
外部消息的定义参考: https://luatdoc.papapoi.com/wiki/pages/1730.html https://luatdoc.papapoi.com/wiki/pages/1769.html 有定时器消息,串口消息,socket消息,音频播放消息等等
语法
rtos.on(msgId, cbFnc)
参数
参数
释义
msgId
外部消息ID
cbFnc
外部消息的处理函数
返回值
无
使用说明
一般来说,用户在自己的应用脚本中不需要使用此接口,一些必须的外部消息处理逻辑在lib脚本中已经封装实现
rtos.init_module()¶
初始化外设模块,目前只支持rtos.MOD_KEYPAD
,对应的外部消息处理函数通过rtos.on
注册。
语法
rtos.init_module(modId, ...)
参数
参数
释义
modId
模块ID
…
初始化参数
返回值
无
使用说明
无