跳转至

模块信息(hmeta)

一、模块信息概述

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

包含设备唯一 id,硬件型号,模组的硬件版本号,固件版本号等;

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

二、演示功能概述

使用 Air8000 核心板烧录底层固件(LuatOS-SoC_V2003_Air8000)和 hmeta 例程脚本学习有关模块信息的 api 函数.

三、准备硬件环境

参考:硬件环境清单第二章节内容,准备以及组装好硬件环境。

四、软件环境

“凡事预则立,不预则废。”在详细阐述本功能示例之前,我们需先精心筹备好以下软件环境。

1. Luatools工具

2. 内核固件文件(底层core固件文件):LuatOS-SoC_V2003_Air8000;参考项目使用的内核固件

3. luatos需要的脚本和资源文件

脚本和资源文件点击此处查看与下载

lib脚本文件:使用Luatools烧录时,勾选 添加默认lib 选项,使用默认lib脚本文件;

准备好软件环境之后,接下来查看如何烧录项目文件到Air8000核心板,将本篇文章中演示使用的项目文件烧录到Air8000核心板中。

五、API 说明

本教程使用 api 接口为:

mcu.unique_id()-获取设备唯一id

mobile.imei(index)-获取IMEI

rtos.bsp()-获取硬件bsp型号

rtos.version()-获取固件版本号

hmeta - 硬件元数据

六、功能验证

6.1 例程

参考一下例程部分代码,点此链接查看 hmeta 的 demo 例子

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

        local unique_id = mcu.unique_id()
        log.info("unique_id", unique_id:toHex())
    -- 实例输出:unique_id  3539333139071F1E4330    20

    log.info("luatos_version ", rtos.version())
    -- 实例输出:luatos_version  V2003
        sys.wait(3000)
    end
    log.info("这个bsp不支持hmeta库哦")
end)

6.2 对应 log

[2024-10-15 15:58:13.607][000000000.315] I/user.hmeta        Air8000        A17
[2024-10-15 15:58:13.608][000000000.315] I/user.bsp        EC718
[2024-10-15 15:58:13.608][000000000.316] I/user.unique_id        3539333139071F1E4330        20
[2024-10-15 15:58:13.609][000000000.316] I/user.luatos_version         V2003
[2024-10-15 15:58:15.304][000000002.142] soc_cms_proc 1518:NAS Event 6 Reject 7 CellID 3c

七、总结

通过本章学习,你可以学习到模块唯一 ID,模块硬件型号,固件版本,硬件版本的获取方法.

八、常见问题

8.1 模块唯一 ID 文档

mobile.sn()获取 SN,出厂未必有写 SN; 一般用途的唯一 id, 可以用 mobile.imei()代替; 如需要真正的唯一 ID, 使用 mcu.unique_id()

8.2 通过 IMEI 查询模块生产记录

合宙云平台 (openluat.com)