Bitfocus AS
logo
logo
Bitfocus AS
logo
logo
Sign upSign in

Loading...

Bitfocus

Subscribe to our newsletter

The latest news, articles, and resources, sent to your inbox.

FacebookInstagramGitHubYouTubeLinkedIn

Products

  • Buttons
  • Companion

Integrations

  • Supported Devices
  • Developer Community
  • Connection Development

Support

  • Support Overview
  • Documentation
  • Video Tutorials
  • Community Forum

Sales

  • Resellers & Integrators
  • Buttons Pricing

Updates

  • Case Studies
  • Events & Trade Shows
  • Press Releases
  • Product Updates
  • Webinars

Legal

  • Legal Overview
  • Privacy Policy
  • Buttons EULA
  • Terms & Cookie Policy

Company

  • About us
  • Press kit
  • Careers

© 2026 Bitfocus AS. All rights reserved.

  1. Connections
  2. Imagine Communications - Logical Router Control

Imagine Communications

Logical Router Control

Communityv3.0.0Updated 7 months ago
DocumentationReport an issueView on GitHub

Documentation

Imagine Communications Logical Router Control

This module controls Imagine Communications (f/k/a Harris) video routers via Logical Router Control (LRC) protocol.

Compatibility

This module is based on version 1.1 of the LRC protocol. Not all features are available in prior versions of the protocol.

Testing has been performed against Platinum MX Series routers and Platinum IP3 Routers. Please open an issue with any incompatibilities or inconsistencies discovered across hardware platforms.

Setup

  1. In the Companion web UI, add a new connection for "Imagine Communications Logical Router Control"
  2. Configure the connection as follows:
    1. Label: Something useful to identify the connection elsewhere in Companion
    2. IP Address: IP address of the LRC server (usually the video router itself)
    3. Port: Default 52116, shouldn't need changing
    4. User ID: Numeric identifier for any commands requiring this parameter (e.g. LOCK, PROTECT, XBUFFER)
    5. Salvo Count: Number of salvos to query from the router (range from 0 to n) since the protocol doesn't provide a way to query them all programmatically
    6. Allow Empty Crosspoint Destination: Safeguard to prevent routing a single source to every destination in a single crosspoint command
    7. Crosspoint Format: Sets sources/destinations used in crosspoint commands to be sent as either numbers (default) or names. If you use a variable in the respective fields, you should set this to the same format as your variable values as the values will be sent unmodified.

Actions

All commands available in the LRC protocol should be available here. Please see Protocol Documentation at the bottom of this document for a link to full documentation.

Crosspoint Take (XPOINT)

Request a take of a logical crosspoint.

One source and many destinations can be specified in each action. Optionally, channels (levels) may be specified for both source and desination. If multiple destinations are specified, the same channel (level) will be used for all destinations.

Crosspoint Buffer Control (XBUFFER)

Control crosspoint buffers (execute/clear)

Crosspoint Disconnect (XDISCONNECT)

Disconnect logical crosspoints

Crosspoint Preset (XPRESET)

Preset a crosspoint command

Salvo Execution (XSALVO)

Request execution of a crosspoint salvo.

One salvo can be specified in each action. Optionally, one or more flags may be specified to adjust behavior of the request.

