Switch the equipment config (RIE / MBE / MOCVD) from the application

Open
#172 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Assessment

Difficulty
5/5
Estimated time
Over a week
Newbie friendliness
25/100
Issue type
Feature
Clarity
Needs clarification
Activity status
Quiet
Tech stack
csharp
Domain
desktop

Research direction

Start with SemiStep.UI/StartupOptions.cs:10 and SemiStep.UI/Program.cs:75 to trace config loading, culture resolution, and DI construction. Review the existing RestartPromptDialog precedent, then map the PLC sync lifecycle, open recipe, and grid surfaces before settling the mechanism, ownership, discovery, and persistence decisions. Done means the design is agreed and switching safely handles config-specific recipes and dirty-close behavior.

Written by the indexing model from the issue text.

Description

enhancement

Intention only. Scope and mechanism are not settled; to be edited as the design firms up.

Current state

The equipment config is chosen once, before the UI exists.

StartupOptions.ConfigDir (SemiStep.UI/StartupOptions.cs:10) defaults to
C:\DISTR\Config\SemiStep\MBE and can only be overridden by the --config-dir command-line argument.
Program.StartupAsync (SemiStep.UI/Program.cs:75) loads and validates that directory, resolves the
UI culture from it, and then builds the entire DI graph — metadata registry, PLC connection settings,
grid style — before Avalonia starts. Nothing re-reads the config afterwards.

In practice, switching between RIE, MBE and MOCVD means a separate shortcut per config.

Intention

Let the operator switch the active equipment config from inside the application, rather than through
command-line arguments maintained outside it.

Open questions

  • Mechanism. Relaunch the process with a new --config-dir (small; RestartPromptDialog already
    exists as precedent for the style editor), or tear down and rebuild the DI graph in place (large;
    touches the PLC sync lifecycle, the open recipe, and both grid surfaces).
  • Ownership. This may belong inside the planned config-editor feature rather than standing on its
    own.
  • Recipe lifetime. A recipe is config-specific — its action keys and column keys only mean
    something inside one config. Switching has to close or block on the open recipe, and a dirty-close
    guard is mandatory.
  • Discovery. A fixed list of subdirectories under a configured root, or a folder picker?
  • Persistence. Does the choice survive a restart, and if so, where is it written?
Dominant language
C#
Stars
3
Forks
1
PR merge metrics
No merged PRs in 30d

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

More from Semiteq/SemiStep

All issues in Semiteq/SemiStep

Similar issues

More C# issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.