feat(hardware): Support XY automated scanning tables (SpectroScan / i1iO) in chartread #93

Closed
opened 2026-08-25 15:48:10 +01:00 by gronod · 0 comments
Owner

Description

Support motorized XY automated scanning tables (e.g. X-Rite i1iO 1/2/3, Spectrolino / SpectroScan) within the Stage 3 interactive measurement workflow.

Background & Technical Details

  • Native Table Support in ArgyllCMS: In Gronod/argyllcms, XY table mode (inst_mode_ref_xy / rmode = 2) is natively supported. When chartread is invoked with the communication port (-c port or auto-detection) connected to an XY table (SpectroScan or i1Pro mounted on an i1iO table), chartread automatically detects table capabilities and engages automated XY positioning.
  • Chart Geometry: Patch layout and coordinate geometry are read directly from the .ti2 target descriptor file generated by printtarg.
  • Real-Time Streaming: Gronod/argyllcms already emits ROW_COLORS_JSON events to stdout upon row completions during XY table scans.

Scope & Technical Requirements

  • Instrument Detection: Detect connected XY table hardware via instlist and display dedicated table measurement guidance in Stage 3.
  • Table Alignment & Calibration State Machine: Parse ArgyllCMS interactive table alignment prompts ("Locate patch A1 with sight...", "locate bottom-left patch...", "locate bottom-right patch...", "Place sheet on table...") and provide visual step-by-step guidance in the UI.
  • Progress Monitoring: Update live swatch grid and progress indicators in real time as ROW_COLORS_JSON events arrive during unattended table passes.
  • Mock Testing: Extend src-tauri/argyll/mocks/chartread.mock to simulate XY table alignment prompt sequences and swatch events.

Acceptance Criteria

  • Automated scanning table detected and displayed in Stage 3 instrument selector.
  • Table alignment calibration prompts parsed and displayed clearly in the UI.
  • Automated full-chart unattended measurement reads all patches, updates swatch grid in real time, and outputs valid .ti3.
  • Unit & mock tests verify table prompt state transitions and swatch grid rendering.

Dependencies & Ordering

  • Milestone: Milestone 9 (v0.4.0)
  • Ordering: Step 9
  • Dependencies: Issue #86 (Stage 3 instrument selector) & Issue #91 (macOS compatibility)
### Description Support motorized XY automated scanning tables (e.g. X-Rite i1iO 1/2/3, Spectrolino / SpectroScan) within the Stage 3 interactive measurement workflow. ### Background & Technical Details - **Native Table Support in ArgyllCMS**: In `Gronod/argyllcms`, XY table mode (`inst_mode_ref_xy` / `rmode = 2`) is natively supported. When `chartread` is invoked with the communication port (`-c port` or auto-detection) connected to an XY table (SpectroScan or i1Pro mounted on an i1iO table), `chartread` automatically detects table capabilities and engages automated XY positioning. - **Chart Geometry**: Patch layout and coordinate geometry are read directly from the `.ti2` target descriptor file generated by `printtarg`. - **Real-Time Streaming**: `Gronod/argyllcms` already emits `ROW_COLORS_JSON` events to stdout upon row completions during XY table scans. ### Scope & Technical Requirements - **Instrument Detection**: Detect connected XY table hardware via `instlist` and display dedicated table measurement guidance in Stage 3. - **Table Alignment & Calibration State Machine**: Parse ArgyllCMS interactive table alignment prompts (`"Locate patch A1 with sight..."`, `"locate bottom-left patch..."`, `"locate bottom-right patch..."`, `"Place sheet on table..."`) and provide visual step-by-step guidance in the UI. - **Progress Monitoring**: Update live swatch grid and progress indicators in real time as `ROW_COLORS_JSON` events arrive during unattended table passes. - **Mock Testing**: Extend `src-tauri/argyll/mocks/chartread.mock` to simulate XY table alignment prompt sequences and swatch events. ### Acceptance Criteria - [ ] Automated scanning table detected and displayed in Stage 3 instrument selector. - [ ] Table alignment calibration prompts parsed and displayed clearly in the UI. - [ ] Automated full-chart unattended measurement reads all patches, updates swatch grid in real time, and outputs valid `.ti3`. - [ ] Unit & mock tests verify table prompt state transitions and swatch grid rendering. ### Dependencies & Ordering - **Milestone**: Milestone 9 (`v0.4.0`) - **Ordering**: Step 9 - **Dependencies**: Issue #86 (Stage 3 instrument selector) & Issue #91 (macOS compatibility)
gronod added this to the Milestone 9: macOS Native Support & Enhanced Print Spooling (v0.4.0) milestone 2026-08-25 15:48:10 +01:00
gronod added the Kind/Feature
Priority
Medium
3
labels 2026-08-25 15:48:10 +01:00
gronod added
Priority
Low
4
and removed
Priority
Medium
3
labels 2026-08-25 16:31:48 +01:00
gronod added a new dependency 2026-08-29 11:36:06 +01:00
gronod removed this from the Milestone 9: macOS Native Support & Enhanced Print Spooling (v0.4.0) milestone 2026-08-29 11:43:25 +01:00
gronod added this to the Milestone 11: Enterprise Colour Workflow (v0.6.0) milestone 2026-08-30 15:16:39 +01:00
gronod modified the milestone from Milestone 11: Enterprise Colour Workflow (v0.6.0) to Milestone 12: Future Workflow & Advanced Analytics (Deferred) 2026-09-01 16:43:45 +01:00
Sign in to join this conversation.