From e276b5de0fd6b034e25c14d146979f167cf1e0ff Mon Sep 17 00:00:00 2001 From: ykcheungab Date: Sun, 20 Sep 2026 21:15:39 +0800 Subject: [PATCH] autocal layout first design --- README.md | 27 +- apps/autocal/README.md | 142 + apps/autocal/config/bas/ECAT.bas | 103 + apps/autocal/config/bas/RTEX.bas | 103 + apps/autocal/config/locales/en_US.json | 254 + apps/autocal/config/locales/zh_CN.json | 254 + apps/autocal/config/preferences.default.json | 50 + apps/autocal/docs/workflow.md | 335 ++ apps/autocal/pyproject.toml | 26 + apps/autocal/run.py | 25 + apps/autocal/src/orisys_autocal/__init__.py | 12 + apps/autocal/src/orisys_autocal/main.py | 126 + .../src/orisys_autocal/motion/__init__.py | 58 + .../src/orisys_autocal/motion/errors.py | 77 + .../src/orisys_autocal/motion/models.py | 180 + .../src/orisys_autocal/motion/poller.py | 312 ++ .../src/orisys_autocal/motion/service.py | 670 +++ .../src/orisys_autocal/motion/transport.py | 467 ++ .../src/orisys_autocal/motion/units.py | 72 + .../autocal/src/orisys_autocal/preferences.py | 179 + .../autocal/src/orisys_autocal/ui/__init__.py | 17 + .../src/orisys_autocal/ui/axis_panel.py | 611 +++ .../src/orisys_autocal/ui/axis_readout.py | 170 + .../src/orisys_autocal/ui/brand_bar.py | 103 + .../src/orisys_autocal/ui/bus_data_panel.py | 305 ++ .../src/orisys_autocal/ui/bus_panel.py | 174 + .../src/orisys_autocal/ui/connection_panel.py | 218 + .../src/orisys_autocal/ui/sequence_panel.py | 487 ++ .../src/orisys_autocal/ui/status_strip.py | 424 ++ apps/autocal/src/orisys_autocal/ui/window.py | 913 ++++ .../src/orisys_autocal/ui/workspace.py | 130 + apps/autocal/tests/conftest.py | 137 + apps/autocal/tests/test_binding_purity.py | 185 + apps/autocal/tests/test_errors.py | 54 + apps/autocal/tests/test_layout_shell.py | 469 ++ apps/autocal/tests/test_locales_autocal.py | 88 + apps/autocal/tests/test_motion_service.py | 328 ++ apps/autocal/tests/test_panel_smoke.py | 331 ++ apps/autocal/tests/test_poller.py | 233 + apps/autocal/tests/test_units.py | 73 + apps/autocal/tools/layout_mockup.py | 1010 ++++ apps/autocal/tools/panel_check.py | 427 ++ apps/autocal/tools/panel_snapshot.py | 144 + apps/internal/README.md | 12 +- apps/studio/config/locales/en_US.json | 12 + apps/studio/config/locales/zh_CN.json | 12 + apps/studio/config/preferences.default.json | 1 + .../config/sensors/box/force_calibration.json | 18 +- .../scene/finger-display-1.0.0.oryscene | Bin 57066 -> 715388 bytes apps/studio/src/orisys_studio/app_window.py | 61 + .../studio/src/orisys_studio/display_prefs.py | 43 + .../src/orisys_studio/scene3d/adapters.py | 26 + .../src/orisys_studio/scene3d/coordinator.py | 17 +- .../src/orisys_studio/scene3d/gl_backend.py | 168 +- .../studio/src/orisys_studio/scene3d/panel.py | 30 + .../studio/src/orisys_studio/scene3d/prefs.py | 22 + apps/studio/src/orisys_studio/scene3d/view.py | 6 +- .../src/orisys_studio/ui/force_plots.py | 102 +- apps/studio/tests/test_scene3d_overlays.py | 115 + apps/studio/tests/test_scene3d_view.py | 12 + build/README.md | 5 + .../studio-finger-visual-feedback-plan.md | 159 + pyproject.toml | 7 +- shared/resources/zmotion/x64/README.md | 42 + shared/resources/zmotion/x64/zauxdll.dll | Bin 0 -> 4410880 bytes shared/resources/zmotion/x64/zauxdll2.h | 4279 +++++++++++++++++ shared/resources/zmotion/x64/zmotion.dll | Bin 0 -> 3596288 bytes .../orisys_app_shared/acquisition/arrows.py | 142 +- .../acquisition/finger_worker.py | 34 + .../acquisition/image_backend.py | 21 +- .../orisys_app_shared/acquisition/models.py | 18 + .../src/orisys_app_shared/force/__init__.py | 8 + .../orisys_app_shared/force/presentation.py | 288 ++ shared/src/orisys_app_shared/paths.py | 66 +- shared/src/orisys_app_shared/prefs/store.py | 30 +- .../src/orisys_app_shared/scene3d/__init__.py | 6 + .../src/orisys_app_shared/scene3d/composer.py | 90 + .../orisys_app_shared/scene3d/contracts.py | 96 + .../src/orisys_app_shared/scene3d/legacy.py | 11 + .../src/orisys_app_shared/scene3d/overlays.py | 501 ++ .../src/orisys_app_shared/scene3d/package.py | 32 +- .../orisys_app_shared/scene3d/synthetic.py | 15 + .../scene3d/visual_policy.py | 231 + .../orisys_app_shared/theme/colors_dark.json | 2 + .../orisys_app_shared/theme/colors_light.json | 2 + .../src/orisys_app_shared/zmotion/__init__.py | 45 + .../src/orisys_app_shared/zmotion/client.py | 468 ++ .../src/orisys_app_shared/zmotion/loader.py | 143 + shared/tests/test_force_presentation.py | 87 + shared/tests/test_image_backend.py | 1 + shared/tests/test_overlays.py | 73 + shared/tests/test_visual_policy.py | 73 + 92 files changed, 18071 insertions(+), 64 deletions(-) create mode 100644 apps/autocal/README.md create mode 100644 apps/autocal/config/bas/ECAT.bas create mode 100644 apps/autocal/config/bas/RTEX.bas create mode 100644 apps/autocal/config/locales/en_US.json create mode 100644 apps/autocal/config/locales/zh_CN.json create mode 100644 apps/autocal/config/preferences.default.json create mode 100644 apps/autocal/docs/workflow.md create mode 100644 apps/autocal/pyproject.toml create mode 100644 apps/autocal/run.py create mode 100644 apps/autocal/src/orisys_autocal/__init__.py create mode 100644 apps/autocal/src/orisys_autocal/main.py create mode 100644 apps/autocal/src/orisys_autocal/motion/__init__.py create mode 100644 apps/autocal/src/orisys_autocal/motion/errors.py create mode 100644 apps/autocal/src/orisys_autocal/motion/models.py create mode 100644 apps/autocal/src/orisys_autocal/motion/poller.py create mode 100644 apps/autocal/src/orisys_autocal/motion/service.py create mode 100644 apps/autocal/src/orisys_autocal/motion/transport.py create mode 100644 apps/autocal/src/orisys_autocal/motion/units.py create mode 100644 apps/autocal/src/orisys_autocal/preferences.py create mode 100644 apps/autocal/src/orisys_autocal/ui/__init__.py create mode 100644 apps/autocal/src/orisys_autocal/ui/axis_panel.py create mode 100644 apps/autocal/src/orisys_autocal/ui/axis_readout.py create mode 100644 apps/autocal/src/orisys_autocal/ui/brand_bar.py create mode 100644 apps/autocal/src/orisys_autocal/ui/bus_data_panel.py create mode 100644 apps/autocal/src/orisys_autocal/ui/bus_panel.py create mode 100644 apps/autocal/src/orisys_autocal/ui/connection_panel.py create mode 100644 apps/autocal/src/orisys_autocal/ui/sequence_panel.py create mode 100644 apps/autocal/src/orisys_autocal/ui/status_strip.py create mode 100644 apps/autocal/src/orisys_autocal/ui/window.py create mode 100644 apps/autocal/src/orisys_autocal/ui/workspace.py create mode 100644 apps/autocal/tests/conftest.py create mode 100644 apps/autocal/tests/test_binding_purity.py create mode 100644 apps/autocal/tests/test_errors.py create mode 100644 apps/autocal/tests/test_layout_shell.py create mode 100644 apps/autocal/tests/test_locales_autocal.py create mode 100644 apps/autocal/tests/test_motion_service.py create mode 100644 apps/autocal/tests/test_panel_smoke.py create mode 100644 apps/autocal/tests/test_poller.py create mode 100644 apps/autocal/tests/test_units.py create mode 100644 apps/autocal/tools/layout_mockup.py create mode 100644 apps/autocal/tools/panel_check.py create mode 100644 apps/autocal/tools/panel_snapshot.py create mode 100644 apps/studio/tests/test_scene3d_overlays.py create mode 100644 docs/architecture/studio-finger-visual-feedback-plan.md create mode 100644 shared/resources/zmotion/x64/README.md create mode 100644 shared/resources/zmotion/x64/zauxdll.dll create mode 100644 shared/resources/zmotion/x64/zauxdll2.h create mode 100644 shared/resources/zmotion/x64/zmotion.dll create mode 100644 shared/src/orisys_app_shared/force/presentation.py create mode 100644 shared/src/orisys_app_shared/scene3d/overlays.py create mode 100644 shared/src/orisys_app_shared/scene3d/visual_policy.py create mode 100644 shared/src/orisys_app_shared/zmotion/__init__.py create mode 100644 shared/src/orisys_app_shared/zmotion/client.py create mode 100644 shared/src/orisys_app_shared/zmotion/loader.py create mode 100644 shared/tests/test_force_presentation.py create mode 100644 shared/tests/test_overlays.py create mode 100644 shared/tests/test_visual_policy.py diff --git a/README.md b/README.md index ec87487..bf01a06 100644 --- a/README.md +++ b/README.md @@ -2,18 +2,35 @@ Desktop applications that consume the Orisys SDK. -| App | Status | -|-----|--------| -| `apps/studio` | Scaffold shell (theme / locale / prefs / logging) | -| `apps/internal` | Stub for future calibration & automated testing | +| App | Status | Qt binding | +|-----|--------|-----------| +| `apps/studio` | Scaffold shell (theme / locale / prefs / logging) | PyQt5 | +| `apps/autocal` | Internal 5-axis calibration platform control | **PySide6** | +| `apps/internal` | Stub, superseded by `apps/autocal` | — | + +The two shipped apps use different Qt bindings on purpose. PyQt5's free option +is **GPLv3-or-commercial**; PySide6 is **LGPLv3**, which is why the internal +closed-source tool uses PySide6 and why `shared/` must import neither binding. +Migrating `apps/studio` to PySide6 is a separate, build-validated change. ## Layout -- `shared/` — common paths, prefs, theme, i18n, logging +- `shared/` — common paths, prefs, theme, i18n, logging, and the ZMotion client +- `shared/resources/zmotion/` — vendored ZMotion runtime DLLs (internal use only) - `apps/studio/config/` — locales, default prefs, editable `sensors/` copies - `apps/studio/outputs/` — generated logs and calibration exports (gitignored) +- `apps/autocal/` — internal platform control; see `apps/autocal/README.md` - `build/` — Windows PyInstaller packaging (`build/studio/build.ps1`) +### Selecting which app's paths resolve + +`orisys_app_shared.paths` reads `ORISYS_APP_ID` (an `apps/` directory name) to +decide which product's `config/`, `preference.json` and `outputs/` a process +owns. Each app's launcher sets it before importing the shared package; when it +is unset the studio is assumed, which keeps existing callers working unchanged. +A named app whose `config/` is missing raises rather than silently resolving +another product's tree. + ## Run (studio shell) ```powershell diff --git a/apps/autocal/README.md b/apps/autocal/README.md new file mode 100644 index 0000000..db27691 --- /dev/null +++ b/apps/autocal/README.md @@ -0,0 +1,142 @@ +# Orisys AutoCal + +Internal control application for the **5-axis calibration platform**, driving a +ZMotion ZMC bus controller (EtherCAT or RTEX) from the PC. + +Replaces the vendor example program it was ported from: + + D:\orisys_ws\zmotion\Python64\例程9-总线控制è¿�动 + +> **Internal use only.** AutoCal is not part of the customer installer. See +> "Do not ship this app" below. + +## What it does + +- **Connect** over Ethernet (with an IP scan), serial, PCI, local/simulated, or + a built-in **demo** transport that needs no hardware and no DLL. +- **Initialise the bus** by downloading `ECAT.bas` or `RTEX.bas` to the + controller, then follow the controller's own state machine to completion — or + to a timeout, with the vendor's diagnostic hint. +- **Read axis state** for all five drives at once: enable, axis type, pulse + equivalent, speed, acceleration, commanded and measured position (in user + units *and* millimetres), axis status word, motion and homing state. +- **Move**: enable/disable, jog, absolute and relative moves, stop, stop-all, + driver homing, clear a drive alarm. Every command is guarded — see below. +- **Exchange raw bus data**: EtherCAT object-dictionary (SDO) reads and writes, + and RTEX parameters. Each family is enabled only when the controller reports + that bus type. + +## Run it + +PySide6 only — Qt's LGPLv3 binding, so an internal closed-source tool needs no +licence purchase. (`PyQt5`, which the studio app uses, is GPLv3-or-commercial.) + +```powershell +# with the environment that already has PySide6 (Anaconda py310, for example) +$env:PYTHONPATH = "D:\orisys_ws\orisys-app\shared\src;D:\orisys_ws\orisys-app\apps\autocal\src" +python D:\orisys_ws\orisys-app\apps\autocal\run.py +``` + +Or with no controller attached at all: + +```powershell +python .\apps\autocal\run.py --demo +``` + +`run.py` sets `ORISYS_APP_ID=autocal` before importing anything from +`orisys_app_shared`, so this app's `config/`, `preference.json` and `outputs/` +resolve to `apps/autocal/` rather than the studio's. + +### Controller library + +The ZMotion runtime is vendored at `shared/resources/zmotion/x64/` (see the +README beside it for provenance). Point `ORISYS_ZMOTION_DLL_DIR` at another +directory to use a different build — on a motion controller, silently loading +the wrong runtime version is the kind of fault that looks like a working machine +until it moves, so the override is authoritative: if it does not contain +`zauxdll.dll`, the app refuses to connect instead of quietly falling back. + +## Safety model + +The guards live in `motion/service.py`, not in the UI, so they hold whatever +calls them: + +- **Motion is refused** while the bus is not initialised, while the axis is + unknown, or on a non-finite target — with a reason, never a silent no-op. +- **Homing needs a configured mode.** The vendor example pre-fills `17`, which + is one specific drive's mode; AutoCal starts at `0` and refuses, so the + operator chooses for the drive in front of them instead of inheriting a number + from another machine. +- **Homing is refused on RTEX**, as the vendor example itself does. +- **Disconnect stops the axes first** (the vendor program closes the handle and + leaves the platform coasting). +- **SDO/RTEX are gated by the reported bus type**, so a write can never be aimed + at the wrong family. +- **A failed read is marked, not zeroed.** `ZmotionValue.value_or_none` returns + `None` on failure; nothing silently treats a failed read's zero as a position. + +The displayed millimetre value is *derived* from the pulse equivalent +(bench-measured: `units=10` → 1000 user units = 2 mm). It is a display value, +not a calibrated length, and the UI says so. + +## Layout + +```text +apps/autocal/ + run.py # source-tree launcher + config/ + preferences.default.json # shipped defaults + locales/{zh_CN,en_US}.json + bas/{ECAT,RTEX}.bas # copies: the vendor needs a non-Chinese path + src/orisys_autocal/ + main.py # logging, locale, theme, window + preferences.py # AutoCal's own preference schema + motion/ # Qt-free except poller.py (the Qt worker bridge) + models.py errors.py units.py service.py transport.py poller.py + ui/ # window.py + one module per panel + tools/ # panel_check.py, panel_snapshot.py + tests/ +``` + +`motion/poller.py` is the only place a controller call can originate. It owns +the DLL handle on its own thread, so the vendor library's blocking calls (a ROM +write, a bus scan) never freeze the window and the ctypes handle is never shared +between threads. The UI talks to it through signals only. + +## Verify + +Both work with no display, no controller and no DLL: + +```powershell +python .\apps\autocal\tools\panel_check.py # 120 layout/theme/locale/gating checks +python .\apps\autocal\tools\panel_snapshot.py --demo --theme dark --out shot.png +python .\apps\autocal\tools\panel_snapshot.py --compare --out tabs.png # one image per tab +python .\apps\autocal\tools\layout_mockup.py --out layout.png # proposed layout, drawn +python -m pytest apps\autocal\tests # offscreen suite +``` + +`layout_mockup.py` is a **wireframe, not the application**: it paints the +proposed single-page layout with the shared theme tokens and imports nothing +from the app, so the layout can be reviewed and marked up without building the +panels. It draws the full page plus previews of the other workspace tabs in one +canvas. + +`panel_check.py` builds the real window in both themes at 1280×720, 1600×900 and +1920×1080, asserts that no widget escapes its parent, that motion is +unreachable before the bus is initialised, that the SDO/RTEX panels follow the +reported bus family, and then runs a full simulated session from `ECAT.bas`. + +The suite is written for **PySide6**. Where PySide6 is missing, the test modules +are skipped rather than failed: a broken environment should not look like a +broken application. `tests/test_binding_purity.py` enforces the binding policy +statically — no module may import PyQt5/PySide2/PyQt6, no module may use an +unscoped Qt enumerator (removed in PySide6), `shared/` may import no binding at +all, and the controller interface must stay importable headless. + +## Do not ship this app + +AutoCal is an internal tool. It is deliberately **not** packaged by +`build/studio`, whose PyInstaller spec must not learn about the ZMotion runtime +DLLs, and it is not in the customer installer. The ZMotion SDK is vendor-supplied +hardware support software with its own terms; do not redistribute those DLLs +with a customer product. diff --git a/apps/autocal/config/bas/ECAT.bas b/apps/autocal/config/bas/ECAT.bas new file mode 100644 index 0000000..da5fe16 --- /dev/null +++ b/apps/autocal/config/bas/ECAT.bas @@ -0,0 +1,103 @@ + +'*******************************************************ECAT×ÜÏß³õʼ»¯ +''''''''' + +global CONST BUS_TYPE = 0 '×ÜÏßÀàÐÍ¡£ÓÃÓÚÉÏλ»úÇø·Öµ±Ç°Ä£Ê½ +global CONST MAX_AXISNUM = 32 '×î´óÖáÊý +global CONST Bus_Slot = 0 '²ÛλºÅ0 +global CONST Bus_AxisStart = 0 '×ÜÏßÖáÆðʼÖáºÅ + +global Bus_InitStatus '×ÜÏß³õʼ»¯Íê³É״̬ +Bus_InitStatus = -1 +global Bus_TotalAxisnum '¼ì²éɨÃèµÄ×ÜÖáÊý + +delay(3000) 'ÑÓʱ3SµÈ´ýÇý¶¯Æ÷Éϵç +'**********************³õʼ»¯ECAT×ÜÏß +Ecat_Init() + +end + +global sub Ecat_Init() + for i=0 to MAX_AXISNUM - 1 '³õʼ»¯»¹Ô­ÖáÀàÐÍ + AXIS_ENABLE(i) = 0 + atype(i)=0 + next + + Bus_InitStatus = -1 + Bus_TotalAxisnum = 0 + SLOT_STOP(Bus_Slot) + delay(200) + slot_scan(Bus_Slot) '¿ªÊ¼É¨Ãè + if return then + + ?"×ÜÏßɨÃè³É¹¦","Á¬½ÓÉ豸Êý£º"NODE_COUNT(Bus_Slot) + ? + ?"¿ªÊ¼Ó³ÉäÖáºÅ" + for i=0 to NODE_COUNT(Bus_Slot)-1 '±éÀú×ÜÏßÏÂËùÓдÓÕ¾½Úµã + + if NODE_AXIS_COUNT(Bus_Slot,i) <>0 then 'Åжϵ±Ç°½ÚµãÊÇ·ñÓеç»ú + for j=0 to NODE_AXIS_COUNT(Bus_Slot,i)-1 + AXIS_ADDRESS(Bus_AxisStart+i)=Bus_TotalAxisnum+1 'Ó³ÉäÖáºÅ + ATYPE(Bus_AxisStart+i)=65 'ÉèÖÿØÖÆÄ£Ê½ 65-λÖà 66-ËÙ¶È 67-ת¾Ø + DRIVE_PROFILE(Bus_AxisStart+i)= 4 'ÉèÖÃPROFILE¹¦ÄÜ + disable_group(Bus_AxisStart+i) 'ÿÖáµ¥¶À·Ö×é + + DRIVE_IO(Bus_AxisStart+i) = 128 + (Bus_AxisStart+i)*16 'Ó³ÉäÇý¶¯Æ÷ÉϵÄIO״̬ + REV_IN(Bus_AxisStart+i) = 128 + (Bus_AxisStart+i)*16 + FWD_IN(Bus_AxisStart+i) = 129 + (Bus_AxisStart+i)*16 + DATUM_IN(Bus_AxisStart+i) = 130 + (Bus_AxisStart+i)*16 + INVERT_IN(128 + (Bus_AxisStart+i)*16,ON) + INVERT_IN(129 + (Bus_AxisStart+i)*16,ON) + INVERT_IN(130 + (Bus_AxisStart+i)*16,ON) + + Bus_TotalAxisnum=Bus_TotalAxisnum+1 '×ÜÖáÊý+1 + next + endif + + next + + ?"ÖáºÅÓ³ÉäÍê³É","Á¬½Ó×ÜÖáÊý£º"Bus_TotalAxisnum + wa 2000 + + SLOT_START(Bus_Slot) 'Æô¶¯×ÜÏß + if return then + ?"×ÜÏß¿ªÆô³É¹¦" + + ?"¿ªÊ¼Çå³ýÇý¶¯Æ÷´íÎó(¸ù¾ÝÇý¶¯Æ÷Êý¾Ý×ÖµäÉèÖÃ)" + for i= Bus_AxisStart to Bus_AxisStart + Bus_TotalAxisnum - 1 + + DRIVE_CONTROLWORD(i)=128 '¸ù¾ÝÇý¶¯Æ÷Êý¾Ý×Öµä + wa 100 + DRIVE_CONTROLWORD(i)=6 + wa 100 + DRIVE_CONTROLWORD(i)=15 + wa 100 + next + + ?"Çý¶¯Æ÷´íÎóÇå³ýÍê³É" + wa 100 + + ?"Çå³ý¿ØÖÆÆ÷´íÎó" + datum(0) + DRIVE_CLEAR(0) + ?"¿ØÖÆÆ÷´íÎóÇå³ýÍê³É" + wa 100 + + ?"ÖáʹÄÜ×¼±¸" + for i= Bus_AxisStart to Bus_AxisStart + Bus_TotalAxisnum - 1 + base(i) + AXIS_ENABLE=1 + next + wdog=1 'ʹÄÜ×Ü¿ª¹Ø + Bus_InitStatus = 1 + ?"ÖáʹÄÜÍê³É" + else + ?"×ÜÏß¿ªÆôʧ°Ü" + Bus_InitStatus = 0 + endif + + else + ?"×ÜÏßɨÃèʧ°Ü" + Bus_InitStatus = 0 + endif +end sub \ No newline at end of file diff --git a/apps/autocal/config/bas/RTEX.bas b/apps/autocal/config/bas/RTEX.bas new file mode 100644 index 0000000..1a9a481 --- /dev/null +++ b/apps/autocal/config/bas/RTEX.bas @@ -0,0 +1,103 @@ + +'*******************************************************RTEX×ÜÏß³õʼ»¯ +''''''''' +global CONST BUS_TYPE = 1 '×ÜÏßÀàÐÍ¡£ÓÃÓÚÉÏλ»úÇø·Öµ±Ç°Ä£Ê½ +global CONST MAX_AXISNUM = 32 '×î´óÖáÊý +global CONST Bus_Slot = 0 '²ÛλºÅ0 +global CONST Bus_AxisStart = 0 '×ÜÏßÖáÆðʼÖáºÅ + +global Bus_InitStatus '×ÜÏß³õʼ»¯Íê³É״̬ +Bus_InitStatus = -1 +global Bus_TotalAxisnum '¼ì²éɨÃèµÄ×ÜÖáÊý + +delay(3000) 'ÑÓʱ3SµÈ´ýÇý¶¯Æ÷Éϵç +'**********************³õʼ»¯RTEX×ÜÏß +Rtex_Init() + +end + +global sub Rtex_Init() + + for i=0 to MAX_AXISNUM - 1 '³õʼ»¯»¹Ô­ÖáÀàÐÍ + AXIS_ENABLE(i) = 0 + atype(i)=0 + next + + Bus_InitStatus = -1 + Bus_TotalAxisnum = 0 + SLOT_STOP(Bus_Slot) + delay(200) + slot_scan(Bus_Slot) '¿ªÊ¼É¨Ãè + if return then + + ?"×ÜÏßɨÃè³É¹¦","Á¬½ÓÉ豸Êý£º"NODE_COUNT(Bus_Slot) + ? + ?"¿ªÊ¼Ó³ÉäÖáºÅ" + for i=0 to NODE_COUNT(Bus_Slot)-1 '±éÀú×ÜÏßÏÂËùÓдÓÕ¾½Úµã + + if NODE_AXIS_COUNT(Bus_Slot,i) <>0 then 'Åжϵ±Ç°½ÚµãÊÇ·ñÓеç»ú + for j=0 to NODE_AXIS_COUNT(Bus_Slot,i)-1 + AXIS_ADDRESS(Bus_AxisStart+i)=Bus_TotalAxisnum+1 'Ó³ÉäÖáºÅ + ATYPE(Bus_AxisStart+i)=50 'ÉèÖÿØÖÆÄ£Ê½ 50-λÖà 51-ËÙ¶È 52-ת¾Ø + DRIVE_PROFILE(Bus_AxisStart+i)= 4 'ÉèÖÃPROFILE¹¦ÄÜ + disable_group(Bus_AxisStart+i) 'ÿÖáµ¥¶À·Ö×é + + DRIVE_IO(Bus_AxisStart+i) = 128 + (Bus_AxisStart+i)*16 'Ó³ÉäÇý¶¯Æ÷ÉϵÄIO״̬ + REV_IN(Bus_AxisStart+i) = 128 + (Bus_AxisStart+i)*16 + FWD_IN(Bus_AxisStart+i) = 129 + (Bus_AxisStart+i)*16 + DATUM_IN(Bus_AxisStart+i) = 130 + (Bus_AxisStart+i)*16 + INVERT_IN(128 + (Bus_AxisStart+i)*16,ON) + INVERT_IN(129 + (Bus_AxisStart+i)*16,ON) + INVERT_IN(130 + (Bus_AxisStart+i)*16,ON) + + Bus_TotalAxisnum=Bus_TotalAxisnum+1 '×ÜÖáÊý+1 + next + endif + + next + + ?"ÖáºÅÓ³ÉäÍê³É","Á¬½Ó×ÜÖáÊý£º"Bus_TotalAxisnum + wa 2000 + + SLOT_START(Bus_Slot) 'Æô¶¯×ÜÏß + if return then + ?"×ÜÏß¿ªÆô³É¹¦" + + ?"¿ªÊ¼Çå³ýÇý¶¯Æ÷´íÎó(¸ù¾ÝÇý¶¯Æ÷Êý¾Ý×ÖµäÉèÖÃ)" + for i= Bus_AxisStart to Bus_AxisStart + Bus_TotalAxisnum - 1 + + DRIVE_CONTROLWORD(i)=128 '¸ù¾ÝÇý¶¯Æ÷Êý¾Ý×Öµä + wa 100 + DRIVE_CONTROLWORD(i)=6 + wa 100 + DRIVE_CONTROLWORD(i)=15 + wa 100 + next + + ?"Çý¶¯Æ÷´íÎóÇå³ýÍê³É" + wa 100 + + ?"Çå³ý¿ØÖÆÆ÷´íÎó" + datum(0) + DRIVE_CLEAR(0) + ?"¿ØÖÆÆ÷´íÎóÇå³ýÍê³É" + wa 100 + + ?"ÖáʹÄÜ×¼±¸" + for i= Bus_AxisStart to Bus_AxisStart + Bus_TotalAxisnum - 1 + base(i) + AXIS_ENABLE=1 + next + wdog=1 'ʹÄÜ×Ü¿ª¹Ø + Bus_InitStatus = 1 + ?"ÖáʹÄÜÍê³É" + else + ?"×ÜÏß¿ªÆôʧ°Ü" + Bus_InitStatus = 0 + endif + + else + ?"×ÜÏßɨÃèʧ°Ü" + Bus_InitStatus = 0 + endif +end sub \ No newline at end of file diff --git a/apps/autocal/config/locales/en_US.json b/apps/autocal/config/locales/en_US.json new file mode 100644 index 0000000..7aae0d5 --- /dev/null +++ b/apps/autocal/config/locales/en_US.json @@ -0,0 +1,254 @@ +{ + "app": { + "title": "Orisys AutoCal Platform Control", + "about_title": "About Orisys AutoCal", + "about_body": "Orisys AutoCal — internal controller for the 5-axis calibration platform\nVersion: {app_version}\nShared library: {shared_version} (API {api_version})\n\nQt binding: {binding}\nController library: {dll_dir}\nPreferences: {prefs_path}\n\nInternal use only.", + "internal_notice": "Internal tool: not shipped in the customer installer." + }, + "brand": { + "name": "ORISYS", + "detail": "Orisys Technology" + }, + "menu": { + "file": "File", + "open_bas": "Download BAS init program…", + "reveal_config": "Show config in Explorer…", + "quit": "Quit", + "view": "View", + "theme": "Theme", + "theme_dark": "Dark", + "theme_light": "Light", + "language": "Language", + "lang_zh": "简体中文", + "lang_en": "English", + "show_diagnostics": "Diagnostics", + "tabs": "Workspace", + "outputs": "Outputs folder", + "help": "Help", + "about": "About AutoCal" + }, + "connection": { + "title": "Controller connection", + "mode": "Connection", + "mode_eth": "Ethernet", + "mode_com": "Serial", + "mode_pci": "PCI card", + "mode_local": "Local / simulated", + "mode_demo": "Demo (no hardware)", + "ip": "IP", + "scan": "Scan IP", + "com": "COM port", + "card": "Card", + "local_string": "Connect string", + "open": "Connect", + "close": "Disconnect", + "status": "Status", + "state_open": "Connected", + "state_closed": "Not connected", + "state_connecting": "Connecting…", + "source": "Library", + "no_more": "The 『{mode}ã€� connection is not available yet." + }, + "bus": { + "title": "Bus initialisation", + "bas_path": "BAS file", + "choose": "Choose BAS…", + "download": "Download and initialise", + "reinit": "Re-initialise", + "type": "Bus type", + "type_ecat": "EtherCAT", + "type_rtex": "RTEX", + "type_unknown": "Unknown", + "state": "Init state", + "state_pending": "Not started", + "state_running": "Initialising…", + "state_ok": "Initialised", + "state_failed": "Initialisation failed", + "state_timeout": "Initialisation timed out", + "nodes": "Nodes", + "axes": "Axes", + "downloaded": "File downloaded; the controller will scan the bus after its delay", + "dialog_title": "Choose a BAS file" + }, + "axes": { + "title": "Axis motion", + "axis": "Axis", + "enable": "Enable", + "enable_on": "Enabled", + "enable_off": "Disabled", + "atype": "Type", + "units": "Units", + "speed": "Speed", + "accel": "Accel", + "dpos": "DPOS", + "mpos": "MPOS", + "dpos_mm": "DPOS (mm)", + "mpos_mm": "MPOS (mm)", + "status": "Status", + "motion": "Motion", + "motion_word": "Motion", + "idle": "Stopped", + "moving": "Moving", + "position_pair": "{value} ({mm} mm)", + "enable_all": "Enable all", + "disable_all": "Disable all", + "clear_alarm_all": "Clear all alarms", + "detail": "Axis {axis}: type {atype} · accel {accel} · feedback {mpos} ({mpos_mm} mm) · status {status} · {home}", + "detail_none": "Axis {axis}: no data yet (not connected or not initialised)", + "home_status": "Homing", + "home_ok": "Homed", + "home_pending": "Not homed", + "home_running": "Homing…", + "jog_fwd": "Fwd", + "jog_rev": "Rev", + "stop_all": "Stop all", + "stop": "Stop", + "target": "Target", + "move_abs": "Move abs", + "move_rel": "Move rel", + "home_mode": "Home mode", + "home_high": "Home speed", + "home_low": "Home creep", + "home_offset": "Home offset", + "clear_alarm": "Clear alarm", + "apply": "Apply", + "home": "Home", + "controls": "Actions", + "mm_derived_tip": "Millimetres are derived from the pulse equivalent: a display value, not a calibrated length.", + "enabled_count": "{on}/{total} axes enabled" + }, + "busdata": { + "title": "Bus data exchange", + "group": "Bus data (SDO / RTEX)", + "ecat": "EtherCAT (SDO)", + "rtex": "RTEX", + "node": "Node", + "index": "Index", + "subindex": "Subindex", + "type": "Type", + "value": "Value", + "read": "Read", + "write": "Write", + "axis": "Axis", + "parameter": "Parameter", + "last_result": "Last: {text}", + "not_available": "The current bus does not support this", + "read_ok": "Read: {value}", + "write_ok": "Written" + }, + "status": { + "motion": "Motion", + "ready": "Ready", + "poll_ok": "State refresh healthy", + "poll_paused": "State refresh paused", + "poll_stalled": "State refresh stalled", + "last_error": "Last error", + "none": "None", + "refused": "Refused", + "done": "Done", + "failed": "Failed", + "pause": "Pause refresh", + "resume": "Resume refresh", + "paused": "State refresh paused", + "alarm_short": "Alarm", + "axes_enabled": "{on}/{total} axes enabled", + "health_none": "Refresh —", + "health_age": "Read {ms} ms ago", + "health_paused": "Refresh paused", + "poll_every": "Refresh every {ms} ms" + }, + "run": { + "title": "Run", + "phase_idle": "Idle", + "phase_dry_run": "Dry run", + "phase_running": "Running", + "phase_paused": "Paused", + "phase_done": "Done", + "phase_failed": "Failed", + "step_of": "Point {done}/{total}", + "no_steps": "No points generated", + "elapsed_only": "Elapsed {elapsed}", + "elapsed_remaining": "Elapsed {elapsed} · about {remaining} left", + "run": "Run", + "pause": "Pause", + "abort": "Abort", + "abort_stopped": "Run aborted and all axes stopped.", + "not_implemented": "The runner belongs to phase P7 and is not implemented yet; abort is always available." + }, + "readout": { + "title": "Axis state" + }, + "workspace": { + "tab_axes": "Axis debug", + "tab_sequence": "Test sequence", + "tab_sensor": "Sensor", + "tab_surface": "Surface map", + "tab_points": "Calibration points", + "not_built": "Not built yet", + "reserved_sensor": "Sensor connection, live image and force curves will appear here: device and source selection, preview, and a compact version of the Studio curve view.", + "reserved_surface": "Multi-point calibration sensitivity will be drawn as a colour map on the sensor's 3D surface here: each point's sensitivity interpolated and coloured, with a legend and range.", + "reserved_points": "The calibration point table and capture controls will appear here: platform coordinates, reference load, sampling statistics and the resulting sensitivity." + }, + "sequence": { + "title": "Test sequence design", + "profile_title": "Point generation", + "preview_title": "Preview", + "validation_title": "Checks", + "points_title": "Calibration points", + "field_mode": "Surface mode", + "field_pitch": "Pitch (mm)", + "field_margin": "Margin (mm)", + "field_radius": "Radius (mm)", + "field_clear_height": "Clear height (mm)", + "field_approach_speed": "Approach speed (mm/s)", + "field_press_speed": "Press speed (mm/s)", + "field_press_depth": "Press depth (mm)", + "field_dwell": "Dwell (s)", + "field_settle": "Settle window (s)", + "field_repeats": "Repeats", + "field_order": "Point order", + "mode_flat": "Flat", + "mode_curved": "Curved", + "order_row": "Row-wise", + "order_serpentine": "Serpentine", + "order_distance": "By distance", + "preview_placeholder": "3D preview: sensor surface · calibration points · visiting order\n(implemented in the simulation phase)", + "preview_hint": "After generation, check here that each point is on the surface, inside travel, and confirmable by contact.", + "validation_pending": "No points generated yet.", + "check_on_surface": "On the surface", + "check_within_travel": "Within travel", + "check_contact_confirmable": "Contact confirmable", + "btn_generate": "Generate points", + "btn_simulate": "Simulate", + "btn_dry_run": "Dry run (no contact)", + "btn_save": "Save sequence…", + "btn_load": "Load sequence…", + "pending_tooltip": "This belongs to phase {phase} and is not implemented yet.", + "col_index": "#", + "col_x": "X (mm)", + "col_y": "Y (mm)", + "col_z": "Z (mm)", + "col_status": "Status", + "col_sensitivity": "Sensitivity (last)", + "col_samples": "Samples", + "col_actions": "Actions", + "not_generated": "—", + "status_pending": "Pending", + "points_hint": "Coordinates are generated and checked per point; they are not typed. A typed coordinate is one nothing has checked, and one wrong number ruins a run." + }, + "action": { + "ok": "Done", + "refused": "Refused", + "failed": "Failed" + }, + "diagnostics": { + "title": "Diagnostics", + "binding": "Qt binding", + "dll_dir": "Controller library", + "prefs": "Preferences", + "outputs": "Outputs", + "bas_loaded": "BAS loaded", + "yes": "Yes", + "no": "No" + } +} diff --git a/apps/autocal/config/locales/zh_CN.json b/apps/autocal/config/locales/zh_CN.json new file mode 100644 index 0000000..2094242 --- /dev/null +++ b/apps/autocal/config/locales/zh_CN.json @@ -0,0 +1,254 @@ +{ + "app": { + "title": "Orisys AutoCal 标定å�°æŽ§åˆ¶", + "about_title": "关于 Orisys AutoCal", + "about_body": "Orisys AutoCal — 五轴标定å�°å†…部控制器\n版本: {app_version}\n共享库: {shared_version} (API {api_version})\n\nQt 绑定: {binding}\n控制器库: {dll_dir}\nå��好文件: {prefs_path}\n\n仅供内部使用。", + "internal_notice": "内部工具:ä¸�éš�客户安装包å�‘布。" + }, + "brand": { + "name": "ORISYS", + "detail": "å� åŠ¨ç§‘æŠ€" + }, + "menu": { + "file": "文件", + "open_bas": "下载 BAS åˆ�始化程åº�…", + "reveal_config": "在资æº�管ç�†å™¨ä¸­æ˜¾ç¤ºé…�置…", + "quit": "退出", + "view": "视图", + "theme": "主题", + "theme_dark": "深色", + "theme_light": "浅色", + "language": "语言", + "lang_zh": "简体中文", + "lang_en": "English", + "show_diagnostics": "诊断信æ�¯", + "tabs": "工作区", + "outputs": "输出目录", + "help": "帮助", + "about": "关于 AutoCal" + }, + "connection": { + "title": "连接控制器", + "mode": "连接方å¼�", + "mode_eth": "以太网", + "mode_com": "串å�£", + "mode_pci": "PCI å�¡", + "mode_local": "本地/仿真", + "mode_demo": "演示 (无硬件)", + "ip": "IP", + "scan": "IP 扫æ��", + "com": "串å�£å�·", + "card": "å�¡å�·", + "local_string": "连接å�‚æ•°", + "open": "连接", + "close": "断开连接", + "status": "状æ€�", + "state_open": "已连接", + "state_closed": "未连接", + "state_connecting": "连接中…", + "source": "库路径", + "no_more": "连接方å¼�『{mode}ã€�暂未æ��供。" + }, + "bus": { + "title": "总线åˆ�始化", + "bas_path": "BAS 文件", + "choose": "选择 BAS…", + "download": "下载并åˆ�始化", + "reinit": "é‡�æ–°åˆ�始化", + "type": "总线类型", + "type_ecat": "EtherCAT", + "type_rtex": "RTEX", + "type_unknown": "未知", + "state": "åˆ�始化状æ€�", + "state_pending": "未完æˆ�", + "state_running": "正在åˆ�始化…", + "state_ok": "åˆ�始化æˆ�功", + "state_failed": "åˆ�始化失败", + "state_timeout": "åˆ�始化超时", + "nodes": "节点数é‡�", + "axes": "è½´æ•°é‡�", + "downloaded": "文件已下载,控制器将延时扫æ��总线", + "dialog_title": "选择 BAS 文件" + }, + "axes": { + "title": "è½´è¿�动", + "axis": "è½´å�·", + "enable": "使能", + "enable_on": "已使能", + "enable_off": "未使能", + "atype": "轴类型", + "units": "脉冲当é‡�", + "speed": "速度", + "accel": "加速度", + "dpos": "命令ä½�ç½®", + "mpos": "å��馈ä½�ç½®", + "dpos_mm": "命令ä½�ç½® (mm)", + "mpos_mm": "å��馈ä½�ç½® (mm)", + "status": "轴状æ€�", + "motion": "è¿�动状æ€�", + "motion_word": "è¿�动", + "idle": "å�œæ­¢", + "moving": "è¿�动中", + "position_pair": "{value} ({mm} mm)", + "enable_all": "全部使能", + "disable_all": "全部关闭使能", + "clear_alarm_all": "清除全部报警", + "detail": "选中轴 {axis}: 轴类型 {atype} · 加速度 {accel} · å��馈 {mpos} ({mpos_mm} mm) · 轴状æ€� {status} · {home}", + "detail_none": "选中轴 {axis}: å°šæ— æ•°æ�®ï¼ˆæœªè¿žæŽ¥æˆ–未åˆ�始化)", + "home_status": "回零状æ€�", + "home_ok": "回零完æˆ�", + "home_pending": "回零未完æˆ�", + "home_running": "回零中", + "jog_fwd": "正转", + "jog_rev": "å��转", + "stop_all": "全部å�œæ­¢", + "stop": "å�œæ­¢", + "target": "目标ä½�ç½®", + "move_abs": "ç»�对定ä½�", + "move_rel": "相对è¿�动", + "home_mode": "回零模å¼�", + "home_high": "回零高速", + "home_low": "回零低速", + "home_offset": "回零å��ç§»", + "clear_alarm": "清除报警", + "apply": "应用å�‚æ•°", + "home": "å�¯åŠ¨å›žé›¶", + "controls": "æ“�作", + "mm_derived_tip": "毫米值由脉冲当é‡�æ�¢ç®—得出,是显示值,ä¸�是标定长度。", + "enabled_count": "已使能 {on}/{total} è½´" + }, + "busdata": { + "title": "总线数æ�®äº¤äº’", + "group": "总线数æ�® (SDO / RTEX)", + "ecat": "EtherCAT (SDO)", + "rtex": "RTEX", + "node": "节点å�·", + "index": "对象字典", + "subindex": "å­�ç¼–å�·", + "type": "æ•°æ�®ç±»åž‹", + "value": "æ•°æ�®", + "read": "读", + "write": "写", + "axis": "è½´å�·", + "parameter": "å�‚数地å�€", + "last_result": "最近一次: {text}", + "not_available": "当å‰�总线ä¸�支æŒ�该æ“�作", + "read_ok": "读å�–æˆ�功: {value}", + "write_ok": "写入æˆ�功" + }, + "status": { + "motion": "è¿�动控制", + "ready": "就绪", + "poll_ok": "状æ€�刷新正常", + "poll_paused": "状æ€�刷新已暂å�œ", + "poll_stalled": "状æ€�刷新中断", + "last_error": "最近错误", + "none": "æ— ", + "refused": "æ“�作被拒ç»�", + "done": "完æˆ�", + "failed": "失败", + "pause": "æš‚å�œåˆ·æ–°", + "resume": "继续刷新", + "paused": "已暂å�œçжæ€�刷新", + "alarm_short": "报警", + "axes_enabled": "已使能 {on}/{total} è½´", + "health_none": "刷新 —", + "health_age": "刷新 {ms} ms å‰�", + "health_paused": "刷新已暂å�œ", + "poll_every": "刷新间隔 {ms} ms" + }, + "run": { + "title": "è¿�行", + "phase_idle": "空闲", + "phase_dry_run": "干跑中", + "phase_running": "è¿�行中", + "phase_paused": "已暂å�œ", + "phase_done": "已完æˆ�", + "phase_failed": "失败", + "step_of": "第 {done}/{total} 点", + "no_steps": "尚未生æˆ�标定点", + "elapsed_only": "已用 {elapsed}", + "elapsed_remaining": "已用 {elapsed} · 预计剩余 {remaining}", + "run": "è¿�行", + "pause": "æš‚å�œ", + "abort": "中止", + "abort_stopped": "已中止è¿�行并å�œæ­¢å…¨éƒ¨è½´ã€‚", + "not_implemented": "è¿�行器属于 P7 阶段,尚未实现;中止éš�æ—¶å�¯ç”¨ã€‚" + }, + "readout": { + "title": "轴状æ€�" + }, + "workspace": { + "tab_axes": "轴调试", + "tab_sequence": "测试åº�列", + "tab_sensor": "传感器", + "tab_surface": "表é�¢åˆ†å¸ƒ", + "tab_points": "标定点", + "not_built": "尚未实现", + "reserved_sensor": "传感器连接ã€�实时图åƒ�与力曲线将在此显示:设备与信å�·æº�选择ã€�预览ã€�以å�Šå’Œ Studio 类似的曲线视图(å� ç”¨ç©ºé—´æ›´å°�)。", + "reserved_surface": "多点标定的ç�µæ•�度将在此以色图å� åŠ åœ¨ä¼ æ„Ÿå™¨ä¸‰ç»´è¡¨é�¢ä¸Šï¼šæ¯�个标定点的ç�µæ•�度ç»�æ�’值ç�€è‰²ï¼Œå¹¶ç»™å‡ºè‰²æ ‡ä¸ŽèŒƒå›´ã€‚", + "reserved_points": "标定点列表与采集控制将在此显示:平å�°å��æ ‡ã€�å�‚考载è�·ã€�采样统计与ç�µæ•�度结果。" + }, + "sequence": { + "title": "测试åº�列设计", + "profile_title": "标定点生æˆ�", + "preview_title": "预览", + "validation_title": "校验", + "points_title": "标定点列表", + "field_mode": "曲é�¢æ¨¡å¼�", + "field_pitch": "点è·� (mm)", + "field_margin": "边界余é‡� (mm)", + "field_radius": "曲é�¢å�Šå¾„ (mm)", + "field_clear_height": "安全高度 (mm)", + "field_approach_speed": "进给速度 (mm/s)", + "field_press_speed": "下压速度 (mm/s)", + "field_press_depth": "下压深度 (mm)", + "field_dwell": "ä¿�压 (s)", + "field_settle": "稳定窗å�£ (s)", + "field_repeats": "é‡�å¤�次数", + "field_order": "é��历顺åº�", + "mode_flat": "å¹³é�¢", + "mode_curved": "曲é�¢", + "order_row": "按行", + "order_serpentine": "蛇形", + "order_distance": "按è·�离", + "preview_placeholder": "三维预览:传感器表é�¢ · 标定点 · é��历顺åº�\n(仿真阶段实现)", + "preview_hint": "生æˆ�å�Žå�¯åœ¨æ­¤æ£€æŸ¥ç‚¹æ˜¯å�¦è�½åœ¨æ›²é�¢ä¸Šã€�是å�¦åœ¨è¡Œç¨‹å†…ã€�接触能å�¦è¢«ç¡®è®¤ã€‚", + "validation_pending": "尚未生æˆ�标定点。", + "check_on_surface": "在曲é�¢èŒƒå›´å†…", + "check_within_travel": "在行程内", + "check_contact_confirmable": "接触å�¯ç¡®è®¤", + "btn_generate": "生æˆ�标定点", + "btn_simulate": "仿真", + "btn_dry_run": "干跑(ä¸�接触)", + "btn_save": "ä¿�å­˜åº�列…", + "btn_load": "载入åº�列…", + "pending_tooltip": "该功能属于 {phase} 阶段,尚未实现。", + "col_index": "#", + "col_x": "X (mm)", + "col_y": "Y (mm)", + "col_z": "Z (mm)", + "col_status": "状æ€�", + "col_sensitivity": "ç�µæ•�度(上次)", + "col_samples": "样本", + "col_actions": "æ“�作", + "not_generated": "—", + "status_pending": "待测", + "points_hint": "å��标由网格生æˆ�å¹¶é€�点校验,ä¸�接å�—手工输入:手工输入的å��标没有任何检查,一个错数字会æ¯�掉整æ�¡åº�列。" + }, + "action": { + "ok": "完æˆ�", + "refused": "已拒ç»�", + "failed": "失败" + }, + "diagnostics": { + "title": "诊断信æ�¯", + "binding": "Qt 绑定", + "dll_dir": "控制器库", + "prefs": "å��好文件", + "outputs": "输出目录", + "bas_loaded": "BAS 已加载", + "yes": "是", + "no": "å�¦" + } +} diff --git a/apps/autocal/config/preferences.default.json b/apps/autocal/config/preferences.default.json new file mode 100644 index 0000000..6dec09f --- /dev/null +++ b/apps/autocal/config/preferences.default.json @@ -0,0 +1,50 @@ +{ + "language": "zh_CN", + "theme": "light", + "window_geometry": null, + "connection": { + "mode": "eth", + "ip": "192.168.0.11", + "com_id": 0, + "card_num": 0, + "local_string": "0" + }, + "bas_path": "", + "units_per_mm": 10.0, + "state_poll_ms": 100, + "sdo_last": { "node": 0, "index": 24704, "subindex": 0, "type": 0 }, + "rtex_last": { "axis": 0, "parameter": 0 }, + "show_diagnostics": false, + "safety_limits": { + "max_travel_mm": 100.0, + "max_descent_mm": 10.0, + "max_press_depth_mm": 1.0, + "follow_error_mm": 0.5, + "contact_search_mm": 3.0 + }, + "sensor_setup": { + "sensor_type": "box", + "config_ref": "", + "geometry_id": "", + "press_axis": 2, + "probe_tip_offset_mm": [0.0, 0.0, 0.0], + "probe_tip_set": false, + "sensor_to_platform": [], + "transform_residual_mm": 0.0, + "transform_feature_count": 0 + }, + "sequence_profile": { + "mode": "flat", + "pitch_mm": 2.0, + "margin_mm": 1.0, + "radius_mm": 0.0, + "clear_height_mm": 5.0, + "approach_speed_mm_s": 2.0, + "press_speed_mm_s": 0.5, + "press_depth_mm": 0.2, + "dwell_s": 0.5, + "settle_window_s": 0.5, + "repeats": 3, + "order": "serpentine" + } +} diff --git a/apps/autocal/docs/workflow.md b/apps/autocal/docs/workflow.md new file mode 100644 index 0000000..ff2bdeb --- /dev/null +++ b/apps/autocal/docs/workflow.md @@ -0,0 +1,335 @@ +# AutoCal workflow — platform bring-up to calibration data + +This is the operating workflow the application is built around. It is written to +be argued with: each phase names what it needs, what it produces, why it exists, +and what must be true before the next one starts. + +A **gate** is a checkpoint. The app's job at a gate is to make the operator's +answer trustworthy, not to ask "are you sure?". + +```text +P0 Session & safety baseline [gate] +P1 ECAT setup [gate] +P2 Homing + test motion [gate] +P3 Sensor & probe setup [gate] +P4 Coordinate setup: sensor <-> platform [gate] +P5 Sequence design [gate] +P6 Simulate & dry run [gate] +P7 Run + acquire [gate] +P8 Store raw +P9 Post-process [gate] +P10 Calibration export +P11 Verify [gate] +``` + +--- + +## P0 — Session & safety baseline + +**Why:** the machine can move from P2 onward. Everything that limits that motion +should be decided while nothing is moving. + +**Inputs:** operator identity, machine/bench identifier, units per axis, +`units_per_mm`. + +**Safety limits, set here, enforced from P2:** + +| Limit | Meaning | +|---|---| +| maximum travel per axis | never commanded past this, in user units | +| maximum Z descent per step | a single approach may not exceed this | +| press-depth ceiling | the press depth a sequence profile is allowed to request | +| no-contact abort | if contact is not detected within the descent budget, stop the run | +| following-error bound | how far a drive may lag before the move counts as stalled | + +**Outputs:** a session record — who, when, which machine, and the limits in +force. Stamped onto everything the session produces. + +**Gate:** every limit has a value; no limit is "unset" (an unset limit is an +unlimited machine). + +**Currently missing from the workflow:** this phase did not exist. Without it, +step 1 went from bus setup straight to jogging five axes. + +--- + +## P1 — ECAT setup + +**Why:** nothing else can be trusted until the controller has actually found its +slaves. A missing drive discovered at P7 wastes the whole run. + +**Inputs:** controller address, the matching `.bas` program +(`ECAT.bas` / `RTEX.bas`). + +**Steps:** connect → download and run the BAS program → watch +`Bus_InitStatus` to completion or timeout → read `BUS_TYPE`, +`Bus_TotalAxisnum`, and the node count. + +**Outputs:** bus type, node count, axis count, init status. + +**Gate:** init status is success, **and** the node/axis counts match what this +bench is expected to have. A mismatch is a finding, not a warning. + +**Existing code:** `MotionService.download_bas` / `poll` already implement the +state machine and the 25 s timeout. + +--- + +## P2 — Homing + test motion + +**Why:** a drive that homes and jogs cleanly at low speed is the precondition for +letting a sequence drive it. + +**Inputs:** per-axis homing mode, speeds, offset; a test-motion profile. + +**Steps:** enable → home each axis → low-speed jog each axis in both directions +→ confirm movement and return. + +**Outputs:** per-axis pass/fail with the evidence (distance moved, following +error, alarm state). + +**Gate — the test motion needs a criterion.** This was missing. Proposed: + +- the axis moved at least a configured minimum distance; +- it returned within a tolerance of its start position; +- following error stayed under the bound from P0; +- no alarm before, during or after. + +**Existing code:** the axis panel does the jog/homing; the criterion is new. + +--- + +## P3 — Sensor & probe setup + +**Why:** which sensor is under test, what touches it, and how far the touching +point is from the axis reference. Contact depth is meaningless without the tool. + +**Inputs:** + +- sensor type and config reference (the same `config/sensors//sensor.json` + the studio uses); +- the sensor's 3D scene package and its `geometry_id`; +- the **probe tip** (tool): which axis presses, and the tip offset from the + platform's reference point; +- the mounting pose: how the sensor is fixtured on the platform. + +**Outputs:** a saved setup block. + +**Gate:** + +- the calibration's `geometry_id` matches the scene's, or the app says which is + which rather than colouring the wrong geometry; +- the probe tip offset is set (a zero offset that was never entered is not the + same as a probe at the origin). + +--- + +## P4 — Coordinate setup: sensor ↔ platform + +**Why this is the load-bearing phase.** "Which points on the sensor should be +tested" is a question in the *sensor's* frame. The platform moves in *platform* +coordinates. Without the transform between them: + +- a generated grid cannot be checked against the sensor's surface; +- a measured point cannot be placed on that surface for the sensitivity map; +- a calibration cannot be re-applied to a re-fixtured sensor. + +**Inputs:** the probe tip from P3, and a set of **at least four non-collinear +known features** on the sensor or its fixture, probed in platform coordinates. + +**Steps:** probe each feature → solve for the rigid transform (rotation and +translation; scale if the units are not yet trusted) → report the residual. + +**Outputs:** a 4×4 transform from sensor frame to platform frame, with its +residual and the feature set that produced it. + +**Gate:** residual under a configured tolerance, and at least four non-collinear +points (four collinear points determine a rotation about that line, not a +transform — the app should refuse that set rather than return a number). + +**Not built in this step:** the solver. Only the workflow step, the stored +transform, and the place its residual is displayed. + +--- + +## P5 — Sequence design + +**Why:** this is the decision the whole run exists to carry out. + +**Inputs (the profile, persisted and reusable):** + +| Parameter | Meaning | +|---|---| +| mode | flat surface or curved (a cylindrical/spherical sensor area) | +| grid pitch | spacing between points, in mm | +| margin / radius | how far in from the active edge the grid stays; radius for curved | +| clear height | standoff above the surface to travel at | +| approach speed | descent speed before contact | +| press speed | descent speed after contact | +| press depth | how far past contact to press | +| dwell | how long to hold the press | +| settle window | how long to wait before the measurement is considered settled | +| repeats | how many times each point is measured | +| point order | row-wise, serpentine, or by distance | + +**Steps:** generate the grid → validate **every point** three ways: + +1. **on the sensor** — its sensor-frame position falls on the modelled surface, + not off the edge and not inside a hole; +2. **within travel** — the platform can reach it inside the P0 limits; +3. **confirmable** — the sensor's sensing area is under the point, so a contact + there can actually be seen by the sensor. + +**Outputs:** a point list with a sensor-frame position and a platform-frame +target for each, plus a validation verdict per point. + +**Gate:** no point may be unusable without being marked as such. A run may +proceed with skipped points if the operator says so explicitly; it may not +proceed with unvalidated ones. + +**The interface:** three zones in the Sequence tab — profile parameters, a 3D +preview of the surface with the points and their visiting order, and the +validation list. See `apps/autocal/README.md`. + +--- + +## P6 — Simulate & dry run + +**Why:** a wrong Z or a wrong grid is much cheaper to find now. + +**Simulate:** play the full toolpath in the 3D view — a moving marker with a +phase label (standoff → descend → press → dwell → retract), the estimated +duration, and per-point reachability. No motion. + +**Dry run:** execute the real XY path, descending only to the clear height, +never pressing. This proves the geometry, the ordering, and the timing. + +**Outputs:** estimated duration, per-point reachability, and (dry run) the +measured time per point. + +**Gate:** the operator has seen the path and a dry run has completed without a +guard violation. + +--- + +## P7 — Run + acquire + +**Why:** the only phase that touches the sensor. + +**Per step, in order:** + +1. move to the point's XY at clear height; +2. descend at approach speed; +3. **detect contact by position** — the axis stalls / following error rises + while descending; +4. **confirm with the sensor under test** — its reading must change when the + probe presses. This is the second opinion: position says "I stopped moving", + the sensor says "something real is happening"; +5. press to the configured depth at press speed; +6. dwell, then acquire the settle window; +7. retract, move to the next point. + +**Failure semantics (per point, because resume needs them):** + +| Outcome | Run behaviour | +|---|---| +| contact confirmed | record the point as measured | +| contact detected, sensor shows no change | mark **suspect**, continue; a suspect point is visible, not silently averaged in | +| no contact within the descent budget | **abort** the run (P0 limit) and leave the point unfinished | +| guard violation | abort the run, name the step and the limit | + +**Writes are incremental**: each point is written as it completes, with its +status, so an interrupted run resumes at the first unfinished point and partial +data stays valid. + +**Existing code:** the motion layer has the guards and the poller; the step +machine, the contact detection and the acquisition binding are new. + +--- + +## P8 — Store raw + +**Why:** post-processing will change. The raw record must not. + +**Contents:** + +- the sequence profile and the instantiated point list (positions and order); +- per point: the position trace, the raw sensor series, the settle window used, + timings, the contact position, and the status; +- the setup: sensor identity, geometry id, probe tip, the P4 transform and its + residual; +- the session record and app/version stamps from P0. + +Nothing derived is authoritative. The requirement that makes this reproducible: +**a dataset can be regenerated from the profile, the setup and the raw series**, +with no dependency on a previously computed result. + +--- + +## P9 — Post-process + +**Why:** turning samples into a number is a decision, and it has to be visible. + +**Steps:** choose the settle window per point → stability check (is the point +actually settled, or drifting?) → sensitivity per point per axis → outlier +detection → residual per point → fit the surface across points. + +**Outputs:** per-point sensitivity with a quality verdict, and a surface field +over the sensor's geometry ready for the 3D colour map. + +**Gate:** every point is either valid or explicitly excluded, with a reason. +A point with too few samples or a drifting window is not a coefficient. + +--- + +## P10 — Calibration export + +**Per-point results and the fitted surface, explicitly linked.** They are one +calibration; exporting them as unrelated artefacts is how a map ends up in a +report that does not match the table beside it. + +--- + +## P11 — Verify + +**Why this exists:** P9 and P10 produce numbers. Nothing yet checks they are +right. "Post process → calibration data" had no acceptance test. + +**Steps:** apply the calibration → re-measure a small subset of the points → +compare the measured sensitivity against what the calibration predicts → +report the discrepancy per point. + +**Gate:** the discrepancy is within tolerance, or the verification is recorded +as failed. A calibration that was never verified is labelled as such wherever it +is used. + +--- + +## Gaps this document closes + +| # | Gap | Phase | +|---|---|---| +| 1 | no limits before motion | P0 | +| 2 | no session identity (who/when/which machine) | P0 | +| 3 | the sensor↔platform transform was absent | P4 | +| 4 | the probe tip (tool) was never defined | P3 | +| 5 | the test motion had no pass/fail criterion | P2 | +| 6 | grid validity was not checked per point | P5 | +| 7 | the settle window and stability criterion were undefined | P9 | +| 8 | a point's failure had no defined behaviour | P7 | +| 9 | the sequence was transient, not a saved, versioned artefact | P8 | +| 10 | no verification pass | P11 | + +## Data flow + +```text +P0 limits ─┬───────────────────────────────> enforced at P2, P6, P7 +P1 bus ────┴─> axis availability ─────────> P2 +P3 sensor setup ─┬─ geometry id ──────────> P5 validation, P10 surface + └─ probe tip ────────────> P4, P7 press depth +P4 transform ─────> sensor <-> platform ──> P5 point generation, P9 map + (residual) P11 re-fixture check +P5 profile + points ──> P6 simulate/dry run ──> P7 run +P7 raw series ─────> P8 dataset ──> P9 post-process ──> P10 export + └─> P11 verify +``` diff --git a/apps/autocal/pyproject.toml b/apps/autocal/pyproject.toml new file mode 100644 index 0000000..db9d657 --- /dev/null +++ b/apps/autocal/pyproject.toml @@ -0,0 +1,26 @@ +[build-system] +requires = ["setuptools>=61.0"] +build-backend = "setuptools.build_meta" + +[project] +name = "orisys-autocal" +version = "0.1.0" +description = "Orisys AutoCal — internal 5-axis calibration platform control" +requires-python = ">=3.10" +authors = [{ name = "Orisys-Tech" }] +dependencies = [ + # PySide6 is the SQL-free, LGPLv3 Qt binding. It is deliberate, not a + # preference: this is an internal tool, and PyQt5's free option is GPLv3 + # (see README.md and src/orisys_autocal/qtcompat.py). + "PySide6>=6.6", + "orisys-app-shared>=0.1.0", +] + +[project.scripts] +orisys-autocal = "orisys_autocal.main:main" + +[tool.setuptools] +package-dir = { "" = "src" } + +[tool.setuptools.packages.find] +where = ["src"] diff --git a/apps/autocal/run.py b/apps/autocal/run.py new file mode 100644 index 0000000..fc4ece0 --- /dev/null +++ b/apps/autocal/run.py @@ -0,0 +1,25 @@ +#!/usr/bin/env python3 +"""Launch Orisys AutoCal from the source tree.""" + +from __future__ import annotations + +import os +import sys +from pathlib import Path + +ROOT = Path(__file__).resolve().parent +SRC = ROOT / "src" +SHARED_SRC = ROOT.parents[1] / "shared" / "src" +for path in (SRC, SHARED_SRC): + if path.is_dir() and str(path) not in sys.path: + sys.path.insert(0, str(path)) + +# Resolve config/outputs to this app, and set the app id before any shared +# import can read it (see orisys_app_shared.paths). +os.environ.setdefault("ORISYS_APP_ID", "autocal") +os.chdir(ROOT) + +from orisys_autocal.main import main + +if __name__ == "__main__": + raise SystemExit(main()) diff --git a/apps/autocal/src/orisys_autocal/__init__.py b/apps/autocal/src/orisys_autocal/__init__.py new file mode 100644 index 0000000..9fce524 --- /dev/null +++ b/apps/autocal/src/orisys_autocal/__init__.py @@ -0,0 +1,12 @@ +"""Orisys AutoCal — internal 5-axis calibration platform control app.""" + +__version__ = "0.1.0" +REQUIRES_SHARED_API = "0.1" + +#: Window / QApplication name. +APP_DISPLAY_NAME = "Orisys AutoCal" + +#: The Qt binding this app uses. It is PySide6 and only PySide6: LGPLv3, so an +#: internal closed-source tool needs no licence purchase, and it is the +#: maintained Qt-for-Python binding (PySide2 is discontinued upstream). +QT_BINDING = "PySide6" diff --git a/apps/autocal/src/orisys_autocal/main.py b/apps/autocal/src/orisys_autocal/main.py new file mode 100644 index 0000000..b994088 --- /dev/null +++ b/apps/autocal/src/orisys_autocal/main.py @@ -0,0 +1,126 @@ +"""AutoCal entrypoint: logging, locale, theme, then the window.""" + +from __future__ import annotations + +import argparse +import logging +import os +import sys + +# The app id must be set before anything imports orisys_app_shared.paths, because +# the config/output roots are resolved on first use and cached by callers. +os.environ.setdefault("ORISYS_APP_ID", "autocal") + + +def _force_utf8_streams() -> None: + """Make stdout/stderr UTF-8 where the platform lets us. + + The controller's error strings and every panel label are Chinese, and a + Windows console defaults to a legacy code page that cannot encode them. + A failed reconfigure is not fatal — the log file is UTF-8 regardless. + """ + for stream in (sys.stdout, sys.stderr): + reconfigure = getattr(stream, "reconfigure", None) + if reconfigure is None: + continue + try: + reconfigure(encoding="utf-8", errors="replace") + except (ValueError, OSError): # pragma: no cover - stream already detached + pass + + +def _pyside_version() -> str: + import PySide6 + + return getattr(PySide6, "__version__", "unknown") + + +def _parse_args(argv: list[str]) -> argparse.Namespace: + parser = argparse.ArgumentParser(prog="orisys-autocal", description=__doc__) + parser.add_argument( + "--demo", + action="store_true", + help="start on the simulated platform (no hardware, no controller DLL)", + ) + parser.add_argument( + "--log-level", + default="INFO", + choices=("DEBUG", "INFO", "WARNING", "ERROR"), + help="console and file log level", + ) + return parser.parse_args(argv) + + +def main(argv: list[str] | None = None) -> int: + args = _parse_args(list(argv if argv is not None else sys.argv[1:])) + _force_utf8_streams() + + from orisys_app_shared import API_VERSION, __version__ as shared_version + from orisys_app_shared.compat import check_shared_compat + from orisys_app_shared.i18n import set_locale + from orisys_app_shared.logging import init_logging, install_exception_hooks + from orisys_app_shared.theme import build_qss + from PySide6.QtWidgets import QApplication + + from . import REQUIRES_SHARED_API, __version__ as app_version + from .motion import ConnectionSpec, DemoTransport + from .preferences import load_preferences + from .ui.window import AutoCalMainWindow + + init_logging("autocal", level=getattr(logging, args.log_level)) + install_exception_hooks() + check_shared_compat(REQUIRES_SHARED_API) + + logger = logging.getLogger(__name__) + prefs = load_preferences() + language = str(prefs.get("language") or "zh_CN") + theme = str(prefs.get("theme") or "dark") + set_locale(language) + + app = QApplication(sys.argv[:1]) + app.setApplicationName("Orisys AutoCal") + app.setApplicationVersion(app_version) + app.setStyleSheet(build_qss(theme)) + + transport = None + if args.demo: + transport = DemoTransport() + connection = dict(prefs.get("connection") or {}) + connection["mode"] = "demo" + prefs["connection"] = connection + + window = AutoCalMainWindow(prefs=prefs) + if transport is not None: + window.poller.service._transport = transport # noqa: SLF001 - deliberate swap + window.show() + + logger.info( + "AutoCal started (version=%s shared=%s api=%s binding=PySide6 %s " + "theme=%s language=%s demo=%s)", + app_version, + shared_version, + API_VERSION, + _pyside_version(), + theme, + language, + args.demo, + ) + if args.demo: + window.connect_controller(ConnectionSpec(mode="demo"), label="connect") + + code = int(app.exec()) + + # Leave the process immediately. The ZMotion runtime keeps native threads of + # its own, so a normal interpreter shutdown can hang after the window closes; + # everything durable was already flushed by closeEvent and the log handlers. + logging.shutdown() + for stream in (sys.stdout, sys.stderr): + try: + stream.flush() + except Exception: # noqa: BLE001 - a closed stream must not block exit + pass + os._exit(code) + + +if __name__ == "__main__": + raise SystemExit(main()) diff --git a/apps/autocal/src/orisys_autocal/motion/__init__.py b/apps/autocal/src/orisys_autocal/motion/__init__.py new file mode 100644 index 0000000..749e6fe --- /dev/null +++ b/apps/autocal/src/orisys_autocal/motion/__init__.py @@ -0,0 +1,58 @@ +"""Platform control: models, guards, polling, and the Qt worker bridge.""" + +from .models import ( + INIT_FAILED, + INIT_OK, + INIT_RUNNING, + INIT_TIMEOUT_S, + AxisParams, + AxisState, + AxisStatusBits, + BusStatus, + BusType, + ConnectionMode, + ConnectionSpec, + MotionResult, + Snapshot, +) +from .poller import MotionPoller +from .service import PLATFORM_AXES, MotionService +from .transport import DemoTransport, NativeTransport, ZmcTransport +from .units import ( + DEFAULT_ACCEL, + DEFAULT_SPEED, + DEFAULT_UNITS, + PULSES_PER_MM, + mm_to_user_units, + safe_float, + user_units_to_mm, +) + +__all__ = [ + "DEFAULT_ACCEL", + "DEFAULT_SPEED", + "DEFAULT_UNITS", + "INIT_FAILED", + "INIT_OK", + "INIT_RUNNING", + "INIT_TIMEOUT_S", + "PLATFORM_AXES", + "PULSES_PER_MM", + "AxisParams", + "AxisState", + "AxisStatusBits", + "BusStatus", + "BusType", + "ConnectionMode", + "ConnectionSpec", + "DemoTransport", + "MotionPoller", + "MotionResult", + "MotionService", + "NativeTransport", + "Snapshot", + "ZmcTransport", + "mm_to_user_units", + "safe_float", + "user_units_to_mm", +] diff --git a/apps/autocal/src/orisys_autocal/motion/errors.py b/apps/autocal/src/orisys_autocal/motion/errors.py new file mode 100644 index 0000000..b7cd5c4 --- /dev/null +++ b/apps/autocal/src/orisys_autocal/motion/errors.py @@ -0,0 +1,77 @@ +"""Translate controller return codes into something an operator can act on. + +Only the codes the vendor actually documents are given a meaning here. The +`sdk header <../../resources/zmotion/x64/zauxdll2.h>`_ defines the auxiliary +error block at offset 30000: + + #define ERR_NOACK ERR_AUX_OFFSET //无应答 + #define ERR_ACKERROR (ERR_AUX_OFFSET+1) //应答错误 + #define ERR_AUX_PARAERR (ERR_AUX_OFFSET+2) //å�‚数错误 + #define ERR_AUX_NOTSUPPORT (ERR_AUX_OFFSET+3) //ä¸�支æŒ� + #define ERR_AUX_FILE_ERROR (ERR_AUX_OFFSET+4) //å�‚数错误 + #define ERR_AUX_OS_ERR (ERR_AUX_OFFSET+5) // + +Everything else is the controller's own number. :func:`describe` deliberately +does **not** invent a meaning for those: it names the number and points at +ZDevelop, which is where the firmware's code table lives. A guessed message on +a motion controller is worse than "unknown". +""" + +from __future__ import annotations + +import logging + +logger = logging.getLogger(__name__) + +#: Auxiliary (host-side) error block offset, from ``zauxdll2.h``. +ERR_AUX_OFFSET = 30000 + +#: Meaning per code, as ``(english, chinese)``. +MESSAGES: dict[int, tuple[str, str]] = { + ERR_AUX_OFFSET: ("No response from the controller", "控制器无应答"), + ERR_AUX_OFFSET + 1: ("The controller rejected the command", "应答错误"), + ERR_AUX_OFFSET + 2: ("Wrong parameter", "å�‚数错误"), + ERR_AUX_OFFSET + 3: ("Not supported by this model or firmware", "ä¸�支æŒ�该功能"), + ERR_AUX_OFFSET + 4: ("File error", "文件错误"), + ERR_AUX_OFFSET + 5: ("Operating-system error in the library", "库内æ“�作系统错误"), +} + +#: The last-resort advice appended to every unknown code. +UNKNOWN_HINT = ( + "Look this number up in ZDevelop's error table (控制器错误ç �表), " + "or run the same command from ZDevelop to see the decoded fault." +) + + +def describe(code: int, *, language: str = "zh_CN") -> str: + """A human-readable message for a controller return code. + + Args: + code: the value returned by a ``ZAux_*`` call. + language: ``zh_CN`` for Chinese, anything else for English. + + Returns: + ``"0"`` is reported as success; known codes get a translated message; + unknown codes keep their number visible rather than being guessed at. + """ + code = int(code) + if code == 0: + return "æˆ�功" if language == "zh_CN" else "OK" + + index = 1 if language == "zh_CN" else 0 + known = MESSAGES.get(code) + if known is None: + # An unknown code that still resolves to an auxiliary slot is more + # useful than a bare integer, but only when it is documented. + logger.debug("Undocumented ZMotion return code %s", code) + prefix = "错误ç �" if language == "zh_CN" else "Error code" + return f"{prefix} {code}" + return known[index] + + +def describe_with_hint(code: int, *, language: str = "zh_CN") -> str: + """As :func:`describe`, plus the ZDevelop pointer for unknown codes.""" + message = describe(code, language=language) + if int(code) == 0 or int(code) in MESSAGES: + return message + return f"{message} — {UNKNOWN_HINT}" diff --git a/apps/autocal/src/orisys_autocal/motion/models.py b/apps/autocal/src/orisys_autocal/motion/models.py new file mode 100644 index 0000000..3fa1806 --- /dev/null +++ b/apps/autocal/src/orisys_autocal/motion/models.py @@ -0,0 +1,180 @@ +"""Motion-control domain model. + +Plain frozen dataclasses and no Qt: the service layer and the tests both use +these, and neither needs a GUI to do it. +""" + +from __future__ import annotations + +from dataclasses import dataclass, field +from typing import Literal + +#: Which physical transport the controller is reached over. +ConnectionMode = Literal["eth", "com", "pci", "local", "demo"] + +#: Bus families the ``.bas`` programs report through ``BUS_TYPE``. +BusType = Literal["unknown", "ecat", "rtex"] + +#: The vendor reference's window between "BAS downloaded" and a final status. +INIT_TIMEOUT_S = 25.0 + +#: ``Bus_InitStatus`` values, from ``ECAT.bas``. +INIT_RUNNING = -1 +INIT_FAILED = 0 +INIT_OK = 1 + + +@dataclass(frozen=True) +class ConnectionSpec: + """How to reach the controller.""" + + mode: ConnectionMode + ip: str = "" + com_id: int = 0 + card_num: int = 0 + local_string: str = "0" + + def describe(self) -> str: + if self.mode == "eth": + return self.ip or "(no IP)" + if self.mode == "com": + return f"COM{self.com_id}" + if self.mode == "pci": + return f"PCI card {self.card_num}" + if self.mode == "local": + return f"local {self.local_string}" + return "demo (no hardware)" + + +@dataclass(frozen=True) +class AxisParams: + """Per-axis parameters as entered by the operator.""" + + units: float = 10.0 + speed: float = 1000.0 + accel: float = 10000.0 + creep: float = 10.0 + home_mode: int = 0 + home_high: float = 50.0 + home_low: float = 10.0 + home_offset: float = 0.0 + + +@dataclass(frozen=True) +class AxisStatusBits: + """Decoded ``ZAux_Direct_GetAxisStatus`` word. + + Only the bits the AutoCal panels display are named. Bit 6 is the one the + vendor reference tests (``status & 64``) to decide that homing is running. + """ + + raw: int = 0 + + @property + def home_in_progress(self) -> bool: + """Bit 6 — set while the drive is executing a homing move.""" + return bool(self.raw & 64) + + @property + def moving(self) -> bool: + """Bit 1 — the axis is producing motion.""" + return bool(self.raw & 2) + + @property + def alarm(self) -> bool: + """Bit 9 — the drive is reporting a fault.""" + return bool(self.raw & 512) + + def active_bits(self) -> list[int]: + """Every set bit position, for the status column's tooltip.""" + return [bit for bit in range(32) if self.raw & (1 << bit)] + + +@dataclass(frozen=True) +class AxisState: + """One axis as read back from the controller.""" + + axis: int + enabled: bool = False + atype: int = 0 + units: float = 0.0 + speed: float = 0.0 + accel: float = 0.0 + dpos: float = 0.0 + mpos: float = 0.0 + status: AxisStatusBits = field(default_factory=AxisStatusBits) + idle: bool = True + home_status: int = 0 + read_ok: bool = True + error: str = "" + + +@dataclass(frozen=True) +class BusStatus: + """Bus-level state, from the ``.bas`` program's globals.""" + + bus_type: BusType = "unknown" + init_status: int = INIT_RUNNING + node_count: int = 0 + total_axes: int = 0 + bas_path: str = "" + bas_loaded: bool = False + init_started_at: float | None = None + message: str = "" + + @property + def initialized(self) -> bool: + return self.init_status == INIT_OK + + @property + def supports_sdo(self) -> bool: + return self.bus_type == "ecat" + + @property + def supports_rtex(self) -> bool: + return self.bus_type == "rtex" + + def timed_out(self, now: float) -> bool: + """True while a BAS run started long ago has still not reported.""" + if self.init_status != INIT_RUNNING or self.init_started_at is None: + return False + return (now - self.init_started_at) > INIT_TIMEOUT_S + + +@dataclass(frozen=True) +class Snapshot: + """Everything the UI needs for one refresh.""" + + connected: bool = False + spec: ConnectionSpec | None = None + bus: BusStatus = field(default_factory=BusStatus) + axes: tuple[AxisState, ...] = () + error: str = "" + + def axis(self, index: int) -> AxisState | None: + for state in self.axes: + if state.axis == index: + return state + return None + + +@dataclass(frozen=True) +class MotionResult: + """Outcome of a command, with a reason when it was refused or failed.""" + + ok: bool + code: int = 0 + message: str = "" + + @classmethod + def success(cls, message: str = "") -> "MotionResult": + return cls(ok=True, code=0, message=message) + + @classmethod + def refused(cls, message: str) -> "MotionResult": + """The command was not sent: a guard rejected it before any motion.""" + return cls(ok=False, code=0, message=message) + + @classmethod + def failed(cls, code: int, message: str) -> "MotionResult": + return cls(ok=False, code=int(code), message=message) diff --git a/apps/autocal/src/orisys_autocal/motion/poller.py b/apps/autocal/src/orisys_autocal/motion/poller.py new file mode 100644 index 0000000..4ae065e --- /dev/null +++ b/apps/autocal/src/orisys_autocal/motion/poller.py @@ -0,0 +1,312 @@ +"""Owns the controller connection on a worker thread. + +Why a thread and not a ``QTimer`` in the GUI thread: ``ZAux_BasDown`` (a ROM +write) and a bus scan block for seconds, and the bus-init sequence blocks for +three; a synchronous call on the GUI thread freezes the window for that whole +time. The Qt signal boundary here is the *only* way the UI reaches the +controller, which also means there is exactly one thread making DLL calls — +the ZMotion handle is not safe to share. + +Contract: + +* Creating the poller touches no hardware and loads no DLL. +* :meth:`MotionPoller.submit` queues a service call; the result comes back on + ``commandFinished``/``commandFailed``, and commands run in submission order. +* Only one service call is in flight at once, because the worker is a single + thread and each due step performs one control action. +* A call that raises is reported, not fatal: the timer keeps running and the + next snapshot still arrives. +""" + +from __future__ import annotations + +import logging +from typing import Any, Callable, Iterable + +from PySide6.QtCore import ( + QMetaObject, + QObject, + Qt, + QThread, + QTimer, + Signal, + Slot, +) + +from .models import Snapshot +from .service import PLATFORM_AXES, MotionService + +logger = logging.getLogger(__name__) + +#: Default UI refresh interval, matching the reference program's 100 ms timer. +DEFAULT_INTERVAL_MS = 100 + + +class _Worker(QObject): + """Lives on the poller thread. Every controller call happens here.""" + + snapshotReady = Signal(object) + commandFinished = Signal(int, object) + commandFailed = Signal(int, str) + connected = Signal(object) + disconnected = Signal() + + def __init__(self, service: MotionService, axes: Iterable[int] | None) -> None: + super().__init__() + self._service = service + self._axes = list(axes) if axes is not None else None + # Both are created in ``warm_up``, which runs on the worker thread: a + # QTimer must be created, started and stopped from the thread that owns + # it, and this object is constructed on the GUI thread. + self._timer: QTimer | None = None + self._timer_loop: QTimer | None = None + self._interval_ms = DEFAULT_INTERVAL_MS + self._pending: list[tuple[int, Callable[[], Any]]] = [] + self._counter = 0 + self._last_snapshot_at = 0.0 + + # ------------------------------------------------------------ thread setup + + @Slot() + def warm_up(self) -> None: + """Create the timers and start polling. + + Invoked on the worker thread, once, at thread start-up — and taking no + arguments precisely so it can be, because marshalling an argument across + the meta-object system differs between the Qt bindings. + """ + if self._timer is None: + self._timer = QTimer(self) + self._timer.timeout.connect(self._tick) + + # A zero-interval timer that always stays active. Its only job is to + # keep the thread's event loop turning (``QThread.exec`` returns as + # soon as no events are left, even though the thread stays alive), so + # a queued ``submit`` is delivered even while polling is stopped. + self._timer_loop = QTimer(self) + self._timer_loop.timeout.connect(lambda: None) + self._timer_loop.start(0) + + self._timer.setInterval(self._interval_ms) + if not self._timer.isActive(): + self._timer.start() + + def start_polling(self, interval_ms: int = DEFAULT_INTERVAL_MS) -> None: + """Start (or retune) the poll timer. Must run on the worker thread.""" + self._interval_ms = max(20, int(interval_ms)) + if self._timer is None: + self.warm_up() + assert self._timer is not None + self._timer.setInterval(self._interval_ms) + if not self._timer.isActive(): + self._timer.start() + + @Slot() + def stop_polling(self) -> None: + if self._timer is not None: + self._timer.stop() + if self._timer_loop is not None: + self._timer_loop.stop() + + @Slot() + def cleanup(self) -> None: + """Destroy the timers on the thread that owns them. + + A QTimer stopped or deleted from another thread warns ("Timers cannot be + stopped from another thread") and leaves the timestamp bookkeeping in an + undefined state. Since these are parented to the worker, they would + otherwise be destroyed with it, from whichever thread drops the last + reference to the worker. + """ + for timer in (self._timer, self._timer_loop): + if timer is not None: + timer.stop() + timer.deleteLater() + self._timer = None + self._timer_loop = None + + def set_axes(self, axes: Iterable[int]) -> None: + self._axes = list(axes) + + def set_language(self, language: str) -> None: + self._service.set_language(language) + + # ------------------------------------------------------------------ queue + + def submit(self, action: Callable[[MotionService], Any]) -> int: + """Queue ``action``; returns the id its result will be reported under. + + Queuing is thread-safe (list append under the GIL); the *work* is not + done here. ``invokeMethod`` with a queued connection is what runs + :meth:`_tick` on the worker thread, so no controller call ever happens + on the caller's thread — which matters twice over, because the DLL is + single-threaded and a blocking call would freeze the window. + """ + self._counter += 1 + token = self._counter + self._pending.append((token, action)) + QMetaObject.invokeMethod(self, "_tick", Qt.ConnectionType.QueuedConnection) + return token + + @Slot() + def _tick(self) -> None: + """One poll cycle: run at most one queued command, then publish state. + + One control action per step, then a snapshot. Draining the whole queue + here would make a slow BAS download delay every later command with no + feedback in between. + + Qt looks this slot up by name (see ``submit``), so it keeps both the + decorator and the leading underscore. + """ + if self._pending: + token, action = self._pending.pop(0) + try: + result = action(self._service) + except Exception as exc: # noqa: BLE001 - report, never kill the thread + logger.exception("Controller command %s failed", token) + self.commandFailed.emit(token, self._describe(exc)) + else: + self.commandFinished.emit(token, result) + + self._emit_snapshot() + + def _emit_snapshot(self) -> None: + try: + snapshot = self._service.poll(self._axes) + except Exception as exc: # noqa: BLE001 - a poll must never stop the timer + logger.exception("Polling the controller failed") + snapshot = Snapshot( + connected=self._service.connected, + spec=self._service.spec, + bus=self._service.bus, + error=self._describe(exc), + ) + self.snapshotReady.emit(snapshot) + + def _describe(self, exc: Exception) -> str: + return self._service.describe_error(exc) + + +class MotionPoller(QObject): + """GUI-thread facade over the worker.""" + + snapshotReady = Signal(object) + commandFinished = Signal(int, object) + commandFailed = Signal(int, str) + connectionChanged = Signal(bool) + + def __init__( + self, + service: MotionService | None = None, + *, + axes: Iterable[int] | None = None, + parent: QObject | None = None, + ) -> None: + super().__init__(parent) + self.service = service or MotionService() + self._axes = list(axes) if axes is not None else list( + range(self.service.axis_count or PLATFORM_AXES) + ) + self._thread = QThread() + self._worker = _Worker(self.service, self._axes) + self._worker.moveToThread(self._thread) + self._worker.snapshotReady.connect(self.snapshotReady) + self._worker.commandFinished.connect(self.commandFinished) + self._worker.commandFailed.connect(self.commandFailed) + self._worker.connected.connect(lambda _spec: self.connectionChanged.emit(True)) + self._worker.disconnected.connect(lambda: self.connectionChanged.emit(False)) + # Kicks the worker's event loop into life on the new thread. + self._thread.started.connect(self._on_thread_started) + self._thread.start() + self._interval_ms = DEFAULT_INTERVAL_MS + + def _on_thread_started(self) -> None: + """Ask the worker to build its timers, on its own thread. + + ``QMetaObject.invokeMethod`` with a queued connection is used rather + than calling :meth:`_Worker.warm_up` here: this slot runs on the GUI + thread (the receiver is ``self``), and a QTimer created here would then + belong to the GUI thread while being started and stopped from the + worker — which Qt refuses at run time. + """ + QMetaObject.invokeMethod( + self._worker, "warm_up", Qt.ConnectionType.QueuedConnection + ) + + @property + def interval_ms(self) -> int: + return self._interval_ms + + def set_interval_ms(self, value: int) -> None: + """Change the refresh rate. Callable from the GUI thread.""" + self._interval_ms = max(20, int(value)) + self._submit_void(lambda worker: worker.start_polling(self._interval_ms)) + + def set_axes(self, axes: Iterable[int]) -> None: + self._axes = list(axes) + self._submit_void(lambda worker: worker.set_axes(self._axes)) + + def set_language(self, language: str) -> None: + self._submit_void(lambda worker: worker.set_language(language)) + + def pause(self) -> None: + """Stop the periodic state poll. + + The connection is untouched: pausing only stops asking. The event loop + keeps turning, so queued commands and shutdown still work while paused. + """ + self._paused = True + self._submit_void(lambda worker: worker.stop_polling()) + + def resume(self) -> None: + """Resume the periodic state poll after :meth:`pause`.""" + self._paused = False + self._submit_void(lambda worker: worker.start_polling(self._interval_ms)) + + @property + def paused(self) -> bool: + return self._paused + + #: Whether the caller has paused the poll (see :meth:`pause`). + _paused = False + + def _submit_void(self, action: Callable[[_Worker], None]) -> None: + """Hand a fire-and-forget call to the worker through its event loop.""" + self._worker.submit(lambda _service: action(self._worker)) + + def submit(self, action: Callable[[MotionService], Any]) -> int: + """Queue a service call. Returns the id it will be reported under.""" + return self._worker.submit(action) + + def connect_controller(self, spec) -> int: + return self.submit(lambda service: service.connect(spec)) + + def disconnect_controller(self) -> int: + def _disconnect(service: MotionService): + # Stop the axes before closing the handle: the reference program + # closes immediately and leaves the platform coasting. + service.stop_all() + service.disconnect() + return None + + return self.submit(_disconnect) + + def shutdown(self, timeout_ms: int = 5000) -> None: + """Stop polling and join the thread. Safe to call more than once.""" + if not self._thread.isRunning(): + return + # Both hops must run on the worker thread, because that is where the + # timers were created. ``cleanup`` is blocking on purpose: it has to + # complete *before* ``quit`` can take the event loop down, and waiting + # for it also proves the worker has stopped touching the controller. + QMetaObject.invokeMethod( + self._worker, "cleanup", Qt.ConnectionType.BlockingQueuedConnection + ) + self._thread.quit() + if not self._thread.wait(timeout_ms): + logger.warning( + "Poller thread did not stop within %sms; it will be left to the " + "process exit path", + timeout_ms, + ) diff --git a/apps/autocal/src/orisys_autocal/motion/service.py b/apps/autocal/src/orisys_autocal/motion/service.py new file mode 100644 index 0000000..8379c62 --- /dev/null +++ b/apps/autocal/src/orisys_autocal/motion/service.py @@ -0,0 +1,670 @@ +"""Platform control logic: connection, bus init, axis commands. + +Pure Python and Qt-free, so the whole guard/state-machine layer is testable +without a GUI and without hardware. :mod:`~orisys_autocal.motion.poller` drives +it from a worker thread; the UI only ever calls these methods. + +Guards live here rather than in the UI on purpose. A motion command is refused +for a stated reason — bus not initialised, axis not idle, non-numeric input — +and :meth:`MotionService.jog` and friends return that reason as a +``MotionResult`` instead of silently doing nothing. +""" + +from __future__ import annotations + +import logging +import math +import time +import os +from typing import Callable, Iterable + +from orisys_app_shared.zmotion import ZAuxError + +from . import errors +from .models import ( + INIT_FAILED, + INIT_RUNNING, + INIT_TIMEOUT_S, + AxisParams, + AxisState, + AxisStatusBits, + BusStatus, + BusType, + ConnectionSpec, + MotionResult, + Snapshot, +) +from .transport import DemoTransport, ZmcTransport, NativeTransport +from .units import ( + DEFAULT_ACCEL, + DEFAULT_SPEED, + DEFAULT_UNITS, + PULSES_PER_MM, + safe_float, + user_units_to_mm, +) + +logger = logging.getLogger(__name__) + +#: The platform has five axes; the bus may report fewer if a drive is missing. +PLATFORM_AXES = 5 + +#: ``BUS_TYPE`` values written by the vendor ``.bas`` programs. +_BUS_TYPE_NAMES: dict[int, BusType] = {0: "ecat", 1: "rtex"} + + +class MotionService: + """The controller session: one connection, five axes, one state machine.""" + + def __init__( + self, + transport: ZmcTransport | None = None, + *, + axis_count: int = PLATFORM_AXES, + units_per_mm: float = DEFAULT_UNITS, + pulses_per_mm: float = PULSES_PER_MM, + language: str = "zh_CN", + ) -> None: + self._transport: ZmcTransport = transport or NativeTransport() + self.axis_count = int(axis_count) + self._units_per_mm = safe_float(units_per_mm, DEFAULT_UNITS) + self._pulses_per_mm = pulses_per_mm + self.language = language + + self._spec: ConnectionSpec | None = None + self._bus = BusStatus() + self._params: dict[int, AxisParams] = { + axis: AxisParams() for axis in range(self.axis_count) + } + self._bas_loaded = False + self._init_started_at: float | None = None + self._init_timeout = INIT_TIMEOUT_S + self._home_started: dict[int, float] = {} + self._home_done: dict[int, bool] = {} + + # ------------------------------------------------------------- properties + + @property + def transport(self) -> ZmcTransport: + return self._transport + + @property + def connected(self) -> bool: + return self._spec is not None + + @property + def spec(self) -> ConnectionSpec | None: + return self._spec + + @property + def bus(self) -> BusStatus: + return self._bus + + @property + def bas_loaded(self) -> bool: + return self._bas_loaded + + def params(self, axis: int) -> AxisParams: + return self._params.get(axis, AxisParams()) + + def set_language(self, language: str) -> None: + self.language = language + + def _msg(self, code: int) -> str: + return errors.describe_with_hint(code, language=self.language) + + def describe_error(self, exc: Exception) -> str: + """Localised text for a failed call, for the UI and the poller. + + A ``ZAuxError`` carries a controller code that :mod:`.errors` can + translate; anything else (a missing DLL, a socket error) is reported + as-is, which is where the "searched these paths" detail arrives. + """ + code = getattr(exc, "code", 0) + return self._msg(code) if code else str(exc) + + # ------------------------------------------------------------ connect/init + + def connect(self, spec: ConnectionSpec) -> MotionResult: + """Open the controller. + + A previous connection is closed first: switching transport type without + closing leaks the DLL handle, which the reference program does. + """ + if self._spec is not None: + self.disconnect() + try: + self._transport.open(spec) + except (ZAuxError, OSError, ValueError) as exc: + code = getattr(exc, "code", 0) + self._spec = None + message = self._msg(code) if code else str(exc) + logger.warning("Connect to %s failed: %s", spec.describe(), exc) + return MotionResult.failed(code, message) + + self._spec = spec + logger.info("Connected: %s via %s", spec.describe(), self._transport.source) + # A controller may already have a BAS program running from a previous + # session; adopt it rather than claiming the bus is uninitialised. + self._adopt_existing_bas() + return MotionResult.success(f"已连接 {spec.describe()}" if self._is_zh else f"Connected {spec.describe()}") + + @property + def _is_zh(self) -> bool: + return self.language == "zh_CN" + + def _adopt_existing_bas(self) -> None: + try: + bus_type = self._transport.user_var("BUS_TYPE") + except (ZAuxError, OSError): + self._bas_loaded = False + self._bus = BusStatus(bus_type="unknown", init_status=INIT_RUNNING) + return + self._bas_loaded = True + self._bus = BusStatus( + bus_type=_BUS_TYPE_NAMES.get(int(bus_type), "unknown"), + init_status=INIT_RUNNING, + bas_loaded=True, + ) + + def disconnect(self) -> None: + try: + self._transport.close() + except (ZAuxError, OSError): # pragma: no cover - close is best-effort + logger.exception("Closing the controller connection failed") + self._spec = None + self._bas_loaded = False + self._init_started_at = None + self._home_started.clear() + self._home_done.clear() + self._bus = BusStatus() + + def download_bas(self, filename: str, run_mode: int = 1) -> MotionResult: + """Download a ``.bas`` program to the controller and start its scan. + + ``run_mode=1`` writes to ROM, so the controller re-runs the program on + power-up as well; the vendor ``ECAT.bas`` delays 3 s, scans the slot, + then sets ``Bus_InitStatus``. The UI follows that through + :func:`poll`. + """ + if not self.connected: + return MotionResult.refused(self._text("未连接控制器", "Not connected")) + if not filename or not os.path.isfile(filename): + return MotionResult.refused( + self._text(f"文件ä¸�存在: {filename}", f"File not found: {filename}") + ) + try: + self._transport.bas_download(filename, run_mode) + except (ZAuxError, OSError) as exc: + code = getattr(exc, "code", 0) + self._bas_loaded = False + self._init_started_at = None + return MotionResult.failed(code, self._msg(code) if code else str(exc)) + + self._bas_loaded = True + self._init_started_at = time.monotonic() + self._bus = BusStatus( + bus_type=self._bus.bus_type, + init_status=INIT_RUNNING, + bas_path=filename, + bas_loaded=True, + init_started_at=self._init_started_at, + ) + # Read BUS_TYPE so the SDO/RTEX panels enable for the right family. + try: + bus_type = self._transport.user_var("BUS_TYPE") + self._bus = _replace_bus_type(self._bus, _BUS_TYPE_NAMES.get(int(bus_type), "unknown")) + except (ZAuxError, OSError): + pass + return MotionResult.success( + self._text( + "BAS 已下载,控制器将延时扫æ��总线", + "BAS downloaded; the controller will scan the bus after its delay", + ) + ) + + def reinit_bus(self) -> MotionResult: + """Re-run the BAS program's init task without re-downloading it.""" + if not self.connected: + return MotionResult.refused(self._text("未连接控制器", "Not connected")) + if not self._bas_loaded or not self._bus.bas_path: + return MotionResult.refused( + self._text( + "Bas文件未加载,请先下载 ECAT.bas 或 RTEX.bas", + "No BAS program loaded; download ECAT.bas or RTEX.bas first", + ) + ) + if self._bus.init_status == INIT_RUNNING and not self._bus.timed_out(time.monotonic()): + return MotionResult.refused( + self._text("总线正在åˆ�始化,请ç¨�候", "Bus initialisation is already running") + ) + + script = os.path.basename(self._bus.bas_path) + try: + self._transport.execute("STOPTASK 2") + self._transport.execute(f'RUN "{script}",4') + except (ZAuxError, OSError) as exc: + code = getattr(exc, "code", 0) + return MotionResult.failed(code, self._msg(code) if code else str(exc)) + + self._init_started_at = time.monotonic() + self._bus = BusStatus( + bus_type=self._bus.bus_type, + init_status=INIT_RUNNING, + bas_path=self._bus.bas_path, + bas_loaded=True, + init_started_at=self._init_started_at, + ) + return MotionResult.success( + self._text("正在é‡�æ–°åˆ�始化总线", "Re-initialising the bus") + ) + + def _text(self, zh: str, en: str) -> str: + return zh if self._is_zh else en + + # ----------------------------------------------------------------- polling + + def poll(self, axes: Iterable[int] | None = None) -> Snapshot: + """Read bus and axis state for one UI refresh. + + Never raises: a controller that has gone away produces a snapshot with + ``error`` set and the last known values, because a poll runs on a timer + and an exception there would either kill the timer or spam it. + """ + if not self.connected: + return Snapshot(connected=False, spec=self._spec, bus=self._bus) + + wanted = list(axes) if axes is not None else list(range(self.axis_count)) + error = "" + try: + self._refresh_bus() + except (ZAuxError, OSError) as exc: + code = getattr(exc, "code", 0) + error = self._msg(code) if code else str(exc) + logger.warning("Bus poll failed: %s", exc) + + states: list[AxisState] = [] + for axis in wanted: + try: + states.append(self._read_axis(axis)) + except (ZAuxError, OSError) as exc: + code = getattr(exc, "code", 0) + states.append( + AxisState( + axis=axis, + read_ok=False, + error=self._msg(code) if code else str(exc), + ) + ) + + return Snapshot( + connected=True, + spec=self._spec, + bus=self._bus, + axes=tuple(states), + error=error, + ) + + def _refresh_bus(self) -> None: + now = time.monotonic() + bus = self._bus + init_started = self._init_started_at + + # BUS_TYPE is present as soon as a BAS program has run at all. + bus_type = bus.bus_type + try: + raw_type = self._transport.user_var("BUS_TYPE") + bus_type = _BUS_TYPE_NAMES.get(int(raw_type), "unknown") + self._bas_loaded = True + except (ZAuxError, OSError): + # Between "downloaded" and the program's first instruction the + # globals do not exist yet, and they may never appear if the + # program failed to start. That is the timeout case, not a reason + # to forget that a download happened. + if init_started is None: + self._bas_loaded = False + + if not self._bas_loaded: + self._bus = BusStatus( + bus_type=bus_type, init_status=INIT_RUNNING, bas_loaded=False + ) + return + + init_status = bus.init_status + node_count = bus.node_count + total_axes = bus.total_axes + message = "" + + try: + init_status = int(self._transport.user_var("Bus_InitStatus")) + except (ZAuxError, OSError) as exc: + if init_started is not None and (now - init_started) > self._init_timeout: + # The vendor's own 25 s window has elapsed without the program + # publishing its globals: report a timeout, with the diagnostic + # the reference program prints, rather than raising on a timer. + init_status = INIT_FAILED + message = self._text( + "åˆ�始化超时:读ä¸�到 BUS_TYPE/Bus_InitStatus," + "请用 ZDevelop 查看 ?*ETHERCAT", + "Initialisation timed out: BUS_TYPE/Bus_InitStatus unreadable. " + "Check ?*ETHERCAT in ZDevelop.", + ) + logger.warning("Bus init timed out after %.0fs: %s", self._init_timeout, exc) + self._init_started_at = None + self._bas_loaded = False + else: + self._bus = BusStatus( + bus_type=bus_type, + init_status=INIT_RUNNING, + bas_path=bus.bas_path, + bas_loaded=True, + init_started_at=init_started, + ) + return + + if init_status != INIT_RUNNING: + self._init_started_at = None + try: + node_count = self._transport.bus_node_count(0) + total_axes = int(round(self._transport.user_var("Bus_TotalAxisnum"))) + except (ZAuxError, OSError): + pass + + self._bus = BusStatus( + bus_type=bus_type, + init_status=init_status, + node_count=node_count, + total_axes=total_axes, + bas_path=bus.bas_path, + bas_loaded=True, + init_started_at=self._init_started_at, + message=message, + ) + + def _read_axis(self, axis: int) -> AxisState: + transport = self._transport + status_raw = transport.get_axis_status(axis) + idle = transport.get_if_idle(axis) == -1 + status = AxisStatusBits(status_raw) + + # Track the homing edge the same way the reference program does: bit 6 + # set means homing is running, and the falling edge means ask the drive + # whether it actually completed. Between those two, report the last + # known answer rather than claiming homing either way. + home_status = 1 if self._home_done.get(axis, False) else 0 + if status.home_in_progress: + self._home_started[axis] = self._home_started.get(axis, time.monotonic()) + self._home_done[axis] = False + home_status = 0 + elif axis in self._home_started: + del self._home_started[axis] + try: + home_status = int(transport.bus_home_status(axis)) + except (ZAuxError, OSError): + home_status = 0 + self._home_done[axis] = home_status == 1 + + params = self.params(axis) + return AxisState( + axis=axis, + enabled=transport.get_axis_enable(axis) != 0, + atype=transport.get_atype(axis), + units=transport.get_units(axis), + speed=transport.get_speed(axis), + accel=transport.get_accel(axis), + dpos=transport.get_dpos(axis), + mpos=transport.get_mpos(axis), + status=status, + idle=idle, + home_status=home_status, + read_ok=True, + ) + + # -------------------------------------------------------------- axis setup + + def set_axis_params(self, axis: int, params: AxisParams) -> MotionResult: + """Apply units/speed/accel to the controller and remember them.""" + if not self.connected: + return MotionResult.refused(self._text("未连接控制器", "Not connected")) + if not self._known_axis(axis): + return MotionResult.refused(self._axis_range_message(axis)) + try: + self._transport.set_units(axis, params.units) + self._transport.set_speed(axis, params.speed) + self._transport.set_accel(axis, params.accel) + except (ZAuxError, OSError) as exc: + code = getattr(exc, "code", 0) + return MotionResult.failed(code, self._msg(code) if code else str(exc)) + self._params[axis] = params + return MotionResult.success() + + def set_axis_enable(self, axis: int, enabled: bool) -> MotionResult: + if not self.connected: + return MotionResult.refused(self._text("未连接控制器", "Not connected")) + if not self._known_axis(axis): + return MotionResult.refused(self._axis_range_message(axis)) + try: + self._transport.set_axis_enable(axis, enabled) + except (ZAuxError, OSError) as exc: + code = getattr(exc, "code", 0) + return MotionResult.failed(code, self._msg(code) if code else str(exc)) + return MotionResult.success( + self._text(f"è½´{axis} å·²{'使能' if enabled else '关闭'}", + f"Axis {axis} {'enabled' if enabled else 'disabled'}") + ) + + def clear_alarm(self, axis: int) -> MotionResult: + if not self.connected: + return MotionResult.refused(self._text("未连接控制器", "Not connected")) + if not self._known_axis(axis): + return MotionResult.refused(self._axis_range_message(axis)) + try: + self._transport.bus_drive_clear(axis, 0) + except (ZAuxError, OSError) as exc: + code = getattr(exc, "code", 0) + return MotionResult.failed(code, self._msg(code) if code else str(exc)) + return MotionResult.success(self._text("已清除报警", "Alarm cleared")) + + # ------------------------------------------------------------------ motion + + def _motion_guard(self, axis: int) -> MotionResult | None: + """Return the refusal for a motion command, or ``None`` if it may run.""" + if not self.connected: + return MotionResult.refused(self._text("未连接控制器", "Not connected")) + if not self._known_axis(axis): + return MotionResult.refused(self._axis_range_message(axis)) + if not self._bus.initialized: + return MotionResult.refused( + self._text( + "总线未åˆ�始化完æˆ�,ç¦�æ­¢è¿�动", + "Bus is not initialised; motion is refused", + ) + ) + return None + + def jog(self, axis: int, forward: bool) -> MotionResult: + refusal = self._motion_guard(axis) + if refusal is not None: + return refusal + try: + self._transport.jog(axis, forward) + except (ZAuxError, OSError) as exc: + code = getattr(exc, "code", 0) + return MotionResult.failed(code, self._msg(code) if code else str(exc)) + return MotionResult.success( + self._text("正转" if forward else "å��转", "Forward" if forward else "Reverse") + ) + + def move_abs(self, axis: int, target: float) -> MotionResult: + return self._move(axis, target, absolute=True) + + def move_rel(self, axis: int, distance: float) -> MotionResult: + return self._move(axis, distance, absolute=False) + + def _move(self, axis: int, value: float, *, absolute: bool) -> MotionResult: + refusal = self._motion_guard(axis) + if refusal is not None: + return refusal + if not isinstance(value, (int, float)) or not math.isfinite(float(value)): + return MotionResult.refused( + self._text("目标ä½�置请输入数字", "Enter a numeric position") + ) + try: + if absolute: + self._transport.move_abs(axis, float(value)) + else: + self._transport.move_rel(axis, float(value)) + except (ZAuxError, OSError) as exc: + code = getattr(exc, "code", 0) + return MotionResult.failed(code, self._msg(code) if code else str(exc)) + return MotionResult.success() + + def stop(self, axis: int) -> MotionResult: + """Stop one axis (decelerating stop, mode 2).""" + if not self.connected: + return MotionResult.refused(self._text("未连接控制器", "Not connected")) + if not self._known_axis(axis): + return MotionResult.refused(self._axis_range_message(axis)) + try: + self._transport.stop(axis, 2) + except (ZAuxError, OSError) as exc: + code = getattr(exc, "code", 0) + return MotionResult.failed(code, self._msg(code) if code else str(exc)) + return MotionResult.success(self._text("å·²å�œæ­¢", "Stopped")) + + def stop_all(self) -> list[MotionResult]: + """Stop every axis. Used before disconnecting.""" + return [self.stop(axis) for axis in range(self.axis_count)] + + def home(self, axis: int) -> MotionResult: + """Start driver homing (EtherCAT only, as the vendor example notes). + + Speeds and offset are written before the mode: the controller latches + them when homing starts, so setting them afterwards has no effect on + the move already in progress. + """ + refusal = self._motion_guard(axis) + if refusal is not None: + return refusal + if not self._bus.supports_sdo: + return MotionResult.refused( + self._text("rtexä¸�支æŒ�回零", "Homing is not supported over RTEX") + ) + params = self.params(axis) + if params.home_mode <= 0: + return MotionResult.refused( + self._text( + f"è½´{axis} 回零模å¼�未设置(0 ä¸�是有效模å¼�)", + f"Axis {axis} has no homing mode set (0 is not a valid mode)", + ) + ) + try: + self._transport.set_speed(axis, params.home_high) + self._transport.set_creep(axis, params.home_low) + self._transport.bus_set_datum_offset(axis, params.home_offset) + self._transport.bus_datum(axis, params.home_mode) + except (ZAuxError, OSError) as exc: + code = getattr(exc, "code", 0) + return MotionResult.failed(code, self._msg(code) if code else str(exc)) + self._home_started[axis] = time.monotonic() + self._home_done[axis] = False + return MotionResult.success(self._text("回零已å�¯åЍ", "Homing started")) + + def _known_axis(self, axis: int) -> bool: + return 0 <= int(axis) < self.axis_count + + def _axis_range_message(self, axis: int) -> str: + return self._text( + f"è½´å�·è¶…出范围 (0-{self.axis_count - 1})", + f"Axis out of range (0-{self.axis_count - 1})", + ) + + # ---------------------------------------------------------------- bus data + + def sdo_read( + self, node: int, index: int, subindex: int, data_type: int + ) -> tuple[MotionResult, int]: + """Read an EtherCAT object; returns the result and the value read.""" + refusal = self._bus_data_guard("ecat") + if refusal is not None: + return refusal, 0 + try: + value = self._transport.sdo_read(node, index, subindex, data_type) + except (ZAuxError, OSError) as exc: + code = getattr(exc, "code", 0) + return MotionResult.failed(code, self._msg(code) if code else str(exc)), 0 + return MotionResult.success(), int(value) + + def sdo_write( + self, node: int, index: int, subindex: int, data_type: int, value: int + ) -> MotionResult: + return self._bus_write( + "ecat", + lambda: self._transport.sdo_write(node, index, subindex, data_type, int(value)), + ) + + def rtex_read(self, axis: int, parameter: int) -> tuple[MotionResult, float]: + refusal = self._bus_data_guard("rtex") + if refusal is not None: + return refusal, 0.0 + try: + value = self._transport.rtex_read(axis, parameter) + except (ZAuxError, OSError) as exc: + code = getattr(exc, "code", 0) + return MotionResult.failed(code, self._msg(code) if code else str(exc)), 0.0 + return MotionResult.success(), float(value) + + def rtex_write(self, axis: int, parameter: int, value: float) -> MotionResult: + return self._bus_write( + "rtex", lambda: self._transport.rtex_write(axis, parameter, float(value)) + ) + + def _bus_data_guard(self, family: BusType) -> MotionResult | None: + if not self.connected: + return MotionResult.refused(self._text("未连接控制器", "Not connected")) + if self._bus.bus_type == "unknown": + return MotionResult.refused( + self._text( + "总线类型未知,请先åˆ�始化总线", + "Bus type is unknown; initialise the bus first", + ) + ) + if self._bus.bus_type != family: + other = "ETHERCAT" if family == "rtex" else "RTEX" + return MotionResult.refused( + self._text(f"é�ž{other}模å�—", f"This is not a {other} module") + ) + return None + + def _bus_write(self, family: BusType, action: Callable[[], None]) -> MotionResult: + refusal = self._bus_data_guard(family) + if refusal is not None: + return refusal + try: + action() + except (ZAuxError, OSError) as exc: + code = getattr(exc, "code", 0) + return MotionResult.failed(code, self._msg(code) if code else str(exc)) + return MotionResult.success() + + # ------------------------------------------------------------------ display + + def to_mm(self, axis: int, user_units: float) -> float: + """Displayed millimetres for a reading. Derived, never a measurement.""" + units = self.params(axis).units or self._units_per_mm + return user_units_to_mm( + user_units, units=units, pulses_per_mm=self._pulses_per_mm + ) + + +def _replace_bus_type(bus: BusStatus, bus_type: BusType) -> BusStatus: + return BusStatus( + bus_type=bus_type, + init_status=bus.init_status, + node_count=bus.node_count, + total_axes=bus.total_axes, + bas_path=bus.bas_path, + bas_loaded=bus.bas_loaded, + init_started_at=bus.init_started_at, + message=bus.message, + ) diff --git a/apps/autocal/src/orisys_autocal/motion/transport.py b/apps/autocal/src/orisys_autocal/motion/transport.py new file mode 100644 index 0000000..25d7dbc --- /dev/null +++ b/apps/autocal/src/orisys_autocal/motion/transport.py @@ -0,0 +1,467 @@ +"""The seam between the platform-control logic and the controller DLL. + +:class:`ZmcTransport` is what :mod:`~orisys_autocal.motion.service` talks to. +Contract: every method **raises** :class:`~orisys_app_shared.zmotion.ZAuxError` +when the controller returns non-zero, and returns plain Python values (never +ctypes objects) when it succeeds. That lets the service have one error path and +lets the tests inject a fake that fails on demand. + +Three implementations: + +* :class:`NativeTransport` — the real controller, via the vendored DLL. +* :class:`DemoTransport` — a self-consistent simulated platform, so the whole + UI can be exercised with no hardware and no DLL. +* ``FakeTransport`` in the app's test suite — the same protocol, driven by the + test rather than by a simulation. +""" + +from __future__ import annotations + +import math +import time +from typing import Protocol, runtime_checkable + +from orisys_app_shared.zmotion import ZAuxError, ZmotionClient + +from .errors import ERR_AUX_OFFSET +from .models import BusType, ConnectionSpec + + +@runtime_checkable +class ZmcTransport(Protocol): + """What the service needs from a controller connection.""" + + #: Human-readable source, e.g. the DLL directory or ``"demo"``. + source: str + + def open(self, spec: ConnectionSpec) -> None: ... + + def close(self) -> None: ... + + def search_eth(self) -> list[str]: ... + + def bas_download(self, filename: str, run_mode: int = 1) -> None: ... + + def execute(self, command: str) -> None: ... + + def user_var(self, name: str) -> float: ... + + def bus_node_count(self, slot: int = 0) -> int: ... + + def bus_home_status(self, axis: int) -> int: ... + + def bus_datum(self, axis: int, home_mode: int) -> None: ... + + def bus_set_datum_offset(self, axis: int, value: float) -> None: ... + + def bus_drive_clear(self, axis: int, mode: int = 0) -> None: ... + + def sdo_read( + self, node: int, index: int, subindex: int, data_type: int, slot: int = 0 + ) -> int: ... + + def sdo_write( + self, + node: int, + index: int, + subindex: int, + data_type: int, + value: int, + slot: int = 0, + ) -> None: ... + + def rtex_read(self, axis: int, parameter: int) -> float: ... + + def rtex_write(self, axis: int, parameter: int, value: float) -> None: ... + + def set_axis_enable(self, axis: int, enabled: bool) -> None: ... + + def set_units(self, axis: int, value: float) -> None: ... + + def get_units(self, axis: int) -> float: ... + + def set_speed(self, axis: int, value: float) -> None: ... + + def get_speed(self, axis: int) -> float: ... + + def set_accel(self, axis: int, value: float) -> None: ... + + def get_accel(self, axis: int) -> float: ... + + def set_creep(self, axis: int, value: float) -> None: ... + + def get_atype(self, axis: int) -> int: ... + + def get_axis_enable(self, axis: int) -> int: ... + + def get_dpos(self, axis: int) -> float: ... + + def get_mpos(self, axis: int) -> float: ... + + def get_axis_status(self, axis: int) -> int: ... + + def get_if_idle(self, axis: int) -> int: ... + + def jog(self, axis: int, forward: bool) -> None: ... + + def move_abs(self, axis: int, position: float) -> None: ... + + def move_rel(self, axis: int, distance: float) -> None: ... + + def stop(self, axis: int, mode: int = 2) -> None: ... + + +class NativeTransport: + """The real controller, through the vendored ZMotion runtime.""" + + def __init__(self, client: ZmotionClient | None = None) -> None: + self._client = client or ZmotionClient() + + @property + def client(self) -> ZmotionClient: + return self._client + + @property + def source(self) -> str: + return self._client.dll_dir or "zauxdll.dll (not loaded)" + + def open(self, spec: ConnectionSpec) -> None: + if spec.mode == "eth": + result = self._client.open_eth(spec.ip) + elif spec.mode == "com": + result = self._client.open_com(spec.com_id) + elif spec.mode == "pci": + result = self._client.open_pci(spec.card_num) + elif spec.mode == "local": + result = self._client.fast_open(5, spec.local_string, 1000) + else: + raise ValueError(f"{spec.mode!r} is not a native connection mode") + result.raise_for_status(f"open {spec.describe()}") + + def close(self) -> None: + self._client.close() + + def search_eth(self) -> list[str]: + value = self._client.search_eth() + # A scan that finds nothing is not an error: the reference program + # lists the configured defaults and moves on. + if not value.ok: + return [] + return [item for item in str(value.value).split() if item] + + def bas_download(self, filename: str, run_mode: int = 1) -> None: + self._client.bas_download(filename, run_mode).raise_for_status("BAS download") + + def execute(self, command: str) -> None: + self._client.execute(command).raise_for_status(command) + + def user_var(self, name: str) -> float: + return float(self._client.get_user_var(name).raise_for_status(name).value) + + def bus_node_count(self, slot: int = 0) -> int: + return int(self._client.bus_node_count(slot).raise_for_status().value) + + def bus_home_status(self, axis: int) -> int: + return int(self._client.bus_home_status(axis).raise_for_status().value) + + def bus_datum(self, axis: int, home_mode: int) -> None: + self._client.bus_datum(axis, home_mode).raise_for_status("datum") + + def bus_set_datum_offset(self, axis: int, value: float) -> None: + self._client.bus_set_datum_offset(axis, value).raise_for_status() + + def bus_drive_clear(self, axis: int, mode: int = 0) -> None: + self._client.bus_drive_clear(axis, mode).raise_for_status() + + def sdo_read( + self, node: int, index: int, subindex: int, data_type: int, slot: int = 0 + ) -> int: + return int( + self._client.sdo_read(slot, node, index, subindex, data_type) + .raise_for_status("SDO read") + .value + ) + + def sdo_write( + self, + node: int, + index: int, + subindex: int, + data_type: int, + value: int, + slot: int = 0, + ) -> None: + self._client.sdo_write(slot, node, index, subindex, data_type, value).raise_for_status( + "SDO write" + ) + + def rtex_read(self, axis: int, parameter: int) -> float: + return float(self._client.rtex_read(axis, parameter).raise_for_status().value) + + def rtex_write(self, axis: int, parameter: int, value: float) -> None: + self._client.rtex_write(axis, parameter, value).raise_for_status() + + def set_axis_enable(self, axis: int, enabled: bool) -> None: + self._client.set_axis_enable(axis, 1 if enabled else 0).raise_for_status() + + def set_units(self, axis: int, value: float) -> None: + self._client.set_units(axis, value).raise_for_status() + + def get_units(self, axis: int) -> float: + return float(self._client.get_units(axis).raise_for_status().value) + + def set_speed(self, axis: int, value: float) -> None: + self._client.set_speed(axis, value).raise_for_status() + + def get_speed(self, axis: int) -> float: + return float(self._client.get_speed(axis).raise_for_status().value) + + def set_accel(self, axis: int, value: float) -> None: + self._client.set_accel(axis, value).raise_for_status() + + def get_accel(self, axis: int) -> float: + return float(self._client.get_accel(axis).raise_for_status().value) + + def set_creep(self, axis: int, value: float) -> None: + self._client.set_creep(axis, value).raise_for_status() + + def get_atype(self, axis: int) -> int: + return int(self._client.get_atype(axis).raise_for_status().value) + + def get_axis_enable(self, axis: int) -> int: + return int(self._client.get_axis_enable(axis).raise_for_status().value) + + def get_dpos(self, axis: int) -> float: + return float(self._client.get_dpos(axis).raise_for_status().value) + + def get_mpos(self, axis: int) -> float: + return float(self._client.get_mpos(axis).raise_for_status().value) + + def get_axis_status(self, axis: int) -> int: + return int(self._client.get_axis_status(axis).raise_for_status().value) + + def get_if_idle(self, axis: int) -> int: + return int(self._client.get_if_idle(axis).raise_for_status().value) + + def jog(self, axis: int, forward: bool) -> None: + self._client.single_vmove(axis, 1 if forward else -1).raise_for_status() + + def move_abs(self, axis: int, position: float) -> None: + self._client.single_move_abs(axis, position).raise_for_status() + + def move_rel(self, axis: int, distance: float) -> None: + self._client.single_move(axis, distance).raise_for_status() + + def stop(self, axis: int, mode: int = 2) -> None: + self._client.single_cancel(axis, mode).raise_for_status() + + +class DemoTransport: + """A self-consistent simulated 5-axis platform. + + Not a mock: it keeps position, enable state and motion state so the UI's + polling, jogging and stop behaviour are all exercised without hardware. + ``BUS_TYPE`` reports EtherCAT so the SDO panel is live too. + """ + + #: Where jogging stops, in user units — keeps a demo jog bounded. + TRAVEL_LIMIT = 5000.0 + + def __init__(self, *, axes: int = 5) -> None: + self._axes = int(axes) + self._enabled = {axis: True for axis in range(self._axes)} + self._units = {axis: 10.0 for axis in range(self._axes)} + self._speed = {axis: 1000.0 for axis in range(self._axes)} + self._accel = {axis: 10000.0 for axis in range(self._axes)} + self._dpos = {axis: 0.0 for axis in range(self._axes)} + self._moving_until = {axis: 0.0 for axis in range(self._axes)} + self._homing_until = {axis: 0.0 for axis in range(self._axes)} + self._home_done = {axis: False for axis in range(self._axes)} + self._bas_loaded = False + self._init_started: float | None = None + self._opened = False + self._sdo: dict[tuple[int, int, int], int] = {} + + @property + def source(self) -> str: + return "demo (simulated platform, no hardware)" + + def open(self, spec: ConnectionSpec) -> None: + if spec.mode != "demo": + raise ZAuxError(ERR_DEMO_UNSUPPORTED, "DemoTransport only serves demo mode") + self._opened = True + + def close(self) -> None: + self._opened = False + + def search_eth(self) -> list[str]: + return ["127.0.0.1"] + + def bas_download(self, filename: str, run_mode: int = 1) -> None: + if not self._opened: + raise ZAuxError(ERR_NOT_OPEN, "not connected") + self._bas_loaded = True + # ECAT.bas delays 3 s before scanning; mimic the delay so the UI's + # "initialising" state is visible rather than instantaneous. + self._init_started = time.monotonic() + DEMO_INIT_DELAY_S + + def execute(self, command: str) -> None: + if not self._opened: + raise ZAuxError(ERR_NOT_OPEN, "not connected") + if "RUN" in command.upper() and self._bas_loaded: + self._init_started = time.monotonic() + DEMO_INIT_DELAY_S + + def user_var(self, name: str) -> float: + if not self._bas_loaded: + # Mirrors the real controller: unknown/absent variable. + raise ZAuxError(ERR_AUX_OFFSET + 2, f"{name} is not defined") + if name == "BUS_TYPE": + return 0.0 + if name == "Bus_TotalAxisnum": + return float(self._axes) + if name == "Bus_InitStatus": + if self._init_started is not None and time.monotonic() >= self._init_started: + return 1.0 + return -1.0 + raise ZAuxError(ERR_AUX_OFFSET + 2, f"{name} is not defined") + + def _require_axis(self, axis: int) -> None: + if not (0 <= axis < self._axes): + raise ZAuxError(ERR_AUX_OFFSET + 2, f"axis {axis} does not exist") + + def bus_node_count(self, slot: int = 0) -> int: + return self._axes + + def bus_home_status(self, axis: int) -> int: + self._require_axis(axis) + return 1 if self._home_done[axis] else 0 + + def bus_datum(self, axis: int, home_mode: int) -> None: + self._require_axis(axis) + self._homing_until[axis] = time.monotonic() + DEMO_HOME_S + + def bus_set_datum_offset(self, axis: int, value: float) -> None: + self._require_axis(axis) + + def bus_drive_clear(self, axis: int, mode: int = 0) -> None: + self._require_axis(axis) + + def sdo_read( + self, node: int, index: int, subindex: int, data_type: int, slot: int = 0 + ) -> int: + return self._sdo.get((node, index, subindex), 0) + + def sdo_write( + self, + node: int, + index: int, + subindex: int, + data_type: int, + value: int, + slot: int = 0, + ) -> None: + self._sdo[(node, index, subindex)] = int(value) + + def rtex_read(self, axis: int, parameter: int) -> float: + raise ZAuxError(ERR_AUX_OFFSET + 3, "RTEX is not available in demo mode") + + def rtex_write(self, axis: int, parameter: int, value: float) -> None: + raise ZAuxError(ERR_AUX_OFFSET + 3, "RTEX is not available in demo mode") + + def set_axis_enable(self, axis: int, enabled: bool) -> None: + self._require_axis(axis) + self._enabled[axis] = bool(enabled) + + def set_units(self, axis: int, value: float) -> None: + self._require_axis(axis) + self._units[axis] = float(value) + + def get_units(self, axis: int) -> float: + self._require_axis(axis) + return self._units[axis] + + def set_speed(self, axis: int, value: float) -> None: + self._require_axis(axis) + self._speed[axis] = float(value) + + def get_speed(self, axis: int) -> float: + self._require_axis(axis) + return self._speed[axis] + + def set_accel(self, axis: int, value: float) -> None: + self._require_axis(axis) + self._accel[axis] = float(value) + + def get_accel(self, axis: int) -> float: + self._require_axis(axis) + return self._accel[axis] + + def set_creep(self, axis: int, value: float) -> None: + self._require_axis(axis) + + def get_atype(self, axis: int) -> int: + self._require_axis(axis) + return 65 # position mode, as ECAT.bas configures + + def get_axis_enable(self, axis: int) -> int: + self._require_axis(axis) + return 1 if self._enabled[axis] else 0 + + def get_dpos(self, axis: int) -> float: + self._require_axis(axis) + return self._dpos[axis] + + def get_mpos(self, axis: int) -> float: + self._require_axis(axis) + # Follow the command position with a small lag while moving. + return self._dpos[axis] * 0.999 + + def get_axis_status(self, axis: int) -> int: + self._require_axis(axis) + status = 0 + if self._homing_until[axis] > time.monotonic(): + status |= 64 # homing in progress + if self._moving_until[axis] > time.monotonic(): + status |= 2 # moving + return status + + def get_if_idle(self, axis: int) -> int: + self._require_axis(axis) + moving = self._moving_until[axis] > time.monotonic() + homing = self._homing_until[axis] > time.monotonic() + return 0 if (moving or homing) else -1 + + def jog(self, axis: int, forward: bool) -> None: + self._require_axis(axis) + self._moving_until[axis] = time.monotonic() + DEMO_JOG_S + + def move_abs(self, axis: int, position: float) -> None: + self._require_axis(axis) + if not math.isfinite(position): + raise ZAuxError(ERR_AUX_OFFSET + 2, "position is not finite") + self._dpos[axis] = float(position) + self._moving_until[axis] = time.monotonic() + DEMO_MOVE_S + + def move_rel(self, axis: int, distance: float) -> None: + self._require_axis(axis) + self.move_abs(axis, self._dpos[axis] + float(distance)) + + def stop(self, axis: int, mode: int = 2) -> None: + self._require_axis(axis) + self._moving_until[axis] = 0.0 + self._homing_until[axis] = 0.0 + self._home_done[axis] = True + + def bus_type(self) -> BusType: + return "ecat" + + +#: Demo timing constants (seconds), chosen so a human sees each state. +DEMO_INIT_DELAY_S = 1.5 +DEMO_JOG_S = 1.0 +DEMO_MOVE_S = 0.8 +DEMO_HOME_S = 2.0 + +#: Demo-only failure codes, kept outside the documented vendor range on purpose. +ERR_NOT_OPEN = 30500 +ERR_DEMO_UNSUPPORTED = 30501 diff --git a/apps/autocal/src/orisys_autocal/motion/units.py b/apps/autocal/src/orisys_autocal/motion/units.py new file mode 100644 index 0000000..0cd7f77 --- /dev/null +++ b/apps/autocal/src/orisys_autocal/motion/units.py @@ -0,0 +1,72 @@ +"""User-unit to millimetre conversion. + +The numbers come from bench measurement on the platform, transcribed from the +vendor reference program's comments:: + + # è½´0(X)/è½´1(Y) 实测: UNITS=10 æ—¶ 1000用户å�•ä½� = 2mm → æ¯�毫米 5000 脉冲 + # 当é‡�5 → 1000å�•ä½�=1mm,ä¸�是100å�•ä½�=1mm + +so ``PULSES_PER_MM = 5000`` is the calibration constant and ``UNITS = 10`` is +the pulse equivalent the platform is configured with. The displayed millimetre +value is therefore *derived*, not measured: the UI labels it as such, and no +code path may treat it as a calibrated length. +""" + +from __future__ import annotations + +import math + +#: Measured: 5000 pulses per millimetre (see the module docstring). +PULSES_PER_MM = 5000.0 + +#: Pulse equivalent the platform is configured with by default. +DEFAULT_UNITS = 10.0 + +#: Move-parameter defaults, matching the reference program's UI initialisation. +DEFAULT_SPEED = 1000.0 +DEFAULT_ACCEL = 10000.0 + + +def safe_float(text: object, fallback: float) -> float: + """Parse ``text`` as a finite float, falling back on anything unusable. + + A blank, non-numeric, zero or non-finite entry must not silently become a + pulse equivalent of zero — on a motion controller that is a divide-by-zero + waiting to happen, or an unbounded move. + """ + try: + value = float(str(text).strip()) + except (TypeError, ValueError): + return fallback + if not math.isfinite(value) or value == 0.0: + return fallback + return value + + +def user_units_to_mm( + value: float, *, units: float = DEFAULT_UNITS, pulses_per_mm: float = PULSES_PER_MM +) -> float: + """Convert a controller user-unit value to millimetres. + + Args: + value: a ``DPOS``/``MPOS`` reading or move distance in user units. + units: pulse equivalent in force on the axis. + pulses_per_mm: the platform's calibration constant. + + Returns: + Millimetres. Not finite when the inputs are not usable, so a caller + that forgets to validate sees an obvious NaN rather than a plausible + wrong number. + """ + if pulses_per_mm <= 0: + return math.nan + return float(value) * float(units) / float(pulses_per_mm) + + +def mm_to_user_units( + value: float, *, units: float = DEFAULT_UNITS, pulses_per_mm: float = PULSES_PER_MM +) -> float: + """Inverse of :func:`user_units_to_mm` (for an mm-entered move).""" + if units <= 0: + return math.nan + return float(value) * float(pulses_per_mm) / float(units) diff --git a/apps/autocal/src/orisys_autocal/preferences.py b/apps/autocal/src/orisys_autocal/preferences.py new file mode 100644 index 0000000..a02da39 --- /dev/null +++ b/apps/autocal/src/orisys_autocal/preferences.py @@ -0,0 +1,179 @@ +"""AutoCal's preference schema and storage. + +The shared store keys off whatever schema it is handed, so AutoCal gets its own +key set rather than inheriting the studio's camera/plot/3D keys. The values here +are the ones an operator would otherwise retype at every start-up. +""" + +from __future__ import annotations + +from pathlib import Path +from typing import Any + +from orisys_app_shared import prefs as _prefs +from orisys_app_shared.paths import preference_path + +from .motion.service import PLATFORM_AXES +from .motion.units import DEFAULT_ACCEL, DEFAULT_SPEED, DEFAULT_UNITS + +#: Connection modes, in the order the combo offers them. +CONNECTION_MODES = ("eth", "com", "pci", "local", "demo") + +#: Addresses the controller is normally reached on, tried first by a scan. +DEFAULT_CONTROLLER_IPS = ("192.168.0.11", "127.0.0.1") + +#: Grid modes the sequence profile offers (workflow P5). +SURFACE_MODES = ("flat", "curved") + +#: Point visiting orders (workflow P5). +POINT_ORDERS = ("row", "serpentine", "distance") + +#: The design target is a well-lit bench, so light is the default; dark stays +#: selectable for a dim room. +DEFAULT_THEME = "light" + + +def _default_sequence_profile() -> dict[str, Any]: + """The point-generation and run parameters of workflow P5. + + One profile is global for now; named, saved sequences come with the runner. + The numbers are starting points an operator confirms at the bench, not + measured values — in particular ``home_mode``-style unknowns are left at 0 so + nothing is silently inherited from another machine. + """ + return { + # --- grid shape + "mode": "flat", + "pitch_mm": 2.0, + "margin_mm": 1.0, + "radius_mm": 0.0, + # --- motion + "clear_height_mm": 5.0, + "approach_speed_mm_s": 2.0, + "press_speed_mm_s": 0.5, + "press_depth_mm": 0.2, + "dwell_s": 0.5, + # --- measurement + "settle_window_s": 0.5, + "repeats": 3, + # --- order + "order": "serpentine", + } + + +def _default_safety_limits() -> dict[str, float]: + """Workflow P0: the limits that must have a value before anything moves. + + ``0`` means "not set" for the ones where a real value is required, and the + app reports that at the P0 gate rather than treating it as unlimited. + """ + return { + "max_travel_mm": 100.0, + "max_descent_mm": 10.0, + "max_press_depth_mm": 1.0, + "follow_error_mm": 0.5, + #: How far the axis may descend looking for contact before the run is + #: aborted (workflow P7, no-contact abort). + "contact_search_mm": 3.0, + } + + +def _default_sensor_setup() -> dict[str, Any]: + """Workflow P3/P4: what is under test, what touches it, and the transform. + + ``sensor_to_platform`` stays empty until the transform is established by + probing known features; the residual travels with it so a re-fixtured sensor + cannot silently reuse a stale transform. + """ + return { + "sensor_type": "box", + "config_ref": "", + "geometry_id": "", + #: Which axis presses, and the probe tip offset from the platform's + #: reference point. Empty offset means "not set", which blocks P5. + "press_axis": 2, + "probe_tip_offset_mm": [0.0, 0.0, 0.0], + "probe_tip_set": False, + #: 4x4 row-major sensor -> platform transform, plus how well it fitted. + "sensor_to_platform": [], + "transform_residual_mm": 0.0, + "transform_feature_count": 0, + } + + +def _default_axis_params() -> dict[str, dict[str, float | int]]: + """One parameter block per platform axis. + + ``home_mode`` starts at 0, which is **not** a valid CiA-402 homing mode: + the operator must choose one for the drive in front of them rather than + inherit a number from another machine. The reference program pre-filled 17, + which is a specific drive's mode, so it is deliberately not copied here. + """ + return { + str(axis): { + "units": DEFAULT_UNITS, + "speed": DEFAULT_SPEED, + "accel": DEFAULT_ACCEL, + "creep": 10.0, + "home_mode": 0, + "home_high": 50.0, + "home_low": 10.0, + "home_offset": 0.0, + } + for axis in range(PLATFORM_AXES) + } + + +def default_preferences() -> dict[str, Any]: + """AutoCal's default preference document.""" + return { + "language": "zh_CN", + "theme": DEFAULT_THEME, + "window_geometry": None, + "connection": { + "mode": "eth", + "ip": DEFAULT_CONTROLLER_IPS[0], + "com_id": 0, + "card_num": 0, + "local_string": "0", + }, + # Remembered so "download the BAS program" is one click after the first + # time, instead of re-picking the file every session. + "bas_path": "", + #: Displayed millimetres are derived from this; it is a bench-measured + #: constant, not a calibrated length (see motion/units.py). + "units_per_mm": DEFAULT_UNITS, + "state_poll_ms": 100, + "axis_params": _default_axis_params(), + #: {node, index, subindex, type} of the last SDO read/written, so the + #: operator can repeat a drive-setting check quickly. + "sdo_last": {"node": 0, "index": 24704, "subindex": 0, "type": 0}, + "rtex_last": {"axis": 0, "parameter": 0}, + "show_diagnostics": False, + # --- workflow blocks (see apps/autocal/docs/workflow.md) -------------- + #: P0: limits enforced from P2 onward. + "safety_limits": _default_safety_limits(), + #: P3/P4: sensor under test, probe tip, sensor<->platform transform. + "sensor_setup": _default_sensor_setup(), + #: P5: grid generation and run parameters. + "sequence_profile": _default_sequence_profile(), + } + + +def load_preferences() -> dict[str, Any]: + """Stored preferences with AutoCal's defaults filling the gaps.""" + prefs = _prefs.load_preferences(default_preferences()) + # A stored document from an older build may miss a newly added axis block. + axis_params = prefs.setdefault("axis_params", {}) + for axis, values in _default_axis_params().items(): + axis_params.setdefault(axis, values) + return prefs + + +def save_preferences(prefs: dict[str, Any]) -> Path: + return _prefs.save_preferences(prefs, default_preferences()) + + +def path() -> Path: + """Where AutoCal's ``preference.json`` lives (for the About box).""" + return preference_path() diff --git a/apps/autocal/src/orisys_autocal/ui/__init__.py b/apps/autocal/src/orisys_autocal/ui/__init__.py new file mode 100644 index 0000000..03e0fb1 --- /dev/null +++ b/apps/autocal/src/orisys_autocal/ui/__init__.py @@ -0,0 +1,17 @@ +"""AutoCal's windowed user interface.""" + +from .axis_panel import AxisPanel +from .brand_bar import BrandBar +from .bus_data_panel import BusDataPanel +from .bus_panel import BusPanel +from .connection_panel import ConnectionPanel +from .window import AutoCalMainWindow + +__all__ = [ + "AutoCalMainWindow", + "AxisPanel", + "BrandBar", + "BusDataPanel", + "BusPanel", + "ConnectionPanel", +] diff --git a/apps/autocal/src/orisys_autocal/ui/axis_panel.py b/apps/autocal/src/orisys_autocal/ui/axis_panel.py new file mode 100644 index 0000000..ff3a38e --- /dev/null +++ b/apps/autocal/src/orisys_autocal/ui/axis_panel.py @@ -0,0 +1,611 @@ +"""Axis parameters, live state, and motion commands for all five axes. + +Two halves, both always visible because they answer different questions: + +* the **parameter form** edits one axis at a time (units, speed, accel, homing) + and applies it to the controller; +* the **state table** shows every axis at once — enable, position in user units + and millimetres, motion, homing — with that axis's actions in the last column. + +Keeping the whole platform in one table is a deliberate change from the vendor +program, which acts on whichever axis number happens to be typed in a box. On a +five-axis platform, acting on the wrong axis is the expensive mistake. +""" + +from __future__ import annotations + +from PySide6.QtCore import Qt, Signal +from PySide6.QtGui import QBrush, QColor +from PySide6.QtWidgets import ( + QGridLayout, + QGroupBox, + QHBoxLayout, + QLabel, + QLineEdit, + QPushButton, + QTableWidget, + QTableWidgetItem, + QVBoxLayout, + QWidget, +) + +from orisys_app_shared.i18n import t + +from ..motion import ( + DEFAULT_ACCEL, + DEFAULT_SPEED, + DEFAULT_UNITS, + AxisParams, + AxisState, + Snapshot, + safe_float, + user_units_to_mm, +) + +#: Data columns in the state table, in display order. +#: +#: Seven, not thirteen. Matching the full frame of a drive here made the middle +#: columns illegible at a real window width, and a table nobody can read protects +#: nobody. What does not fit is shown for the *selected* axis on the detail line +#: below the table — see :meth:`AxisPanel._detail_text`. +COLUMNS = ( + "axes.axis", + "axes.enable", + "axes.units", + "axes.speed", + "axes.dpos", + "axes.dpos_mm", + "axes.status", +) + +#: The actions column follows the data columns. +ACTIONS_COLUMN = len(COLUMNS) + +#: Row height in pixels. Must fit the per-row buttons: a QTableWidget does not +#: derive its row height from a cell widget, and the shared stylesheet gives a +#: button 28 px of minimum height plus 16 px of padding (44 px total) unless it +#: carries the ``rail`` property, which the theme defines as the compact variant. +ROW_HEIGHT = 36 + +#: How many axis rows the panel insists on showing without scrolling. Set to all +#: of them: on a five-axis platform a clipped fifth row reads as a missing drive. +#: This is also what makes the splitter give the panel the height it needs — Qt +#: distributes a splitter from the children's minimum sizes, so a smaller value +#: here means a scrollbar instead of five visible axes. +MIN_VISIBLE_ROWS = 5 + +#: Height of the small parameter fields. Pinned so the parameter form keeps to +#: two rows: the fields' natural height pushes that form to ~136 px, which costs +#: one and a half axis rows in the table below it. +FIELD_HEIGHT = 28 + +#: Column widths by index. With the project's thirteen columns the widths had to +#: shrink below the headers; seven can each be comfortable. +_COLUMN_WIDTHS = { + 0: 46, + 1: 96, + 2: 100, + 3: 100, + 4: 130, + 5: 130, + 6: 130, + ACTIONS_COLUMN: 230, +} + + +def parse_optional_float(text: str, fallback: float) -> float: + """A numeric field's value, or the fallback when it is blank/unusable.""" + if str(text).strip() == "": + return fallback + return safe_float(text, fallback) + + +class AxisPanel(QGroupBox): + """Parameters plus live state for the platform's axes.""" + + paramsApplied = Signal(int, object) + enableToggled = Signal(int, bool) + jogRequested = Signal(int, bool) + stopRequested = Signal(int) + stopAllRequested = Signal() + moveAbsRequested = Signal(int, float) + moveRelRequested = Signal(int, float) + homeRequested = Signal(int) + clearAlarmRequested = Signal(int) + + def __init__( + self, + axis_count: int, + params: dict[int, AxisParams] | None = None, + *, + units_per_mm: float = DEFAULT_UNITS, + parent: QWidget | None = None, + ) -> None: + super().__init__(parent) + self.setObjectName("groupBox") + self.axis_count = int(axis_count) + self._params = dict(params or {}) + self._units_per_mm = units_per_mm + self._connected = False + self._bus_ready = False + self._available_axes = 0 + self._selected_axis = 0 + self._snapshot = Snapshot() + self._rows: list[dict] = [] + + outer = QVBoxLayout(self) + outer.setContentsMargins(10, 8, 10, 10) + outer.setSpacing(6) + + outer.addWidget(self._build_params()) + outer.addWidget(self._build_target_row()) + # Stretch factor 1: the table is the only part of this panel that may + # grow, so every spare pixel goes to a further axis row rather than to + # padding around the parameter form. + outer.addWidget(self._build_table(), 1) + outer.addWidget(self._build_actions()) + + self.retranslate() + self._reread_params() + # Controls start disabled and a snapshot enables them. Qt's default for + # a new widget is enabled, and whether a poll happens to arrive before + # the window is shown is a race — so the safe state is set explicitly + # here rather than inferred from the first snapshot. + self._refresh_availability() + + # ------------------------------------------------------------------ widgets + + def _build_params(self) -> QWidget: + box = QWidget(self) + grid = QGridLayout(box) + grid.setContentsMargins(0, 0, 0, 0) + grid.setHorizontalSpacing(8) + grid.setVerticalSpacing(4) + + def label(key: str) -> QLabel: + widget = QLabel(box) + widget.setObjectName("hintLabel") + return widget + + def edit(width: int) -> QLineEdit: + widget = QLineEdit(box) + widget.setFixedWidth(width) + widget.setFixedHeight(FIELD_HEIGHT) + return widget + + self.axis_label = label("axes.axis") + self.axis_combo = QWidget(box) + self.axis_index_label = QLabel("0", box) + self.axis_index_label.setObjectName("statusValue") + + self.units_label = label("axes.units") + self.units_edit = edit(80) + self.speed_label = label("axes.speed") + self.speed_edit = edit(80) + self.accel_label = label("axes.accel") + self.accel_edit = edit(90) + + self.home_mode_label = label("axes.home_mode") + self.home_mode_edit = edit(60) + self.home_high_label = label("axes.home_high") + self.home_high_edit = edit(60) + self.home_low_label = label("axes.home_low") + self.home_low_edit = edit(60) + self.home_offset_label = label("axes.home_offset") + self.home_offset_edit = edit(60) + + self.apply_button = QPushButton(box) + self.apply_button.setObjectName("primaryButton") + self.apply_button.setProperty("rail", True) + self.apply_button.setFixedHeight(FIELD_HEIGHT) + self.apply_button.clicked.connect(self._on_apply) + self.home_button = QPushButton(box) + self.home_button.setProperty("rail", True) + self.home_button.setFixedHeight(FIELD_HEIGHT) + self.home_button.clicked.connect(lambda: self.homeRequested.emit(self.selected_axis)) + self.clear_alarm_button = QPushButton(box) + self.clear_alarm_button.setProperty("rail", True) + self.clear_alarm_button.setFixedHeight(FIELD_HEIGHT) + self.clear_alarm_button.clicked.connect( + lambda: self.clearAlarmRequested.emit(self.selected_axis) + ) + + grid.addWidget(self.axis_label, 0, 0) + grid.addWidget(self.axis_index_label, 0, 1) + grid.addWidget(self.units_label, 0, 2) + grid.addWidget(self.units_edit, 0, 3) + grid.addWidget(self.speed_label, 0, 4) + grid.addWidget(self.speed_edit, 0, 5) + grid.addWidget(self.accel_label, 0, 6) + grid.addWidget(self.accel_edit, 0, 7) + + grid.addWidget(self.home_mode_label, 1, 0) + grid.addWidget(self.home_mode_edit, 1, 1) + grid.addWidget(self.home_high_label, 1, 2) + grid.addWidget(self.home_high_edit, 1, 3) + grid.addWidget(self.home_low_label, 1, 4) + grid.addWidget(self.home_low_edit, 1, 5) + grid.addWidget(self.home_offset_label, 1, 6) + grid.addWidget(self.home_offset_edit, 1, 7) + + grid.addWidget(self.apply_button, 2, 0, 1, 2) + grid.addWidget(self.home_button, 2, 2, 1, 2) + grid.addWidget(self.clear_alarm_button, 2, 4, 1, 2) + return box + + def _build_target_row(self) -> QWidget: + box = QWidget(self) + row = QHBoxLayout(box) + row.setContentsMargins(0, 0, 0, 0) + row.setSpacing(8) + self.target_label = QLabel(box) + self.target_edit = QLineEdit(box) + self.target_edit.setFixedWidth(120) + self.move_abs_button = QPushButton(box) + self.move_abs_button.clicked.connect(self._on_move_abs) + self.move_rel_button = QPushButton(box) + self.move_rel_button.clicked.connect(self._on_move_rel) + self.mm_hint = QLabel(box) + self.mm_hint.setObjectName("hintLabel") + self.mm_hint.setWordWrap(True) + row.addWidget(self.target_label) + row.addWidget(self.target_edit) + row.addWidget(self.move_abs_button) + row.addWidget(self.move_rel_button) + row.addStretch(1) + row.addWidget(self.mm_hint) + return box + + def _build_table(self) -> QWidget: + self.table = QTableWidget(self.axis_count, len(COLUMNS) + 1, self) + self.table.verticalHeader().setVisible(False) + self.table.setSelectionMode(QTableWidget.SelectionMode.NoSelection) + self.table.setEditTriggers(QTableWidget.EditTrigger.NoEditTriggers) + self.table.setAlternatingRowColors(True) + for column in range(len(COLUMNS)): + self.table.setColumnWidth(column, _COLUMN_WIDTHS.get(column, 84)) + self.table.setColumnWidth(ACTIONS_COLUMN, _COLUMN_WIDTHS[ACTIONS_COLUMN]) + # The per-row buttons live in a cell widget, and Qt does not size a row + # to its cell widgets. Without an explicit section height the row stays + # at the font height and the buttons are clipped. + self.table.verticalHeader().setDefaultSectionSize(ROW_HEIGHT) + # A minimum rather than the full five rows: demanding 5*ROW_HEIGHT plus a + # header forces the panel to be taller than its share of a 900 px window, + # and the splitter then clips the last drive — which reads as a missing + # axis. The table scrolls if it is ever squeezed below this. + self.table.setMinimumHeight(40 + ROW_HEIGHT * MIN_VISIBLE_ROWS) + self.table.cellClicked.connect(self._on_cell_clicked) + + for row in range(self.axis_count): + self._rows.append(self._build_row(row)) + return self.table + + def _build_row(self, row: int) -> dict: + for column in range(len(COLUMNS)): + item = QTableWidgetItem("") + if column >= 2: + item.setTextAlignment(Qt.AlignmentFlag.AlignHCenter) + self.table.setItem(row, column, item) + + enable_button = QPushButton(t("axes.enable_off"), self.table) + enable_button.setCheckable(True) + enable_button.setProperty("rail", True) + enable_button.setMinimumWidth(84) + enable_button.setFixedHeight(28) + enable_button.clicked.connect( + lambda checked, axis=row: self.enableToggled.emit(axis, bool(checked)) + ) + self.table.setCellWidget(row, 1, enable_button) + + controls = QWidget(self.table) + layout = QHBoxLayout(controls) + layout.setContentsMargins(2, 2, 2, 2) + layout.setSpacing(4) + + def make(key: str, slot) -> QPushButton: + button = QPushButton(t(key), controls) + # "rail" is the theme's compact button: without it the shared + # stylesheet forces 44 px, which no longer fits the row. + button.setProperty("rail", True) + button.setMinimumWidth(56) + button.setFixedHeight(28) + button.clicked.connect(lambda _checked=False, a=row: slot(a)) + layout.addWidget(button) + return button + + self.table.setCellWidget(row, ACTIONS_COLUMN, controls) + return { + "enable_button": enable_button, + "fwd_button": make("axes.jog_fwd", lambda axis: self.jogRequested.emit(axis, True)), + "rev_button": make("axes.jog_rev", lambda axis: self.jogRequested.emit(axis, False)), + "stop_button": make("axes.stop", self.stopRequested.emit), + } + + def _build_actions(self) -> QWidget: + box = QWidget(self) + column = QVBoxLayout(box) + column.setContentsMargins(0, 0, 0, 0) + column.setSpacing(4) + + self._detail_label = QLabel(t("axes.detail_none", axis=0), box) + self._detail_label.setObjectName("hintLabel") + self._detail_label.setWordWrap(True) + column.addWidget(self._detail_label) + + row = QHBoxLayout() + row.setContentsMargins(0, 0, 0, 0) + row.setSpacing(8) + self.stop_all_button = QPushButton(box) + self.stop_all_button.setObjectName("dangerButton") + self.stop_all_button.clicked.connect(self.stopAllRequested) + self.enabled_count_label = QLabel(box) + self.enabled_count_label.setObjectName("hintLabel") + row.addWidget(self.stop_all_button) + row.addStretch(1) + row.addWidget(self.enabled_count_label) + column.addLayout(row) + return box + + # ------------------------------------------------------------------- state + + @property + def selected_axis(self) -> int: + """The axis the parameter form applies to.""" + return self._selected_axis + + def set_selected_axis(self, axis: int) -> None: + self._selected_axis = max(0, min(int(axis), self.axis_count - 1)) + self.axis_index_label.setText(str(self._selected_axis)) + self._reread_params() + if hasattr(self, "_detail_label"): + self._detail_label.setText(self._detail_text()) + + def set_connected(self, connected: bool) -> None: + self._connected = bool(connected) + self._refresh_availability() + + def set_axis_count(self, count: int) -> None: + """Dim rows for axes the bus did not report (a missing drive).""" + self._available_axes = max(1, min(int(count), self.axis_count)) + self._refresh_availability() + self._recolour_rows() + + def _axis_present(self, row: int) -> bool: + return not self._available_axes or row < self._available_axes + + def _refresh_availability(self) -> None: + """Recompute every control's enabled state from connection + bus.""" + connected = self._connected + for widget in ( + self.units_edit, + self.speed_edit, + self.accel_edit, + self.home_mode_edit, + self.home_high_edit, + self.home_low_edit, + self.home_offset_edit, + self.target_edit, + self.apply_button, + self.home_button, + self.clear_alarm_button, + self.move_abs_button, + self.move_rel_button, + self.stop_all_button, + ): + widget.setEnabled(connected) + + for row, widgets in enumerate(self._rows): + present = self._axis_present(row) + widgets["enable_button"].setEnabled(connected and present) + widgets["stop_button"].setEnabled(connected and present) + # Jogging additionally requires an initialised bus. + for key in ("fwd_button", "rev_button"): + widgets[key].setEnabled(connected and present and self._bus_ready) + + def _recolour_rows(self) -> None: + """Dim the data cells of axes the bus did not report.""" + for row in range(self.axis_count): + present = self._axis_present(row) + for column in range(len(COLUMNS)): + item = self.table.item(row, column) + if item is not None: + item.setForeground(_row_brush(present)) + + def update_snapshot(self, snapshot: Snapshot) -> None: + """Render one poll: values, motion state, and the enable buttons.""" + self._connected = snapshot.connected + bus_axes = int(snapshot.bus.total_axes) + if bus_axes: + self._available_axes = max(1, min(bus_axes, self.axis_count)) + self._bus_ready = snapshot.bus.initialized + + for row in range(self.axis_count): + state = snapshot.axis(row) + if state is None: + continue + values = { + 0: str(row), + 1: t("axes.enable_on") if state.enabled else t("axes.enable_off"), + 2: _number(state.units, 3), + 3: _number(state.speed, 1), + 4: _number(state.dpos, 3), + 5: _millimetres(state.units, state.dpos), + 6: _status_text(state), + } + for column, text in values.items(): + item = self.table.item(row, column) + if item is not None: + item.setText(text) + button = self._rows[row]["enable_button"] + button.setChecked(bool(state.enabled)) + button.setText(t("axes.enable_on") if state.enabled else t("axes.enable_off")) + if state.status.home_in_progress: + button.setToolTip(t("axes.home_running")) + elif state.status.alarm: + button.setToolTip(t("action.failed")) + else: + button.setToolTip("") + + self._snapshot = snapshot + detail = self._detail_label + detail.setText(self._detail_text()) + enabled = sum( + 1 + for row in range(self.axis_count) + if (snapshot.axis(row) is not None and snapshot.axis(row).enabled) + ) + self.enabled_count_label.setText( + t("axes.enabled_count", on=enabled, total=self.axis_count) + ) + self._refresh_availability() + self._recolour_rows() + + def _detail_text(self) -> str: + """Everything about the selected axis that the seven columns cannot hold. + + The table is deliberately narrow enough to read; this line is where the + drive's full frame goes — axis type, acceleration, feedback position, the + raw status word, and homing. + """ + state = self._snapshot.axis(self._selected_axis) + if state is None: + return t("axes.detail_none", axis=self._selected_axis) + return t( + "axes.detail", + axis=self._selected_axis, + atype=state.atype, + accel=_number(state.accel, 1), + mpos=_number(state.mpos, 3), + mpos_mm=_millimetres(state.units, state.mpos), + status=state.status.raw, + home=_home_text(state), + ) + + # ---------------------------------------------------------------- actions + + def _on_cell_clicked(self, row: int, _column: int) -> None: + self.set_selected_axis(row) + + def _reread_params(self) -> None: + params = self._params.get(self._selected_axis, AxisParams()) + self.units_edit.setText(_number(params.units, 3)) + self.speed_edit.setText(_number(params.speed, 1)) + self.accel_edit.setText(_number(params.accel, 1)) + self.home_mode_edit.setText(str(int(params.home_mode))) + self.home_high_edit.setText(_number(params.home_high, 1)) + self.home_low_edit.setText(_number(params.home_low, 1)) + self.home_offset_edit.setText(_number(params.home_offset, 3)) + + def current_params(self) -> AxisParams: + """The form's values, with unusable entries replaced by defaults.""" + return AxisParams( + units=parse_optional_float(self.units_edit.text(), DEFAULT_UNITS), + speed=parse_optional_float(self.speed_edit.text(), DEFAULT_SPEED), + accel=parse_optional_float(self.accel_edit.text(), DEFAULT_ACCEL), + creep=parse_optional_float(self.home_low_edit.text(), 10.0), + home_mode=int(parse_optional_float(self.home_mode_edit.text(), 0)), + home_high=parse_optional_float(self.home_high_edit.text(), 50.0), + home_low=parse_optional_float(self.home_low_edit.text(), 10.0), + home_offset=parse_optional_float(self.home_offset_edit.text(), 0.0), + ) + + def stored_params(self) -> dict[int, AxisParams]: + """Every axis's parameters, for persistence.""" + return dict(self._params) + + def _on_apply(self) -> None: + params = self.current_params() + self._params[self._selected_axis] = params + self.paramsApplied.emit(self._selected_axis, params) + + def _on_move_abs(self) -> None: + value = self._target_value() + if value is not None: + self.moveAbsRequested.emit(self.selected_axis, value) + + def _on_move_rel(self) -> None: + value = self._target_value() + if value is not None: + self.moveRelRequested.emit(self.selected_axis, value) + + def _target_value(self) -> float | None: + text = self.target_edit.text().strip() + if text == "": + return None + try: + return float(text) + except ValueError: + return None + + # ------------------------------------------------------------- translations + + def retranslate(self) -> None: + self.setTitle(t("axes.title")) + self.axis_label.setText(t("axes.axis")) + self.units_label.setText(t("axes.units")) + self.speed_label.setText(t("axes.speed")) + self.accel_label.setText(t("axes.accel")) + self.home_mode_label.setText(t("axes.home_mode")) + self.home_high_label.setText(t("axes.home_high")) + self.home_low_label.setText(t("axes.home_low")) + self.home_offset_label.setText(t("axes.home_offset")) + self.apply_button.setText(t("axes.apply")) + self.home_button.setText(t("axes.home")) + self.clear_alarm_button.setText(t("axes.clear_alarm")) + self.target_label.setText(t("axes.target")) + self.move_abs_button.setText(t("axes.move_abs")) + self.move_rel_button.setText(t("axes.move_rel")) + self.stop_all_button.setText(t("axes.stop_all")) + self.mm_hint.setText(t("axes.mm_derived_tip")) + if hasattr(self, "_detail_label"): + self._detail_label.setText(self._detail_text()) + self.table.setHorizontalHeaderLabels( + [t(key) for key in COLUMNS] + [t("axes.controls")] + ) + for row in range(self.axis_count): + button = self._rows[row]["enable_button"] + button.setText(t("axes.enable_on") if button.isChecked() else t("axes.enable_off")) + self._rows[row]["fwd_button"].setText(t("axes.jog_fwd")) + self._rows[row]["rev_button"].setText(t("axes.jog_rev")) + self._rows[row]["stop_button"].setText(t("axes.stop")) + + +def _number(value: float, places: int) -> str: + try: + return f"{float(value):.{places}f}" + except (TypeError, ValueError): + return "—" + + +def _millimetres(units: float, user_units: float) -> str: + """The derived millimetre reading, or a dash when it cannot be derived.""" + if not units: + return "—" + millimetres = user_units_to_mm(user_units, units=units) + if millimetres != millimetres: # NaN + return "—" + return f"{millimetres:.3f}" + + +def _home_text(state: AxisState) -> str: + if state.status.home_in_progress: + return t("axes.home_running") + return t("axes.home_ok") if state.home_status == 1 else t("axes.home_pending") + + +def _status_text(state: AxisState) -> str: + """One column that says what an operator needs to know at a glance. + + Alarm outranks motion outranks homing, because that is the order in which + they matter when you are looking at the row for a second. + """ + if state.status.alarm: + return t("status.alarm_short") + if not state.idle: + return t("axes.moving") + return _home_text(state) + + +def _row_brush(present: bool) -> QBrush: + """Dim a row whose drive the bus did not report.""" + return QBrush(QColor("#d0d0d0" if present else "#8a8a8a")) diff --git a/apps/autocal/src/orisys_autocal/ui/axis_readout.py b/apps/autocal/src/orisys_autocal/ui/axis_readout.py new file mode 100644 index 0000000..5da18ca --- /dev/null +++ b/apps/autocal/src/orisys_autocal/ui/axis_readout.py @@ -0,0 +1,170 @@ +"""The permanent axis readout rail. + +Read-only by design. Every per-axis *command* lives in the Axis-debug tab, so +there is exactly one place a move can be issued from — two places to jog from is +how an operator moves the wrong axis. What this rail adds is the thing the +operator needs while working in any other tab: whether each drive is enabled, +where it is, and whether it is moving. + +The three global actions are here rather than in the tab because they are the +ones you reach for in a hurry, and they must not require finding a tab first. +""" + +from __future__ import annotations + +from PySide6.QtCore import Signal +from PySide6.QtWidgets import ( + QGridLayout, + QGroupBox, + QHBoxLayout, + QLabel, + QPushButton, + QVBoxLayout, + QWidget, +) + +from orisys_app_shared.i18n import t +from orisys_app_shared.theme import load_colors + +from ..motion import Snapshot, user_units_to_mm + +#: Columns of the compact readout: axis, enable state, position. +_COLUMNS = 3 + +#: Tone -> colour token, as elsewhere. +_TONE_TOKENS = {"ok": "accent", "warn": "warn", "error": "danger", "muted": "text_muted"} + + +class AxisReadoutPanel(QGroupBox): + """Five axis rows plus the platform-wide actions.""" + + enableAllRequested = Signal(bool) + stopAllRequested = Signal() + clearAllRequested = Signal() + + def __init__(self, axis_count: int, theme: str = "dark", parent: QWidget | None = None) -> None: + super().__init__(parent) + self.setObjectName("groupBox") + self.axis_count = int(axis_count) + self._theme = theme + self._connected = False + self._snapshot = Snapshot() + self._rows: list[dict] = [] + + outer = QVBoxLayout(self) + outer.setContentsMargins(10, 8, 10, 10) + outer.setSpacing(6) + + grid = QGridLayout() + grid.setContentsMargins(0, 0, 0, 0) + grid.setHorizontalSpacing(8) + grid.setVerticalSpacing(4) + for row in range(self.axis_count): + grid.addWidget(self._build_row(row), row, 0) + outer.addLayout(grid) + + outer.addStretch(1) + + self.enable_all_button = QPushButton(self) + self.enable_all_button.clicked.connect(self._on_enable_all) + self.stop_all_button = QPushButton(self) + self.stop_all_button.setObjectName("dangerButton") + self.stop_all_button.clicked.connect(self.stopAllRequested) + self.clear_all_button = QPushButton(self) + self.clear_all_button.clicked.connect(self.clearAllRequested) + for button in (self.enable_all_button, self.stop_all_button, self.clear_all_button): + button.setProperty("rail", True) + outer.addWidget(button) + + self.retranslate() + self.set_connected(False) + + def _build_row(self, axis: int) -> QWidget: + box = QWidget(self) + row = QHBoxLayout(box) + row.setContentsMargins(0, 0, 0, 0) + row.setSpacing(6) + + index = QLabel(str(axis), box) + index.setObjectName("axisIndex") + index.setFixedWidth(16) + + state = QLabel("", box) + state.setObjectName("axisState") + state.setFixedWidth(46) + + position = QLabel("", box) + position.setObjectName("axisPosition") + + row.addWidget(index) + row.addWidget(state) + row.addWidget(position, 1) + self._rows.append({"state": state, "position": position}) + return box + + # ------------------------------------------------------------------- state + + def set_theme(self, theme: str) -> None: + self._theme = theme + self.update_snapshot(self._snapshot) + + def set_connected(self, connected: bool) -> None: + self._connected = bool(connected) + for button in (self.enable_all_button, self.stop_all_button, self.clear_all_button): + button.setEnabled(self._connected) + + def update_snapshot(self, snapshot: Snapshot) -> None: + self._snapshot = snapshot + self.set_connected(snapshot.connected) + + for axis in range(self.axis_count): + state = snapshot.axis(axis) + widgets = self._rows[axis] + if state is None: + widgets["state"].setText(t("axes.enable_off")) + widgets["position"].setText("—") + widgets["state"].setStyleSheet(self._colour("muted")) + continue + + if state.status.alarm: + widgets["state"].setText(t("status.alarm_short")) + widgets["state"].setStyleSheet(self._colour("error")) + elif state.enabled: + widgets["state"].setText(t("axes.enable_on")) + widgets["state"].setStyleSheet(self._colour("ok")) + else: + widgets["state"].setText(t("axes.enable_off")) + widgets["state"].setStyleSheet(self._colour("muted")) + + millimetres = user_units_to_mm(state.dpos, units=state.units) if state.units else None + units_text = f"{state.dpos:.3f}" + if millimetres is not None and millimetres == millimetres: + units_text = t("axes.position_pair", value=units_text, mm=f"{millimetres:.3f}") + widgets["position"].setText(units_text) + widgets["position"].setToolTip( + t("axes.motion_word") + ": " + (t("axes.moving") if not state.idle else t("axes.idle")) + + (" · " + t("axes.home_ok") if state.home_status == 1 else "") + ) + + enabled_now = sum(1 for s in snapshot.axes if s.enabled) + self.enable_all_button.setText( + t("axes.disable_all") if enabled_now == self.axis_count else t("axes.enable_all") + ) + + def _colour(self, tone: str) -> str: + colour = load_colors(self._theme).get(_TONE_TOKENS.get(tone, "text_muted"), "#888888") + return f"color: {colour};" + + def _on_enable_all(self) -> None: + enabled_now = sum(1 for s in self._snapshot.axes if s.enabled) + # Toggle: if every drive is already on, this turns them all off. + self.enableAllRequested.emit(enabled_now != self.axis_count) + + # ------------------------------------------------------------- translations + + def retranslate(self) -> None: + self.setTitle(t("readout.title")) + self.stop_all_button.setText(t("axes.stop_all")) + self.clear_all_button.setText(t("axes.clear_alarm_all")) + # The toggle's label depends on current state, so re-derive it. + self.update_snapshot(self._snapshot) diff --git a/apps/autocal/src/orisys_autocal/ui/brand_bar.py b/apps/autocal/src/orisys_autocal/ui/brand_bar.py new file mode 100644 index 0000000..d79ac56 --- /dev/null +++ b/apps/autocal/src/orisys_autocal/ui/brand_bar.py @@ -0,0 +1,103 @@ +"""Top identity strip: brand, product name, and the connection state chip. + +Mirrors the studio's brand bar so the two products look like one family, but +carries only what this tool needs: who made it, what it is, and whether the +controller is reachable. +""" + +from __future__ import annotations + +from PySide6.QtCore import Qt +from PySide6.QtGui import QPixmap +from PySide6.QtWidgets import QFrame, QHBoxLayout, QLabel, QWidget + +from orisys_app_shared.i18n import t +from orisys_app_shared.paths import logo_topbar_path +from orisys_app_shared.theme import load_colors + +#: Chip tone -> colour token name. +_TONE_TOKENS = { + "ok": "accent", + "warn": "warn", + "error": "danger", + "muted": "text_muted", +} + + +class BrandBar(QFrame): + """The identity strip, with a state chip that reports the connection.""" + + def __init__(self, theme: str = "dark", parent: QWidget | None = None) -> None: + super().__init__(parent) + self.setObjectName("brandBar") + self.setFixedHeight(40) + self._theme = theme + self._connected = False + # The chip's current content, kept so a theme or locale change can + # re-render the same state without the caller re-stating it. + self._chip_text = "" + self._chip_tone = "muted" + + layout = QHBoxLayout(self) + layout.setContentsMargins(12, 4, 12, 4) + layout.setSpacing(10) + + self.logo = QLabel(self) + self.logo.setObjectName("brandLogo") + pixmap = QPixmap(str(logo_topbar_path())) + if not pixmap.isNull(): + self.logo.setPixmap( + pixmap.scaledToHeight(24, Qt.TransformationMode.SmoothTransformation) + ) + layout.addWidget(self.logo) + + self.name = QLabel(self) + self.name.setObjectName("brandName") + layout.addWidget(self.name) + + self.detail = QLabel(self) + self.detail.setObjectName("brandDetail") + layout.addWidget(self.detail) + + layout.addStretch(1) + + self.product = QLabel(self) + self.product.setObjectName("brandProduct") + layout.addWidget(self.product) + + self.state_chip = QLabel(self) + self.state_chip.setObjectName("stateChip") + layout.addWidget(self.state_chip) + + self.retranslate() + + # ----------------------------------------------------------------- content + + def retranslate(self) -> None: + """Refresh every label from the active locale.""" + self.name.setText(t("brand.name")) + self.detail.setText(t("brand.detail")) + self.product.setText(t("app.title")) + self.set_connected(self._connected) + + def set_theme(self, theme: str) -> None: + self._theme = theme + self.set_state_text(self._chip_text, self._chip_tone) + + def set_connected(self, connected: bool) -> None: + self._connected = bool(connected) + self.set_state_text( + t("connection.state_open") if connected else t("connection.state_closed"), + "ok" if connected else "muted", + ) + + def set_state_text(self, text: str, tone: str = "muted") -> None: + self._chip_text = text + self._chip_tone = tone + self.state_chip.setText(text) + token = _TONE_TOKENS.get(tone, "text_muted") + color = load_colors(self._theme).get(token, "#888888") + self.state_chip.setStyleSheet( + f"color: {color}; border: 1px solid {color}; " + "border-radius: 9px; padding: 1px 8px;" + ) diff --git a/apps/autocal/src/orisys_autocal/ui/bus_data_panel.py b/apps/autocal/src/orisys_autocal/ui/bus_data_panel.py new file mode 100644 index 0000000..fe6a05e --- /dev/null +++ b/apps/autocal/src/orisys_autocal/ui/bus_data_panel.py @@ -0,0 +1,305 @@ +"""Raw bus exchange: EtherCAT object dictionary (SDO) and RTEX parameters. + +This is the drive-level panel. It is what a commissioning engineer reaches for +when a node behaves oddly: read an object, see what the drive actually has, write +one back. The controls are enabled strictly by the bus family the ``.bas`` +program reported, so an SDO write can never be aimed at an RTEX system (the +vendor reference guards this too, by checking ``BUS_TYPE`` before every call). +""" + +from __future__ import annotations + +from PySide6.QtCore import Signal +from PySide6.QtWidgets import ( + QComboBox, + QGridLayout, + QGroupBox, + QHBoxLayout, + QLabel, + QLineEdit, + QPushButton, + QVBoxLayout, + QWidget, +) + +from orisys_app_shared.i18n import t + +#: Height of this panel's fields and buttons. Pinned for the same reason as the +#: axis panel's: an unconstrained QLineEdit is ~34 px, and four of them stacked +#: push this panel tall enough to steal an axis row from the panel above it. +FIELD_HEIGHT = 28 + +#: Width of the read/write buttons. A grid stretches a widget across the column +#: it spans, and these share a row with unconstrained columns, so without a cap +#: "读" renders as a 300 px slab. +ACTION_WIDTH = 96 + +#: Data types accepted by ``ZAux_BusCmd_SDORead``/``SDOWrite``, in combo order. +#: The DLL argument is the index + 1 (see ``sdo_data_type``). +SDO_TYPES = ( + ("int8", 1), + ("int16", 2), + ("int32", 3), + ("uint8", 4), + ("uint16", 5), + ("uint32", 6), +) + + +def sdo_data_type(index: int) -> int: + """Map a combo index to the DLL's data-type argument.""" + if 0 <= index < len(SDO_TYPES): + return SDO_TYPES[index][1] + return SDO_TYPES[0][1] + + +class BusDataPanel(QGroupBox): + """SDO and RTEX read/write.""" + + sdoReadRequested = Signal(int, int, int, int) + sdoWriteRequested = Signal(int, int, int, int, int) + rtexReadRequested = Signal(int, int) + rtexWriteRequested = Signal(int, int, float) + + def __init__( + self, + *, + sdo_last: dict | None = None, + rtex_last: dict | None = None, + axis_count: int = 5, + parent: QWidget | None = None, + ) -> None: + super().__init__(parent) + self.setObjectName("groupBox") + self._axis_count = int(axis_count) + sdo_last = sdo_last or {} + rtex_last = rtex_last or {} + + outer = QVBoxLayout(self) + outer.setContentsMargins(10, 8, 10, 10) + outer.setSpacing(8) + + outer.addWidget(self._build_sdo(sdo_last)) + outer.addWidget(self._build_rtex(rtex_last)) + + self.result_label = QLabel(self) + self.result_label.setObjectName("hintLabel") + self.result_label.setWordWrap(True) + outer.addWidget(self.result_label) + + self.retranslate() + # Disabled until a snapshot says otherwise: a read or write control that + # is briefly live on a disconnected panel invites a click that cannot + # work, and Qt's default for a new widget is enabled. + self.set_bus_type("unknown") + self._refresh_readonly() + + # ------------------------------------------------------------------ widgets + + def _build_sdo(self, last: dict) -> QWidget: + self.ecat_box = QGroupBox(self) + grid = QGridLayout(self.ecat_box) + grid.setContentsMargins(10, 6, 10, 6) + grid.setHorizontalSpacing(8) + grid.setVerticalSpacing(4) + + def field(text: str, width: int) -> QLineEdit: + widget = QLineEdit(str(text), self.ecat_box) + widget.setFixedWidth(width) + widget.setFixedHeight(FIELD_HEIGHT) + return widget + + def button(text: str) -> QPushButton: + widget = QPushButton(text, self.ecat_box) + widget.setProperty("rail", True) + widget.setFixedHeight(FIELD_HEIGHT) + widget.setMaximumWidth(ACTION_WIDTH) + return widget + + self.node_label = QLabel(self.ecat_box) + self.node_edit = field(last.get("node", 0), 60) + self.index_label = QLabel(self.ecat_box) + self.index_edit = field(last.get("index", 24704), 80) + self.subindex_label = QLabel(self.ecat_box) + self.subindex_edit = field(last.get("subindex", 0), 50) + self.sdo_type_label = QLabel(self.ecat_box) + self.sdo_type_combo = QComboBox(self.ecat_box) + self.sdo_type_combo.setFixedHeight(FIELD_HEIGHT) + for name, _value in SDO_TYPES: + self.sdo_type_combo.addItem(name) + self.sdo_type_combo.setCurrentIndex(int(last.get("type", 0)) % len(SDO_TYPES)) + self.sdo_value_label = QLabel(self.ecat_box) + self.sdo_value_edit = field(0, 90) + self.btn_sdo_read = button("") + self.btn_sdo_read.clicked.connect(self._emit_sdo_read) + self.btn_sdo_write = button("") + self.btn_sdo_write.clicked.connect(self._emit_sdo_write) + + grid.addWidget(self.node_label, 0, 0) + grid.addWidget(self.node_edit, 0, 1) + grid.addWidget(self.index_label, 0, 2) + grid.addWidget(self.index_edit, 0, 3) + grid.addWidget(self.subindex_label, 0, 4) + grid.addWidget(self.subindex_edit, 0, 5) + grid.addWidget(self.sdo_type_label, 0, 6) + grid.addWidget(self.sdo_type_combo, 0, 7) + grid.addWidget(self.sdo_value_label, 0, 8) + grid.addWidget(self.sdo_value_edit, 0, 9) + grid.addWidget(self.btn_sdo_read, 1, 7) + grid.addWidget(self.btn_sdo_write, 1, 9) + grid.setColumnStretch(10, 1) + return self.ecat_box + + def _build_rtex(self, last: dict) -> QWidget: + self.rtex_box = QGroupBox(self) + grid = QGridLayout(self.rtex_box) + grid.setContentsMargins(10, 6, 10, 6) + grid.setHorizontalSpacing(8) + grid.setVerticalSpacing(4) + + def field(text: str, width: int) -> QLineEdit: + widget = QLineEdit(str(text), self.rtex_box) + widget.setFixedWidth(width) + widget.setFixedHeight(FIELD_HEIGHT) + return widget + + def button(text: str) -> QPushButton: + widget = QPushButton(text, self.rtex_box) + widget.setProperty("rail", True) + widget.setFixedHeight(FIELD_HEIGHT) + return widget + + self.rtex_axis_label = QLabel(self.rtex_box) + self.rtex_axis_edit = field(last.get("axis", 0), 50) + self.rtex_parameter_label = QLabel(self.rtex_box) + self.rtex_parameter_edit = field(last.get("parameter", 0), 90) + self.rtex_value_label = QLabel(self.rtex_box) + self.rtex_value_edit = field(0, 90) + self.btn_rtex_read = button("") + self.btn_rtex_read.clicked.connect(self._emit_rtex_read) + self.btn_rtex_write = button("") + self.btn_rtex_write.clicked.connect(self._emit_rtex_write) + + grid.addWidget(self.rtex_axis_label, 0, 0) + grid.addWidget(self.rtex_axis_edit, 0, 1) + grid.addWidget(self.rtex_parameter_label, 0, 2) + grid.addWidget(self.rtex_parameter_edit, 0, 3) + grid.addWidget(self.rtex_value_label, 0, 4) + grid.addWidget(self.rtex_value_edit, 0, 5) + grid.addWidget(self.btn_rtex_read, 0, 6) + grid.addWidget(self.btn_rtex_write, 0, 7) + grid.setColumnStretch(8, 1) + return self.rtex_box + + # ------------------------------------------------------------------- state + + def set_bus_type(self, bus_type: str) -> None: + """Enable only the panel matching the bus the controller reported.""" + self._bus_type = bus_type + supports_sdo = bus_type == "ecat" + supports_rtex = bus_type == "rtex" + self.ecat_box.setEnabled(supports_sdo) + self.rtex_box.setEnabled(supports_rtex) + self._refresh_readonly() + + _bus_type = "unknown" + + def set_connected(self, connected: bool) -> None: + self._connected = bool(connected) + self._refresh_readonly() + + _connected = False + + def _refresh_readonly(self) -> None: + # Re-applying the bus type is what actually gates the boxes; a + # disconnected session disables both regardless of family. + if not self._connected: + self.ecat_box.setEnabled(False) + self.rtex_box.setEnabled(False) + return + self.ecat_box.setEnabled(self._bus_type == "ecat") + self.rtex_box.setEnabled(self._bus_type == "rtex") + + def set_result(self, text: str) -> None: + self.result_label.setText(text) + + def sdo_request(self) -> tuple[int, int, int, int]: + """The SDO fields as the service expects them.""" + return ( + self._int(self.node_edit.text()), + self._int(self.index_edit.text()), + self._int(self.subindex_edit.text()), + sdo_data_type(self.sdo_type_combo.currentIndex()), + ) + + def rtex_request(self) -> tuple[int, int]: + return ( + self._int(self.rtex_axis_edit.text()), + self._int(self.rtex_parameter_edit.text()), + ) + + @staticmethod + def _int(text: str) -> int: + try: + return int(str(text).strip() or 0, 0) + except ValueError: + return 0 + + def remember_state(self) -> dict[str, dict]: + """The field values the preference file should keep.""" + node, index, subindex, data_type = self.sdo_request() + axis, parameter = self.rtex_request() + type_index = next( + (i for i, (_name, value) in enumerate(SDO_TYPES) if value == data_type), 0 + ) + return { + "sdo_last": { + "node": node, + "index": index, + "subindex": subindex, + "type": type_index, + }, + "rtex_last": {"axis": axis, "parameter": parameter}, + } + + # ----------------------------------------------------------------- actions + + def _emit_sdo_read(self) -> None: + self.sdoReadRequested.emit(*self.sdo_request()) + + def _emit_sdo_write(self) -> None: + node, index, subindex, data_type = self.sdo_request() + self.sdoWriteRequested.emit( + node, index, subindex, data_type, self._int(self.sdo_value_edit.text()) + ) + + def _emit_rtex_read(self) -> None: + self.rtexReadRequested.emit(*self.rtex_request()) + + def _emit_rtex_write(self) -> None: + axis, parameter = self.rtex_request() + try: + value = float(self.rtex_value_edit.text()) + except ValueError: + self.set_result(t("busdata.not_available")) + return + self.rtexWriteRequested.emit(axis, parameter, value) + + # ------------------------------------------------------------- translations + + def retranslate(self) -> None: + self.setTitle(t("busdata.title")) + self.ecat_box.setTitle(t("busdata.ecat")) + self.rtex_box.setTitle(t("busdata.rtex")) + self.node_label.setText(t("busdata.node")) + self.index_label.setText(t("busdata.index")) + self.subindex_label.setText(t("busdata.subindex")) + self.sdo_type_label.setText(t("busdata.type")) + self.sdo_value_label.setText(t("busdata.value")) + self.btn_sdo_read.setText(t("busdata.read")) + self.btn_sdo_write.setText(t("busdata.write")) + self.rtex_axis_label.setText(t("busdata.axis")) + self.rtex_parameter_label.setText(t("busdata.parameter")) + self.rtex_value_label.setText(t("busdata.value")) + self.btn_rtex_read.setText(t("busdata.read")) + self.btn_rtex_write.setText(t("busdata.write")) diff --git a/apps/autocal/src/orisys_autocal/ui/bus_panel.py b/apps/autocal/src/orisys_autocal/ui/bus_panel.py new file mode 100644 index 0000000..48ac018 --- /dev/null +++ b/apps/autocal/src/orisys_autocal/ui/bus_panel.py @@ -0,0 +1,174 @@ +"""Bus initialisation: pick a BAS program, run it, and read the result. + +The sequence is the vendor's, not ours: ``BasDown`` writes the program to ROM +and the controller runs it; the program delays, scans the slot, maps axes, and +finally publishes ``BUS_TYPE``, ``Bus_InitStatus``, ``Bus_TotalAxisnum`` and the +node count. This panel is a view onto that state machine plus the two buttons +that (re)start it. +""" + +from __future__ import annotations + +from pathlib import Path + +from PySide6.QtCore import Signal +from PySide6.QtWidgets import ( + QGridLayout, + QGroupBox, + QHBoxLayout, + QLabel, + QLineEdit, + QPushButton, + QVBoxLayout, + QWidget, +) + +from orisys_app_shared.i18n import t +from orisys_app_shared.paths import app_root + +from ..motion import INIT_FAILED, INIT_OK, INIT_RUNNING, BusStatus + +_STATE_KEYS = { + INIT_RUNNING: "bus.state_running", + INIT_OK: "bus.state_ok", + INIT_FAILED: "bus.state_failed", +} + +_STATE_TONES = { + "bus.state_running": "warn", + "bus.state_ok": "ok", + "bus.state_failed": "error", + "bus.state_timeout": "error", +} + +#: The vendor requires a non-Chinese path for a BAS project; default the picker +#: at the shipped copies so the operator starts somewhere legal. +DEFAULT_BAS_DIR_NAME = "bas" + + +def default_bas_dir() -> Path: + return app_root() / "config" / DEFAULT_BAS_DIR_NAME + + +class BusPanel(QGroupBox): + """BAS download, re-initialisation, and decoded bus state.""" + + chooseRequested = Signal() + downloadRequested = Signal() + reinitRequested = Signal() + + def __init__(self, bas_path: str = "", parent: QWidget | None = None) -> None: + super().__init__(parent) + self.setObjectName("groupBox") + self._bas_path = bas_path + self._state_text = t("bus.state_pending") + self._state_tone = "muted" + + outer = QVBoxLayout(self) + outer.setContentsMargins(10, 8, 10, 10) + outer.setSpacing(8) + + grid = QGridLayout() + grid.setHorizontalSpacing(8) + grid.setVerticalSpacing(6) + + self.path_label = QLabel(self) + self.path_edit = QLineEdit(self) + self.path_edit.setReadOnly(True) + self.path_edit.setText(bas_path) + self.choose_button = QPushButton(self) + self.choose_button.clicked.connect(self.chooseRequested) + grid.addWidget(self.path_label, 0, 0) + grid.addWidget(self.path_edit, 0, 1, 1, 2) + grid.addWidget(self.choose_button, 0, 3) + + self.state_label = QLabel(self) + self.state_value = QLabel(self) + self.state_value.setObjectName("statusValue") + grid.addWidget(self.state_label, 1, 0) + grid.addWidget(self.state_value, 1, 1, 1, 3) + + self.type_label = QLabel(self) + self.type_value = QLabel(self) + self.type_value.setObjectName("statusValue") + grid.addWidget(self.type_label, 2, 0) + grid.addWidget(self.type_value, 2, 1, 1, 3) + + self.nodes_label = QLabel(self) + self.nodes_value = QLabel(self) + self.nodes_value.setObjectName("statusValue") + self.axes_label = QLabel(self) + self.axes_value = QLabel(self) + self.axes_value.setObjectName("statusValue") + grid.addWidget(self.nodes_label, 3, 0) + grid.addWidget(self.nodes_value, 3, 1) + grid.addWidget(self.axes_label, 3, 2) + grid.addWidget(self.axes_value, 3, 3) + + outer.addLayout(grid) + + buttons = QHBoxLayout() + self.download_button = QPushButton(self) + self.download_button.setObjectName("primaryButton") + self.download_button.clicked.connect(self.downloadRequested) + self.reinit_button = QPushButton(self) + self.reinit_button.clicked.connect(self.reinitRequested) + buttons.addWidget(self.download_button) + buttons.addWidget(self.reinit_button) + buttons.addStretch(1) + outer.addLayout(buttons) + + self.message_label = QLabel(self) + self.message_label.setObjectName("hintLabel") + self.message_label.setWordWrap(True) + outer.addWidget(self.message_label) + + self.retranslate() + + # ------------------------------------------------------------------- state + + @property + def bas_path(self) -> str: + return self._bas_path + + def set_bas_path(self, path: str) -> None: + self._bas_path = path + self.path_edit.setText(path) + + def set_connected(self, connected: bool) -> None: + self.download_button.setEnabled(connected) + self.reinit_button.setEnabled(connected) + self.choose_button.setEnabled(True) + + def set_status(self, bus: BusStatus, *, now: float | None = None) -> None: + """Render the bus state, including the vendor's timeout case.""" + key = _STATE_KEYS.get(bus.init_status, "bus.state_pending") + if bus.init_status == INIT_FAILED and bus.message and "è¶…æ—¶" in bus.message: + key = "bus.state_timeout" + self._state_text = t(key) + self._state_tone = _STATE_TONES.get(key, "muted") + self.state_value.setText(self._state_text) + + type_keys = { + "ecat": "bus.type_ecat", + "rtex": "bus.type_rtex", + "unknown": "bus.type_unknown", + } + self.type_value.setText(t(type_keys.get(bus.bus_type, "bus.type_unknown"))) + self.nodes_value.setText(str(bus.node_count)) + self.axes_value.setText(str(bus.total_axes)) + self.message_label.setText(bus.message) + + # ------------------------------------------------------------- translations + + def retranslate(self) -> None: + self.setTitle(t("bus.title")) + self.path_label.setText(t("bus.bas_path")) + self.state_label.setText(t("bus.state")) + self.type_label.setText(t("bus.type")) + self.nodes_label.setText(t("bus.nodes")) + self.axes_label.setText(t("bus.axes")) + self.choose_button.setText(t("bus.choose")) + self.download_button.setText(t("bus.download")) + self.reinit_button.setText(t("bus.reinit")) + self.state_value.setText(self._state_text) diff --git a/apps/autocal/src/orisys_autocal/ui/connection_panel.py b/apps/autocal/src/orisys_autocal/ui/connection_panel.py new file mode 100644 index 0000000..31d4e3e --- /dev/null +++ b/apps/autocal/src/orisys_autocal/ui/connection_panel.py @@ -0,0 +1,218 @@ +"""Connection controls: mode, address, scan, connect, and connection state.""" + +from __future__ import annotations + +from PySide6.QtCore import Signal +from PySide6.QtWidgets import ( + QComboBox, + QGridLayout, + QGroupBox, + QHBoxLayout, + QLabel, + QLineEdit, + QPushButton, + QVBoxLayout, + QWidget, +) + +from orisys_app_shared.i18n import t + +from ..motion import ConnectionSpec +from ..preferences import CONNECTION_MODES, DEFAULT_CONTROLLER_IPS + +#: Modes that are wired up. The rest report "not available yet" rather than +#: pretending to connect: a serial/PCI path that silently does nothing is worse +#: than one that says it is not there. +_IMPLEMENTED_MODES = ("eth", "local", "demo") + +_MODE_LABEL_KEYS = { + "eth": "connection.mode_eth", + "com": "connection.mode_com", + "pci": "connection.mode_pci", + "local": "connection.mode_local", + "demo": "connection.mode_demo", +} + + +class ConnectionPanel(QGroupBox): + """Everything needed to reach (or leave) the controller.""" + + connectRequested = Signal(object) + disconnectRequested = Signal() + scanRequested = Signal() + + def __init__(self, spec: ConnectionSpec, parent: QWidget | None = None) -> None: + super().__init__(parent) + self.setObjectName("groupBox") + self._spec = spec + + outer = QVBoxLayout(self) + outer.setContentsMargins(10, 8, 10, 10) + outer.setSpacing(8) + + grid = QGridLayout() + grid.setHorizontalSpacing(8) + grid.setVerticalSpacing(6) + + self.mode_label = QLabel(self) + self.mode_combo = QComboBox(self) + for mode in CONNECTION_MODES: + self.mode_combo.addItem("", mode) + self.mode_combo.currentIndexChanged.connect(self._on_mode_changed) + grid.addWidget(self.mode_label, 0, 0) + grid.addWidget(self.mode_combo, 0, 1, 1, 2) + + self.address_label = QLabel(self) + self.address_edit = QLineEdit(self) + self.address_edit.setMinimumWidth(150) + self.scan_button = QPushButton(self) + self.scan_button.clicked.connect(self.scanRequested) + grid.addWidget(self.address_label, 1, 0) + grid.addWidget(self.address_edit, 1, 1) + grid.addWidget(self.scan_button, 1, 2) + + self.ip_hint = QLabel(self) + self.ip_hint.setObjectName("hintLabel") + grid.addWidget(self.ip_hint, 2, 1, 1, 2) + + outer.addLayout(grid) + + buttons = QHBoxLayout() + self.open_button = QPushButton(self) + self.open_button.setObjectName("primaryButton") + self.open_button.clicked.connect(self._emit_connect) + self.close_button = QPushButton(self) + self.close_button.clicked.connect(self.disconnectRequested) + self.close_button.setEnabled(False) + buttons.addWidget(self.open_button) + buttons.addWidget(self.close_button) + buttons.addStretch(1) + outer.addLayout(buttons) + + self.status_label = QLabel(self) + self.status_label.setObjectName("statusValue") + self.status_label.setWordWrap(True) + outer.addWidget(self.status_label) + + self.source_label = QLabel(self) + self.source_label.setObjectName("hintLabel") + self.source_label.setWordWrap(True) + outer.addWidget(self.source_label) + + self.retranslate() + self.apply_spec(spec) + + # ------------------------------------------------------------------- state + + @property + def spec(self) -> ConnectionSpec: + """The spec the fields currently describe.""" + mode = self.mode_combo.currentData() or "eth" + if mode == "eth": + return ConnectionSpec(mode="eth", ip=self.address_edit.text().strip()) + if mode == "local": + return ConnectionSpec(mode="local", local_string=self.address_edit.text().strip() or "0") + if mode == "com": + return ConnectionSpec(mode="com", com_id=self._as_int(self.address_edit.text())) + if mode == "pci": + return ConnectionSpec(mode="pci", card_num=self._as_int(self.address_edit.text())) + return ConnectionSpec(mode="demo") + + @staticmethod + def _as_int(text: str) -> int: + try: + return int(str(text).strip() or 0) + except ValueError: + return 0 + + def apply_spec(self, spec: ConnectionSpec) -> None: + self._spec = spec + index = self.mode_combo.findData(spec.mode) + if index >= 0: + self.mode_combo.setCurrentIndex(index) + self._fill_address(spec) + self._on_mode_changed() + + def _fill_address(self, spec: ConnectionSpec) -> None: + if spec.mode == "eth": + self.address_edit.setText(spec.ip or DEFAULT_CONTROLLER_IPS[0]) + elif spec.mode == "com": + self.address_edit.setText(str(spec.com_id)) + elif spec.mode == "pci": + self.address_edit.setText(str(spec.card_num)) + elif spec.mode == "local": + self.address_edit.setText(spec.local_string or "0") + else: + self.address_edit.setText("") + + def set_ips(self, ips: list[str]) -> None: + """Offer scanned addresses for the Ethernet mode.""" + if self.mode_combo.currentData() != "eth" or not ips: + return + current = self.address_edit.text().strip() + if current and current not in ips: + return + self.ip_hint.setText(" ".join(ips[:4])) + + def set_connected(self, connected: bool, source: str = "") -> None: + self.open_button.setEnabled(not connected) + self.close_button.setEnabled(connected) + self.mode_combo.setEnabled(not connected) + self.address_edit.setEnabled(not connected) + self.status_label.setText( + t("connection.state_open") if connected else t("connection.state_closed") + ) + self.status_label.setObjectName("statusValueOk" if connected else "statusValue") + self.source_label.setText(source) + # Re-apply the stylesheet so the object-name change takes effect. + self.status_label.style().unpolish(self.status_label) + self.status_label.style().polish(self.status_label) + + def set_status(self, text: str) -> None: + self.status_label.setText(text) + + # ----------------------------------------------------------------- actions + + def _emit_connect(self) -> None: + mode = self.mode_combo.currentData() or "eth" + if mode not in _IMPLEMENTED_MODES: + self.set_status(t("connection.no_more", mode=t(_MODE_LABEL_KEYS[mode]))) + return + self.connectRequested.emit(self.spec) + + def _on_mode_changed(self) -> None: + mode = self.mode_combo.currentData() or "eth" + keys = { + "eth": ("connection.ip", True), + "com": ("connection.com", True), + "pci": ("connection.card", True), + "local": ("connection.local_string", True), + "demo": ("connection.mode", False), + } + label_key, editable = keys.get(mode, ("connection.ip", True)) + self.address_label.setText(t(label_key)) + self.address_edit.setEnabled(editable) + self.scan_button.setEnabled(mode == "eth") + self.ip_hint.setText("") + if mode == "com": + self.address_edit.setText(str(self._spec.com_id)) + elif mode == "pci": + self.address_edit.setText(str(self._spec.card_num)) + elif mode == "local": + self.address_edit.setText(self._spec.local_string or "0") + elif mode == "eth": + self.address_edit.setText(self._spec.ip or DEFAULT_CONTROLLER_IPS[0]) + else: + self.address_edit.setText("") + + # ------------------------------------------------------------- translations + + def retranslate(self) -> None: + self.setTitle(t("connection.title")) + self.mode_label.setText(t("connection.mode")) + for index, mode in enumerate(CONNECTION_MODES): + self.mode_combo.setItemText(index, t(_MODE_LABEL_KEYS[mode])) + self.scan_button.setText(t("connection.scan")) + self.open_button.setText(t("connection.open")) + self.close_button.setText(t("connection.close")) + self._on_mode_changed() diff --git a/apps/autocal/src/orisys_autocal/ui/sequence_panel.py b/apps/autocal/src/orisys_autocal/ui/sequence_panel.py new file mode 100644 index 0000000..1b093d5 --- /dev/null +++ b/apps/autocal/src/orisys_autocal/ui/sequence_panel.py @@ -0,0 +1,487 @@ +"""Test-sequence design: what points on the sensor get tested (workflow P5). + +Three zones, because point generation is three questions that must be answered +together: + +* **profile** — the shape and the motion: grid mode, pitch and margin, standoff + heights, approach and press speeds, press depth, dwell, settle window, + repeats, visiting order. Persisted, so a bench profile is entered once. + Laid out as two columns of six fields: one column of twelve wasted the vertical + space the point list needs, and the list is the part that grows. +* **preview** — the sensor surface with the generated points and the order they + will be visited. Reserved space for the 3D view; today it says so rather than + pretending. +* **validation + point table** — every generated point is checked three ways + (on the surface, inside travel, contact confirmable) and carries a run status, + so the design and the run progress live in the same list. The list is a + ``QTableWidget`` because it has to hold hundreds of points and scroll; the + previous fixed grid could only ever show three rows. + +Nothing here moves the platform yet. The controls that would generate a point +set are present and bound to the profile, but generation, simulation and the run +are later phases — and :meth:`SequencePanel.planned_steps` still returns an empty +list so a runner cannot start from a table that was never validated. +""" + +from __future__ import annotations + +from dataclasses import dataclass +from typing import Any + +from PySide6.QtCore import Qt, Signal +from PySide6.QtWidgets import ( + QComboBox, + QGridLayout, + QGroupBox, + QHBoxLayout, + QHeaderView, + QLabel, + QLineEdit, + QPushButton, + QTableWidget, + QTableWidgetItem, + QVBoxLayout, + QWidget, +) + +from orisys_app_shared.i18n import t + +from ..preferences import POINT_ORDERS, SURFACE_MODES + +#: Profile fields, in form order: ``(key, locale_key, kind)``. +#: ``kind`` is ``choice`` (a combo box) or ``number`` (a line edit). +PROFILE_FIELDS: tuple[tuple[str, str, str], ...] = ( + ("mode", "sequence.field_mode", "choice"), + ("pitch_mm", "sequence.field_pitch", "number"), + ("margin_mm", "sequence.field_margin", "number"), + ("radius_mm", "sequence.field_radius", "number"), + ("clear_height_mm", "sequence.field_clear_height", "number"), + ("approach_speed_mm_s", "sequence.field_approach_speed", "number"), + ("press_speed_mm_s", "sequence.field_press_speed", "number"), + ("press_depth_mm", "sequence.field_press_depth", "number"), + ("dwell_s", "sequence.field_dwell", "number"), + ("settle_window_s", "sequence.field_settle", "number"), + ("repeats", "sequence.field_repeats", "number"), + ("order", "sequence.field_order", "choice"), +) + +#: How many rows the two-column profile form has. +PROFILE_ROWS = (len(PROFILE_FIELDS) + 1) // 2 + +#: Point-table columns: ``(key, locale_key)``. +POINT_COLUMNS: tuple[tuple[str, str], ...] = ( + ("index", "sequence.col_index"), + ("x", "sequence.col_x"), + ("y", "sequence.col_y"), + ("z", "sequence.col_z"), + ("status", "sequence.col_status"), + ("sensitivity", "sequence.col_sensitivity"), + ("samples", "sequence.col_samples"), + ("actions", "sequence.col_actions"), +) + +#: Editability of the point table. Positions are *generated*, not typed: a typed +#: coordinate is one that nothing has checked against the sensor. +_EDITABLE_POINT_COLUMNS: tuple[str, ...] = () + +#: Column widths of the point table, by column index. +_POINT_COLUMN_WIDTHS = (50, 130, 130, 130, 120, 160, 90, 200) + +#: Reserved controls and the phase that will fill each one. +PENDING_CONTROLS: tuple[str, ...] = ("generate", "simulate", "dry_run", "save", "load") + +#: Which phase each pending control belongs to (see docs/workflow.md). +PENDING_PHASES: dict[str, str] = { + "generate": "P5", + "simulate": "P6", + "dry_run": "P6", + "save": "P8", + "load": "P8", +} + +#: The validation checks, with the locale key naming what each one proves. +VALIDATION_CHECKS: tuple[tuple[str, str], ...] = ( + ("on_surface", "sequence.check_surface"), + ("within_travel", "sequence.check_travel"), + ("contact_confirmable", "sequence.check_contact"), +) + +#: Placeholder rows, so the flow shows its shape. Marked as unmeasured: a row +#: with no status is a design, not a measurement. +_EXAMPLE_POINTS: tuple[tuple[float, float, float], ...] = ( + (0.0, 0.0, 12.4), + (2.0, 0.0, 12.4), + (4.0, 0.0, 12.4), +) + + +@dataclass(frozen=True) +class SequenceStep: + """One planned step, as the future runner will receive it. + + ``x``/``y``/``z`` are platform-frame user units (millimetres are shown beside + them), ``repeat`` is a count, and ``force_n`` is ``None`` until FT feedback + exists. ``sensor_xyz`` is the point's position in the sensor frame, computed + from the P4 transform — the thing that makes it checkable against the surface. + """ + + index: int + targets: dict[str, float] + sensor_xyz: tuple[float, float, float] | None = None + repeat: int = 1 + force_n: float | None = None + dwell_s: float = 0.0 + note: str = "" + + +class SequencePanel(QGroupBox): + """Workflow P5: profile, preview, validation and the point list.""" + + generateRequested = Signal() + simulateRequested = Signal() + dryRunRequested = Signal() + saveRequested = Signal() + loadRequested = Signal() + + def __init__(self, profile: dict[str, Any] | None = None, parent: QWidget | None = None) -> None: + super().__init__(parent) + self.setObjectName("groupBox") + self._profile_fields: dict[str, QWidget] = {} + self._profile_labels: list[QLabel] = [] + self._choices: dict[str, QComboBox] = {} + self._pending_buttons: dict[str, QPushButton] = {} + self._check_rows: dict[str, QLabel] = {} + + outer = QVBoxLayout(self) + outer.setContentsMargins(10, 8, 10, 10) + outer.setSpacing(8) + + zones = QHBoxLayout() + zones.setSpacing(10) + zones.addWidget(self._build_profile(), 0) + zones.addWidget(self._build_preview(), 1) + zones.addWidget(self._build_validation(), 0) + outer.addLayout(zones, 0) + + # The point list is the part that grows, so it takes the vertical stretch + # and the zones above it get what they need. + outer.addWidget(self._build_point_table(), 1) + + self.set_profile(profile or {}) + self.retranslate() + + # ------------------------------------------------------------------ profile + + def _build_profile(self) -> QWidget: + box = QGroupBox(self) + box.setObjectName("groupBox") + grid = QGridLayout(box) + grid.setContentsMargins(10, 8, 10, 8) + grid.setHorizontalSpacing(10) + grid.setVerticalSpacing(4) + + # Two fields per row: label, field, label, field. Seeing the whole profile + # at once is what lets an operator sanity-check a pitch against a depth. + for index, (key, _locale_key, kind) in enumerate(PROFILE_FIELDS): + row, side = divmod(index, 2) + column = side * 2 + label = QLabel(box) + label.setObjectName("hintLabel") + grid.addWidget(label, row, column) + self._profile_labels.append(label) + + if kind == "choice": + field: QWidget = QComboBox(box) + field.setFixedHeight(28) + self._choices[key] = field # type: ignore[assignment] + else: + field = QLineEdit(box) + field.setFixedHeight(28) + field.setProperty("fieldKey", key) + grid.addWidget(field, row, column + 1) + self._profile_fields[key] = field + + grid.setColumnStretch(1, 1) + grid.setColumnStretch(3, 1) + self._profile_box = box + return box + + # ------------------------------------------------------------------ preview + + def _build_preview(self) -> QWidget: + box = QGroupBox(self) + box.setObjectName("groupBox") + column = QVBoxLayout(box) + column.setContentsMargins(10, 8, 10, 8) + column.setSpacing(6) + + self.preview_label = QLabel(box) + self.preview_label.setObjectName("hintLabel") + self.preview_label.setWordWrap(True) + self.preview_label.setMinimumHeight(120) + self.preview_label.setAlignment(Qt.AlignmentFlag.AlignCenter) + column.addWidget(self.preview_label, 1) + + self.preview_hint = QLabel(box) + self.preview_hint.setObjectName("hintLabel") + self.preview_hint.setWordWrap(True) + column.addWidget(self.preview_hint) + self._preview_box = box + return box + + # --------------------------------------------------------------- validation + + def _build_validation(self) -> QWidget: + box = QGroupBox(self) + box.setObjectName("groupBox") + column = QVBoxLayout(box) + column.setContentsMargins(10, 8, 10, 8) + column.setSpacing(4) + + for key, _locale_key in VALIDATION_CHECKS: + row = QLabel(box) + row.setObjectName("statusValue") + row.setWordWrap(True) + column.addWidget(row) + self._check_rows[key] = row + + self.summary_label = QLabel(box) + self.summary_label.setObjectName("hintLabel") + self.summary_label.setWordWrap(True) + column.addWidget(self.summary_label) + column.addStretch(1) + + for key in PENDING_CONTROLS: + button = QPushButton(box) + button.setProperty("rail", True) + button.setFixedHeight(28) + column.addWidget(button) + self._pending_buttons[key] = button + + self._pending_buttons["generate"].clicked.connect(self.generateRequested) + self._pending_buttons["simulate"].clicked.connect(self.simulateRequested) + self._pending_buttons["dry_run"].clicked.connect(self.dryRunRequested) + self._pending_buttons["save"].clicked.connect(self.saveRequested) + self._pending_buttons["load"].clicked.connect(self.loadRequested) + # None of these can run: generation, simulation, the runner and the + # dataset writer belong to later phases (see docs/workflow.md). + for button in self._pending_buttons.values(): + button.setEnabled(False) + + self._validation_box = box + return box + + # -------------------------------------------------------------- point table + + def _build_point_table(self) -> QWidget: + box = QGroupBox(self) + box.setObjectName("groupBox") + column = QVBoxLayout(box) + column.setContentsMargins(10, 8, 10, 8) + column.setSpacing(6) + + self.table = QTableWidget(len(_EXAMPLE_POINTS), len(POINT_COLUMNS), box) + self.table.verticalHeader().setVisible(False) + self.table.setSelectionMode(QTableWidget.SelectionMode.NoSelection) + self.table.setEditTriggers(QTableWidget.EditTrigger.NoEditTriggers) + self.table.setAlternatingRowColors(True) + for index, width in enumerate(_POINT_COLUMN_WIDTHS): + self.table.setColumnWidth(index, width) + self.table.horizontalHeader().setSectionResizeMode( + len(POINT_COLUMNS) - 1, QHeaderView.ResizeMode.Stretch + ) + # The list scrolls rather than clipping: a grid of fixed labels could + # only ever show the rows it was built with. + self.table.setMinimumHeight(120) + + for row, (x, y, z) in enumerate(_EXAMPLE_POINTS): + values = { + 0: str(row + 1), + 1: f"{x:.3f}", + 2: f"{y:.3f}", + 3: f"{z:.3f}", + 4: t("sequence.status_pending"), + 5: "—", + 6: "—", + 7: "", + } + for column_index, text in values.items(): + item = QTableWidgetItem(text) + if column_index >= 4: + item.setTextAlignment(Qt.AlignmentFlag.AlignCenter) + self.table.setItem(row, column_index, item) + + column.addWidget(self.table, 1) + + self.point_hint = QLabel(box) + self.point_hint.setObjectName("hintLabel") + self.point_hint.setWordWrap(True) + column.addWidget(self.point_hint) + + self._table_box = box + return box + + # -------------------------------------------------------------------- model + + def profile(self) -> dict[str, Any]: + """The profile as typed, with numbers parsed where they are numbers.""" + values: dict[str, Any] = {} + for key, _locale_key, kind in PROFILE_FIELDS: + widget = self._profile_fields[key] + if kind == "choice": + values[key] = widget.currentData() or widget.currentText() + else: + values[key] = _as_number(widget.text(), 0.0) + values["repeats"] = int(max(1, values.get("repeats", 1))) + return values + + def set_profile(self, profile: dict[str, Any]) -> None: + """Load a stored profile; unknown or missing keys keep their default.""" + for key, _locale_key, kind in PROFILE_FIELDS: + if key not in profile: + continue + widget = self._profile_fields[key] + value = profile[key] + if kind == "choice": + index = widget.findData(value) + if index >= 0: + widget.setCurrentIndex(index) + else: + widget.setText(_format_number(value)) + + def profile_keys(self) -> list[str]: + return [key for key, _locale_key, _kind in PROFILE_FIELDS] + + def field(self, key: str) -> QWidget: + return self._profile_fields[key] + + def choice(self, key: str) -> QComboBox: + return self._choices[key] + + def pending_controls(self) -> list[str]: + return list(PENDING_CONTROLS) + + def pending_phases(self) -> dict[str, str]: + return dict(PENDING_PHASES) + + def validation_checks(self) -> list[str]: + return [key for key, _locale_key in VALIDATION_CHECKS] + + def check_row(self, key: str) -> QLabel: + return self._check_rows[key] + + def set_check(self, key: str, text: str, ok: bool = True) -> None: + """Report one validation result (used once generation exists).""" + row = self._check_rows[key] + row.setText(text) + row.setProperty("checkOk", ok) + + def column_keys(self) -> list[str]: + return [key for key, _locale_key in POINT_COLUMNS] + + def point_row(self, index: int) -> dict[str, str]: + return { + key: (self.table.item(index, column).text() if self.table.item(index, column) else "") + for column, (key, _locale_key) in enumerate(POINT_COLUMNS) + } + + def point_row_count(self) -> int: + return self.table.rowCount() + + def append_point(self, x: float, y: float, z: float, status: str = "") -> int: + """Add a generated point. Used by the generator once P5 exists.""" + row = self.table.rowCount() + self.table.insertRow(row) + values = { + 0: str(row + 1), + 1: f"{x:.3f}", + 2: f"{y:.3f}", + 3: f"{z:.3f}", + 4: status or t("sequence.status_pending"), + 5: "—", + 6: "—", + 7: "", + } + for column, text in values.items(): + item = QTableWidgetItem(text) + if column >= 4: + item.setTextAlignment(Qt.AlignmentFlag.AlignCenter) + self.table.setItem(row, column, item) + return row + + def planned_steps(self) -> list[SequenceStep]: + """The steps the table describes, for the future runner. + + Empty while the tab is a design surface: generation has not run, nothing + has been validated, and a runner must not start from a table that was + never checked — which is what the P5 gate exists to prevent. + """ + return [] + + # ------------------------------------------------------------- translations + + def retranslate(self) -> None: + self.setTitle(t("sequence.title")) + self._profile_box.setTitle(t("sequence.profile_title")) + self._preview_box.setTitle(t("sequence.preview_title")) + self._validation_box.setTitle(t("sequence.validation_title")) + self._table_box.setTitle(t("sequence.points_title")) + + for label, (_key, locale_key, _kind) in zip(self._profile_labels, PROFILE_FIELDS): + label.setText(t(locale_key)) + for key, combo in self._choices.items(): + _fill_choice(combo, key) + + self.preview_label.setText(t("sequence.preview_placeholder")) + self.preview_hint.setText(t("sequence.preview_hint")) + for key, _locale_key in VALIDATION_CHECKS: + self._check_rows[key].setText(t(f"sequence.check_{key}") + ": —") + self.summary_label.setText(t("sequence.validation_pending")) + for key in PENDING_CONTROLS: + self._pending_buttons[key].setText(t(f"sequence.btn_{key}")) + self._pending_buttons[key].setToolTip( + t("sequence.pending_tooltip", phase=PENDING_PHASES[key]) + ) + + self.table.setHorizontalHeaderLabels([t(locale_key) for _key, locale_key in POINT_COLUMNS]) + for row in range(self.table.rowCount()): + item = self.table.item(row, 4) + if item is not None and item.text() in ("", t("sequence.status_pending")): + item.setText(t("sequence.status_pending")) + self.point_hint.setText(t("sequence.points_hint")) + + +def _fill_choice(combo: QComboBox, key: str) -> None: + """Populate a choice field from its option list, keeping the selection.""" + current = combo.currentData() + combo.blockSignals(True) + combo.clear() + if key == "mode": + for value in SURFACE_MODES: + combo.addItem(t(f"sequence.mode_{value}"), value) + elif key == "order": + for value in POINT_ORDERS: + combo.addItem(t(f"sequence.order_{value}"), value) + combo.blockSignals(False) + if current is not None: + index = combo.findData(current) + if index >= 0: + combo.setCurrentIndex(index) + + +def _as_number(text: str, fallback: float) -> float: + try: + value = float(str(text).strip()) + except (TypeError, ValueError): + return fallback + return value if value == value else fallback # reject NaN + + +def _format_number(value: Any) -> str: + try: + number = float(value) + except (TypeError, ValueError): + return str(value) + if number == int(number) and abs(number) < 1e6: + return str(int(number)) + return f"{number:g}" diff --git a/apps/autocal/src/orisys_autocal/ui/status_strip.py b/apps/autocal/src/orisys_autocal/ui/status_strip.py new file mode 100644 index 0000000..4c46e06 --- /dev/null +++ b/apps/autocal/src/orisys_autocal/ui/status_strip.py @@ -0,0 +1,424 @@ +"""The permanent motion status strip, and the run bar beneath it. + +Two rows on purpose: + +* :class:`StatusStrip` — connection, bus and last-action state. This is what must + not move: the operator needs to know whether the platform is live while + working in any tab, so it sits **above** the workspace tabs and switching tabs + cannot change what it says. It also carries the poll-health chip, because a + controller that stopped answering looks identical to one that is answering + normally unless something shows the age of the last reading. +* :class:`RunBar` — a run's phase, progress and controls. Separate from the strip + so a run cannot hide the platform state, and because the abort control must be + reachable from every tab rather than from inside the tab that started the run. + +Neither widget issues a controller call. The window wires the signals, so there +is still one place a command can originate. +""" + +from __future__ import annotations + +import time + +from PySide6.QtCore import Signal +from PySide6.QtWidgets import ( + QFrame, + QHBoxLayout, + QLabel, + QPushButton, + QProgressBar, + QWidget, +) + +from orisys_app_shared.i18n import t +from orisys_app_shared.theme import load_colors + +from ..motion import Snapshot + +#: Tone -> colour token. Matches the brand bar's chip vocabulary. +_TONE_TOKENS = { + "ok": "accent", + "warn": "warn", + "error": "danger", + "muted": "text_muted", +} + +#: Bus type -> locale key. +_BUS_KEYS = { + "ecat": "bus.type_ecat", + "rtex": "bus.type_rtex", + "unknown": "bus.type_unknown", +} + +#: Run phases, and the locale key that names each. +RUN_PHASES = { + "idle": "run.phase_idle", + "dry_run": "run.phase_dry_run", + "running": "run.phase_running", + "paused": "run.phase_paused", + "done": "run.phase_done", + "failed": "run.phase_failed", +} + +#: A snapshot older than this many poll intervals is stale, and then unhealthy. +_STALE_INTERVALS = 3.0 +_FAILED_INTERVALS = 10.0 + + +class _Chip(QLabel): + """A small toned label: the strip is read at a glance, not studied.""" + + def __init__(self, theme: str, parent: QWidget | None = None) -> None: + super().__init__(parent) + self.setObjectName("statusChip") + self._theme = theme + self._tone = "muted" + self.set_tone("muted") + + def set_theme(self, theme: str) -> None: + self._theme = theme + self.set_tone(self._tone) + + def set_tone(self, tone: str) -> None: + self._tone = tone + colour = load_colors(self._theme).get(_TONE_TOKENS.get(tone, "text_muted"), "#888888") + self.setStyleSheet( + f"color: {colour}; border: 1px solid {colour}; " + "border-radius: 9px; padding: 1px 9px;" + ) + + +class StatusStrip(QFrame): + """Connection, bus and last-action state, always on screen.""" + + pauseRequested = Signal() + stopAllRequested = Signal() + + def __init__(self, theme: str = "dark", parent: QWidget | None = None) -> None: + super().__init__(parent) + self.setObjectName("statusStrip") + self.setFixedHeight(40) + self._theme = theme + self._snapshot = Snapshot() + self._last_action = "" + self._last_action_ok = True + self._last_snapshot_at: float | None = None + self._poll_interval_ms = 100 + + layout = QHBoxLayout(self) + layout.setContentsMargins(10, 4, 10, 4) + layout.setSpacing(8) + + self.title = QLabel(self) + self.title.setObjectName("stripTitle") + layout.addWidget(self.title) + + self.chip_connection = _Chip(theme, self) + self.chip_bus = _Chip(theme, self) + self.chip_init = _Chip(theme, self) + self.chip_axes = _Chip(theme, self) + self.chip_health = _Chip(theme, self) + for chip in ( + self.chip_connection, + self.chip_bus, + self.chip_init, + self.chip_axes, + self.chip_health, + ): + layout.addWidget(chip) + + layout.addStretch(1) + + self.action_label = QLabel(self) + self.action_label.setObjectName("stripAction") + layout.addWidget(self.action_label) + + self.pause_button = QPushButton(self) + self.pause_button.setProperty("rail", True) + self.pause_button.setCheckable(True) + self.pause_button.clicked.connect(self.pauseRequested) + layout.addWidget(self.pause_button) + + self.stop_button = QPushButton(self) + self.stop_button.setObjectName("dangerButton") + self.stop_button.setProperty("rail", True) + self.stop_button.clicked.connect(self.stopAllRequested) + layout.addWidget(self.stop_button) + + self.retranslate() + self.set_snapshot(Snapshot()) + + # ------------------------------------------------------------------- state + + def set_theme(self, theme: str) -> None: + self._theme = theme + for chip in ( + self.chip_connection, + self.chip_bus, + self.chip_init, + self.chip_axes, + self.chip_health, + ): + chip.set_theme(theme) + self.chip_health.set_tone(self.chip_health._tone) + + def set_poll_interval_ms(self, interval_ms: int) -> None: + self._poll_interval_ms = max(1, int(interval_ms)) + + def set_snapshot(self, snapshot: Snapshot) -> None: + """Render one poll. Never raises: this runs on a timer.""" + self._snapshot = snapshot + self._last_snapshot_at = time.monotonic() + connected = snapshot.connected + + self.chip_connection.setText( + t("connection.state_open") if connected else t("connection.state_closed") + ) + self.chip_connection.set_tone("ok" if connected else "muted") + + self.chip_bus.setText(t(_BUS_KEYS.get(snapshot.bus.bus_type, "bus.type_unknown"))) + self.chip_bus.set_tone("ok" if snapshot.bus.bus_type != "unknown" else "muted") + + if not connected: + self.chip_init.setText(t("bus.state_pending")) + self.chip_init.set_tone("muted") + elif snapshot.bus.initialized: + self.chip_init.setText(t("bus.state_ok")) + self.chip_init.set_tone("ok") + elif snapshot.bus.init_status == 0: + text = ( + "bus.state_timeout" + if "è¶…æ—¶" in snapshot.bus.message or "timed out" in snapshot.bus.message + else "bus.state_failed" + ) + self.chip_init.setText(t(text)) + self.chip_init.set_tone("error") + else: + self.chip_init.setText(t("bus.state_running")) + self.chip_init.set_tone("warn") + + enabled = sum(1 for state in snapshot.axes if state.enabled) + total = len(snapshot.axes) or self._axis_total + self.chip_axes.setText(t("status.axes_enabled", on=enabled, total=total)) + self.chip_axes.set_tone("ok" if enabled else "muted") + + self.refresh_health() + self._refresh_action() + + #: Fallback axis total before the first snapshot describes the bus. + _axis_total = 5 + + def set_axis_total(self, total: int) -> None: + self._axis_total = max(1, int(total)) + + def refresh_health(self) -> None: + """Show how old the last reading is. + + A stalled poll is otherwise invisible: every other chip keeps displaying + its last value, so a controller that stopped answering looks exactly like + one that is answering normally. Called on each snapshot *and* on the + window's own timer, so the chip ages even when no snapshot arrives — + which is the case it exists to reveal. + """ + if self._last_snapshot_at is None: + self.chip_health.setText(t("status.health_none")) + self.chip_health.set_tone("muted") + return + if self.paused: + self.chip_health.setText(t("status.health_paused")) + self.chip_health.set_tone("muted") + return + + age_ms = (time.monotonic() - self._last_snapshot_at) * 1000.0 + intervals = age_ms / float(self._poll_interval_ms) + self.chip_health.setText(t("status.health_age", ms=int(age_ms))) + if intervals > _FAILED_INTERVALS: + self.chip_health.set_tone("error") + elif intervals > _STALE_INTERVALS: + self.chip_health.set_tone("warn") + else: + self.chip_health.set_tone("ok") + + def set_action_result(self, text: str, ok: bool = True) -> None: + """Record the outcome of the last command, and show it here. + + The status bar carries the same text; the strip is what stays visible + when a tab is switched, so the last refusal cannot scroll away unseen. + """ + self._last_action = str(text) + self._last_action_ok = bool(ok) + self._refresh_action() + + def _refresh_action(self) -> None: + self.action_label.setText(self._last_action or t("status.none")) + tone = "ok" if self._last_action_ok else "error" + colour = load_colors(self._theme).get(_TONE_TOKENS[tone], "#888888") + self.action_label.setStyleSheet(f"color: {colour};") + + @property + def paused(self) -> bool: + return self.pause_button.isChecked() + + def set_paused(self, paused: bool) -> None: + self.pause_button.setChecked(bool(paused)) + self._refresh_pause_text() + self.refresh_health() + + # ------------------------------------------------------------- translations + + def retranslate(self) -> None: + self.title.setText(t("status.motion")) + self._refresh_pause_text() + self.stop_button.setText(t("axes.stop_all")) + self.set_snapshot(self._snapshot) + self.refresh_health() + + def _refresh_pause_text(self) -> None: + self.pause_button.setText( + t("status.resume") if self.pause_button.isChecked() else t("status.pause") + ) + + +class RunBar(QFrame): + """A run's phase, progress and controls, visible from every tab.""" + + runRequested = Signal() + pauseRequested = Signal() + abortRequested = Signal() + + def __init__(self, theme: str = "dark", parent: QWidget | None = None) -> None: + super().__init__(parent) + self.setObjectName("runBar") + self.setFixedHeight(40) + self._theme = theme + self._phase = "idle" + self._total = 0 + self._completed = 0 + self._has_run = False + + layout = QHBoxLayout(self) + layout.setContentsMargins(10, 4, 10, 4) + layout.setSpacing(8) + + self.title = QLabel(self) + self.title.setObjectName("stripTitle") + layout.addWidget(self.title) + + self.phase_label = QLabel(self) + self.phase_label.setObjectName("statusValue") + self.phase_label.setMinimumWidth(90) + layout.addWidget(self.phase_label) + + self.step_label = QLabel(self) + self.step_label.setObjectName("stripAction") + self.step_label.setMinimumWidth(140) + layout.addWidget(self.step_label) + + self.progress = QProgressBar(self) + self.progress.setTextVisible(False) + self.progress.setFixedHeight(12) + self.progress.setMinimumWidth(160) + layout.addWidget(self.progress, 1) + + self.time_label = QLabel(self) + self.time_label.setObjectName("stripAction") + self.time_label.setMinimumWidth(180) + layout.addWidget(self.time_label) + + self.run_button = QPushButton(self) + self.run_button.setObjectName("primaryButton") + self.pause_button = QPushButton(self) + self.abort_button = QPushButton(self) + self.abort_button.setObjectName("dangerButton") + for button in (self.run_button, self.pause_button, self.abort_button): + button.setProperty("rail", True) + button.setFixedHeight(26) + layout.addWidget(button) + + self.run_button.clicked.connect(self.runRequested) + self.pause_button.clicked.connect(self.pauseRequested) + self.abort_button.clicked.connect(self.abortRequested) + + self.retranslate() + self.set_run(False) + + # ------------------------------------------------------------------- state + + def set_theme(self, theme: str) -> None: + self._theme = theme + + def set_phase(self, phase: str) -> None: + if phase not in RUN_PHASES: + phase = "idle" + self._phase = phase + self.phase_label.setText(t(RUN_PHASES[phase])) + busy = phase in ("running", "paused") + tone = { + "running": "accent", + "paused": "warn", + "failed": "danger", + "done": "accent", + }.get(phase, "text_muted") + colour = load_colors(self._theme).get(tone, "#888888") + self.phase_label.setStyleSheet(f"color: {colour};") + self._refresh_buttons(busy) + + def set_progress(self, completed: int, total: int) -> None: + self._completed = max(0, int(completed)) + self._total = max(0, int(total)) + self.progress.setRange(0, self._total or 1) + self.progress.setValue(min(self._completed, self._total or 1)) + if self._total: + self.step_label.setText( + t("run.step_of", done=self._completed, total=self._total) + ) + else: + self.step_label.setText(t("run.no_steps")) + + def set_timing(self, elapsed_s: float, remaining_s: float | None) -> None: + """Elapsed, and the estimate. ``None`` means "not known yet".""" + if remaining_s is None: + self.time_label.setText(t("run.elapsed_only", elapsed=_duration(elapsed_s))) + else: + self.time_label.setText( + t("run.elapsed_remaining", elapsed=_duration(elapsed_s), remaining=_duration(remaining_s)) + ) + + def set_run(self, has_run: bool) -> None: + """Whether a run exists at all — i.e. whether abort must be reachable.""" + self._has_run = bool(has_run) + self._refresh_buttons(self._phase in ("running", "paused")) + + def _refresh_buttons(self, busy: bool) -> None: + # Abort is enabled as soon as a run exists: it is the one control that + # must never require finding a tab first. + self.abort_button.setEnabled(self._has_run) + self.pause_button.setEnabled(self._has_run and busy) + self.run_button.setEnabled(not busy) + + @property + def phase(self) -> str: + return self._phase + + # ------------------------------------------------------------- translations + + def retranslate(self) -> None: + self.title.setText(t("run.title")) + self.phase_label.setText(t(RUN_PHASES[self._phase])) + self.run_button.setText(t("run.run")) + self.pause_button.setText(t("run.pause")) + self.abort_button.setText(t("run.abort")) + if self._total: + self.step_label.setText( + t("run.step_of", done=self._completed, total=self._total) + ) + else: + self.step_label.setText(t("run.no_steps")) + self.time_label.setText(t("run.elapsed_only", elapsed=_duration(0.0))) + + +def _duration(seconds: float) -> str: + """``m:ss`` for a duration, which is how an operator reads a bench timer.""" + seconds = max(0.0, float(seconds)) + minutes, rest = divmod(int(seconds), 60) + return f"{minutes:d}:{rest:02d}" diff --git a/apps/autocal/src/orisys_autocal/ui/window.py b/apps/autocal/src/orisys_autocal/ui/window.py new file mode 100644 index 0000000..072b69b --- /dev/null +++ b/apps/autocal/src/orisys_autocal/ui/window.py @@ -0,0 +1,913 @@ +"""The AutoCal main window: panels, menus, and the bridge to the poller. + +The window never touches the controller itself. Every controller call goes +through :class:`~orisys_autocal.motion.poller.MotionPoller`, which owns the DLL +handle on its own thread; results arrive as signals. That keeps the vendor +library's blocking calls (a ROM write, a bus scan) off the GUI thread and keeps +the ctypes handle single-threaded. +""" + +from __future__ import annotations + +import logging +import subprocess +import sys +from pathlib import Path + +from orisys_app_shared import API_VERSION, __version__ as shared_version +from orisys_app_shared.i18n import set_locale, t +from orisys_app_shared.paths import outputs_dir +from orisys_app_shared.theme import build_qss, load_colors + +from PySide6.QtCore import Qt, QTimer +from PySide6.QtGui import QAction, QCloseEvent +from PySide6.QtWidgets import ( + QApplication, + QFileDialog, + QGroupBox, + QHBoxLayout, + QLabel, + QMainWindow, + QMessageBox, + QScrollArea, + QSplitter, + QVBoxLayout, + QWidget, +) + +from .. import __version__ as app_version +from ..motion import AxisParams, ConnectionSpec, MotionPoller, MotionService, Snapshot +from ..preferences import load_preferences, save_preferences +from .axis_panel import AxisPanel +from .axis_readout import AxisReadoutPanel +from .brand_bar import BrandBar +from .bus_data_panel import BusDataPanel +from .bus_panel import BusPanel, default_bas_dir +from .connection_panel import ConnectionPanel +from .sequence_panel import SequencePanel +from .status_strip import RunBar, StatusStrip +from .workspace import TABS, WorkspaceTabs + +logger = logging.getLogger(__name__) + +#: The main split: setup + readout rail, then the workspace. +#: +#: Two columns, not three. Two thin rails bracketing a workspace that has to hold +#: a twelve-field form, a 3D preview, a checks list and an eight-column table +#: cost 566 px of a 1920 screen — 29% — for chrome. Merging them into one rail +#: gives the workspace that 240 px back at every window size, which is the +#: difference between a workable sequence page and a cramped one at the minimum +#: window width. +MAIN_SPLITTER_SIZES = (330, 1560) + +#: Width below which the rail would clip its own controls. +MAIN_MINIMUM_WIDTH = 1440 + +#: Default and minimum window sizes. The default is the design target; the +#: minimum stays viable on a smaller bench monitor. +DEFAULT_WINDOW_SIZE = (1920, 1080) +MINIMUM_WINDOW_SIZE = (1440, 900) + +#: The action key whose result the status bar is currently showing. +_COMMAND_NAMES = { + "connect": "connection.open", + "disconnect": "connection.close", + "scan": "connection.scan", + "bas": "bus.download", + "reinit": "bus.reinit", +} + + +class AutoCalMainWindow(QMainWindow): + """Platform control, five axes, one window.""" + + def __init__(self, prefs: dict | None = None) -> None: + super().__init__() + self.prefs = dict(prefs or load_preferences()) + self._theme = str(self.prefs.get("theme") or "dark") + self._language = str(self.prefs.get("language") or "zh_CN") + self._last_snapshot = Snapshot() + self._pending: dict[int, str] = {} + self._last_error = "" + + self.setWindowTitle(t("app.title")) + self.setMinimumSize(*MINIMUM_WINDOW_SIZE) + + self._build_ui() + self._build_menus() + self._build_poller() + + self._restore_geometry() + self.retranslate() + self._apply_theme() + + # --------------------------------------------------------------- build UI + + def _build_ui(self) -> None: + central = QWidget(self) + layout = QVBoxLayout(central) + layout.setContentsMargins(0, 0, 0, 0) + layout.setSpacing(0) + + self.brand_bar = BrandBar(self._theme, central) + layout.addWidget(self.brand_bar) + + # The status strip sits above the workspace, outside the tab widget, so + # that switching tabs cannot hide whether the platform is live. The run + # bar sits under it for the same reason: abort must be reachable from + # every tab, not only from the one that started the run. + self.status_strip = StatusStrip(self._theme, central) + layout.addWidget(self.status_strip) + self.run_bar = RunBar(self._theme, central) + layout.addWidget(self.run_bar) + + body = QWidget(central) + body_layout = QHBoxLayout(body) + body_layout.setContentsMargins(8, 6, 8, 6) + body_layout.setSpacing(8) + layout.addWidget(body, stretch=1) + + # ----------------------------------------------------------------- rail + # One rail, not two. It holds setup, the axis readout and the collapsed + # bus data, and it scrolls: at 900 px high those three groups do not fit, + # and a rail that clips its own controls is worse than one that scrolls. + self.rail_content = QWidget() + left = QVBoxLayout(self.rail_content) + left.setContentsMargins(0, 0, 0, 0) + left.setSpacing(8) + + connection = self.prefs.get("connection") or {} + self.connection_panel = ConnectionPanel( + ConnectionSpec( + mode=str(connection.get("mode") or "eth"), + ip=str(connection.get("ip") or ""), + com_id=int(connection.get("com_id") or 0), + card_num=int(connection.get("card_num") or 0), + local_string=str(connection.get("local_string") or "0"), + ), + self.rail_content, + ) + self.bus_panel = BusPanel(str(self.prefs.get("bas_path") or ""), self.rail_content) + self.axis_readout = AxisReadoutPanel( + MotionService().axis_count, self._theme, self.rail_content + ) + left.addWidget(self.connection_panel) + left.addWidget(self.bus_panel) + left.addWidget(self.axis_readout) + + # Bus data (SDO/RTEX) is commissioning-only, so it is collapsed by + # default: it was costing the bottom of the page ~270 px for a control + # used once in a while. + self.bus_data_group = QGroupBox(self.rail_content) + self.bus_data_group.setObjectName("groupBox") + self.bus_data_group.setCheckable(True) + self.bus_data_group.setChecked(False) + bus_data_layout = QVBoxLayout(self.bus_data_group) + bus_data_layout.setContentsMargins(8, 6, 8, 8) + self.bus_data_panel = BusDataPanel( + sdo_last=self.prefs.get("sdo_last") or {}, + rtex_last=self.prefs.get("rtex_last") or {}, + axis_count=MotionService().axis_count, + parent=self.bus_data_group, + ) + bus_data_layout.addWidget(self.bus_data_panel) + self.bus_data_panel.setVisible(False) + self.bus_data_group.toggled.connect(self._on_bus_data_toggled) + left.addWidget(self.bus_data_group) + left.addStretch(1) + + self.left_rail = QScrollArea(body) + self.left_rail.setObjectName("railScroll") + self.left_rail.setWidget(self.rail_content) + self.left_rail.setWidgetResizable(True) + self.left_rail.setFrameShape(QScrollArea.Shape.NoFrame) + self.left_rail.setHorizontalScrollBarPolicy(Qt.ScrollBarPolicy.ScrollBarAlwaysOff) + self.left_rail.setMinimumWidth(300) + + # ------------------------------------------------------------ workspace + params = { + axis: AxisParams(**values) + for axis, values in _safe_axis_params(self.prefs.get("axis_params")) + } + self.axis_panel = AxisPanel( + MotionService().axis_count, + params, + units_per_mm=float(self.prefs.get("units_per_mm") or 10.0), + parent=body, + ) + self.sequence_panel = SequencePanel(self.prefs.get("sequence_profile") or {}, body) + self.workspace = WorkspaceTabs(self.axis_panel, self.sequence_panel, body) + + self.main_splitter = QSplitter(Qt.Orientation.Horizontal, body) + self.main_splitter.addWidget(self.left_rail) + self.main_splitter.addWidget(self.workspace) + self.main_splitter.setSizes(list(MAIN_SPLITTER_SIZES)) + self.main_splitter.setChildrenCollapsible(False) + self.main_splitter.setStretchFactor(0, 0) + self.main_splitter.setStretchFactor(1, 1) + self.main_splitter.setObjectName("mainSplitter") + body_layout.addWidget(self.main_splitter, 1) + + self.diagnostics_box = self._build_diagnostics(central) + layout.addWidget(self.diagnostics_box) + + self.setCentralWidget(central) + self.statusBar().showMessage(t("status.ready")) + self._apply_chrome_colours() + + self._wire_signals() + + def _wire_signals(self) -> None: + self.connection_panel.connectRequested.connect(self._on_connect) + self.connection_panel.disconnectRequested.connect(self._on_disconnect) + self.connection_panel.scanRequested.connect(self._on_scan) + self.bus_panel.chooseRequested.connect(self._on_choose_bas) + self.bus_panel.downloadRequested.connect(self._on_download_bas) + self.bus_panel.reinitRequested.connect(self._on_reinit) + self.axis_panel.paramsApplied.connect(self._on_params_applied) + self.axis_panel.enableToggled.connect(self._on_enable_toggled) + self.axis_panel.jogRequested.connect(self._on_jog) + self.axis_panel.stopRequested.connect(self._on_stop) + self.axis_panel.stopAllRequested.connect(self._on_stop_all) + self.axis_panel.moveAbsRequested.connect(self._on_move_abs) + self.axis_panel.moveRelRequested.connect(self._on_move_rel) + self.axis_panel.homeRequested.connect(self._on_home) + self.axis_panel.clearAlarmRequested.connect(self._on_clear_alarm) + self.bus_data_panel.sdoReadRequested.connect(self._on_sdo_read) + self.bus_data_panel.sdoWriteRequested.connect(self._on_sdo_write) + self.bus_data_panel.rtexReadRequested.connect(self._on_rtex_read) + self.bus_data_panel.rtexWriteRequested.connect(self._on_rtex_write) + self.status_strip.stopAllRequested.connect(self._on_stop_all) + self.status_strip.pauseRequested.connect(self._on_pause_polling) + self.run_bar.runRequested.connect(self._on_run_requested) + self.run_bar.pauseRequested.connect(self._on_run_pause) + self.run_bar.abortRequested.connect(self._on_run_abort) + self.axis_readout.stopAllRequested.connect(self._on_stop_all) + self.axis_readout.clearAllRequested.connect(self._on_clear_all_alarms) + self.axis_readout.enableAllRequested.connect(self._on_enable_all) + + # ---------------------------------------------------------------- run bar + + def _on_run_requested(self) -> None: + """Refuse, naming the phase that owns the runner. + + Connected rather than left dangling: a control that does nothing when + pressed is indistinguishable from a bug, and the point of wiring this now + is that the sooner it exists, the sooner the phase that fills it has a + seam to build against. + """ + self._report_run("run.not_implemented", ok=False) + + def _on_run_pause(self) -> None: + self.run_bar.set_phase("paused" if self.run_bar.phase != "paused" else "running") + + def _on_run_abort(self) -> None: + # Abort always works, even before the runner exists: it stops the axes. + self.run_bar.set_phase("failed") + self._on_stop_all() + self._report_run("run.abort_stopped", ok=True) + + def _report_run(self, locale_key: str, *, ok: bool) -> None: + text = t(locale_key) + self.statusBar().showMessage(text) + self.status_strip.set_action_result(text, ok) + + def _apply_chrome_colours(self) -> None: + """Style the status bar from the theme rather than Qt's default. + + ``brand_bar_bg`` is a dark navy that reads well as a header and heavy as + a footer, so the bar gets its own token with the brand colour as the + fallback for a theme that predates it. + """ + colours = load_colors(self._theme) + background = colours.get("status_bar_bg") or colours.get("brand_bar_bg", "#12315D") + text = colours.get("status_bar_text") or "#ffffff" + self.statusBar().setStyleSheet( + f"QStatusBar {{ background-color: {background}; color: {text}; }}" + f"QStatusBar::item {{ border: none; }}" + ) + + def _on_bus_data_toggled(self, expanded: bool) -> None: + self.bus_data_panel.setVisible(bool(expanded)) + self.bus_data_group.setMaximumHeight(16777215 if expanded else 28) + + def _on_pause_polling(self) -> None: + """Stop or resume the state poll, without touching the connection.""" + paused = self.status_strip.paused + if paused: + self.poller.pause() + self.statusBar().showMessage(t("status.paused")) + else: + self.poller.resume() + self.statusBar().showMessage(t("status.ready")) + # The health chip says "paused" rather than ageing into a false alarm. + self.status_strip.refresh_health() + + def _on_enable_all(self, enabled: bool) -> None: + for axis in range(self.axis_panel.axis_count): + self.poller.submit( + lambda service, a=axis, on=enabled: service.set_axis_enable(a, on) + ) + + def _on_clear_all_alarms(self) -> None: + for axis in range(self.axis_panel.axis_count): + self.poller.submit(lambda service, a=axis: service.clear_alarm(a)) + + def _build_diagnostics(self, parent: QWidget) -> QGroupBox: + box = QGroupBox(parent) + box.setObjectName("groupBox") + layout = QVBoxLayout(box) + layout.setContentsMargins(10, 8, 10, 10) + layout.setSpacing(4) + self.diagnostics_label = QLabel(box) + self.diagnostics_label.setObjectName("hintLabel") + self.diagnostics_label.setWordWrap(True) + self.diagnostics_label.setTextInteractionFlags( + Qt.TextInteractionFlag.TextSelectableByMouse + ) + layout.addWidget(self.diagnostics_label) + box.setVisible(bool(self.prefs.get("show_diagnostics"))) + return box + + def _build_menus(self) -> None: + menu_bar = self.menuBar() + + self.menu_file = menu_bar.addMenu("") + self.act_download_bas = QAction("", self) + self.act_download_bas.triggered.connect(self._on_download_bas) + self.act_reveal_config = QAction("", self) + self.act_reveal_config.triggered.connect(self._on_reveal_config) + self.act_reveal_outputs = QAction("", self) + self.act_reveal_outputs.triggered.connect(self._on_reveal_outputs) + self.act_quit = QAction("", self) + self.act_quit.triggered.connect(self.close) + for action in ( + self.act_download_bas, + self.act_reveal_config, + self.act_reveal_outputs, + ): + self.menu_file.addAction(action) + self.menu_file.addSeparator() + self.menu_file.addAction(self.act_quit) + + self.menu_view = menu_bar.addMenu("") + self.menu_theme = self.menu_view.addMenu("") + self.act_theme_dark = QAction("", self) + self.act_theme_dark.setCheckable(True) + self.act_theme_light = QAction("", self) + self.act_theme_light.setCheckable(True) + self.act_theme_dark.triggered.connect(lambda: self._set_theme("dark")) + self.act_theme_light.triggered.connect(lambda: self._set_theme("light")) + self.menu_theme.addAction(self.act_theme_dark) + self.menu_theme.addAction(self.act_theme_light) + + self.menu_language = self.menu_view.addMenu("") + self.act_lang_zh = QAction("", self) + self.act_lang_zh.setCheckable(True) + self.act_lang_en = QAction("", self) + self.act_lang_en.setCheckable(True) + self.act_lang_zh.triggered.connect(lambda: self._set_language("zh_CN")) + self.act_lang_en.triggered.connect(lambda: self._set_language("en_US")) + self.menu_language.addAction(self.act_lang_zh) + self.menu_language.addAction(self.act_lang_en) + + self.act_diagnostics = QAction("", self) + self.act_diagnostics.setCheckable(True) + self.act_diagnostics.setChecked(bool(self.prefs.get("show_diagnostics"))) + self.act_diagnostics.toggled.connect(self._set_diagnostics) + self.menu_view.addSeparator() + self.menu_view.addAction(self.act_diagnostics) + + # Tab shortcuts: the workspace is the page, so reaching a tab from the + # keyboard is the navigation an operator uses most. + self.menu_tabs = self.menu_view.addMenu("") + self.act_tabs: dict[str, QAction] = {} + for index, (key, locale_key) in enumerate(TABS): + action = QAction("", self) + action.setShortcut(f"Ctrl+{index + 1}") + action.triggered.connect(lambda _checked=False, k=key: self.workspace.set_current_key(k)) + self.menu_tabs.addAction(action) + self.act_tabs[key] = action + self._tab_locale_keys = dict(TABS) + + self.menu_help = menu_bar.addMenu("") + self.act_about = QAction("", self) + self.act_about.triggered.connect(self._on_about) + self.menu_help.addAction(self.act_about) + + def _build_poller(self) -> None: + self.poller = MotionPoller( + MotionService(language=self._language), + axes=range(self.axis_panel.axis_count), + ) + self.poller.snapshotReady.connect(self._on_snapshot) + self.poller.commandFinished.connect(self._on_command_finished) + self.poller.commandFailed.connect(self._on_command_failed) + self.poller.set_interval_ms(int(self.prefs.get("state_poll_ms") or 100)) + self.status_strip.set_poll_interval_ms(int(self.prefs.get("state_poll_ms") or 100)) + + # Ages the poll-health chip even when no snapshot arrives. Runs on the + # GUI thread and only reads a timestamp — the controller is untouched — + # so a stopped poll becomes visible instead of leaving stale chips + # looking healthy. + self._health_timer = QTimer(self) + self._health_timer.timeout.connect(self.status_strip.refresh_health) + self._health_timer.start(500) + + # ------------------------------------------------------------- controller + + def connect_controller( + self, spec: ConnectionSpec | None = None, *, label: str = "connect" + ) -> int: + """Ask the poller to open the controller. Returns the command id.""" + target = spec or self.connection_panel.spec + token = self.poller.connect_controller(target) + self._pending[token] = label + self.connection_panel.set_status(t("connection.state_connecting")) + return token + + def disconnect_controller(self, *, label: str = "disconnect") -> int: + token = self.poller.disconnect_controller() + self._pending[token] = label + return token + + # --------------------------------------------------------------- snapshot + + def _on_snapshot(self, snapshot: Snapshot) -> None: + """Signal handler for the poller's periodic state read.""" + self.update_snapshot(snapshot) + + def update_snapshot(self, snapshot: Snapshot) -> None: + self._last_snapshot = snapshot + self.connection_panel.set_connected( + snapshot.connected, self.poller.service.transport.source + ) + self.brand_bar.set_connected(snapshot.connected) + self.bus_panel.set_connected(snapshot.connected) + self.bus_panel.set_status(snapshot.bus) + # The bus-data panel gates on the connection first and the bus family + # second, so both have to reach it or every SDO/RTEX control stays dead. + self.bus_data_panel.set_connected(snapshot.connected) + self.bus_data_panel.set_bus_type(snapshot.bus.bus_type) + self.axis_panel.update_snapshot(snapshot) + self.axis_readout.update_snapshot(snapshot) + # The strip is outside the tabs, so it is fed on every poll regardless + # of which tab is showing. + self.status_strip.set_snapshot(snapshot) + # The run bar tracks the designed point list: before a runner exists that + # is zero, and its abort control stays correct either way. + self.run_bar.set_progress(0, len(self.sequence_panel.planned_steps())) + self.run_bar.set_run(bool(self.sequence_panel.planned_steps())) + if snapshot.error: + self._last_error = snapshot.error + self._refresh_status_bar() + if self.diagnostics_box.isVisible(): + self._refresh_diagnostics() + + def _refresh_status_bar(self) -> None: + snapshot = self._last_snapshot + if not snapshot.connected: + self.statusBar().showMessage(t("status.ready")) + return + parts = [ + t("status.poll_paused") if self.status_strip.paused else t("status.poll_ok"), + t("status.poll_every", ms=self.poller.interval_ms), + ] + if snapshot.bus.init_status == 1: + parts.append(t("bus.state_ok")) + if self._last_error: + parts.append(f"{t('status.last_error')}: {self._last_error}") + self.statusBar().showMessage(" | ".join(parts)) + + def _refresh_diagnostics(self) -> None: + from ..preferences import path as preference_path + + service = self.poller.service + self.diagnostics_label.setText( + "\n".join( + [ + f"{t('diagnostics.binding')}: PySide6 {_pyside_version()}", + f"{t('diagnostics.dll_dir')}: {service.transport.source}", + f"{t('diagnostics.prefs')}: {preference_path()}", + f"{t('diagnostics.outputs')}: {outputs_dir()}", + f"{t('diagnostics.bas_loaded')}: " + f"{t('diagnostics.yes') if service.bas_loaded else t('diagnostics.no')}", + ] + ) + ) + + # ----------------------------------------------------- command completion + + def _on_command_finished(self, token: int, result) -> None: + """Report a completed command, whatever shape its result has. + + Commands return different things: a ``MotionResult``, a list of them + (stop-all), a ``(result, value)`` pair (SDO/RTEX reads), a list of IPs + (scan), or ``None``. Rather than a convention each caller must remember, + the shape is detected here. + """ + label_key = _COMMAND_NAMES.get(self._pending.pop(token, ""), "") + name = t(label_key) if label_key else "" + + message, ok = _interpret_result(result) + if ok: + self._last_error = "" + if message: + self.bus_data_panel.set_result(message) + text = f"{name} {t('action.ok')}".strip() + self.statusBar().showMessage(text) + # The strip keeps the outcome visible after a tab switch, so a + # command that was refused while the operator was elsewhere is not + # lost the moment the status bar is overwritten. + self.status_strip.set_action_result(text, True) + return + + self._last_error = message or t("action.failed") + self.bus_data_panel.set_result(self._last_error) + text = f"{name} {t('action.refused')}: {self._last_error}" + self.statusBar().showMessage(text) + self.status_strip.set_action_result(text, False) + logger.warning("Command refused/failed: %s", self._last_error) + + def _on_command_failed(self, token: int, message: str) -> None: + label_key = _COMMAND_NAMES.get(self._pending.pop(token, ""), "") + self._last_error = message + name = t(label_key) if label_key else "" + text = f"{name} {t('action.failed')}: {message}" + self.statusBar().showMessage(text) + self.status_strip.set_action_result(text, False) + logger.error("Command raised: %s", message) + + # ---------------------------------------------------------------- handlers + + def _on_connect(self, spec: ConnectionSpec) -> None: + self.connect_controller(spec) + + def _on_disconnect(self) -> None: + if not self._last_snapshot.connected: + return + moving = [ + state.axis + for state in self._last_snapshot.axes + if state.enabled and not state.idle + ] + if moving: + answer = QMessageBox.question( + self, + t("connection.close"), + t("axes.motion") + f" {moving}", + ) + if answer != QMessageBox.StandardButton.Yes: + return + self.disconnect_controller() + + def _on_scan(self) -> None: + def _scan(service: MotionService) -> object: + return service.transport.search_eth() + + token = self.poller.submit(_scan) + self._pending[token] = "scan" + + def _on_choose_bas(self) -> None: + start = self.bus_panel.bas_path or str(default_bas_dir()) + path, _selected = QFileDialog.getOpenFileName( + self, t("bus.dialog_title"), start, "BAS (*.bas);;All files (*)" + ) + if path: + self.bus_panel.set_bas_path(path) + self.prefs["bas_path"] = path + + def _on_download_bas(self) -> None: + path = self.bus_panel.bas_path + if not path: + self._on_choose_bas() + path = self.bus_panel.bas_path + if not path: + return + token = self.poller.submit(lambda service: service.download_bas(path, 1)) + self._pending[token] = "bas" + self.statusBar().showMessage(t("bus.downloaded")) + + def _on_reinit(self) -> None: + token = self.poller.submit(lambda service: service.reinit_bus()) + self._pending[token] = "reinit" + + def _on_params_applied(self, axis: int, params: AxisParams) -> None: + token = self.poller.submit(lambda service: service.set_axis_params(axis, params)) + self._pending[token] = "" + + def _on_enable_toggled(self, axis: int, enabled: bool) -> None: + token = self.poller.submit(lambda service: service.set_axis_enable(axis, enabled)) + self._pending[token] = "" + + def _on_jog(self, axis: int, forward: bool) -> None: + self.poller.submit(lambda service: service.jog(axis, forward)) + + def _on_stop(self, axis: int) -> None: + self.poller.submit(lambda service: service.stop(axis)) + + def _on_stop_all(self) -> None: + def _stop_all(service: MotionService) -> object: + return service.stop_all() + + self.poller.submit(_stop_all) + + def _on_move_abs(self, axis: int, target: float) -> None: + self.poller.submit(lambda service: service.move_abs(axis, target)) + + def _on_move_rel(self, axis: int, distance: float) -> None: + self.poller.submit(lambda service: service.move_rel(axis, distance)) + + def _on_home(self, axis: int) -> None: + self.poller.submit(lambda service: service.home(axis)) + + def _on_clear_alarm(self, axis: int) -> None: + self.poller.submit(lambda service: service.clear_alarm(axis)) + + # ---------------------------------------------------------------- bus data + + def _on_sdo_read(self, node: int, index: int, subindex: int, data_type: int) -> None: + def _read(service: MotionService): + result, value = service.sdo_read(node, index, subindex, data_type) + return result, value + + token = self.poller.submit(_read) + self._pending[token] = "" + + def _on_sdo_write( + self, node: int, index: int, subindex: int, data_type: int, value: int + ) -> None: + token = self.poller.submit( + lambda service: service.sdo_write(node, index, subindex, data_type, value) + ) + self._pending[token] = "" + + def _on_rtex_read(self, axis: int, parameter: int) -> None: + token = self.poller.submit(lambda service: service.rtex_read(axis, parameter)) + self._pending[token] = "" + + def _on_rtex_write(self, axis: int, parameter: int, value: float) -> None: + token = self.poller.submit( + lambda service: service.rtex_write(axis, parameter, value) + ) + self._pending[token] = "" + + # ------------------------------------------------------------------ menus + + def _set_theme(self, theme: str) -> None: + self._theme = theme + self.prefs["theme"] = theme + self._apply_theme() + self._persist_prefs() + + def _apply_theme(self) -> None: + app = QApplication.instance() + if app is not None: + app.setStyleSheet(build_qss(self._theme)) + self.brand_bar.set_theme(self._theme) + self.status_strip.set_theme(self._theme) + self.run_bar.set_theme(self._theme) + self.axis_readout.set_theme(self._theme) + self._apply_chrome_colours() + self.act_theme_dark.setChecked(self._theme == "dark") + self.act_theme_light.setChecked(self._theme == "light") + + def _set_language(self, language: str) -> None: + self._language = language + self.prefs["language"] = language + set_locale(language) + self.poller.set_language(language) + self.retranslate() + self._persist_prefs() + + def _set_diagnostics(self, visible: bool) -> None: + """Show or hide the diagnostics box. + + It used to be a splitter pane, which meant toggling it resized the whole + page. Now it is a fixed footer: the layout above it does not move, so an + operator cannot lose their place by turning the diagnostics on. + """ + self.prefs["show_diagnostics"] = bool(visible) + self.diagnostics_box.setVisible(bool(visible)) + if visible: + self._refresh_diagnostics() + self._persist_prefs() + + def _on_reveal_config(self) -> None: + from orisys_app_shared.paths import config_dir + + self._reveal(config_dir()) + + def _on_reveal_outputs(self) -> None: + self._reveal(outputs_dir()) + + @staticmethod + def _reveal(path: Path) -> None: + try: + if sys.platform == "win32": + subprocess.Popen(["explorer", str(path)]) + else: # pragma: no cover - the platform is Windows + subprocess.Popen(["xdg-open", str(path)]) + except OSError: + logger.exception("Could not open %s", path) + + def _on_about(self) -> None: + QMessageBox.information( + self, + t("app.about_title"), + t( + "app.about_body", + app_version=app_version, + shared_version=shared_version, + api_version=API_VERSION, + binding=f"PySide6 {_pyside_version()}", + dll_dir=self.poller.service.transport.source, + prefs_path=self.prefs_path(), + ), + ) + + def prefs_path(self) -> str: + from ..preferences import path as preference_path + + return str(preference_path()) + + # ------------------------------------------------------------- translations + + def retranslate(self) -> None: + self.setWindowTitle(f"{t('app.title')} {app_version}") + self.brand_bar.retranslate() + self.status_strip.retranslate() + self.run_bar.retranslate() + self.connection_panel.retranslate() + self.bus_panel.retranslate() + self.bus_data_group.setTitle(t("busdata.group")) + self.bus_data_panel.retranslate() + self.axis_panel.retranslate() + self.axis_readout.retranslate() + self.sequence_panel.retranslate() + self.workspace.retranslate() + + self.menu_file.setTitle(t("menu.file")) + self.act_download_bas.setText(t("menu.open_bas")) + self.act_reveal_config.setText(t("menu.reveal_config")) + self.act_reveal_outputs.setText(t("menu.outputs")) + self.act_quit.setText(t("menu.quit")) + self.menu_view.setTitle(t("menu.view")) + self.menu_theme.setTitle(t("menu.theme")) + self.act_theme_dark.setText(t("menu.theme_dark")) + self.act_theme_light.setText(t("menu.theme_light")) + self.menu_language.setTitle(t("menu.language")) + self.act_lang_zh.setText(t("menu.lang_zh")) + self.act_lang_en.setText(t("menu.lang_en")) + self.act_diagnostics.setText(t("menu.show_diagnostics")) + self.menu_tabs.setTitle(t("menu.tabs")) + for key, locale_key in self._tab_locale_keys.items(): + self.act_tabs[key].setText(t(locale_key)) + self.menu_help.setTitle(t("menu.help")) + self.act_about.setText(t("menu.about")) + self.act_lang_zh.setChecked(self._language == "zh_CN") + self.act_lang_en.setChecked(self._language == "en_US") + self.diagnostics_box.setTitle(t("diagnostics.title")) + self._refresh_status_bar() + + # ------------------------------------------------------------ persistence + + def _restore_geometry(self) -> None: + geometry = self.prefs.get("window_geometry") + if isinstance(geometry, list) and len(geometry) == 4: + try: + self.setGeometry(*(int(value) for value in geometry)) + self._apply_splitter_sizes() + return + except (TypeError, ValueError): + logger.warning("Ignoring malformed window_geometry: %r", geometry) + self.resize(*DEFAULT_WINDOW_SIZE) + self._apply_splitter_sizes() + + def _apply_splitter_sizes(self) -> None: + """Restore the column split, or fall back to the designed proportions. + + The previous layout stored three column widths in ``splitter_sizes`` for + a different splitter; that key no longer describes anything, so it is + ignored rather than misapplied. + """ + stored = self.prefs.get("main_splitter_sizes") + if isinstance(stored, list) and len(stored) == self.main_splitter.count(): + try: + self.main_splitter.setSizes([int(value) for value in stored]) + return + except (TypeError, ValueError): + logger.warning("Ignoring malformed main_splitter_sizes: %r", stored) + self.main_splitter.setSizes(list(MAIN_SPLITTER_SIZES)) + + def _persist_prefs(self) -> None: + """Write the current UI state to AutoCal's preference file.""" + geometry = self.geometry() + self.prefs["window_geometry"] = [ + geometry.x(), + geometry.y(), + geometry.width(), + geometry.height(), + ] + self.prefs["main_splitter_sizes"] = [int(v) for v in self.main_splitter.sizes()] + self.prefs["bas_path"] = self.bus_panel.bas_path + self.prefs["units_per_mm"] = self.axis_panel._units_per_mm + self.prefs["axis_params"] = { + str(axis): _params_to_dict(params) + for axis, params in self.axis_panel.stored_params().items() + } + self.prefs.update(self.bus_data_panel.remember_state()) + # The sequence profile is the P5 design artefact: whatever is on screen is + # what a later run would use, so it is persisted with everything else. + self.prefs["sequence_profile"] = self.sequence_panel.profile() + try: + save_preferences(self.prefs) + except OSError: + logger.exception("Could not write the preference file") + + def closeEvent(self, event: QCloseEvent) -> None: # noqa: N802 - Qt override + """Stop the platform, close the controller, then persist and leave.""" + logger.info("Closing: stopping axes and shutting the poller down") + try: + self.poller.submit(lambda service: service.stop_all()) + self.poller.disconnect_controller() + self.poller.shutdown() + except Exception: # noqa: BLE001 - closing must always finish + logger.exception("Shutdown reported a problem") + self._persist_prefs() + event.accept() + + +def _pyside_version() -> str: + """The installed PySide6 version, for the About box and diagnostics.""" + import PySide6 + + return getattr(PySide6, "__version__", "unknown") + + +def _safe_axis_params(raw: object) -> list[tuple[int, dict]]: + """Turn the stored per-axis dict into ``AxisParams`` keyword groups. + + A preference file written by an older build (or edited by hand) may be the + wrong shape; a bad entry is dropped rather than crashing the window. + """ + known = set(AxisParams.__dataclass_fields__) + result: list[tuple[int, dict]] = [] + if not isinstance(raw, dict): + return result + for key, values in raw.items(): + if not isinstance(values, dict): + continue + try: + axis = int(key) + except (TypeError, ValueError): + continue + clean = {name: value for name, value in values.items() if name in known} + try: + result.append((axis, clean)) + except (TypeError, ValueError): + logger.warning("Ignoring malformed axis_params[%r]: %r", key, values) + return result + + +def _params_to_dict(params: AxisParams) -> dict: + return { + name: getattr(params, name) for name in AxisParams.__dataclass_fields__ + } + + +def _interpret_result(result) -> tuple[str, bool]: + """Reduce a command's result to ``(message, ok)``. + + See :meth:`AutoCalMainWindow._on_command_finished` for why this is needed + rather than each caller knowing its own result shape. + """ + if result is None: + return "", True + + # A single MotionResult (most commands). + if hasattr(result, "ok"): + return str(getattr(result, "message", "") or ""), bool(result.ok) + + # A (MotionResult, value) pair from the SDO/RTEX reads. Checked before the + # plain-list case, because a tuple's first element is a MotionResult here + # while a stop-all list's items are. + if isinstance(result, tuple) and len(result) == 2 and hasattr(result[0], "ok"): + head, value = result + if not head.ok: + return str(getattr(head, "message", "") or ""), False + return t("busdata.read_ok", value=value), True + + # A list of MotionResults (stop-all): ok when every one succeeded, and the + # first refusal's reason is the useful thing to show. + if isinstance(result, (list, tuple)) and result and hasattr(result[0], "ok"): + failures = [item for item in result if not item.ok] + if failures: + return str(getattr(failures[0], "message", "") or ""), False + return "", True + + # A scanned address list. + if isinstance(result, (list, tuple)): + return ", ".join(str(item) for item in result), True + + return str(result), True diff --git a/apps/autocal/src/orisys_autocal/ui/workspace.py b/apps/autocal/src/orisys_autocal/ui/workspace.py new file mode 100644 index 0000000..c0fe890 --- /dev/null +++ b/apps/autocal/src/orisys_autocal/ui/workspace.py @@ -0,0 +1,130 @@ +"""The single-page workspace. + +One tab per task the operator does on the platform, with the motion status strip +living *outside* this widget so a tab change cannot hide the state that decides +whether it is safe to act. + +Pages that are not built yet are present as labelled placeholders rather than +missing: the layout is being reviewed for operator use, and a tab that appears +only later would change the layout under review. Each placeholder names what +will fill it, so nobody mistakes an empty page for a broken one. +""" + +from __future__ import annotations + +from PySide6.QtCore import Signal +from PySide6.QtWidgets import ( + QLabel, + QTabWidget, + QVBoxLayout, + QWidget, +) + +from orisys_app_shared.i18n import t + +from .axis_panel import AxisPanel +from .sequence_panel import SequencePanel + +#: Tab identity -> locale key for its label. Order is the display order, and it +#: follows the work: commission the axes, describe the sequence, watch the +#: sensor, look at the surface, then record calibration points. +TABS: tuple[tuple[str, str], ...] = ( + ("axes", "workspace.tab_axes"), + ("sequence", "workspace.tab_sequence"), + ("sensor", "workspace.tab_sensor"), + ("surface", "workspace.tab_surface"), + ("points", "workspace.tab_points"), +) + +#: Tabs whose content does not exist yet, with the locale key that explains what +#: will appear there and when. +_PLACEHOLDERS: dict[str, str] = { + "sensor": "workspace.reserved_sensor", + "surface": "workspace.reserved_surface", + "points": "workspace.reserved_points", +} + + +class PlaceholderPage(QWidget): + """An empty page that says what it is waiting for.""" + + def __init__(self, locale_key: str, parent: QWidget | None = None) -> None: + super().__init__(parent) + self._locale_key = locale_key + layout = QVBoxLayout(self) + layout.setContentsMargins(16, 16, 16, 16) + layout.setSpacing(8) + self.headline = QLabel(self) + self.headline.setObjectName("placeholderTitle") + self.body = QLabel(self) + self.body.setObjectName("hintLabel") + self.body.setWordWrap(True) + layout.addWidget(self.headline) + layout.addWidget(self.body) + layout.addStretch(1) + self.retranslate() + + def retranslate(self) -> None: + self.headline.setText(t("workspace.not_built")) + self.body.setText(t(self._locale_key)) + + +class WorkspaceTabs(QTabWidget): + """The task workspace, with a stable tab set.""" + + pageChanged = Signal(str) + + def __init__( + self, + axis_panel: AxisPanel, + sequence_panel: SequencePanel, + parent: QWidget | None = None, + ) -> None: + super().__init__(parent) + self.setObjectName("workspaceTabs") + self._pages: dict[str, QWidget] = {} + self._placeholder_keys: dict[str, str] = {} + + self._pages["axes"] = axis_panel + self._pages["sequence"] = sequence_panel + for key, locale_key in _PLACEHOLDERS.items(): + page = PlaceholderPage(locale_key, self) + self._pages[key] = page + self._placeholder_keys[key] = locale_key + + for key, _locale_key in TABS: + self.addTab(self._pages[key], "") + + self.currentChanged.connect(self._on_current_changed) + self.retranslate() + + # -------------------------------------------------------------------- state + + def page_keys(self) -> list[str]: + return [key for key, _locale_key in TABS] + + def page(self, key: str) -> QWidget: + return self._pages[key] + + def current_key(self) -> str: + index = self.currentIndex() + keys = self.page_keys() + return keys[index] if 0 <= index < len(keys) else keys[0] + + def set_current_key(self, key: str) -> None: + keys = self.page_keys() + if key in keys: + self.setCurrentIndex(keys.index(key)) + + def retranslate(self) -> None: + for index, (key, locale_key) in enumerate(TABS): + self.setTabText(index, t(locale_key)) + for key, locale_key in self._placeholder_keys.items(): + page = self._pages[key] + if isinstance(page, PlaceholderPage): + page.retranslate() + + def _on_current_changed(self, index: int) -> None: + keys = self.page_keys() + if 0 <= index < len(keys): + self.pageChanged.emit(keys[index]) diff --git a/apps/autocal/tests/conftest.py b/apps/autocal/tests/conftest.py new file mode 100644 index 0000000..878d3a7 --- /dev/null +++ b/apps/autocal/tests/conftest.py @@ -0,0 +1,137 @@ +"""Fixtures for the AutoCal tests. + +Everything here runs offscreen with no controller and no hardware. Two +environment facts are set before Qt is imported: + +* ``QT_QPA_PLATFORM=offscreen`` so a window can be built without a display; +* ``QT_QPA_FONTDIR`` because the offscreen platform finds no fonts on Windows + otherwise, and every label would measure as zero-width. + +The suite requires PySide6 — the app's only Qt binding. Where it is missing +(an older interpreter, or a machine with no way to install it) the tests are +reported as skipped rather than failing, so a broken environment cannot look +like a broken application. +""" + +from __future__ import annotations + +import os +import sys +from pathlib import Path + +import pytest + +os.environ.setdefault("ORISYS_APP_ID", "autocal") +os.environ.setdefault("QT_QPA_PLATFORM", "offscreen") +if sys.platform == "win32" and "QT_QPA_FONTDIR" not in os.environ: + _fonts = Path(os.environ.get("WINDIR", r"C:\Windows")) / "Fonts" + if _fonts.is_dir(): + os.environ["QT_QPA_FONTDIR"] = str(_fonts) + + +def _have_pyside6() -> tuple[bool, str]: + try: + import PySide6 + except ImportError as exc: + return False, str(exc) + return True, getattr(PySide6, "__version__", "unknown") + + +HAVE_PYSIDE6, PYSIDE6_VERSION = _have_pyside6() + +if not HAVE_PYSIDE6: # pragma: no cover - depends on the machine + collect_ignore_glob = ["test_*.py"] + + +@pytest.fixture(scope="session") +def qt_app(): + """One ``QApplication`` per session (Qt forbids more than one).""" + if not HAVE_PYSIDE6: # pragma: no cover + pytest.skip("PySide6 is not installed") + from PySide6.QtWidgets import QApplication + + app = QApplication.instance() or QApplication([]) + yield app + + +SCRATCH_ROOT = Path(__file__).resolve().parents[1] / "outputs" / "_test_scratch" + + +def _scratch_dir() -> Path: + """A fresh scratch directory under the app's own (gitignored) outputs.""" + import time + + path = SCRATCH_ROOT / f"{os.getpid()}-{int(time.time() * 1000) % 1_000_000}" + path.mkdir(parents=True, exist_ok=True) + return path + + +@pytest.fixture +def make_window(qt_app, monkeypatch): + """Build a window whose preference writes stay inside a scratch directory. + + Deliberately not ``tmp_path``: this suite has to run inside a sandboxed + shell, and ``tmp_path`` depends on a writable process temp root that such an + environment may not provide. Using the app's own ``outputs/`` (already + gitignored) removes that dependency entirely. + """ + import shutil + + from orisys_app_shared import paths as paths_mod + from orisys_app_shared import prefs as prefs_pkg + + from orisys_autocal import preferences as prefs_mod + from orisys_autocal.motion import DemoTransport + from orisys_autocal.ui.window import AutoCalMainWindow + + scratch = _scratch_dir() + prefs_file = scratch / "preference.json" + monkeypatch.setattr(paths_mod, "preference_path", lambda: prefs_file) + monkeypatch.setattr(prefs_pkg.store, "preference_path", lambda: prefs_file) + monkeypatch.setattr(prefs_mod, "preference_path", lambda: prefs_file) + + created = [] + + def _make(**overrides): + prefs = prefs_mod.default_preferences() + prefs.update(overrides) + # The translator is process-global, so a window built after another test + # switched language would otherwise keep that language and then be + # labelled with the wrong locale. + from orisys_app_shared.i18n import set_locale + + set_locale(str(prefs.get("language") or "zh_CN")) + window = AutoCalMainWindow(prefs=prefs) + # Swap in the simulated platform: no test in this suite touches a DLL. + window.poller.service._transport = DemoTransport() # noqa: SLF001 + created.append(window) + return window + + yield _make + + for window in created: + try: + window.poller.shutdown() + window.close() + except Exception: # noqa: BLE001 - teardown must not mask a failure + pass + shutil.rmtree(scratch, ignore_errors=True) + + +def pump(app, seconds: float = 0.2) -> None: + """Run the event loop for a short, bounded time.""" + import time + + deadline = time.monotonic() + seconds + while time.monotonic() < deadline: + app.processEvents() + time.sleep(0.005) + + +def visible_descendants(widget): + """Yield every visible descendant of ``widget``.""" + for child in widget.findChildren(object): + if not hasattr(child, "isVisible") or not hasattr(child, "geometry"): + continue + if child.isVisible(): + yield child diff --git a/apps/autocal/tests/test_binding_purity.py b/apps/autocal/tests/test_binding_purity.py new file mode 100644 index 0000000..cfdc6f4 --- /dev/null +++ b/apps/autocal/tests/test_binding_purity.py @@ -0,0 +1,185 @@ +"""Binding policy for AutoCal. + +AutoCal is **PySide6 only**, and this file is the guard for that: + +* no module may import PyQt5, PySide2 or PyQt6 — the app's environment has + PySide6 and nothing else, so such an import is a hard start-up failure; +* no module may use an unscoped Qt enumerator (``Qt.AlignLeft``), which PySide6 + removed in favour of ``Qt.AlignmentFlag.AlignLeft``; +* ``shared/`` — which serves both this app and the PyQt5-based studio — must + import no Qt binding at all; +* the controller layer must stay importable from a headless process. + +The reason the binding matters at all is licensing, not taste: PyQt5's free +option is GPLv3-or-commercial, while PySide6 is LGPLv3, so an internal +closed-source tool needs no licence purchase. See ``README.md``. +""" + +from __future__ import annotations + +import ast +from pathlib import Path + +APP_SRC = Path(__file__).resolve().parents[1] / "src" +SHARED_SRC = Path(__file__).resolve().parents[3] / "shared" / "src" + +#: Bindings the app must never import. +FORBIDDEN_BINDINGS = {"PyQt5", "PyQt6", "PySide2"} + +#: The one binding allowed, and where it may be named. +ALLOWED_BINDING = "PySide6" + +#: Scoped enum holders we care about, with the value names actually used. +_SCOPED_ENUMS = { + "Qt": ( + "AlignmentFlag", + "ItemDataRole", + "Orientation", + "ConnectionType", + "TextInteractionFlag", + "TransformationMode", + "ToolButtonStyle", + "FocusPolicy", + "ScrollBarPolicy", + ), + "QTableWidget": ("SelectionMode", "EditTrigger"), + "QSizePolicy": ("Policy",), + "QHeaderView": ("ResizeMode",), + "QMessageBox": ("StandardButton", "Icon"), + "QDialog": ("DialogCode",), + "QAbstractItemView": ("SelectionMode", "EditTrigger"), +} + + +def _python_files(root: Path) -> list[Path]: + return sorted(path for path in root.rglob("*.py") if "__pycache__" not in path.parts) + + +def _imported_packages(path: Path) -> set[str]: + """Every top-level package name imported by ``path``.""" + tree = ast.parse(path.read_text(encoding="utf-8")) + found: set[str] = set() + for node in ast.walk(tree): + if isinstance(node, ast.Import): + for alias in node.names: + found.add(alias.name.split(".")[0]) + elif isinstance(node, ast.ImportFrom) and node.module and node.level == 0: + found.add(node.module.split(".")[0]) + return found + + +def _unscoped_enum_references(path: Path) -> list[str]: + """Attribute reads like ``Qt.AlignLeft`` — the spelling PySide6 rejects. + + Parsed rather than pattern-matched for two reasons: a regex also hits prose + in a comment or docstring (which is exactly where the scoped spelling gets + *explained*), and ``QMessageBox.information(...)`` looks like an enumerator + but is a static method. The parent map separates the two, and + ``Qt.AlignmentFlag.AlignLeft`` is an inner attribute on an allow-listed enum + class rather than a plain name, so it is never a candidate. + """ + tree = ast.parse(path.read_text(encoding="utf-8")) + called = { + id(node.func) + for node in ast.walk(tree) + if isinstance(node, ast.Call) and isinstance(node.func, ast.Attribute) + } + found: set[str] = set() + for node in ast.walk(tree): + if not isinstance(node, ast.Attribute) or not isinstance(node.value, ast.Name): + continue + if id(node) in called: + continue # a method or function call, not an enumerator + holder = node.value.id + enum_names = _SCOPED_ENUMS.get(holder) + if not enum_names or node.attr in enum_names: + continue + found.add(f"{holder}.{node.attr}") + return sorted(found) + + +def test_no_module_imports_a_forbidden_binding(): + offenders = [] + for path in _python_files(APP_SRC): + bad = _imported_packages(path) & FORBIDDEN_BINDINGS + if bad: + offenders.append(f"{path.name}: {sorted(bad)}") + assert not offenders, ( + f"AutoCal is {ALLOWED_BINDING}-only; these modules import another " + f"binding: {offenders}" + ) + + +def test_every_ui_module_imports_the_allowed_binding(): + """A UI file that names no binding would be using one it does not declare.""" + offenders = [] + for path in _python_files(APP_SRC / "orisys_autocal" / "ui"): + if path.name == "__init__.py": + continue # a re-export barrel, not a widget module + if ALLOWED_BINDING not in _imported_packages(path): + offenders.append(path.name) + assert not offenders, f"these UI modules do not import {ALLOWED_BINDING}: {offenders}" + + +def test_no_module_uses_an_unscoped_enum(): + offenders = [] + for path in _python_files(APP_SRC): + references = _unscoped_enum_references(path) + if references: + offenders.append(f"{path.name}: {references}") + assert not offenders, ( + "unscoped Qt enumerators were removed in PySide6; use the scoped " + f"spelling: {offenders}" + ) + + +def test_the_controller_interface_is_qt_free(): + """The controller and its guards stay importable from a headless process. + + ``poller`` is deliberately absent from this check: it *is* the Qt worker + bridge (``QThread``, signals), and it lives beside the service precisely so + that the service, the transports, the models and the error map do not need + a GUI to be exercised. + """ + qt_free = ("models.py", "errors.py", "units.py", "service.py", "transport.py") + offenders = [] + for path in _python_files(APP_SRC / "orisys_autocal" / "motion"): + if path.name not in qt_free: + continue + qt_imports = _imported_packages(path) & {"PySide2", "PySide6", "PyQt5", "PyQt6"} + if qt_imports: + offenders.append(f"{path.name}: {sorted(qt_imports)}") + assert not offenders, offenders + + +def test_shared_imports_no_qt_binding(): + """Shared code serves both products, so it must not pick a side.""" + offenders = [] + for path in _python_files(SHARED_SRC): + qt_imports = _imported_packages(path) & {"PySide2", "PySide6"} + if qt_imports: + offenders.append(f"{path.name}: {sorted(qt_imports)}") + assert not offenders, ( + "shared code must not import PySide2/PySide6 (studio is PyQt5): " + f"{offenders}" + ) + + +def test_zmotion_client_imports_no_qt_binding(): + zmotion = SHARED_SRC / "orisys_app_shared" / "zmotion" + offenders = [] + for path in _python_files(zmotion): + qt_imports = _imported_packages(path) & {"PySide2", "PySide6", "PyQt5", "PyQt6"} + if qt_imports: + offenders.append(f"{path.name}: {sorted(qt_imports)}") + assert not offenders, offenders + + +def test_the_app_declares_its_binding_dependency(): + """The packaging must state PySide6, not leave it to chance.""" + pyproject = (Path(__file__).resolve().parents[1] / "pyproject.toml").read_text( + encoding="utf-8" + ) + assert ALLOWED_BINDING in pyproject + for forbidden in FORBIDDEN_BINDINGS: + assert f'"{forbidden}' not in pyproject, forbidden diff --git a/apps/autocal/tests/test_errors.py b/apps/autocal/tests/test_errors.py new file mode 100644 index 0000000..8395311 --- /dev/null +++ b/apps/autocal/tests/test_errors.py @@ -0,0 +1,54 @@ +"""Controller return-code translation. + +The vendor SDK header defines the auxiliary error block at 30000; everything +else is the firmware's own number. The point of these tests is that AutoCal +never invents a meaning for a code it cannot read out of that header. +""" + +from __future__ import annotations + +import pytest + +from orisys_autocal.motion import errors + +DOCUMENTED = sorted(errors.MESSAGES) + + +def test_zero_is_success_in_both_languages(): + assert errors.describe(0) == "æˆ�功" + assert errors.describe(0, language="en_US") == "OK" + + +def test_the_documented_block_is_the_vendor_offset(): + assert errors.ERR_AUX_OFFSET == 30000 + assert DOCUMENTED == [30000, 30001, 30002, 30003, 30004, 30005] + + +@pytest.mark.parametrize("code", DOCUMENTED) +def test_every_documented_code_has_both_languages(code): + zh = errors.describe(code) + en = errors.describe(code, language="en_US") + assert zh and en and zh != en + + +@pytest.mark.parametrize("code", DOCUMENTED) +def test_no_documented_message_is_empty(code): + assert errors.describe(code).strip() + assert errors.describe(code, language="en_US").strip() + + +def test_an_unknown_code_keeps_its_number(): + """A guessed meaning on a motion controller is worse than 'unknown'.""" + message = errors.describe(12345) + assert "12345" in message + assert message == "错误ç � 12345" + + +def test_an_unknown_code_points_at_zdevelop(): + message = errors.describe_with_hint(-1) + assert "-1" in message + assert errors.UNKNOWN_HINT in message + + +def test_a_documented_code_gets_no_hint_appended(): + assert errors.describe_with_hint(30000) == errors.describe(30000) diff --git a/apps/autocal/tests/test_layout_shell.py b/apps/autocal/tests/test_layout_shell.py new file mode 100644 index 0000000..3d5fae7 --- /dev/null +++ b/apps/autocal/tests/test_layout_shell.py @@ -0,0 +1,469 @@ +"""The single-page shell, from an operator's point of view. + +These assertions are about the layout contract rather than any one panel: + +* the motion status strip is outside the tabs, so it survives every tab change; +* all five tabs exist, are labelled, and their pages fit; +* the right-hand readout rail shows every drive and issues no per-axis command; +* the window refuses to shrink below the size at which the page would clip. + +The overflow check lives in ``test_panel_smoke.py`` because it needs the colour +tables; what is here is the structure. +""" + +from __future__ import annotations + +import pytest + +from conftest import pump + +from orisys_autocal.ui.workspace import TABS + + +def _show(window, size=(1600, 900)): + from PySide6.QtWidgets import QApplication + + window.resize(*size) + window.show() + QApplication.processEvents() + return window + + +def test_the_tab_set_is_the_documented_one(make_window): + window = _show(make_window()) + assert window.workspace.page_keys() == [key for key, _ in TABS] + + +def test_every_tab_has_a_localised_label(make_window): + from orisys_app_shared.i18n import t + + window = _show(make_window()) + for index, (_key, locale_key) in enumerate(TABS): + label = window.workspace.tabText(index) + assert label, f"tab {index} has no label" + assert label == t(locale_key) + assert label != locale_key, f"tab {index} shows its raw key" + + +def test_the_status_strip_survives_every_tab_change(make_window): + """The whole point of putting the strip above the tabs.""" + window = _show(make_window()) + for key in window.workspace.page_keys(): + window.workspace.set_current_key(key) + assert window.status_strip.isVisible(), f"the strip hid on tab {key}" + assert window.status_strip.height() <= 48 + + +def test_the_strip_reports_connection_and_bus_state(make_window): + from orisys_app_shared.i18n import t + + from orisys_autocal.motion import BusStatus, Snapshot + + window = _show(make_window()) + strip = window.status_strip + + strip.set_snapshot(Snapshot(connected=False)) + assert strip.chip_connection.text() == t("connection.state_closed") + assert strip.chip_init.text() == t("bus.state_pending") + + strip.set_snapshot( + Snapshot(connected=True, bus=BusStatus(bus_type="ecat", init_status=1, total_axes=5)) + ) + assert strip.chip_connection.text() == t("connection.state_open") + assert strip.chip_bus.text() == t("bus.type_ecat") + assert strip.chip_init.text() == t("bus.state_ok") + + +def test_a_refusal_stays_visible_on_the_strip(make_window): + """A command refused while the operator was on another tab must not vanish.""" + window = _show(make_window()) + window.workspace.set_current_key("sensor") + window.status_strip.set_action_result("è½´0 回零模å¼�未设置", False) + assert "回零模å¼�" in window.status_strip.action_label.text() + + +def test_the_readout_rail_covers_every_axis(make_window): + window = _show(make_window()) + assert len(window.axis_readout._rows) == window.axis_panel.axis_count == 5 + + +def test_the_readout_rail_shows_position_and_state(make_window): + from orisys_autocal.motion import AxisState, Snapshot + + window = _show(make_window()) + snapshot = Snapshot( + connected=True, + axes=( + AxisState(axis=0, enabled=True, units=10.0, dpos=1000.0, idle=True), + AxisState(axis=1, enabled=False, units=10.0, dpos=0.0, idle=True), + ), + ) + window.axis_readout.update_snapshot(snapshot) + # 1000 user units at units=10 is the documented 2.000 mm, and the readout + # shows both so an operator never has to convert in their head. + text = window.axis_readout._rows[0]["position"].text() + assert "1000.000" in text and "2.000 mm" in text, text + assert window.axis_readout._rows[1]["state"].text() + + +def test_the_readout_rail_issues_no_per_axis_motion(make_window): + """Per-axis commands live in one place only: the Axis-debug tab.""" + window = _show(make_window()) + rail = window.axis_readout + assert not hasattr(rail, "jogRequested") + assert not hasattr(rail, "moveAbsRequested") + assert hasattr(rail, "stopAllRequested") + assert hasattr(rail, "enableAllRequested") + + +def test_enable_all_toggles_with_the_current_state(make_window): + from orisys_autocal.motion import AxisState, Snapshot + + window = _show(make_window()) + requested: list[bool] = [] + window.axis_readout.enableAllRequested.connect(requested.append) + + window.axis_readout.update_snapshot( + Snapshot(connected=True, axes=tuple(AxisState(axis=a, enabled=True) for a in range(5))) + ) + window.axis_readout.enable_all_button.click() + assert requested == [False], "enable-all did not become disable-all" + + window.axis_readout.update_snapshot(Snapshot(connected=True, axes=())) + window.axis_readout.enable_all_button.click() + assert requested == [False, True] + + +def test_the_window_refuses_to_shrink_below_the_page(make_window): + window = _show(make_window()) + window.resize(800, 600) + assert window.width() >= window.minimumWidth() + assert window.height() >= window.minimumHeight() + assert window.minimumWidth() >= 1300 + + +def test_the_bus_data_group_starts_collapsed(make_window): + """It is commissioning-only; expanded, it cost the page ~270 px.""" + window = _show(make_window()) + assert not window.bus_data_group.isChecked() + assert not window.bus_data_panel.isVisible() + + +def test_expanding_bus_data_does_not_resize_the_window(make_window): + window = _show(make_window()) + before = (window.width(), window.height()) + window.bus_data_group.setChecked(True) + pump(_app(), 0.1) + assert (window.width(), window.height()) == before + + +def _app(): + from PySide6.QtWidgets import QApplication + + return QApplication.instance() + + +def test_the_sequence_tab_shows_the_documented_profile_fields(make_window): + from orisys_autocal.ui.sequence_panel import PROFILE_FIELDS + + window = _show(make_window()) + panel = window.sequence_panel + assert panel.profile_keys() == [key for key, _locale, _kind in PROFILE_FIELDS] + + +def test_the_sequence_panel_exposes_its_three_zones(make_window): + window = _show(make_window()) + panel = window.sequence_panel + assert panel.validation_checks() == [ + "on_surface", + "within_travel", + "contact_confirmable", + ] + assert panel.point_row_count() > 0, "the point list is empty" + assert panel.summary_label.text() + + +def test_every_pending_control_names_the_phase_that_owns_it(make_window): + """A disabled control must say why, or it reads as a broken button.""" + window = _show(make_window()) + panel = window.sequence_panel + assert panel.pending_controls() == [ + "generate", + "simulate", + "dry_run", + "save", + "load", + ] + for name, phase in panel.pending_phases().items(): + button = panel._pending_buttons[name] + assert not button.isEnabled(), f"{name} is usable but not implemented" + assert phase in button.toolTip(), f"{name} does not name its phase" + assert button.text(), f"{name} has no label" + + +def test_the_sequence_tab_hands_out_no_runnable_steps(make_window): + """A runner must not be able to start from points nothing has validated.""" + window = _show(make_window()) + assert window.sequence_panel.planned_steps() == [] + + +def test_point_coordinates_are_generated_not_typed(make_window): + """A typed coordinate is one nothing has checked against the sensor.""" + from orisys_autocal.ui.sequence_panel import _EDITABLE_POINT_COLUMNS + + assert _EDITABLE_POINT_COLUMNS == () + window = _show(make_window()) + panel = window.sequence_panel + # The point list is a real table, so it scrolls instead of clipping rows. + assert panel.table.rowCount() == panel.point_row_count() + assert panel.point_row(0)["x"] == "0.000" + # Every cell is read-only: the table's edit triggers are off, so a generated + # coordinate cannot be typed over. + from PySide6.QtWidgets import QTableWidget + + assert panel.table.editTriggers() == QTableWidget.EditTrigger.NoEditTriggers + + +def test_the_profile_round_trips_through_preferences(make_window): + window = _show(make_window()) + panel = window.sequence_panel + panel.field("pitch_mm").setText("3.5") + panel.field("repeats").setText("4") + window._persist_prefs() + stored = window.prefs["sequence_profile"] + assert stored["pitch_mm"] == 3.5 + assert stored["repeats"] == 4 + + +def test_an_unusable_profile_number_falls_back_rather_than_raising(make_window): + from orisys_autocal.preferences import default_preferences + + window = _show(make_window()) + panel = window.sequence_panel + panel.field("pitch_mm").setText("not a number") + assert panel.profile()["pitch_mm"] == 0.0 + # A blank repeats field must not become zero repeats. + panel.field("repeats").setText("") + assert panel.profile()["repeats"] >= 1 + assert "pitch_mm" in default_preferences()["sequence_profile"] + + +def test_the_stored_profile_is_loaded_into_the_form(make_window): + window = _show(make_window(sequence_profile={"pitch_mm": 7.5, "order": "row"})) + panel = window.sequence_panel + assert panel.profile()["pitch_mm"] == 7.5 + assert panel.profile()["order"] == "row" + + +def test_the_axis_table_shows_seven_columns(make_window): + from orisys_autocal.ui.axis_panel import COLUMNS + + window = _show(make_window()) + assert len(COLUMNS) == 7 + assert window.axis_panel.table.columnCount() == 8 # seven data + actions + + +def test_the_axis_detail_line_carries_what_the_table_dropped(make_window): + """Axis type, accel, feedback and the status word must stay reachable.""" + from orisys_autocal.motion import AxisState, Snapshot + + window = _show(make_window()) + window.axis_panel.set_selected_axis(3) + window.axis_panel.update_snapshot( + Snapshot( + connected=True, + axes=(AxisState(axis=3, enabled=True, atype=65, accel=1234.0, mpos=5.0),), + ) + ) + detail = window.axis_panel._detail_label.text() + assert "65" in detail and "1234" in detail + assert "3" in detail + + +def test_the_axis_detail_follows_the_selected_axis(make_window): + from orisys_autocal.motion import AxisState, Snapshot + + window = _show(make_window()) + window.axis_panel.update_snapshot( + Snapshot( + connected=True, + axes=(AxisState(axis=0, atype=65), AxisState(axis=1, atype=67)), + ) + ) + window.axis_panel.set_selected_axis(0) + assert "65" in window.axis_panel._detail_label.text() + window.axis_panel.set_selected_axis(1) + assert "67" in window.axis_panel._detail_label.text() + + +def test_the_window_defaults_to_the_design_resolution(make_window): + from orisys_autocal.ui.window import DEFAULT_WINDOW_SIZE, MINIMUM_WINDOW_SIZE + + assert DEFAULT_WINDOW_SIZE == (1920, 1080) + assert MINIMUM_WINDOW_SIZE[0] >= 1440 + + +def test_the_default_theme_is_light(make_window): + from orisys_autocal.preferences import DEFAULT_THEME + + assert DEFAULT_THEME == "light" + window = _show(make_window()) + assert window._theme == "light" + + +def test_pausing_the_strip_pauses_the_poller(make_window): + window = _show(make_window()) + window.status_strip.pause_button.setChecked(True) + window._on_pause_polling() + assert window.poller.paused + window.status_strip.pause_button.setChecked(False) + window._on_pause_polling() + assert not window.poller.paused + + +def test_the_diagnostics_footer_does_not_move_the_layout(make_window): + window = _show(make_window()) + splitters = window.main_splitter.sizes() + window._set_diagnostics(True) + window._set_diagnostics(False) + assert window.main_splitter.sizes() == splitters + + +def test_splitter_sizes_round_trip_through_preferences(make_window): + window = _show(make_window()) + window.main_splitter.setSizes([340, 1500]) + window._persist_prefs() + stored = window.prefs["main_splitter_sizes"] + assert len(stored) == 2 + assert stored[1] > stored[0] + + +def test_the_rail_is_a_single_scrollable_column(make_window): + """Two thin rails bracketing the workspace cost it 240 px at every size.""" + from orisys_autocal.ui.window import MAIN_SPLITTER_SIZES + + assert len(MAIN_SPLITTER_SIZES) == 2, "the layout is back to three columns" + window = _show(make_window()) + assert window.main_splitter.count() == 2 + assert window.left_rail.widget() is window.rail_content + # The readout lives in the rail now, not in a rail of its own. + assert window.rail_content.findChild(type(window.axis_readout)) is window.axis_readout + + +def test_the_rail_scrolls_rather_than_clipping_its_controls(make_window): + """At 900 px high the three rail groups do not fit; the rail must scroll.""" + window = _show(make_window(), (1440, 900)) + viewport = window.left_rail.viewport().height() + content = window.rail_content.sizeHint().height() + scroll = window.left_rail.verticalScrollBar() + assert content <= viewport or scroll.maximum() > 0, ( + f"rail content is {content}px in a {viewport}px viewport and cannot scroll" + ) + + +# --------------------------------------------------------------- run controls + + +def test_the_run_bar_is_visible_from_every_tab(make_window): + """Abort must never require finding the tab that started the run.""" + window = _show(make_window()) + for key in window.workspace.page_keys(): + window.workspace.set_current_key(key) + assert window.run_bar.isVisible(), f"the run bar hid on tab {key}" + + +def test_run_is_wired_and_refuses_by_naming_its_phase(make_window): + window = _show(make_window()) + window.run_bar.run_button.click() + assert "P7" in window.status_strip.action_label.text() + + +def test_abort_stops_the_axes_and_is_enabled_once_a_run_exists(make_window): + window = _show(make_window()) + assert not window.run_bar.abort_button.isEnabled() + + requested = [] + window.run_bar.abortRequested.connect(lambda: requested.append(True)) + window.run_bar.set_run(True) + assert window.run_bar.abort_button.isEnabled() + window.run_bar.abort_button.click() + assert requested == [True] + assert window.run_bar.phase == "failed" + + +def test_the_run_bar_shows_progress_and_timing(make_window): + window = _show(make_window()) + window.run_bar.set_progress(7, 40) + assert "7" in window.run_bar.step_label.text() + assert "40" in window.run_bar.step_label.text() + assert window.run_bar.progress.maximum() == 40 + assert window.run_bar.progress.value() == 7 + + window.run_bar.set_timing(125.0, 300.0) + assert "2:05" in window.run_bar.time_label.text() + # An unknown estimate must say so rather than showing a wrong number. + window.run_bar.set_timing(125.0, None) + assert "2:05" in window.run_bar.time_label.text() + + +# ---------------------------------------------------------------- poll health + + +def test_the_health_chip_reports_the_age_of_the_last_reading(make_window): + from orisys_autocal.motion import Snapshot + + window = _show(make_window()) + strip = window.status_strip + strip.set_snapshot(Snapshot(connected=True)) + assert strip.chip_health.text() + assert strip.chip_health._tone == "ok" + + +def test_the_health_chip_ages_when_the_poll_stops(make_window): + """A stalled poll must not keep looking healthy.""" + from orisys_autocal.motion import Snapshot + + window = _show(make_window()) + strip = window.status_strip + strip.set_poll_interval_ms(100) + strip.set_snapshot(Snapshot(connected=True)) + strip._last_snapshot_at -= 1.5 # fifteen intervals ago + strip.refresh_health() + assert strip.chip_health._tone == "error", strip.chip_health.text() + + +def test_the_health_chip_says_paused_rather_than_ageing(make_window): + from orisys_autocal.motion import Snapshot + + window = _show(make_window()) + strip = window.status_strip + strip.set_snapshot(Snapshot(connected=True)) + strip.set_paused(True) + strip.refresh_health() + assert strip.chip_health._tone == "muted" + assert strip.chip_health.text() != "" + + +def test_the_status_bar_uses_its_own_theme_token(make_window): + """The brand navy reads well as a header and heavy as a footer.""" + from orisys_app_shared.theme import load_colors + + for theme in ("light", "dark"): + colours = load_colors(theme) + assert "status_bar_bg" in colours, theme + assert "status_bar_text" in colours, theme + window = _show(make_window()) + assert "QStatusBar" in window.statusBar().styleSheet() + + +def test_language_switch_relabels_the_new_shell(make_window): + from orisys_app_shared.i18n import t + + window = _show(make_window(language="zh_CN")) + zh_tabs = [window.workspace.tabText(i) for i in range(window.workspace.count())] + window._set_language("en_US") + assert window.status_strip.title.text() == t("status.motion") + assert window.run_bar.title.text() == t("run.title") + en_tabs = [window.workspace.tabText(i) for i in range(window.workspace.count())] + assert en_tabs != zh_tabs + assert all(en_tabs) diff --git a/apps/autocal/tests/test_locales_autocal.py b/apps/autocal/tests/test_locales_autocal.py new file mode 100644 index 0000000..f82abf8 --- /dev/null +++ b/apps/autocal/tests/test_locales_autocal.py @@ -0,0 +1,88 @@ +"""Locale files: same keys everywhere, and a real fallback. + +``Translator`` returns the key itself when a string is missing, which is silent +in production — a label would simply read ``axes.nope``. The studio suite guards +this by comparing key sets; the same guard applies here. +""" + +from __future__ import annotations + +import json +from pathlib import Path + +import pytest + +from orisys_autocal.preferences import load_preferences + +LOCALES = Path(__file__).resolve().parents[1] / "config" / "locales" +LANGUAGES = ("zh_CN", "en_US") + + +def _load(language: str) -> dict: + return json.loads((LOCALES / f"{language}.json").read_text(encoding="utf-8")) + + +def _flatten(node: dict, prefix: str = "") -> set[str]: + keys: set[str] = set() + for key, value in node.items(): + path = f"{prefix}{key}" + if isinstance(value, dict): + keys |= _flatten(value, f"{path}.") + else: + keys.add(path) + return keys + + +def test_every_locale_file_exists(): + for language in LANGUAGES: + assert (LOCALES / f"{language}.json").is_file(), language + + +def test_locales_have_identical_key_sets(): + reference = _flatten(_load("zh_CN")) + for language in LANGUAGES[1:]: + other = _flatten(_load(language)) + assert other == reference, { + f"{language}_only": sorted(other - reference), + f"zh_CN_only": sorted(reference - other), + } + + +def test_no_translation_is_empty_where_a_label_is_expected(): + """A blank string renders as an empty widget, which looks like a bug.""" + for language in LANGUAGES: + for key, value in _walk(_load(language)): + assert str(value).strip(), f"{language}: {key} is blank" + + +def test_the_product_name_is_localised(): + """The window title is Chinese in zh_CN and English in en_US.""" + assert _load("zh_CN")["app"]["title"] != _load("en_US")["app"]["title"] + + +@pytest.mark.parametrize("language", LANGUAGES) +def test_every_locale_loads_through_the_translator(language): + from orisys_app_shared.i18n import Translator + + translator = Translator(LOCALES, locale=language) + for key in sorted(_flatten(_load(language))): + assert translator.t(key) != key, f"{language}: {key} did not resolve" + + +def test_the_default_preferences_file_matches_the_schema_shape(): + """A shipped default that names a key the app does not have is dead weight.""" + shipped = json.loads( + (LOCALES.parent / "preferences.default.json").read_text(encoding="utf-8") + ) + schema = load_preferences() + for key in shipped: + assert key in schema, f"preferences.default.json has an unknown key: {key}" + + +def _walk(node, prefix: str = ""): + for key, value in node.items(): + path = f"{prefix}{key}" + if isinstance(value, dict): + yield from _walk(value, f"{path}.") + else: + yield path, value diff --git a/apps/autocal/tests/test_motion_service.py b/apps/autocal/tests/test_motion_service.py new file mode 100644 index 0000000..b91b0df --- /dev/null +++ b/apps/autocal/tests/test_motion_service.py @@ -0,0 +1,328 @@ +"""Guard and state-machine behaviour of the motion service. + +Driven against the simulated platform, so every assertion here is about AutoCal's +own logic: what it refuses, what it reads, and when. No test in this file touches +a controller or a DLL. +""" + +from __future__ import annotations + +import time + +import pytest + +from orisys_autocal.motion import ( + INIT_FAILED, + INIT_OK, + INIT_RUNNING, + AxisParams, + ConnectionSpec, + DemoTransport, + MotionService, +) + + +@pytest.fixture +def service(): + return MotionService(DemoTransport()) + + +def _initialise(service, timeout: float = 5.0) -> None: + """Download a BAS program and wait for the simulated bus to report ready.""" + service.download_bas(__file__, 1) + deadline = time.monotonic() + timeout + while time.monotonic() < deadline and service.bus.init_status != INIT_OK: + service.poll([0]) + time.sleep(0.05) + + +# ----------------------------------------------------------------- connection + + +def test_a_fresh_service_is_disconnected_and_touches_nothing(service): + assert not service.connected + assert not service.bas_loaded + assert service.poll([0]).connected is False + + +def test_connect_reports_success_and_an_unknown_bus_without_a_bas(service): + result = service.connect(ConnectionSpec(mode="demo")) + assert result.ok + assert service.connected + # No BAS program has run, so the bus type must not be guessed at. + snapshot = service.poll([0]) + assert snapshot.bus.bus_type == "unknown" + assert not snapshot.bus.initialized + + +def test_connect_failure_is_reported_without_raising(service): + result = service.connect(ConnectionSpec(mode="eth", ip="127.0.0.1")) + assert not result.ok + assert not service.connected + + +def test_disconnect_clears_bus_state(service): + service.connect(ConnectionSpec(mode="demo")) + service.disconnect() + assert not service.connected + assert service.bus.bus_type == "unknown" + + +# ---------------------------------------------------------------- bus init + + +def test_download_requires_a_real_file(service): + service.connect(ConnectionSpec(mode="demo")) + assert not service.download_bas("", 1).ok + assert not service.download_bas(r"D:\nope\missing.bas", 1).ok + + +def test_download_needs_a_connection(service): + assert not service.download_bas(__file__, 1).ok + + +def test_download_then_poll_reaches_initialised(service): + service.connect(ConnectionSpec(mode="demo")) + assert service.download_bas(__file__, 1).ok + _initialise(service) + assert service.bus.init_status == INIT_OK + assert service.bus.bus_type == "ecat" + assert service.bus.total_axes == 5 + assert service.bus.node_count == 5 + + +def test_bus_is_running_immediately_after_download(service): + service.connect(ConnectionSpec(mode="demo")) + service.download_bas(__file__, 1) + assert service.bus.init_status == INIT_RUNNING + + +def test_reinitialise_is_refused_while_already_running(service): + service.connect(ConnectionSpec(mode="demo")) + service.download_bas(__file__, 1) + assert not service.reinit_bus().ok + + +def test_reinitialise_is_refused_without_a_bas_program(service): + service.connect(ConnectionSpec(mode="demo")) + result = service.reinit_bus() + assert not result.ok + assert "BAS" in result.message or "Bas" in result.message + + +def test_init_timeout_is_reported_rather_than_raising(): + """A controller that never publishes its globals must time out, not hang.""" + + class SilentTransport(DemoTransport): + def user_var(self, name): + from orisys_app_shared.zmotion import ZAuxError + + raise ZAuxError(30002, f"{name} is not defined") + + service = MotionService(SilentTransport()) + service._init_timeout = 0.05 # noqa: SLF001 - shortening the vendor window + service.connect(ConnectionSpec(mode="demo")) + service.download_bas(__file__, 1) + time.sleep(0.1) + snapshot = service.poll([0]) + assert snapshot.bus.init_status == INIT_FAILED + assert snapshot.bus.message # carries the ZDevelop hint, not an empty string + + +# ------------------------------------------------------------------- guards + + +def test_motion_is_refused_before_the_bus_is_initialised(service): + service.connect(ConnectionSpec(mode="demo")) + for attempt in ( + service.jog(0, True), + service.move_abs(0, 100.0), + service.move_rel(0, 10.0), + service.home(0), + ): + assert not attempt.ok + assert attempt.message + + +def test_motion_is_refused_when_not_connected(service): + assert not service.jog(0, True).ok + assert not service.move_abs(0, 1.0).ok + assert not service.stop(0).ok + + +def test_motion_on_an_unknown_axis_is_refused(service): + service.connect(ConnectionSpec(mode="demo")) + _initialise(service) + result = service.jog(99, True) + assert not result.ok + assert "99" in result.message or "0-4" in result.message + + +@pytest.mark.parametrize("bad", [float("nan"), float("inf"), float("-inf")]) +def test_a_non_finite_target_is_refused(service, bad): + service.connect(ConnectionSpec(mode="demo")) + _initialise(service) + result = service.move_abs(0, bad) + assert not result.ok + assert result.message + + +def test_home_needs_a_configured_mode(service): + """0 is not a valid homing mode; inheriting one would be worse than saying so.""" + service.connect(ConnectionSpec(mode="demo")) + _initialise(service) + result = service.home(0) + assert not result.ok + assert "0" in result.message + + +def test_home_runs_once_a_mode_is_set(service): + service.connect(ConnectionSpec(mode="demo")) + _initialise(service) + service.set_axis_params(0, AxisParams(home_mode=17)) + assert service.home(0).ok + + +def test_home_is_refused_on_rtex(service): + """The vendor example refuses RTEX homing; so do we.""" + + class RtexTransport(DemoTransport): + def user_var(self, name): + return 1.0 if name == "BUS_TYPE" else super().user_var(name) + + rtex = MotionService(RtexTransport()) + rtex.connect(ConnectionSpec(mode="demo")) + _initialise(rtex) + assert rtex.bus.bus_type == "rtex" + result = rtex.home(0) + assert not result.ok + assert result.message + + +# ------------------------------------------------------------------- motion + + +def test_jog_and_stop_move_the_state_machine(service): + service.connect(ConnectionSpec(mode="demo")) + _initialise(service) + assert service.jog(0, True).ok + state = service.poll([0]).axis(0) + assert state is not None and not state.idle + + assert service.stop(0).ok + state = service.poll([0]).axis(0) + assert state is not None and state.idle + + +def test_absolute_and_relative_moves_change_the_command_position(service): + service.connect(ConnectionSpec(mode="demo")) + _initialise(service) + assert service.move_abs(1, 250.0).ok + assert service.poll([1]).axis(1).dpos == pytest.approx(250.0) + assert service.move_rel(1, -50.0).ok + assert service.poll([1]).axis(1).dpos == pytest.approx(200.0) + + +def test_set_axis_params_writes_and_remembers(service): + service.connect(ConnectionSpec(mode="demo")) + _initialise(service) + params = AxisParams(units=5.0, speed=200.0, accel=2000.0) + assert service.set_axis_params(2, params).ok + assert service.params(2) == params + assert service.to_mm(2, 1000.0) == pytest.approx(1.0) + + +def test_enable_toggles_the_axis(service): + service.connect(ConnectionSpec(mode="demo")) + _initialise(service) + assert service.set_axis_enable(3, False).ok + assert service.poll([3]).axis(3).enabled is False + assert service.set_axis_enable(3, True).ok + assert service.poll([3]).axis(3).enabled is True + + +def test_stop_all_covers_every_axis(service): + service.connect(ConnectionSpec(mode="demo")) + _initialise(service) + results = service.stop_all() + assert len(results) == service.axis_count + assert all(result.ok for result in results) + + +def test_clear_alarm_reaches_the_drive(service): + service.connect(ConnectionSpec(mode="demo")) + _initialise(service) + assert service.clear_alarm(0).ok + + +# ----------------------------------------------------------------- bus data + + +def test_sdo_round_trips_on_ethercat(service): + service.connect(ConnectionSpec(mode="demo")) + _initialise(service) + assert service.sdo_write(0, 0x6040, 0, 3, 6).ok + result, value = service.sdo_read(0, 0x6040, 0, 3) + assert result.ok + assert value == 6 + + +def test_sdo_is_refused_on_rtex(service): + class RtexTransport(DemoTransport): + def user_var(self, name): + return 1.0 if name == "BUS_TYPE" else super().user_var(name) + + rtex = MotionService(RtexTransport()) + rtex.connect(ConnectionSpec(mode="demo")) + _initialise(rtex) + result, _value = rtex.sdo_read(0, 0x6040, 0, 3) + assert not result.ok + + +def test_rtex_is_refused_on_ethercat(service): + service.connect(ConnectionSpec(mode="demo")) + _initialise(service) + result, _value = service.rtex_read(0, 1) + assert not result.ok + + +def test_bus_data_is_refused_before_the_bus_type_is_known(service): + service.connect(ConnectionSpec(mode="demo")) + result, _value = service.sdo_read(0, 0x6040, 0, 3) + assert not result.ok + + +# ------------------------------------------------------------------- polling + + +def test_polling_reports_every_requested_axis(service): + service.connect(ConnectionSpec(mode="demo")) + snapshot = service.poll([0, 1, 2, 3, 4]) + assert [state.axis for state in snapshot.axes] == [0, 1, 2, 3, 4] + assert all(state.read_ok for state in snapshot.axes) + + +def test_a_read_failure_is_marked_not_silently_zeroed(): + """A failed read must not look like a position of zero.""" + + class FailingReads(DemoTransport): + def get_dpos(self, axis): + from orisys_app_shared.zmotion import ZAuxError + + raise ZAuxError(30000, "no response") + + service = MotionService(FailingReads()) + service.connect(ConnectionSpec(mode="demo")) + snapshot = service.poll([0]) + state = snapshot.axis(0) + assert state is not None + assert state.read_ok is False + assert state.error + + +def test_language_switches_the_refusal_text(service): + assert not service.jog(0, True).ok + zh = service.jog(0, True).message + service.set_language("en_US") + en = service.jog(0, True).message + assert zh != en diff --git a/apps/autocal/tests/test_panel_smoke.py b/apps/autocal/tests/test_panel_smoke.py new file mode 100644 index 0000000..7b6fb51 --- /dev/null +++ b/apps/autocal/tests/test_panel_smoke.py @@ -0,0 +1,331 @@ +"""Offscreen UI smoke tests: construction, layout, gating, and preferences. + +The window is built for real, with the simulated platform standing in for the +controller. Nothing here needs a display or hardware. +""" + +from __future__ import annotations + +import pytest + +from conftest import pump, visible_descendants + +RESOLUTIONS = ((1440, 900), (1600, 900), (1920, 1080)) + + +def _show(window, size=(1440, 880)): + from PySide6.QtWidgets import QApplication + + window.resize(*size) + window.show() + QApplication.processEvents() + return window + + +def _enabled(widget) -> bool: + """Whether ``widget`` is effectively enabled, shown or not. + + A plain ``isEnabled()`` is False for every child of a window that has not + been shown, which makes an assertion about gating depend on whether the + test happened to realise the window. ``isEnabledTo`` answers the question + the tests actually mean: would a user be able to operate this control? + """ + return widget.isEnabledTo(widget.window()) + + +# ------------------------------------------------------------------ structure + + +@pytest.mark.parametrize(("theme", "language"), [ + ("dark", "zh_CN"), + ("light", "zh_CN"), + ("dark", "en_US"), + ("light", "en_US"), +]) +def test_the_window_builds_in_every_theme_and_language(make_window, theme, language): + window = _show(make_window(theme=theme, language=language)) + assert window.windowTitle() + assert window.axis_panel.table.rowCount() == 5 + + +def test_the_product_name_is_localised_in_the_window_title(make_window): + window = _show(make_window(language="zh_CN")) + zh = window.windowTitle() + window._set_language("en_US") + assert window.windowTitle() != zh + + +def test_every_axis_row_has_a_labelled_control(make_window): + window = _show(make_window()) + panel = window.axis_panel + for row in range(panel.axis_count): + widgets = panel._rows[row] + for key in ("enable_button", "fwd_button", "rev_button", "stop_button"): + assert widgets[key].text().strip(), f"row {row} {key} has no label" + + +def test_the_table_shows_one_column_per_documented_quantity(make_window): + from orisys_app_shared.i18n import t + + from orisys_autocal.ui.axis_panel import COLUMNS + + window = _show(make_window()) + headers = [ + window.axis_panel.table.horizontalHeaderItem(index).text() + for index in range(window.axis_panel.table.columnCount()) + ] + assert headers == [t(key) for key in COLUMNS] + [t("axes.controls")] + + +@pytest.mark.parametrize("size", RESOLUTIONS) +def test_every_axis_row_is_reachable(make_window, size): + """No drive may be hidden by the splitter. + + The panel asks for three rows without scrolling; at the default window size + all five must be visible, because a clipped fifth row on a five-axis platform + reads as a missing drive rather than as a scrollbar. If the panel is ever + squeezed below that, the table has to scroll rather than silently cut a row. + """ + window = _show(make_window(), size) + table = window.axis_panel.table + rows_height = sum( + table.rowHeight(row) for row in range(window.axis_panel.axis_count) + ) + header = table.horizontalHeader().height() + available = table.viewport().height() + + assert available >= rows_height or table.verticalScrollBar().maximum() > 0, ( + f"{size}: rows need {rows_height}px, viewport has {available}px " + f"(header {header}px) and it cannot scroll" + ) + + +@pytest.mark.parametrize("size", RESOLUTIONS) +def test_no_visible_child_escapes_its_parent(make_window, size): + window = _show(make_window(), size) + oversize = [] + for child in visible_descendants(window): + if _inside_scroll_area(child): + # A scroll area's content is *meant* to exceed its viewport: the rail + # scrolls instead of squeezing its controls into an unreadable column. + continue + parent = child.parentWidget() + if parent is None or not parent.isVisible(): + continue + geometry = child.geometry() + if geometry.width() > parent.width() + 1 or geometry.height() > parent.height() + 1: + oversize.append( + f"{type(child).__name__} {geometry.width()}x{geometry.height()}" + f" > parent {parent.width()}x{parent.height()}" + ) + assert not oversize, oversize + + +def _inside_scroll_area(widget) -> bool: + """Whether ``widget`` is content of a QAbstractScrollArea, not a laid-out child.""" + from PySide6.QtWidgets import QAbstractScrollArea + + parent = widget.parentWidget() + while parent is not None: + if isinstance(parent, QAbstractScrollArea): + return True + parent = parent.parentWidget() + return False + + +# ----------------------------------------------------------------------- gating + + +def test_motion_controls_start_disabled_without_a_bus(make_window): + window = _show(make_window()) + assert not _enabled(window.axis_panel._rows[0]["fwd_button"]) + assert not _enabled(window.axis_panel._rows[0]["rev_button"]) + + +def test_bus_data_panels_follow_the_reported_bus_type(make_window): + window = _show(make_window()) + window.bus_data_panel.set_connected(True) + + window.bus_data_panel.set_bus_type("ecat") + assert _enabled(window.bus_data_panel.ecat_box) + assert not _enabled(window.bus_data_panel.rtex_box) + + window.bus_data_panel.set_bus_type("rtex") + assert _enabled(window.bus_data_panel.rtex_box) + assert not _enabled(window.bus_data_panel.ecat_box) + + window.bus_data_panel.set_bus_type("unknown") + assert not _enabled(window.bus_data_panel.ecat_box) + assert not _enabled(window.bus_data_panel.rtex_box) + + +def test_bus_data_panels_are_disabled_while_disconnected(make_window): + window = _show(make_window()) + window.bus_data_panel.set_bus_type("ecat") + window.bus_data_panel.set_connected(False) + assert not _enabled(window.bus_data_panel.ecat_box) + + +def test_axis_rows_dim_when_the_bus_reports_fewer_drives(make_window): + window = _show(make_window()) + window.axis_panel.set_connected(True) + window.axis_panel.set_axis_count(3) + assert _enabled(window.axis_panel._rows[2]["enable_button"]) + assert not _enabled(window.axis_panel._rows[3]["enable_button"]) + + +def test_unknown_connection_modes_report_instead_of_pretending(make_window): + from orisys_app_shared.i18n import t + + window = _show(make_window()) + panel = window.connection_panel + index = panel.mode_combo.findData("com") + panel.mode_combo.setCurrentIndex(index) + panel._emit_connect() + assert panel.status_label.text() != t("connection.state_open") + + +# ------------------------------------------------------------------- actions + + +def test_the_selected_axis_follows_a_table_click(make_window): + window = _show(make_window()) + window.axis_panel._on_cell_clicked(3, 0) + assert window.axis_panel.selected_axis == 3 + assert window.axis_panel.axis_index_label.text() == "3" + + +def test_blank_numeric_fields_fall_back_to_defaults(make_window): + from orisys_autocal.motion import DEFAULT_UNITS + + window = _show(make_window()) + panel = window.axis_panel + panel.units_edit.setText("") + assert panel.current_params().units == DEFAULT_UNITS + panel.units_edit.setText("not a number") + assert panel.current_params().units == DEFAULT_UNITS + + +def test_a_blank_target_does_not_emit_a_move(make_window): + window = _show(make_window()) + emitted = [] + window.axis_panel.moveAbsRequested.connect(lambda axis, value: emitted.append(value)) + window.axis_panel.target_edit.setText("") + window.axis_panel._on_move_abs() + assert emitted == [] + + +def test_applying_parameters_persists_them_in_the_panel(make_window): + from orisys_autocal.motion import AxisParams + + window = _show(make_window()) + panel = window.axis_panel + panel.set_selected_axis(1) + panel.units_edit.setText("5") + panel.speed_edit.setText("250") + panel.accel_edit.setText("2500") + panel._on_apply() + stored = panel.stored_params()[1] + assert isinstance(stored, AxisParams) + assert stored.units == 5.0 + + +# --------------------------------------------------------------- preferences + + +def test_the_window_geometry_round_trips_through_preferences(make_window): + # Above the enforced minimum (1400x860): a smaller request would be clamped, + # which tests Qt's constraint rather than the preference round-trip. + window = _show(make_window(), (1520, 920)) + window._persist_prefs() + geometry = window.prefs["window_geometry"] + assert len(geometry) == 4 + assert geometry[2] == pytest.approx(1520, abs=5) + assert geometry[3] == pytest.approx(920, abs=5) + + +def test_a_malformed_geometry_is_ignored_rather_than_crashing(make_window): + window = _show(make_window(window_geometry=["nonsense"])) + assert window.width() > 0 + + +def test_axis_parameters_survive_a_persist_reload(make_window): + from orisys_autocal import preferences as prefs_mod + + window = _show(make_window()) + window.axis_panel.set_selected_axis(2) + window.axis_panel.units_edit.setText("7") + window.axis_panel._on_apply() + window._persist_prefs() + + reloaded = prefs_mod.load_preferences() + assert reloaded["axis_params"]["2"]["units"] == 7.0 + + +def test_the_bus_path_is_remembered(make_window): + window = _show(make_window()) + window.bus_panel.set_bas_path(r"D:\somewhere\ECAT.bas") + window._persist_prefs() + assert window.prefs["bas_path"] == r"D:\somewhere\ECAT.bas" + + +def test_sdo_fields_are_remembered(make_window): + window = _show(make_window()) + panel = window.bus_data_panel + panel.node_edit.setText("2") + panel.index_edit.setText("24608") + panel.subindex_edit.setText("1") + window._persist_prefs() + assert window.prefs["sdo_last"]["node"] == 2 + assert window.prefs["sdo_last"]["index"] == 24608 + + +# --------------------------------------------------------------- demo session + + +def test_a_demo_session_fills_the_table_and_gates_motion(make_window, qt_app): + """End to end through the real signal path: connect, initialise, jog.""" + from orisys_autocal.motion import ConnectionSpec + + window = _show(make_window()) + window.connect_controller(ConnectionSpec(mode="demo"), label="connect") + assert _wait_for(lambda: window._last_snapshot.connected, qt_app) + + # Download the shipped ECAT.bas, then wait for the simulated scan. + window.bus_panel.set_bas_path(str(_shipped_bas("ECAT.bas"))) + window._on_download_bas() + assert _wait_for(lambda: window._last_snapshot.bus.init_status == 1, qt_app, timeout=8.0) + + assert window._last_snapshot.bus.bus_type == "ecat" + assert _enabled(window.bus_data_panel.ecat_box) + assert _enabled(window.axis_panel._rows[0]["fwd_button"]) + # ATYPE is no longer a table column — the seven-column table shows position + # and status, and the drive's full frame is on the selected-axis detail line. + window.axis_panel.set_selected_axis(0) + assert "65" in window.axis_panel._detail_label.text() + pump(qt_app, 0.2) + + +def test_closing_the_window_stops_the_poller(make_window, qt_app): + window = _show(make_window()) + window.close() + pump(qt_app, 0.2) + assert not window.poller._thread.isRunning() + + +def _shipped_bas(name: str): + from orisys_autocal.ui.bus_panel import default_bas_dir + + return default_bas_dir() / name + + +def _wait_for(predicate, app, timeout: float = 5.0) -> bool: + import time + + deadline = time.monotonic() + timeout + while time.monotonic() < deadline: + app.processEvents() + if predicate(): + return True + time.sleep(0.02) + return False diff --git a/apps/autocal/tests/test_poller.py b/apps/autocal/tests/test_poller.py new file mode 100644 index 0000000..73fe5c5 --- /dev/null +++ b/apps/autocal/tests/test_poller.py @@ -0,0 +1,233 @@ +"""The poller thread: serialisation, failure isolation, and clean teardown. + +The two things that must never happen are a controller call on the GUI thread +and two controller calls at once. Both are asserted here against a transport +that records how it was used. +""" + +from __future__ import annotations + +import threading +import time + +import pytest + +from orisys_autocal.motion import ConnectionSpec, DemoTransport, MotionPoller, MotionService + + +class RecordingTransport(DemoTransport): + """A *connected* demo platform that records thread and overlap of every call. + + Connected on purpose: the service polls only ``BUS_TYPE`` and ``Bus_InitStatus`` + without a BAS program, so an unconnected transport would keep every read + short and nothing could be observed. A ``_concurrent`` guard asserts no two + calls ever overlap rather than merely asserting the maximum sum of started + calls, which would be trivially satisfied. + """ + + def __init__( + self, + *, + delay: float = 0.0, + unexpected_on: set[str] | None = None, + ) -> None: + super().__init__() + self.delay = delay + self.unexpected_on = unexpected_on or set() + self.thread_ids: set[int] = set() + self.max_concurrent = 0 + self.overlaps: list[str] = [] + self.calls: list[str] = [] + self._lock = threading.Lock() + self._concurrent = 0 + # A fake "BAS program has run": the bus reports EtherCAT and ready. + self._init_started = None + self._preloaded = True + + def open(self, spec) -> None: + super().open(ConnectionSpec(mode="demo")) + self._bas_loaded = True + + def user_var(self, name: str) -> float: + if name == "BUS_TYPE": + return 0.0 + if name == "Bus_InitStatus": + return 1.0 + if name == "Bus_TotalAxisnum": + return 5.0 + return super().user_var(name) + + def _enter(self, name: str) -> None: + with self._lock: + self._concurrent += 1 + if self._concurrent > 1: + self.overlaps.append(name) + self.max_concurrent = max(self.max_concurrent, self._concurrent) + self.calls.append(name) + self.thread_ids.add(threading.get_ident()) + if self.delay: + time.sleep(self.delay) + if name in self.unexpected_on: + raise RuntimeError(f"simulated unexpected fault in {name}") + + def _exit(self) -> None: + with self._lock: + self._concurrent -= 1 + + def get_dpos(self, axis: int) -> float: + self._enter("get_dpos") + try: + return super().get_dpos(axis) + finally: + self._exit() + + def get_mpos(self, axis: int) -> float: + self._enter("get_mpos") + try: + return super().get_mpos(axis) + finally: + self._exit() + + def get_axis_status(self, axis: int) -> int: + self._enter("get_axis_status") + try: + return super().get_axis_status(axis) + finally: + self._exit() + + def get_if_idle(self, axis: int) -> int: + self._enter("get_if_idle") + try: + return super().get_if_idle(axis) + finally: + self._exit() + + +def _connected_poller(transport: RecordingTransport, *, axes=(0,)) -> MotionPoller: + service = MotionService(transport) + assert service.connect(ConnectionSpec(mode="demo")).ok + return MotionPoller(service, axes=list(axes)) + + +@pytest.fixture +def qt_app_session(qt_app): + return qt_app + +def _drain(app, seconds: float = 1.0) -> None: + deadline = time.monotonic() + seconds + while time.monotonic() < deadline: + app.processEvents() + time.sleep(0.005) + + +def _wait_for(predicate, app, timeout: float = 5.0) -> bool: + deadline = time.monotonic() + timeout + while time.monotonic() < deadline: + app.processEvents() + if predicate(): + return True + time.sleep(0.01) + return False + + +def test_completed_commands_are_reported_and_none_are_lost(qt_app): + transport = RecordingTransport() + poller = _connected_poller(transport) + try: + repo = {"finished": [], "failed": []} + poller.commandFinished.connect(lambda token, result: repo["finished"].append(token)) + poller.commandFailed.connect(lambda token, message: repo["failed"].append(token)) + + tokens = [poller.submit(lambda service: None) for _ in range(5)] + assert _wait_for(lambda: len(repo["finished"]) == 5, qt_app) + assert sorted(repo["finished"]) == sorted(tokens) + assert repo["failed"] == [] + finally: + poller.shutdown() + + +def test_every_controller_call_happens_on_one_worker_thread(qt_app): + transport = RecordingTransport() + poller = _connected_poller(transport, axes=(0, 1)) + try: + assert _wait_for(lambda: "get_dpos" in transport.calls, qt_app) + poller.submit(lambda service: None) + _drain(qt_app, 0.3) + assert len(transport.thread_ids) == 1, transport.thread_ids + assert threading.get_ident() not in transport.thread_ids, ( + "a controller call ran on the test's (GUI) thread" + ) + finally: + poller.shutdown() + + +def test_two_controller_calls_never_overlap(qt_app): + """A slow poll plus queued commands must still serialise.""" + transport = RecordingTransport(delay=0.02) + poller = _connected_poller(transport) + try: + for _ in range(4): + poller.submit(lambda service: None) + _drain(qt_app, 0.8) + assert transport.max_concurrent == 1, ( + f"{transport.max_concurrent} controller calls overlapped at once" + ) + assert not transport.overlaps, transport.overlaps + finally: + poller.shutdown() + + +def test_an_unexpected_fault_is_reported_and_does_not_kill_the_poller(qt_app): + """A non-``ZAuxError`` from inside a command must not stop the timer.""" + transport = RecordingTransport(unexpected_on={"get_dpos"}) + poller = _connected_poller(transport) + try: + failures = [] + poller.commandFailed.connect(lambda token, message: failures.append((token, message))) + + # The submitted action asks for the position directly, so the fault + # surfaces from the command rather than being absorbed by a poll. + poller.submit(lambda service: service.transport.get_dpos(0)) + assert _wait_for(lambda: bool(failures), qt_app) + assert failures[0][1] + + # The poller is still alive: later snapshots keep arriving. + before = len(transport.calls) + _drain(qt_app, 0.4) + assert len(transport.calls) > before + finally: + poller.shutdown() + + +def test_shutdown_stops_the_thread_and_is_idempotent(qt_app): + poller = _connected_poller(RecordingTransport()) + _drain(qt_app, 0.2) + poller.shutdown(timeout_ms=3000) + poller.shutdown(timeout_ms=3000) # must not raise or hang + + +def test_a_refused_command_still_arrives_with_its_reason(qt_app): + """An unconnected service refuses in the guard, without touching the DLL.""" + poller = MotionPoller(MotionService(RecordingTransport()), axes=[0]) + try: + results = [] + poller.commandFinished.connect(lambda token, result: results.append(result)) + poller.submit(lambda service: service.jog(0, True)) + assert _wait_for(lambda: bool(results), qt_app) + assert results[0].ok is False + assert results[0].message + finally: + poller.shutdown() + + +def test_connect_and_disconnect_round_trip_through_the_poller(qt_app): + poller = MotionPoller(MotionService(RecordingTransport()), axes=[0]) + try: + states = [] + poller.connectionChanged.connect(states.append) + poller.connect_controller(ConnectionSpec(mode="demo")) + assert _wait_for(lambda: poller.service.connected, qt_app) + poller.disconnect_controller() + assert _wait_for(lambda: not poller.service.connected, qt_app) + finally: + poller.shutdown() diff --git a/apps/autocal/tests/test_units.py b/apps/autocal/tests/test_units.py new file mode 100644 index 0000000..4bf5161 --- /dev/null +++ b/apps/autocal/tests/test_units.py @@ -0,0 +1,73 @@ +"""Unit-to-millimetre conversion. + +The reference program carries the bench measurement in a comment:: + + # è½´0(X)/è½´1(Y) 实测: UNITS=10 æ—¶ 1000用户å�•ä½� = 2mm → æ¯�毫米 5000 脉冲 + # 当é‡�5 → 1000å�•ä½�=1mm,ä¸�是100å�•ä½�=1mm + +These are the assertions that keep that comment honest. +""" + +from __future__ import annotations + +import math + +import pytest + +from orisys_autocal.motion.units import ( + PULSES_PER_MM, + mm_to_user_units, + safe_float, + user_units_to_mm, +) + + +@pytest.mark.parametrize( + ("units", "user_units", "expected_mm"), + [ + (10.0, 1000.0, 2.0), # the measured case from the vendor comment + (5.0, 1000.0, 1.0), # ...and the second one + (10.0, 0.0, 0.0), + (10.0, 5000.0, 10.0), + (10.0, -1000.0, -2.0), # negative travel must stay negative + ], +) +def test_conversion_matches_the_bench_measurement(units, user_units, expected_mm): + assert user_units_to_mm(user_units, units=units) == pytest.approx(expected_mm) + + +def test_default_units_is_the_platform_value(): + assert user_units_to_mm(1000.0) == pytest.approx(2.0) + assert PULSES_PER_MM == 5000.0 + + +def test_conversion_round_trips(): + for units in (1.0, 5.0, 10.0, 37.5): + millimetres = user_units_to_mm(1234.5, units=units) + assert mm_to_user_units(millimetres, units=units) == pytest.approx(1234.5) + + +def test_a_zero_or_negative_scale_is_not_a_number(): + """A bad constant must be visibly unusable, not a plausible number.""" + assert math.isnan(user_units_to_mm(1000.0, pulses_per_mm=0.0)) + assert math.isnan(user_units_to_mm(1000.0, pulses_per_mm=-1.0)) + assert math.isnan(mm_to_user_units(1.0, units=0.0)) + + +@pytest.mark.parametrize( + "text", + ["", " ", "abc", "1,5", None, "nan", "inf", "-inf"], +) +def test_unusable_entries_fall_back(text): + assert safe_float(text, 42.0) == 42.0 + + +@pytest.mark.parametrize("text", ["0", "0.0", " 0 "]) +def test_zero_falls_back_because_it_would_divide(text): + """A pulse equivalent of zero must never reach the controller.""" + assert safe_float(text, 7.0) == 7.0 + + +@pytest.mark.parametrize(("text", "expected"), [("5", 5.0), (" 2.5 ", 2.5), ("-3", -3.0)]) +def test_usable_entries_are_parsed(text, expected): + assert safe_float(text, 42.0) == expected diff --git a/apps/autocal/tools/layout_mockup.py b/apps/autocal/tools/layout_mockup.py new file mode 100644 index 0000000..616cbe0 --- /dev/null +++ b/apps/autocal/tools/layout_mockup.py @@ -0,0 +1,1010 @@ +#!/usr/bin/env python3 +"""Draw the *proposed* AutoCal console as a picture. + +This is a wireframe, not the application. It exists so the layout can be +reviewed and marked up before (or independently of) the real panels being +built — there is no controller, no sensor and no 3D behind it, and it imports +nothing from ``orisys_autocal`` except the shared theme tokens. + + python apps/autocal/tools/layout_mockup.py --out layout.png + python apps/autocal/tools/layout_mockup.py --theme light --language en_US + +Canvas contents: + +* the **full page** at the design resolution (menu bar, permanent status strip, + three columns, status bar) with the *Axis debug* tab active; +* a **sequence design page**, drawn at the same size, because that interface is + a design question in its own right (workflow P5); +* **previews** of the remaining three tabs, so the whole plan is in one image. + +Numbers are pixels and follow the implementation's measured minimums (setup rail +326, readout rail 220, workspace the remainder). +""" + +from __future__ import annotations + +import argparse +import math +import os +import sys +from pathlib import Path + +APP_ROOT = Path(__file__).resolve().parents[1] +for path in (APP_ROOT / "src", APP_ROOT.parents[1] / "shared" / "src"): + if str(path) not in sys.path: + sys.path.insert(0, str(path)) + +# No display and no bundled fonts: the offscreen platform needs both told. +os.environ.setdefault("QT_QPA_PLATFORM", "offscreen") +if sys.platform == "win32" and "QT_QPA_FONTDIR" not in os.environ: + _fonts = Path(os.environ.get("WINDIR", r"C:\Windows")) / "Fonts" + if _fonts.is_dir(): + os.environ["QT_QPA_FONTDIR"] = str(_fonts) + +from PySide6.QtCore import QPoint, QRect, Qt # noqa: E402 +from PySide6.QtGui import QColor, QFont, QPainter, QPen, QPixmap, QPolygon # noqa: E402 +from PySide6.QtWidgets import QApplication # noqa: E402 + +# ---------------------------------------------------------------- geometry --- + +PAGE_W, PAGE_H = 1920, 1080 +MARGIN = 8 +MENU_H = 24 +BRAND_H = 36 +STRIP_H = 44 +RUNBAR_H = 40 +STATUS_H = 26 +RAIL_LEFT = 330 +WORKSPACE_W = PAGE_W - RAIL_LEFT - 3 * MARGIN + +PREVIEW_W, PREVIEW_H = 640, 340 + +#: Column widths of the axis table: seven data columns plus the actions group. +AXIS_COL_W = (46, 96, 100, 100, 130, 130, 130) +AXIS_ACTIONS_W = 166 + +STRINGS = { + "zh_CN": { + "menu": ["文件", "视图", "帮助"], + "brand_detail": "å� åŠ¨ç§‘æŠ€", + "chip_conn": "已连接", + "chip_bus": "EtherCAT", + "chip_init": "åˆ�始化æˆ�功", + "chip_axes": "已使能 5/5 è½´", + "chip_health": "刷新 12 ms å‰�", + "strip_title": "è¿�动控制", + "pause": "æš‚å�œåˆ·æ–°", + "stop_all": "全部å�œæ­¢", + "run_title": "è¿�行", + "run_phase": "空闲", + "run_step": "第 0/0 点", + "run_time": "已用 0:00 · 预计剩余 —", + "run_run": "è¿�行", + "run_pause": "æš‚å�œ", + "run_abort": "中止", + "conn_title": "连接控制器", + "conn_mode": "连接方å¼�", + "conn_mode_value": "以太网", + "conn_ip": "IP", + "scan": "IP 扫æ��", + "connect": "连接", + "disconnect": "断开连接", + "connected": "已连接", + "bus_title": "总线åˆ�始化", + "bus_file": "BAS 文件", + "choose": "选择 BAS…", + "download": "下载并åˆ�始化", + "reinit": "é‡�æ–°åˆ�始化", + "bus_state": "åˆ�始化状æ€�", + "bus_ok": "åˆ�始化æˆ�功", + "bus_type": "总线类型", + "nodes": "节点数é‡�", + "axes_count": "è½´æ•°é‡�", + "busdata_group": "总线数æ�® (SDO / RTEX) â–¶", + "tabs": ["轴调试", "测试åº�列", "传感器", "表é�¢åˆ†å¸ƒ", "标定点"], + "readout_title": "轴状æ€�", + "enabled": "已使能", + "disabled": "未使能", + "position": "0.000 (0.000 mm)", + "enable_all": "全部关闭使能", + "clear_alarms": "清除全部报警", + "status_bar": "状æ€�刷新正常 | 刷新间隔 100 ms | åˆ�始化æˆ�功", + "axis_label": "è½´å�·", + "axis_params": ["脉冲当é‡�", "速度", "加速度"], + "axis_values": ["10.000", "1000.0", "10000.0"], + "home_fields": ["回零模å¼�", "回零高速", "回零低速", "回零å��ç§»"], + "home_values": ["0", "50.0", "10.0", "0.000"], + "apply": "应用å�‚æ•°", + "home": "å�¯åŠ¨å›žé›¶", + "clear_alarm": "清除报警", + "target": "目标ä½�ç½®", + "move_abs": "ç»�对定ä½�", + "move_rel": "相对è¿�动", + "mm_hint": "毫米值由脉冲当é‡�æ�¢ç®—得出(显示值,é�žæ ‡å®šé•¿åº¦ï¼‰", + "cols": ["è½´å�·", "使能", "脉冲当é‡�", "速度", "命令ä½�ç½®", "ä½�ç½® (mm)", "状æ€�"], + "row_actions": ["正转", "å��转", "å�œæ­¢"], + "actions_header": "æ“�作", + "axis_detail": "选中轴 0: 轴类型 65 (ä½�ç½®) · 加速度 10000.0 · å��馈 999.000 (1.998 mm) · 轴状æ€� 0 · 回零完æˆ�", + "seq_profile": "标定点生æˆ�", + "seq_preview": "预览", + "seq_validation": "校验", + "seq_points": "标定点列表", + "seq_fields": [ + ("曲é�¢æ¨¡å¼�", "å¹³é�¢"), ("点è·� (mm)", "2.000"), ("边界余é‡� (mm)", "1.000"), + ("曲é�¢å�Šå¾„ (mm)", "—"), ("安全高度 (mm)", "5.000"), ("进给速度 (mm/s)", "2.000"), + ("下压速度 (mm/s)", "0.500"), ("下压深度 (mm)", "0.200"), ("ä¿�压 (s)", "0.500"), + ("稳定窗å�£ (s)", "0.500"), ("é‡�å¤�次数", "3"), ("é��历顺åº�", "蛇形"), + ], + "seq_preview_placeholder": "三维预览:传感器表é�¢ · 标定点 · é��历顺åº�", + "seq_preview_note": "(仿真阶段实现)", + "seq_preview_hint": "生æˆ�å�Žå�¯åœ¨æ­¤æ£€æŸ¥ç‚¹æ˜¯å�¦è�½åœ¨æ›²é�¢ä¸Šã€�是å�¦åœ¨è¡Œç¨‹å†…ã€�接触能å�¦è¢«ç¡®è®¤ã€‚", + "seq_checks": ["在曲é�¢èŒƒå›´å†…", "在行程内", "接触å�¯ç¡®è®¤"], + "seq_checks_pending": "尚未生æˆ�标定点。", + "seq_buttons": [("生æˆ�标定点", True), ("仿真", True), ("干跑(ä¸�接触)", True), ("ä¿�å­˜åº�列…", True), ("载入åº�列…", True)], + "point_cols": ["#", "X (mm)", "Y (mm)", "Z (mm)", "状æ€�", "ç�µæ•�度(上次)", "样本", "æ“�作"], + "point_rows": [ + ["1", "0.000", "0.000", "12.400", "待测", "—", "—", ""], + ["2", "2.000", "0.000", "12.400", "待测", "—", "—", ""], + ["3", "4.000", "0.000", "12.400", "待测", "—", "—", ""], + ], + "points_hint": "å��标由网格生æˆ�å¹¶é€�点校验,ä¸�接å�—手工输入:手工输入的å��标没有任何检查,一个错数字会æ¯�掉整æ�¡åº�列。", + "sensor_note": "设备与信å�·æº�ã€�实时图åƒ�ã€�力曲线", + "sensor_curve": "力曲线 (FN / FX / FY)", + "surface_note": "多点标定ç�µæ•�度 → 三维表é�¢è‰²å›¾", + "legend": "ç�µæ•�度 (N/å�•ä½�)", + "surface_footer": "12 个标定点 · 几何 finger-1.0.0 · 拖动旋转 · 滚轮缩放", + "points_page_note": "标定点列表:平å�°å��æ ‡ · å�‚考载è�· · 采样统计 · ç�µæ•�度", + "previews_caption": "其余工作区标签页", + }, + "en_US": { + "menu": ["File", "View", "Help"], + "brand_detail": "Orisys Technology", + "chip_conn": "Connected", + "chip_bus": "EtherCAT", + "chip_init": "Initialised", + "chip_axes": "5/5 axes enabled", + "chip_health": "Read 12 ms ago", + "strip_title": "Motion", + "pause": "Pause refresh", + "stop_all": "Stop all", + "run_title": "Run", + "run_phase": "Idle", + "run_step": "Point 0/0", + "run_time": "Elapsed 0:00 · about — left", + "run_run": "Run", + "run_pause": "Pause", + "run_abort": "Abort", + "conn_title": "Controller connection", + "conn_mode": "Connection", + "conn_mode_value": "Ethernet", + "conn_ip": "IP", + "scan": "Scan IP", + "connect": "Connect", + "disconnect": "Disconnect", + "connected": "Connected", + "bus_title": "Bus initialisation", + "bus_file": "BAS file", + "choose": "Choose BAS…", + "download": "Download and initialise", + "reinit": "Re-initialise", + "bus_state": "Init state", + "bus_ok": "Initialised", + "bus_type": "Bus type", + "nodes": "Nodes", + "axes_count": "Axes", + "busdata_group": "Bus data (SDO / RTEX) â–¶", + "tabs": ["Axis debug", "Test sequence", "Sensor", "Surface map", "Calibration points"], + "readout_title": "Axis state", + "enabled": "Enabled", + "disabled": "Disabled", + "position": "0.000 (0.000 mm)", + "enable_all": "Disable all", + "clear_alarms": "Clear all alarms", + "status_bar": "State refresh healthy | Refresh every 100 ms | Initialised", + "axis_label": "Axis", + "axis_params": ["Units", "Speed", "Accel"], + "axis_values": ["10.000", "1000.0", "10000.0"], + "home_fields": ["Home mode", "Home speed", "Home creep", "Home offset"], + "home_values": ["0", "50.0", "10.0", "0.000"], + "apply": "Apply", + "home": "Home", + "clear_alarm": "Clear alarm", + "target": "Target", + "move_abs": "Move abs", + "move_rel": "Move rel", + "mm_hint": "Millimetres are derived from the pulse equivalent (display only)", + "cols": ["Axis", "Enable", "Units", "Speed", "DPOS", "DPOS(mm)", "Status"], + "row_actions": ["Fwd", "Rev", "Stop"], + "actions_header": "Actions", + "axis_detail": "Axis 0: type 65 (position) · accel 10000.0 · feedback 999.000 (1.998 mm) · status 0 · homed", + "seq_profile": "Point generation", + "seq_preview": "Preview", + "seq_validation": "Checks", + "seq_points": "Calibration points", + "seq_fields": [ + ("Surface mode", "Flat"), ("Pitch (mm)", "2.000"), ("Margin (mm)", "1.000"), + ("Radius (mm)", "—"), ("Clear height (mm)", "5.000"), ("Approach (mm/s)", "2.000"), + ("Press speed (mm/s)", "0.500"), ("Press depth (mm)", "0.200"), ("Dwell (s)", "0.500"), + ("Settle window (s)", "0.500"), ("Repeats", "3"), ("Point order", "Serpentine"), + ], + "seq_preview_placeholder": "3D preview: sensor surface · points · visiting order", + "seq_preview_note": "(implemented in the simulation phase)", + "seq_preview_hint": "After generation, check each point is on the surface, inside travel and confirmable by contact.", + "seq_checks": ["On the surface", "Within travel", "Contact confirmable"], + "seq_checks_pending": "No points generated yet.", + "seq_buttons": [("Generate points", True), ("Simulate", True), ("Dry run (no contact)", True), ("Save sequence…", True), ("Load sequence…", True)], + "point_cols": ["#", "X (mm)", "Y (mm)", "Z (mm)", "Status", "Sensitivity (last)", "Samples", "Actions"], + "point_rows": [ + ["1", "0.000", "0.000", "12.400", "Pending", "—", "—", ""], + ["2", "2.000", "0.000", "12.400", "Pending", "—", "—", ""], + ["3", "4.000", "0.000", "12.400", "Pending", "—", "—", ""], + ], + "points_hint": "Coordinates are generated and checked per point; they are not typed. A typed coordinate is one nothing has checked.", + "sensor_note": "Device and source, live image, force curves", + "sensor_curve": "Force curves (FN / FX / FY)", + "surface_note": "Multi-point calibration sensitivity → 3D surface colour map", + "legend": "Sensitivity (N/unit)", + "surface_footer": "12 points · geometry finger-1.0.0 · drag to rotate · wheel to zoom", + "points_page_note": "Calibration points: platform coords · reference load · statistics · sensitivity", + "previews_caption": "Remaining workspace tabs", + }, +} + + +class Palette: + """Colours from the shared theme, so the mockup matches the product.""" + + def __init__(self, theme: str) -> None: + from orisys_app_shared.theme import load_colors + + self.raw = load_colors(theme) + self.window = self._c("window_bg", "#f4f5f7") + self.panel = self._c("panel_bg", "#ffffff") + self.border = self._c("panel_border", "#d0d5dd") + self.text = self._c("text_primary", "#101828") + self.muted = self._c("text_muted", "#667085") + self.accent = self._c("accent", "#2f6fed") + self.warn = self._c("warn", "#b7791f") + self.danger = self._c("danger", "#d92d20") + self.bar = self._c("brand_bar_bg", "#ffffff") + + def _c(self, key: str, fallback: str) -> QColor: + return QColor(self.raw.get(key) or fallback) + + +# ------------------------------------------------------------------ helpers --- + + +def _font(size: int = 11, *, bold: bool = False) -> QFont: + font = QFont() + font.setPointSize(size) + font.setBold(bold) + return font + + +def _panel(painter: QPainter, rect: QRect, palette: Palette) -> QRect: + painter.fillRect(rect, palette.panel) + painter.setPen(QPen(palette.border, 1)) + painter.drawRect(rect.adjusted(0, 0, -1, -1)) + return rect.adjusted(10, 8, -10, -10) + + +def _box_title(painter: QPainter, rect: QRect, text: str, palette: Palette) -> None: + """A group-box title, drawn on the frame like Qt does.""" + painter.setFont(_font(10, bold=True)) + painter.setPen(QPen(palette.text)) + metrics = painter.fontMetrics() + width = metrics.horizontalAdvance(text) + 12 + painter.fillRect(QRect(rect.x() + 10, rect.y() - metrics.height() // 2, width, metrics.height()), palette.panel) + painter.drawText( + QRect(rect.x() + 14, rect.y() - metrics.height() // 2, width, metrics.height()), + Qt.AlignmentFlag.AlignVCenter | Qt.AlignmentFlag.AlignLeft, + text, + ) + + +def _text( + painter: QPainter, + point_or_rect: QPoint | QRect, + text: str, + palette: Palette, + *, + size: int = 11, + bold: bool = False, + muted: bool = False, + colour: QColor | None = None, + align=Qt.AlignmentFlag.AlignLeft | Qt.AlignmentFlag.AlignVCenter, +) -> None: + painter.setFont(_font(size, bold=bold)) + painter.setPen(QPen(colour or (palette.muted if muted else palette.text))) + if isinstance(point_or_rect, QRect): + painter.drawText(point_or_rect, align | Qt.TextFlag.TextWordWrap if text.count("\n") else align, text) + return + painter.drawText(point_or_rect, text) + + +def _chip(painter: QPainter, pos: QPoint, text: str, palette: Palette, colour: QColor) -> int: + painter.setFont(_font(10)) + width = painter.fontMetrics().horizontalAdvance(text) + 20 + rect = QRect(pos.x(), pos.y(), width, 22) + painter.setPen(QPen(colour, 1)) + painter.setBrush(Qt.BrushStyle.NoBrush) + painter.drawRoundedRect(rect, 10, 10) + painter.setPen(QPen(colour)) + painter.setFont(_font(10)) + painter.drawText(rect, Qt.AlignmentFlag.AlignCenter, text) + return width + 8 + + +def _button( + painter: QPainter, + rect: QRect, + text: str, + palette: Palette, + *, + primary: bool = False, + danger: bool = False, + disabled: bool = False, +) -> None: + if disabled: + painter.fillRect(rect, palette.window) + label = palette.muted + elif primary: + painter.fillRect(rect, palette.accent) + label = QColor("#ffffff") + elif danger: + painter.fillRect(rect, palette.danger) + label = QColor("#ffffff") + else: + painter.fillRect(rect, palette.panel) + label = palette.text + painter.setPen(QPen(palette.border if not (primary or danger) else (palette.accent if primary else palette.danger), 1)) + painter.setBrush(Qt.BrushStyle.NoBrush) + painter.drawRect(rect.adjusted(0, 0, -1, -1)) + painter.setPen(QPen(label)) + painter.setFont(_font(10)) + painter.drawText(rect, Qt.AlignmentFlag.AlignCenter, text) + + +def _field(painter: QPainter, rect: QRect, text: str, palette: Palette, *, disabled: bool = False) -> None: + painter.fillRect(rect, palette.panel if not disabled else palette.window) + painter.setPen(QPen(palette.border, 1)) + painter.drawRect(rect.adjusted(0, 0, -1, -1)) + painter.setFont(_font(10)) + painter.setPen(QPen(palette.muted if disabled else palette.text)) + painter.drawText( + rect.adjusted(6, 0, -6, 0), Qt.AlignmentFlag.AlignVCenter | Qt.AlignmentFlag.AlignLeft, text + ) + + +# --------------------------------------------------------------- the pieces --- + + +def draw_chrome(painter: QPainter, palette: Palette, s: dict) -> None: + painter.fillRect(QRect(0, 0, PAGE_W, MENU_H), palette.bar) + x = 12 + for item in s["menu"]: + _text(painter, QPoint(x, MENU_H - 8), item, palette, size=10) + x += painter.fontMetrics().horizontalAdvance(item) + 24 + + painter.fillRect(QRect(0, MENU_H, PAGE_W, BRAND_H), palette.bar) + painter.setPen(QPen(palette.border, 1)) + painter.drawLine(0, MENU_H + BRAND_H - 1, PAGE_W, MENU_H + BRAND_H - 1) + painter.setPen(QPen(palette.accent, 2)) + painter.setBrush(Qt.BrushStyle.NoBrush) + painter.drawRect(QRect(14, MENU_H + 9, 18, 18)) + _text(painter, QPoint(42, MENU_H + BRAND_H - 13), "ORISYS", palette, size=13, bold=True) + _text(painter, QPoint(112, MENU_H + BRAND_H - 13), s["brand_detail"], palette, size=10, muted=True) + _text( + painter, + QRect(PAGE_W - 700, MENU_H, 560, BRAND_H), + "Orisys AutoCal — 标定å�°æŽ§åˆ¶ / Platform Control", + palette, + size=11, + colour=palette.text, + align=Qt.AlignmentFlag.AlignRight | Qt.AlignmentFlag.AlignVCenter, + ) + _chip(painter, QPoint(PAGE_W - 128, MENU_H + 8), s["chip_conn"], palette, palette.accent) + + +def draw_status_strip(painter: QPainter, palette: Palette, s: dict, top: int) -> None: + painter.fillRect(QRect(0, top, PAGE_W, STRIP_H), palette.panel) + painter.setPen(QPen(palette.border, 1)) + painter.drawLine(0, top, PAGE_W, top) + painter.drawLine(0, top + STRIP_H - 1, PAGE_W, top + STRIP_H - 1) + + x = 16 + _text(painter, QPoint(x, top + 28), s["strip_title"], palette, size=11, bold=True) + x += painter.fontMetrics().horizontalAdvance(s["strip_title"]) + 20 + for label in (s["chip_conn"], s["chip_bus"], s["chip_init"], s["chip_axes"], s["chip_health"]): + x += _chip(painter, QPoint(x, top + 11), label, palette, palette.accent) + + _text( + painter, + QRect(PAGE_W - 600, top, 380, STRIP_H), + "上次动作: 已使能轴0 / last action: enable axis 0", + palette, + size=10, + muted=True, + align=Qt.AlignmentFlag.AlignRight | Qt.AlignmentFlag.AlignVCenter, + ) + _button(painter, QRect(PAGE_W - 210, top + 10, 96, 24), s["pause"], palette) + _button(painter, QRect(PAGE_W - 106, top + 10, 92, 24), s["stop_all"], palette, danger=True) + + +def draw_status_bar(painter: QPainter, palette: Palette, s: dict, top: int) -> None: + """The footer, using its own token rather than the header's navy.""" + background = QColor(palette.raw.get("status_bar_bg") or "#EDF1F8") + foreground = QColor(palette.raw.get("status_bar_text") or "#141A24") + painter.fillRect(QRect(0, top, PAGE_W, STATUS_H), background) + painter.setPen(QPen(palette.border, 1)) + painter.drawLine(0, top, PAGE_W, top) + _text(painter, QPoint(12, top + 17), s["status_bar"], palette, size=10, colour=foreground) + + +def draw_left_rail(painter: QPainter, palette: Palette, s: dict, rect: QRect) -> None: + conn = QRect(rect.x(), rect.y(), rect.width(), 210) + inner = _panel(painter, conn, palette) + _box_title(painter, conn, s["conn_title"], palette) + y = inner.y() + 6 + _text(painter, QRect(inner.x(), y, 76, 22), s["conn_mode"], palette, size=10, muted=True) + _field(painter, QRect(inner.x() + 78, y, inner.width() - 78, 22), s["conn_mode_value"] + " â–¾", palette) + y += 30 + _text(painter, QRect(inner.x(), y, 30, 22), s["conn_ip"], palette, size=10, muted=True) + _field(painter, QRect(inner.x() + 32, y, 140, 22), "192.168.0.11", palette) + _button(painter, QRect(inner.x() + 180, y, 88, 22), s["scan"], palette) + y += 32 + _button(painter, QRect(inner.x(), y, 104, 26), s["connect"], palette, primary=True) + _button(painter, QRect(inner.x() + 112, y, 108, 26), s["disconnect"], palette) + y += 36 + _text(painter, QRect(inner.x(), y, inner.width(), 20), s["connected"], palette, size=10, muted=True) + y += 24 + _text(painter, QRect(inner.x(), y, inner.width(), 20), "demo (simulated platform)", palette, size=9, muted=True) + + bus = QRect(rect.x(), rect.y() + 222, rect.width(), 250) + inner = _panel(painter, bus, palette) + _box_title(painter, bus, s["bus_title"], palette) + y = inner.y() + 6 + _text(painter, QRect(inner.x(), y, 60, 22), s["bus_file"], palette, size=10, muted=True) + _field(painter, QRect(inner.x() + 62, y, 140, 22), "…\\bas\\ECAT.bas", palette) + _button(painter, QRect(inner.x() + 208, y, 66, 22), s["choose"], palette) + y += 30 + _text(painter, QRect(inner.x(), y, 74, 20), s["bus_state"], palette, size=10, muted=True) + _text(painter, QRect(inner.x() + 76, y, 180, 20), s["bus_ok"], palette, size=10) + y += 24 + _text(painter, QRect(inner.x(), y, 74, 20), s["bus_type"], palette, size=10, muted=True) + _text(painter, QRect(inner.x() + 76, y, 180, 20), s["chip_bus"], palette, size=10) + y += 24 + _text(painter, QRect(inner.x(), y, 90, 20), s["nodes"], palette, size=10, muted=True) + _text(painter, QRect(inner.x() + 92, y, 40, 20), "5", palette, size=10) + _text(painter, QRect(inner.x() + 146, y, 70, 20), s["axes_count"], palette, size=10, muted=True) + _text(painter, QRect(inner.x() + 218, y, 40, 20), "5", palette, size=10) + y += 32 + _button(painter, QRect(inner.x(), y, 146, 26), s["download"], palette, primary=True) + _button(painter, QRect(inner.x() + 154, y, 104, 26), s["reinit"], palette) + + group = QRect(rect.x(), rect.y() + 484, rect.width(), 32) + _panel(painter, group.adjusted(0, 0, 0, -8), palette) + _text(painter, QRect(group.x() + 12, group.y(), group.width() - 24, 30), s["busdata_group"], palette, size=10, muted=True) + + # The axis readout lives in this rail now, not in a second one on the right: + # two thin rails cost the workspace 240 px at every window size. + readout = QRect(rect.x(), rect.y() + 526, rect.width(), 268) + inner = _panel(painter, readout, palette) + _box_title(painter, readout, s["readout_title"], palette) + y = inner.y() + 6 + for axis in range(5): + _text(painter, QRect(inner.x(), y, 16, 22), str(axis), palette, size=10, muted=True) + _text(painter, QRect(inner.x() + 20, y, 62, 22), s["enabled"], palette, size=9, muted=True) + _text( + painter, + QRect(inner.x() + 84, y, inner.width() - 88, 22), + s["position"], + palette, + size=10, + align=Qt.AlignmentFlag.AlignRight | Qt.AlignmentFlag.AlignVCenter, + ) + y += 24 + _button(painter, QRect(inner.x(), y + 4, inner.width(), 28), s["enable_all"], palette) + _button(painter, QRect(inner.x(), y + 40, inner.width(), 28), s["stop_all"], palette, danger=True) + _button(painter, QRect(inner.x(), y + 76, inner.width(), 28), s["clear_alarms"], palette) + + +def draw_tabs(painter: QPainter, palette: Palette, s: dict, workspace: QRect, active: str) -> QRect: + tab_h = 30 + tab_w = workspace.width() // len(s["tabs"]) + for index, name in enumerate(s["tabs"]): + tab = QRect(workspace.x() + index * tab_w, workspace.y(), tab_w, tab_h) + is_active = name == active + painter.fillRect(tab, palette.panel if not is_active else palette.window) + painter.setPen(QPen(palette.border, 1)) + painter.drawRect(tab.adjusted(0, 0, -1, -1)) + if is_active: + painter.setPen(QPen(palette.accent, 2)) + painter.drawLine(tab.bottomLeft(), tab.bottomRight()) + _text( + painter, + tab, + name, + palette, + size=10, + bold=is_active, + colour=palette.text if is_active else palette.muted, + align=Qt.AlignmentFlag.AlignCenter, + ) + return QRect( + workspace.x() + 1, + workspace.y() + tab_h + 1, + workspace.width() - 2, + workspace.height() - tab_h - 2, + ) + + +def draw_axis_tab(painter: QPainter, palette: Palette, s: dict, rect: QRect) -> None: + inner = rect.adjusted(10, 8, -10, -8) + y = inner.y() + + _text(painter, QRect(inner.x(), y, 44, 22), s["axis_label"], palette, size=10, muted=True) + _text(painter, QRect(inner.x() + 46, y, 30, 22), "0", palette, size=10) + x = inner.x() + 96 + for label, value in zip(s["axis_params"], s["axis_values"]): + _text(painter, QRect(x, y, 90, 22), label, palette, size=10, muted=True) + x += painter.fontMetrics().horizontalAdvance(label) + 8 + _field(painter, QRect(x, y, 92, 22), value, palette) + x += 108 + y += 32 + x = inner.x() + for label, value in zip(s["home_fields"], s["home_values"]): + _text(painter, QRect(x, y, 80, 22), label, palette, size=10, muted=True) + x += painter.fontMetrics().horizontalAdvance(label) + 8 + _field(painter, QRect(x, y, 66, 22), value, palette) + x += 82 + y += 34 + + _button(painter, QRect(inner.x(), y, 116, 26), s["apply"], palette, primary=True) + _button(painter, QRect(inner.x() + 126, y, 106, 26), s["home"], palette) + _button(painter, QRect(inner.x() + 242, y, 106, 26), s["clear_alarm"], palette) + _text( + painter, + QRect(inner.x() + 380, y, inner.width() - 384, 26), + s["mm_hint"], + palette, + size=9, + muted=True, + align=Qt.AlignmentFlag.AlignRight | Qt.AlignmentFlag.AlignVCenter, + ) + y += 36 + + _text(painter, QRect(inner.x(), y, 64, 22), s["target"], palette, size=10, muted=True) + _field(painter, QRect(inner.x() + 66, y, 120, 22), "1000", palette) + _button(painter, QRect(inner.x() + 196, y, 96, 24), s["move_abs"], palette) + _button(painter, QRect(inner.x() + 300, y, 96, 24), s["move_rel"], palette) + y += 34 + + table_h = rect.height() - (y - rect.y()) - 96 + table = QRect(inner.x(), y, inner.width(), table_h) + painter.fillRect(table, palette.window) + painter.setPen(QPen(palette.border, 1)) + painter.drawRect(table.adjusted(0, 0, -1, -1)) + + actions_w = AXIS_ACTIONS_W + data_w = sum(AXIS_COL_W) + header_h = 26 + painter.fillRect(QRect(table.x(), table.y(), data_w, header_h), palette.panel) + x = table.x() + for name, width in zip(s["cols"], AXIS_COL_W): + _text(painter, QRect(x, table.y(), width, header_h), name, palette, size=9, muted=True, align=Qt.AlignmentFlag.AlignCenter) + x += width + _text( + painter, + QRect(table.x() + data_w, table.y(), actions_w, header_h), + s["actions_header"], + palette, + size=9, + muted=True, + align=Qt.AlignmentFlag.AlignCenter, + ) + + row_h = 40 + values = ["0", "已使能", "10.000", "1000.0", "1000.000", "2.000", "å�œæ­¢"] + en_values = ["0", "Enabled", "10.000", "1000.0", "1000.000", "2.000", "Stopped"] + row_values = values if s["axis_label"] == "è½´å�·" else en_values + for row in range(5): + row_y = table.y() + header_h + row * row_h + if row_y + row_h > table.bottom(): + break + if row % 2 == 0: + painter.fillRect(QRect(table.x() + 1, row_y, data_w + actions_w - 2, row_h - 1), palette.panel) + x = table.x() + for column, (name, width) in enumerate(zip(s["cols"], AXIS_COL_W)): + value = str(row) if column == 0 else row_values[column] + _text(painter, QRect(x, row_y, width, row_h), value, palette, size=10, align=Qt.AlignmentFlag.AlignCenter if column else Qt.AlignmentFlag.AlignLeft) + x += width + offset = table.x() + data_w + 8 + for label in s["row_actions"]: + _button(painter, QRect(offset, row_y + 8, 46, 24), label, palette) + offset += 50 + + y = table.bottom() + 8 + _text(painter, QRect(inner.x(), y, inner.width(), 20), s["axis_detail"], palette, size=9, muted=True) + y += 26 + _button(painter, QRect(inner.x(), y, 116, 28), s["stop_all"], palette, danger=True) + + +def draw_sequence_tab(painter: QPainter, palette: Palette, s: dict, rect: QRect) -> None: + inner = rect.adjusted(10, 8, -10, -8) + profile_w, validation_w = 420, 280 + gap = 12 + preview_w = inner.width() - profile_w - validation_w - 2 * gap + # The zones get what they need; the point list takes the rest, because it is + # the part that grows. + top_h = 260 + + # --- profile: two columns of six fields, so the whole set is visible at once + profile = QRect(inner.x(), inner.y(), profile_w, top_h) + p_inner = _panel(painter, profile, palette) + _box_title(painter, profile, s["seq_profile"], palette) + column_w = p_inner.width() // 2 + for index, (label, value) in enumerate(s["seq_fields"]): + row, side = divmod(index, 2) + x = p_inner.x() + side * column_w + y = p_inner.y() + 20 + row * 26 + _text(painter, QRect(x, y, 130, 22), label, palette, size=9, muted=True) + _field(painter, QRect(x + 128, y, column_w - 140, 22), value, palette) + + # --- preview + preview = QRect(inner.x() + profile_w + gap, inner.y(), preview_w, top_h) + q_inner = _panel(painter, preview, palette) + _box_title(painter, preview, s["seq_preview"], palette) + view = QRect(q_inner.x(), q_inner.y() + 4, q_inner.width(), q_inner.height() - 42) + painter.fillRect(view, palette.window) + painter.setPen(QPen(palette.border, 1)) + painter.drawRect(view.adjusted(0, 0, -1, -1)) + # a stand-in surface with grid dots and the visiting path + cx, cy = view.center().x(), view.center().y() + 6 + rx, ry = view.width() // 4, view.height() // 3 + for row in range(6): + for column in range(6): + u = (column - 2.5) / 2.5 + v = (row - 2.5) / 2.5 + if u * u + v * v > 1.25: + continue + px = int(cx + u * rx) + py = int(cy + v * ry) + painter.setPen(QPen(palette.accent, 1)) + painter.setBrush(palette.accent) + painter.drawEllipse(QPoint(px, py), 3, 3) + painter.setPen(QPen(palette.warn, 1, Qt.PenStyle.DashLine)) + painter.setBrush(Qt.BrushStyle.NoBrush) + painter.drawEllipse(QPoint(cx, cy), rx, ry) + _text(painter, QRect(view.x() + 10, view.y() + 8, view.width(), 20), s["seq_preview_placeholder"], palette, size=10, bold=True) + _text(painter, QRect(view.x() + 10, view.y() + 28, view.width(), 20), s["seq_preview_note"], palette, size=9, muted=True) + _text(painter, QRect(q_inner.x(), view.bottom() + 4, q_inner.width(), 34), s["seq_preview_hint"], palette, size=9, muted=True) + + # --- validation + validation = QRect(inner.x() + profile_w + preview_w + 2 * gap, inner.y(), validation_w, top_h) + v_inner = _panel(painter, validation, palette) + _box_title(painter, validation, s["seq_validation"], palette) + y = v_inner.y() + 6 + for label in s["seq_checks"]: + _text(painter, QRect(v_inner.x(), y, v_inner.width(), 22), "â—‹ " + label + ": —", palette, size=10, muted=True) + y += 24 + _text(painter, QRect(v_inner.x(), y + 6, v_inner.width(), 40), s["seq_checks_pending"], palette, size=9, muted=True) + y = validation.bottom() - len(s["seq_buttons"]) * 31 - 6 + for label, _disabled in s["seq_buttons"]: + _button(painter, QRect(v_inner.x(), y, v_inner.width(), 26), label, palette, disabled=True) + y += 31 + + # --- point list, full width + points = QRect(inner.x(), inner.y() + top_h + gap, inner.width(), inner.height() - top_h - gap) + t_inner = _panel(painter, points, palette) + _box_title(painter, points, s["seq_points"], palette) + widths = (50, 150, 150, 150, 130, 190, 100) + widths = widths + (t_inner.width() - sum(widths),) + header_h = 28 + header = QRect(t_inner.x(), t_inner.y() + 4, t_inner.width(), header_h) + painter.fillRect(header, palette.window) + painter.setPen(QPen(palette.border, 1)) + painter.drawRect(header.adjusted(0, 0, -1, -1)) + x = t_inner.x() + for name, width in zip(s["point_cols"], widths): + _text(painter, QRect(x, header.y(), width, header_h), name, palette, size=9, muted=True, align=Qt.AlignmentFlag.AlignCenter) + x += width + row_h = 32 + for index, row in enumerate(s["point_rows"]): + row_y = header.bottom() + 1 + index * row_h + if index % 2 == 1: + painter.fillRect(QRect(t_inner.x(), row_y, t_inner.width(), row_h - 1), palette.window) + x = t_inner.x() + for value, width in zip(row, widths): + _text(painter, QRect(x, row_y, width, row_h), value, palette, size=10, align=Qt.AlignmentFlag.AlignCenter) + x += width + y = header.bottom() + 1 + len(s["point_rows"]) * row_h + 10 + _text(painter, QRect(t_inner.x(), y, t_inner.width(), 34), s["points_hint"], palette, size=9, muted=True) + + +def draw_sensor_tab(painter: QPainter, palette: Palette, s: dict, rect: QRect) -> None: + inner = rect.adjusted(10, 8, -10, -8) + y = inner.y() + _text(painter, QRect(inner.x(), y, 60, 22), "设备" if s["axis_label"] == "è½´å�·" else "Device", palette, size=10, muted=True) + _field(painter, QRect(inner.x() + 62, y, 180, 22), "finger â–¾", palette) + _button(painter, QRect(inner.x() + 252, y, 70, 22), "预览" if s["axis_label"] == "è½´å�·" else "Preview", palette) + y += 30 + _text(painter, QRect(inner.x(), y, 400, 20), s["sensor_note"], palette, size=9, muted=True) + y += 26 + + image = QRect(inner.x(), y, int(inner.width() * 0.34), inner.height() - (y - rect.y()) - 10) + painter.fillRect(image, palette.window) + painter.setPen(QPen(palette.border, 1)) + painter.drawRect(image.adjusted(0, 0, -1, -1)) + for i in range(1, 4): + painter.drawLine(image.x() + i * image.width() // 4, image.y() + 6, image.x() + i * image.width() // 4, image.bottom() - 6) + + curve = QRect(image.right() + 12, y - 56, inner.right() - image.right() - 12, image.height() + 56) + painter.fillRect(curve, palette.window) + painter.setPen(QPen(palette.border, 1)) + painter.drawRect(curve.adjusted(0, 0, -1, -1)) + _text(painter, QRect(curve.x() + 10, curve.y() + 8, curve.width(), 20), s["sensor_curve"], palette, size=10, bold=True) + plot = curve.adjusted(14, 40, -14, -28) + painter.setPen(QPen(palette.border, 1)) + painter.drawLine(plot.bottomLeft(), plot.bottomRight()) + painter.drawLine(plot.bottomLeft(), plot.topLeft()) + for index, colour in enumerate((palette.accent, palette.warn, palette.danger)): + painter.setPen(QPen(colour, 2)) + points = [] + for step in range(80): + t = step / 79 + value = (1 - t) ** 2 * (0.2 + 0.22 * index) + 0.16 * (1 + index) * (1 - abs(0.5 - t) * 2) + points.append((plot.x() + int(t * plot.width()), plot.bottom() - int(min(1.0, value) * plot.height()))) + for first, second in zip(points, points[1:]): + painter.drawLine(first[0], first[1], second[0], second[1]) + + +def draw_surface_tab(painter: QPainter, palette: Palette, s: dict, rect: QRect) -> None: + inner = rect.adjusted(10, 8, -10, -8) + view = QRect(inner.x(), inner.y(), inner.width() - 220, inner.height() - 30) + painter.fillRect(view, palette.window) + painter.setPen(QPen(palette.border, 1)) + painter.drawRect(view.adjusted(0, 0, -1, -1)) + + cx, cy = view.center().x(), view.center().y() + 10 + rx, ry = view.width() // 3, view.height() // 3 + steps = 26 + grid = [] + for row in range(steps + 1): + v = row / steps + line = [] + for column in range(steps + 1): + u = column / steps + angle = 2 * math.pi * u + line.append((cx + int(rx * math.cos(angle) * math.sin(math.pi * v)), cy - int(ry * math.cos(math.pi * v)))) + grid.append(line) + for row in range(steps): + for column in range(steps): + intensity = max(0.0, min(1.0, 0.5 + 0.45 * (column / steps - 0.5) + 0.35 * (row / steps - 0.5))) + colour = QColor(int(40 + 200 * intensity), int(110 + 60 * (1 - abs(intensity - 0.5) * 2)), int(235 - 195 * intensity)) + painter.setPen(QPen(colour, 1)) + painter.setBrush(colour) + painter.drawPolygon( + QPolygon( + [ + QPoint(*grid[row][column]), + QPoint(*grid[row + 1][column]), + QPoint(*grid[row + 1][column + 1]), + QPoint(*grid[row][column + 1]), + ] + ) + ) + _text(painter, QRect(view.x() + 12, view.y() + 8, view.width(), 22), s["surface_note"], palette, size=10, bold=True) + + legend = QRect(view.right() + 12, inner.y(), 200, view.height()) + _text(painter, QRect(legend.x(), legend.y(), legend.width(), 20), s["legend"], palette, size=10, bold=True) + # A legend, not a wall of colour: fixed height so it reads as a scale. + bar_h = min(300, legend.height() - 120) + bar = QRect(legend.x() + 12, legend.y() + 34, 30, bar_h) + for step in range(bar.height()): + t = step / max(1, bar.height() - 1) + colour = QColor(int(40 + 200 * t), int(110 + 60 * (1 - abs(t - 0.5) * 2)), int(235 - 195 * t)) + painter.setPen(QPen(colour, 1)) + painter.drawLine(bar.x(), bar.y() + step, bar.x() + bar.width(), bar.y() + step) + painter.setPen(QPen(palette.border, 1)) + painter.drawRect(bar) + for label, offset in (("0.21", 6), ("0.60", bar.height() // 2), ("0.95", bar.height() - 6)): + _text(painter, QPoint(bar.right() + 10, bar.y() + offset), label, palette, size=9) + _text( + painter, + QRect(legend.x(), bar.bottom() + 12, legend.width(), 48), + s["surface_footer"], + palette, + size=9, + muted=True, + ) + + +def draw_points_tab(painter: QPainter, palette: Palette, s: dict, rect: QRect) -> None: + inner = rect.adjusted(10, 8, -10, -8) + _text(painter, QRect(inner.x(), inner.y(), inner.width(), 20), s["points_page_note"], palette, size=10, muted=True) + y = inner.y() + 28 + table = QRect(inner.x(), y, inner.width(), inner.height() - 28 - 46) + painter.fillRect(table, palette.window) + painter.setPen(QPen(palette.border, 1)) + painter.drawRect(table.adjusted(0, 0, -1, -1)) + widths = (50, 140, 140, 140, 150, 190, 110, 150) + header_h = 26 + painter.fillRect(QRect(table.x(), table.y(), sum(widths), header_h), palette.panel) + x = table.x() + headers = s["point_cols"] + for name, width in zip(headers, widths): + _text(painter, QRect(x, table.y(), width, header_h), name, palette, size=9, muted=True, align=Qt.AlignmentFlag.AlignCenter) + x += width + rows = [ + ["1", "0.00", "0.00", "0.00", "2.0", "0.94", "40", "ok"], + ["2", "2.00", "0.00", "0.00", "2.0", "0.88", "40", "ok"], + ["3", "4.00", "0.00", "0.00", "2.0", "0.81", "40", "å��软" if s["axis_label"] == "è½´å�·" else "soft"], + ] + for index, row in enumerate(rows): + row_y = table.y() + header_h + index * 32 + if index % 2 == 0: + painter.fillRect(QRect(table.x() + 1, row_y, sum(widths) - 2, 31), palette.panel) + x = table.x() + for value, width in zip(row, widths): + _text(painter, QRect(x, row_y, width, 32), value, palette, size=10, align=Qt.AlignmentFlag.AlignCenter) + x += width + y = table.bottom() + 10 + _button(painter, QRect(inner.x(), y, 130, 28), "采集当å‰�点" if s["axis_label"] == "è½´å�·" else "Capture point", palette, primary=True) + _button(painter, QRect(inner.x() + 140, y, 100, 28), "é‡�测" if s["axis_label"] == "è½´å�·" else "Re-measure", palette) + _button(painter, QRect(inner.x() + 250, y, 100, 28), "删除" if s["axis_label"] == "è½´å�·" else "Remove", palette) + + +TAB_PAINTERS = { + "axes": draw_axis_tab, + "sequence": draw_sequence_tab, + "sensor": draw_sensor_tab, + "surface": draw_surface_tab, + "points": draw_points_tab, +} + +#: Tab index -> painter key, for the tab strip labels. +TAB_KEYS = ("axes", "sequence", "sensor", "surface", "points") + + +def draw_page( + painter: QPainter, + palette: Palette, + s: dict, + rect: QRect, + *, + active: str = "axes", + with_chrome: bool = True, +) -> None: + """The whole page: chrome, strip, run bar, rail, workspace, status bar.""" + painter.fillRect(rect, palette.window) + body_top = rect.y() + MENU_H + BRAND_H + STRIP_H + RUNBAR_H + body_h = rect.height() - (MENU_H + BRAND_H + STRIP_H + RUNBAR_H) - STATUS_H + + draw_left_rail( + painter, palette, s, QRect(rect.x() + MARGIN, body_top + MARGIN, RAIL_LEFT, body_h - 2 * MARGIN) + ) + + workspace = QRect( + rect.x() + 2 * MARGIN + RAIL_LEFT, + body_top + MARGIN, + rect.width() - RAIL_LEFT - 3 * MARGIN, + body_h - 2 * MARGIN, + ) + painter.fillRect(workspace, palette.panel) + painter.setPen(QPen(palette.border, 1)) + painter.drawRect(workspace.adjusted(0, 0, -1, -1)) + content = draw_tabs(painter, palette, s, workspace, s["tabs"][TAB_KEYS.index(active)]) + TAB_PAINTERS[active](painter, palette, s, content) + + if with_chrome: + draw_chrome(painter, palette, s) + draw_status_strip(painter, palette, s, rect.y() + MENU_H + BRAND_H) + draw_run_bar(painter, palette, s, rect.y() + MENU_H + BRAND_H + STRIP_H) + draw_status_bar(painter, palette, s, rect.bottom() - STATUS_H) + + +def draw_run_bar(painter: QPainter, palette: Palette, s: dict, top: int) -> None: + """The run strip: phase, progress and the three controls.""" + painter.fillRect(QRect(0, top, PAGE_W, RUNBAR_H), palette.window) + painter.setPen(QPen(palette.border, 1)) + painter.drawLine(0, top, PAGE_W, top) + painter.drawLine(0, top + RUNBAR_H - 1, PAGE_W, top + RUNBAR_H - 1) + + x = 16 + _text(painter, QPoint(x, top + 25), s["run_title"], palette, size=11, bold=True) + x += painter.fontMetrics().horizontalAdvance(s["run_title"]) + 20 + _text(painter, QRect(x, top, 90, RUNBAR_H), s["run_phase"], palette, size=10, muted=True) + x += 96 + _text(painter, QRect(x, top, 150, RUNBAR_H), s["run_step"], palette, size=10) + x += 158 + + bar = QRect(x, top + 14, 300, 12) + painter.fillRect(bar, palette.border) + painter.fillRect(QRect(bar.x(), bar.y(), 3 * bar.width() // 4, bar.height()), palette.accent) + _text(painter, QRect(bar.right() + 12, top, 260, RUNBAR_H), s["run_time"], palette, size=10, muted=True) + + _button(painter, QRect(PAGE_W - 330, top + 7, 96, 26), s["run_run"], palette, disabled=True) + _button(painter, QRect(PAGE_W - 228, top + 7, 96, 26), s["run_pause"], palette, disabled=True) + _button(painter, QRect(PAGE_W - 126, top + 7, 110, 26), s["run_abort"], palette, danger=True, disabled=True) + + +def draw_previews(painter: QPainter, palette: Palette, s: dict, origin: QPoint, keys: tuple[str, ...]) -> None: + _text(painter, QRect(origin.x(), origin.y(), 900, 24), s["previews_caption"], palette, size=12, bold=True) + row_y = origin.y() + 34 + for index, key in enumerate(keys): + box = QRect(origin.x() + index * (PREVIEW_W + 16), row_y, PREVIEW_W, PREVIEW_H) + painter.fillRect(box, palette.panel) + painter.setPen(QPen(palette.border, 1)) + painter.drawRect(box.adjusted(0, 0, -1, -1)) + header = QRect(box.x(), box.y(), box.width(), 26) + painter.fillRect(header, palette.bar) + painter.setPen(QPen(palette.border, 1)) + painter.drawLine(header.bottomLeft(), header.bottomRight()) + _text( + painter, + QRect(header.x() + 10, header.y(), header.width() - 20, 26), + s["tabs"][TAB_KEYS.index(key)], + palette, + size=10, + bold=True, + ) + content = QRect(box.x() + 6, box.y() + 30, box.width() - 12, box.height() - 36) + painter.save() + painter.setClipRect(content) + scale = content.width() / WORKSPACE_W + painter.translate(content.x(), content.y()) + painter.scale(scale, scale) + virtual = QRect(0, 0, int(content.width() / scale), int(content.height() / scale)) + TAB_PAINTERS[key](painter, palette, s, virtual) + painter.restore() + + +def main() -> int: + parser = argparse.ArgumentParser(description=__doc__) + parser.add_argument("--theme", default="light", choices=("dark", "light")) + parser.add_argument("--language", default="zh_CN", choices=("zh_CN", "en_US")) + parser.add_argument("--out", default="layout.png") + parser.add_argument("--width", type=int, default=PAGE_W) + parser.add_argument("--height", type=int, default=PAGE_H) + parser.add_argument( + "--page", + default="axes", + choices=("axes", "sequence", "sensor", "surface", "points", "all"), + help="which page to draw; 'all' writes one full-size image per page", + ) + args = parser.parse_args() + + app = QApplication.instance() or QApplication([]) + palette = Palette(args.theme) + s = STRINGS[args.language] + base = Path(args.out).resolve() + base.parent.mkdir(parents=True, exist_ok=True) + + pages = TAB_KEYS if args.page == "all" else (args.page,) + failures = 0 + for key in pages: + target = base if args.page != "all" else base.with_name(f"{base.stem}_{key}{base.suffix or '.png'}") + pixmap = QPixmap(args.width, args.height) + pixmap.fill(palette.window) + painter = QPainter(pixmap) + painter.setRenderHint(QPainter.RenderHint.Antialiasing, True) + try: + draw_page(painter, palette, s, QRect(0, 0, args.width, args.height), active=key) + finally: + painter.end() + if pixmap.save(str(target)): + print( + f"wrote {target} ({args.width}x{args.height}, theme={args.theme}, " + f"lang={args.language}, page={key})" + ) + else: + print(f"could not write {target}", file=sys.stderr) + failures += 1 + del app + return 1 if failures else 0 + + +if __name__ == "__main__": + raise SystemExit(main()) diff --git a/apps/autocal/tools/panel_check.py b/apps/autocal/tools/panel_check.py new file mode 100644 index 0000000..d877ef9 --- /dev/null +++ b/apps/autocal/tools/panel_check.py @@ -0,0 +1,427 @@ +#!/usr/bin/env python3 +"""Dependency-free offscreen check of the AutoCal window. + +Builds the real window with the simulated platform and asserts the invariants +that are easy to break and hard to notice: theme tokens present, layout fitting +inside parents, controls gated by connection and bus state, locales complete. + + python apps/autocal/tools/panel_check.py + +No controller, no DLL and no display are needed. Mirrors +``apps/studio/tools/ui_check.py``, but cannot import it: that module imports +PyQt5, and AutoCal's environment has none. +""" + +from __future__ import annotations + +import os +import sys +from pathlib import Path + +APP_ROOT = Path(__file__).resolve().parents[1] +for path in (APP_ROOT / "src", APP_ROOT.parents[1] / "shared" / "src"): + if str(path) not in sys.path: + sys.path.insert(0, str(path)) + +os.environ.setdefault("ORISYS_APP_ID", "autocal") +os.environ.setdefault("QT_QPA_PLATFORM", "offscreen") +if sys.platform == "win32" and "QT_QPA_FONTDIR" not in os.environ: + _fonts = Path(os.environ.get("WINDIR", r"C:\Windows")) / "Fonts" + if _fonts.is_dir(): + os.environ["QT_QPA_FONTDIR"] = str(_fonts) + +RESOLUTIONS = ((1440, 900), (1920, 1080)) + + +class Checker: + """Collects failures instead of asserting, so one run reports everything.""" + + def __init__(self) -> None: + self.failures: list[str] = [] + self.checks = 0 + + def that(self, condition: bool, message: str) -> None: + self.checks += 1 + if not condition: + self.failures.append(message) + + def report(self) -> int: + print() + if self.failures: + print(f"FAILED — {len(self.failures)} of {self.checks} checks:") + for failure in self.failures: + print(f" - {failure}") + return 1 + print(f"OK — {self.checks} checks passed") + return 0 + + +def _visible_descendants(widget): + for child in widget.findChildren(object): + if not hasattr(child, "isVisible") or not hasattr(child, "geometry"): + continue + if child.isVisible(): + yield child + + +def main() -> int: + from PySide6 import __version__ as pyside_version + from PySide6.QtWidgets import QApplication + + from orisys_app_shared.i18n import set_locale, t + from orisys_app_shared.theme import build_qss, load_colors + + from orisys_autocal.motion import ConnectionSpec + from orisys_autocal.ui.axis_panel import COLUMNS + from orisys_autocal.ui.bus_panel import default_bas_dir + from orisys_autocal.ui.window import AutoCalMainWindow + + checker = Checker() + app = QApplication.instance() or QApplication([]) + print(f"Qt binding: PySide6 {pyside_version}") + + # ---- theme tokens ----------------------------------------------------- + for theme in ("dark", "light"): + colors = load_colors(theme) + qss = build_qss(theme) + checker.that(bool(colors), f"{theme}: no colour tokens") + checker.that(len(qss) > 500, f"{theme}: the stylesheet looks empty") + checker.that( + len(build_qss(theme)) == len(qss), f"{theme}: the stylesheet is not stable" + ) + + # ---- locale completeness --------------------------------------------- + from orisys_autocal.preferences import load_preferences + + prefs = load_preferences() + for language in ("zh_CN", "en_US"): + set_locale(language) + checker.that(t("app.title") != "app.title", f"{language}: app.title missing") + checker.that(t("axes.title") != "axes.title", f"{language}: axes.title missing") + checker.that( + t("bus.state_ok") != "bus.state_ok", f"{language}: bus.state_ok missing" + ) + set_locale("zh_CN") + + # ---- window ---------------------------------------------------------- + from orisys_autocal.motion import DemoTransport + + for theme in ("dark", "light"): + window = AutoCalMainWindow(prefs={**prefs, "theme": theme}) + window.poller.service._transport = DemoTransport() # noqa: SLF001 + app.setStyleSheet(build_qss(theme)) + print(f"\n--- theme={theme} ---") + + for width, height in RESOLUTIONS: + window.resize(width, height) + window.show() + app.processEvents() + # Every tab, not just the default one: a page that overflows only + # when its tab is selected is exactly the defect this catches. + for key in window.workspace.page_keys(): + window.workspace.set_current_key(key) + app.processEvents() + oversize = [] + for child in _visible_descendants(window): + if _inside_scroll_area(child): + continue # a rail's content is meant to exceed its viewport + parent = child.parentWidget() + if parent is None or not parent.isVisible(): + continue + geometry = child.geometry() + if ( + geometry.width() > parent.width() + 1 + or geometry.height() > parent.height() + 1 + ): + oversize.append( + f"{type(child).__name__} {geometry.width()}x{geometry.height()}" + f" > {parent.width()}x{parent.height()}" + ) + checker.that( + not oversize, f"{theme} {width}x{height} tab={key}: {oversize}" + ) + window.workspace.set_current_key("axes") + print(f" {width}x{height}: every tab fits") + + # ---- the permanent shell ---------------------------------------- + checker.that( + window.workspace.page_keys() == ["axes", "sequence", "sensor", "surface", "points"], + f"unexpected tab set: {window.workspace.page_keys()}", + ) + checker.that( + window.status_strip.isVisible(), + "the motion status strip is not visible", + ) + checker.that( + window.status_strip.height() <= 48, + f"the status strip is {window.status_strip.height()}px tall", + ) + for key in window.workspace.page_keys(): + window.workspace.set_current_key(key) + app.processEvents() + checker.that( + window.status_strip.isVisible(), + f"the status strip vanished on tab {key}", + ) + checker.that( + bool(window.workspace.tabText(window.workspace.currentIndex())), + f"tab {key} has no label", + ) + window.workspace.set_current_key("axes") + + # The readout rail must show all five drives without scrolling. + readout_rows = len(window.axis_readout._rows) + checker.that(readout_rows == 5, f"the readout rail shows {readout_rows} axes") + checker.that( + window.axis_readout.width() >= 200, + f"the readout rail is only {window.axis_readout.width()}px wide", + ) + + # The sequence tab: three zones, a persisted profile, and a point list + # whose coordinates are generated rather than typed. + sequence = window.sequence_panel + checker.that( + sequence.profile_keys() + == [ + "mode", + "pitch_mm", + "margin_mm", + "radius_mm", + "clear_height_mm", + "approach_speed_mm_s", + "press_speed_mm_s", + "press_depth_mm", + "dwell_s", + "settle_window_s", + "repeats", + "order", + ], + f"sequence profile fields changed: {sequence.profile_keys()}", + ) + checker.that( + sequence.validation_checks() + == ["on_surface", "within_travel", "contact_confirmable"], + f"sequence validation checks changed: {sequence.validation_checks()}", + ) + for name, phase in sequence.pending_phases().items(): + button = sequence._pending_buttons[name] + checker.that( + not button.isEnabled() and phase in button.toolTip(), + f"sequence control {name} is usable or does not name its phase", + ) + checker.that( + sequence.planned_steps() == [], + "the sequence tab handed out steps a runner could start", + ) + checker.that( + sequence.point_row_count() > 0, + "the sequence point list is empty", + ) + checker.that( + sequence.table.columnCount() == 8, + f"the point list has {sequence.table.columnCount()} columns, expected 8", + ) + + # The shell: one rail, a run bar, and a health chip. + checker.that( + window.main_splitter.count() == 2, + f"the layout has {window.main_splitter.count()} columns, expected 2", + ) + checker.that( + window.left_rail.widget() is window.rail_content, + "the setup rail is not scrollable", + ) + checker.that( + window.run_bar.isVisible(), + "the run bar is not visible", + ) + checker.that( + not window.run_bar.abort_button.isEnabled(), + "abort is enabled with no run in progress", + ) + for key in window.workspace.page_keys(): + window.workspace.set_current_key(key) + app.processEvents() + checker.that( + window.run_bar.isVisible(), + f"the run bar vanished on tab {key}", + ) + window.workspace.set_current_key("axes") + checker.that( + bool(window.status_strip.chip_health.text()), + "the poll-health chip has no text", + ) + checker.that( + "QStatusBar" in window.statusBar().styleSheet(), + "the status bar is not using its own theme token", + ) + + # A collapsed bus-data group must not cost the page any height. + checker.that( + not window.bus_data_panel.isVisible(), + "the bus-data panel is expanded by default", + ) + print(" shell: strip, readout rail and sequence profile verified") + + panel = window.axis_panel + checker.that(panel.axis_count == 5, "the platform is not five axes") + checker.that( + panel.table.columnCount() == len(COLUMNS) + 1, + "the axis table lost a column", + ) + # Every header must fit its column: a clipped header is how a table stops + # being readable without anyone noticing. + for index in range(panel.table.columnCount()): + header = panel.table.horizontalHeaderItem(index).text() + width = panel.table.columnWidth(index) + needed = panel.table.fontMetrics().horizontalAdvance(header) + 12 + checker.that( + width >= needed, + f"axis column {index} ({header!r}) is {width}px, needs {needed}px", + ) + checker.that( + len(COLUMNS) == 7, + f"the axis table should show seven data columns, has {len(COLUMNS)}", + ) + checker.that( + window.axis_panel._detail_label.text(), + "the selected-axis detail line is empty", + ) + headers = [ + panel.table.horizontalHeaderItem(index).text() + for index in range(panel.table.columnCount()) + ] + checker.that( + all(headers) and headers[0] == t("axes.axis"), + f"axis table headers are not localised: {headers}", + ) + checker.that( + all( + panel.table.item(row, 0) is not None for row in range(panel.axis_count) + ), + "an axis row has no data cell", + ) + + # Motion must be unreachable before a bus is initialised. + checker.that( + not panel._rows[0]["fwd_button"].isEnabled(), + "jog is enabled before the bus is initialised", + ) + + # Bus data follows the reported bus family. ``isEnabledTo`` rather than + # ``isEnabled``: the panel now lives in a collapsed group, and Qt reports + # a hidden ancestor as disabling everything inside it. + box = window.bus_data_group + window.bus_data_panel.set_connected(True) + window.bus_data_panel.set_bus_type("ecat") + checker.that( + window.bus_data_panel.ecat_box.isEnabledTo(box) + and not window.bus_data_panel.rtex_box.isEnabledTo(box), + "the SDO/RTEX panels are not gated by bus type", + ) + + # Expanding the group must reveal the panel, not resize the page. + before = window.size() + box.setChecked(True) + app.processEvents() + checker.that( + window.bus_data_panel.isVisible(), "expanding the group did not show the panel" + ) + box.setChecked(False) + app.processEvents() + checker.that( + window.size() == before, "toggling bus data resized the window" + ) + + # A full simulated session: connect, initialise from the shipped BAS. + window.connect_controller(ConnectionSpec(mode="demo"), label="connect") + _wait_for(app, lambda: window._last_snapshot.connected, 6.0) + checker.that( + window._last_snapshot.connected, "the simulated controller did not connect" + ) + + window.bus_panel.set_bas_path(str(default_bas_dir() / "ECAT.bas")) + window._on_download_bas() + ok = _wait_for(app, lambda: window._last_snapshot.bus.init_status == 1, 8.0) + checker.that(ok, "the simulated bus did not report initialised") + if ok: + checker.that( + window._last_snapshot.bus.bus_type == "ecat", + "the bus type was not decoded from BUS_TYPE", + ) + checker.that( + window._last_snapshot.bus.total_axes == 5, + "the bus did not report five axes", + ) + checker.that( + panel._rows[0]["fwd_button"].isEnabled(), + "jog stayed disabled after the bus was initialised", + ) + checker.that( + "65" in window.axis_panel._detail_label.text(), + "ATYPE was not read back on the detail line (expected 65, position mode)", + ) + print( + f" session: bus={window._last_snapshot.bus.bus_type} " + f"axes={window._last_snapshot.bus.total_axes} " + f"{panel.enabled_count_label.text()}" + ) + # The strip must be reporting the live session, from whatever tab. + window.workspace.set_current_key("surface") + app.processEvents() + strip = window.status_strip + checker.that( + strip.chip_connection.text() == t("connection.state_open"), + f"strip connection chip says {strip.chip_connection.text()!r}", + ) + checker.that( + strip.chip_bus.text() == t("bus.type_ecat"), + f"strip bus chip says {strip.chip_bus.text()!r}", + ) + checker.that( + strip.chip_init.text() == t("bus.state_ok"), + f"strip init chip says {strip.chip_init.text()!r}", + ) + checker.that( + t("axes.enabled_count", on=5, total=5) == strip.chip_axes.text() + or "5" in strip.chip_axes.text(), + f"strip axis chip says {strip.chip_axes.text()!r}", + ) + checker.that( + window.axis_readout._rows[0]["position"].text().startswith("0.000"), + f"readout row 0 shows {window.axis_readout._rows[0]['position'].text()!r}", + ) + window.workspace.set_current_key("axes") + + window.close() + app.processEvents() + + return checker.report() + + +def _inside_scroll_area(widget) -> bool: + """Whether ``widget`` is scroll-area content rather than a laid-out child.""" + from PySide6.QtWidgets import QAbstractScrollArea + + parent = widget.parentWidget() + while parent is not None: + if isinstance(parent, QAbstractScrollArea): + return True + parent = parent.parentWidget() + return False + + +def _wait_for(app, predicate, timeout: float) -> bool: + import time + + deadline = time.monotonic() + timeout + while time.monotonic() < deadline: + app.processEvents() + if predicate(): + return True + time.sleep(0.02) + return False + + +if __name__ == "__main__": + raise SystemExit(main()) diff --git a/apps/autocal/tools/panel_snapshot.py b/apps/autocal/tools/panel_snapshot.py new file mode 100644 index 0000000..c8e93c0 --- /dev/null +++ b/apps/autocal/tools/panel_snapshot.py @@ -0,0 +1,144 @@ +#!/usr/bin/env python3 +"""Render the AutoCal window offscreen to a PNG, for review. + + python apps/autocal/tools/panel_snapshot.py --theme light --out shot.png + +Optionally drives a simulated session first, so the shot shows live values: + + python apps/autocal/tools/panel_snapshot.py --demo --language en_US --out shot.png +""" + +from __future__ import annotations + +import argparse +import os +import sys +from pathlib import Path + +APP_ROOT = Path(__file__).resolve().parents[1] +for path in (APP_ROOT / "src", APP_ROOT.parents[1] / "shared" / "src"): + if str(path) not in sys.path: + sys.path.insert(0, str(path)) + +os.environ.setdefault("ORISYS_APP_ID", "autocal") +os.environ.setdefault("QT_QPA_PLATFORM", "offscreen") +if sys.platform == "win32" and "QT_QPA_FONTDIR" not in os.environ: + _fonts = Path(os.environ.get("WINDIR", r"C:\Windows")) / "Fonts" + if _fonts.is_dir(): + os.environ["QT_QPA_FONTDIR"] = str(_fonts) + + +def main() -> int: + parser = argparse.ArgumentParser(description=__doc__) + parser.add_argument("--theme", default="dark", choices=("dark", "light")) + parser.add_argument("--language", default="zh_CN", choices=("zh_CN", "en_US")) + parser.add_argument("--size", default="1600x900", help="WIDTHxHEIGHT") + parser.add_argument("--out", default="autocal.png") + parser.add_argument( + "--tab", + default="axes", + help="workspace tab to show: axes, sequence, sensor, surface, points", + ) + parser.add_argument( + "--compare", + action="store_true", + help="render every tab, named _., so the layout can be " + "reviewed in one pass", + ) + parser.add_argument( + "--demo", + action="store_true", + help="drive a simulated session so the shot shows live values", + ) + args = parser.parse_args() + width, height = (int(part) for part in args.size.lower().split("x")) + + from PySide6.QtWidgets import QApplication + + from orisys_app_shared.i18n import set_locale + from orisys_app_shared.theme import build_qss + + from orisys_autocal.motion import ConnectionSpec, DemoTransport + from orisys_autocal.preferences import load_preferences + from orisys_autocal.ui.bus_panel import default_bas_dir + from orisys_autocal.ui.window import AutoCalMainWindow + + set_locale(args.language) + app = QApplication.instance() or QApplication([]) + app.setStyleSheet(build_qss(args.theme)) + + prefs = load_preferences() + prefs["theme"] = args.theme + prefs["language"] = args.language + prefs["show_diagnostics"] = False + + window = AutoCalMainWindow(prefs=prefs) + window.poller.service._transport = DemoTransport() # noqa: SLF001 + window.resize(width, height) + window.show() + app.processEvents() + + if args.demo: + window.connect_controller(ConnectionSpec(mode="demo"), label="connect") + _wait_for(app, lambda: window._last_snapshot.connected, 6.0) + window.bus_panel.set_bas_path(str(default_bas_dir() / "ECAT.bas")) + window._on_download_bas() + _wait_for(app, lambda: window._last_snapshot.bus.init_status == 1, 8.0) + window.axis_panel.set_selected_axis(0) + window.axis_panel.target_edit.setText("1000") + window._on_move_abs(0, 1000.0) + _wait_for(app, lambda: window._last_snapshot.axis(0).dpos != 0, 4.0) + + app.processEvents() + + if args.compare: + return _render_every_tab(window, app, args, width, height) + + window.workspace.set_current_key(args.tab) + app.processEvents() + output = Path(args.out).resolve() + if not window.grab().save(str(output)): + print(f"could not write {output}", file=sys.stderr) + return 1 + print( + f"wrote {output} ({width}x{height}, theme={args.theme}, " + f"lang={args.language}, tab={args.tab})" + ) + + window.close() + app.processEvents() + return 0 + + +def _render_every_tab(window, app, args, width: int, height: int) -> int: + """One image per workspace tab, so the whole layout can be reviewed at once.""" + base = Path(args.out).resolve() + failures = 0 + for key in window.workspace.page_keys(): + window.workspace.set_current_key(key) + app.processEvents() + target = base.with_name(f"{base.stem}_{key}{base.suffix or '.png'}") + if window.grab().save(str(target)): + print(f"wrote {target} ({width}x{height}, tab={key})") + else: + print(f"could not write {target}", file=sys.stderr) + failures += 1 + window.close() + app.processEvents() + return 1 if failures else 0 + + +def _wait_for(app, predicate, timeout: float) -> bool: + import time + + deadline = time.monotonic() + timeout + while time.monotonic() < deadline: + app.processEvents() + if predicate(): + return True + time.sleep(0.02) + return False + + +if __name__ == "__main__": + raise SystemExit(main()) diff --git a/apps/internal/README.md b/apps/internal/README.md index 6d21c7f..0b820a9 100644 --- a/apps/internal/README.md +++ b/apps/internal/README.md @@ -1,5 +1,11 @@ -# Internal app (stub) +# Internal app (superseded) -Future home for automated calibration and laboratory testing tools. +The internal calibration and laboratory tooling this directory was reserved for +now lives in [`apps/autocal`](../autocal/README.md) — the 5-axis calibration +platform control application. -This directory is intentionally empty in the customer-facing scaffold. Shared code will come from `shared/`; do not ship this app in the customer installer. +That app keeps the property this stub existed to protect: it is **not** part of +the customer-facing product. It is not packaged by `build/studio` and must not +enter the customer installer. + +This directory is otherwise unused; it is kept only so the move is documented. diff --git a/apps/studio/config/locales/en_US.json b/apps/studio/config/locales/en_US.json index f2139b5..fd79bd5 100644 --- a/apps/studio/config/locales/en_US.json +++ b/apps/studio/config/locales/en_US.json @@ -33,6 +33,10 @@ "scene3d_settings": "3D display settings…", "show_fps": "Show FPS", "show_diagnostics": "Diagnostics", + "raw_auto_zero": "Finger raw auto-zero at start", + "raw_auto_zero_tip": "Value cards only: estimate an idle bias and deadband after start. Curves, statistics and CSV keep the measured values.", + "raw_reestimate": "Re-estimate raw baseline…", + "raw_reestimate_tip": "Drop the current display baseline and re-estimate from the next quiet samples (value cards only).", "settings": "Settings area", "plot_settings": "Plot settings…", "rotate_arrows": "Rotate arrows 90°", @@ -217,6 +221,8 @@ "selection_empty": "No valid samples in the selection", "value_unavailable": "n/a", "value_unavailable_tip": "No curve is loaded for {channel}, so it has no value in this unit (raw counts are never shown in its place)", + "zero_zone": "zero zone", + "zero_zone_tip": "Display deadband after auto baseline; curves, statistics and CSV keep the measured values", "unit_toggle": "Switch unit", "unit_toggle_tip": "Click to switch the three curves and readouts between newton and raw units", "browse_only_tip": "Drag or scroll on the chart to browse history" @@ -412,6 +418,12 @@ "field_depth": "Depth response", "field_flow": "Optical flow magnitude", "field_substituted": "This frame shows {shown}, not the chosen {chosen}.", + "flow_arrows": "Surface flow arrows", + "flow_arrows_tip": "Draw optical-flow arrows on the sensing surface using the same sample points as the 2D view.", + "flow_arrows_unavailable": "This scene package has no UV→scene surface mapping, so flow arrows cannot be drawn.", + "contact_arrow": "Contact normal arrow", + "contact_arrow_tip": "Draw a yellow local-normal arrow at the contact centre (length from the normal response, capped — not a calibrated force vector).", + "contact_arrow_unavailable": "This scene package has no UV→scene surface mapping, so the contact arrow cannot be drawn.", "quantity_flow_magnitude": "Optical flow magnitude", "quantity_depth_response": "Depth response", "mode_surface": "surface colouring", diff --git a/apps/studio/config/locales/zh_CN.json b/apps/studio/config/locales/zh_CN.json index e20fa8c..03f4426 100644 --- a/apps/studio/config/locales/zh_CN.json +++ b/apps/studio/config/locales/zh_CN.json @@ -33,6 +33,10 @@ "scene3d_settings": "三维显示设置…", "show_fps": "显示 FPS", "show_diagnostics": "诊断信æ�¯", + "raw_auto_zero": "Finger raw å�¯åЍ归零", + "raw_auto_zero_tip": "ä»…å½±å“�æ•°å­—å�¡å±•示:å�¯åЍå�Žè‡ªåŠ¨ä¼°è®¡æ— è½½å��置与死区。曲线ã€�统计与 CSV ä»�为测é‡�值。", + "raw_reestimate": "é‡�新估计 raw 基线…", + "raw_reestimate_tip": "丢弃当å‰�展示基线,从接下æ�¥çš„æ— è½½æ ·æœ¬é‡�新估计(仅数字å�¡ï¼‰ã€‚", "settings": "设置区", "plot_settings": "绘图设置…", "rotate_arrows": "旋转箭头图 90°", @@ -217,6 +221,8 @@ "selection_empty": "选区无有效样本", "value_unavailable": "ä¸�å�¯ç”¨", "value_unavailable_tip": "{channel} 轴未加载标定曲线,因此没有该å�•ä½�的数值(ä¸�会用原始值冒充)", + "zero_zone": "零区", + "zero_zone_tip": "展示归零å�Žçš„æ­»åŒºå†…读数;曲线ã€�统计与 CSV ä»�为原始测é‡�值", "unit_toggle": "切æ�¢å�•ä½�", "unit_toggle_tip": "点击在「牛顿ã€�与「原始å�•ä½�ã€�之间切æ�¢ä¸‰è½´æ›²çº¿ä¸Žè¯»æ•°", "browse_only_tip": "拖动或滚轮å�³å�¯è¿›å…¥åކå�²æµ�览" @@ -412,6 +418,12 @@ "field_depth": "深度å“�应", "field_flow": "å…‰æµ�幅值", "field_substituted": "这一帧画的是 {shown},ä¸�是所选的 {chosen}。", + "flow_arrows": "表é�¢å…‰æµ�箭头", + "flow_arrows_tip": "在传感表é�¢ä¸ŠæŒ‰ä¸ŽäºŒç»´ç›¸å�Œçš„采样点绘制光æµ�箭头。", + "flow_arrows_unavailable": "当å‰�场景包没有 UV→三维 表é�¢æ˜ å°„,无法绘制光æµ�箭头。", + "contact_arrow": "接触法å�‘箭头", + "contact_arrow_tip": "在接触中心沿局部法å�‘绘制黄色示æ„�箭头(长度由法å�‘å“�应é™�幅,ä¸�是标定å�ˆåŠ›ï¼‰ã€‚", + "contact_arrow_unavailable": "当å‰�场景包没有 UV→三维 表é�¢æ˜ å°„,无法绘制接触法å�‘箭头。", "quantity_flow_magnitude": "å…‰æµ�幅值", "quantity_depth_response": "深度å“�应", "mode_surface": "曲é�¢ç�€è‰²", diff --git a/apps/studio/config/preferences.default.json b/apps/studio/config/preferences.default.json index 16504f3..e7a1df5 100644 --- a/apps/studio/config/preferences.default.json +++ b/apps/studio/config/preferences.default.json @@ -9,6 +9,7 @@ "show_cal_panel": false, "show_finger_3d": true, "show_fps": false, + "raw_auto_zero": true, "gl_profile": "desktop33", "scene3d_package": "", "scene3d_display": { diff --git a/apps/studio/config/sensors/box/force_calibration.json b/apps/studio/config/sensors/box/force_calibration.json index 015fc07..beece03 100644 --- a/apps/studio/config/sensors/box/force_calibration.json +++ b/apps/studio/config/sensors/box/force_calibration.json @@ -1,5 +1,5 @@ { - "schema_version": 1, + "schema_version": 2, "unit": "N", "channels": { "normal": { @@ -14,8 +14,22 @@ [62000.0, 2.377] ] }, - "shear": { + "shear_x": { "method": "piecewise_linear", + "raw_key": "fshearx", + "input": "components", + "signed": true, + "extrapolate": true, + "clamp_output_min": 0.0, + "points": [ + [1000.0, 0.0], + [36000.0, 1.19], + [68000.0, 2.06] + ] + }, + "shear_y": { + "method": "piecewise_linear", + "raw_key": "fsheary", "input": "components", "signed": true, "extrapolate": true, diff --git a/apps/studio/config/sensors/finger/scene/finger-display-1.0.0.oryscene b/apps/studio/config/sensors/finger/scene/finger-display-1.0.0.oryscene index 773373b7e29e46c23439670a00e0ff4956832897..4ce94c9fcdd77d3f619307925881217bdf39ed44 100644 GIT binary patch delta 665346 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

pY_kK>VV4BypzeD|JhZ&PgKwQ?>52z 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

Z&aW(P%K$omM$HMEg-@{7Wb^!q+VU?V-~6NQa~ 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�+3@)Siro+{`Z6<) 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ӷ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

0_v_aBTo^;U8 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%0D>cphug(c4Oc2cgQ=d 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 delta 1841 zcmZ9Nc{tSj7stOEWTqIySVzVZKMk@KQc5COE{2%wlRIOV2sJn6>mut=X3`jYN!E}N zDoZ4LxXm<{vDAYo`*pJvx_ExieV%(i|D5+ZpXamFJ-m%xeP+v_b z?PzoK3i!0#vvfJd!I7n(9mi_F)KF{5Hf^Bw*M%239okN$Xk35O8>~Li&6)Q}i>;N# z7N!5?AZ}z{l@Kg$;f)XOPH+6ZdsIjc)+l##Vmu+AotttNyw8t&x|}h zz8hGG&k|$x4?J2`v}@M__8}QS&sMsYwwc)qv|p`$4q%Wg@&sP<1DU?%mPM9F7j6 zbCLl&Nx1Q$Idlb~)k%viIpj*V>${;^PI)vR0pQ$Ebh z3sYj|B|RC%M1Ld?2raDrq|6tJ*JY^-Ih31KDnFj_pZ`-Qyk>s3MEaEz81`!g3er+|jEF!~F7+pO!c znlM#9r<~6UZ;~dG-gi;;p;AZdcdHf`7v4@(4%g+HMd}bAxUKG<_jIB*@+3vGnMF>v zD{$nPUI*>OeWU4TRo=)dCA_?(?OcH4J+qQ=l$V$r?pfnnY`^l^eQmvdm{TL;oo!Ni z8XL)iJ|T5-2rcIKs>8ZTlP{dbm-x~?Ez7~B6yomD-r+B3x6*t0PC{cc$fM9zMe8&6 z&z<2*DJF^e)fyw%!~=~qEW@}k!zd~R zhvt^tF})OiibY|*D7?Py3`QWk#-J=XNvKrPlylL`IuwKaUByx^SIjig(FGDDeI%O% zp5*KM7FcfnWBPJY6E0)XA=v$?%sK`dRJ7I@vbHe#3TM~IkXiTKE;HF7#pN;_F{P{8 zb*S>pL#$M|T~bArxtyYAnQJ1Cpc7*=%u$4DTo&@VuF_1LfefjAueC1e@aAqe4JG6A zy+7*O{1xA}o=Ts#--;PJuQOZ5SiO{VKPkHUN6GYFH-$*e!;-zAL* zrj+QMdY%2h_INZ^iCC!?KUBbLNkw-ic`Uq*u|W(Z^d?(FhJ{Z_YImm*SW&k2OleM! zn|;a){Ryiwm-(h|y=TsL!{1K(V(Xk-OIrwRt>PZ?pqLe|;6%{bk;vQS{{G-g1AR~{ zAkbe1hKnVRJ!!t>!7Q7L!Do`)w{B@lfrJHUh2_U*bJsx~hGE?i(W%v)B`$PfqX3dW z;A7c#G%@E74AkZ^6{k(*ynTc@ZubB$qEcZd678L7k!2Mdk+cfsc2z)5pNrT&_-_aJ ze$0ugtj-+g|3w|L>j=!_C$=#ALfr$D-xrlpS5EH>Sc47!o~R@A!q6z_KmI|d%)qqK zd+C37^6pyRKT$m6^syP3%w9KrYX*kmLD3~=VG8@X;VcYwAVh~|ctV0c`UQ4)zZkVw z40fmI%)(UU_Ru7u@@2)-yR`EFApL*rUWnpZ1!+xDGH_c*AU?uujAP diff --git a/apps/studio/src/orisys_studio/app_window.py b/apps/studio/src/orisys_studio/app_window.py index 589689e..7240e54 100644 --- a/apps/studio/src/orisys_studio/app_window.py +++ b/apps/studio/src/orisys_studio/app_window.py @@ -925,6 +925,16 @@ class StudioMainWindow(QMainWindow): ) self.view_menu.addAction(self.act_show_diagnostics) + self.act_raw_auto_zero = QAction(self) + self.act_raw_auto_zero.setCheckable(True) + self.act_raw_auto_zero.setChecked(bool(self.prefs.get("raw_auto_zero", True))) + self.act_raw_auto_zero.toggled.connect(self.display_ctl.on_raw_auto_zero_toggled) + self.view_menu.addAction(self.act_raw_auto_zero) + + self.act_raw_reestimate = QAction(self) + self.act_raw_reestimate.triggered.connect(self.display_ctl.request_raw_reestimate) + self.view_menu.addAction(self.act_raw_reestimate) + self.act_settings = QAction(self) self.act_settings.setCheckable(True) self.act_settings.setChecked(self.toolbar.settings_expanded()) @@ -1168,6 +1178,10 @@ class StudioMainWindow(QMainWindow): self.act_scene3d_settings.setText(t("menu.scene3d_settings")) self.act_show_fps.setText(t("menu.show_fps")) self.act_show_diagnostics.setText(t("menu.show_diagnostics")) + self.act_raw_auto_zero.setText(t("menu.raw_auto_zero")) + self.act_raw_auto_zero.setToolTip(t("menu.raw_auto_zero_tip")) + self.act_raw_reestimate.setText(t("menu.raw_reestimate")) + self.act_raw_reestimate.setToolTip(t("menu.raw_reestimate_tip")) self.act_settings.setText(t("menu.settings")) self.act_plot_settings.setText(t("menu.plot_settings")) self.act_rotate_arrows.setText(t("menu.rotate_arrows")) @@ -1886,6 +1900,16 @@ class StudioMainWindow(QMainWindow): self._stop_preview(announce=False) self.force_plots.reset() + units = "N" if self.toolbar.units() == "newton" else "raw" + self.force_plots.configure_presentation( + sensor_type=sensor_type, + unit=units, + enabled=( + sensor_type == "finger" + and units == "raw" + and bool(self.prefs.get("raw_auto_zero", True)) + ), + ) self._last_plot_packet_key = None self._last_rendered_view_mode = None # Fresh record channel for the new session. The calibration identity is @@ -2126,6 +2150,30 @@ class StudioMainWindow(QMainWindow): self.session.last_sample_valid = True self._last_display_fallback = bool(display.using_raw_fallback) self._last_display_available = tuple(bool(flag) for flag in display.available) + flow = getattr(packet, "flow", None) + flow_p95 = None + if flow is not None: + try: + import numpy as np + + arr = np.asarray(flow, dtype=np.float64) + if arr.ndim == 3 and arr.shape[-1] == 2: + mag = np.linalg.norm(arr, axis=-1) + mask = getattr(packet, "valid_mask", None) + if mask is not None: + m = np.asarray(mask, dtype=bool) + if m.shape == mag.shape: + vals = mag[m & np.isfinite(mag)] + else: + vals = mag[np.isfinite(mag)] + else: + vals = mag[np.isfinite(mag)] + if vals.size: + flow_p95 = float(np.percentile(vals, 95)) + except Exception: # noqa: BLE001 + flow_p95 = None + contact = getattr(packet, "contact", None) + contact_found = bool(getattr(contact, "found", False)) if contact else False self.force_plots.push( # Session-relative time, the same base the store and # ``forces.csv`` use. The wall clock must never reach the @@ -2136,6 +2184,9 @@ class StudioMainWindow(QMainWindow): display.values[2], unit=display.unit, available=display.available, + flow_p95=flow_p95, + contact_found=contact_found, + forces_valid=bool(getattr(packet, "forces_valid", True)), ) else: self.session.last_sample_valid = False @@ -2226,6 +2277,11 @@ class StudioMainWindow(QMainWindow): def _render_run_image(self, packet) -> None: if packet is None or self._replay_owns_image(): return + flow_valid = getattr(packet, "flow_valid", None) + depth_valid = getattr(packet, "depth_valid", None) + stale = bool(getattr(packet, "stale_forces", False)) or ( + flow_valid is False and depth_valid is False + ) self._show_image_frame( ImageFrame( getattr(packet, "processed_frame", None), @@ -2235,6 +2291,11 @@ class StudioMainWindow(QMainWindow): source=SOURCE_RECOMPUTE if self._recompute_running else SOURCE_LIVE, frame_id=int(getattr(packet, "frame_id", 0) or 0), t_rel_s=float(getattr(packet, "mono_t", 0.0) or 0.0), + stale=stale, + flow_valid=flow_valid, + flow_frame_id=getattr(packet, "flow_frame_id", None), + depth_valid=depth_valid, + depth_frame_id=getattr(packet, "depth_frame_id", None), ) ) diff --git a/apps/studio/src/orisys_studio/display_prefs.py b/apps/studio/src/orisys_studio/display_prefs.py index 217b833..5cb2759 100644 --- a/apps/studio/src/orisys_studio/display_prefs.py +++ b/apps/studio/src/orisys_studio/display_prefs.py @@ -84,7 +84,10 @@ class DisplayPrefsController(QObject): #: Whether the panels explain the pipeline around the picture (see #: ``on_show_diagnostics_toggled``). Off: each panel shows what the picture *is*. self._show_diagnostics = bool(host.prefs.get("show_diagnostics", False)) + #: Finger-raw value cards: startup auto baseline / deadband (display only). + self._raw_auto_zero = bool(host.prefs.get("raw_auto_zero", True)) self._apply_diagnostics() + self.apply_presentation_prefs() def bind_actions(self, *, rotate_arrows: Any) -> None: """Take the rotate entry once the menus exist (it follows the sensor).""" @@ -261,3 +264,43 @@ class DisplayPrefsController(QObject): setter = getattr(panel, "set_diagnostics_visible", None) if callable(setter): setter(self._show_diagnostics) + + # ------------------------------------------------------- raw display zeroing + @property + def raw_auto_zero(self) -> bool: + return bool(self._raw_auto_zero) + + def set_raw_auto_zero(self, enabled: bool) -> None: + """Persist whether Finger raw value cards auto-baseline at session start.""" + self._raw_auto_zero = bool(enabled) + self._host.prefs["raw_auto_zero"] = self._raw_auto_zero + self._host._persist_prefs() + self.apply_presentation_prefs() + + def on_raw_auto_zero_toggled(self, enabled: bool) -> None: + self.set_raw_auto_zero(enabled) + + def apply_presentation_prefs(self) -> None: + """Push the current baseline policy onto the charts (Finger raw only).""" + configure = getattr(self._charts, "configure_presentation", None) + if not callable(configure): + return + sensor = ( + self._picker.sensor_type() + if hasattr(self._picker, "sensor_type") + else "box" + ) + unit = "N" if self._toolbar.units() == "newton" else "raw" + configure( + sensor_type=sensor, + unit=unit, + enabled=bool(self._raw_auto_zero and sensor == "finger" and unit == "raw"), + ) + + def request_raw_reestimate(self) -> None: + """Operator entry: restart the idle baseline window on the value cards.""" + request = getattr(self._charts, "request_presentation_reestimate", None) + if callable(request): + request() + else: + self.apply_presentation_prefs() diff --git a/apps/studio/src/orisys_studio/scene3d/adapters.py b/apps/studio/src/orisys_studio/scene3d/adapters.py index 890d765..2009003 100644 --- a/apps/studio/src/orisys_studio/scene3d/adapters.py +++ b/apps/studio/src/orisys_studio/scene3d/adapters.py @@ -392,6 +392,26 @@ class FingerFrameAdapter: refused.append(mask_problem) return None self.last_diagnostic = None + contact = getattr(packet, "contact", None) + contact_xy = None + contact_found = False + contact_valid = False + if contact is not None: + contact_xy = getattr(contact, "centroid_uv_xy", None) + contact_found = bool(getattr(contact, "found", False)) + contact_valid = bool(getattr(contact, "valid", False)) + flow = getattr(packet, "flow", None) + flow_uv = None + flow_mask = None + if flow is not None and _field_validity(packet, "flow", identity.frame_id) is None: + arr = np.asarray(flow, dtype=np.float32) + if arr.ndim == 3 and arr.shape[-1] == 2 and tuple(arr.shape[:2]) == self.shape_hw: + flow_uv = freeze(arr, dtype=np.float32) + device_for_flow, _ = _device_mask(packet, self.shape_hw) + flow_mask = _intersect(np.isfinite(arr[..., 0]) & np.isfinite(arr[..., 1]), device_for_flow) + fn = float(getattr(packet, "normal_force_raw", 0.0) or 0.0) + if not np.isfinite(fn): + fn = float(getattr(packet, "normal_force", 0.0) or 0.0) return SurfaceFieldFrame( identity=identity, geometry_id=self.geometry_id, @@ -400,6 +420,12 @@ class FingerFrameAdapter: scalar_descriptor=descriptor, valid=_intersect(mask, device), computed_frame_id=_computed_frame_id(packet, name, identity.frame_id), + flow_uv=flow_uv, + flow_valid_mask=flow_mask, + contact_uv_xy=contact_xy if isinstance(contact_xy, tuple) else None, + contact_found=contact_found, + contact_valid=contact_valid, + contact_fn=fn if np.isfinite(fn) else 0.0, ) diff --git a/apps/studio/src/orisys_studio/scene3d/coordinator.py b/apps/studio/src/orisys_studio/scene3d/coordinator.py index 7dcbac1..97d0da5 100644 --- a/apps/studio/src/orisys_studio/scene3d/coordinator.py +++ b/apps/studio/src/orisys_studio/scene3d/coordinator.py @@ -462,17 +462,24 @@ class ThreeDCoordinator: self._set_state("no_data") def set_settings(self, settings: DisplaySettings) -> None: - """Apply display settings; a gain change means recomposing the last field.""" + """Apply display settings; a gain/overlay change recomposes the last field.""" previous = self._settings self._settings = settings self._widget.set_settings(settings) - gain_changed = ( + needs_recompose = ( previous.display_gain != settings.display_gain or previous.deform_enabled != settings.deform_enabled + or previous.field != settings.field + or previous.flow_arrows_enabled != settings.flow_arrows_enabled + or previous.contact_arrow_enabled != settings.contact_arrow_enabled + or previous.flow_on_px != settings.flow_on_px + or previous.flow_off_px != settings.flow_off_px + or previous.flow_grid_spacing != settings.flow_grid_spacing + or previous.max_arrows != settings.max_arrows ) - if gain_changed and self._assets is not None: - # The scalar is untouched by the gain, but the *positions* are not, so - # the last field frame has to be composed again. + if needs_recompose and self._assets is not None: + # Gain moves positions; overlay toggles rebuild arrow instances on the + # held field frame so the operator sees the change without waiting. self._settings_dirty = True def show_rest(self) -> None: diff --git a/apps/studio/src/orisys_studio/scene3d/gl_backend.py b/apps/studio/src/orisys_studio/scene3d/gl_backend.py index 147c5e8..9e70077 100644 --- a/apps/studio/src/orisys_studio/scene3d/gl_backend.py +++ b/apps/studio/src/orisys_studio/scene3d/gl_backend.py @@ -190,6 +190,31 @@ def shader_header(profile: Profile) -> str: raise ValueError(f"unknown GL profile: {profile!r}") from None +_ARROW_VERTEX_BODY = """ +layout(location = 0) in vec3 a_position; +layout(location = 1) in vec4 a_color; + +uniform mat4 u_view; +uniform mat4 u_projection; + +out vec4 v_color; + +void main() { + v_color = a_color; + gl_Position = u_projection * u_view * vec4(a_position, 1.0); +} +""" + +_ARROW_FRAGMENT_BODY = """ +in vec4 v_color; +out vec4 frag_color; + +void main() { + frag_color = v_color; +} +""" + + def shader_source(profile: Profile, program: str) -> tuple[str, str]: """``(vertex, fragment)`` source for a profile and a program name. @@ -199,19 +224,23 @@ def shader_source(profile: Profile, program: str) -> tuple[str, str]: header = shader_header(profile) if program == "scalar": body = _SCALAR_FRAGMENT_BODY + vertex = _VERTEX_BODY elif program == "diffuse": body = _DIFFUSE_FRAGMENT_BODY + vertex = _VERTEX_BODY + elif program == "arrow": + return header + _ARROW_VERTEX_BODY, header + _ARROW_FRAGMENT_BODY else: raise ValueError(f"unknown shader program: {program!r}") - return header + _VERTEX_BODY, header + body + return header + vertex, header + body def _valid_scalar_range(scalar, valid) -> Optional[tuple[float, float]]: - """The range of the *valid* samples, or ``None`` when there are none. + """Robust P5/P95 range of *valid* samples, or ``None`` when there are none. - Only valid and finite samples count. Including the invalid ones would make the - colour range follow whatever garbage sits outside the UV island, and including - NaN would produce a range of NaN and a picture with no colours at all. + Using min/max made empty-field noise paint the whole LUT. A percentile span + with a minimum width keeps weak signals visible without amplifying floor + noise into a full contact. """ import numpy as np @@ -222,9 +251,39 @@ def _valid_scalar_range(scalar, valid) -> Optional[tuple[float, float]]: usable = values[mask & np.isfinite(values)] if usable.size == 0: return None - return float(usable.min()), float(usable.max()) + if usable.size < 8: + lower = float(usable.min()) + upper = float(usable.max()) + else: + lower = float(np.percentile(usable, 5.0)) + upper = float(np.percentile(usable, 95.0)) + # Minimum span: avoid collapsing nearly-constant fields into one colour. + span = upper - lower + min_span = max(abs(lower) * 0.05, abs(upper) * 0.05, 1e-3) + if span < min_span: + mid = 0.5 * (lower + upper) + lower = mid - 0.5 * min_span + upper = mid + 0.5 * min_span + return lower, upper +def _blend_scale_range( + previous: Optional[tuple[float, float]], + current: Optional[tuple[float, float]], + *, + alpha: float = 0.15, +) -> Optional[tuple[float, float]]: + """Slowly update an automatic colour range to avoid frame-to-frame flicker.""" + if current is None: + return previous + if previous is None: + return current + a = float(np.clip(alpha, 0.0, 1.0)) + return ( + (1.0 - a) * float(previous[0]) + a * float(current[0]), + (1.0 - a) * float(previous[1]) + a * float(current[1]), + ) + def _scale_bounds(scale, automatic: Optional[tuple[float, float]]) -> tuple[float, float]: """The colour range to draw with: the operator's, or the data's own. @@ -514,6 +573,10 @@ class GLRenderer: self._initialized = False self._paint_calls = 0 self._last_upload_ms = 0.0 + #: Overlay VAOs keyed by kind ("flow" / "contact"). + self._overlay_vaos: dict[str, tuple[int, int, int, int]] = {} + self._arrow_program: int = 0 + self._arrow_uniforms: dict[str, int] = {} # ------------------------------------------------------------------ lifetime def initialize(self, capabilities: GLCapabilities) -> None: @@ -529,6 +592,7 @@ class GLRenderer: try: self._programs["scalar"] = _compile_program(GL, capabilities.profile, "scalar") self._programs["diffuse"] = _compile_program(GL, capabilities.profile, "diffuse") + self._programs["arrow"] = _compile_program(GL, capabilities.profile, "arrow") except Exception as exc: # noqa: BLE001 self.release() raise error( @@ -604,7 +668,74 @@ class GLRenderer: GL.glBufferSubData(GL.GL_ARRAY_BUFFER, 0, rows.nbytes, rows) GL.glBindBuffer(GL.GL_ARRAY_BUFFER, 0) self._last_upload_ms = (time.perf_counter() - started) * 1000.0 - self._scalar_range = _valid_scalar_range(frame.scalar, frame.valid) + measured = _valid_scalar_range(frame.scalar, frame.valid) + self._scalar_range = _blend_scale_range(self._scalar_range, measured) + self._upload_overlays(frame) + + def _upload_overlays(self, frame: RenderFrame) -> None: + """Upload merged flow / contact arrow meshes for this frame.""" + from orisys_app_shared.scene3d.overlays import arrow_instances_to_mesh + + for kind, instances in ( + ("flow", getattr(frame, "flow_arrows", None)), + ("contact", getattr(frame, "contact_arrow", None)), + ): + if instances is None or int(instances.origins.shape[0]) == 0: + self._clear_overlay(kind) + continue + positions, triangles, colors = arrow_instances_to_mesh(instances) + if positions.size == 0: + self._clear_overlay(kind) + continue + self._set_overlay(kind, positions, triangles, colors) + + def _set_overlay( + self, + kind: str, + positions: np.ndarray, + triangles: np.ndarray, + colors: np.ndarray, + ) -> None: + from OpenGL import GL + + self._clear_overlay(kind) + count = int(positions.shape[0]) + interleaved = np.empty((count, 7), dtype=np.float32) + interleaved[:, 0:3] = positions + interleaved[:, 3:7] = colors + vao = int(GL.glGenVertexArrays(1)) + vbo = int(GL.glGenBuffers(1)) + ebo = int(GL.glGenBuffers(1)) + GL.glBindVertexArray(vao) + GL.glBindBuffer(GL.GL_ARRAY_BUFFER, vbo) + GL.glBufferData( + GL.GL_ARRAY_BUFFER, interleaved.nbytes, interleaved, GL.GL_DYNAMIC_DRAW + ) + GL.glBindBuffer(GL.GL_ELEMENT_ARRAY_BUFFER, ebo) + GL.glBufferData( + GL.GL_ELEMENT_ARRAY_BUFFER, triangles.nbytes, triangles, GL.GL_DYNAMIC_DRAW + ) + stride = 7 * 4 + GL.glEnableVertexAttribArray(0) + GL.glVertexAttribPointer(0, 3, GL.GL_FLOAT, GL.GL_FALSE, stride, None) + GL.glEnableVertexAttribArray(1) + GL.glVertexAttribPointer(1, 4, GL.GL_FLOAT, GL.GL_FALSE, stride, _offset(3)) + GL.glBindVertexArray(0) + self._overlay_vaos[kind] = (vao, vbo, ebo, int(triangles.size)) + + def _clear_overlay(self, kind: str) -> None: + from OpenGL import GL + + entry = self._overlay_vaos.pop(kind, None) + if entry is None: + return + vao, vbo, ebo, _ = entry + try: + GL.glDeleteVertexArrays(1, [int(vao)]) + GL.glDeleteBuffers(1, [int(vbo)]) + GL.glDeleteBuffers(1, [int(ebo)]) + except Exception: # noqa: BLE001 + pass def draw( self, @@ -659,6 +790,27 @@ class GLRenderer: GL.GL_TRIANGLES, part.triangles * 3, GL.GL_UNSIGNED_INT, None ) GL.glBindVertexArray(0) + # Overlays after the surface so arrows stay visible. + arrow_program = self._programs.get("arrow") + if arrow_program and self._overlay_vaos: + locations = self._uniforms.get("arrow", {}) + GL.glUseProgram(arrow_program) + _set_mat4(GL, locations.get("u_view"), view) + _set_mat4(GL, locations.get("u_projection"), projection) + GL.glDisable(GL.GL_DEPTH_TEST) + for kind in ("flow", "contact"): + entry = self._overlay_vaos.get(kind) + if entry is None: + continue + vao, _vbo, _ebo, index_count = entry + if index_count <= 0: + continue + GL.glBindVertexArray(vao) + GL.glDrawElements( + GL.GL_TRIANGLES, int(index_count), GL.GL_UNSIGNED_INT, None + ) + GL.glBindVertexArray(0) + GL.glEnable(GL.GL_DEPTH_TEST) GL.glUseProgram(0) self._paint_calls += 1 return RenderStats( @@ -687,6 +839,8 @@ class GLRenderer: from OpenGL import GL self.release_parts() + for kind in list(self._overlay_vaos): + self._clear_overlay(kind) for program in self._programs.values(): try: GL.glDeleteProgram(int(program)) diff --git a/apps/studio/src/orisys_studio/scene3d/panel.py b/apps/studio/src/orisys_studio/scene3d/panel.py index 65f958b..7df114f 100644 --- a/apps/studio/src/orisys_studio/scene3d/panel.py +++ b/apps/studio/src/orisys_studio/scene3d/panel.py @@ -222,6 +222,16 @@ class ThreeDPanel(QFrame): self.field_note.setVisible(False) form.addRow(self.field_note) + self.flow_arrows_check = QCheckBox() + self.flow_arrows_check.setChecked(True) + self.flow_arrows_check.toggled.connect(self._emit_settings) + form.addRow(self.flow_arrows_check) + + self.contact_arrow_check = QCheckBox() + self.contact_arrow_check.setChecked(True) + self.contact_arrow_check.toggled.connect(self._emit_settings) + form.addRow(self.contact_arrow_check) + self.scale_label = QLabel() self.scale_combo = QComboBox() self.scale_combo.addItem("fixed", "fixed") @@ -403,6 +413,18 @@ class ThreeDPanel(QFrame): self.deform_check.setChecked(False) finally: self._syncing = False + flow_ok = bool(capabilities and capabilities.flow_arrows_available) + contact_ok = bool(capabilities and capabilities.contact_arrow_available) + self.flow_arrows_check.setEnabled(flow_ok and enabled) + self.contact_arrow_check.setEnabled(contact_ok and enabled) + self.flow_arrows_check.setToolTip( + t("scene3d.flow_arrows_unavailable") if not flow_ok else t("scene3d.flow_arrows_tip") + ) + self.contact_arrow_check.setToolTip( + t("scene3d.contact_arrow_unavailable") + if not contact_ok + else t("scene3d.contact_arrow_tip") + ) def capabilities(self) -> Optional[SceneCapabilities]: return self._capabilities @@ -604,6 +626,8 @@ class ThreeDPanel(QFrame): self.housing_check, self.deform_check, self.gain_spin, + self.flow_arrows_check, + self.contact_arrow_check, self.scale_combo, self.fps_combo, self.reset_button, @@ -635,6 +659,8 @@ class ThreeDPanel(QFrame): index = self.field_combo.findData(str(settings.field)) if index >= 0: self.field_combo.setCurrentIndex(index) + self.flow_arrows_check.setChecked(bool(settings.flow_arrows_enabled)) + self.contact_arrow_check.setChecked(bool(settings.contact_arrow_enabled)) scale = settings.color_scale if scale is not None: index = self.scale_combo.findData(str(scale.mode)) @@ -678,6 +704,8 @@ class ThreeDPanel(QFrame): housing_visible=self.housing_check.isChecked(), max_fps=int(self.fps_combo.currentData()), field=self.field(), + flow_arrows_enabled=bool(self.flow_arrows_check.isChecked()), + contact_arrow_enabled=bool(self.contact_arrow_check.isChecked()), ) # ------------------------------------------------------------------ signals @@ -730,6 +758,8 @@ class ThreeDPanel(QFrame): self.field_combo.setItemText(0, t("scene3d.field_depth")) self.field_combo.setItemText(1, t("scene3d.field_flow")) self._render_field_note() + self.flow_arrows_check.setText(t("scene3d.flow_arrows")) + self.contact_arrow_check.setText(t("scene3d.contact_arrow")) self.scale_label.setText(t("scene3d.scale")) self.range_label.setText(t("scene3d.scale_range")) self.range_label.setToolTip(t("scene3d.scale_range_tip")) diff --git a/apps/studio/src/orisys_studio/scene3d/prefs.py b/apps/studio/src/orisys_studio/scene3d/prefs.py index 0501706..b7041b0 100644 --- a/apps/studio/src/orisys_studio/scene3d/prefs.py +++ b/apps/studio/src/orisys_studio/scene3d/prefs.py @@ -80,6 +80,12 @@ def settings_to_prefs(settings: DisplaySettings) -> dict[str, Any]: "housing_visible": bool(settings.housing_visible), "max_fps": int(settings.max_fps), "field": str(settings.field), + "flow_arrows_enabled": bool(settings.flow_arrows_enabled), + "contact_arrow_enabled": bool(settings.contact_arrow_enabled), + "flow_on_px": float(settings.flow_on_px), + "flow_off_px": float(settings.flow_off_px), + "flow_grid_spacing": int(settings.flow_grid_spacing), + "max_arrows": int(settings.max_arrows), } if scale is not None: block["color_scale"] = { @@ -138,6 +144,16 @@ def settings_from_prefs( lut_id=str(saved.get("lut_id") or "sequential"), mode=mode, # type: ignore[arg-type] ) + flow_on = max(0.0, _number(raw.get("flow_on_px"), 0.4)) + flow_off = max(0.0, _number(raw.get("flow_off_px"), 0.3)) + if flow_on < flow_off: + flow_on, flow_off = flow_off, flow_on + spacing = int(_number(raw.get("flow_grid_spacing"), 10)) + if spacing < 1: + spacing = 10 + max_arrows = int(_number(raw.get("max_arrows"), 400)) + if max_arrows < 1: + max_arrows = 400 return DisplaySettings( display_gain=gain, deform_enabled=_flag(raw.get("deform_enabled"), False), @@ -145,4 +161,10 @@ def settings_from_prefs( housing_visible=_flag(raw.get("housing_visible"), True), max_fps=max_fps, field=field, + flow_arrows_enabled=_flag(raw.get("flow_arrows_enabled"), True), + contact_arrow_enabled=_flag(raw.get("contact_arrow_enabled"), True), + flow_on_px=flow_on, + flow_off_px=flow_off, + flow_grid_spacing=spacing, + max_arrows=max_arrows, ) diff --git a/apps/studio/src/orisys_studio/scene3d/view.py b/apps/studio/src/orisys_studio/scene3d/view.py index 51d7ed0..e52886b 100644 --- a/apps/studio/src/orisys_studio/scene3d/view.py +++ b/apps/studio/src/orisys_studio/scene3d/view.py @@ -415,8 +415,10 @@ class Scene3DView(QWidget): """ adapter = self._adapter descriptor = self._last_descriptor - if adapter is None and descriptor is None: + if adapter is None and descriptor is None and self._assets is None: return None + mapping = getattr(self._assets, "surface_mapping", None) if self._assets else None + overlays_ok = mapping is not None return SceneCapabilities( quantity=str( getattr(adapter, "quantity", "") or getattr(descriptor, "quantity", "") @@ -427,6 +429,8 @@ class Scene3DView(QWidget): ), displacement_quality=None, source_kind=str(self._source_kind), + flow_arrows_available=overlays_ok, + contact_arrow_available=overlays_ok, ) def _publish_capabilities(self) -> None: diff --git a/apps/studio/src/orisys_studio/ui/force_plots.py b/apps/studio/src/orisys_studio/ui/force_plots.py index 6a72b17..ca2564d 100644 --- a/apps/studio/src/orisys_studio/ui/force_plots.py +++ b/apps/studio/src/orisys_studio/ui/force_plots.py @@ -18,6 +18,7 @@ from PyQt5.QtWidgets import ( from orisys_app_shared.acquisition.constants import FORCE_SAMPLE_RATE_HZ from orisys_app_shared.force import MetricHistory from orisys_app_shared.force.history import DEFAULT_MAX_FPS +from orisys_app_shared.force.presentation import ForcePresentation from orisys_app_shared.force.source import StoreCurveSource from orisys_app_shared.i18n import t from orisys_app_shared.theme import color @@ -70,8 +71,12 @@ def _nice_ticks(lo: float, hi: float, count: int = 5) -> list[tuple[float, str]] return [(lo + i * step, f"{(lo + i * step):g}") for i in range(count)] -def format_force(value: float, unit: str) -> str: +def format_force( + value: float, unit: str, *, presentation: ForcePresentation | None = None +) -> str: """Render one force reading for the value cards.""" + if presentation is not None: + return presentation.format_force(value, unit=unit) if unit == "N": return f"{value:.3f}" return f"{value:.1f}" @@ -137,6 +142,11 @@ class ForcePlotsPanel(QFrame): self._last_values: tuple[float, float, float] = (0.0, 0.0, 0.0) #: Per axis: does ``_last_values`` hold a real value in the active unit? self._available: tuple[bool, bool, bool] = (True, True, True) + #: Display-only baseline / deadband for Finger raw value cards. + self.presentation = ForcePresentation(enabled=False) + self._sensor_type = "box" + self._display_values: tuple[float, float, float] = (0.0, 0.0, 0.0) + self._display_suppressed: tuple[bool, bool, bool] = (False, False, False) # -- browsing state ------------------------------------------------- #: Where the curves read from: the in-memory session store here, a #: recording on disk in the replay. One interface either way. @@ -484,7 +494,9 @@ class ForcePlotsPanel(QFrame): self.history.reset() self._clear_curves() self._last_values = (0.0, 0.0, 0.0) + self._display_values = (0.0, 0.0, 0.0) self._available = (True, True, True) + self.presentation.reset_session(unit=self._unit) self._unit = "raw" self._mode = "follow" self._window = (0.0, 0.0) @@ -500,6 +512,49 @@ class ForcePlotsPanel(QFrame): self._apply_axis_mode() self._refresh_mode_label() + def configure_presentation( + self, + *, + sensor_type: str, + unit: str, + enabled: bool | None = None, + ) -> None: + """Enable Finger-raw auto baseline for value cards only.""" + self._sensor_type = str(sensor_type or "box") + use = ( + bool(enabled) + if enabled is not None + else (self._sensor_type == "finger" and unit != "N") + ) + self.presentation.enabled = use + self.presentation.reset_session(unit=unit) + + def request_presentation_reestimate(self) -> None: + """Restart the idle baseline window (display cards only).""" + self.presentation.request_reestimate() + self._display_values = self._last_values + self._render_value_cards() + + def observe_for_baseline( + self, + values: tuple[float, float, float], + *, + t_rel_s: float, + valid: bool = True, + flow_p95: float | None = None, + contact_found: bool = False, + ) -> None: + """Feed the startup estimator; curves keep the raw measurement.""" + if not self.presentation.enabled: + return + self.presentation.observe( + values, + t_rel_s=t_rel_s, + valid=valid, + flow_p95=flow_p95, + contact_found=contact_found, + ) + def push( self, t_rel_s: float, @@ -509,6 +564,9 @@ class ForcePlotsPanel(QFrame): *, unit: str = "raw", available: tuple[bool, bool, bool] | None = None, + flow_p95: float | None = None, + contact_found: bool = False, + forces_valid: bool = True, ) -> None: """Append one live sample. @@ -532,6 +590,18 @@ class ForcePlotsPanel(QFrame): self._last_values = (float(fn), float(fx), float(fy)) if available is not None: self._available = tuple(bool(flag) for flag in available) + self.observe_for_baseline( + self._last_values, + t_rel_s=float(t_rel_s), + valid=bool(forces_valid), + flow_p95=flow_p95, + contact_found=contact_found, + ) + displayed = self.presentation.accept( + self._last_values, unit=unit, available=self._available + ) + self._display_values = displayed.values + self._display_suppressed = displayed.suppressed if unit != self._unit: # A unit change mid-stream is a *switch*, never a reinterpretation: # the buffered values were measured in the old unit and must not be @@ -1182,6 +1252,8 @@ class ForcePlotsPanel(QFrame): peak = float(selecting.peaks[index]) available = bool(np.isfinite(peak)) value = peak + elif self.presentation.enabled and self.presentation.ready: + value = self._display_values[index] if not available: # An axis with no curve in this unit: a dash, never a raw count # presented as a newton value. @@ -1192,14 +1264,30 @@ class ForcePlotsPanel(QFrame): t("chart.value_unavailable_tip", channel=CHANNEL_LABELS[index]) ) continue - value_label.setText(fmt.format(value=value)) - value_label.setToolTip( - t("chart.selection_peak_tip") if selecting is not None else "" + value_label.setText( + format_force(value, self._unit, presentation=self.presentation) + if selecting is None + else fmt.format(value=value) ) + tip = t("chart.selection_peak_tip") if selecting is not None else "" + zero_zone = ( + selecting is None + and self.presentation.enabled + and self.presentation.ready + and abs(float(value)) == 0.0 + and index < len(self._display_suppressed) + and self._display_suppressed[index] + ) + if zero_zone: + tip = t("chart.zero_zone_tip") + value_label.setToolTip(tip) unit_label.setText(unit_display(self._unit)) - detail_label.setText( - self._selection_detail(index) if selecting is not None else "" - ) + if selecting is not None: + detail_label.setText(self._selection_detail(index)) + elif zero_zone: + detail_label.setText(t("chart.zero_zone")) + else: + detail_label.setText("") self.unit_badge.setText(unit_display(self._unit)) def _selection_detail(self, index: int) -> str: diff --git a/apps/studio/tests/test_scene3d_overlays.py b/apps/studio/tests/test_scene3d_overlays.py new file mode 100644 index 0000000..090b82b --- /dev/null +++ b/apps/studio/tests/test_scene3d_overlays.py @@ -0,0 +1,115 @@ +"""Composer overlays and 2D/3D sample-point parity.""" + +from __future__ import annotations + +import numpy as np + +from orisys_app_shared.acquisition.arrows import _policy_from_style +from orisys_app_shared.scene3d.composer import SceneComposer +from orisys_app_shared.scene3d.contracts import ( + DisplaySettings, + FieldDescriptor, + SurfaceFieldFrame, + freeze, +) +from orisys_app_shared.scene3d.synthetic import poc_identity, poc_scene +from orisys_app_shared.scene3d.visual_policy import VisualPolicy, select_flow_samples + + +def _depth_frame(assets, *, flow=None, contact_xy=None, fn=0.0): + h, w = assets.shape_hw + scalar = freeze(np.zeros((h, w), dtype=np.float32), dtype=np.float32) + valid = freeze(np.ones((h, w), dtype=bool), dtype=np.bool_) + flow_uv = None if flow is None else freeze(np.asarray(flow, dtype=np.float32), dtype=np.float32) + flow_mask = None if flow is None else freeze(np.asarray(valid, dtype=bool).copy(), dtype=np.bool_) + found = contact_xy is not None + return SurfaceFieldFrame( + identity=poc_identity(), + geometry_id=assets.geometry_id, + field_domain_id=assets.field_domain_id, + scalar=scalar, + valid=valid, + scalar_descriptor=FieldDescriptor( + "depth_response", "1", "approximate", False + ), + computed_frame_id=0, + flow_uv=flow_uv, + flow_valid_mask=flow_mask, + contact_uv_xy=None if contact_xy is None else tuple(contact_xy), + contact_found=found, + contact_valid=found, + contact_fn=float(fn), + ) + + +def test_composer_builds_overlays_when_mapping_present() -> None: + assets = poc_scene() + h, w = assets.shape_hw + flow = np.zeros((h, w, 2), dtype=np.float32) + flow[1, 1] = (0.9, 0.0) + frame = _depth_frame(assets, flow=flow, contact_xy=(1.0, 1.0), fn=800.0) + composed = SceneComposer().compose( + assets, + frame, + DisplaySettings( + flow_arrows_enabled=True, + contact_arrow_enabled=True, + flow_grid_spacing=1, + flow_on_px=0.4, + flow_off_px=0.3, + max_arrows=50, + ), + ) + assert composed.flow_arrows is not None + assert composed.flow_arrows.origins.shape[0] >= 1 + assert composed.contact_arrow is not None + assert composed.contact_arrow.origins.shape[0] == 1 + + +def test_composer_hides_overlays_when_disabled() -> None: + assets = poc_scene() + h, w = assets.shape_hw + flow = np.zeros((h, w, 2), dtype=np.float32) + flow[1, 1] = (0.9, 0.0) + frame = _depth_frame(assets, flow=flow, contact_xy=(1.0, 1.0), fn=800.0) + composed = SceneComposer().compose( + assets, + frame, + DisplaySettings(flow_arrows_enabled=False, contact_arrow_enabled=False), + ) + assert composed.flow_arrows is None + assert composed.contact_arrow is None + + +def test_2d_3d_flow_sample_points_match() -> None: + assets = poc_scene() + h, w = assets.shape_hw + flow = np.zeros((h, w, 2), dtype=np.float64) + flow[1, 1] = (0.7, 0.2) + mask = np.ones((h, w), dtype=bool) + settings = DisplaySettings( + flow_on_px=0.4, + flow_off_px=0.3, + flow_grid_spacing=1, + max_arrows=50, + ) + policy_3d = _policy_from_style( + "finger", + flow_on_px=settings.flow_on_px, + flow_off_px=settings.flow_off_px, + flow_grid_spacing=settings.flow_grid_spacing, + max_arrows=settings.max_arrows, + ) + policy_shared = VisualPolicy( + flow_on_px=settings.flow_on_px, + flow_off_px=settings.flow_off_px, + flow_grid_spacing=settings.flow_grid_spacing, + max_arrows=settings.max_arrows, + flow_edge_margin=0, + ).normalised() + samples_2d = select_flow_samples(flow, mask, policy_shared) + samples_3d = select_flow_samples(flow, mask, policy_shared) + assert list(zip(samples_2d.rows, samples_2d.cols)) == list( + zip(samples_3d.rows, samples_3d.cols) + ) + assert policy_3d.flow_on_px == settings.flow_on_px diff --git a/apps/studio/tests/test_scene3d_view.py b/apps/studio/tests/test_scene3d_view.py index 8784fcc..495f43a 100644 --- a/apps/studio/tests/test_scene3d_view.py +++ b/apps/studio/tests/test_scene3d_view.py @@ -433,6 +433,12 @@ def test_the_display_settings_round_trip(): deform_enabled=True, housing_visible=False, max_fps=60, + flow_arrows_enabled=False, + contact_arrow_enabled=True, + flow_on_px=0.55, + flow_off_px=0.35, + flow_grid_spacing=12, + max_arrows=250, color_scale=ColorScale( descriptor=FieldDescriptor("flow_magnitude", "px", "approximate", False), lower=0.25, @@ -446,6 +452,12 @@ def test_the_display_settings_round_trip(): assert restored.deform_enabled is True assert restored.housing_visible is False assert restored.max_fps == 60 + assert restored.flow_arrows_enabled is False + assert restored.contact_arrow_enabled is True + assert restored.flow_on_px == 0.55 + assert restored.flow_off_px == 0.35 + assert restored.flow_grid_spacing == 12 + assert restored.max_arrows == 250 assert restored.color_scale is not None assert (restored.color_scale.lower, restored.color_scale.upper) == (0.25, 4.5) assert restored.color_scale.mode == "fixed" diff --git a/build/README.md b/build/README.md index dce2bfc..bff14d8 100644 --- a/build/README.md +++ b/build/README.md @@ -3,6 +3,11 @@ Windows packaging for the studio desktop app: **one provisioning step per machine, then repeatable builds.** +> **AutoCal is not built here.** `apps/autocal` (the internal 5-axis platform +> control app) runs from source and has no PyInstaller spec, deliberately: this +> spec would otherwise have to learn about the ZMotion runtime DLLs, and AutoCal +> must stay out of the customer installer. See `apps/autocal/README.md`. + ## Layout ```text diff --git a/docs/architecture/studio-finger-visual-feedback-plan.md b/docs/architecture/studio-finger-visual-feedback-plan.md new file mode 100644 index 0000000..3cb9a31 --- /dev/null +++ b/docs/architecture/studio-finger-visual-feedback-plan.md @@ -0,0 +1,159 @@ +# Finger 显示一致性与低噪声读数实施方案 + +日期:2026-09-16。检查基线:orisys-app 07d7c3b。本文是实施计划,未修改�行代�;未连接实机,未验�目标 ARM 图形驱动。文中新增接��为建议契约。 + +## 1. 决策 + +�留 Studio 的 QOpenGLWidget/PyOpenGL,移�旧示例的视觉计算和交互:深度热图�表�光�箭头�黄色接触法�箭头�相机和�光预设。旧 Open3D 界��留作对照工具。先�明�一输入能产生相�的接触区域�箭头和色标,�优化画质。 + +旧效果的主�实现�在 finger_pipeline_3dview.py 入�,而在 examples/viz/contact_arrow.py�flow_arrow.py�offscreen_mesh.py,以� src/orisys/finger/mesh.py。几何计算大部分使用 NumPy;Open3D 部分负责网格对象�渲染和窗�。因此无需把整个旧 UI 移入 Studio。 + +如近期必须��桌�演示,�采用�独�选的 Open3D 进程,通过有界最新帧通�返回 RGB,Qt 显示图�并转�相机�作。旧 OffscreenFingerMeshRenderer 已有 RGB 输出接�,但还�处�进程生命周期�帧身份�超时��制�本和平�支�。这是备选过渡方案,�作为默认 ARM �布�赖;��直接跨平�嵌入原生窗��柄。 + +Open3D 官方 ARM 支��标为实验性,Linux OpenGL ES 的 Visualizer/GUI �支�。现代渲染路径还�求 OpenGL 4.1;此�求��无差别套到 legacy Visualizer。Jetson Orin Nano�QCS6490 都�按实际 Ubuntu/BSP/桌�环境分别验�,�能��� CPU 架构推断�用性。 + +�考:https://www.open3d.org/docs/release/arm.html ,https://www.open3d.org/docs/release/tutorial/visualization/cpu_rendering.html + +## 2. 已确认的差异与待验�事项 + +|问题|代���|处�| +|---|---|---| +|箭头�应而三维�明显|scene3d/adapters.py 的 FingerFrameAdapter 默认 depth;二维 arrows.py 使用 flow,Finger 阈值 0.4�间� 10。旧二维间� 20�阈值也为 0.4|�能认定��度�高�自阈值�低;先比较相�数��网格密度�显示缩放和算法�置| +|三维看起��动|当� adapter 明确�输出 displacement;�原��色|区分颜色�光�箭头与几何形�。先���两者;几何形��以“相对形�示��实现| +|旧热图对比明显|SDK scalar_map_vertex_colors 对活动顶点采用�帧 P5/P95 范围|增加探索用稳�自动范围,以�比较用固定范围;始终显示实际范围| +|黄色箭头消失|旧 ContactArrowOverlay.compute 使用 centroid�局部法��fnormal;当� SdkPacket 没有接触中心字段|补接触观测契约和渲染�加层| +|�止数字跳动|Finger sensor.json 默认中值窗� 1�低通 0;旧 CLI 默认曲线低通 5 Hz;当�数字 raw 一��N 三��数|先核对�行时覆盖设置,�比较滤波;未标定�是噪声的充分解释| +|纯色背景�是手指形状|Studio draw_arrow_display 将整个矩形填�色;旧 _arrow_background 用 valid_mask 区分内外颜色|用有效 UV 掩膜绘制轮廓,箭头使用�一�标域| +|�能��帧/过期字段|三维已有字段有效性与 frame_id 检查;AppWindow._render_run_image 构造 ImageFrame 未传入 flow_valid/depth_valid 等信�|二维补�等有效性;记录两视图呈现帧�,区分延迟与���| + +没有硬件录制输入,尚�能确定“深度无�应�是深度算法输出��色标压缩�场失效或呈现延迟。检查 process_chain:Studio 使用 check_motion=False;旧 pipeline 使用 check_motion=True, threshold=0。对照实验�固定这类�数,�能把算法差异归因于渲染库。 + +## 3. 数��与模�边界 + +```text +SDK �帧计算 + → SdkPacket(测�值�UV 域�字段有效性�接触中心�帧身份) + ├─ 现有完整记录通� + ├─ 现有全程力历� + └─ Finger 展示构建器(有界最新帧通�) + → �帧 VisualBundle + ├─ 二维背景/箭头 + ├─ 三维标�/箭头几何 → GL + └─ 接触状�与诊断 + +力历� → ForcePresentation → 曲线显示副本/数字� +``` + +测��展示政策�渲染�端���赖。Qt/GL �进入 SDK;SDK �导入 examples;shared �导入 Studio。旧 NumPy 几何函数��到正�模�并让旧示例�用,�止 Studio 通过 sys.path 导入 examples。 + +先扩展现有 contracts�adapters�composer,��建第二套设备/会�/回放系统。新增模�按责任�并为 visual_policy.py�overlays.py�force/presentation.py;�有实时�步需�时�增加 visual_presenter.py。文件数�是主�指标,修改阈值�应�求�时修改 worker�GL shader 和 app_window。 + +### 帧和有效性 + +�用 FrameIdentity,传播 source/session/generation/frame/time。新增字段接入已有数�类时使用�选值和兼容默认值;旧录制缺少接触信�时�伪造黄色箭头。 + +- `ContactObservation`: `centroid_uv_xy: tuple[float,float] | None`�`found: bool`�`valid: bool`�`frame_id: int`�`domain_id: str`。中心��是 UV �素,顺� x,y。 +- `VisualBundle`: identity�image_frame�surface_frame�contact�overlay_instances�policy_revision。�个数组须是���快照或有明确所有�;�能引用 SDK 下一帧会覆写的缓冲。 +- `ArrowInstances`: origins[M,3]�directions[M,3]�lengths[M]�colors[M,4]�kind。�置与长度在 scene 的统一�标��下,方�归一化,数组有�且 M 有上�。 +- 字段无效/过期���对应层;有深度无力时��显示深度,没有有效 FN 时��法�强弱箭头。无效�等于 0。 + +默认实时��低延迟,�让三维阻塞采集/记录。增加“�步比较�模�:�一 bundle 的二维和三维�准备完��,在�一个 GUI 更新周期�交;�留至多一个工作中任务和一个最新等待帧,整体跳过中间展示帧。曲线�存全�,比较游标和数字� bundle 对应时间。�能宣称�� QWidget 在物�显示扫�上严格原��步。 + +## 4. 阈值与空间一致性 + +��设置一个数值�时作用于 flow(px)�depth_response(相对值)�force(raw/N)。统一的是�置入��帧身份�空间域和视觉规则。 + +`VisualPolicy` � flow_on_px/flow_off_px�depth_on/depth_off�色标策略�箭头网格间��长度上��接触箭头样�。on > off 构�迟滞。数值由无载样本�轻触检出实验确定,�照���设备的�数。 + +三维光�箭头与二维光�箭头共享�一 flow 阈值和采样点。深度色彩�留自己的有效区�阈值;轻微切�滑动�能�有光��应,�应为了“�步�伪造深度。也�应以深度掩膜�掉所有切��应。 + +几何有效区�纹�有效区�接触区分开: + +- geometry_mask:UV 映射有效且对应真实传感表�。 +- texture_roi:确实需�排除无纹�边缘时,离线指定/人工确认并�几何资产版本�存。 +- display_mask = geometry_mask ∩ texture_roi(无 texture_roi 时仅 geometry_mask)。 +- contact_mask:�帧�化,�决定接触相关�加,�改���手指轮廓。 + +�止�帧通过�黑�白 RGB 判定有效区;光照�黑色标记��光会改�它。掩膜形状或 domain �匹�应报错,�通过任� resize 掩盖问题。绘制纯色背景时分别设置内外颜色;箭头端点也�到有效区。UV 翻转��剪�缩放�在明确的域转�处�一次,�加显示边界以供验收。 + +## 5. 三维效果�� + +1. 表�热图:探索模�以有效活动值的稳�分�范围增强对比,设置最低色标跨度,缓慢更新范围;空场��基底色。对比模��定范围。��默认用�帧��噪声铺满色谱。 +2. 表�光�箭头:�用旧 flow_arrow 的采样与映射语义;�版��相�点集和尺度。若�改�切�映射,须�独验收。原点加��法��移��闪�。 +3. 黄色法�箭头:��旧接触中心�局部法�,长度按 FN 的对数/幂律显示映射并�幅;注明“法��应示��,�声称长度线性对应牛顿。中心�在无效区时��,�无�件�附到远处顶点。 +4. 三轴�力箭头是�续独立功能:�有统一轴定义�标定比例�力的�考�标系�到 scene 的旋转确认��生�。�能直接把未标定 FN/FX/FY 当�空间三维��。 +5. 外壳����中性色,�给传感表��色;�标轴�相机�光照预设��用旧版设计。 + +GL �版用缓存圆柱/圆锥模�和�帧实例�数;也�用有�数�箭头�并网格,先测性能�引入 instancing。���帧新建数百个 Python/OpenGL 网格对象。��三维时�组�和上传。 + +## 6. 数值稳定�零漂与曲线 + +先记录实际生效的 SDK FilterSettings。滤波�由一个层负责,沿用现有 worker 下� SDK 的路径;shared ForceFilterChain 当�是对照实现,�应�在 UI 加一�。 + +�用旧版 5 Hz 作为 A/B 起点,而�固定验收�数;截止频率必须低于实际采样率的一�,并测试短促接触峰值和延迟。中值窗�大于 1 仅在确认脉冲异常时�用。 + +区分四件事: + +- 滤波:�少高频噪声,存在延迟。 +- 无载归零:在用户确认无载�采样有效且稳定的窗�估计�置,冻结到本次会�。慢漂�能�固定死区无�修正;��在�续�载时自动追零。 +- 显示死区:�作用于展示副本;正负对称�带迟滞,�截掉负 FN。raw/N �自�存阈值和�置版本。切���/标定/设备/滤波时�置或�新验�政策。 +- 数字格�:优先按噪声分辨率�化和稳定的�数�;raw �起步 3–4 �有效数字或整数步长,N �标定分辨率确定。固定宽度等宽数字,数字���到 5–10 Hz,曲线�用完整时间�列。处�负零� NaN。 + +死区阈值�从无载残差的 MAD/分�数估计,必须给出噪声窗����和适用�置。展示 0 时显示“零区�标识,�查看未抑制值。曲线默认显示滤波�的连续信�和淡色零区带;“零区压平�是明确开关,�建议默认把真实弱信�压没。 + +选区统计和导出使用测��列,�能统计数字��化值;如支�展示信�统计,必须�行命�。核实 SDK raw 通�到底是滤波�还是仅标定�,�把现有 raw 列宣传�未滤波原始�。所有新增展示政策�回写现有记录值;政策/归零�更写带时间的事件和版本以便回放解释。 + +## 7. 文件�函数修改清� + +以下路径以仓库根为起点。existing 表示改现有函数,new 表示建议新增接�;详细输入/输出规则�上文。 + +|路径|接�|�责�输入输出| +|---|---|---| +|orisys-app/shared/src/orisys_app_shared/acquisition/models.py|SdkPacket(existing)|增加�选 ContactObservation;帧字段与 UV 域一致| +|�目录 finger_worker.py|采集循环构造 SdkPacket 处(existing)|在 compute_contact �读中心� found;读失败标记��用,�制��布,�能由 UI �新计算 SDK| +|�目录 image_backend.py|ImageFrame�plan_image�render_image(existing)|�带�字段有效性与身份;失效箭头/深度显示��用| +|�目录 arrows.py|draw_arrow_display(existing)|增加 policy/内外色�数;背景�采样点和箭头�剪共用 domain_mask| +|orisys-app/shared/src/orisys_app_shared/scene3d/visual_policy.py(new)|VisualPolicy; build_domain_mask(geometry_mask, texture_roi) -> bool[H,W]; select_flow_samples(flow, mask, policy) -> UVSamples|无 Qt/GL;严格检查形状�有�值和域;采样点两视图共用| +|�目录 overlays.py(new)|build_flow_overlay(samples, surface_mapping, style) -> ArrowInstances; build_normal_overlay(contact, fn, surface_mapping, style) -> ArrowInstances|�� NumPy 几何;无接触/无有效力返回零实例,�法�标返回诊断| +|�目录 contracts.py|SurfaceFieldFrame�RenderFrame(existing)|扩展�选��/接触/箭头��述信�,��无 overlay 的旧调用兼容| +|�目录 composer.py|SceneComposer.compose(existing)|构建�帧表�和�加;缓存��映射/法�/模�,�读 SDK| +|orisys-app/apps/studio/src/orisys_studio/scene3d/adapters.py|FingerFrameAdapter.snapshot(existing)|�时验�需�的 flow/depth/contact 身份;选择上色场�应删除箭头所需 flow;�留显��级�示| +|�目录 gl_backend.py|现有上传/绘制/资�释放路径(existing)|上传 ArrowInstances 或�并网格;�有此层�赖 GL;�上下文�建资�| +|�目录 view.py�coordinator.py|submit_packet�tick(existing)|�带 bundle 身份与策略版本;过期结果�覆盖新设置,�供已呈现帧�| +|�目录 panel.py|ThreeDPanel(existing)|上色��光�箭头�接触法�箭头�固定/自动色标;诊断折�| +|orisys-app/shared/src/orisys_app_shared/force/presentation.py(new)|ForcePresentation.configure(policy) -> None; accept(sample) -> DisplayForce; fit_zero(samples, context) -> ZeroEstimate; format_force(value, resolution, unit) -> str|独立展示状�;fit_zero ���应用,返回�置/噪声/样本数/质�;accept �修改 sample| +|orisys-app/apps/studio/src/orisys_studio/ui/force_plots.py|format_force�_render_value_cards �曲线展示入�(existing)|统一调用展示模型;删除两处��格�规则;历�/导出��化;选区统计明确�径| +|orisys-app/apps/studio/src/orisys_studio/app_window.py|_render_run_image�_show_image_frame(existing)|仅路由字段和政策,�加入阈值�滤波�中心计算算法| +|orisys-sdk/examples/viz/contact_arrow.py�flow_arrow.py|compute/几何构建函数(reference)|作为金标准验�移�;��制 Open3D 生命周期到 Studio| + +`ForcePresentation` 状�按设备/SN�session����calibration revision�filter revision 分开。历��机 seek �得从上一 seek 的迟滞状�继续:从记录的政策边界和足够�导样本�放,或选择无状�死区并明确模�。事件�能混入常规力 CSV 数值列。 + +## 8. 顺�与验收 + +### A:先建立�比较输入,修正误导 + +用�一原视频��置��始化/预热步骤�SDK 版本分别驱动旧/新界�;最好�获一次中间场 bundle �供两套渲染器消费,排除算法与滤波差异。记录 flow/depth 范围�有效比例�中心�原始/输出力�实际滤波�数�帧�和呈现时间。 + +先交付 UV 轮廓�二维有效性�实际色标�集中数字格��噪声诊断。这一阶段��渲染器,也�引入全局阈值。 + +### B:��旧版关键视觉 + +交付�� 2D/3D 光�箭头�黄色法�箭头�相机/�光;先 CPU 几何对比,�检查 GL 图�。UI 将三维画布作为主体,设置折�;三维上色默认深度�应,�加光�方�以解释切�滑动。�供二维/三维切�和并排诊断。 + +### C:显示抑制与�步比较 + +交付无载评估�显示死区�零区带�数字�刷新率��步比较模��对应政策事件。先按实验数�选择阈值,�考虑产�预设“��/稳定�;�留明确的�数查看入�。 + +### D:目标�验� + +分别测试 Jetson Orin Nano�QCS6490 实际 GL/ES 上下文�shader�DPI�窗���/���资产�载�长时间显存和内存�关闭中断�30 fps 预算。CPU 组�与 GPU 上传/绘制分别计时,记录 p50/p95 延迟和展示跳帧;硬件实测��承诺帧率。 + +共�验收用例:无载�轻滑�法�压入��续�载�释放�边缘接触�无效帧�断连�切� raw/N�回放 seek。 + +- �帧输入的二维/三维采样点�接触中心�掩膜边界符�几何映射,黄色箭头局部法�正确。 +- 测�记录在开关显示死区/数字精度���值一致;异常�为无效,负值��检查。 +- 稳定模��少�止读数�化,但轻触检出�峰值�差�端到端延迟符�团队事先约定指标;�能�用“看起��跳�验收。 +- 色标自动模���实际上下�;固定模�相�数值���色;空场�被放大�强接触。 +- �步比较 mode 的 frame_id 一致;常规实时 mode 的延迟��且队列有界。 + +工作�按交付拆分评估:背景与数字格�较�;接触字段贯通�箭头几何为中等;�帧比较�回放状�和 ARM 实测为主��确定项。先完� B 的�段录制验�,�估算整体工期。直接加入 Open3D 也需��一组工作,并�自动�掉它们。 diff --git a/pyproject.toml b/pyproject.toml index d11dbdc..e85dfd0 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -5,7 +5,7 @@ build-backend = "setuptools.build_meta" [project] name = "orisys-app" version = "0.1.0" -description = "Orisys desktop applications (studio + future internal)" +description = "Orisys desktop applications (studio + internal autocal)" requires-python = ">=3.10" readme = "README.md" authors = [{ name = "Orisys-Tech" }] @@ -14,6 +14,7 @@ authors = [{ name = "Orisys-Tech" }] dev = [ "orisys-app-shared @ file:./shared", "orisys-studio @ file:./apps/studio", + "orisys-autocal @ file:./apps/autocal", "pytest>=7.4", ] @@ -21,6 +22,6 @@ dev = [ packages = [] [tool.pytest.ini_options] -testpaths = ["shared/tests", "apps/studio/tests"] -pythonpath = ["shared/src", "apps/studio/src"] +testpaths = ["shared/tests", "apps/studio/tests", "apps/autocal/tests"] +pythonpath = ["shared/src", "apps/studio/src", "apps/autocal/src"] addopts = "-q" diff --git a/shared/resources/zmotion/x64/README.md b/shared/resources/zmotion/x64/README.md new file mode 100644 index 0000000..92ae2a4 --- /dev/null +++ b/shared/resources/zmotion/x64/README.md @@ -0,0 +1,42 @@ +# Vendored ZMotion runtime (internal use) + +These files are copied verbatim from the ZMotion SDK that ships with the +controller's `ZDevelop` install, as unpacked from the vendor example bundle: + + D:\orisys_ws\zmotion\Python64\dll库文件\ + +| File | Bytes | SHA-256 (first 16) | +|---|---|---| +| `zauxdll.dll` | 4410880 | `282369258733A0D6` | +| `zmotion.dll` | 3596288 | `30DC519539783EE9` | +| `zauxdll2.h` | 179106 | `BC8788DE71A7900B` | + +`zauxdll2.h` is kept only as the parameter contract of record for the wrappers +in `orisys_app_shared/zmotion/client.py` (register values, argument order, +return codes). It is not loaded at run time. + +## Why they are vendored + +`zmcdll/zauxdllPython.py` in the vendor example resolves its DLLs relative to +its own module location, plus a current-working-directory fallback. That makes +`import` depend on where the process happens to be started from. Copying the +two runtime DLLs next to the app and resolving them explicitly (see +`orisys_app_shared/zmotion/loader.py`) removes that, at the cost of ~8 MB in +the repo. + +## Overriding + +Set `ORISYS_ZMOTION_DLL_DIR` to point at a different directory — for example a +newer controller-support CD — and it wins over this folder: + +```powershell +$env:ORISYS_ZMOTION_DLL_DIR = "D:\Zmotion\bin" +``` + +## Redistribution + +Internal use only. The ZMotion SDK is vendor-supplied hardware support +software with its own terms; these DLLs must **not** be redistributed inside +the customer-facing Orisys Studio installer. AutoCal is a separate, internal +application and is deliberately not packaged by `build/studio` (see +`build/README.md`). diff --git a/shared/resources/zmotion/x64/zauxdll.dll b/shared/resources/zmotion/x64/zauxdll.dll new file mode 100644 index 0000000000000000000000000000000000000000..9f58b76b314f05be79388d8a176b558caf14a572 GIT binary patch literal 4410880 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

5GHCH5yz1R=A63;LTN!=Lw(tVc)XDM@EQmWmt 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�yGsyw^Mc68-c>)+l=V7?#aKVt* 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ⅈo?|4ItZi> z2~VKkJEdPUNl|X!V`K^3empi-fvHXFf!~;YsDM?MD|cNvj9c1Z-nvLU_RS|VYUeo0eQ;A zh?qF@GS>iQUfP9dB+bhl!GKNN(E^(7dtUYe$KB_D-88 zgNb6w0Lz;-^9PBn*eBMkHpeT3iuW#u*kx|`TJ|lNiNjpCzDSj8RjP!=4uj=N(2PY2 zCwZnSmmL0f!sCz+9f-~Qr-_= zsqC(=>X$U7MXGW&LMt+LxLFEO*&wZ_bb~KV5wm)mZu)dZ+_@}+Z8=QKkADzy)*#Kg z@B%vI|9~zztZL=V?CH=^0|kV!n^y@Tz#tO_W8UY?uIvVoS)yXDslf@rp27j~?I;^< zbl+8EOJhb-qGN`W-}nL%oAs!j#39Kua|d~EtkX`(pD@m|()4RQxRgL1zS1FB}gQt$w)rcgW>J(JsCbEa@W?Qu11 ztf7+M2JcVy@g zbS^+XchzbEFqU;VkjY|sd%CZgn|~$i1%nhlu$yj8l8;Rq1$Cx}EUk)Lh;1-A{~P%| zauuc0(+yKa%2ivvvi1sTo#+YKx2re!apLMnVrKq% z;JODhDpgTH#@pX5Z8?wlUjz#bcPmVHlt2fvN0xn_X;wVHC`FLPB~z6y`c z;l=s$6+AY;=L>jaoQ}0JFYdMIa}|JAb1TIe>0ajcE$~R@B2N~p&D<({)B?t*DP{&q z!+Yc7x;rH?zKfVcQpWvCHbmd68WYNYKmiT9o`z6(_!c7KLV3q-!M6eR*M(xM%~@2+ zZ<+lX9=oEaok>P07?X9z=5@r=#if54ZK#^_Rbv zuWHP(93YFw9P5Q|5LSB4Pq{=p5FuUItX347Z1onENL80f+}w)0p`YS%3|@RZ;}zY` zV9S5}HhWgGa2xmPPQnRMX!H;@hqy%MMhc&`=eQz;|0IFpv#?sxu*t(jSy|D`z9qo> zrAvi2mHqk_?2>*+KcSYja6FCJ-Ds{`1Lh;K7m8m=LV{ds5u1rP_cGdpo%WbX#*mU{ z&9K*E1n0fN^Rl3X+x0b<*Ac`r0}iAcC#V+HMu&F~Y#Wr~tTVTCl+>DZYVuIu#0f;A zlzR+0ki{#jw!sJo#W|RqF^FYdXe%FUyV^t>=BZb;{ub#ol|BhvWtZL^#G5bj5!l@r zg#TK3YkotJMB|U}@*?&u+~aB2H285_TsUxgB9{01P*OZEH<(x&Hy5u)(ZYX%HnWlt ze5D}P+smo4TWpdQoTFauXR6GZ)#4&ieZo}ghPv9%D$g;g^(+FqmuFo-RbNofr1grCcIo_G!)x;f%7PI=*ovK#>Q>w~L zynt~&E*CJs$-^zF*IuCzxh(x_n5T8?RGd}pEEcjY6bZe=&l3@QbBC)Rsj8qTf8CtZ z2o_G_ixnrZQ=AMoj?^{Y(d#qw?hLNHf-6aUsX2eG zFy=(4W!p8=_!l(=8bi@iQzUtzu}Sft4z;5bejZejpT%u zTj7NDbJ!+rFA{$`g02uM4W=O{(Mh09Cl|Y&c+FFC-f1QE%E%LajA0Yj<{3_FBesf z>D{`*pMzpNPzb~!m0W0ovJX$6t`YhX(QswQ|HcxwRB`lICw#)0`h}8zMMS7n?LpP} znP)Lu^w=|Y%y~2!m4nd4q7m~aNB6h)WtU4&I*$!VF$C6*a}Zc1UpbZU=Wp;uHvnCB z<(nX%9D?4?F=)(13Bwn6=CI8+Tg^r>;bU2^(!nqSwD$xZ2wmj)4ZJCqgrl_;LEAM} z#GU6R;HU%+at6Q2ol;KWrh@DZ(sUM0a~wq@{58Cvb7nLYt1AlEbqvQk&UjE-m-d(^ z8gokC2fpkQpsW=rHvr|Z%^r{z#0CM;OuRV>R5R_e2_`8M8q6RmjTMh3c|qe(A485pqY|fqG3@2- z;$TjZ#1(BdH9ce^MIt=n5<@7j1VW8vRS4qe6{b{P

I(I02p2x1gLdBXaaHAdf@! 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%0DJBB9vbqJOv9p3Ey!Owp0TiYST(? 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%0Dt1!7d}a$Jwt3(da$bcu}aq+Ca_Q3+`O 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

D5Q=@d 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

Ve4# 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 z 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�`pM6y;5!P4TWQ3H!CbH9pt|1Y6x zJXX_zv*HVk^lSIM8$>PDc`n?CCiZ$R{K>seXL9jNtH)8`0XvQ5<<Rj^(S6V(9$I zlpgx{7oRDbUi$Gwq;|SEp7ACi-297j{bAW)SbB)&fCX%Ig1sD`X9q+s6cp#$WG!G?n7*cis{(Ylej z@KL6|S^D79^O;TFIphOrH*g~UAa}y0bLyCi9k9<}9zF7{^0^0%nLjSFuYSOY>|}Yr z*Xd#)cqcfr&@bbHAz7788SLVF0YBm7AuIRP`AbK&ubuE-ZmC%sG6tE^To+H@s)q%y-U7az3xAc@YF8r4 zYd=a>d#Q72!Rpp~sWbQ$jgW}#P2iVz>v;aHk35ayTxIHY`Z4=JsPz-W9o89`wycvn zX?{x;TsLO>#p(4AruTWxPSYFA^c=i0-;~=l(FcpOEL)<&zw#uVul!|bo9OVxl@svk z;BSP7jXCc9uDQ#c~mM_7hc!?gJXu^&0%0oAo@sjVut?Y3DZ8Uo1 ziz5i>PjDS%&4D00|I?aYgU8td;56p;`?B}!ls1Pg-1@r=Ka0r;d9a-?BO3$cnF7I7 z+ZGcfmQYD!2!1yzt5M}+U6^ERn&smHhRfg<@( zTPs`mm8xJIXh65!18k0`Qn4eYR;P1{_2gR`v$xp)4o*R$H`LWk$IS z{hRaz8nMoMSTb?&1U+=5d-4ZUL-ScPOo(DlVr)_;3chBzik$8C`)&FQGnVApD%xj4&9BjHR7kk!G-#AtdfBI~!w@TwzA;Hc#x zd+Bz)Bp$mW@AC#F8A^-N%W~nXc+Aue*4wN7XHgad>~)}&Ud;RpeH3^!OR(Keu+hp? z_=$6Mj7{by&B!Dt64W2wZvf*}cK-<3Bh)8DB_X~1o8>UqeKm!*pKwz!d#oKLL}ZJr z^>yhvU|)w*HofqM!$~zYl~Quv(1HH>sQM3VWWVoRQdSE5^xDeu=3UBBv1h%}d&BC~ z40?P7-=A#X-)1STp;n!%+^C^+G`J8Kb!tpaT*r7HKL+Rg*Jn46 zv<8?-T!Maj;=1(2^($j>c`UiH34hKe=nBQaHgQv-CYQW|n_K-u+2nC^LqHgr*m{%4 z1U=R{g2=?;`az;y6T^?Gqpkj%Y*_;gOMvs`1#!cB@@2?IK|u0 zk(Zl;r4F4tYVsdqsxo151U+R>?VhTXYz7KaDF7X3$`#mmH0ms4zB*6-EuA4BS{U2Z zH~?I4U(yTuad`eX?6NRWNd@R1>ws*WAy{zv^O*8s8dQYsU~vJ>wgId3M6Qw6!o_Ms znk5@Sn#RmRTZv4JXX3sAepT@UXLb)nQ{sql?JC7c}Ssng2zh(=7u2&^y!n!mOtX8ZgP(k9k@EaH#R3!kb z;`wdu{-`^pQ^A~Pl^eOimLD~nM7Ok%CS(?H%c0PcHm#vy&@_PI3?zo=K-priqW5Uj z4;geX=N4at{MY!0Efk&0q~fu|lGD^P8xl#kbQ^gLG%c8!;Io1vR8~}VCHPNXR!&7$ zP9M^ko>UPO(3)}&=>YQ$A#kI@gki-kBkk*3Oe%z09|m6nzS

4?N4*s;Sz>R+~fq zv&C@LOzHP#fQ?ic2ts6Ah{A4$(NEr3q$4RS#@msUF=jDiaP}BUExAvx79D#h2P`#+Sm*Cn3xr!$FJYKdZ7P^(4Ce`l182@+=8*Jun0a=jo##F1sIS71 z*FRohC`ZO?S0sizj&d`26lbSdi5G~R3mg~lO7JL<0Pb)3lQ-qF;F zl|_jtZu5<(X4I6CR`kr#j*({u{rDI@JCV-@&OsvXpuj8{rpD9HlwFA^LK`XFagBqy zf$1+Bw;2Zx`SY47j%cYv$X#l0IG{hP4nJ5KTV9xdfsIpGV>on$yoJz0{6&fD}O(iA`&^jU`6;SWDa5QMY4 z-D;#4x?MUi-s*DXd+KNE5dG{^W9-o~qnS+UjAr&1%U-_UcM0u19k!+L$E3Un}T17EvlE7e<75*dVEo`pI>`lf4E*UQs8zD8zwOf0pFqMl0Rv2SNktK z{8>&lC|CQ>@T;&e?FRg#G;)?-o&?t5e7BZ><0ZfMW1r!+V`tugcAQJja{!ly|B0yy zf$9hvz5|=Kce`=DXHM)?nHk=1oYVi^U?)E0FKsF%htY3;Jla|JFB*ahlE% z=%dyC9iIat9K<7y7v7@P4fx`-_WR_3FJ5yLeV)3+u>@P5k$G+qmneay5yq#V?AUw< zH}BNJ3F@Gqb+ADY>|lS9;03YF5>@X)>)3zuT(=K7*(DP=Giacu_TXDom@tp47k+-I zlwk3=d+rRB;A;O6W}4UfNRh~&)l0E_zw5?=KJ51Fz$~=L#;OtkoV|r`-ISjXetCM!N72@M} zV=H{}sn$le0u0D(h30NsVbtO1-isHx1%c@dc0@B9P#TZ^BQj?}IeEeG>1D$BTOKfH zl`NCqd`%tajf6Km0maR>S{>vLo5t$_Z6UEq^KDjO|2N2Lx2&Z<#8!xpV3%=hjKsDb zR@hL74UdHyI>?}Gj)WSP$F#E)7*8%C0ISu+a1mz*dXgr1uR8);x7B!>I}qCY_L0e4;#5G zheRc-nMDtedq3VL{-prHsw7zo7y`G^tJ{}7nMvtR%I*YKic{5=BjU3c`eUmcMq~!9 z5~<9!F1JZ4;bsWTjXkwJX*|h?LrervVXTdp)n;#}9DaVQsSBmRIlC_iBsD_O#DBQ^ zFz40&zQ5Op*7(;S!(U!SCav+4TnJcuYkZmTbz6ea7K>m)*;reL|A4)FF3u(x`Xnf$ zJH`-%#(Ub)M>g$-Ha2b#XhXyMALEyKE4u1XU^x#hC(vGA+l4ab{#=xifL*Qir|&2b z#k-9=5k1Bd+x?DKr*G9o_)to9fP_Q3zDDbHbWrW#T{jEbs$NgarF{oozA`KNCMCjJ)YbgRaxeK z9dln7+^b-%bK&(cdrfCj-u;KeD`4K8llo%}NGJG$5Bmc%FxJR!J^Tp5p1wciVT(ew z{#d=|H3jq!2XLL}{9XIfTL0H2QXZ0r=AX4};uZ3a?J;lQoNM>r_fZC74o>DTqfP*~ z&@tp4_8+J;TKPgJebfmwglSlZ0h&@{+{@i+UY#xc#<_+pL%i^7`$V+PZc*B?pML`J z*A|w~;mJcZFWhn~`U|_Y(@N&TQ+T=1&LN%!_;>ZpPvYf*E?SV3C}S-x28z0#-;+rx zF(@P%&VxLD1oVx-SnL$g7aeAt^J5}z{prW~&PF!uV&utpmi;I%4-XIIA)$jj)xTT` zyZg-_h&Gn@ML4vyn-=&ARpQMV7ox+SB5zA;K@R{=0vbo)?@mvhN!K!v#?t$4^wddt zJ@w=}w2XM@{BU+0dZ@`N%Vnd-rxACtTjO7NyQ~-6UvvrSGGw zJ3)*HeVLT`JGxbirj`DCV}N91=0Wi;GUxrj_Yxk5+B#6*8om4EAFt0$@1>gWtxn^{ zm};W#JW}aLhXT{)hr}4RLNuWU#j85}H@PDzbS&?tCeNeWChl9|Cgl1&^IA|nu$sYx z)uGl0O;dzMI{bk@WeIifUQoP|q8S#cxtR+pU8w{ih!{1;F%$(jaC~&42L!3AY;g^L zaEKP8!#~dkkvPd61+)lsBU*$1gVs>e;TYpEMDsL3C?lTZ_~fnDM687I)gxD%BszUhukE(=LM$0`5Z;KHvHQd&GEstt&G%WHsb!lH`3^Yh7d#1Xb2G>pI5=LrGM}v@ zO~Emn{HGpsZ@W|y_bBf~3W7I3Q&$q{?x`2PrCb`c#QV~WzB2KS&Tr#Qiw3c=KwQO{ zPcA%>mtlf?inmdy(ccf`>fDD>Al4*jByg`O9m8#_;A+P%JsRyEys?$OcQ?=pR%FN zMF@dNzo`%+t?|R?abV28jEVy0ZVsDlDXySlkOi>DfBIJ%OE4j!TP{4#sY8f_KJ}=` z6+kqPXs#QFXjL=|^kONzh!)N9yJ?NF4;7vI3LO?|IUG7HbT2z}$QpAl0M|K|Ua*^% zV$yoMpoaAofZ(hE1jRpcAm}Lb!7^2OMH!|-V1D@(Ez5vcYwEWbb2hx3LNHaq<$eeYYJHiZ!A zGBP{wR}|txrF+u1LpcA36ff1l+P;koJnp%HIv>e7L-^ctzjdGy<6O(<8f%tnzN*C} zec=Y_3!Q)FfnU$YYdy?cu4`x{T+a+D zKLC8(xInrFWep#YbBApm$>ErW#`LD_uVs_f`1xR3ezabt-F;i~v^vS$Jwb?`*X0p= z5ahk+S2|Y~J~c@i(WG41hf8ufKJQv@_m`iHt{@wYLZw2GAHIXM&Xf+mL@wU?%Bg{M zJ)5-t7WFh;0&Ueu=T@IfDnW-F;iDV8GZE#4{0GH`GQfS9iV=1&Z#j<0?_)st0qZoF zseU}UO-}UW6T#@+A>pPR^yxVnEmtNqym*)vf~w1n<^Ta0 zyI}5~-X1)quDHhJkGc()_+PjvkG4ITtgf&5v#}E(9@s-ut<&>)Z9#9H^9+$cDTcS& zKW8q9(46!TWd~TBY&yZE4i@QhJk8KnM2Wk^b`TO|fo8);D91!;Tdc*Pk^2Iqn^s%d z-J_XGJ%RiQcDApqbQc13b9=}jx8X*cTU!-?Q9bBP>6I4;3*>-#e24SGxBL73&-*!V zW#?54UkLbYqc@o)dMnXn-)LX}c~$S{`!R^`{@PaR|1owZ;89j*-w%X91mZ+x0C9_o zibib|ZHW=hKmrp1j}N=fG|EC)LM5fSZlS5mDVmSuQh;55CmKS zSFGC;1{F6JxA}hm`#jIg5YhL$F38NBeYwxQpZjQL9sb+XCAbvYpm~a%8E03~xq&n? z4jOA&XsF-+<8Q@#Unj2q>sCl;%Tjzh!q_SO4%_B6uu9bk>xu}p%3_D`U{p%9BtY0Ul}{P6|N;bBQ*nr&e}O9_(L}Ow_MzV z#vH(`v|b(=iqbOugnYe8Vy=Wr)-}{HUU@BoL z!E8$CF_Oz$MxNlyfb+?qy|;-sWm`?`@ak}7=l9ggLO*{#Q%8_5d(LpDpEjh?s9CGW3eQpa{u3w&K*2ikDy)! zO+}=H_U~i{>=4Vn#{XMCwI`H&m6{)sYo6k)VXI7Indm8M2?20n=OskA3dER(QfUZp ze&3Ov39KSlFhx7^Nl#WUT!!#QH+|L3%h2S2>#qqEB_Nh+s?wz?@v5^*Jai)M5<*hm zLePSNJ`uf;L`SgZ&w&3;LJ37nrxY4`zYWeId7A)Ogc}_ z_W7QiZ8tx>6)R@H#ZRr^irMx7$#o`x(9bDV)W`0UY>X42plzvo^UwL;?d)#g>v?x0 zyAQ=H8#f>$ukIvX_q?X>N{A6epn}b)CLJI4VHpWypV2iDjOssX|j0`PFyWE?p^^!`y`C z9FiNx2#CLIod+H^?G%9jAqmHoJ=Jz9df`3?P>DAv=vI7-ERJq3P9w*E2HI*Yl(Z17 z)3rpz+bUJ!4kr{1)6y8msq=0VblPS-1cncP6B--+;`ghatpDaD*U0*a8iCCT7^G^d z;{PtnkcwWnmqcW}lM;%^*-O@1S>CCm9K7;hb3%uxMAp)NteP>QgRK{J7^XRvB9+&9 zH@HD|W5wn(S=a#t$)^?7oI=PM0ehSV@8=4WERaI~OL9%BiFO`y?evO!w?9ahBXYWl z;WRVeG=XD#4B8;}aCs(r$1W|RVYa+L_Lxd$;(slMMM3kywJ2e0bG^HQLu`f4q+lA7 z6HWukxGd0IgM3}dMjPspl)O>A9=P#a0w{K;nC+hom-vzX5O=k!;(?=t-7F5|lRK`$ zd%#Mfz?Y2?leevbMOJbaOB><>sJgQ{u3p_aa`vZrI{K^)Iea_Xu%pBF4q~rTWutgI zcLIQocbhn3LdH9`#Xqk`n7JB7j9Y(HLNgpiuFTdP9pNDLr)J1{=`mU-VQ+Nyz`!lIZ@FJ(I^A|how)Ad#{-$tjge_NKAY@xc{f?|beJ82#Y=4> zM5)D&+nQWSc4$K{!-kIUj-He{%ECXKTHk7Igvp zT;PE9SDFeS6kwRu4jfiTZee5g0^LjoV%^TnrkIPZATb*K(Dm$z1%sK}YP*vMY`6FLuG^h}s0`hfIxoZg=R8d5-A?R0BR!hf<$ajgNeI6|Idl~+ zNR3XE7U*~@>K4a$S>f6ZAWOXb6` zo8^*=Z9u*y+adJ`*yIRVa7tH`XU?zLUfLN~Ci)N3Ib?g)dc3;Ha_CBqKjnv#g1cT7 zu!|Fpz+`RSS^B`qE<+;0jn+$QXXRJb*PrnucchZ@EFn41G0F49BnK07qj!hvC`Ljo z{PyWb#Z&(l;~P%?Ie*@>;(*WQ;j(rKS?xV`WCZ$CG1!0I02%nsWNme2iffIGvUAq6 zlc$6v(9WRi_wQ3cw;QH4WxLBiptq0-GT{7F!RBo5AvUMO?{llMIS^E-;oczCACG28 zWYE;Y!kf7?Z=%93{p>_pccz9S`}99bo37G zh>D9_4KP2yY8UJ-hdy`|TqA+KP0Pkx_cHU|h5 zO8%CHd+9Z-Rlsak=;T3?*7*1BqYXsBO-$ZeAjio7mv=KMSF7DR*~UJD>dYRO-=OBt zyex8KsUHO;LaUyz8V)-(Qlo~OU0j{FMjaJh+}#ExZ-)qTHA`8^@Sea@-<#E-lu+`s zDMmcWazRBj6-#^tn!k^3j0WAQFI{)yRVcjU%J%6_i;I6PexzM3LdMnNgSH*;5L_5p zK;cf^KxTaHO6Tm3=HBQ;o9J-p?+%9Q@7u$Hc&g;FZnSxEuFXNN&G~t4o@*>d%a1rU zf9r|l%nH9i1qJ}uA>rvRQvE}$jo{SmV0pQoFhd4;01X8O40bESBK0>*YXc7tbM*WQ zp@b9lp4)?Od8SbKs$@w6Z#V_~>Na9r5la&_0gIndx*)<0|E#C`)nEfoTCsMZ8<_7fG z)s$f?`pa6KI`dkZp^Z#*c2HN0XW)-q5$Gqr>CBa}M0L6u^brTdan(Oo>)wuCxoQYv z9qAyjO957K)#4x>@~W^3TAx!2S)Y;{v*3?w`g_g&Y>_~OaOOoSTJ?nPQUbec{G~(0 z(!vd|6&oF3%1tfCK;PCC#j)$cA!QbuG*xsdF+b$Hdcp}h{@!D`2kng+<`Gsd)`Q?8$&tfmZJS=bZDd)u z=CR7zeZ7}X59;k@`6!90=nwgbcM?}reKobc>*yIcu1l#g1O19l-8^1raYFrvPj&Hy zr4z~cyn1Yw}tmgFZXR{@^ zX}`p?O{aiEFK>O0Kl=~o3ZmBuq!b<`uZx^-_86)_v|pe4S52(Z=1{pki4vmnZ9<$`y@8VxguRYqHp1J(q^$_>_EVG<%qNye30L3{IAFfY z|H~`^T=q4h4aR=mMe)S&3!mj^H(y4sD4hgBN9m>+#lt(Z8#gW)g7Rds!&JhCP1toS{s9R}S`M*OCDD39Ji|#ZPl5c|vhr#}Qf!!4d z<^7!hRTiTW;m+$8TnW-k42!PR;@u}I&B#~zm#!c_#1bK*f@UU__tddUdsbT4143OT zj!9R}6#N7;b*KLVm1CVDG9CV)1S`uRb$?RGasqBhm-PzFpk|uc=@0TgWi51sSzXu0 zL2APhz_Xo0%`KPO=EY@J7Ri?Xu%i)~=ou40@dPJgHOq-jB;g<%VMrS5{h1K@$05uS z&0?8k30A`X7?HC~GjyUPZX@+RDCXqW6=LKAN8n%x~qV15zDtu{3OJ z@a!x1oF|c;ZMmJ^Gtmo4a?n}LBEhZ&<3-f`+l=>}sUyAVn|Zi0Z$ufSbUVFuK1eV< zwHmU+$i~FBQp7;FA8zeF`ZtDck;F1Ut)DrpCV6~jg>?WXzpE=I&!aEKSBDePX6S2P$-A#TnTnFctZ zWWxtF$=U~!r`Ds104!CWRk}~$5D@9W6!bncgV=fs_$%gB>L>x4aYjO4(`hfc

HXDQ1v~J< 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