mirror of
https://github.com/PepperDash/Essentials.git
synced 2026-02-11 18:54:52 +00:00
Fixes for offline feedback for DM endpoints that don't provide offline feedback in the hardware definition. Adds offline and name feedback to joinMap for these devices.
This commit is contained in:
@@ -6,6 +6,7 @@ using Crestron.SimplSharp;
|
||||
using Crestron.SimplSharpPro;
|
||||
using Crestron.SimplSharpPro.DeviceSupport;
|
||||
using Crestron.SimplSharpPro.DM.Endpoints.Transmitters;
|
||||
using Crestron.SimplSharpPro.DM;
|
||||
using Newtonsoft.Json;
|
||||
|
||||
using PepperDash.Core;
|
||||
@@ -18,7 +19,7 @@ namespace PepperDash.Essentials.DM
|
||||
/// Controller class for suitable for HDBaseT transmitters
|
||||
/// </summary>
|
||||
[Description("Wrapper Class for HDBaseT devices based on HDTx3CB class")]
|
||||
public class HDBaseTTxController: BasicDmTxControllerBase, IRoutingInputsOutputs, IComPorts
|
||||
public class HDBaseTTxController : BasicDmTxControllerBase, IRoutingInputsOutputs, IComPorts
|
||||
{
|
||||
public RoutingInputPort HdmiIn { get; private set; }
|
||||
public RoutingOutputPort DmOut { get; private set; }
|
||||
@@ -34,6 +35,21 @@ namespace PepperDash.Essentials.DM
|
||||
|
||||
InputPorts = new RoutingPortCollection<RoutingInputPort> { HdmiIn };
|
||||
OutputPorts = new RoutingPortCollection<RoutingOutputPort> { DmOut };
|
||||
|
||||
var parentDev = DeviceManager.GetDeviceForKey(key);
|
||||
var num = tx.DMInputOutput.Number;
|
||||
if (parentDev is DmpsRoutingController)
|
||||
{
|
||||
var dmps = parentDev as DmpsRoutingController;
|
||||
IsOnline.SetValueFunc(() => dmps.InputEndpointOnlineFeedbacks[num].BoolValue);
|
||||
dmps.InputEndpointOnlineFeedbacks[num].OutputChange += (o, a) => IsOnline.FireUpdate();
|
||||
}
|
||||
else if (parentDev is DmChassisController)
|
||||
{
|
||||
var controller = parentDev as DmChassisController;
|
||||
IsOnline.SetValueFunc(() => controller.InputEndpointOnlineFeedbacks[num].BoolValue);
|
||||
controller.InputEndpointOnlineFeedbacks[num].OutputChange += (o, a) => IsOnline.FireUpdate();
|
||||
}
|
||||
}
|
||||
|
||||
#region IRoutingInputs Members
|
||||
@@ -79,7 +95,7 @@ namespace PepperDash.Essentials.DM
|
||||
Debug.Console(1, this, "Linking to Trilist '{0}'", trilist.ID.ToString("X"));
|
||||
|
||||
this.IsOnline.LinkInputSig(trilist.BooleanInput[joinMap.IsOnline.JoinNumber]);
|
||||
|
||||
trilist.StringInput[joinMap.Name.JoinNumber].StringValue = this.Name;
|
||||
}
|
||||
|
||||
#endregion
|
||||
@@ -100,6 +116,10 @@ namespace PepperDash.Essentials.DM
|
||||
JoinCapabilities = eJoinCapabilities.ToSIMPL,
|
||||
JoinType = eJoinType.Digital
|
||||
});
|
||||
|
||||
[JoinName("Name")]
|
||||
public JoinDataComplete Name = new JoinDataComplete(new JoinData { JoinNumber = 6, JoinSpan = 1 },
|
||||
new JoinMetadata { Description = "DM Tx Name", JoinCapabilities = eJoinCapabilities.ToSIMPL, JoinType = eJoinType.Serial });
|
||||
|
||||
/// <summary>
|
||||
/// Plugin device BridgeJoinMap constructor
|
||||
|
||||
Reference in New Issue
Block a user