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
<PackageReference Include="DMXCore.Plugin.Symetrix" Version="1.0.3" />
<PackageVersion Include="DMXCore.Plugin.Symetrix" Version="1.0.3" />
<PackageReference Include="DMXCore.Plugin.Symetrix" />
paket add DMXCore.Plugin.Symetrix --version 1.0.3
#r "nuget: DMXCore.Plugin.Symetrix, 1.0.3"
#:package DMXCore.Plugin.Symetrix@1.0.3
#addin nuget:?package=DMXCore.Plugin.Symetrix&version=1.0.3
#tool nuget:?package=DMXCore.Plugin.Symetrix&version=1.0.3
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,GS2queries 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 (SymetrixPluginglue +SymetrixConnectionprotocol engine)tests/- MSTest suite againstTestPluginHostand an in-process fake Symetrix TCP server (FakeSymetrixServer) exercising the wire protocoltools/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.jsondeclaresminSdkVersion: "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 inDMXCore.PluginSdk0.6.0 (compile-time only; the host provides the implementation at runtime).- The host seeds this plugin's
server-addresssetting from the legacyHostConfig.SymetrixServervalue on first load, so existing installs migrate without re-entering the address.
Learn more about Target Frameworks and .NET Standard.
-
net10.0
- DMXCore.PluginSdk (>= 1.0.0 && < 2.0.0)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.