页面加载中…

HC 人体检测 · 雷达监控

{{ wsConnected ? 'WebSocket 已连接' : 'WebSocket 断开' }}
等待设备上报 status…

雷达 · {{ selectedDevId }}

Shift+单击标题,或三击右上角 FPS 行 · 当前 {{ (effectiveMaxRangeMm / 1000).toFixed(2) }} m({{ rangeSourceText }})
设备已上报 max_range_mm,本地设置暂不生效
mm 或 m
{{ presenceLabel(devPresenceState(currentDevice)) }}
{{ devRangeText(currentDevice) }}{{ devAzimuthText(currentDevice) }}
FPS {{ fmtVal(currentDevice.radar_fps) }} · {{ fmtVal(currentDevice.ip) }}

人体存在时间线

暂无检测记录
{{ hoverTip.time }}
{{ hoverTip.state }} · {{ hoverTip.range }}
预览
有图,加载中…

抓拍照片

{{ photosWithImages.length }} 张
暂无照片(检测到大动作或手动抓拍后显示)

音频管理 · {{ selectedDevId }}

支持 MP3/WAV 等,服务端自动转 16kHz mono WAV,单文件 ≤256KB,文件名仅 [A-Za-z0-9_-.] 且以 .wav 结尾
{{ ttsStatus.message }}
{{ ttsStatus.message }}
{{ ttsStatus.message }}
留空文件名时自动取文本前 N 字(可设长度);支持中文名,下发设备若失败请先重命名为英文
网页试听 · {{ audioPreviewName }}

云端音频库

{{ audioCatalog.length }} 个
文件名 大小 时长 操作
{{ f.name }} {{ formatAudioSize(f.size) }} {{ formatDuration(f.duration_ms) }}
云端暂无音频,请先上传

设备 Flash

{{ deviceAudioFiles.length }} 个
文件名 大小 采样率 操作
{{ f.name }} {{ formatAudioSize(f.size) }} {{ f.rate ? f.rate + ' Hz' : '-' }}
{{ currentDevice && !currentDevice.online ? '设备离线' : '设备 Flash 暂无音频(请先下发)' }}

运动前检测 · 监控观察 · {{ selectedDevId }}

测试目的:记录{{ selectedDevId }} 各机构(堆垛机 / 加解锁平台 / 接驳机)每次从静止启动前是否误报有人。下表一行 = 一轮运动;若运动前有人,会标注提前多久出现信号,并区分可能未停稳疑似误报
{{ plcMonitorVerdict.title }}
{{ plcMonitorVerdict.detail }}
状态变更 {{ formatTimeShort(plcSnapshot.created_at) }} 尚无入库快照 · 最近上报 {{ plcLastReceivedAt ? formatTimeShort(plcLastReceivedAt) : '—' }} · {{ plcReceiveHint.text }}
毫米波雷达(实时)
{{ plcRadarPersonLabel(currentDevice) }}
{{ presenceLabel(devPresenceState(currentDevice)) }} · {{ devRangeText(currentDevice) }}{{ devAzimuthText(currentDevice) }}
PLC 人员判定(设备上报)
{{ plcSnapshot.person ? '判定有人' : '判定无人' }}
工作模式 {{ plcWorkModeLabel(plcSnapshot) }}
机械总态:{{ plcMechanicalSummary(plcSnapshot) }} · 当前无运动,适合观察「运动前」检测
堆垛机 · motion={{ plcSnapshot.motion_flags != null ? plcSnapshot.motion_flags : '-' }}
平移 升降 货叉
加解锁平台
平移 举升
接驳机
电池传送
调试 · 原始站点字段
msg_id {{ plcSnapshot.msg_id || '-' }} · tick {{ plcSnapshot.tick_ms != null ? plcSnapshot.tick_ms : '-' }}
safety_state
{{ plcSnapshot.safety_state || '—' }}
plc_ready
{{ plcSnapshot.plc_ready ? 'true' : 'false' }}
allow_start
{{ plcSnapshot.allow_start ? 'true' : 'false' }}
近 24h · {{ selectedDevId }} 运动 {{ plcObserveStats.motionStarts }} 次 · 运动前无人 {{ plcObserveStats.preOk }} 次 · 疑似误报 {{ plcObserveStats.preFalseAlarm }} 次 · 可能未停稳 {{ plcObserveStats.preUnsettled }} · 待核对 {{ plcObserveStats.preReview }} · 状态流水 {{ plcObserveStats.total }} 条
运动测试记录(静止 → 运动 · {{ selectedDevId }})
运动时间 监测设备 运动前判定 提前量 雷达 / PLC 原因分析 说明
开始 {{ formatTimeShort(r.startTime) }}
最近 {{ formatTimeShort(r.lastMotionTime) }}
至 {{ formatTimeShort(r.endTime) }}
进行中 / 未记录结束
距上轮结束 {{ formatDurationSec(r.lastMotionGapSec) }}
{{ r.motionDevice }}
{{ r.motionLabel }}
{{ plcPreMotionPersonText(r) }} {{ plcPreMotionTimingText(r) }}
雷达 {{ plcPersonBadgeText(r.preRadar) }} PLC {{ plcPersonBadgeText(r.prePlc) }}
雷达记录 {{ formatTimeShort(r.preRadarAt) }}
{{ plcCauseLabel(r) }} {{ r.preVerdict.detail }}
暂无「静止→运动」切换记录。请操作机械并等待 PLC 状态入库。
部件边沿时间线(各机构开始/结束)
  • {{ formatTimeShort(ev.created_at) }} {{ plcMotionActionLabel(ev) }} {{ plcMotionPartTitle(ev) }} PLC {{ ev.person ? '有人' : '无人' }}
原始状态变更流水(调试)
时间 机械 运动前 雷达 PLC 堆垛机 加解锁平台 接驳机
{{ formatTimeShort(e.created_at) }} {{ plcAnyMotion(e) ? '动' : '静' }} {{ plcHistoryPreMotionText(e) }} {{ plcHistoryRadarLabel(e) }} {{ e.person ? '有' : '无' }} {{ plcMotionStacker(e) }} {{ plcMotionPlatform(e) }} {{ plcMotionTransfer(e) }}
暂无 PLC 上报(设备 Phase 1 开启后自动入库)
加载 PLC 数据…

语音包 · {{ selectedDevId }}

应有 {{ voicePackSummary.expected }} 条 · 下发成功 {{ voicePackSummary.deployed_ok }} · 待同步 {{ voicePackSummary.pending }} · 设备 Flash {{ deviceAudioFiles.length }} 个 · 文件名固定英文别名(boot_ok.wav 等) · 本地列表按下发记录推断(固件 ack 未带 JSON) · 同步中…
中文标题 device_name event 云端 下发状态 设备本地 操作
{{ a.title }} {{ a.device_name }} {{ a.event_key }} {{ a.size_kb ? a.size_kb + ' KB' : '-' }} {{ voiceDeployLabel(a.deploy_status) }} {{ voiceOnDeviceLabel(a.device_name) }}
加载语音包…

设备 Flash 音频列表

{{ deviceAudioFiles.length }} 个 · list_audio(推断)
文件名 大小 采样率 语音包
{{ f.name }} {{ formatAudioSize(f.size) }} {{ f.rate ? f.rate + ' Hz' : '-' }} {{ voicePackTitleForFile(f.name) }}
设备 Flash 暂无音频 · 点「刷新」查询本地列表