1631 lines
75 KiB
C++
1631 lines
75 KiB
C++
#ifndef HTTP_SERVER_DATA_H
|
|
#define HTTP_SERVER_DATA_H
|
|
|
|
#include <string>
|
|
|
|
const std::string DATA_HTML = R"(
|
|
<!DOCTYPE html>
|
|
<html>
|
|
<head>
|
|
<meta charset="UTF-8">
|
|
<title>Power Manager</title>
|
|
<link rel="stylesheet" href="/static/style.css">
|
|
<style>
|
|
.data-item {
|
|
margin: 10px 0;
|
|
padding: 8px;
|
|
background: #f5f5f5;
|
|
border-radius: 4px;
|
|
}
|
|
.data-label {
|
|
font-weight: bold;
|
|
margin-right: 10px;
|
|
}
|
|
.collapsible {
|
|
background-color: #eee;
|
|
color: #444;
|
|
cursor: pointer;
|
|
padding: 10px;
|
|
width: 100%;
|
|
border: none;
|
|
text-align: left;
|
|
outline: none;
|
|
font-size: 15px;
|
|
margin-top: 10px;
|
|
}
|
|
.active, .collapsible:hover {
|
|
background-color: #ccc;
|
|
}
|
|
.content {
|
|
padding: 0 18px;
|
|
display: none;
|
|
overflow: hidden;
|
|
background-color: #f9f9f9;
|
|
}
|
|
</style>
|
|
</head>
|
|
<body>
|
|
<h1>Power Manager System</h1>
|
|
|
|
<button class="collapsible">燃料电池系统状态</button>
|
|
<div class="content">
|
|
<div class="system-data-grid">
|
|
<div class="data-item">
|
|
<span class="data-label">FC模式:</span>
|
|
<span class="data-value" id="fc-mode">正在加载...</span>
|
|
</div>
|
|
<div class="data-item">
|
|
<span class="data-label">FC状态:</span>
|
|
<span class="data-value" id="fc-status">正在加载...</span>
|
|
</div>
|
|
<div class="data-item">
|
|
<span class="data-label">故障等级:</span>
|
|
<span class="data-value" id="fc-fault-level">正在加载...</span>
|
|
</div>
|
|
<div class="data-item">
|
|
<span class="data-label">输出功率限制:</span>
|
|
<span class="data-value" id="output-power-limit">正在加载...</span>
|
|
</div>
|
|
<div class="data-item">
|
|
<span class="data-label">累计发电时间:</span>
|
|
<span class="data-value" id="total-generation-time">正在加载...</span>
|
|
</div>
|
|
<div class="data-item">
|
|
<span class="data-label">累计发电功率:</span>
|
|
<span class="data-value" id="total-generation-power">正在加载...</span>
|
|
</div>
|
|
<div class="data-item">
|
|
<span class="data-label">FC故障等级1:</span>
|
|
<span class="data-value" id="fc-fault-level-1">正在加载...</span>
|
|
</div>
|
|
<div class="data-item">
|
|
<span class="data-label">FC故障等级2:</span>
|
|
<span class="data-value" id="fc-fault-level-2">正在加载...</span>
|
|
</div>
|
|
<div class="data-item">
|
|
<span class="data-label">FC故障等级3:</span>
|
|
<span class="data-value" id="fc-fault-level-3">正在加载...</span>
|
|
</div>
|
|
<div class="data-item">
|
|
<span class="data-label">FC故障等级4:</span>
|
|
<span class="data-value" id="fc-fault-level-4">正在加载...</span>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<button class="collapsible">燃料和容量</button>
|
|
<div class="content">
|
|
<div class="system-data-grid">
|
|
<div class="data-item">
|
|
<span class="data-label">氢容量:</span>
|
|
<span class="data-value" id="hydrogen-capacity">正在加载...</span>
|
|
</div>
|
|
<div class="data-item">
|
|
<span class="data-label">液氧容量:</span>
|
|
<span class="data-value" id="liquid-oxygen-capacity">正在加载...</span>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<button class="collapsible">燃料电池温度压力参数</button>
|
|
<div class="content">
|
|
<div class="system-data-grid">
|
|
<div class="data-item">
|
|
<span class="data-label">钯膜温度:</span>
|
|
<span class="data-value" id="palladium-temp">正在加载...</span>
|
|
</div>
|
|
<div class="data-item">
|
|
<span class="data-label">主水路压力:</span>
|
|
<span class="data-value" id="main-pipe-pressure">正在加载...</span>
|
|
</div>
|
|
<div class="data-item">
|
|
<span class="data-label">辅水路压力:</span>
|
|
<span class="data-value" id="aux-pipe-pressure">正在加载...</span>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<button class="collapsible">锂电池舱室环境</button>
|
|
<div class="content">
|
|
<div class="system-data-grid">
|
|
<div class="data-item">
|
|
<span class="data-label">仪表舱室压力:</span>
|
|
<span class="data-value" id="cabin-pressure1">正在加载...</span>
|
|
</div>
|
|
<div class="data-item">
|
|
<span class="data-label">动力舱室压力:</span>
|
|
<span class="data-value" id="cabin-pressure2">正在加载...</span>
|
|
</div>
|
|
<div class="data-item">
|
|
<span class="data-label">仪表舱室温度:</span>
|
|
<span class="data-value" id="cabin-temp1">正在加载...</span>
|
|
</div>
|
|
<div class="data-item">
|
|
<span class="data-label">动力舱室温度:</span>
|
|
<span class="data-value" id="cabin-temp2">正在加载...</span>
|
|
</div>
|
|
<div class="data-item">
|
|
<span class="data-label">仪表舱室湿度:</span>
|
|
<span class="data-value" id="cabin-humidity1">正在加载...</span>
|
|
</div>
|
|
<div class="data-item">
|
|
<span class="data-label">动力舱室湿度:</span>
|
|
<span class="data-value" id="cabin-humidity2">正在加载...</span>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<button class="collapsible">燃料电池气体浓度</button>
|
|
<div class="content">
|
|
<div class="system-data-grid">
|
|
<div class="data-item">
|
|
<span class="data-label">H2浓度1:</span>
|
|
<span class="data-value" id="h2-concentration1">正在加载...</span>
|
|
</div>
|
|
<div class="data-item">
|
|
<span class="data-label">H2浓度2:</span>
|
|
<span class="data-value" id="h2-concentration2">正在加载...</span>
|
|
</div>
|
|
<div class="data-item">
|
|
<span class="data-label">H2浓度3:</span>
|
|
<span class="data-value" id="h2-concentration3">正在加载...</span>
|
|
</div>
|
|
<div class="data-item">
|
|
<span class="data-label">O2浓度1:</span>
|
|
<span class="data-value" id="o2-concentration1">正在加载...</span>
|
|
</div>
|
|
<div class="data-item">
|
|
<span class="data-label">O2浓度2:</span>
|
|
<span class="data-value" id="o2-concentration2">正在加载...</span>
|
|
</div>
|
|
<div class="data-item">
|
|
<span class="data-label">甲醇浓度1:</span>
|
|
<span class="data-value" id="ch3oh-concentration1">正在加载...</span>
|
|
</div>
|
|
<div class="data-item">
|
|
<span class="data-label">甲醇浓度2:</span>
|
|
<span class="data-value" id="ch3oh-concentration2">正在加载...</span>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<button class="collapsible">电池系统</button>
|
|
<div class="content">
|
|
<div class="system-data-grid">
|
|
<div class="data-item">
|
|
<span class="data-label">仪表电池SOC:</span>
|
|
<span class="data-value" id="ins-soc">正在加载...</span>
|
|
</div>
|
|
<div class="data-item">
|
|
<span class="data-label">动力电池SOC:</span>
|
|
<span class="data-value" id="dyn-soc">正在加载...</span>
|
|
</div>
|
|
<div class="data-item">
|
|
<span class="data-label">仪表电池电压:</span>
|
|
<span class="data-value" id="ins-voltage-link">正在加载...</span>
|
|
</div>
|
|
<div class="data-item">
|
|
<span class="data-label">动力电池电压:</span>
|
|
<span class="data-value" id="dyn-voltage-link">正在加载...</span>
|
|
</div>
|
|
<div class="data-item">
|
|
<span class="data-label">仪表电池电流:</span>
|
|
<span class="data-value" id="ins-current">正在加载...</span>
|
|
</div>
|
|
<div class="data-item">
|
|
<span class="data-label">动力电池电流:</span>
|
|
<span class="data-value" id="dyn-current">正在加载...</span>
|
|
</div>
|
|
<div class="data-item">
|
|
<span class="data-label">仪表电池能量:</span>
|
|
<span class="data-value" id="ins-total-energy">正在加载...</span>
|
|
</div>
|
|
<div class="data-item">
|
|
<span class="data-label">动力电池能量:</span>
|
|
<span class="data-value" id="dyn-total-energy">正在加载...</span>
|
|
</div>
|
|
<div class="data-item">
|
|
<span class="data-label">仪表电池输入功率:</span>
|
|
<span class="data-value" id="ins-power-input">正在加载...</span>
|
|
</div>
|
|
<div class="data-item">
|
|
<span class="data-label">动力电池输入功率:</span>
|
|
<span class="data-value" id="dyn-power-input">正在加载...</span>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<button class="collapsible">继电器状态</button>
|
|
<div class="content">
|
|
<div class="system-data-grid">
|
|
<div class="data-item">
|
|
<span class="data-label">仪表继电器1:</span>
|
|
<span class="data-value" id="ins-relay-status1">正在加载...</span>
|
|
</div>
|
|
<div class="data-item">
|
|
<span class="data-label">仪表继电器2:</span>
|
|
<span class="data-value" id="ins-relay-status2">正在加载...</span>
|
|
</div>
|
|
<div class="data-item">
|
|
<span class="data-label">动力继电器1:</span>
|
|
<span class="data-value" id="dyn-relay-status1">正在加载...</span>
|
|
</div>
|
|
<div class="data-item">
|
|
<span class="data-label">动力继电器2:</span>
|
|
<span class="data-value" id="dyn-relay-status2">正在加载...</span>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<button class="collapsible">锂电池报警标志</button>
|
|
<div class="content">
|
|
<div class="system-data-grid">
|
|
<div class="data-item">
|
|
<span class="data-label">动力报警标志1:</span>
|
|
<span class="data-value" id="dyn-alarm-flag1">正在加载...</span>
|
|
</div>
|
|
<div class="data-item">
|
|
<span class="data-label">动力报警标志2:</span>
|
|
<span class="data-value" id="dyn-alarm-flag2">正在加载...</span>
|
|
</div>
|
|
<div class="data-item">
|
|
<span class="data-label">动力报警标志3:</span>
|
|
<span class="data-value" id="dyn-alarm-flag3">正在加载...</span>
|
|
</div>
|
|
<div class="data-item">
|
|
<span class="data-label">动力报警标志4:</span>
|
|
<span class="data-value" id="dyn-alarm-flag4">正在加载...</span>
|
|
</div>
|
|
<div class="data-item">
|
|
<span class="data-label">动力报警标志5:</span>
|
|
<span class="data-value" id="dyn-alarm-flag5">正在加载...</span>
|
|
</div>
|
|
<div class="data-item">
|
|
<span class="data-label">动力报警标志6:</span>
|
|
<span class="data-value" id="dyn-alarm-flag6">正在加载...</span>
|
|
</div>
|
|
<div class="data-item">
|
|
<span class="data-label">仪表报警标志1:</span>
|
|
<span class="data-value" id="ins-alarm-flag1">正在加载...</span>
|
|
</div>
|
|
<div class="data-item">
|
|
<span class="data-label">仪表报警标志2:</span>
|
|
<span class="data-value" id="ins-alarm-flag2">正在加载...</span>
|
|
</div>
|
|
<div class="data-item">
|
|
<span class="data-label">仪表报警标志3:</span>
|
|
<span class="data-value" id="ins-alarm-flag3">正在加载...</span>
|
|
</div>
|
|
<div class="data-item">
|
|
<span class="data-label">仪表报警标志4:</span>
|
|
<span class="data-value" id="ins-alarm-flag4">正在加载...</span>
|
|
</div>
|
|
<div class="data-item">
|
|
<span class="data-label">仪表报警标志5:</span>
|
|
<span class="data-value" id="ins-alarm-flag5">正在加载...</span>
|
|
</div>
|
|
<div class="data-item">
|
|
<span class="data-label">仪表报警标志6:</span>
|
|
<span class="data-value" id="ins-alarm-flag6">正在加载...</span>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<button class="collapsible">设备在线状态</button>
|
|
<div class="content">
|
|
<div class="system-data-grid">
|
|
<div class="data-item">
|
|
<span class="data-label">设备在线标志1:</span>
|
|
<span class="data-value" id="device-online-flag1">正在加载...</span>
|
|
</div>
|
|
<div class="data-item">
|
|
<span class="data-label">设备在线标志2:</span>
|
|
<span class="data-value" id="device-online-flag2">正在加载...</span>
|
|
</div>
|
|
<div class="data-item">
|
|
<span class="data-label">仪表锂电在线状态:</span>
|
|
<span class="data-value" id="ins-online-state">正在加载...</span>
|
|
</div>
|
|
<div class="data-item">
|
|
<span class="data-label">动力锂电在线状态:</span>
|
|
<span class="data-value" id="dyn-online-state">正在加载...</span>
|
|
</div>
|
|
<div class="data-item">
|
|
<span class="data-label">燃电锂电在线状态:</span>
|
|
<span class="data-value" id="fuel-online-state">正在加载...</span>
|
|
</div>
|
|
<div class="data-item">
|
|
<span class="data-label">高压配电板在线状态:</span>
|
|
<span class="data-value" id="high-voltage-online-state">正在加载...</span>
|
|
</div>
|
|
<div class="data-item">
|
|
<span class="data-label">低压配电板在线状态:</span>
|
|
<span class="data-value" id="low-voltage-online-state">正在加载...</span>
|
|
</div>
|
|
<div class="data-item">
|
|
<span class="data-label">复合管控主机在线状态:</span>
|
|
<span class="data-value" id="composite-online-state">正在加载...</span>
|
|
</div>
|
|
<div class="data-item">
|
|
<span class="data-label">复合管控备机在线状态:</span>
|
|
<span class="data-value" id="composite-backup-online-state">正在加载...</span>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<button class="collapsible">通信状态</button>
|
|
<div class="content">
|
|
<div class="system-data-grid">
|
|
<div class="data-item">
|
|
<span class="data-label">CCU状态-超时:</span>
|
|
<span class="data-value" id="ccu-status-timeout">正在加载...</span>
|
|
</div>
|
|
<div class="data-item">
|
|
<span class="data-label">CCU状态-最后更新时间:</span>
|
|
<span class="data-value" id="ccu-status-last-update">正在加载...</span>
|
|
</div>
|
|
<div class="data-item">
|
|
<span class="data-label">高压配电1-超时:</span>
|
|
<span class="data-value" id="dis-hv-c1-timeout">正在加载...</span>
|
|
</div>
|
|
<div class="data-item">
|
|
<span class="data-label">高压配电1-最后更新时间:</span>
|
|
<span class="data-value" id="dis-hv-c1-last-update">正在加载...</span>
|
|
</div>
|
|
<div class="data-item">
|
|
<span class="data-label">高压配电2-超时:</span>
|
|
<span class="data-value" id="dis-hv-c2-timeout">正在加载...</span>
|
|
</div>
|
|
<div class="data-item">
|
|
<span class="data-label">高压配电2-最后更新时间:</span>
|
|
<span class="data-value" id="dis-hv-c2-last-update">正在加载...</span>
|
|
</div>
|
|
<div class="data-item">
|
|
<span class="data-label">低压配电1-超时:</span>
|
|
<span class="data-value" id="dis-lv-c1-timeout">正在加载...</span>
|
|
</div>
|
|
<div class="data-item">
|
|
<span class="data-label">低压配电1-最后更新时间:</span>
|
|
<span class="data-value" id="dis-lv-c1-last-update">正在加载...</span>
|
|
</div>
|
|
<div class="data-item">
|
|
<span class="data-label">低压配电2-超时:</span>
|
|
<span class="data-value" id="dis-lv-c2-timeout">正在加载...</span>
|
|
</div>
|
|
<div class="data-item">
|
|
<span class="data-label">低压配电2-最后更新时间:</span>
|
|
<span class="data-value" id="dis-lv-c2-last-update">正在加载...</span>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<button class="collapsible">动力母线状态</button>
|
|
<div class="content">
|
|
<div class="system-data-grid">
|
|
<div class="data-item">
|
|
<span class="data-label">燃料电池断路器:</span>
|
|
<span class="data-value" id="power-bus-fuel-cell-circuit-breaker">正在加载...</span>
|
|
</div>
|
|
<div class="data-item">
|
|
<span class="data-label">动力锂电池断路器:</span>
|
|
<span class="data-value" id="power-bus-power-lithium-circuit-breaker">正在加载...</span>
|
|
</div>
|
|
<div class="data-item">
|
|
<span class="data-label">推进电机断路器:</span>
|
|
<span class="data-value" id="power-bus-propulsion-motor-circuit-breaker">正在加载...</span>
|
|
</div>
|
|
<div class="data-item">
|
|
<span class="data-label">锂电池组仪表断路器:</span>
|
|
<span class="data-value" id="power-bus-lithium-meter-circuit-breaker">正在加载...</span>
|
|
</div>
|
|
<div class="data-item">
|
|
<span class="data-label">DC/DC5模块断路器:</span>
|
|
<span class="data-value" id="power-bus-dcdc5-circuit-breaker">正在加载...</span>
|
|
</div>
|
|
<div class="data-item">
|
|
<span class="data-label">艏部高压配电箱断路器:</span>
|
|
<span class="data-value" id="power-bus-bow-high-voltage-circuit-breaker">正在加载...</span>
|
|
</div>
|
|
<div class="data-item">
|
|
<span class="data-label">艉部FT装置4/5断路器:</span>
|
|
<span class="data-value" id="power-bus-stern-ft-circuit-breaker">正在加载...</span>
|
|
</div>
|
|
<div class="data-item">
|
|
<span class="data-label">艉舵开关1断路器:</span>
|
|
<span class="data-value" id="power-bus-stern-rudder1-circuit-breaker">正在加载...</span>
|
|
</div>
|
|
<div class="data-item">
|
|
<span class="data-label">艉舵开关2断路器:</span>
|
|
<span class="data-value" id="power-bus-stern-rudder2-circuit-breaker">正在加载...</span>
|
|
</div>
|
|
<div class="data-item">
|
|
<span class="data-label">FB预留断路器:</span>
|
|
<span class="data-value" id="power-bus-fb-reserved-circuit-breaker">正在加载...</span>
|
|
</div>
|
|
<div class="data-item">
|
|
<span class="data-label">TYZ预留断路器:</span>
|
|
<span class="data-value" id="power-bus-tyz-reserved-circuit-breaker">正在加载...</span>
|
|
</div>
|
|
<div class="data-item">
|
|
<span class="data-label">预留断路器:</span>
|
|
<span class="data-value" id="power-bus-reserved-circuit-breaker">正在加载...</span>
|
|
</div>
|
|
<div class="data-item">
|
|
<span class="data-label">DC/DC5模块状态:</span>
|
|
<span class="data-value" id="power-bus-dcdc-status">正在加载...</span>
|
|
</div>
|
|
<div class="data-item">
|
|
<span class="data-label">冷却系统状态:</span>
|
|
<span class="data-value" id="power-bus-cooling-status">正在加载...</span>
|
|
</div>
|
|
<div class="data-item">
|
|
<span class="data-label">动力母排绝缘状态:</span>
|
|
<span class="data-value" id="power-bus-insulation-status">正在加载...</span>
|
|
</div>
|
|
<div class="data-item">
|
|
<span class="data-label">A汇流排绝缘状态:</span>
|
|
<span class="data-value" id="power-bus-a-insulation-status">正在加载...</span>
|
|
</div>
|
|
<div class="data-item">
|
|
<span class="data-label">仪表电源状态:</span>
|
|
<span class="data-value" id="power-bus-meter-power-status">正在加载...</span>
|
|
</div>
|
|
<div class="data-item">
|
|
<span class="data-label">应急电源状态:</span>
|
|
<span class="data-value" id="power-bus-emergency-power-status">正在加载...</span>
|
|
</div>
|
|
<div class="data-item">
|
|
<span class="data-label">DC/DC温度:</span>
|
|
<span class="data-value" id="power-bus-dcdc-temperature">正在加载...</span>
|
|
</div>
|
|
<div class="data-item">
|
|
<span class="data-label">动力汇流排电压:</span>
|
|
<span class="data-value" id="power-bus-voltage">正在加载...</span>
|
|
</div>
|
|
<div class="data-item">
|
|
<span class="data-label">DC/DC5模块电流:</span>
|
|
<span class="data-value" id="power-bus-dcdc-current">正在加载...</span>
|
|
</div>
|
|
<div class="data-item">
|
|
<span class="data-label">动力汇流排电流:</span>
|
|
<span class="data-value" id="power-bus-current">正在加载...</span>
|
|
</div>
|
|
<div class="data-item">
|
|
<span class="data-label">A汇流排电压:</span>
|
|
<span class="data-value" id="power-bus-a-voltage">正在加载...</span>
|
|
</div>
|
|
<div class="data-item">
|
|
<span class="data-label">推进电机控制箱电流:</span>
|
|
<span class="data-value" id="power-bus-propulsion-current">正在加载...</span>
|
|
</div>
|
|
<div class="data-item">
|
|
<span class="data-label">A汇流排电流:</span>
|
|
<span class="data-value" id="power-bus-a-current">正在加载...</span>
|
|
</div>
|
|
<div class="data-item">
|
|
<span class="data-label">锂电池组(仪表)电流:</span>
|
|
<span class="data-value" id="power-bus-lithium-meter-current">正在加载...</span>
|
|
</div>
|
|
<div class="data-item">
|
|
<span class="data-label">艏部高压配电箱电流:</span>
|
|
<span class="data-value" id="power-bus-bow-high-voltage-current">正在加载...</span>
|
|
</div>
|
|
<div class="data-item">
|
|
<span class="data-label">艉部FT装置4/5电流:</span>
|
|
<span class="data-value" id="power-bus-stern-ft-current">正在加载...</span>
|
|
</div>
|
|
<div class="data-item">
|
|
<span class="data-label">TYZ预留开关电流:</span>
|
|
<span class="data-value" id="power-bus-tyz-reserved-current">正在加载...</span>
|
|
</div>
|
|
<div class="data-item">
|
|
<span class="data-label">艉舵开关1电流:</span>
|
|
<span class="data-value" id="power-bus-stern-rudder1-current">正在加载...</span>
|
|
</div>
|
|
<div class="data-item">
|
|
<span class="data-label">艉舵开关2电流:</span>
|
|
<span class="data-value" id="power-bus-stern-rudder2-current">正在加载...</span>
|
|
</div>
|
|
<div class="data-item">
|
|
<span class="data-label">预留电流1:</span>
|
|
<span class="data-value" id="power-bus-reserved-current1">正在加载...</span>
|
|
</div>
|
|
<div class="data-item">
|
|
<span class="data-label">FB预留电流:</span>
|
|
<span class="data-value" id="power-bus-fb-reserved-current">正在加载...</span>
|
|
</div>
|
|
<div class="data-item">
|
|
<span class="data-label">预留电流2:</span>
|
|
<span class="data-value" id="power-bus-reserved-current2">正在加载...</span>
|
|
</div>
|
|
<div class="data-item">
|
|
<span class="data-label">预留电流3:</span>
|
|
<span class="data-value" id="power-bus-reserved-current3">正在加载...</span>
|
|
</div>
|
|
<div class="data-item">
|
|
<span class="data-label">冷却水压力:</span>
|
|
<span class="data-value" id="power-bus-cool-water-pressure">正在加载...</span>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<button class="collapsible">仪表主母线状态</button>
|
|
<div class="content">
|
|
<div class="system-data-grid">
|
|
<div class="data-item">
|
|
<span class="data-label">锂电池组(仪表)断路器:</span>
|
|
<span class="data-value" id="instrument-main-bus-lithium-meter-circuit-breaker">正在加载...</span>
|
|
</div>
|
|
<div class="data-item">
|
|
<span class="data-label">艏部低压配电箱断路器:</span>
|
|
<span class="data-value" id="instrument-main-bus-bow-low-voltage-circuit-breaker">正在加载...</span>
|
|
</div>
|
|
<div class="data-item">
|
|
<span class="data-label">UNIT4仪表DC48V断路器:</span>
|
|
<span class="data-value" id="instrument-main-bus-unit4-dc48v-circuit-breaker">正在加载...</span>
|
|
</div>
|
|
<div class="data-item">
|
|
<span class="data-label">DC-C1直流配电板断路器:</span>
|
|
<span class="data-value" id="instrument-main-bus-dc-c1-circuit-breaker">正在加载...</span>
|
|
</div>
|
|
<div class="data-item">
|
|
<span class="data-label">预留断路器1:</span>
|
|
<span class="data-value" id="instrument-main-bus-reserved-circuit-breaker1">正在加载...</span>
|
|
</div>
|
|
<div class="data-item">
|
|
<span class="data-label">预留断路器2:</span>
|
|
<span class="data-value" id="instrument-main-bus-reserved-circuit-breaker2">正在加载...</span>
|
|
</div>
|
|
<div class="data-item">
|
|
<span class="data-label">应急锂电池组2断路器:</span>
|
|
<span class="data-value" id="instrument-main-bus-emergency-lithium-circuit-breaker">正在加载...</span>
|
|
</div>
|
|
<div class="data-item">
|
|
<span class="data-label">仪表电源状态:</span>
|
|
<span class="data-value" id="instrument-main-bus-power-status">正在加载...</span>
|
|
</div>
|
|
<div class="data-item">
|
|
<span class="data-label">应急电源状态:</span>
|
|
<span class="data-value" id="instrument-main-bus-emergency-power-status">正在加载...</span>
|
|
</div>
|
|
<div class="data-item">
|
|
<span class="data-label">仪表母线排绝缘状态:</span>
|
|
<span class="data-value" id="instrument-main-bus-insulation-status">正在加载...</span>
|
|
</div>
|
|
<div class="data-item">
|
|
<span class="data-label">仪表母排电压:</span>
|
|
<span class="data-value" id="instrument-main-bus-voltage">正在加载...</span>
|
|
</div>
|
|
<div class="data-item">
|
|
<span class="data-label">艏部低压配电箱电流:</span>
|
|
<span class="data-value" id="instrument-main-bus-bow-low-voltage-current">正在加载...</span>
|
|
</div>
|
|
<div class="data-item">
|
|
<span class="data-label">DC-C1仪表DC48V电流:</span>
|
|
<span class="data-value" id="instrument-main-bus-dc-c1-current">正在加载...</span>
|
|
</div>
|
|
<div class="data-item">
|
|
<span class="data-label">预留电流1:</span>
|
|
<span class="data-value" id="instrument-main-bus-reserved-current1">正在加载...</span>
|
|
</div>
|
|
<div class="data-item">
|
|
<span class="data-label">应急锂电池组2电流:</span>
|
|
<span class="data-value" id="instrument-main-bus-emergency-lithium-current">正在加载...</span>
|
|
</div>
|
|
<div class="data-item">
|
|
<span class="data-label">锂电池组(仪表)电流:</span>
|
|
<span class="data-value" id="instrument-main-bus-lithium-meter-current">正在加载...</span>
|
|
</div>
|
|
<div class="data-item">
|
|
<span class="data-label">UNIT4仪表DC48V电流:</span>
|
|
<span class="data-value" id="instrument-main-bus-unit4-dc48v-current">正在加载...</span>
|
|
</div>
|
|
<div class="data-item">
|
|
<span class="data-label">预留电流2:</span>
|
|
<span class="data-value" id="instrument-main-bus-reserved-current2">正在加载...</span>
|
|
</div>
|
|
<div class="data-item">
|
|
<span class="data-label">应急2汇流排电压:</span>
|
|
<span class="data-value" id="instrument-main-bus-emergency2-voltage">正在加载...</span>
|
|
</div>
|
|
<div class="data-item">
|
|
<span class="data-label">复合能源管控系统应急DC48V电流:</span>
|
|
<span class="data-value" id="instrument-main-bus-composite-energy-current">正在加载...</span>
|
|
</div>
|
|
<div class="data-item">
|
|
<span class="data-label">燃料电池安全系统应急DC48V电流:</span>
|
|
<span class="data-value" id="instrument-main-bus-fuel-cell-security-current">正在加载...</span>
|
|
</div>
|
|
<div class="data-item">
|
|
<span class="data-label">PLC控制电源电流:</span>
|
|
<span class="data-value" id="instrument-main-bus-plc-current">正在加载...</span>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<button class="collapsible">仪表母线状态</button>
|
|
<div class="content">
|
|
<div class="system-data-grid">
|
|
<div class="data-item">
|
|
<span class="data-label">UNIT1断路器:</span>
|
|
<span class="data-value" id="instrument-bus-unit1-circuit-breaker">正在加载...</span>
|
|
</div>
|
|
<div class="data-item">
|
|
<span class="data-label">UNIT2断路器:</span>
|
|
<span class="data-value" id="instrument-bus-unit2-circuit-breaker">正在加载...</span>
|
|
</div>
|
|
<div class="data-item">
|
|
<span class="data-label">UNIT3断路器:</span>
|
|
<span class="data-value" id="instrument-bus-unit3-circuit-breaker">正在加载...</span>
|
|
</div>
|
|
<div class="data-item">
|
|
<span class="data-label">UNIT5断路器:</span>
|
|
<span class="data-value" id="instrument-bus-unit5-circuit-breaker">正在加载...</span>
|
|
</div>
|
|
<div class="data-item">
|
|
<span class="data-label">艏部PZ装置断路器:</span>
|
|
<span class="data-value" id="instrument-bus-bow-pz-circuit-breaker">正在加载...</span>
|
|
</div>
|
|
<div class="data-item">
|
|
<span class="data-label">预留断路器1:</span>
|
|
<span class="data-value" id="instrument-bus-reserved-circuit-breaker1">正在加载...</span>
|
|
</div>
|
|
<div class="data-item">
|
|
<span class="data-label">预留断路器2:</span>
|
|
<span class="data-value" id="instrument-bus-reserved-circuit-breaker2">正在加载...</span>
|
|
</div>
|
|
<div class="data-item">
|
|
<span class="data-label">应急锂电池组1断路器:</span>
|
|
<span class="data-value" id="instrument-bus-emergency-lithium1-circuit-breaker">正在加载...</span>
|
|
</div>
|
|
<div class="data-item">
|
|
<span class="data-label">仪表电源状态:</span>
|
|
<span class="data-value" id="instrument-bus-power-status">正在加载...</span>
|
|
</div>
|
|
<div class="data-item">
|
|
<span class="data-label">应急电源状态:</span>
|
|
<span class="data-value" id="instrument-bus-emergency-power-status">正在加载...</span>
|
|
</div>
|
|
<div class="data-item">
|
|
<span class="data-label">浸水报警:</span>
|
|
<span class="data-value" id="instrument-bus-water-alarm">正在加载...</span>
|
|
</div>
|
|
<div class="data-item">
|
|
<span class="data-label">仪表母排电压:</span>
|
|
<span class="data-value" id="instrument-bus-voltage">正在加载...</span>
|
|
</div>
|
|
<div class="data-item">
|
|
<span class="data-label">仪表母排电流:</span>
|
|
<span class="data-value" id="instrument-bus-current">正在加载...</span>
|
|
</div>
|
|
<div class="data-item">
|
|
<span class="data-label">UNIT1电流:</span>
|
|
<span class="data-value" id="instrument-bus-unit1-current">正在加载...</span>
|
|
</div>
|
|
<div class="data-item">
|
|
<span class="data-label">UNIT2电流:</span>
|
|
<span class="data-value" id="instrument-bus-unit2-current">正在加载...</span>
|
|
</div>
|
|
<div class="data-item">
|
|
<span class="data-label">UNIT3电流:</span>
|
|
<span class="data-value" id="instrument-bus-unit3-current">正在加载...</span>
|
|
</div>
|
|
<div class="data-item">
|
|
<span class="data-label">UNIT5电流:</span>
|
|
<span class="data-value" id="instrument-bus-unit5-current">正在加载...</span>
|
|
</div>
|
|
<div class="data-item">
|
|
<span class="data-label">艏部PZ装置电流:</span>
|
|
<span class="data-value" id="instrument-bus-bow-pz-current">正在加载...</span>
|
|
</div>
|
|
<div class="data-item">
|
|
<span class="data-label">应急锂电池组1电流:</span>
|
|
<span class="data-value" id="instrument-bus-emergency-lithium1-current">正在加载...</span>
|
|
</div>
|
|
<div class="data-item">
|
|
<span class="data-label">应急1汇流排电压:</span>
|
|
<span class="data-value" id="instrument-bus-emergency1-voltage">正在加载...</span>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<button class="collapsible">动力母线A状态</button>
|
|
<div class="content">
|
|
<div class="system-data-grid">
|
|
<div class="data-item">
|
|
<span class="data-label">艏部FT装置1/2/3断路器:</span>
|
|
<span class="data-value" id="power-a-bus-bow-ft-circuit-breaker">正在加载...</span>
|
|
</div>
|
|
<div class="data-item">
|
|
<span class="data-label">启闭机构断路器:</span>
|
|
<span class="data-value" id="power-a-bus-actuator-circuit-breaker">正在加载...</span>
|
|
</div>
|
|
<div class="data-item">
|
|
<span class="data-label">桅杆舵机控制箱断路器:</span>
|
|
<span class="data-value" id="power-a-bus-mast-steering-circuit-breaker">正在加载...</span>
|
|
</div>
|
|
<div class="data-item">
|
|
<span class="data-label">XCZ断路器:</span>
|
|
<span class="data-value" id="power-a-bus-xcz-circuit-breaker">正在加载...</span>
|
|
</div>
|
|
<div class="data-item">
|
|
<span class="data-label">艏舵控制箱断路器:</span>
|
|
<span class="data-value" id="power-a-bus-bow-rudder-circuit-breaker">正在加载...</span>
|
|
</div>
|
|
<div class="data-item">
|
|
<span class="data-label">敞水盖启动电缸断路器:</span>
|
|
<span class="data-value" id="power-a-bus-water-cover-circuit-breaker">正在加载...</span>
|
|
</div>
|
|
<div class="data-item">
|
|
<span class="data-label">仪表电源状态:</span>
|
|
<span class="data-value" id="power-a-bus-power-status">正在加载...</span>
|
|
</div>
|
|
<div class="data-item">
|
|
<span class="data-label">应急电源状态:</span>
|
|
<span class="data-value" id="power-a-bus-emergency-power-status">正在加载...</span>
|
|
</div>
|
|
<div class="data-item">
|
|
<span class="data-label">浸水报警:</span>
|
|
<span class="data-value" id="power-a-bus-water-alarm">正在加载...</span>
|
|
</div>
|
|
<div class="data-item">
|
|
<span class="data-label">汇流排B电压:</span>
|
|
<span class="data-value" id="power-a-bus-b-voltage">正在加载...</span>
|
|
</div>
|
|
<div class="data-item">
|
|
<span class="data-label">汇流排B电流:</span>
|
|
<span class="data-value" id="power-a-bus-b-current">正在加载...</span>
|
|
</div>
|
|
<div class="data-item">
|
|
<span class="data-label">艏部FT装置1/2/3电流:</span>
|
|
<span class="data-value" id="power-a-bus-bow-ft-current">正在加载...</span>
|
|
</div>
|
|
<div class="data-item">
|
|
<span class="data-label">启闭机构电流:</span>
|
|
<span class="data-value" id="power-a-bus-actuator-current">正在加载...</span>
|
|
</div>
|
|
<div class="data-item">
|
|
<span class="data-label">桅杆舵机控制箱电流:</span>
|
|
<span class="data-value" id="power-a-bus-mast-steering-current">正在加载...</span>
|
|
</div>
|
|
<div class="data-item">
|
|
<span class="data-label">XCZ电流:</span>
|
|
<span class="data-value" id="power-a-bus-xcz-current">正在加载...</span>
|
|
</div>
|
|
<div class="data-item">
|
|
<span class="data-label">艏舵控制箱电流:</span>
|
|
<span class="data-value" id="power-a-bus-bow-rudder-current">正在加载...</span>
|
|
</div>
|
|
<div class="data-item">
|
|
<span class="data-label">敞水盖启动电缸电流:</span>
|
|
<span class="data-value" id="power-a-bus-water-cover-current">正在加载...</span>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<button class="collapsible">其他系统参数</button>
|
|
<div class="content">
|
|
<div class="system-data-grid">
|
|
<div class="data-item">
|
|
<span class="data-label">心跳计数器:</span>
|
|
<span class="data-value" id="heartbeat">正在加载...</span>
|
|
</div>
|
|
<div class="data-item">
|
|
<span class="data-label">时间戳:</span>
|
|
<span class="data-value" id="timestamp">正在加载...</span>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<script>
|
|
// WebSocket连接
|
|
let ws = null;
|
|
|
|
// 初始化WebSocket连接
|
|
function initWebSocket() {
|
|
ws = new WebSocket('ws://' + window.location.host + '/ws');
|
|
|
|
ws.onopen = () => {
|
|
console.log('WebSocket连接已建立');
|
|
};
|
|
|
|
ws.onmessage = (event) => {
|
|
const data = JSON.parse(event.data);
|
|
updateSystemData(data);
|
|
};
|
|
|
|
ws.onclose = () => {
|
|
console.log('WebSocket连接已关闭');
|
|
setTimeout(initWebSocket, 5000); // 5秒后重连
|
|
};
|
|
|
|
ws.onerror = (error) => {
|
|
console.error('WebSocket错误:', error);
|
|
};
|
|
}
|
|
|
|
// 更新系统数据
|
|
function updateSystemData(data) {
|
|
// 燃料电池数据
|
|
if (data.fc_mode !== undefined) {
|
|
document.getElementById('fc-mode').textContent = getFCModeText(data.fc_mode);
|
|
}
|
|
if (data.fc_status !== undefined) {
|
|
document.getElementById('fc-status').textContent = getFCStatusText(data.fc_status);
|
|
}
|
|
if (data.fc_fault_level !== undefined) {
|
|
document.getElementById('fc-fault-level').textContent = data.fc_fault_level;
|
|
}
|
|
if (data.output_power_limit !== undefined) {
|
|
document.getElementById('output-power-limit').textContent = data.output_power_limit + ' W';
|
|
}
|
|
if (data.total_generation_time !== undefined) {
|
|
document.getElementById('total-generation-time').textContent = (data.total_generation_time).toFixed(1) + ' 小时';
|
|
}
|
|
if (data.total_generation_power !== undefined) {
|
|
document.getElementById('total-generation-power').textContent = data.total_generation_power + ' W';
|
|
}
|
|
if (data.fc_fault_level_1 !== undefined) {
|
|
document.getElementById('fc-fault-level-1').textContent = data.fc_fault_level_1;
|
|
}
|
|
if (data.fc_fault_level_2 !== undefined) {
|
|
document.getElementById('fc-fault-level-2').textContent = data.fc_fault_level_2;
|
|
}
|
|
if (data.fc_fault_level_3 !== undefined) {
|
|
document.getElementById('fc-fault-level-3').textContent = data.fc_fault_level_3;
|
|
}
|
|
if (data.fc_fault_level_4 !== undefined) {
|
|
document.getElementById('fc-fault-level-4').textContent = data.fc_fault_level_4;
|
|
}
|
|
|
|
// 燃料容量
|
|
if (data.hydrogen_capacity !== undefined) {
|
|
document.getElementById('hydrogen-capacity').textContent = data.hydrogen_capacity + '%';
|
|
}
|
|
if (data.liquid_oxygen_capacity !== undefined) {
|
|
document.getElementById('liquid-oxygen-capacity').textContent = data.liquid_oxygen_capacity + '%';
|
|
}
|
|
|
|
// 温度压力参数
|
|
if (data.palladium_temp !== undefined) {
|
|
document.getElementById('palladium-temp').textContent = data.palladium_temp + ' ℃';
|
|
}
|
|
if (data.main_pipe_pressure !== undefined) {
|
|
document.getElementById('main-pipe-pressure').textContent = (data.main_pipe_pressure).toFixed(2) + ' kPa';
|
|
}
|
|
if (data.aux_pipe_pressure !== undefined) {
|
|
document.getElementById('aux-pipe-pressure').textContent = (data.aux_pipe_pressure).toFixed(2) + ' kPa';
|
|
}
|
|
|
|
// 舱室环境
|
|
if (data.cabin_pressure1 !== undefined) {
|
|
document.getElementById('cabin-pressure1').textContent = (data.cabin_pressure1).toFixed(2) + ' kPa';
|
|
}
|
|
if (data.cabin_pressure2 !== undefined) {
|
|
document.getElementById('cabin-pressure2').textContent = (data.cabin_pressure2).toFixed(2) + ' kPa';
|
|
}
|
|
if (data.cabin_temp1 !== undefined) {
|
|
document.getElementById('cabin-temp1').textContent = data.cabin_temp1 + ' ℃';
|
|
}
|
|
if (data.cabin_temp2 !== undefined) {
|
|
document.getElementById('cabin-temp2').textContent = data.cabin_temp2 + ' ℃';
|
|
}
|
|
if (data.cabin_humidity1 !== undefined) {
|
|
document.getElementById('cabin-humidity1').textContent = data.cabin_humidity1 + '%';
|
|
}
|
|
if (data.cabin_humidity2 !== undefined) {
|
|
document.getElementById('cabin-humidity2').textContent = data.cabin_humidity2 + '%';
|
|
}
|
|
|
|
// 气体浓度
|
|
if (data.h2_concentration1 !== undefined) {
|
|
document.getElementById('h2-concentration1').textContent = data.h2_concentration1 + ' ppm';
|
|
}
|
|
if (data.h2_concentration2 !== undefined) {
|
|
document.getElementById('h2-concentration2').textContent = data.h2_concentration2 + ' ppm';
|
|
}
|
|
if (data.h2_concentration3 !== undefined) {
|
|
document.getElementById('h2-concentration3').textContent = data.h2_concentration3 + ' ppm';
|
|
}
|
|
if (data.o2_concentration1 !== undefined) {
|
|
document.getElementById('o2-concentration1').textContent = data.o2_concentration1 + ' ppm';
|
|
}
|
|
if (data.o2_concentration2 !== undefined) {
|
|
document.getElementById('o2-concentration2').textContent = data.o2_concentration2 + ' ppm';
|
|
}
|
|
if (data.ch3oh_concentration1 !== undefined) {
|
|
document.getElementById('ch3oh-concentration1').textContent = data.ch3oh_concentration1 + ' ppm';
|
|
}
|
|
if (data.ch3oh_concentration2 !== undefined) {
|
|
document.getElementById('ch3oh-concentration2').textContent = data.ch3oh_concentration2 + ' ppm';
|
|
}
|
|
|
|
// 电池系统
|
|
if (data.ins_soc !== undefined) {
|
|
document.getElementById('ins-soc').textContent = (data.ins_soc).toFixed(1) + '%';
|
|
}
|
|
if (data.dyn_soc !== undefined) {
|
|
document.getElementById('dyn-soc').textContent = (data.dyn_soc).toFixed(1) + '%';
|
|
}
|
|
if (data.ins_voltage_link !== undefined) {
|
|
document.getElementById('ins-voltage-link').textContent = (data.ins_voltage_link ).toFixed(2) + ' V';
|
|
}
|
|
if (data.dyn_voltage_link !== undefined) {
|
|
document.getElementById('dyn-voltage-link').textContent = (data.dyn_voltage_link ).toFixed(2) + ' V';
|
|
}
|
|
if (data.ins_current !== undefined) {
|
|
document.getElementById('ins-current').textContent = (data.ins_current).toFixed(2) + ' A';
|
|
}
|
|
if (data.dyn_current !== undefined) {
|
|
document.getElementById('dyn-current').textContent = (data.dyn_current).toFixed(2) + ' A';
|
|
}
|
|
if (data.ins_total_energy !== undefined) {
|
|
document.getElementById('ins-total-energy').textContent = data.ins_total_energy + ' Wh';
|
|
}
|
|
if (data.dyn_total_energy !== undefined) {
|
|
document.getElementById('dyn-total-energy').textContent = data.dyn_total_energy + ' Wh';
|
|
}
|
|
if (data.ins_power_input !== undefined) {
|
|
document.getElementById('ins-power-input').textContent = data.ins_power_input + ' W';
|
|
}
|
|
if (data.dyn_power_input !== undefined) {
|
|
document.getElementById('dyn-power-input').textContent = data.dyn_power_input + ' W';
|
|
}
|
|
|
|
// 继电器状态
|
|
if (data.ins_relay_status1 !== undefined) {
|
|
document.getElementById('ins-relay-status1').textContent = getRelayStatusText(data.ins_relay_status1);
|
|
}
|
|
if (data.ins_relay_status2 !== undefined) {
|
|
document.getElementById('ins-relay-status2').textContent = getRelayStatusText(data.ins_relay_status2);
|
|
}
|
|
if (data.dyn_relay_status1 !== undefined) {
|
|
document.getElementById('dyn-relay-status1').textContent = getRelayStatusText(data.dyn_relay_status1);
|
|
}
|
|
if (data.dyn_relay_status2 !== undefined) {
|
|
document.getElementById('dyn-relay-status2').textContent = getRelayStatusText(data.dyn_relay_status2);
|
|
}
|
|
|
|
// 报警标志
|
|
if (data.dyn_alarm_flag1 !== undefined) {
|
|
document.getElementById('dyn-alarm-flag1').textContent = data.dyn_alarm_flag1;
|
|
}
|
|
if (data.dyn_alarm_flag2 !== undefined) {
|
|
document.getElementById('dyn-alarm-flag2').textContent = data.dyn_alarm_flag2;
|
|
}
|
|
if (data.dyn_alarm_flag3 !== undefined) {
|
|
document.getElementById('dyn-alarm-flag3').textContent = data.dyn_alarm_flag3;
|
|
}
|
|
if (data.dyn_alarm_flag4 !== undefined) {
|
|
document.getElementById('dyn-alarm-flag4').textContent = data.dyn_alarm_flag4;
|
|
}
|
|
if (data.dyn_alarm_flag5 !== undefined) {
|
|
document.getElementById('dyn-alarm-flag5').textContent = data.dyn_alarm_flag5;
|
|
}
|
|
if (data.dyn_alarm_flag6 !== undefined) {
|
|
document.getElementById('dyn-alarm-flag6').textContent = data.dyn_alarm_flag6;
|
|
}
|
|
if (data.ins_alarm_flag1 !== undefined) {
|
|
document.getElementById('ins-alarm-flag1').textContent = data.ins_alarm_flag1;
|
|
}
|
|
if (data.ins_alarm_flag2 !== undefined) {
|
|
document.getElementById('ins-alarm-flag2').textContent = data.ins_alarm_flag2;
|
|
}
|
|
if (data.ins_alarm_flag3 !== undefined) {
|
|
document.getElementById('ins-alarm-flag3').textContent = data.ins_alarm_flag3;
|
|
}
|
|
if (data.ins_alarm_flag4 !== undefined) {
|
|
document.getElementById('ins-alarm-flag4').textContent = data.ins_alarm_flag4;
|
|
}
|
|
if (data.ins_alarm_flag5 !== undefined) {
|
|
document.getElementById('ins-alarm-flag5').textContent = data.ins_alarm_flag5;
|
|
}
|
|
if (data.ins_alarm_flag6 !== undefined) {
|
|
document.getElementById('ins-alarm-flag6').textContent = data.ins_alarm_flag6;
|
|
}
|
|
|
|
// 动力母线状态
|
|
if (data.power_bus_status) {
|
|
const bus = data.power_bus_status;
|
|
if (bus.fuelCellCircuitBreaker !== undefined) {
|
|
document.getElementById('power-bus-fuel-cell-circuit-breaker').textContent =
|
|
getCircuitBreakerStatusText(bus.fuelCellCircuitBreaker);
|
|
}
|
|
if (bus.powerLithiumBatteryCircuitBreaker !== undefined) {
|
|
document.getElementById('power-bus-power-lithium-circuit-breaker').textContent =
|
|
getCircuitBreakerStatusText(bus.powerLithiumBatteryCircuitBreaker);
|
|
}
|
|
if (bus.propulsionMotorCircuitBreaker !== undefined) {
|
|
document.getElementById('power-bus-propulsion-motor-circuit-breaker').textContent =
|
|
getCircuitBreakerStatusText(bus.propulsionMotorCircuitBreaker);
|
|
}
|
|
if (bus.lithiumBatteryGroupInstrumentCircuitBreaker !== undefined) {
|
|
document.getElementById('power-bus-lithium-meter-circuit-breaker').textContent =
|
|
getCircuitBreakerStatusText(bus.lithiumBatteryGroupInstrumentCircuitBreaker);
|
|
}
|
|
if (bus.dcDc5ModuleCircuitBreaker !== undefined) {
|
|
document.getElementById('power-bus-dcdc5-circuit-breaker').textContent =
|
|
getCircuitBreakerStatusText(bus.dcDc5ModuleCircuitBreaker);
|
|
}
|
|
if (bus.bowHighVoltageDistributionBoxCircuitBreaker !== undefined) {
|
|
document.getElementById('power-bus-bow-high-voltage-circuit-breaker').textContent =
|
|
getCircuitBreakerStatusText(bus.bowHighVoltageDistributionBoxCircuitBreaker);
|
|
}
|
|
if (bus.sternFTDevice45CircuitBreaker !== undefined) {
|
|
document.getElementById('power-bus-stern-ft-circuit-breaker').textContent =
|
|
getCircuitBreakerStatusText(bus.sternFTDevice45CircuitBreaker);
|
|
}
|
|
if (bus.sternRudderSwitch1CircuitBreaker !== undefined) {
|
|
document.getElementById('power-bus-stern-rudder1-circuit-breaker').textContent =
|
|
getCircuitBreakerStatusText(bus.sternRudderSwitch1CircuitBreaker);
|
|
}
|
|
if (bus.sternRudderSwitch2CircuitBreaker !== undefined) {
|
|
document.getElementById('power-bus-stern-rudder2-circuit-breaker').textContent =
|
|
getCircuitBreakerStatusText(bus.sternRudderSwitch2CircuitBreaker);
|
|
}
|
|
if (bus.fbReservedCircuitBreaker !== undefined) {
|
|
document.getElementById('power-bus-fb-reserved-circuit-breaker').textContent =
|
|
getCircuitBreakerStatusText(bus.fbReservedCircuitBreaker);
|
|
}
|
|
if (bus.tyzReservedCircuitBreaker !== undefined) {
|
|
document.getElementById('power-bus-tyz-reserved-circuit-breaker').textContent =
|
|
getCircuitBreakerStatusText(bus.tyzReservedCircuitBreaker);
|
|
}
|
|
if (bus.reservedCircuitBreaker !== undefined) {
|
|
document.getElementById('power-bus-reserved-circuit-breaker').textContent =
|
|
getCircuitBreakerStatusText(bus.reservedCircuitBreaker);
|
|
}
|
|
if (bus.dcDcModuleStatus !== undefined) {
|
|
document.getElementById('power-bus-dcdc-status').textContent =
|
|
getDCDcStatusText(bus.dcDcModuleStatus);
|
|
}
|
|
if (bus.coolingSystemStatus !== undefined) {
|
|
document.getElementById('power-bus-cooling-status').textContent =
|
|
getCoolingStatusText(bus.coolingSystemStatus);
|
|
}
|
|
if (bus.powerBusInsulationStatus !== undefined) {
|
|
document.getElementById('power-bus-insulation-status').textContent =
|
|
bus.powerBusInsulationStatus === 0 ? '正常' : '绝缘低';
|
|
}
|
|
if (bus.aBusInsulationStatus !== undefined) {
|
|
document.getElementById('power-bus-a-insulation-status').textContent =
|
|
bus.aBusInsulationStatus === 0 ? '正常' : '绝缘低';
|
|
}
|
|
if (bus.meterPowerLossSignal !== undefined) {
|
|
document.getElementById('power-bus-meter-power-status').textContent =
|
|
bus.meterPowerLossSignal === 0 ? '正常' : '故障';
|
|
}
|
|
if (bus.emergencyPowerLossSignal !== undefined) {
|
|
document.getElementById('power-bus-emergency-power-status').textContent =
|
|
bus.emergencyPowerLossSignal === 0 ? '正常' : '故障';
|
|
}
|
|
if (bus.dcDcTemperature !== undefined) {
|
|
document.getElementById('power-bus-dcdc-temperature').textContent =
|
|
bus.dcDcTemperature.toFixed(1) + ' ℃';
|
|
}
|
|
if (bus.powerBusVoltage !== undefined) {
|
|
document.getElementById('power-bus-voltage').textContent =
|
|
bus.powerBusVoltage.toFixed(2) + ' V';
|
|
}
|
|
if (bus.dcDc5ModuleCurrent !== undefined) {
|
|
document.getElementById('power-bus-dcdc-current').textContent =
|
|
bus.dcDc5ModuleCurrent.toFixed(2) + ' A';
|
|
}
|
|
if (bus.powerBusCurrent !== undefined) {
|
|
document.getElementById('power-bus-current').textContent =
|
|
bus.powerBusCurrent.toFixed(2) + ' A';
|
|
}
|
|
if (bus.busbarAVoltage !== undefined) {
|
|
document.getElementById('power-bus-a-voltage').textContent =
|
|
bus.busbarAVoltage.toFixed(2) + ' V';
|
|
}
|
|
if (bus.propulsionMotorControlBoxCurrent !== undefined) {
|
|
document.getElementById('power-bus-propulsion-current').textContent =
|
|
bus.propulsionMotorControlBoxCurrent.toFixed(2) + ' A';
|
|
}
|
|
if (bus.busbarACurrent !== undefined) {
|
|
document.getElementById('power-bus-a-current').textContent =
|
|
bus.busbarACurrent.toFixed(2) + ' A';
|
|
}
|
|
if (bus.lithiumBatteryGroupMeterCurrent !== undefined && bus.lithiumBatteryGroupMeterCurrent !== null) {
|
|
document.getElementById('power-bus-lithium-meter-current').textContent =
|
|
bus.lithiumBatteryGroupMeterCurrent.toFixed(2) + ' A';
|
|
} else {
|
|
document.getElementById('power-bus-lithium-meter-current').textContent = '无数据';
|
|
}
|
|
if (bus.bowHighVoltageDistributionBoxCurrent !== undefined && bus.bowHighVoltageDistributionBoxCurrent !== null) {
|
|
document.getElementById('power-bus-bow-high-voltage-current').textContent =
|
|
bus.bowHighVoltageDistributionBoxCurrent.toFixed(2) + ' A';
|
|
} else {
|
|
document.getElementById('power-bus-bow-high-voltage-current').textContent = '无数据';
|
|
}
|
|
if (bus.sternFTDevice45Current !== undefined && bus.sternFTDevice45Current !== null) {
|
|
document.getElementById('power-bus-stern-ft-current').textContent =
|
|
bus.sternFTDevice45Current.toFixed(2) + ' A';
|
|
} else {
|
|
document.getElementById('power-bus-stern-ft-current').textContent = '无数据';
|
|
}
|
|
if (bus.tyzReservedSwitchCurrent !== undefined && bus.tyzReservedSwitchCurrent !== null) {
|
|
document.getElementById('power-bus-tyz-reserved-current').textContent =
|
|
bus.tyzReservedSwitchCurrent.toFixed(2) + ' A';
|
|
} else {
|
|
document.getElementById('power-bus-tyz-reserved-current').textContent = '无数据';
|
|
}
|
|
if (bus.sternRudderSwitch1Current !== undefined && bus.sternRudderSwitch1Current !== null) {
|
|
document.getElementById('power-bus-stern-rudder1-current').textContent =
|
|
bus.sternRudderSwitch1Current.toFixed(2) + ' A';
|
|
} else {
|
|
document.getElementById('power-bus-stern-rudder1-current').textContent = '无数据';
|
|
}
|
|
if (bus.sternRudderSwitch2Current !== undefined && bus.sternRudderSwitch2Current !== null) {
|
|
document.getElementById('power-bus-stern-rudder2-current').textContent =
|
|
bus.sternRudderSwitch2Current.toFixed(2) + ' A';
|
|
} else {
|
|
document.getElementById('power-bus-stern-rudder2-current').textContent = '无数据';
|
|
}
|
|
if (bus.reservedCurrent1 !== undefined && bus.reservedCurrent1 !== null) {
|
|
document.getElementById('power-bus-reserved-current1').textContent =
|
|
bus.reservedCurrent1.toFixed(2) + ' A';
|
|
} else {
|
|
document.getElementById('power-bus-reserved-current1').textContent = '无数据';
|
|
}
|
|
if (bus.fbReservedSwitchCurrent !== undefined && bus.fbReservedSwitchCurrent !== null) {
|
|
document.getElementById('power-bus-fb-reserved-current').textContent =
|
|
bus.fbReservedSwitchCurrent.toFixed(2) + ' A';
|
|
} else {
|
|
document.getElementById('power-bus-fb-reserved-current').textContent = '无数据';
|
|
}
|
|
if (bus.reservedCurrent2 !== undefined && bus.reservedCurrent2 !== null) {
|
|
document.getElementById('power-bus-reserved-current2').textContent =
|
|
bus.reservedCurrent2.toFixed(2) + ' A';
|
|
} else {
|
|
document.getElementById('power-bus-reserved-current2').textContent = '无数据';
|
|
}
|
|
if (bus.reservedCurrent3 !== undefined && bus.reservedCurrent3 !== null) {
|
|
document.getElementById('power-bus-reserved-current3').textContent =
|
|
bus.reservedCurrent3.toFixed(2) + ' A';
|
|
} else {
|
|
document.getElementById('power-bus-reserved-current3').textContent = '无数据';
|
|
}
|
|
if (bus.coolWaterPressure !== undefined && bus.coolWaterPressure !== null) {
|
|
document.getElementById('power-bus-cool-water-pressure').textContent =
|
|
bus.coolWaterPressure.toFixed(2) + ' kPa';
|
|
} else {
|
|
document.getElementById('power-bus-cool-water-pressure').textContent = '无数据';
|
|
}
|
|
}
|
|
|
|
// 仪表主母线状态
|
|
if (data.instrument_main_bus_status) {
|
|
const bus = data.instrument_main_bus_status;
|
|
if (bus.lithiumBatteryGroupInstrumentCircuitBreaker !== undefined) {
|
|
document.getElementById('instrument-main-bus-lithium-meter-circuit-breaker').textContent =
|
|
getCircuitBreakerStatusText(bus.lithiumBatteryGroupInstrumentCircuitBreaker);
|
|
}
|
|
if (bus.bowLowVoltageDistributionBoxCircuitBreaker !== undefined) {
|
|
document.getElementById('instrument-main-bus-bow-low-voltage-circuit-breaker').textContent =
|
|
getCircuitBreakerStatusText(bus.bowLowVoltageDistributionBoxCircuitBreaker);
|
|
}
|
|
if (bus.unit4InstrumentDC48VCircuitBreaker !== undefined) {
|
|
document.getElementById('instrument-main-bus-unit4-dc48v-circuit-breaker').textContent =
|
|
getCircuitBreakerStatusText(bus.unit4InstrumentDC48VCircuitBreaker);
|
|
}
|
|
if (bus.dcC1DCDistributionPanelCircuitBreaker !== undefined) {
|
|
document.getElementById('instrument-main-bus-dc-c1-circuit-breaker').textContent =
|
|
getCircuitBreakerStatusText(bus.dcC1DCDistributionPanelCircuitBreaker);
|
|
}
|
|
if (bus.reservedCircuitBreaker1 !== undefined) {
|
|
document.getElementById('instrument-main-bus-reserved-circuit-breaker1').textContent =
|
|
getCircuitBreakerStatusText(bus.reservedCircuitBreaker1);
|
|
}
|
|
if (bus.reservedCircuitBreaker2 !== undefined) {
|
|
document.getElementById('instrument-main-bus-reserved-circuit-breaker2').textContent =
|
|
getCircuitBreakerStatusText(bus.reservedCircuitBreaker2);
|
|
}
|
|
if (bus.emergencyLithiumBatteryGroup2CircuitBreaker !== undefined) {
|
|
document.getElementById('instrument-main-bus-emergency-lithium-circuit-breaker').textContent =
|
|
getCircuitBreakerStatusText(bus.emergencyLithiumBatteryGroup2CircuitBreaker);
|
|
}
|
|
if (bus.instrumentPowerFailureSignal !== undefined) {
|
|
document.getElementById('instrument-main-bus-power-status').textContent =
|
|
bus.instrumentPowerFailureSignal === 0 ? '正常' : '故障';
|
|
}
|
|
if (bus.emergencyPowerFailureSignal !== undefined) {
|
|
document.getElementById('instrument-main-bus-emergency-power-status').textContent =
|
|
bus.emergencyPowerFailureSignal === 0 ? '正常' : '故障';
|
|
}
|
|
if (bus.instrumentBusbarInsulationLow !== undefined) {
|
|
document.getElementById('instrument-main-bus-insulation-status').textContent =
|
|
bus.instrumentBusbarInsulationLow === 0 ? '正常' : '绝缘低';
|
|
}
|
|
if (bus.instrumentBusbarVoltage !== undefined && bus.instrumentBusbarVoltage !== null) {
|
|
document.getElementById('instrument-main-bus-voltage').textContent =
|
|
bus.instrumentBusbarVoltage.toFixed(2) + ' V';
|
|
} else {
|
|
document.getElementById('instrument-main-bus-voltage').textContent = '无数据';
|
|
}
|
|
if (bus.bowLowVoltageDistributionBoxCurrent !== undefined && bus.bowLowVoltageDistributionBoxCurrent !== null) {
|
|
document.getElementById('instrument-main-bus-bow-low-voltage-current').textContent =
|
|
bus.bowLowVoltageDistributionBoxCurrent.toFixed(2) + ' A';
|
|
} else {
|
|
document.getElementById('instrument-main-bus-bow-low-voltage-current').textContent = '无数据';
|
|
}
|
|
if (bus.dcC1InstrumentDC48VCurrent !== undefined && bus.dcC1InstrumentDC48VCurrent !== null) {
|
|
document.getElementById('instrument-main-bus-dc-c1-current').textContent =
|
|
bus.dcC1InstrumentDC48VCurrent.toFixed(2) + ' A';
|
|
} else {
|
|
document.getElementById('instrument-main-bus-dc-c1-current').textContent = '无数据';
|
|
}
|
|
if (bus.reservedCurrent1 !== undefined && bus.reservedCurrent1 !== null) {
|
|
document.getElementById('instrument-main-bus-reserved-current1').textContent =
|
|
bus.reservedCurrent1.toFixed(2) + ' A';
|
|
} else {
|
|
document.getElementById('instrument-main-bus-reserved-current1').textContent = '无数据';
|
|
}
|
|
if (bus.emergencyLithiumBatteryGroup2Current !== undefined && bus.emergencyLithiumBatteryGroup2Current !== null) {
|
|
document.getElementById('instrument-main-bus-emergency-lithium-current').textContent =
|
|
bus.emergencyLithiumBatteryGroup2Current.toFixed(2) + ' A';
|
|
} else {
|
|
document.getElementById('instrument-main-bus-emergency-lithium-current').textContent = '无数据';
|
|
}
|
|
if (bus.lithiumBatteryGroupInstrumentCurrent !== undefined && bus.lithiumBatteryGroupInstrumentCurrent !== null) {
|
|
document.getElementById('instrument-main-bus-lithium-meter-current').textContent =
|
|
bus.lithiumBatteryGroupInstrumentCurrent.toFixed(2) + ' A';
|
|
} else {
|
|
document.getElementById('instrument-main-bus-lithium-meter-current').textContent = '无数据';
|
|
}
|
|
if (bus.unit4InstrumentDC48VCurrent !== undefined && bus.unit4InstrumentDC48VCurrent !== null) {
|
|
document.getElementById('instrument-main-bus-unit4-dc48v-current').textContent =
|
|
bus.unit4InstrumentDC48VCurrent.toFixed(2) + ' A';
|
|
} else {
|
|
document.getElementById('instrument-main-bus-unit4-dc48v-current').textContent = '无数据';
|
|
}
|
|
if (bus.reservedCurrent2 !== undefined && bus.reservedCurrent2 !== null) {
|
|
document.getElementById('instrument-main-bus-reserved-current2').textContent =
|
|
bus.reservedCurrent2.toFixed(2) + ' A';
|
|
} else {
|
|
document.getElementById('instrument-main-bus-reserved-current2').textContent = '无数据';
|
|
}
|
|
if (bus.emergency2BusbarVoltage !== undefined && bus.emergency2BusbarVoltage !== null) {
|
|
document.getElementById('instrument-main-bus-emergency2-voltage').textContent =
|
|
bus.emergency2BusbarVoltage.toFixed(2) + ' V';
|
|
} else {
|
|
document.getElementById('instrument-main-bus-emergency2-voltage').textContent = '无数据';
|
|
}
|
|
if (bus.compositeEnergyManagementSystemEmergencyDC48VCurrent !== undefined && bus.compositeEnergyManagementSystemEmergencyDC48VCurrent !== null) {
|
|
document.getElementById('instrument-main-bus-composite-energy-current').textContent =
|
|
bus.compositeEnergyManagementSystemEmergencyDC48VCurrent.toFixed(2) + ' A';
|
|
} else {
|
|
document.getElementById('instrument-main-bus-composite-energy-current').textContent = '无数据';
|
|
}
|
|
if (bus.fuelCellSecuritySystemEmergencyDC48VCurrent !== undefined && bus.fuelCellSecuritySystemEmergencyDC48VCurrent !== null) {
|
|
document.getElementById('instrument-main-bus-fuel-cell-security-current').textContent =
|
|
bus.fuelCellSecuritySystemEmergencyDC48VCurrent.toFixed(2) + ' A';
|
|
} else {
|
|
document.getElementById('instrument-main-bus-fuel-cell-security-current').textContent = '无数据';
|
|
}
|
|
if (bus.plcControlPowerCurrent !== undefined && bus.plcControlPowerCurrent !== null) {
|
|
document.getElementById('instrument-main-bus-plc-current').textContent =
|
|
bus.plcControlPowerCurrent.toFixed(2) + ' A';
|
|
} else {
|
|
document.getElementById('instrument-main-bus-plc-current').textContent = '无数据';
|
|
}
|
|
}
|
|
|
|
// 仪表母线状态
|
|
if (data.instrument_bus_status) {
|
|
const bus = data.instrument_bus_status;
|
|
if (bus.unit1CircuitBreaker !== undefined) {
|
|
document.getElementById('instrument-bus-unit1-circuit-breaker').textContent =
|
|
getCircuitBreakerStatusText(bus.unit1CircuitBreaker);
|
|
}
|
|
if (bus.unit2CircuitBreaker !== undefined) {
|
|
document.getElementById('instrument-bus-unit2-circuit-breaker').textContent =
|
|
getCircuitBreakerStatusText(bus.unit2CircuitBreaker);
|
|
}
|
|
if (bus.unit3CircuitBreaker !== undefined) {
|
|
document.getElementById('instrument-bus-unit3-circuit-breaker').textContent =
|
|
getCircuitBreakerStatusText(bus.unit3CircuitBreaker);
|
|
}
|
|
if (bus.unit5CircuitBreaker !== undefined) {
|
|
document.getElementById('instrument-bus-unit5-circuit-breaker').textContent =
|
|
getCircuitBreakerStatusText(bus.unit5CircuitBreaker);
|
|
}
|
|
if (bus.bowPZDeviceCircuitBreaker !== undefined) {
|
|
document.getElementById('instrument-bus-bow-pz-circuit-breaker').textContent =
|
|
getCircuitBreakerStatusText(bus.bowPZDeviceCircuitBreaker);
|
|
}
|
|
if (bus.reservedCircuitBreaker1 !== undefined) {
|
|
document.getElementById('instrument-bus-reserved-circuit-breaker1').textContent =
|
|
getCircuitBreakerStatusText(bus.reservedCircuitBreaker1);
|
|
}
|
|
if (bus.reservedCircuitBreaker2 !== undefined) {
|
|
document.getElementById('instrument-bus-reserved-circuit-breaker2').textContent =
|
|
getCircuitBreakerStatusText(bus.reservedCircuitBreaker2);
|
|
}
|
|
if (bus.emergencyLithiumBatteryGroup1CircuitBreaker !== undefined) {
|
|
document.getElementById('instrument-bus-emergency-lithium1-circuit-breaker').textContent =
|
|
getCircuitBreakerStatusText(bus.emergencyLithiumBatteryGroup1CircuitBreaker);
|
|
}
|
|
if (bus.powerFailureSignal !== undefined) {
|
|
document.getElementById('instrument-bus-power-status').textContent =
|
|
bus.powerFailureSignal === 0 ? '正常' : '故障';
|
|
}
|
|
if (bus.emergencyPowerFailureSignal !== undefined) {
|
|
document.getElementById('instrument-bus-emergency-power-status').textContent =
|
|
bus.emergencyPowerFailureSignal === 0 ? '正常' : '故障';
|
|
}
|
|
if (bus.waterIngressionAlarm !== undefined) {
|
|
document.getElementById('instrument-bus-water-alarm').textContent =
|
|
bus.waterIngressionAlarm === 0 ? '无' : '有';
|
|
}
|
|
if (bus.instrumentBusbarVoltage !== undefined) {
|
|
document.getElementById('instrument-bus-voltage').textContent =
|
|
bus.instrumentBusbarVoltage.toFixed(2) + ' V';
|
|
}
|
|
if (bus.instrumentBusbarCurrent !== undefined) {
|
|
document.getElementById('instrument-bus-current').textContent =
|
|
bus.instrumentBusbarCurrent.toFixed(2) + ' A';
|
|
}
|
|
if (bus.unit1Current !== undefined) {
|
|
document.getElementById('instrument-bus-unit1-current').textContent =
|
|
bus.unit1Current.toFixed(2) + ' A';
|
|
}
|
|
if (bus.unit2Current !== undefined) {
|
|
document.getElementById('instrument-bus-unit2-current').textContent =
|
|
bus.unit2Current.toFixed(2) + ' A';
|
|
}
|
|
if (bus.unit3Current !== undefined) {
|
|
document.getElementById('instrument-bus-unit3-current').textContent =
|
|
bus.unit3Current.toFixed(2) + ' A';
|
|
}
|
|
if (bus.unit5Current !== undefined) {
|
|
document.getElementById('instrument-bus-unit5-current').textContent =
|
|
bus.unit5Current.toFixed(2) + ' A';
|
|
}
|
|
if (bus.bowPZDeviceCurrent !== undefined) {
|
|
document.getElementById('instrument-bus-bow-pz-current').textContent =
|
|
bus.bowPZDeviceCurrent.toFixed(2) + ' A';
|
|
}
|
|
if (bus.emergencyLithiumBatteryGroup1Current !== undefined) {
|
|
document.getElementById('instrument-bus-emergency-lithium1-current').textContent =
|
|
bus.emergencyLithiumBatteryGroup1Current.toFixed(2) + ' A';
|
|
}
|
|
if (bus.emergency1BusbarVoltage !== undefined) {
|
|
document.getElementById('instrument-bus-emergency1-voltage').textContent =
|
|
bus.emergency1BusbarVoltage.toFixed(2) + ' V';
|
|
}
|
|
}
|
|
|
|
// 动力母线A状态
|
|
if (data.power_a_bus_status) {
|
|
const bus = data.power_a_bus_status;
|
|
if (bus.bowFTDevice123CircuitBreaker !== undefined) {
|
|
document.getElementById('power-a-bus-bow-ft-circuit-breaker').textContent =
|
|
getCircuitBreakerStatusText(bus.bowFTDevice123CircuitBreaker);
|
|
}
|
|
if (bus.actuatorCircuitBreaker !== undefined) {
|
|
document.getElementById('power-a-bus-actuator-circuit-breaker').textContent =
|
|
getCircuitBreakerStatusText(bus.actuatorCircuitBreaker);
|
|
}
|
|
if (bus.mastSteeringGearControlBoxCircuitBreaker !== undefined) {
|
|
document.getElementById('power-a-bus-mast-steering-circuit-breaker').textContent =
|
|
getCircuitBreakerStatusText(bus.mastSteeringGearControlBoxCircuitBreaker);
|
|
}
|
|
if (bus.xczCircuitBreaker !== undefined) {
|
|
document.getElementById('power-a-bus-xcz-circuit-breaker').textContent =
|
|
getCircuitBreakerStatusText(bus.xczCircuitBreaker);
|
|
}
|
|
if (bus.bowRudderControlBoxCircuitBreaker !== undefined) {
|
|
document.getElementById('power-a-bus-bow-rudder-circuit-breaker').textContent =
|
|
getCircuitBreakerStatusText(bus.bowRudderControlBoxCircuitBreaker);
|
|
}
|
|
if (bus.openWaterCoverStartCylinderCircuitBreaker !== undefined) {
|
|
document.getElementById('power-a-bus-water-cover-circuit-breaker').textContent =
|
|
getCircuitBreakerStatusText(bus.openWaterCoverStartCylinderCircuitBreaker);
|
|
}
|
|
if (bus.instrumentPowerFailureSignal !== undefined) {
|
|
document.getElementById('power-a-bus-power-status').textContent =
|
|
bus.instrumentPowerFailureSignal === 0 ? '正常' : '故障';
|
|
}
|
|
if (bus.emergencyPowerFailureSignal !== undefined) {
|
|
document.getElementById('power-a-bus-emergency-power-status').textContent =
|
|
bus.emergencyPowerFailureSignal === 0 ? '正常' : '故障';
|
|
}
|
|
if (bus.waterIngressionAlarm !== undefined) {
|
|
document.getElementById('power-a-bus-water-alarm').textContent =
|
|
bus.waterIngressionAlarm === 0 ? '无' : '有';
|
|
}
|
|
if (bus.busbarBVoltage !== undefined && bus.busbarBVoltage !== null) {
|
|
document.getElementById('power-a-bus-b-voltage').textContent =
|
|
bus.busbarBVoltage.toFixed(2) + ' V';
|
|
} else {
|
|
document.getElementById('power-a-bus-b-voltage').textContent = '无数据';
|
|
}
|
|
if (bus.busbarBCurrent !== undefined && bus.busbarBCurrent !== null) {
|
|
document.getElementById('power-a-bus-b-current').textContent =
|
|
bus.busbarBCurrent.toFixed(2) + ' A';
|
|
} else {
|
|
document.getElementById('power-a-bus-b-current').textContent = '无数据';
|
|
}
|
|
if (bus.bowFTDevice123Current !== undefined && bus.bowFTDevice123Current !== null) {
|
|
document.getElementById('power-a-bus-bow-ft-current').textContent =
|
|
bus.bowFTDevice123Current.toFixed(2) + ' A';
|
|
} else {
|
|
document.getElementById('power-a-bus-bow-ft-current').textContent = '无数据';
|
|
}
|
|
if (bus.actuatorCurrent !== undefined && bus.actuatorCurrent !== null) {
|
|
document.getElementById('power-a-bus-actuator-current').textContent =
|
|
bus.actuatorCurrent.toFixed(2) + ' A';
|
|
} else {
|
|
document.getElementById('power-a-bus-actuator-current').textContent = '无数据';
|
|
}
|
|
if (bus.mastSteeringGearControlBoxCurrent !== undefined && bus.mastSteeringGearControlBoxCurrent !== null) {
|
|
document.getElementById('power-a-bus-mast-steering-current').textContent =
|
|
bus.mastSteeringGearControlBoxCurrent.toFixed(2) + ' A';
|
|
} else {
|
|
document.getElementById('power-a-bus-mast-steering-current').textContent = '无数据';
|
|
}
|
|
if (bus.xczCurrent !== undefined && bus.xczCurrent !== null) {
|
|
document.getElementById('power-a-bus-xcz-current').textContent =
|
|
bus.xczCurrent.toFixed(2) + ' A';
|
|
} else {
|
|
document.getElementById('power-a-bus-xcz-current').textContent = '无数据';
|
|
}
|
|
if (bus.bowRudderControlBoxCurrent !== undefined && bus.bowRudderControlBoxCurrent !== null) {
|
|
document.getElementById('power-a-bus-bow-rudder-current').textContent =
|
|
bus.bowRudderControlBoxCurrent.toFixed(2) + ' A';
|
|
} else {
|
|
document.getElementById('power-a-bus-bow-rudder-current').textContent = '无数据';
|
|
}
|
|
if (bus.openWaterCoverStartCylinderCurrent !== undefined && bus.openWaterCoverStartCylinderCurrent !== null) {
|
|
document.getElementById('power-a-bus-water-cover-current').textContent =
|
|
bus.openWaterCoverStartCylinderCurrent.toFixed(2) + ' A';
|
|
} else {
|
|
document.getElementById('power-a-bus-water-cover-current').textContent = '无数据';
|
|
}
|
|
}
|
|
|
|
// 其他系统参数
|
|
// 设备在线状态
|
|
if (data.device_online_status) {
|
|
const status = data.device_online_status;
|
|
document.getElementById('ins-online-state').textContent = getOnlineStateText(status.ins_online_state);
|
|
document.getElementById('dyn-online-state').textContent = getOnlineStateText(status.dyn_online_state);
|
|
document.getElementById('fuel-online-state').textContent = getOnlineStateText(status.fuel_online_state);
|
|
document.getElementById('high-voltage-online-state').textContent = getOnlineStateText(status.high_voltage_online_state);
|
|
document.getElementById('low-voltage-online-state').textContent = getOnlineStateText(status.low_voltage_online_state);
|
|
document.getElementById('composite-online-state').textContent = getOnlineStateText(status.composite_online_state);
|
|
document.getElementById('composite-backup-online-state').textContent = getOnlineStateText(status.composite_backup_online_state);
|
|
}
|
|
// 通信状态
|
|
if (data.comm_state) {
|
|
const comm = data.comm_state;
|
|
document.getElementById('ccu-status-timeout').textContent = getTimeoutText(comm.ccu_status.isTimeout);
|
|
document.getElementById('ccu-status-last-update').textContent = new Date(comm.ccu_status.lastUpdateTime * 1000).toLocaleString();
|
|
document.getElementById('dis-hv-c1-timeout').textContent = getTimeoutText(comm.dis_hv_c1.isTimeout);
|
|
document.getElementById('dis-hv-c1-last-update').textContent = new Date(comm.dis_hv_c1.lastUpdateTime * 1000).toLocaleString();
|
|
document.getElementById('dis-hv-c2-timeout').textContent = getTimeoutText(comm.dis_hv_c2.isTimeout);
|
|
document.getElementById('dis-hv-c2-last-update').textContent = new Date(comm.dis_hv_c2.lastUpdateTime * 1000).toLocaleString();
|
|
document.getElementById('dis-lv-c1-timeout').textContent = getTimeoutText(comm.dis_lv_c1.isTimeout);
|
|
document.getElementById('dis-lv-c1-last-update').textContent = new Date(comm.dis_lv_c1.lastUpdateTime * 1000).toLocaleString();
|
|
document.getElementById('dis-lv-c2-timeout').textContent = getTimeoutText(comm.dis_lv_c2.isTimeout);
|
|
document.getElementById('dis-lv-c2-last-update').textContent = new Date(comm.dis_lv_c2.lastUpdateTime * 1000).toLocaleString();
|
|
}
|
|
if (data.heartbeat !== undefined) {
|
|
document.getElementById('heartbeat').textContent = data.heartbeat;
|
|
}
|
|
if (data.timestamp !== undefined) {
|
|
document.getElementById('timestamp').textContent = new Date(data.timestamp).toLocaleString();
|
|
}
|
|
}
|
|
|
|
// 在线状态文本转换
|
|
function getOnlineStateText(state) {
|
|
const states = {
|
|
"0": "未上线",
|
|
"1": "在线",
|
|
"2": "上线后掉线"
|
|
};
|
|
return states[state] || "未知状态";
|
|
}
|
|
|
|
// 超时状态文本转换
|
|
function getTimeoutText(isTimeout) {
|
|
return isTimeout ? "已超时" : "正常";
|
|
}
|
|
|
|
// FC模式文本转换
|
|
function getFCModeText(mode) {
|
|
const modes = {
|
|
0: '无效',
|
|
1: '调试',
|
|
2: '自动',
|
|
3: '补给'
|
|
};
|
|
return modes[mode] || '未知模式';
|
|
}
|
|
|
|
// FC状态文本转换
|
|
function getFCStatusText(status) {
|
|
const statuses = {
|
|
0: '无效',
|
|
1: '初始化',
|
|
2: '待机',
|
|
3: '启动中',
|
|
4: '运行',
|
|
5: '关机中',
|
|
6: '故障',
|
|
7: '维护',
|
|
8: '校准',
|
|
9: '测试',
|
|
10: '紧急停止',
|
|
11: '重启',
|
|
12: '升级',
|
|
13: '维护完成'
|
|
};
|
|
return statuses[status] || '未知状态';
|
|
}
|
|
|
|
// 断路器状态文本转换
|
|
function getCircuitBreakerStatusText(status) {
|
|
const statuses = {
|
|
0: '断开',
|
|
1: '闭合',
|
|
2: '故障'
|
|
};
|
|
return statuses[status] || '未知状态';
|
|
}
|
|
|
|
// DC/DC模块状态文本转换
|
|
function getDCDcStatusText(status) {
|
|
const statuses = {
|
|
0: '关闭',
|
|
1: '启动中',
|
|
2: '运行',
|
|
3: '故障',
|
|
4: '维护'
|
|
};
|
|
return statuses[status] || '未知状态';
|
|
}
|
|
|
|
// 冷却系统状态文本转换
|
|
function getCoolingStatusText(status) {
|
|
const statuses = {
|
|
0: '关闭',
|
|
1: '启动中',
|
|
2: '运行',
|
|
3: '故障',
|
|
4: '维护'
|
|
};
|
|
return statuses[status] || '未知状态';
|
|
}
|
|
|
|
// 继电器状态文本转换
|
|
function getRelayStatusText(status) {
|
|
return status === 1 ? '闭合' : '断开';
|
|
}
|
|
|
|
// 折叠面板功能
|
|
const coll = document.getElementsByClassName("collapsible");
|
|
for (let i = 0; i < coll.length; i++) {
|
|
coll[i].addEventListener("click", function() {
|
|
this.classList.toggle("active");
|
|
const content = this.nextElementSibling;
|
|
if (content.style.display === "block") {
|
|
content.style.display = "none";
|
|
} else {
|
|
content.style.display = "block";
|
|
}
|
|
});
|
|
}
|
|
|
|
// 初始化WebSocket连接
|
|
window.addEventListener('load', initWebSocket);
|
|
</script>
|
|
</body>
|
|
</html>
|
|
)";
|
|
|
|
#endif // HTTP_SERVER_INDEX_H
|