sys模块¶
状态 | 最后更新 | API版本 |
---|---|---|
Active | 2019-11-14 | V1.00.00 |
描述¶
此模块提供对系统数据的部分访问。
版本格式¶
让我们先定义一种版本格式naïve
。
一个uint32的变量用于存储版本信息,更大的数字表示更新的版本,
当转化为用户可读字符串时,两个逗号分别插入到倒数第二个数字和倒数第四个数字处。例如,12345 (十进制) 转化后为 V1.23.4,V1.23.5比V1.23.4更新。
sys.gHWVer()¶
描述¶
以 naïve
格式获取系统的硬件版本。
参数¶
nil
返回值¶
名称 | 类型 | 范围 | 用途 |
---|---|---|---|
HW_VER | number | 硬件版本 |
调用例¶
hwVer = sys.gHWVer()
sys.gFWVer()¶
描述¶
以 naïve
格式获取系统的固件版本。
参数¶
nil
返回值¶
名称 | 类型 | 范围 | 用途 |
---|---|---|---|
FW_VER | number | 固件版本 |
调用例¶
fwVer = sys.gFaWVer()
sys.gIsUSBPowered()¶
描述¶
检查系统是否由5V独立USB电源供电。
参数¶
nil
返回值¶
名称 | 类型 | 范围 | 用途 |
---|---|---|---|
connected | boolean | 是否 |
Example call¶
isConnected = sys.gIsUSBPowered()
sys.gTick()¶
描述¶
获取RTOS的Tick数。
参数¶
nil
返回值¶
名称 | 类型 | 范围 | 用途 |
---|---|---|---|
tick | number | 从系统开机以来的Tick数(Tick频率为1000HZ) |
调用例¶
tick = sys.gTick()
sys.sLuaModDebug()¶
描述¶
设置是否启用lua API的调试输出。 这用于调试lua API本身,调试输出同样被输出到用户终端。
参数¶
名称 | 类型 | 范围 | 用途 |
---|---|---|---|
status | number | 1为启用,0为禁用,默认为禁用 |
返回值¶
nil
调用例¶
sys.sLuaModDebug(1)
sys.gLuaAPIVer()¶
描述¶
以naïve
格式获取lua API的版本。
参数¶
nil
返回值¶
名称 | 类型 | 范围 | 用途 |
---|---|---|---|
API_VER | number | API版本 |
调用例¶
apiVer = sys.gLuaAPIVer()
sys.gTotalHeap()¶
描述¶
获取系统的堆的总大小。
参数¶
nil
返回值¶
名称 | 类型 | 范围 | 用途 |
---|---|---|---|
size | number | 以字节为单位的堆大小 |
调用例¶
heapTotal = sys.gTotalHeap()
sys.gFreeHeap()¶
描述¶
获取当前空闲的堆大小。
参数¶
nil
返回值¶
名称 | 类型 | 范围 | 用途 |
---|---|---|---|
size | number | 以字节为单位的空闲堆大小 |
调用例¶
heapFree = sys.gFreeHeap()
sys.gFreeHeapEver()¶
描述¶
获取自开机以来,最少的空闲堆大小,用于评估内存峰值使用量。
参数¶
nil
返回值¶
名称 | 类型 | 范围 | 用途 |
---|---|---|---|
size | number | 以字节为单位的最小空闲堆大小 |
调用例¶
heapFreeEver = sys.gFreeHeapEver()
sys.gVDD()¶
描述¶
获取VDD电源轨的电压,这个值通常为3.3V
参数¶
nil
返回值¶
名称 | 类型 | 范围 | 用途 |
---|---|---|---|
voltage | number | 以伏特为单位的VDD电压 |
调用例¶
vdd = sys.gVDD()
sys.gBoardTempK()¶
描述¶
以开尔文为单位获取板载温度传感器的读数。
参数¶
nil
返回值¶
名称 | 类型 | 范围 | 用途 |
---|---|---|---|
temperature | number | 以开尔文为单位的温度 |
调用例¶
temp = sys.gBoardTempK()
sys.verToString()¶
描述¶
将一个naïve
格式的版本转化为用户可读的字符串。
参数¶
名称 | 类型 | 范围 | 用途 |
---|---|---|---|
<version> | number | naïve |
返回值¶
名称 | 类型 | 范围 | 用途 |
---|---|---|---|
readable | string | 经过转化的版本字符串 |
调用例¶
print(sys.verToString(10000))
sys.gByteCode()¶
描述¶
转化一个*.lua
的lua源文件到*.lc
的字节码文件。
输出文件在输入文件同一目录内。
参数¶
| 名称 | 类型 | 范围 | 用途 |
| —— | —— | —— | —— |
| <path> | string| | 源文件的路径 |
| [option] | number| sys.STRIP_DEBUG_INFO
sys.RESERVE_DEBUG_INFO
|可选参数,指定是否去掉调试信息。缺省值为sys.STRIP_DEBUG_INFO
。|
返回值¶
nil
调用例¶
sys.gByteCode("0:/lua/user/UI_Demo.lua")
示例代码¶
--[[This is a demo for sys APIs. The output will be on the terminal.
Version: 191111
Author: yanke928]]
print("Hardware Version:",sys.verToString(sys.gHWVer()))
print("Software Version:",sys.verToString(sys.gFWVer()))
print("Lua API Version: ",sys.verToString(sys.gLuaAPIVer()))
print("Is USB Powered: ",sys.gIsUSBPowered())
print("System Tick: ",sys.gTick())
print("Total Heap: ",sys.gTotalHeap())
print("Free Heap: ",sys.gFreeHeap())
print("Free Heap Ever: ",sys.gFreeHeapEver())
print("VDD Voltage: ",sys.gVDD())
print("Board Temp Kel: ",sys.gBoardTempK())
--[[ call sys.reset() to reboot.]]
os.exit()