预定义了一些比较通用的持久化参数的操作接口 更多...

ComEnv 的协作图:

class  Emx::DevInfo
 提供获取设备类型版本信息等相关的接口 更多...
 
class  Emx::EpSn
 提供设备EpSn的获取与配置 更多...
 
class  Emx::Language
 提供设备语言版本配置和获取 更多...
 
class  Emx::Mac
 提供设备MAC地址的获取与配置 更多...
 
class  Emx::OemId
 提供设备OemId的获取与配置 更多...
 
class  Emx::Sn
 提供设备序列号的获取与配置 更多...
 
class  Emx::TimeZone
 
class  Emx::TimeZone2
 根据用户输入的GMT时区信息和夏令时信息自动生成时区文件并配置localtime 更多...
 

详细描述

  comEnv模块对外提供libComEnv.so动态库用于通用参数的读写,为了统一不同设备的通用信息,方便协议的对接,与工程打包,Emx定义了几个通用的参数

DevInfo类

  DevInfo存储了设备相关的信息,在设备运行期间这个是以只读文件devInfo.json的形式存在,其中的固件版本信息被区分为内部和外部,实际用户看到的应该是简单的外部型号和版本,开发人员可以看到详细的内部型号和版本,SDK使用人员可以根据自己的需求填写。固件打包的时候,打包脚本会使用 inner.typeinner.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;
ErrCodeE e = devInfo.Load();
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
@ Success
成功

Mac&Sn类

  与DevInfo类似,为了向其他模块提供统一的接口,因此定义了Sn与Mac这两个类以及相应json参数文件,其中sn是设备序列号,用户可使用这个文件作为设备的序列号,mac是生产过程中烧录的mac地址,某些平台会需要厂商上传mac地址信息来绑定设备,因此可以将mac地址烧录到这个文件里,并使用这个类进行访问

sn.json
{
"sn": "0123456789"
}

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
{
"zone": "GMT-8"
}