Skip to content

03. Functional Scope ​

Back to Requirements Hub

This page covers original Section 7.

7. Functional Scope ​

The first meaningful version of the prototype must include the following feature areas.

7.1 Application Foundation ​

The system must provide:

  • .NET 10 WPF desktop application
  • generic host setup
  • dependency injection
  • logging
  • application state management
  • clear project boundaries

7.2 Machine Connection ​

The system must allow the operator to:

  • connect to the simulated machine
  • disconnect from the simulated machine
  • observe current connection state

The system must simulate:

  • connection delay
  • occasional connection failure
  • state transitions Disconnected -> Connecting -> Connected
  • failed connection attempts that return to Disconnected and surface an alarm or diagnostic entry

7.3 Recipe Loading ​

The system must support:

  • loading a recipe object into the application
  • associating a recipe with an inspection run
  • showing the currently loaded recipe in the UI

For the first slice:

  • recipes must come from in-memory seed data
  • at least one seeded recipe must contain at least 3 ordered scan points
  • JSON-backed recipe loading is a later slice

7.4 Motion and Homing ​

The system must support:

  • homing the motion stage
  • moving to recipe scan points
  • blocking movement when not connected
  • blocking movement when not homed
  • stopping motion safely
  • exposing stage position and status

The simulator must model time-based movement instead of instant teleportation.

7.5 Inspection Workflow ​

The system must support an explicit inspection workflow with at least:

  • idle
  • preparing / initializing
  • homing
  • ready
  • running
  • stopping
  • stopped
  • completed
  • aborted
  • faulted

The workflow must:

  • validate prerequisites before starting
  • move through scan positions
  • acquire data at scan points
  • update run progress
  • stop or abort safely
  • respond to faults
  • produce one terminal run summary with status Completed, Stopped, Aborted, or Faulted

7.6 Telemetry Streaming ​

The system must continuously stream machine telemetry such as:

  • stage position
  • machine state
  • temperature
  • pressure
  • signal values
  • current run metrics where available

The application must consume and display telemetry without freezing the UI.

For the first slice:

  • simulator telemetry should have a documented default cadence of about 5 Hz
  • telemetry buffering must be bounded
  • when consumers lag, the system may coalesce stale telemetry and keep the most recent values rather than accumulate an unlimited backlog

7.7 Frame Streaming ​

The camera simulator must produce frames while streaming is active.

The application must:

  • receive frames asynchronously
  • buffer them through a pipeline
  • show a preview or simplified live image representation
  • avoid unbounded growth in memory usage

For the first slice:

  • the simulator should produce preview frames at a documented default cadence of about 2 fps
  • preview buffering must be bounded
  • when consumers lag, the system should prefer recent preview frames over preserving an indefinitely growing backlog

7.8 Fake Defect Detection ​

During an inspection run, the system must simulate inspection results:

  • some frames may contain defects
  • defect count must be shown
  • simple defect details may be stored in run state
  • results must be associated with the current run

The first version does not need real computer vision.

7.9 Alarms and Faults ​

The system must support fault conditions such as:

  • emergency stop
  • door open
  • connection loss
  • motion failure
  • camera unavailable
  • generic simulator fault

The system must:

  • surface alarms in the UI
  • block invalid operations
  • transition to faulted state where appropriate
  • support acknowledgment or recovery for selected cases

For the first slice:

  • the system must expose an explicit operator recovery or reset action after the unsafe condition is cleared
  • critical fault recovery must require both condition clearance and an explicit operator action

7.10 Stop and Abort ​

The system must distinguish between:

  • stop: graceful shutdown of the current run
  • abort: immediate operator-requested interruption of active work
  • fault: immediate safety-driven interruption that ends in Faulted

The workflow and UI must reflect this difference clearly.

7.11 Logging and Diagnostics ​

The system must provide enough runtime visibility to understand:

  • commands issued
  • state transitions
  • faults and warnings
  • run start and end
  • movement steps
  • dropped data or queue pressure later
  • recovery attempts later

For the first slice, a minimal diagnostics surface is required, even if it is embedded in the main screen rather than a dedicated page.

7.12 Run Summary ​

After a run finishes, is stopped, fails, or is aborted, the system should preserve a summary including:

  • run id
  • recipe name
  • start time
  • end time
  • final status
  • defect count
  • major alarms or failures
  • completion reason where useful to distinguish stop, abort, and fault outcomes

Persistence may initially be in-memory or file-based.

Docs-first project memory for AI-assisted implementation.