/****************************************************************************** * @file usr_prodcode.h * @brief 产品码 / 品类码持久化与广播刷新 * @author cyWu <1917507415@qq.com> * @date 2026.07.24 * @version V1.0.0 * @history * - V1.0.0, 2026.07.24, cyWu, 首次发布 ******************************************************************************/ #ifndef __USR_PRODCODE_H__ #define __USR_PRODCODE_H__ #include "system/includes.h" #include "bleproto_packer.h" /*============================================================================*/ /* 宏定义 */ /*============================================================================*/ #define USR_PRODCODE_LEN BLEPROTO_ADV_TLV_LENGTH_PRODCODE /* 4 */ #define USR_PCODE_LEN BLE_PROTO_ADV_LENGTH_PCODE /* 6 */ #define USR_PRODCODE_MAGIC 0xA5 /*============================================================================*/ /* 外部接口 */ /*============================================================================*/ /** * @brief 上电从 flash 加载产品码,无则使用默认值 */ void usr_prodcode_init(void); /** * @brief 获取当前产品码(RAM 缓存) * @param prodcode 输出 4 字节品类/产品型号 * @param pcode 输出 6 字节 productCode */ void usr_prodcode_get(u8 prodcode[USR_PRODCODE_LEN], u8 pcode[USR_PCODE_LEN]); /** * @brief 写入产品码到 flash,并触发重新广播 * @param prodcode 4 字节 * @param pcode 6 字节 * @return 0 成功,其它失败 */ int usr_prodcode_set_save_and_readv(const u8 prodcode[USR_PRODCODE_LEN], const u8 pcode[USR_PCODE_LEN]); #endif /* __USR_PRODCODE_H__ */