V1.5: 新增蓝牙ENCLR命令(累计电能清零,RAM+EEPROM同步)

This commit is contained in:
helei 2026-08-22 09:04:52 +08:00
parent 9c7370b815
commit 9fe6cc0b27
4 changed files with 20 additions and 1 deletions

View File

@ -220,6 +220,15 @@ void hlw8032_save(void)
}
}
/*==== 작셕든좆헌쥐(융記 ENCLR 츱즈):헌 RAM 宅 EEPROM ====*/
void hlw8032_clear(void)
{
s_total_pulses = 0;
s_saved_pulses = 0;
uint64_t v = 0;
eepromWriteData(HLW_EEP_ADDR, &v, sizeof(v));
}
/*==== 1s 周期:每攒够约 0.1 kWh 写一次 EEPROM限制擦写频率 ====*/
void hlw8032_tick(void)
{

View File

@ -13,6 +13,7 @@ void hlw8032_init(void); /* UART5
void hlw8032_rx_byte(uint8_t b); /* UART5 中断逐字节喂入uart.c 接收回调调用) */
void hlw8032_tick(void); /* 1s 周期:到阈值就把累计脉冲写 EEPROM */
void hlw8032_save(void); /* 立即写 EEPROM断电预警/计划复位前调用) */
void hlw8032_clear(void); /* 累计电量清零并落盘(蓝牙 ENCLR 命令) */
float hlw8032_get_energy_kwh(void); /* 累计电量 kWh未收到帧前为 0 */
float hlw8032_get_voltage_v(void); /* 电压有效值 V调试显示用 */
float hlw8032_get_current_a(void); /* 电流有效值 A */

View File

@ -23,6 +23,7 @@
#include "reset_log.h"
#include "feed_scale.h"
#include "air780e.h"
#include "hlw8032.h"
/* 本地命令字符串不区分大小写比较 */
static int cmd_is(const char *a, const char *b)
@ -97,6 +98,13 @@ void process_usart1_command(void)
return;
}
/* 累计电能清零EEPROM 同步落盘,无需重启) */
if (cmd_is(cmd, "ENCLR")) {
hlw8032_clear();
log_warn("> BT: 累计电能已清零");
return;
}
if (cmd_is(cmd, "RESET")) {
log_warn("> USART1: 收到 RESET 命令,正在重启...");
reset_log_mark(RSN_CMD_RESET);
@ -163,7 +171,7 @@ void process_usart1_command(void)
log_info("> BT: 当前日志等级 %s", lvs[(int)log_get_level()]);
}
else if (cmd_is(cmd, "HELP")) {
log_info("BT CMD: RESET, INFO, STATUS, R1ON/R1OFF~R4ON/R4OFF, ALLON, ALLOFF, OTA, RECOVERY, BLESET, SCALE, SCALE0, SCALE1, GPS, GPS0, GPS1, LOG, LOGTRACE, LOGDEBUG, LOGINFO, LOGWARN, LOGERROR, LOGFATAL, HELP");
log_info("BT CMD: RESET, INFO, STATUS, R1ON/R1OFF~R4ON/R4OFF, ALLON, ALLOFF, OTA, RECOVERY, BLESET, SCALE, SCALE0, SCALE1, GPS, GPS0, GPS1, ENCLR, LOG, LOGTRACE, LOGDEBUG, LOGINFO, LOGWARN, LOGERROR, LOGFATAL, HELP");
}
else {
log_warn("> BT: 未知命令 %s", cmd);

View File

@ -175,3 +175,4 @@
- 断电消息发送加固pow:0 改等模组回 OK~1.5s/次,最多 3 次)+ OK 后留 800ms 空口时间;
3 次都失败也照常写记录复位(不因发送失败丢断电记录)
- 去掉电能底数 1kWh 机制(用户确认平台可正常显示小数值)
- 新增蓝牙 ENCLR 命令累计电能清零RAM+EEPROM 同步,无需重启)