|
@@ -129,44 +129,6 @@ body.rail .logo .t,body.rail .nav-label,body.rail .side-foot .nav-label{display:
|
|
|
</div>
|
|
</div>
|
|
|
</div>
|
|
</div>
|
|
|
|
|
|
|
|
- <div class="card">
|
|
|
|
|
- <h3>系统配置</h3>
|
|
|
|
|
- <div class="form-row">
|
|
|
|
|
- <div class="form-group"><label>RTSP超时(秒)</label><input type="number" id="rtspTimeout" min="1" max="60" value="10"></div>
|
|
|
|
|
- <div class="form-group">
|
|
|
|
|
- <label><input type="checkbox" id="targetEnabled"> 是否启用目标识别</label>
|
|
|
|
|
- </div>
|
|
|
|
|
- <div class="form-group">
|
|
|
|
|
- <label><input type="checkbox" id="poseEnabled"> 是否启用姿态识别</label>
|
|
|
|
|
- </div>
|
|
|
|
|
- </div>
|
|
|
|
|
- <div class="form-row">
|
|
|
|
|
- <div class="form-group">
|
|
|
|
|
- <label>输出通道网格到显示器</label>
|
|
|
|
|
- <select id="gridOutput">
|
|
|
|
|
- <option value="true">启用</option>
|
|
|
|
|
- <option value="false">禁用</option>
|
|
|
|
|
- </select>
|
|
|
|
|
- </div>
|
|
|
|
|
- <div class="form-group">
|
|
|
|
|
- <label>输出钢包位到显示器</label>
|
|
|
|
|
- <select id="steelOutput">
|
|
|
|
|
- <option value="true">启用</option>
|
|
|
|
|
- <option value="false">禁用</option>
|
|
|
|
|
- </select>
|
|
|
|
|
- </div>
|
|
|
|
|
- </div>
|
|
|
|
|
- <div class="form-group">
|
|
|
|
|
- <label>Web视频推流(MJPEG) <span style="color:#e94560" id="mjpegState"></span></label>
|
|
|
|
|
- <select id="mjpegEnabled" onchange="toggleMjpeg()">
|
|
|
|
|
- <option value="true">启用</option>
|
|
|
|
|
- <option value="false">临时关闭(省CPU)</option>
|
|
|
|
|
- </select>
|
|
|
|
|
- </div>
|
|
|
|
|
- <div class="btn-row">
|
|
|
|
|
- <button class="btn btn-primary" onclick="saveSystemConfig()">保存系统配置</button>
|
|
|
|
|
- </div>
|
|
|
|
|
- </div>
|
|
|
|
|
</main>
|
|
</main>
|
|
|
</div>
|
|
</div>
|
|
|
|
|
|
|
@@ -175,35 +137,15 @@ let buckets = [];
|
|
|
|
|
|
|
|
async function loadConfig() {
|
|
async function loadConfig() {
|
|
|
try {
|
|
try {
|
|
|
- const [modRes, bucketRes, poseRes, statusRes] = await Promise.all([
|
|
|
|
|
|
|
+ const [modRes, bucketRes] = await Promise.all([
|
|
|
fetch('/api/module/config'),
|
|
fetch('/api/module/config'),
|
|
|
- fetch('/api/buckets'),
|
|
|
|
|
- fetch('/api/pose/status'),
|
|
|
|
|
- fetch('/api/status')
|
|
|
|
|
|
|
+ fetch('/api/buckets')
|
|
|
]);
|
|
]);
|
|
|
const modData = await modRes.json();
|
|
const modData = await modRes.json();
|
|
|
const bucketData = await bucketRes.json();
|
|
const bucketData = await bucketRes.json();
|
|
|
- let targetEnabled = true, poseEnabled = true;
|
|
|
|
|
- try {
|
|
|
|
|
- const poseData = await poseRes.json();
|
|
|
|
|
- if (poseData.target_enabled !== undefined) targetEnabled = poseData.target_enabled;
|
|
|
|
|
- if (poseData.pose_cfg_enabled !== undefined) poseEnabled = poseData.pose_cfg_enabled;
|
|
|
|
|
- else if (poseData.pose_enabled !== undefined) poseEnabled = poseData.pose_enabled;
|
|
|
|
|
- } catch (e) {}
|
|
|
|
|
- let gridOutput = true, steelOutput = true;
|
|
|
|
|
- try {
|
|
|
|
|
- const statusData = await statusRes.json();
|
|
|
|
|
- if (statusData.target_enabled !== undefined) targetEnabled = statusData.target_enabled;
|
|
|
|
|
- if (statusData.grid_output !== undefined) gridOutput = statusData.grid_output;
|
|
|
|
|
- if (statusData.steel_output !== undefined) steelOutput = statusData.steel_output;
|
|
|
|
|
- } catch (e) {}
|
|
|
|
|
|
|
|
|
|
document.getElementById('moduleType').value = modData.module_type || 'RFID';
|
|
document.getElementById('moduleType').value = modData.module_type || 'RFID';
|
|
|
document.getElementById('idleTimeout').value = modData.idle_timeout || 5;
|
|
document.getElementById('idleTimeout').value = modData.idle_timeout || 5;
|
|
|
- document.getElementById('targetEnabled').checked = targetEnabled;
|
|
|
|
|
- document.getElementById('poseEnabled').checked = poseEnabled;
|
|
|
|
|
- document.getElementById('gridOutput').value = gridOutput ? 'true' : 'false';
|
|
|
|
|
- document.getElementById('steelOutput').value = steelOutput ? 'true' : 'false';
|
|
|
|
|
onModuleTypeChange();
|
|
onModuleTypeChange();
|
|
|
|
|
|
|
|
if (modData.rfid) {
|
|
if (modData.rfid) {
|
|
@@ -354,21 +296,6 @@ async function saveModuleConfig() {
|
|
|
} catch (e) { alert('保存失败: ' + e.message); }
|
|
} catch (e) { alert('保存失败: ' + e.message); }
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
-async function saveSystemConfig() {
|
|
|
|
|
- const targetEnabled = document.getElementById('targetEnabled').checked;
|
|
|
|
|
- const poseEnabled = document.getElementById('poseEnabled').checked;
|
|
|
|
|
- const gridOutput = document.getElementById('gridOutput').value === 'true';
|
|
|
|
|
- const steelOutput = document.getElementById('steelOutput').value === 'true';
|
|
|
|
|
- try {
|
|
|
|
|
- await fetch('/api/config', {
|
|
|
|
|
- method: 'POST',
|
|
|
|
|
- headers: {'Content-Type': 'application/json'},
|
|
|
|
|
- body: JSON.stringify({ target_enabled: targetEnabled, pose_enabled: poseEnabled, grid_output: gridOutput, steel_output: steelOutput })
|
|
|
|
|
- });
|
|
|
|
|
- alert('系统配置已保存' + (poseEnabled ? '' : '(姿态识别需重启后生效)'));
|
|
|
|
|
- } catch (e) { alert('保存失败: ' + e.message); }
|
|
|
|
|
-}
|
|
|
|
|
-
|
|
|
|
|
loadConfig();
|
|
loadConfig();
|
|
|
</script>
|
|
</script>
|
|
|
</body>
|
|
</body>
|