Skip to content

feat: replace IED fascia, animate LEDs, and fix FAT signal naming - #269

Merged
masarray merged 6 commits into
mainfrom
feat/ied-fascia-connectivity-led
Sep 8, 2026
Merged

masarray merged 6 commits into
mainfrom
feat/ied-fascia-connectivity-led

Conversation

@masarray

@masarray masarray commented Sep 8, 2026 •

Copy link
Copy Markdown
Owner

Summary

  • replace the legacy Assets/RelayFascia.svg artwork with the new ARSAS Premium IED fascia
  • update the WPF runtime transcription in Resources/ArvrelMiniIedFascia.xaml so the IED Card uses the new design without adding an SVG runtime dependency
  • bind the three right-side lamps directly to Iec61850MonitorDevice.IsConnected
  • show all three lamps red while offline/disconnected and green while online/connected
  • add a restrained 0.9 s opacity pulse plus state-colored glow for a live indication without introducing polling or per-frame rendering logic
  • make FAT signal display names context-aware using the shared ARSAS presentation rule
  • preserve canonical IEC references and DataSet identity for live binding and evidence

FAT signal naming

  • phased measurements render as A PhsA, A PhsB, A PhsC
  • common IEC Data Objects such as Pos are qualified by Logical Node class when needed, e.g. XCBR Pos and CSWI Pos
  • the same rule covers Mod, Beh, Health, Loc, and OpCnt
  • specific/custom labels such as Dig01 or Breaker position remain unchanged
  • both dot and $ IEC reference notation are supported

Runtime behavior

  • IsConnected = false → TRIP / ALM / PKP lamp positions render red
  • IsConnected = true → all three render green
  • the existing startup replacement of IedRelayFrontPanelTemplate remains unchanged, so the new fascia is picked up through the current InstallArvrelMiniIedFascia() path

Validation

  • context-aware naming is applied in FatDataSetSignalProjectionService without changing StaticMemberReference, RuntimeReference, SignalId generation, or DataSet membership identity
  • xUnit coverage added for phase context, LN-owner context, $ notation, generic IEC DOs, custom labels, and safe fallback
  • CI must pass before using the Windows artifact for FAT testing

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: d026665751

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

</Setter.Value>
</Setter>
<Style.Triggers>
<DataTrigger Binding="{Binding IsConnected}" Value="True">

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge Bind FAT card LEDs to their live connection property

When this shared template is rendered by IoListTestingWindow.xaml, its data context comes from Project.Ieds and is an IoTestIedPlan, which exposes connection state as IsLiveConnected rather than IsConnected. This binding therefore remains unset in the FAT view, so all three lamps stay red even after the IED reaches the connected/READY state; provide the template with a common connection-state property or handle the FAT model's property explicitly.

Useful? React with 👍 / 👎.

Comment on lines +75 to +76
<Viewbox Stretch="Uniform">
<Canvas Width="256" Height="256" Background="Transparent">

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P1 Badge Update the fascia contract test for the redesigned template

The full test suite run by the build and release workflows still asserts that this Viewbox is named RelayFasciaArtwork, that the template contains no TextBlock elements, and that several legacy colors remain present. This redesign violates all of those unchanged assertions, so ArvrelMiniIedFasciaTests.CompactArvrelFascia_IsVectorOnlyAndKeepsRecognizableRelayHardware will fail on every full CI/release test run; update that contract alongside the new artwork.

Useful? React with 👍 / 👎.

@masarray masarray changed the title feat: replace IED fascia and animate connection LEDs feat: replace IED fascia, animate LEDs, and fix FAT signal naming Sep 8, 2026
@masarray
masarray merged commit 56c205e into main Sep 8, 2026
3 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant