Commit Graph

54 Commits

Author SHA1 Message Date
jack f9c6639a66 fix(ui): light-mode polish — nav hover, graph theme tokens, title alignment 2026-07-11 20:50:42 -07:00
jack 9e3bec9031 feat(debug): add debug read with CSV export
- Parse F1 debug data via family-independent temp formula
  (bits 4-14 scaled by 2**(i-8), sign at bit 0)
- Save sensor+debug temps side-by-side to debug_info.csv
- Wire READ DEBUG button in StatusActionsPanel
- Rename ReplayChart → RunChart; move into GraphTab
- Extract PanelBox/SectionTitle/PanelSlider in ReadoutPanel
  to cut ~300 lines of duplicated styling
- Add rightRailWidth token to Theme for consistent rail sizing
- Wrap ReadoutPanel in ScrollView so Thresholds card stays
  reachable when E-C delta rows appear
2026-07-11 18:39:29 -07:00
jack fed4d9b590 feat: replay chart with zoomable viewpor 2026-07-10 20:54:24 -07:00
jack 4bb855a940 feat(graph): add graph tab for whole-run data
Provides a static line chart plotting multi-sensor temperature values
over time when a session file is loaded.
2026-07-10 20:06:48 -07:00
jack 94f917b116 feat(map): add edge-center delta stats, thickness overlay, and layout fix
- Add edge-center sensor pair tables and delta calculations per wafer family.
- Parse and interpolate wafer thickness CSV data for offscreen visualization.
- Refactor ReadoutPanel layout using Item + anchors to fix right-margin clipping.
- Compact E-C Delta text format to fit standard sidebar width.
- Add pytest suite covering delta calculations, layout pairs, and thickness CSV.
2026-07-10 17:32:12 -07:00
jack 25fa7507ce feat(map): add min/max highlighting toggle and live safeguards
- Add "Highlight Min/Max" option to ReadoutPanel showing peak rings.
- Reset to review mode and blank wafer map when switching away from map tab.
- Disable hover highlights and sensor dialog triggers during live stream.
- Lower trendPane height and add top margin headroom for tick labels.
- Add test coverage for blanking states, toggle overrides, and interactions.
2026-07-10 16:28:55 -07:00
jack 034f13b717 feat(map): add peak highlights and live metrics to PNG export
- Draw rings around hottest and coldest sensors on export.
- Extend export_image to support second line for live metrics.
- Format detailed sensor stats in export footer.
- Add test coverage for footer rows, overlays, and stats.
2026-07-10 15:39:30 -07:00
jack 69753e35f9 feat(map): add batch export and adjust layout alignment
- Implement synchronous offscreen wafer map PNG rendering and CSV summary.
- Add "Batch Export" button to file browser sidebar.
- Adjust trend pane bottom spacer to align with About button when visible.
- Fix type check errors and add pytest coverage for batch export.
2026-07-10 15:22:36 -07:00
jack e2ce8778e0 feat(files): sync Source panel browser with chosen save directory 2026-07-10 14:37:29 -07:00
jack 4ee139ad8f fix: The QML cross-component id resolution for root.waferDetected was failing
silently. Exposing a proper waferDetected property on the Python
DeviceController ensures reliable gating, and resetting it on refresh
blocks the actions until the next successful detection.
2026-07-09 13:07:31 -07:00
jack ac4448ed44 refactor(backend): clean up package re-exports, settings model properties, and unused signals 2026-07-09 12:49:33 -07:00
jack 637b51b999 fix(qml): resolve runtime reference errors, missing imports, and port change notifications 2026-07-09 12:47:56 -07:00
jack b6903af625 feat: redesign StatusTab UI with bento-grid layout and add CSV metadata editing capabilities 2026-07-07 16:41:40 -07:00
jack 92f130b3bd feat: implement master file configuration, UI indicators, and a Run Comparison tool for the Data tab 2026-07-07 15:05:22 -07:00
jack 1e03227788 style: increase ReadoutPanel font sizes and add CSV test fixture for data logging 2026-07-07 12:10:47 -07:00
jack 7df7fd4c6f feat: implement C#-compatible AES-128-CBC license file parsing and integrate license management UI into AboutDialog 2026-07-07 11:15:06 -07:00
jack e2d05d2c33 refactor: relocate live stream controls to ReadoutPanel and update chart axis rendering 2026-07-07 10:38:42 -07:00
jack 799155f249 refactor: optimize RBF heatmap performance by decoupling grid resolution from viewport size and update UI file handling. 2026-07-06 21:02:22 -07:00
jack 015642eea0 chore: apply linting fixes and expand ruff coverage to test suite 2026-07-06 15:52:53 -07:00
jack d63332d619 feat: add load error signaling and comparison validation 2026-07-06 15:43:13 -07:00
jack 0014ccc184 fix: gate DTW comparisons on wafer type + recording category; surface load errors 2026-07-06 15:41:29 -07:00
jack 1989ba8e5a feat: add vector icons for transport controls, implement marker hover effects, and update dialog positioning 2026-07-06 13:51:45 -07:00
jack e2d71662ff refactor: data_parser binary parsers use shared sensor_count_for() 2026-07-06 13:24:46 -07:00
jack 185e66ea3a feat: introduce family_spec logic for wafer sensor-count partitioning 2026-07-06 13:19:47 -07:00
jack 3b919f576f fix: comparison results never reached QML; restore click-box run selection 2026-07-06 13:12:58 -07:00
jack f604308466 feat: rebuild Data tab compare view 2026-07-06 13:01:24 -07:00
jack 6996df73f8 feat: add recording toggle, stream stats UI 2026-07-06 12:44:43 -07:00
jack 3cc10ea7fe feat: add file comparison, data splitting, and sensor modification functionality to SessionController 2026-07-06 11:58:26 -07:00
jack ecab3d81b1 fix: resolve CSV data truncation in save_to_csv by correctly identifying column widths and remove redundant logic in ZWaferParser 2026-07-04 16:46:44 -07:00
jack 9e28a25695 refactor: implement thread-safe hardware operations, port caching, and refined state management in the device controller 2026-07-02 22:33:44 -07:00
jack 27292c3bdb chore: cleanup
WaferMapTab stale comments + minor component fixes
2026-06-30 13:24:00 -07:00
jack 5105ab1ab6 feat(tabs): update all tab views, dialogs, and session controller 2026-06-29 14:58:10 -07:00
jack f4621f1faf feat(viz): implement RBF heatmap and custom QPainter trend chart item
Introduce Radial Basis Function interpolation for fine wafer thermal gradients and GraphQuickItem for high-performance trend line rendering.
2026-06-25 13:47:48 -07:00
jack 2cbc143c20 feat(backend): introduce session controller and status models
Implement DeviceController and SessionController to bridge QML requests with backend state, supporting playback replay tracking, cluster averaging, and slot error boundaries.
2026-06-25 13:47:21 -07:00
jack 62ce5a9c37 feat: implement DTW comparison, add data segmentation and persistence, and update QML UI for file imports and graphing. 2026-06-23 21:38:45 -07:00
jack 20a34e22ee feat: wire ReplayStatsTracker into SessionController + complete GraphView.updateTrend 2026-06-20 18:28:55 -07:00
jack 7206334a27 feat: implement slot_error_boundary decorator and add unit tests for session and device controllers 2026-06-18 21:01:37 -07:00
jack 5514653b94 refactor: prune orphaned attic modules and standardize project configurations
- Move orphaned modules (data_segment.py, contour_models.py, marching_squares.py) to attic/.
- Standardize local settings logic, serial port parameters, and graph view plots.
- Update pyproject.toml pyside6-project dependencies and configure gitignore.
2026-06-18 17:09:24 -07:00
jack 93868bcde4 feat(ui): implement save directory browse button and pre-detection check
- Add a 'Browse...' button to the Connection Status panel in StatusTab.qml.
- Check if save directory is set before wafer detection in HomePage.qml, prompting the user if empty.
- Resolve QML Connections warning by renaming onLogMessageEmitted to onLogMessage.
- Remove temporary debug stack traces from device_controller.py.
2026-06-18 17:08:58 -07:00
jack 66942d250d refactor: standardize codebase formatting, optimize import orders, and update GUI resolution to 1080p 2026-06-18 13:13:47 -07:00
jack 1119733929 feat: add interactive folder selection for CSV saves and stabilize cross-platform dependency locking 2026-06-18 10:30:51 -07:00
jack e545c245d7 feat: implement cluster averaging pipeline, UI controls 2026-06-15 15:02:55 -07:00
jack 7d32fb4b65 refactor: normalize data directory naming, and consolidate serial connection handling 2026-06-15 12:39:16 -07:00
jack b34b920759 refactor: standardize timing with monotonic clocks, remove redundant stream parsing 2026-06-15 11:37:51 -07:00
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 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