Compare commits

...

4 Commits

Author SHA1 Message Date
Neil Dorin
d3599ac863 Merge branch 'development' into hotfix/dm-build-issues 2023-04-27 09:29:05 -06:00
Andrew Welker
0df315426b fix: use new interface for parentDev
The GetDmRmcController & GetDmTxController methods were
previously ignoring the `DmBladeChassisController` type.
This was causing transmitters connected to a DM blade chassis to
not be built,
2023-04-26 13:32:49 -06:00
Andrew Welker
6ddbdd90c7 feat: add new interface and update Chassis controllers 2023-04-26 13:32:18 -06:00
Andrew Welker
b221d2f0cb Merge pull request #1098 from PepperDash/hotfix/DisplayPortHdcp
Resolve Issues with HDCP Displayport
2023-04-19 08:20:02 -06:00
5 changed files with 15 additions and 7 deletions

View File

@@ -22,7 +22,7 @@ namespace PepperDash.Essentials.DM
/// Builds a controller for basic DM-RMCs with Com and IR ports and no control functions
///
/// </summary>
public class DmBladeChassisController : CrestronGenericBridgeableBaseDevice, IDmSwitch, IRoutingNumericWithFeedback
public class DmBladeChassisController : CrestronGenericBridgeableBaseDevice, IDmSwitchWithEndpointOnlineFeedback, IRoutingNumericWithFeedback
{
private const string NonePortKey = "inputCard0--None";

View File

@@ -23,7 +23,7 @@ namespace PepperDash.Essentials.DM
///
/// </summary>
[Description("Wrapper class for all DM-MD chassis variants from 8x8 to 32x32")]
public class DmChassisController : CrestronGenericBridgeableBaseDevice, IDmSwitch, IRoutingNumericWithFeedback
public class DmChassisController : CrestronGenericBridgeableBaseDevice, IDmSwitchWithEndpointOnlineFeedback, IRoutingNumericWithFeedback
{
private const string NonePortKey = "inputCard0--None";
public DMChassisPropertiesConfig PropertiesConfig { get; set; }

View File

@@ -436,9 +436,9 @@ namespace PepperDash.Essentials.DM
}
return rx;
}
else if (parentDev is DmChassisController)
else if (parentDev is IDmSwitchWithEndpointOnlineFeedback)
{
var controller = parentDev as DmChassisController;
var controller = parentDev as IDmSwitchWithEndpointOnlineFeedback;
var chassis = controller.Chassis;
var num = props.ParentOutputNumber;
Debug.Console(1, "Creating DM Chassis device '{0}'. Output number '{1}'.", key, num);

View File

@@ -127,10 +127,10 @@ namespace PepperDash.Essentials.DM
BasicDmTxControllerBase tx;
bool useChassisForOfflineFeedback = false;
if (parentDev is DmChassisController)
if (parentDev is IDmSwitchWithEndpointOnlineFeedback)
{
// Get the Crestron chassis and link stuff up
var switchDev = (parentDev as DmChassisController);
var switchDev = (parentDev as IDmSwitchWithEndpointOnlineFeedback);
var chassis = switchDev.Chassis;
//Check that the input is within range of this chassis' possible inputs
@@ -179,6 +179,7 @@ namespace PepperDash.Essentials.DM
return null;
}
}
if (parentDev is DmpsRoutingController)
{
// Get the DMPS chassis and link stuff up

View File

@@ -16,10 +16,17 @@ using PepperDash.Essentials.Core;
using PepperDash.Essentials.DM.Config;
namespace PepperDash.Essentials.DM {
public interface IDmSwitch {
public interface IDmSwitch
{
Switch Chassis { get; }
Dictionary<uint, string> TxDictionary { get; }
Dictionary<uint, string> RxDictionary { get; }
}
public interface IDmSwitchWithEndpointOnlineFeedback : IDmSwitch
{
Dictionary<uint, BoolFeedback> InputEndpointOnlineFeedbacks { get; }
Dictionary<uint, BoolFeedback> OutputEndpointOnlineFeedbacks { get; }
}
}