Skip to content

Update routing docs & tieline creation#1407

Merged
ndorin merged 3 commits intomainfrom
update-routing-documentation
Apr 3, 2026
Merged

Update routing docs & tieline creation#1407
ndorin merged 3 commits intomainfrom
update-routing-documentation

Conversation

@andrew-welker
Copy link
Copy Markdown
Contributor

@andrew-welker andrew-welker commented Apr 2, 2026

This pull request introduces significant improvements to the connection-based routing system, focusing on how tie lines and signal types are handled, validated, and documented. The changes enhance both the routing algorithm and configuration validation, making routing more robust and flexible. The documentation is also updated to clearly explain these new behaviors and best practices.

Routing algorithm and signal type handling:

  • Routing now supports multiple distinct signal types (audio, video, audioVideo, secondaryAudio, usbInput, usbOutput), and combined types like audioVideo are automatically split into separate routing operations for each signal. The routing algorithm only considers tie lines compatible with the requested signal type, ensuring correct and flexible path discovery. [1] [2] [3]
  • The system supports port-specific routing, and all routing requests are queued to handle device state transitions (e.g., warming/cooling).

Tie line configuration and validation:

  • Tie line type is now determined as the intersection of signal types supported by both source and destination ports, unless a type override is specified in configuration. This ensures only compatible signals are routed. [1] [2] [3] [4] [5]
  • Configuration validation is improved: at startup, tie lines are checked to ensure both ports exist, have at least one common signal type, and that any override type is supported by both ports. Invalid configurations are rejected with clear error messages. [1] [2]

Documentation updates:

  • The technical documentation is updated to explain the new signal type handling, tie line type determination, validation logic, and configuration examples (including both valid and invalid cases). This provides clear guidance for system integrators and developers. [1] [2] [3] [4]

These changes collectively make the routing system more reliable, easier to configure correctly, and better documented for future users and maintainers.

  • docs: udpate routing documentation to match the algorithm
  • fix: restrict tieline creation when signal types are invalid

Copilot AI review requested due to automatic review settings April 2, 2026 20:22
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull request overview

This PR updates the connection-based routing documentation to reflect the current signal-type handling behavior, and tightens tie line creation to prevent building tie lines when port signal types are incompatible.

Changes:

  • Updated tie line type documentation to describe intersection-based signal type calculation and override behavior.
  • Changed TieLine.Type to use the intersection of source/destination port signal types (unless overridden).
  • Added signal type compatibility validation during TieLineConfig.GetTieLine() creation.

Reviewed changes

Copilot reviewed 3 out of 3 changed files in this pull request and generated 4 comments.

File Description
src/PepperDash.Essentials.Core/Routing/TieLineConfig.cs Adds signal-type compatibility validation before creating tie lines; updates OverrideType docstring.
src/PepperDash.Essentials.Core/Routing/TieLine.cs Changes tie line effective signal type to source/destination intersection; updates XML docs accordingly.
docs/docs/technical-docs/Connection-Based-Routing.md Expands routing docs to describe signal splitting/filtering and tie line type determination/validation.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
@ndorin ndorin merged commit d2684f3 into main Apr 3, 2026
2 checks passed
@ndorin ndorin deleted the update-routing-documentation branch April 3, 2026 17:21
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.

3 participants