V1.5: 新增蓝牙ENCLR命令(累计电能清零,RAM+EEPROM同步)
This commit is contained in:
parent
9c7370b815
commit
9fe6cc0b27
|
|
@ -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)
|
||||
{
|
||||
|
|
|
|||
|
|
@ -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 */
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
|
|
|
|||
|
|
@ -175,3 +175,4 @@
|
|||
- 断电消息发送加固:pow:0 改等模组回 OK(~1.5s/次,最多 3 次)+ OK 后留 800ms 空口时间;
|
||||
3 次都失败也照常写记录复位(不因发送失败丢断电记录)
|
||||
- 去掉电能底数 1kWh 机制(用户确认平台可正常显示小数值)
|
||||
- 新增蓝牙 ENCLR 命令:累计电能清零(RAM+EEPROM 同步,无需重启)
|
||||
|
|
|
|||
Loading…
Reference in New Issue