mirror of
https://github.com/PepperDash/Essentials.git
synced 2026-02-15 12:44:58 +00:00
Additional progress after initial testing. Having issues iterating CrestronControlSystem.SwitcherInputs/Outputs collections.
This commit is contained in:
@@ -356,8 +356,22 @@ namespace PepperDash.Essentials
|
|||||||
public void LoadDevices()
|
public void LoadDevices()
|
||||||
{
|
{
|
||||||
// Build the processor wrapper class
|
// Build the processor wrapper class
|
||||||
|
|
||||||
DeviceManager.AddDevice(new PepperDash.Essentials.Core.Devices.CrestronProcessor("processor"));
|
DeviceManager.AddDevice(new PepperDash.Essentials.Core.Devices.CrestronProcessor("processor"));
|
||||||
|
|
||||||
|
// Check if the processor is a DMPS model
|
||||||
|
if (this.ControllerPrompt.IndexOf("dmps", StringComparison.OrdinalIgnoreCase) > -1)
|
||||||
|
{
|
||||||
|
Debug.Console(2, "Adding DmpsRoutingController for {0} to Device Manager.", this.ControllerPrompt);
|
||||||
|
|
||||||
|
var dmpsRoutingController = DmpsRoutingController.GetDmpsRoutingController("processor-avRouting", this.ControllerPrompt, new DM.Config.DmpsRoutingPropertiesConfig());
|
||||||
|
DeviceManager.AddDevice(dmpsRoutingController);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
Debug.Console(2, "************Processor is not DMPS type***************");
|
||||||
|
}
|
||||||
|
|
||||||
// Add global System Monitor device
|
// Add global System Monitor device
|
||||||
DeviceManager.AddDevice(new PepperDash.Essentials.Core.Monitoring.SystemMonitorController("systemMonitor"));
|
DeviceManager.AddDevice(new PepperDash.Essentials.Core.Monitoring.SystemMonitorController("systemMonitor"));
|
||||||
|
|
||||||
@@ -373,7 +387,7 @@ namespace PepperDash.Essentials
|
|||||||
if (devConf.Type.ToLower() != Global.ControlSystem.ControllerPrompt.ToLower())
|
if (devConf.Type.ToLower() != Global.ControlSystem.ControllerPrompt.ToLower())
|
||||||
Debug.Console(0,
|
Debug.Console(0,
|
||||||
"WARNING: Config file defines processor type as '{0}' but actual processor is '{1}'! Some ports may not be available",
|
"WARNING: Config file defines processor type as '{0}' but actual processor is '{1}'! Some ports may not be available",
|
||||||
devConf.Type.ToUpper(), Global.ControlSystem.ControllerPrompt.ToUpper());
|
devConf.Type.ToUpper(), Global.ControlSystem.ControllerPrompt.ToUpper());
|
||||||
|
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -49,14 +49,12 @@ namespace PepperDash.Essentials.DM
|
|||||||
Dictionary<PortNumberType, CTimer> RouteOffTimers = new Dictionary<PortNumberType, CTimer>();
|
Dictionary<PortNumberType, CTimer> RouteOffTimers = new Dictionary<PortNumberType, CTimer>();
|
||||||
|
|
||||||
public static DmpsRoutingController GetDmpsRoutingController(string key, string name,
|
public static DmpsRoutingController GetDmpsRoutingController(string key, string name,
|
||||||
string type, DmpsRoutingPropertiesConfig properties)
|
DmpsRoutingPropertiesConfig properties)
|
||||||
{
|
{
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
ISystemControl systemControl = null;
|
ISystemControl systemControl = null;
|
||||||
|
|
||||||
type = type.ToLower();
|
|
||||||
|
|
||||||
systemControl = Global.ControlSystem.SystemControl as ISystemControl;
|
systemControl = Global.ControlSystem.SystemControl as ISystemControl;
|
||||||
|
|
||||||
if (systemControl == null)
|
if (systemControl == null)
|
||||||
@@ -90,8 +88,8 @@ namespace PepperDash.Essentials.DM
|
|||||||
: base(key, name)
|
: base(key, name)
|
||||||
{
|
{
|
||||||
Dmps = Global.ControlSystem;
|
Dmps = Global.ControlSystem;
|
||||||
|
|
||||||
SystemControl = systemControl;
|
SystemControl = systemControl;
|
||||||
|
|
||||||
InputPorts = new RoutingPortCollection<RoutingInputPort>();
|
InputPorts = new RoutingPortCollection<RoutingInputPort>();
|
||||||
OutputPorts = new RoutingPortCollection<RoutingOutputPort>();
|
OutputPorts = new RoutingPortCollection<RoutingOutputPort>();
|
||||||
VolumeControls = new Dictionary<uint, DmCardAudioOutputController>();
|
VolumeControls = new Dictionary<uint, DmCardAudioOutputController>();
|
||||||
@@ -112,13 +110,27 @@ namespace PepperDash.Essentials.DM
|
|||||||
Dmps.DMOutputChange +=new DMOutputEventHandler(Dmps_DMOutputChange);
|
Dmps.DMOutputChange +=new DMOutputEventHandler(Dmps_DMOutputChange);
|
||||||
|
|
||||||
// Default to EnableAudioBreakaway
|
// Default to EnableAudioBreakaway
|
||||||
SystemControl.EnableAudioBreakaway.BoolValue = true;
|
//SystemControl.EnableAudioBreakaway. = true;
|
||||||
|
|
||||||
for (uint x = 1; x <= Dmps.NumberOfSwitcherOutputs; x++)
|
Debug.Console(1, this, "{0} Switcher Inputs Present.", Dmps.NumberOfSwitcherInputs);
|
||||||
|
Debug.Console(1, this, "{0} Switcher Outputs Present.", Dmps.NumberOfSwitcherOutputs);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
uint tempX = 1;
|
||||||
|
|
||||||
|
foreach (var card in Dmps.SwitcherOutputs)
|
||||||
{
|
{
|
||||||
var tempX = x;
|
Debug.Console(1, this, "Output Card Type: {0}", card.CardInputOutputType);
|
||||||
|
|
||||||
Card.Dmps3OutputBase outputCard = Dmps.SwitcherOutputs[tempX] as Card.Dmps3OutputBase;
|
var outputCard = card as Card.Dmps3OutputBase;
|
||||||
|
//}
|
||||||
|
|
||||||
|
//for (uint x = 1; x <= Dmps.NumberOfSwitcherOutputs; x++)
|
||||||
|
//{
|
||||||
|
//var tempX = x;
|
||||||
|
|
||||||
|
//Card.Dmps3OutputBase outputCard = Dmps.SwitcherOutputs[tempX] as Card.Dmps3OutputBase;
|
||||||
|
|
||||||
if (outputCard != null)
|
if (outputCard != null)
|
||||||
{
|
{
|
||||||
@@ -170,15 +182,25 @@ namespace PepperDash.Essentials.DM
|
|||||||
|
|
||||||
OutputEndpointOnlineFeedbacks[tempX] = new BoolFeedback(() => { return outputCard.EndpointOnlineFeedback; });
|
OutputEndpointOnlineFeedbacks[tempX] = new BoolFeedback(() => { return outputCard.EndpointOnlineFeedback; });
|
||||||
|
|
||||||
AddOutputCard(tempX, outputCard);
|
AddOutputCard(tempX, outputCard);
|
||||||
|
|
||||||
|
tempX++;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
for (uint x = 1; x <= Dmps.NumberOfSwitcherInputs; x++)
|
tempX = 1;
|
||||||
{
|
|
||||||
var tempX = x;
|
|
||||||
|
|
||||||
DMInput inputCard = Dmps.SwitcherInputs[tempX] as DMInput;
|
foreach (var card in Dmps.SwitcherInputs)
|
||||||
|
{
|
||||||
|
var inputCard = card as DMInput;
|
||||||
|
|
||||||
|
Debug.Console(1, this, "Output Card Type: {0}", card.CardInputOutputType);
|
||||||
|
|
||||||
|
//for (uint x = 1; x <= Dmps.NumberOfSwitcherInputs; x++)
|
||||||
|
//{
|
||||||
|
// var tempX = x;
|
||||||
|
|
||||||
|
// DMInput inputCard = Dmps.SwitcherInputs[tempX] as DMInput;
|
||||||
|
|
||||||
if (inputCard != null)
|
if (inputCard != null)
|
||||||
{
|
{
|
||||||
@@ -200,6 +222,8 @@ namespace PepperDash.Essentials.DM
|
|||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
AddInputCard(tempX, inputCard);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -388,7 +412,7 @@ namespace PepperDash.Essentials.DM
|
|||||||
{
|
{
|
||||||
case (DMInputEventIds.OnlineFeedbackEventId):
|
case (DMInputEventIds.OnlineFeedbackEventId):
|
||||||
{
|
{
|
||||||
Debug.Console(2, this, "DMINput OnlineFeedbackEventId for input: {0}. State: {1}", args.Number, device.Inputs[args.Number].EndpointOnlineFeedback);
|
Debug.Console(2, this, "DM Input OnlineFeedbackEventId for input: {0}. State: {1}", args.Number, device.Inputs[args.Number].EndpointOnlineFeedback);
|
||||||
InputEndpointOnlineFeedbacks[args.Number].FireUpdate();
|
InputEndpointOnlineFeedbacks[args.Number].FireUpdate();
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -19,6 +19,12 @@ namespace PepperDash.Essentials.DM.Config
|
|||||||
|
|
||||||
[JsonProperty("outputNames")]
|
[JsonProperty("outputNames")]
|
||||||
public Dictionary<uint, string> OutputNames { get; set; }
|
public Dictionary<uint, string> OutputNames { get; set; }
|
||||||
|
|
||||||
|
public DmpsRoutingPropertiesConfig()
|
||||||
|
{
|
||||||
|
InputNames = new Dictionary<uint, string>();
|
||||||
|
OutputNames = new Dictionary<uint, string>();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user