From 8dd4707bdfa4cdc02d918de41077978661814d0a Mon Sep 17 00:00:00 2001 From: kkfluous Date: Tue, 28 Apr 2026 16:13:09 +0800 Subject: [PATCH] =?UTF-8?q?fix(alarm):=20=E7=94=B5=E6=B1=A0SOC=E4=B8=A5?= =?UTF-8?q?=E9=87=8D=E4=B8=8D=E8=B6=B3=20=E2=86=92=20=E5=89=A9=E4=BD=99?= =?UTF-8?q?=E6=B0=A2=E9=87=8F=E4=B8=8D=E8=B6=B3=EF=BC=88=E6=B0=A2=E8=83=BD?= =?UTF-8?q?=E8=BD=A6=E5=85=B3=E5=BF=83=E6=B0=A2=E9=87=8F=E8=80=8C=E9=9D=9E?= =?UTF-8?q?=E7=94=B5=E6=B1=A0SOC=EF=BC=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- artboards/alarm.jsx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/artboards/alarm.jsx b/artboards/alarm.jsx index ae9892a..9bcd171 100644 --- a/artboards/alarm.jsx +++ b/artboards/alarm.jsx @@ -21,7 +21,7 @@ const RULES = [ // 告警 (P0) { n:"H₂压力异常下降", kind:"alarm", c:"P0", on:true, h:"已触发 3 次", cond:"pressure < 35 MPa", actions:["站内","邮件","短信"], a:false }, { n:"电堆过温保护", kind:"alarm", c:"P0", on:true, h:"已触发 1 次", cond:"stack.temp > 95℃", actions:["站内","短信","Webhook"], a:false }, - { n:"电池SOC严重不足", kind:"alarm", c:"P0", on:true, h:"已触发 8 次", cond:"SOC < 15% & 持续 60s", actions:["站内","邮件","路径下发"], a:true }, + { n:"剩余氢量不足", kind:"alarm", c:"P0", on:true, h:"已触发 8 次", cond:"H₂ < 15% & 持续 60s", actions:["站内","邮件","路径下发"], a:true }, { n:"胎压异常", kind:"alarm", c:"P1", on:true, h:"已触发 12 次", cond:"tire.pressure > 3.0 MPa", actions:["站内","推送"], a:false }, { n:"超速预警", kind:"alarm", c:"P1", on:true, h:"已触发 47 次", cond:"speed > limit + 10 km/h", actions:["站内"], a:false }, { n:"急加速密集", kind:"alarm", c:"P2", on:true, h:"已触发 18 次", cond:"3 次/分钟 within 5min", actions:["邮件"], a:false }, @@ -152,7 +152,7 @@ const RuleEditor = ({ rule }) => { // Build dynamic conditions per rule const conds = (() => { if (rule.n.startsWith("胎压")) return [{lbl:"WHEN", v:"tire.pressure", op:">", val:"3.0 MPa"}]; - if (rule.n.startsWith("电池SOC")) return [{lbl:"WHEN", v:"vehicle.battery.soc", op:"<", val:"15 %"}, {lbl:"AND", v:"持续时长", op:"≥", val:"60 秒"}, {lbl:"AND NOT", v:"vehicle.location.poi", op:"=", val:"补能站"}]; + if (rule.n.startsWith("剩余氢量")) return [{lbl:"WHEN", v:"vehicle.h2.level", op:"<", val:"15 %"}, {lbl:"AND", v:"持续时长", op:"≥", val:"60 秒"}, {lbl:"AND NOT", v:"vehicle.location.poi", op:"=", val:"补能站"}]; if (rule.n.startsWith("H₂")) return [{lbl:"WHEN", v:"h2.pressure", op:"<", val:"35 MPa"}, {lbl:"AND", v:"vehicle.state", op:"=", val:"行驶中"}]; if (rule.n.startsWith("电堆")) return [{lbl:"WHEN", v:"fc.stack.temp", op:">", val:"95 ℃"}, {lbl:"AND", v:"持续时长", op:"≥", val:"30 秒"}]; if (rule.n.startsWith("超速")) return [{lbl:"WHEN", v:"vehicle.speed", op:">", val:"道路限速 + 10 km/h"}];