界面改用「精密仪器工作台」布局:顶栏压缩、视图切布局、标定与回放面板不再裁切
- 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:
@@ -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})",
|
||||
|
||||
Reference in New Issue
Block a user