comEnv模块对外提供libComEnv.so动态库用于通用参数的读写,为了统一不同设备的通用信息,方便协议的对接,与工程打包,Emx定义了几个通用的参数
DevInfo类
DevInfo存储了设备相关的信息,在设备运行期间这个是以只读文件devInfo.json的形式存在,其中的固件版本信息被区分为内部和外部,实际用户看到的应该是简单的外部型号和版本,开发人员可以看到详细的内部型号和版本,SDK使用人员可以根据自己的需求填写。固件打包的时候,打包脚本会使用 inner.type 和 inner.version 作为固件的型号和版本,update模块进行升级的时候会拿中的 inner.type + inner.version 与固件包中的进行比较来判断是否升级
devInfo.json
{
"inner": {
"type": "CT_M4C7S3W0P0",
"version": "2.0.20220911.20"
},
"outer": {
"type": "P20C",
"version": "0.0.2"
},
"hardware": {
"type": "Cv182xGunV1",
"version": "v1.0"
}
}
| Key | Type | Description |
| inner | obj | 内部信息 |
| outer | obj | 外部信息 |
| hardware | obj | 硬件信息 |
| xxx.type | string | 类型 |
| xxx.version | string | 版本 |
示例
DevInfo devInfo;
if (e != ErrCodeE::Success) {
return;
}
printf("inner.type=%s\n", devInfo.GetInner()->type);
printf("inner.version=%s\n", devInfo.GetInner()->version);
printf("outer.type=%s\n", devInfo.GetOuter()->type);
printf("outer.version=%s\n", devInfo.GetOuter()->version);
printf("hardware.type=%s\n", devInfo.GetHardware()->type);
printf("hardware.version=%s\n", devInfo.GetHardware()->version);
ErrCodeE
错误码定义
Definition: EmxTypeDef.hpp:29
Mac&Sn类
与DevInfo类似,为了向其他模块提供统一的接口,因此定义了Sn与Mac这两个类以及相应json参数文件,其中sn是设备序列号,用户可使用这个文件作为设备的序列号,mac是生产过程中烧录的mac地址,某些平台会需要厂商上传mac地址信息来绑定设备,因此可以将mac地址烧录到这个文件里,并使用这个类进行访问
sn.json
mac.json
{
"mac": "00:0c:29:4c:17:9e"
}
示例
Sn sn;
e = sn.Load();
if (e != ErrCodeE::Success) {
return;
}
printf("sn=%s\n", sn.Get());
Mac mac;
e = mac.Load();
if (e != ErrCodeE::Success) {
return;
}
printf("mac=%s\n", mac.Get());
TimeZone类
TimeZone类实现了时区的配置和获取,其中时区参数是一个字符串路径,例如"GMT-8"是存放在设备zoneInfo下的GMT-8时区文件,"Asia/Shanghai"是存放在zoneInfo下的Asia/Shanghai时区文件。TimeZone类提供了对时区的配置加载,以及获取支持的时区列表功能
zone.json