/************************************************* * Copyright (C), Xiongmai Information Technologies Co., Ltd. 2018-2019. All rights reserved. * 文件名: maque_env.h * 作者@编号: XM R&D @02479 * 版本: V1.00 * 创建日期: 2019.02.18 * 功能描述: 声明Env分区读写相关对外接口。 * * 修改历史: ** 1.日期: 2019.02.18 ** 修改者: XM R&D @02479 ** 修改内容: 首次创建 。 ** 2.日期: 2019.02.18 ** 修改者: XM R&D @02479 ** 修改内容: 完成了基础版。 *************************************************/ #ifndef MAQUE_ENV_H #define MAQUE_ENV_H #ifdef __cplusplus extern "C" { #endif /* 【功能描述】 设置Env分区的键值。为了提交效率,系统启动时,会把Env分区读到内存中作为备份。读操作, 就从内存备份区获取;写操作,先把键值对设置到内存备份区,计算CRC32校验后,再写到Flash 中。如果Env分区已有相同的键,将会先删除原有的,再在后面添加新的。 本API只是把键值对设置到内存的备份区中,并没有实际写到Flash中。写到Flash的操作,由 下面API:LibXmMaQue_Env_save()完成。与下面API:LibXmMaQue_Env_writeKeyValue()相比, 后者相当于集成了LibXmMaQue_Env_setKeyValue()和LibXmMaQue_Env_save()功能,即不但会 修改内存备份区,同时还会写入Flash。注意这三个API的区别。提供本API的好处是,当有多 个键值对需要更新时,先更新到内存备份区,最后一次性写入Flash,可大大提高效率,同时 增加Flash的使用寿命。 【参数】 参数名称 描述 pKey [in] 需要设置的键名。 pValue [in] 需要设置的键值。 【返回值】 XM_SUCCESS 成功。 其它 失败,请参考错误码。 【注意】 调用LibXmMaQue_Env_setKeyValue(),只把键值对设置到内存备份区,不会写到Flash Env 分区,调用下面介绍的LibXmMaQue_Env_getValue()可以获取到,但断电后会丢失。要想保 存到Flash中,可以调用LibXmMaQue_Env_save()。或直接调用LibXmMaQue_Env_writeKeyValue()。 */ XM_S32 LibXmMaQue_Env_setKeyValue(XM_CHAR *pKey, XM_CHAR *pValue); /* 【功能描述】 把Env内存备份区的数据保存到Flash中。一般和上一个API:LibXmMaQue_Env_setKeyValue()配合使用。 【参数】 无。 【返回值】 XM_SUCCESS 成功。 其它 失败,请参考错误码。 */ XM_S32 LibXmMaQue_Env_save(XM_VOID); /* 【功能描述】 把函数传入的键值对,更新到Env内存备份区,然后保存到Flash中。如果Env分区已经有相同的键, 将会先删除原有的,再在后面添加新的。注意:和前面API:LibXmMaQue_Env_setKeyValue()的区 别。相当于集成了LibXmMaQue_Env_setKeyValue()和LibXmMaQue_Env_save()功能。 【参数】 参数名称 描述 pKey [in] 需要保存到Flash中的键名。 pValue [in] 需要保存到Flash中的键值。 【返回值】 XM_SUCCESS 成功。 其它 失败,请参考错误码。 【注意】 调用LibXmMaQue_Env_writeKeyValue(),把键值对设置到内存备份区,同时写到Flash Env分区, 频繁调用会影响Flash寿命。 */ XM_S32 LibXmMaQue_Env_writeKeyValue(XM_CHAR *pKey, XM_CHAR *pValue); /* 【功能描述】 读取Env分区pKey对应的值。如果Env分区找不到pKey对应的键值,将返回失败。 【参数】 参数名称 描述 pKey [out] 需要读取其值的键名。 pValue [out] 保存所获取键值的Buffer指针。 valueLen [in] 分配给pValue的最大空间(单位:字节),包括字符串的结束符。 【返回值】 XM_SUCCESS 成功。 其它 失败,请参考错误码。 【注意】 给pValue分配的Buffer要足够大,否则获取的字符串被截断。 */ XM_S32 LibXmMaQue_Env_getValue(XM_CHAR *pKey, XM_CHAR *pValue, XM_S32 valueLen); #ifdef __cplusplus } #endif #endif //MAQUE_ENV_H