From 89d85b70364e360b5f3af134913fa4a425f4ea24 Mon Sep 17 00:00:00 2001 From: pandx Date: Mon, 11 Nov 2024 10:00:53 +0800 Subject: [PATCH] use hex to save shortaddr. --- scheduler/short_addr_cfg.cpp | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/scheduler/short_addr_cfg.cpp b/scheduler/short_addr_cfg.cpp index 55edefd..7c5b308 100644 --- a/scheduler/short_addr_cfg.cpp +++ b/scheduler/short_addr_cfg.cpp @@ -2,6 +2,7 @@ #include #include #include +#include "common/common_func.hpp" extern zlog_category_t *zct; extern zlog_category_t *zbt; @@ -31,11 +32,13 @@ int ShortAddrCfg::ReadCfg(std::map& short_addr_map) { uint16_t short_addr; int index = 0; - + std::string short_addr_str; + char *end_ptr; for (const auto &item : root) { - short_addr = item["short_addr"].asInt(); + short_addr_str = item["short_addr"].asString(); + short_addr = strtol(short_addr_str.c_str(), &end_ptr, 16); index = item["id"].asInt(); - zlog_info(zbt, "[ShortAddrCfg] index:%d, short addr:%d", index, short_addr); + zlog_info(zbt, "[ShortAddrCfg] index:%d, short addr:%02x", index, short_addr); short_addr_map[short_addr] = index; } return 0; @@ -43,10 +46,13 @@ int ShortAddrCfg::ReadCfg(std::map& short_addr_map) { int ShortAddrCfg::WriteCfg(std::map &short_addr_map) { Json::Value root; + char buf[8] = {0}; for (auto it = short_addr_map.begin(); it != short_addr_map.end(); ++it) { Json::Value item; item["id"] = it->second; - item["short_addr"] = it->first; + memset(buf, 0, 8); + snprintf(buf, 8, "%02x%02x", UINT16_HIGH(it->first),UINT16_LOW(it->first)); + item["short_addr"] = buf; root.append(item); } Json::StyledStreamWriter streamWriter;