DMXCore.Plugin.Symetrix 1.0.3

Prefix Reserved
dotnet add package DMXCore.Plugin.Symetrix --version 1.0.3
                    
NuGet\Install-Package DMXCore.Plugin.Symetrix -Version 1.0.3
                    
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="DMXCore.Plugin.Symetrix" Version="1.0.3" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="DMXCore.Plugin.Symetrix" Version="1.0.3" />
                    
Directory.Packages.props
<PackageReference Include="DMXCore.Plugin.Symetrix" />
                    
Project file
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add DMXCore.Plugin.Symetrix --version 1.0.3
                    
#r "nuget: DMXCore.Plugin.Symetrix, 1.0.3"
                    
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
#:package DMXCore.Plugin.Symetrix@1.0.3
                    
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=DMXCore.Plugin.Symetrix&version=1.0.3
                    
Install as a Cake Addin
#tool nuget:?package=DMXCore.Plugin.Symetrix&version=1.0.3
                    
Install as a Cake Tool

DMX Core 100 Symetrix Plugin

Control Value backend plugin for DMX Core 100: integrates Symetrix DSPs (Radius, Prism, Solus and similar running Composer) over the Composer control protocol (TCP port 48631).

This is the productized port of the original built-in SymetrixManager; it registers under the backend name SYMETRIX, so Control Values configured for the built-in integration keep working unchanged when this plugin takes over.

What it does

  • Maintains its own TCP connection (own reconnect loop, 2 s retry) to the DSP configured in the plugin settings (server-address, server-port).
  • Subscribes push feedback for every control id the device references (PUR + NOP-ACK refresh, GS2 queries for controls without push), and pushes received values (#id=value) back into the device - driving Control Value status, surfaces, and external-edge input triggers.
  • Writes levels and raw values with CSQ (values 0-65535; position = value/65535).
  • Suppresses echoes of its own level writes for 300 ms per control to avoid feedback loops.
  • Re-runs the subscribe flow as a keepalive when the connection is idle for more than 30 s.

Layout

  • src/DMXCore100.SymetrixPlugin/ - the plugin (SymetrixPlugin glue + SymetrixConnection protocol engine)
  • tests/ - MSTest suite against TestPluginHost and an in-process fake Symetrix TCP server (FakeSymetrixServer) exercising the wire protocol
  • tools/DMXCore100.SymetrixPlugin.DevHost/ - interactive console harness that runs the plugin against a real DSP without a DMX Core 100 device: dotnet run --project tools/DMXCore100.SymetrixPlugin.DevHost -- <dsp-ip>

Building

Requires the .NET 10 SDK.

./pack.sh        # Linux/macOS
./pack.ps1       # Windows

Either script publishes the project and produces artifacts/symetrix-plugin.dmxplugin, the archive format the device's admin UI accepts for upload. CI packs the same archive on every push and keeps the current build on the rolling latest release (private repo: downloading the asset requires authentication).

Notes

  • manifest.json declares minSdkVersion: "0.1" because the SDK assembly version is intentionally pinned at 0.1 for stable binding. The plugin actually needs the Control Value API introduced in DMXCore.PluginSdk 0.6.0 (compile-time only; the host provides the implementation at runtime).
  • The host seeds this plugin's server-address setting from the legacy HostConfig.SymetrixServer value on first load, so existing installs migrate without re-entering the address.
There are no supported framework assets in this package.

Learn more about Target Frameworks and .NET Standard.

NuGet packages

This package is not used by any NuGet packages.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last Updated
1.0.3 104 8/17/2026
1.0.2 102 8/17/2026