跳转至

hmeta - 硬件元数据

作者:沈园园

一、概述

硬件元数据是合宙每一个模块携带的信息,就像人的身份证一样,这些信息确定了模组的唯一性;

硬件元数据,包含模组的型号,模组的硬件版本号,原始芯片型号;

模块远程升级需要上传模组信息,解决和分析某些问题的时候可能也会需要确认模组信息。

二、核心示例

1、核心示例是指:使用本库文件提供的核心API,开发的基础业务逻辑的演示代码;

2、核心示例的作用是:帮助开发者快速理解如何使用本库,所以核心示例的逻辑都比较简单;

3、更加完整和详细的demo,请参考 LuatOS仓库 中各个产品目录下的demo/hmeta

sys.taskInit(function()
    while 1 do
        sys.wait(3000)
        -- hmeta识别底层模组类型的
        -- 不同的模组可以使用相同的bsp,但根据封装的不同,根据内部数据仍可识别出具体模块
       log.info("hmeta", hmeta.model(), hmeta.hwver(), hmeta.chip())
    end
end)

三、常量详解

核心库常量,顾名思义是由合宙 LuatOS 内核固件中定义的、不可重新赋值或修改的固定值,在脚本代码中不需要声明,可直接调用;

每个常量对应的常量取值仅做日志打印时查询使用,不要将这个常量取值用做具体的业务逻辑判断,因为LuatOS内核固件可能会变更每个常量对应的常量取值;

如果用做具体的业务逻辑判断,一旦常量取值发生改变,业务逻辑就会出错;

hmeta核心库没有常量。

四、函数详解

4.1 hmeta.model()

获取模组名称

参数

返回值

local model = hmeta.model()

model

含义说明:若能识别到,返回模组名称, 否则会是nil
数据类型:string或者nil
取值范围:无特别限制;
注意事项:暂无;
返回示例:"Air780EPM"

示例

sys.taskInit(function()
    while 1 do
        sys.wait(3000)
        -- hmeta识别底层模组类型的
        -- 不同的模组可以使用相同的bsp,但根据封装的不同,根据内部数据仍可识别出具体模块
        log.info("hmeta", hmeta.model())--Air780EPM
    end
end)

4.2 hmeta.hwver()

获取模组的硬件版本号

参数

返回值

local hwver = hmeta.hwver()

hwver

含义说明:若能识别到,模组的硬件版本号, 否则会是nil
数据类型:string或者nil
取值范围:无特别限制;
注意事项:暂无;
返回示例:"A11"

示例

sys.taskInit(function()
    while 1 do
        sys.wait(3000)
        -- hmeta识别底层模组类型的
        -- 不同的模组可以使用相同的bsp,但根据封装的不同,根据内部数据仍可识别出具体模块
        log.info("hmeta", hmeta.hwver())--A11
    end
end)

4.3 hmeta.chip()

获取原始芯片型号

参数

返回值

local chip= hmeta.chip()

chip

含义说明:若能识别到,返回芯片类型, 否则会是nil
数据类型:string或者nil
取值范围:无特别限制;
注意事项:暂无;
返回示例:"EC718PM"

示例

sys.taskInit(function()
    while 1 do
        sys.wait(3000)
        -- hmeta识别底层模组类型的
        -- 不同的模组可以使用相同的bsp,但根据封装的不同,根据内部数据仍可识别出具体模块
        log.info("hmeta", hmeta.chip())--EC718PM
    end
end)

五、产品支持说明

支持LuatOS开发的所有产品都支持hmeta核心库。