V1.5: 电能日志/上报改为每10s一条(ENERGY_REPORT_INTERVAL_MS宏),运行时间仍60s

This commit is contained in:
helei 2026-08-15 00:35:02 +08:00
parent 499aa9a9a9
commit 3647d0fb14
3 changed files with 22 additions and 19 deletions

View File

@ -3,4 +3,4 @@
/* 本文件为 UTF-8 编码ARMCC 原样输出字符串字面量的字节, /* 本文件为 UTF-8 编码ARMCC 原样输出字符串字面量的字节,
* UTF-8 UTF-8 */ * UTF-8 UTF-8 */
const char FMT_UPTIME[] = "> 运行时间: %u天--%02u小时--%02u分钟"; const char FMT_UPTIME[] = "> 运行时间: %u天--%02u小时--%02u分钟";
const char FMT_UPTIME_EN[] = "> 运行时间: %u天--%02u小时--%02u分钟 电能: %.2fkWh 电压: %.1fV 电流: %.2fA 功率: %.1fW"; const char FMT_ENERGY[] = "> 电能: %.2fkWh 电压: %.1fV 电流: %.2fA 功率: %.1fW";

View File

@ -3,6 +3,6 @@
/* 中文日志格式串UTF-8 编码,定义在 log_cn.c —— 串口工具编码选 UTF-8 即可正确显示) */ /* 中文日志格式串UTF-8 编码,定义在 log_cn.c —— 串口工具编码选 UTF-8 即可正确显示) */
extern const char FMT_UPTIME[]; /* "> 运行时间: %u天--%02u小时--%02u分钟" */ extern const char FMT_UPTIME[]; /* "> 运行时间: %u天--%02u小时--%02u分钟" */
extern const char FMT_UPTIME_EN[]; /* 运行时间 + 电能 */ extern const char FMT_ENERGY[]; /* 电能 + 电压/电流/功率 */
#endif /* LOG_CN_H */ #endif /* LOG_CN_H */

View File

@ -191,6 +191,9 @@ static void app_task(void *arg)
} }
} }
/* 电能日志/上报间隔:想改频率就改这个宏(单位 ms */
#define ENERGY_REPORT_INTERVAL_MS 10000u
/*==== sys_task系统辅助LED/电量/蓝牙命令/运行时长)====*/ /*==== sys_task系统辅助LED/电量/蓝牙命令/运行时长)====*/
static void sys_task(void *arg) static void sys_task(void *arg)
{ {
@ -198,6 +201,7 @@ static void sys_task(void *arg)
uint32_t batt_tick = HAL_GetTick(); uint32_t batt_tick = HAL_GetTick();
uint32_t up_last = HAL_GetTick(); uint32_t up_last = HAL_GetTick();
uint32_t up_print = HAL_GetTick(); uint32_t up_print = HAL_GetTick();
uint32_t en_print = HAL_GetTick();
uint64_t up_ms = 0; uint64_t up_ms = 0;
for (;;) { for (;;) {
@ -229,27 +233,26 @@ static void sys_task(void *arg)
up_print = now; up_print = now;
if (g_net_mqtt_ready) { if (g_net_mqtt_ready) {
uint32_t mins = (uint32_t)(up_ms / 60000); uint32_t mins = (uint32_t)(up_ms / 60000);
if (hlw8032_online()) { log_info(FMT_UPTIME,
/* 每分钟随心跳上报一次累计电量(标识符 energy日志同步显示 */ (unsigned)(mins / 1440),
float kwh = hlw8032_get_energy_kwh(); (unsigned)((mins % 1440) / 60),
NET_publish_energy(kwh); (unsigned)(mins % 60));
log_info(FMT_UPTIME_EN,
(unsigned)(mins / 1440),
(unsigned)((mins % 1440) / 60),
(unsigned)(mins % 60), (double)kwh,
(double)hlw8032_get_voltage_v(),
(double)hlw8032_get_current_a(),
(double)hlw8032_get_power_w());
} else {
log_info(FMT_UPTIME,
(unsigned)(mins / 1440),
(unsigned)((mins % 1440) / 60),
(unsigned)(mins % 60));
}
} }
} }
} }
/* 电能日志+上报:联网且计量芯片在线时每 ENERGY_REPORT_INTERVAL_MS 一条 */
if (g_net_mqtt_ready && hlw8032_online() &&
(HAL_GetTick() - en_print) >= ENERGY_REPORT_INTERVAL_MS) {
en_print = HAL_GetTick();
float kwh = hlw8032_get_energy_kwh();
NET_publish_energy(kwh);
log_info(FMT_ENERGY, (double)kwh,
(double)hlw8032_get_voltage_v(),
(double)hlw8032_get_current_a(),
(double)hlw8032_get_power_w());
}
vTaskDelay(20); vTaskDelay(20);
} }
} }