rtos

作者:吴永 更新时间:2020年8月11日 关键字:rtos、文件系统空间大小、定时器、闹钟、tick、fota升级、core版本、重启原因、开机原因

rtos

系统相关接口

@[ TOC]

### rt os.r ecei ve()

接收 消息

语法

``m sg,m sgpa ra =

rto

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

语法

r tos. 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.poweron()

是否启动 GSM 开机

  • 语法

    rtos.poweron(flag)

  • 参数

    参数

    释义

    flag

    0 表示不启动系统;1 表示启动系统

  • 返回值


rtos.poweroff()

软件关机

  • 语法

    rtos.poweroff([type])

  • 参数

    参数

    释义

    type

    可选参数,默认为0; 0正常关机;1关机充电

  • 返回值


rtos.restart()

软件重启

  • 语法

    rtos.restart()

  • 参数

  • 返回值


rtos.sleep()

延时函数

  • 语法

    rtos.sleep(millisecond)

  • 参数

    参数

    释义

    millisecond

    延时时间 ,以毫秒为单位

  • 返回值


rtos.get_env_usage()

获取 lua 任务消息队列的使用百分比

  • 语法

    percentage=rtos.get_env_usage()

  • 参数

  • 返回值

    percentage,百分比,例如使用了 80%,则 percentage 为 80


rtos.make_dir()

创建目录

  • 语法

    rtos.make_dir(path)

  • 参数

    参数

    释义

    path

    文件夹路径

  • 返回值

    布尔值

    true表示创建成功,false表示失败


rtos.remove_dir()

删除文件夹

  • 语法

    rtos.remove_dir(path)

  • 参数

    参数

    释义

    path

    文件夹路径

  • 返回值

    true表示删除成功,false表示失败


rtos.get_fs_free_size()

获取文件系统剩余空间

  • 语法

    rtos.get_fs_free_size()

  • 参数

  • 返回值

    文件系统剩余空间,单位Bytes


rtos.get_fs_total_size()

获取文件系统总空间

  • 语法

    rtos.get_fs_total_size()

  • 参数

  • 返回值

    文件系统总大小,单位Bytes


rtos.toint64()

将数字字符串转为int64类型数据

  • 语法

    rtos.toint64(str,typ)

  • 参数

    参数

    释义

    str

    待转换的字符串

    typ

    "big""little",表示大端还是小端

  • 返回值

    int64数据的二进制内容字符串


rtos.get_version()

获取底层固件版本号

  • 语法

    rtos.get_version()

  • 参数

  • 返回值

    底层固件Core版本号,例如:Luat_V0019_RDA8910


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()接口,进行固件更新

### rtos .not ify_ sim_ dete ct()

sim 卡热 插拔

语法

rt os.n otif y_si m_de tect (nsi m,co nnec t)

参数

| 参数 | 释义 | | ——– | ———— ———— ———— ———— ———— | | 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://doc.luatos.wiki/wiki/pages/1730.html https://doc.luatos.wiki/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

    初始化参数

  • 返回值

  • 使用说明