Commit Graph

14 Commits

Author SHA1 Message Date
jack 2e4763510d feat(ui): improve device session management, update data directory paths, and add session clearing functionality. 2026-06-15 11:28:28 -07:00
jack 7e584e08e8 feat(visual): implement square wafer (X) template, inward label alignment, and density scaling 2026-06-15 11:20:55 -07:00
jack cea4fb782e feat(wafer): introduce layout metadata modeling and shape resolution helpers
- Define WaferLayout subclass to wrap sensor lists with shape and size attributes.
- Add resolve_shape_and_size resolver to infer wafer shape/size from filename prefix or sensor count.
- Update Sensor dataclass to support dynamic side alignments and coordinates offsets.
- Expose waferShape and waferSize properties from SessionController for QML data-bindings.
2026-06-15 11:19:32 -07:00
jack 5b186df888 feat(serialcomm): implement stream auto-detection, fallback baudrate, and virtual port discovery
- Add automatic format detection (binary, ASCII hex dump, or text line) in StreamReader based on stream preambles.
- Implement fallback to 115200 baudrate when 888888 ioctl fails (critical for macOS PTYs).
- Parse binary streams (X family) with little-endian sequence/length headers and Modbus CRC-16 checks.
- Discover and prioritize virtual serial ports (from running socat instances) in enumerate_ports using lsof.
- Update FakeTransport to mock read() and readline() calls for unit test compatibility.
2026-06-15 11:11:00 -07:00
jack f89a735d51 refactor: update TabBar and live indicator for improved connection status handling and visual feedback 2026-06-11 13:16:37 -07:00
jack 1cd54e81fc refactor: enhance UI components and improve theme properties for better visual consistency 2026-06-11 13:09:04 -07:00
jack 12bd778f13 refactor: modernize WaferMapTab layout and redesign ReadoutPanel statistics display 2026-06-11 12:57:52 -07:00
jack 72334795da refactor: reorganize backend modules into sub-packages for models, data, visualization, wafer, and controllers 2026-06-11 12:15:00 -07:00
jack b9f8032203 Refactor code structure for improved readability and maintainability 2026-06-11 11:57:46 -07:00
jack 97ca58bfc2 feat: Add Wafer Map tab and associated components
- Introduced a new Wafer Map tab in the HomePage.qml, which loads WaferMapTab.qml when selected.
- Created WaferMapTab.qml to display wafer map with live data and controls.
- Added ReadoutPanel.qml for displaying sensor statistics and thresholds.
- Implemented SourcePanel.qml for file selection and filtering.
- Developed TransportBar.qml for playback controls.
- Added WaferMapView.qml to visualize wafer data with interactive features.
- Created ReplaceSensorDialog.qml for sensor value overrides.
- Updated Theme.qml for new color schemes and UI adjustments.
- Modified qmldir files to include new components in the ISC.Tabs and ISC.Tabs.components modules.
2026-06-11 11:57:24 -07:00
jack b52b983bb2 Add wafer layouts and RBF heatmap functionality
- Introduced new YAML layout files for wafers B, C, D, F, X, Z, and their reversed versions.
- Implemented RBF heatmap interpolation using CuPy and NumPy for GPU acceleration.
- Created a backend module to load wafer layouts from YAML files, mirroring the existing schema.
- Developed a QQuickPaintedItem for rendering wafer maps, including sensor markers, heatmaps, and labels.
- Enhanced the drawing capabilities with concentric rings, crosshair axes, and orientation markers.
2026-06-11 11:56:55 -07:00
jack ca1a514f23 feat: Wafer Map integration
## Backend — Session & playback
- Add SessionController (QML-facing live/review controller) with
  loadedFile property for active-file highlight binding
- Add SessionModel, FramePlayer, and CsvRecorder for state machine,
  frame seek/step/speed, and CSV recording
- Add SensorEditor for per-sensor value overrides (replace + offset)
2026-06-11 11:55:34 -07:00
jack 9cd3170e8a Replay Tabs:
- Add stability detection and threshold classification features with corresponding tests
2026-06-04 13:25:11 -07:00
jack 9779baa468 Restructure into src/ layout under pygui package
Move all application source under src/pygui/ and rewire imports,
build config, and QML module path to match.
- Relocate backend/, serialcomm/, and the ISC QML module into
  src/pygui/; convert main.py into pygui/__main__.py with a main()
  entry point (run via `python -m pygui` or the new `isc` script)
- Rewrite absolute imports: backend.* -> pygui.backend.*,
  serialcomm.* -> pygui.serialcomm.* (source + tests)
- Move app icons (isc.ico/icns) into packaging/
- Update README and ISC.qmlproject to the new paths
2026-06-03 11:41:45 -07:00