Some implementations of LRC (e.g. on a Imagine Platinum MX as reported in #9) seem to require inclusion of a user ID to properly execute XSALVO commands. If you are attempting to use XSALVO commands and they're not working, you may need to enable the Send User ID with XSALVO Commands configuration option.

Destination Lock (LOCK)

Secure a destination from further crosspoint status changes by any User ID including the lock owner. The command will be sent with the User ID defined in the instance settings.

Destination Protect (PROTECT)

Secure a destination from further crosspoint changes requested by anyone except the lock owner (user). The command will be sent with the User ID defined in the instance settings.

Protocol Query (PROTOCOL)

Information (name, version) about the LRC protocol on a given router may be queried using this action. Primarily used for troubleshooting. Output will be logged to "debug" in the Companion web UI.

Destination Query (DEST)

Information (total count, ID, name) about the destinations on a given router may be queried using this action. Primarily used for troubleshooting. Output is visible in debug-level logs in the Companion web UI.

Source Query (SRC)

Information (total count, ID, name) about the sources on a given router may be queried using this action. Primarily used for troubleshooting. Output is visible in debug-level logs in the Companion web UI.

Manual Message

If none of the other actions fit your needs, you may call this action to build a LRC message manually. You will need to (1) select a message type, (2) select an operation, and (3) provide all arguments. Warning! There is only a limited amount of sanity/error checking in this action.

If you find yourself using this, please open an issue so that we can add whatever is missing or fix whatever is broken in the other actions.

Raw Message

If none of the other actions fit your needs, you may call this action to send an arbitrary message directly to the router via the existing TCP socket. There is no sanity/error checking in this action, so make sure you know what you're doing if using this.

If you find yourself using this, please open an issue so that we can add whatever is missing or fix whatever is broken in the other actions.

Feedback

Salvo State

Button colors can be changed in response to the state (ON/OFF) of a given salvo. Salvo state information is synchronized upon initial connection and automatically updated by the router upon change of any crosspoints set within the salvo.

Crosspoint State

Button colors can be changed in response to the state of a given crosspoint. Crosspoint state information is automatically updated by the router upon change of any crosspoints.

Destination Lock State

Button colors can be changed in response to the state (locked/unlocked) of a given destination. Destination lock state information is automatically updated by the router upon change of lock state.

Destination Protect State

Button colors can be changed in response to the state (protected/not-protected) of a given destination. Destination protect state information is automatically updated by the router upon change of protect state.

Presets

Salvos

A preset is automatically created for each salvo provided by the router. Action is Salvo Execution for the given salvo. Feedback is Salvo State in green if the given salvo is active.

Variables

Starting from version 2.2, this module exposes the following variable types:

Routing Database

  • Input Names by ID
  • Input IDs by Name
  • Output Names by ID

Routing State

  • Destination (by name or number) Status - Current Routed Input Name
  • Destination (by name or number) Status - Current Routed Input Number
  • Destination (by name or number) Status - Lock/Protect State

From version 3.0, the Lock & Protect state variables are exposed separately from each other, per destination. The rules around how the LRC protocol describes simultaneous lock and/or protect states can be complicated, so please review the protocol documentation to ensure understanding of how all of these states interact.

Protocol Documentation

Full documentation for the LRC protocol is available in the Imagine Communications Customer Portal in a document titled "Logical Router Control Operation and Reference Manual". An account is required to access the documentation. Instructions for joining can be found on the login page.

Details

Manufacturer
Imagine Communications
Product
Logical Router Control
Latest Version
v3.0.0
Authors
Ross Lindsay
Asher Robinson
Contributors
RossIV(61)
asherrobinson(41)
Jorgen1040(5)
Julusian(4)
JeffreyDavidsz(1)

Open Issues and Requests

RossIV#43 [BUG] XSALVO action sending ID as numeric format, not stringSam26357#30 [Feature]: Add variable "DEST Select" and "SRC Select"mywave82#29 [BUG] Router without Level, gives errors in action editormywave82#28 [BUG] Source Breakaway not supported in live feedback from device (tested with v3.0.0)roddypratt#25 [QUERY] XSALVO query command relies on undocumented field "V"?

To file a new issue, you need to sign up for a user on GitHub.

Go to GitHub issues →

In other news

Buttons v1.8 Main with text

Buttons v1.8

October 2, 2026

Buttons v1.8 IBC award win

Bitfocus wins IBC2026 Best of Show Award for latest Buttons enhancements

September 21, 2026

Buttons v1.8 grey background

Biggest functionality boost yet makes Buttons the perfect platform for broadcast and media management

September 10, 2026

Vivid Buttons on screen

Bitfocus Buttons makes complex OB production feel simple

August 10, 2026

View all news →