界面改用「精密仪器工作台」布局:顶栏压缩、视图切布局、标定与回放面板不再裁切
- What: 品牌条 40→28px 并加 实时监测/历史回放/标定 导航;导航改为切换主界面三套布局(实时=2D图像+曲线、回放=自动全程浏览、标定=标定面板 880px+曲线,2D 图像整体缩小);传感器选择(传感器 / 传感器配置 两个带 tooltip 的下拉 + 产品徽标)移到状态轨最左侧,记录模式移入设置区;新增 RecordStatusChip(记录中时长、丢帧、写入异常)与「同一时刻只有一个实心按钮」(新增 dangerOutline 描边危险样式);三轴读数移到曲线上方(16pt 等宽)、只保留最下方时间轴、网格淡化、全程浏览条可拖动;三轴配色统一为蓝/橙/绿并把语义色对比度审计扩展到 toolbar_bg;箭头页脚显示放大倍率与有效区域,深度模式才显示色条与范围;左侧面板改名「2D 图像」且固定显示图像宽高比;标定面板加纵向滚动区、九按钮分两行、六列表头 ResizeToContents;PlaybackDialog 补上从未调用的 retranslate;main() 在事件循环结束后 flush 日志并 os._exit,避免设备 SDK 原生线程把进程挂在解释器收尾。 - Why: 评审提出的 7 点:顶部占高与装饰过多、记录状态不突出、配置切换看不懂且藏得太深、切视图应换主界面布局、标定与回放面板文字被裁、关窗后命令行不退出、2D 图像无固定宽高比且名字不符。 - Verification: ui_check.py(430 项,新增 top area / instrument panels / clean shutdown 段,含中英×1280/1440 的轨不挤压检查)、test_ui_smoke.py(57 项,新增视图切换、标定不裁切、2D 宽高比、回放按钮文字、传感器选择器等用例)、drive_shared.py(146 项)、locale_studio.py(261 键齐全、zh==en、prefs 对齐)、reproduce.py、ui_snapshot.py 四张复核图。 - Not in this change: 录制文件格式、CSV/MP4 写入路径与记录通道数据流不变;三维面板仍是占位符;回放对话框(含离线深度重算)本身只修了按钮文字。
This commit is contained in:
Binary file not shown.
|
Before Width: | Height: | Size: 2.0 MiB After Width: | Height: | Size: 2.0 MiB |
@@ -7,7 +7,13 @@
|
||||
},
|
||||
"brand": {
|
||||
"name": "ORISYS",
|
||||
"tagline": "DieDong Technology"
|
||||
"tagline": "DieDong Technology",
|
||||
"nav_live": "Live",
|
||||
"nav_live_tip": "Current view: live monitoring. Click to leave history browsing.",
|
||||
"nav_playback": "Replay",
|
||||
"nav_playback_tip": "Open a recording: video, curves and one shared cursor",
|
||||
"nav_calibration": "Calibration",
|
||||
"nav_calibration_tip": "Show the calibration panel"
|
||||
},
|
||||
"menu": {
|
||||
"file": "File",
|
||||
@@ -25,6 +31,7 @@
|
||||
"calibration_panel": "Calibration panel",
|
||||
"finger_3d": "Finger 3D view",
|
||||
"show_fps": "Show FPS",
|
||||
"settings": "Settings area",
|
||||
"plot_settings": "Plot settings…",
|
||||
"rotate_arrows": "Rotate arrows 90°",
|
||||
"run": "Run / Stop",
|
||||
@@ -72,19 +79,23 @@
|
||||
"reset": "Reset",
|
||||
"units": "Units",
|
||||
"units_newton": "Newton",
|
||||
"units_raw": "Raw"
|
||||
"units_raw": "Raw",
|
||||
"settings": "Settings",
|
||||
"settings_tip": "Show or hide the source, camera, unit and product settings"
|
||||
},
|
||||
"units": {
|
||||
"newton_short": "N",
|
||||
"raw_short": "raw"
|
||||
},
|
||||
"sensor": {
|
||||
"type": "Product",
|
||||
"config": "Config",
|
||||
"type": "Sensor",
|
||||
"config": "Sensor config",
|
||||
"type_tip": "Pick the product/sensor: box, mini or finger. It decides which config files and algorithm parameters exist.",
|
||||
"config_tip": "The algorithm config file (config/*.json) this sensor uses. Switching the sensor switches the available configs with it.",
|
||||
"thumb_placeholder": "Product model"
|
||||
},
|
||||
"panels": {
|
||||
"arrow": "2D arrows",
|
||||
"arrow": "2D image",
|
||||
"view_arrows_pure": "Arrows",
|
||||
"view_arrows_stitched": "Arrows / Captured",
|
||||
"view_depth": "Depth map",
|
||||
@@ -93,6 +104,12 @@
|
||||
"arrow_empty_tip": "The deformation arrow image appears here while running or previewing",
|
||||
"depth_unavailable": "No depth data for this frame\n(not a depth of zero, and no silent fallback to the processed image)",
|
||||
"depth_scale": "Depth scale {low} – {high}",
|
||||
"arrow_scale": "Display ×{factor}",
|
||||
"arrow_scale_tip": "Display magnification of the relative displacement: the arrows are drawn from the algorithm output of the captured image, with the measured displacement multiplied by this factor and capped at 0.8 of the grid spacing (a capped arrow no longer shows its true factor).",
|
||||
"arrow_pipeline": "Captured image → algorithm output",
|
||||
"arrow_pipeline_tip": "Arrows are drawn over the algorithm output, not over the raw camera frame: points below the threshold get no arrow",
|
||||
"arrow_area_masked": "Valid area",
|
||||
"arrow_area_full": "Full frame",
|
||||
"depth_scale_tip": "Fixed for this session: the range is latched to the first frame that carried depth so frames stay comparable. Grey marks samples with no depth.",
|
||||
"plots": "Force Charts",
|
||||
"cal": "Calibration",
|
||||
@@ -104,6 +121,11 @@
|
||||
"fn": "FN",
|
||||
"fx": "FX",
|
||||
"fy": "FY",
|
||||
"fn_name": "Normal force",
|
||||
"fx_name": "Shear X",
|
||||
"fy_name": "Shear Y",
|
||||
"window_readout": "{start} – {end} s / {total} s total",
|
||||
"window_tip": "Drag the highlighted region to move the window: this strip is the timeline of the whole session",
|
||||
"no_data": "—",
|
||||
"mode_follow": "Following live",
|
||||
"mode_browse": "Browsing history (display paused; capture and recording continue)",
|
||||
@@ -188,7 +210,17 @@
|
||||
"finished_with_problems": "Recording finished with problems: {detail}",
|
||||
"closing": "Closing the recording files…",
|
||||
"failed_state": "The recording failed (see the summary and the log)",
|
||||
"alarm": "Recording problem: {detail}"
|
||||
"alarm": "Recording problem: {detail}",
|
||||
"state_idle": "No recording",
|
||||
"state_recording": "Recording {duration}",
|
||||
"state_closing": "Closing files…",
|
||||
"state_error": "Write error ({count})",
|
||||
"state_done": "Last recording: {frames} frames",
|
||||
"dropped": "{count} dropped",
|
||||
"strip_idle": "This session has not started a recording yet",
|
||||
"strip_no_error": "none",
|
||||
"strip_no_path": "not created yet",
|
||||
"strip_tip": "Recording state: {state}\nFrames {frames} / segments {segments} / duration {duration}\nDropped {dropped} (data {dropped_data}, video {dropped_video}, gaps {dropped_gaps})\nWrite errors {errors}\nLast error: {detail}\nOutput directory {path}"
|
||||
},
|
||||
"cal": {
|
||||
"weight": "Weight (N)",
|
||||
@@ -284,8 +316,18 @@
|
||||
"ready": "Ready",
|
||||
"phase_idle": "Idle",
|
||||
"phase_connecting": "Connecting",
|
||||
"phase_running": "Running",
|
||||
"phase_running": "Acquiring",
|
||||
"phase_error": "Error",
|
||||
"rail_camera": "Camera {id}",
|
||||
"rail_video": "Video file",
|
||||
"data_valid": "Data valid",
|
||||
"data_invalid": "{count} invalid sample(s)",
|
||||
"calibrated": "Calibrated",
|
||||
"calibrated_all": "Calibrated · 3 axes",
|
||||
"calibrated_axes": "Calibrated · {axes}",
|
||||
"uncalibrated": "Uncalibrated",
|
||||
"config_none": "no config",
|
||||
"device_label": "config {config}",
|
||||
"camera_none": "No cameras found",
|
||||
"camera_found": "Found {count} camera(s): {names}",
|
||||
"preview_started": "Preview started (camera {camera_id})",
|
||||
|
||||
@@ -7,7 +7,13 @@
|
||||
},
|
||||
"brand": {
|
||||
"name": "ORISYS",
|
||||
"tagline": "叠动科技"
|
||||
"tagline": "叠动科技",
|
||||
"nav_live": "实时监测",
|
||||
"nav_live_tip": "当前视图:实时监测。点击可退出历史浏览。",
|
||||
"nav_playback": "历史回放",
|
||||
"nav_playback_tip": "打开一段录制:视频、曲线与同一游标",
|
||||
"nav_calibration": "标定",
|
||||
"nav_calibration_tip": "显示标定面板"
|
||||
},
|
||||
"menu": {
|
||||
"file": "文件",
|
||||
@@ -25,6 +31,7 @@
|
||||
"calibration_panel": "标定面板",
|
||||
"finger_3d": "手指 3D 视图",
|
||||
"show_fps": "显示 FPS",
|
||||
"settings": "设置区",
|
||||
"plot_settings": "绘图设置…",
|
||||
"rotate_arrows": "旋转箭头图 90°",
|
||||
"run": "运行 / 停止",
|
||||
@@ -72,19 +79,23 @@
|
||||
"reset": "重置",
|
||||
"units": "单位",
|
||||
"units_newton": "牛顿",
|
||||
"units_raw": "原始"
|
||||
"units_raw": "原始",
|
||||
"settings": "设置",
|
||||
"settings_tip": "展开或收起来源、摄像机、单位与产品配置"
|
||||
},
|
||||
"units": {
|
||||
"newton_short": "N",
|
||||
"raw_short": "raw"
|
||||
},
|
||||
"sensor": {
|
||||
"type": "产品",
|
||||
"config": "配置",
|
||||
"type": "传感器",
|
||||
"config": "传感器配置",
|
||||
"type_tip": "选择产品/传感器:box、mini、finger。它决定可用的配置文件与算法参数。",
|
||||
"config_tip": "该传感器使用的算法配置文件(config/*.json)。切换传感器会同时切换可选配置。",
|
||||
"thumb_placeholder": "产品型号"
|
||||
},
|
||||
"panels": {
|
||||
"arrow": "形变箭头",
|
||||
"arrow": "2D 图像",
|
||||
"view_arrows_pure": "箭头",
|
||||
"view_arrows_stitched": "箭头/采集图像",
|
||||
"view_depth": "深度图",
|
||||
@@ -93,6 +104,12 @@
|
||||
"arrow_empty_tip": "运行或预览后在此显示形变箭头图",
|
||||
"depth_unavailable": "本帧没有深度数据\n(不是深度为零,也未回退显示普通形变图)",
|
||||
"depth_scale": "深度色标 {low} – {high}",
|
||||
"arrow_scale": "放大 ×{factor}",
|
||||
"arrow_scale_tip": "相对位移的显示放大倍率:箭头由原始采集图像经算法输出,长度按测量位移放大后绘制,上限为网格间距的 0.8 倍;触顶的箭头不再呈现真实倍率。",
|
||||
"arrow_pipeline": "原始图像 → 算法输出",
|
||||
"arrow_pipeline_tip": "箭头画在算法输出上,不是相机原始帧:阈值以下的区域不画箭头",
|
||||
"arrow_area_masked": "有效区域",
|
||||
"arrow_area_full": "全画幅",
|
||||
"depth_scale_tip": "本会话固定色标:色标范围锁定在首个有效深度帧,便于跨帧比较;灰色区域表示无深度数据",
|
||||
"plots": "力曲线图",
|
||||
"cal": "标定",
|
||||
@@ -104,6 +121,11 @@
|
||||
"fn": "FN",
|
||||
"fx": "FX",
|
||||
"fy": "FY",
|
||||
"fn_name": "法向力",
|
||||
"fx_name": "切向力 X",
|
||||
"fy_name": "切向力 Y",
|
||||
"window_readout": "{start} – {end} s / 全程 {total} s",
|
||||
"window_tip": "拖动高亮区域即可移动视窗;这是整段会话的时间轴",
|
||||
"no_data": "—",
|
||||
"mode_follow": "跟随实时",
|
||||
"mode_browse": "浏览历史(显示暂停,采集与记录继续)",
|
||||
@@ -188,7 +210,17 @@
|
||||
"finished_with_problems": "记录完成,但存在问题: {detail}",
|
||||
"closing": "正在关闭记录文件…",
|
||||
"failed_state": "记录已失败(详见摘要与日志)",
|
||||
"alarm": "记录异常: {detail}"
|
||||
"alarm": "记录异常: {detail}",
|
||||
"state_idle": "尚未记录",
|
||||
"state_recording": "记录中 {duration}",
|
||||
"state_closing": "正在写入…",
|
||||
"state_error": "写入异常({count})",
|
||||
"state_done": "上次记录 {frames} 帧",
|
||||
"dropped": "丢帧 {count}",
|
||||
"strip_idle": "本次会话还没有开始记录",
|
||||
"strip_no_error": "无",
|
||||
"strip_no_path": "尚未创建",
|
||||
"strip_tip": "记录状态: {state}\n帧 {frames} / 分段 {segments} / 时长 {duration}\n丢帧 {dropped}(数据 {dropped_data}、视频 {dropped_video}、空洞 {dropped_gaps})\n写入错误 {errors}\n最近错误: {detail}\n输出目录 {path}"
|
||||
},
|
||||
"cal": {
|
||||
"weight": "砝码重量 (N)",
|
||||
@@ -284,8 +316,18 @@
|
||||
"ready": "就绪",
|
||||
"phase_idle": "空闲",
|
||||
"phase_connecting": "连接中",
|
||||
"phase_running": "运行中",
|
||||
"phase_running": "采集中",
|
||||
"phase_error": "出错",
|
||||
"rail_camera": "摄像机 {id}",
|
||||
"rail_video": "视频文件",
|
||||
"data_valid": "数据有效",
|
||||
"data_invalid": "无效样本 {count}",
|
||||
"calibrated": "已标定",
|
||||
"calibrated_all": "已标定 · 三轴",
|
||||
"calibrated_axes": "已标定 · {axes}",
|
||||
"uncalibrated": "未标定",
|
||||
"config_none": "未选配置",
|
||||
"device_label": "配置 {config}",
|
||||
"camera_none": "未发现摄像机",
|
||||
"camera_found": "发现 {count} 个摄像机: {names}",
|
||||
"preview_started": "预览已启动(摄像机 {camera_id})",
|
||||
|
||||
@@ -19,5 +19,7 @@
|
||||
"plot_shear_raw_max": 500000.0,
|
||||
"image_view_mode": "arrows_pure",
|
||||
"arrow_rotation_deg": 90,
|
||||
"settings_expanded": false,
|
||||
"view_preset": "custom",
|
||||
"splitter_sizes": [340, 480, 400]
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user