diff --git a/STM32F103_App1/HardWare/RELAY/ext_relay.c b/STM32F103_App1/HardWare/RELAY/ext_relay.c index fd24f91..c3b2831 100644 --- a/STM32F103_App1/HardWare/RELAY/ext_relay.c +++ b/STM32F103_App1/HardWare/RELAY/ext_relay.c @@ -378,7 +378,7 @@ void ext_relay_process(void) log_warn("> EXT: SW%d %s未生效 (输出=%02X 反馈=%02X 故障=%02X, 命令前输出=%d 反馈=%d)", cmd_ch + 4, cmd_on ? "开" : "关", s_state, s_fb, s_fault, cmd_state_before, cmd_fb_before); - ext_respond(0, "\xE8\xB4\x9F\xE8\xBD\xBD\xE6\x96\xAD\xE5\xBC\x80\xE6\x88\x96\xE7\xBB\xA7\xE7\x94\xB5\xE5\x99\xA8\xE6\x8D\x9F\xE5\x9D\x8F"); /* 负载断开或继电器损坏(UTF-8 字节转义, 绕开源码 GBK; 平台乱码则改 GBK 字节) */ + ext_respond(0, "Load unpowered / relay failure !"); /* 与板载失败文案一致 */ } cmd_txn = TXN_NONE; ext_save_state(); /* 断电记忆: 以实际输出状态落盘 */ diff --git a/STM32F103_App1/HardWare/RELAY/relay.c b/STM32F103_App1/HardWare/RELAY/relay.c index 49fae19..c8859b6 100644 --- a/STM32F103_App1/HardWare/RELAY/relay.c +++ b/STM32F103_App1/HardWare/RELAY/relay.c @@ -34,6 +34,8 @@ void relayCmdProcess(void) /* 等待继电器反馈电路稳定 */ if (HAL_GetTick() - relay_cmd_tick < 100) return; fb_after = relayReadFb(ch); + /* 测试: 仅第 2 路反馈失败应答改中文(UTF-8 字节), 其余路保持英文 */ + const char *failmsg = (ch == 2) ? "\xE8\xB4\x9F\xE8\xBD\xBD\xE6\x96\xAD\xE5\xBC\x80\xE6\x88\x96\xE7\xBB\xA7\xE7\x94\xB5\xE5\x99\xA8\xE6\x8D\x9F\xE5\x9D\x8F" : "Load unpowered / relay failure !"; if (RELAY_FB_ENABLE) { if (MqttInfoStr.Relay_State[ch]) { if (relay_cmd_fb_before == FB_INACTIVE && fb_after == FB_ACTIVE) { @@ -41,7 +43,7 @@ void relayCmdProcess(void) NET_publish_response(relay_cmd_id, 1, "OK"); } else { log_warn("> 继电器: SW%d 未接负载或继电器断开", ch); - NET_publish_response(relay_cmd_id, 0, "Load unpowered / relay failure !"); + NET_publish_response(relay_cmd_id, 0, failmsg); } } else { if (relay_cmd_fb_before == FB_ACTIVE && fb_after == FB_INACTIVE) { @@ -49,7 +51,7 @@ void relayCmdProcess(void) NET_publish_response(relay_cmd_id, 1, "OK"); } else { log_warn("> 继电器: SW%d 未接负载或继电器断开", ch); - NET_publish_response(relay_cmd_id, 0, "Load unpowered / relay failure !"); + NET_publish_response(relay_cmd_id, 0, failmsg); } } } else {