Room plugin for the PepperDash Essentials v3 demo system.
Documentation: tutorials and how-to guides for the demo are at https://pepperdash.github.io/EssentialsDemoConfig/.
Provided under MIT license.
This is one of three repos that make up the Essentials v3 demo:
| Repo | Contains |
|---|---|
| EssentialsDemoRoom | This repo — the room plugin holding the demo's business logic |
| EssentialsDemoConfig | The configuration file, and the demo documentation |
| EssentialsDemoReactApp | The Mobile Control React app the demo's UI runs in |
Every device the demo room drives is a mock — either an Essentials mock device (MockDisplay,
MockAudioDevice, MockRoutingMidpoint, and friends) or mocked logic in this plugin. Nothing here
talks to real AV hardware, so the program runs on any 4-series processor on its own.
src/DemoRoom holds the room:
DemoRoom.cs— the room device, plus theIDemoRoominterface that declares its capabilities. In Essentials v3 a room advertises what it can do by implementing capability interfaces (IRunRouteAction,IHasDefaultDisplay,IHasCurrentVolumeControls, …); the React app reads those to decide what to render.DemoRoomProps.cs— the strongly typedpropertiesobject from this room's config entry.DemoRoomFactory.cs— maps the config"type": "essentialsDemoRoom"to the room class. Essentials finds factories by reflection, so there is nothing else to register.DemoRoomMessenger.cs— the Mobile Control messenger. Every message between the room and the React app passes through here.
The Essentials v3 libraries, referenced via NuGet:
PepperDashEssentials
dotnet build restores them; no manual NuGet step is needed.
dotnet build src/epi-essentials-demo.4Series.csprojThe build targets .NET 8 and produces output/epi-essentials-demo.4Series.<version>.cplz, the
program library you load alongside Essentials on the processor. For the demo you do not need to
deploy this by hand — the EssentialsDemoConfig repo bundles it, the config file and the React app
into a single .cpz.
A NuGet package is generated on every build. To change its name or details, edit these properties in
the .csproj:
PackageId— the name used to pull the package from NuGet once publishedPackageProjectUrl— the URL of this repoAssemblyTitle— the dll name shown on the processor when the plugin loads
