Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
e357930bee |
No files matched your search
@@ -20,7 +20,7 @@ Windows 侧密码 SSH 自动化使用 Paramiko。编辑中文时必须保持 UTF
|
||||
|
||||
## 项目边界
|
||||
|
||||
- 当前应用版本和发布标签均为 `v2.0.4`。
|
||||
- 当前应用版本和发布标签均为 `v2.0.5`。
|
||||
- 版本字符串始终保留前导 `v`。
|
||||
- 序列号使用 `PGU5A-` 加大写以太网 MAC。
|
||||
- Core 不包含 PLC/Modbus、运动、水肥、业务自动化、计划任务、业务路径、Hikrobot/MVS/GenICam 或任何应用专属身份。
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
# PGU5-Core API
|
||||
|
||||
本文档对应 PGU5-Core `v2.0.4`,以 `pgu5a_base.py` 中的实际路由为准。
|
||||
本文档对应 PGU5-Core `v2.0.5`,以 `pgu5a_base.py` 中的实际路由为准。
|
||||
|
||||
## 基本约定
|
||||
|
||||
@@ -258,7 +258,7 @@ curl -X POST http://127.0.0.1:8080/api/save -d "target=all"
|
||||
"used_gb": 118.0,
|
||||
"total_gb": 238.5,
|
||||
"refresh_ms": 5000,
|
||||
"app_version": "v2.0.4",
|
||||
"app_version": "v2.0.5",
|
||||
"auto_cleanup": {}
|
||||
}
|
||||
```
|
||||
@@ -471,6 +471,8 @@ curl -X POST http://127.0.0.1:8080/api/files/download \
|
||||
|
||||
每个通道只在首次启动、休眠唤醒或错误重连后开启独立检测窗口。窗口结束且未触发异常时,`detection_result` 变为 `passed`,后续预览帧在进入灰度转换、缩放、相位相关和帧差计算前直接返回。检测触发时只请求重启对应通道;通道重新打开后自动进入新一轮检测。
|
||||
|
||||
管理中心诊断表只显示 `device_index` 的数字节点编号,例如 `12`;API 仍返回完整的 `device_index` 和通道状态消息,后台设备路径与相机打开逻辑不变。
|
||||
|
||||
### `GET /api/m3/control`
|
||||
|
||||
返回低频轮询缓存:
|
||||
|
||||
@@ -7,8 +7,8 @@ PGU5-Core 是运行在 Orange Pi 4 Pro 上的 PGU5 开放平台核心程序,
|
||||
| 项目 | 当前值 |
|
||||
| --- | --- |
|
||||
| 产品 | PGU5 开放平台 |
|
||||
| 应用版本 | `v2.0.4` |
|
||||
| 发布标签 | `v2.0.4` |
|
||||
| 应用版本 | `v2.0.5` |
|
||||
| 发布标签 | `v2.0.5` |
|
||||
| 设备序列号 | `PGU5A-` + 大写以太网 MAC |
|
||||
| 现场目录 | `/root/PGU5-Core` |
|
||||
| Web | `http://192.168.101.172:8080/` |
|
||||
@@ -37,12 +37,17 @@ PGU5-Core 是运行在 Orange Pi 4 Pro 上的 PGU5 开放平台核心程序,
|
||||
- Hikrobot/MVS/GenICam。
|
||||
- 任何应用专属产品身份、业务页面或部署路径。
|
||||
|
||||
## v2.0.5
|
||||
|
||||
- 多光谱六通道诊断表的“设备”列仅显示视频节点编号,例如 `/dev/video12` 显示为 `12`,减少现场界面的实现细节。
|
||||
- 后端 `device_index`、设备路径、运行日志和通道打开逻辑保持不变,不影响设备识别、恢复和 API 诊断。
|
||||
|
||||
## v2.0.4
|
||||
|
||||
- 新增管理中心“多光谱控制”页面,可持久化调整 MS602 开流检测时长、小抖动和撕裂检测参数,并查看六通道诊断。
|
||||
- MS602 昂贵图像分析只在首次启动、休眠唤醒或错误重连后的短暂窗口内运行;通过后停止检测,读帧失败仍保持独立通道恢复。
|
||||
- 增强持续撕裂和 720 通道轻微上下抖动识别,使用通道代次、独立锁和诊断证据避免旧线程影响新实例。
|
||||
- 管理中心所有页面统一可滚动高度链;多光谱诊断表完整显示通道、设备路径和检测指标,移动端改为无横向溢出的分组布局。
|
||||
- 管理中心所有页面统一可滚动高度链;多光谱诊断表完整显示通道、设备节点和检测指标,移动端改为无横向溢出的分组布局。
|
||||
- 修复暗色主题移动端导航按钮、系统设置菜单、根页面白边和多处文字/组件样式,统一非业务管理界面。
|
||||
- 清理空响应式规则、Python 缓存和历史部署临时备份,保留现场配置、配置备份、运行日志和 OTA 状态。
|
||||
|
||||
@@ -103,8 +108,8 @@ PGU5-Core 是运行在 Orange Pi 4 Pro 上的 PGU5 开放平台核心程序,
|
||||
界面当前版本来自:
|
||||
|
||||
```python
|
||||
APP_VERSION = "v2.0.4"
|
||||
APP_RELEASE_TAG = "v2.0.4"
|
||||
APP_VERSION = "v2.0.5"
|
||||
APP_RELEASE_TAG = "v2.0.5"
|
||||
```
|
||||
|
||||
Git 信息只用于诊断。在线升级先检查 Gitea Release,只有发现更新后才启用升级按钮。OTA 状态包括:
|
||||
|
||||
+3
-3
@@ -41,8 +41,8 @@ SAVE_ROOT = BASE_DIR / "captures"
|
||||
APP_CONFIG_PATH = BASE_DIR / "pgu5a_config.json"
|
||||
CONFIG_BACKUP_DIR = BASE_DIR / "backups" / "config"
|
||||
SYSTEMD_SERVICE_NAME = "pgu5a_base.service"
|
||||
APP_VERSION = "v2.0.4"
|
||||
APP_RELEASE_TAG = "v2.0.4"
|
||||
APP_VERSION = "v2.0.5"
|
||||
APP_RELEASE_TAG = "v2.0.5"
|
||||
SYNCTHING_SERVICE_NAME = "syncthing@root.service"
|
||||
SYNCTHING_CONFIG_PATH = Path("/root/.config/syncthing/config.xml")
|
||||
SYNCTHING_IDENTITY_PATHS = (
|
||||
@@ -8237,7 +8237,7 @@ INDEX_HTML = """<!DOCTYPE html>
|
||||
const status = String(item.status || 'NA').toUpperCase();
|
||||
const statusText = statusLabels[status] || status;
|
||||
const stateClass = status === 'CONNECTED' ? 'ms602-state-ok' : ['OPENING', 'RECOVERING'].includes(status) ? 'ms602-state-warn' : 'ms602-state-error';
|
||||
const device = item.device_index === null || item.device_index === undefined ? '--' : `/dev/video${item.device_index}`;
|
||||
const device = item.device_index === null || item.device_index === undefined ? '--' : String(item.device_index);
|
||||
const response = Number.isFinite(Number(item.last_phase_response)) ? Number(item.last_phase_response).toFixed(2) : '--';
|
||||
const delta = Number.isFinite(Number(item.last_frame_delta)) ? Number(item.last_frame_delta).toFixed(1) : '--';
|
||||
const tearingRatio = Number.isFinite(Number(item.last_tearing_gradient_ratio)) ? Number(item.last_tearing_gradient_ratio).toFixed(2) : '--';
|
||||
|
||||
Reference in new issue
Block a user