Merged in feature/ecs-1079 (pull request #13)

Feature/ecs 1079

Approved-by: Neil Dorin <ndorin@pepperdash.com>
This commit is contained in:
Neil Dorin
2019-05-23 22:21:11 +00:00
4 changed files with 216 additions and 213 deletions

View File

@@ -93,11 +93,11 @@ namespace PepperDash.Essentials.Bridges
// (device as CameraBase).LinkToApi(Eisc, d.JoinStart, d.JoinMapKey); // (device as CameraBase).LinkToApi(Eisc, d.JoinStart, d.JoinMapKey);
// continue; // continue;
//} //}
//else if (device is PepperDash.Essentials.Core.TwoWayDisplayBase) else if (device is PepperDash.Essentials.Core.TwoWayDisplayBase)
//{ {
// (device as TwoWayDisplayBase).LinkToApi(Eisc, d.JoinStart, d.JoinMapKey); (device as TwoWayDisplayBase).LinkToApi(Eisc, d.JoinStart, d.JoinMapKey);
// continue; continue;
//} }
else if (device is DmChassisController) else if (device is DmChassisController)
{ {
(device as DmChassisController).LinkToApi(Eisc, d.JoinStart, d.JoinMapKey); (device as DmChassisController).LinkToApi(Eisc, d.JoinStart, d.JoinMapKey);

View File

@@ -1,171 +1,174 @@
//using System; using System;
//using System.Collections.Generic; using System.Collections.Generic;
//using System.Linq; using System.Linq;
//using System.Text; using System.Text;
//using Crestron.SimplSharp; using Crestron.SimplSharp;
//using Crestron.SimplSharpPro.DeviceSupport; using Crestron.SimplSharpPro.DeviceSupport;
//using PepperDash.Core; using PepperDash.Core;
//using PepperDash.Essentials.Core; using PepperDash.Essentials.Core;
//using PepperDash.Essentials.Devices.Common; using PepperDash.Essentials.Devices.Common;
//namespace PepperDash.Essentials.Bridges namespace PepperDash.Essentials.Bridges
//{ {
// public static class DisplayControllerApiExtensions public static class DisplayControllerApiExtensions
// { {
// public static BasicTriList _TriList; public static BasicTriList _TriList;
// public static DisplayControllerJoinMap JoinMap; public static DisplayControllerJoinMap JoinMap;
// public static int InputNumber; public static int InputNumber;
// public static IntFeedback InputNumberFeedback; public static IntFeedback InputNumberFeedback;
// public static List<string> InputKeys = new List<string>(); public static List<string> InputKeys = new List<string>();
// public static void LinkToApi(this PepperDash.Essentials.Core.TwoWayDisplayBase displayDevice, BasicTriList trilist, uint joinStart, string joinMapKey) public static void LinkToApi(this PepperDash.Essentials.Core.TwoWayDisplayBase displayDevice, BasicTriList trilist, uint joinStart, string joinMapKey)
// { {
// JoinMap = JoinMapHelper.GetJoinMapForDevice(joinMapKey) as DisplayControllerJoinMap;
// _TriList = trilist;
// if (JoinMap == null)
// {
// JoinMap = new DisplayControllerJoinMap();
// }
// JoinMap.OffsetJoinNumbers(joinStart);
// Debug.Console(1, "Linking to Trilist '{0}'", trilist.ID.ToString("X"));
// Debug.Console(0, "Linking to Bridge Type {0}", displayDevice.GetType().Name.ToString());
// trilist.StringInput[JoinMap.Name].StringValue = displayDevice.GetType().Name.ToString();
// InputNumberFeedback = new IntFeedback(() => { return InputNumber;});
// InputNumberFeedback.LinkInputSig(trilist.UShortInput[JoinMap.InputSelect]);
// var commMonitor = displayDevice as ICommunicationMonitor;
// commMonitor.CommunicationMonitor.IsOnlineFeedback.LinkInputSig(trilist.BooleanInput[JoinMap.IsOnline]);
// // Poewer Off
// trilist.SetSigTrueAction(JoinMap.PowerOff, () =>
// {
// InputNumber = 102;
// InputNumberFeedback.FireUpdate();
// displayDevice.PowerOff();
// });
// displayDevice.PowerIsOnFeedback.OutputChange += new EventHandler<FeedbackEventArgs>(PowerIsOnFeedback_OutputChange);
// displayDevice.PowerIsOnFeedback.LinkComplementInputSig(trilist.BooleanInput[JoinMap.PowerOff]);
// // Poewer On
// trilist.SetSigTrueAction(JoinMap.PowerOn, () =>
// {
// InputNumber = 0;
// InputNumberFeedback.FireUpdate();
// displayDevice.PowerOn();
// });
// displayDevice.PowerIsOnFeedback.LinkInputSig(trilist.BooleanInput[JoinMap.PowerOn]); JoinMap = JoinMapHelper.GetJoinMapForDevice(joinMapKey) as DisplayControllerJoinMap;
_TriList = trilist;
// int count = 1; if (JoinMap == null)
// foreach (var input in displayDevice.InputPorts) {
// { JoinMap = new DisplayControllerJoinMap();
// InputKeys.Add(input.Key.ToString()); }
// var tempKey = InputKeys.ElementAt(count - 1);
// trilist.SetSigTrueAction((ushort)(JoinMap.InputSelectOffset + count), () => { displayDevice.ExecuteSwitch(displayDevice.InputPorts[tempKey].Selector); });
// trilist.StringInput[(ushort)(JoinMap.InputNamesOffset + count)].StringValue = input.Key.ToString();
// count++;
// }
// displayDevice.CurrentInputFeedback.OutputChange += new EventHandler<FeedbackEventArgs>(CurrentInputFeedback_OutputChange); JoinMap.OffsetJoinNumbers(joinStart);
// trilist.SetUShortSigAction(JoinMap.InputSelect, (a) => Debug.Console(1, "Linking to Trilist '{0}'", _TriList.ID.ToString("X"));
// { Debug.Console(0, "Linking to Bridge Type {0}", displayDevice.GetType().Name.ToString());
// if (a == 0)
// {
// displayDevice.PowerOff();
// InputNumber = 0;
// }
// else if (a > 0 && a < displayDevice.InputPorts.Count && a != InputNumber)
// {
// displayDevice.ExecuteSwitch(displayDevice.InputPorts.ElementAt(a - 1).Selector);
// InputNumber = a;
// }
// else if (a == 102)
// {
// displayDevice.PowerToggle();
// } _TriList.StringInput[JoinMap.Name].StringValue = displayDevice.GetType().Name.ToString();
// InputNumberFeedback.FireUpdate();
// });
// } InputNumberFeedback = new IntFeedback(() => { return InputNumber; });
InputNumberFeedback.LinkInputSig(_TriList.UShortInput[JoinMap.InputSelect]);
var commMonitor = displayDevice as ICommunicationMonitor;
commMonitor.CommunicationMonitor.IsOnlineFeedback.LinkInputSig(trilist.BooleanInput[JoinMap.IsOnline]);
// static void CurrentInputFeedback_OutputChange(object sender, FeedbackEventArgs e) // Poewer Off
// { trilist.SetSigTrueAction(JoinMap.PowerOff, () =>
{
InputNumber = 102;
InputNumberFeedback.FireUpdate();
displayDevice.PowerOff();
});
// Debug.Console(0, "CurrentInputFeedback_OutputChange {0}", e.StringValue); displayDevice.PowerIsOnFeedback.OutputChange += new EventHandler<FeedbackEventArgs>(PowerIsOnFeedback_OutputChange);
displayDevice.PowerIsOnFeedback.LinkComplementInputSig(trilist.BooleanInput[JoinMap.PowerOff]);
// } // PowerOn
trilist.SetSigTrueAction(JoinMap.PowerOn, () =>
{
InputNumber = 0;
InputNumberFeedback.FireUpdate();
displayDevice.PowerOn();
});
// static void PowerIsOnFeedback_OutputChange(object sender, FeedbackEventArgs e)
// {
// // Debug.Console(0, "PowerIsOnFeedback_OutputChange {0}", e.BoolValue); displayDevice.PowerIsOnFeedback.LinkInputSig(trilist.BooleanInput[JoinMap.PowerOn]);
// if (!e.BoolValue)
// {
// InputNumber = 102;
// InputNumberFeedback.FireUpdate();
// } int count = 1;
// else foreach (var input in displayDevice.InputPorts)
// { {
// InputNumber = 0; InputKeys.Add(input.Key.ToString());
// InputNumberFeedback.FireUpdate(); var tempKey = InputKeys.ElementAt(count - 1);
// } trilist.SetSigTrueAction((ushort)(JoinMap.InputSelectOffset + count), () => { displayDevice.ExecuteSwitch(displayDevice.InputPorts[tempKey].Selector); });
// } trilist.StringInput[(ushort)(JoinMap.InputNamesOffset + count)].StringValue = input.Key.ToString();
count++;
}
displayDevice.CurrentInputFeedback.OutputChange += new EventHandler<FeedbackEventArgs>(CurrentInputFeedback_OutputChange);
trilist.SetUShortSigAction(JoinMap.InputSelect, (a) =>
{
if (a == 0)
{
displayDevice.PowerOff();
InputNumber = 0;
}
else if (a > 0 && a < displayDevice.InputPorts.Count && a != InputNumber)
{
displayDevice.ExecuteSwitch(displayDevice.InputPorts.ElementAt(a - 1).Selector);
InputNumber = a;
}
else if (a == 102)
{
displayDevice.PowerToggle();
}
InputNumberFeedback.FireUpdate();
});
}
static void CurrentInputFeedback_OutputChange(object sender, FeedbackEventArgs e)
{
Debug.Console(0, "CurrentInputFeedback_OutputChange {0}", e.StringValue);
}
static void PowerIsOnFeedback_OutputChange(object sender, FeedbackEventArgs e)
{
// Debug.Console(0, "PowerIsOnFeedback_OutputChange {0}", e.BoolValue);
if (!e.BoolValue)
{
InputNumber = 102;
InputNumberFeedback.FireUpdate();
}
else
{
InputNumber = 0;
InputNumberFeedback.FireUpdate();
}
}
// } }
// public class DisplayControllerJoinMap : JoinMapBase public class DisplayControllerJoinMap : JoinMapBase
// { {
// public uint Name { get; set; } public uint Name { get; set; }
// public uint InputNamesOffset { get; set; } public uint InputNamesOffset { get; set; }
// public uint InputSelectOffset { get; set; } public uint InputSelectOffset { get; set; }
// public uint IsOnline { get; set; } public uint IsOnline { get; set; }
// public uint PowerOff { get; set; } public uint PowerOff { get; set; }
// public uint InputSelect { get; set; } public uint InputSelect { get; set; }
// public uint PowerOn { get; set; } public uint PowerOn { get; set; }
// public uint SelectScene { get; set; } public uint SelectScene { get; set; }
// public uint LightingSceneOffset { get; set; } public uint LightingSceneOffset { get; set; }
// public uint ButtonVisibilityOffset { get; set; } public uint ButtonVisibilityOffset { get; set; }
// public uint IntegrationIdSet { get; set; } public uint IntegrationIdSet { get; set; }
// public DisplayControllerJoinMap() public DisplayControllerJoinMap()
// { {
// // Digital // Digital
// IsOnline = 50; IsOnline = 50;
// PowerOff = 1; PowerOff = 1;
// PowerOn = 2; PowerOn = 2;
// InputSelect = 4; InputSelect = 4;
// IntegrationIdSet = 1; IntegrationIdSet = 1;
// LightingSceneOffset = 10; LightingSceneOffset = 10;
// ButtonVisibilityOffset = 40; ButtonVisibilityOffset = 40;
// Name = 1; Name = 1;
// InputNamesOffset = 10; InputNamesOffset = 10;
// InputSelectOffset = 4; InputSelectOffset = 4;
// // Analog // Analog
// } }
// public override void OffsetJoinNumbers(uint joinStart) public override void OffsetJoinNumbers(uint joinStart)
// { {
// var joinOffset = joinStart - 1; var joinOffset = joinStart - 1;
// IsOnline = IsOnline + joinOffset; IsOnline = IsOnline + joinOffset;
// PowerOff = PowerOff + joinOffset; PowerOff = PowerOff + joinOffset;
// PowerOn = PowerOn + joinOffset; PowerOn = PowerOn + joinOffset;
// SelectScene = SelectScene + joinOffset; SelectScene = SelectScene + joinOffset;
// LightingSceneOffset = LightingSceneOffset + joinOffset; LightingSceneOffset = LightingSceneOffset + joinOffset;
// ButtonVisibilityOffset = ButtonVisibilityOffset + joinOffset; ButtonVisibilityOffset = ButtonVisibilityOffset + joinOffset;
// Name = Name + joinOffset; Name = Name + joinOffset;
// InputNamesOffset = InputNamesOffset + joinOffset; InputNamesOffset = InputNamesOffset + joinOffset;
// InputSelectOffset = InputSelectOffset + joinOffset; InputSelectOffset = InputSelectOffset + joinOffset;
// } }
// } }
//} }

View File

@@ -48,27 +48,27 @@
<ItemGroup> <ItemGroup>
<Reference Include="Crestron.SimplSharpPro.DeviceSupport, Version=1.0.0.0, Culture=neutral, PublicKeyToken=1099c178b3b54c3b, processorArchitecture=MSIL"> <Reference Include="Crestron.SimplSharpPro.DeviceSupport, Version=1.0.0.0, Culture=neutral, PublicKeyToken=1099c178b3b54c3b, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion> <SpecificVersion>False</SpecificVersion>
<HintPath>..\..\..\..\..\..\..\ProgramData\Crestron\SDK\SSPDevices\Crestron.SimplSharpPro.DeviceSupport.dll</HintPath> <HintPath>..\..\..\..\..\..\..\..\ProgramData\Crestron\SDK\SSPDevices\Crestron.SimplSharpPro.DeviceSupport.dll</HintPath>
</Reference> </Reference>
<Reference Include="Crestron.SimplSharpPro.DM, Version=1.0.0.0, Culture=neutral, PublicKeyToken=1099c178b3b54c3b, processorArchitecture=MSIL"> <Reference Include="Crestron.SimplSharpPro.DM, Version=1.0.0.0, Culture=neutral, PublicKeyToken=1099c178b3b54c3b, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion> <SpecificVersion>False</SpecificVersion>
<HintPath>..\..\..\..\..\..\..\ProgramData\Crestron\SDK\SSPDevices\Crestron.SimplSharpPro.DM.dll</HintPath> <HintPath>..\..\..\..\..\..\..\..\ProgramData\Crestron\SDK\SSPDevices\Crestron.SimplSharpPro.DM.dll</HintPath>
</Reference> </Reference>
<Reference Include="Crestron.SimplSharpPro.EthernetCommunications, Version=1.0.0.0, Culture=neutral, PublicKeyToken=1099c178b3b54c3b, processorArchitecture=MSIL"> <Reference Include="Crestron.SimplSharpPro.EthernetCommunications, Version=1.0.0.0, Culture=neutral, PublicKeyToken=1099c178b3b54c3b, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion> <SpecificVersion>False</SpecificVersion>
<HintPath>..\..\..\..\..\..\..\ProgramData\Crestron\SDK\SSPDevices\Crestron.SimplSharpPro.EthernetCommunications.dll</HintPath> <HintPath>..\..\..\..\..\..\..\..\ProgramData\Crestron\SDK\SSPDevices\Crestron.SimplSharpPro.EthernetCommunications.dll</HintPath>
</Reference> </Reference>
<Reference Include="Crestron.SimplSharpPro.Fusion, Version=1.0.0.0, Culture=neutral, PublicKeyToken=1099c178b3b54c3b, processorArchitecture=MSIL"> <Reference Include="Crestron.SimplSharpPro.Fusion, Version=1.0.0.0, Culture=neutral, PublicKeyToken=1099c178b3b54c3b, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion> <SpecificVersion>False</SpecificVersion>
<HintPath>..\..\..\..\..\..\..\ProgramData\Crestron\SDK\SSPDevices\Crestron.SimplSharpPro.Fusion.dll</HintPath> <HintPath>..\..\..\..\..\..\..\..\ProgramData\Crestron\SDK\SSPDevices\Crestron.SimplSharpPro.Fusion.dll</HintPath>
</Reference> </Reference>
<Reference Include="Crestron.SimplSharpPro.Remotes, Version=1.0.0.0, Culture=neutral, PublicKeyToken=1099c178b3b54c3b, processorArchitecture=MSIL"> <Reference Include="Crestron.SimplSharpPro.Remotes, Version=1.0.0.0, Culture=neutral, PublicKeyToken=1099c178b3b54c3b, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion> <SpecificVersion>False</SpecificVersion>
<HintPath>..\..\..\..\..\..\..\ProgramData\Crestron\SDK\SSPDevices\Crestron.SimplSharpPro.Remotes.dll</HintPath> <HintPath>..\..\..\..\..\..\..\..\ProgramData\Crestron\SDK\SSPDevices\Crestron.SimplSharpPro.Remotes.dll</HintPath>
</Reference> </Reference>
<Reference Include="Crestron.SimplSharpPro.UI, Version=1.0.0.0, Culture=neutral, PublicKeyToken=1099c178b3b54c3b, processorArchitecture=MSIL"> <Reference Include="Crestron.SimplSharpPro.UI, Version=1.0.0.0, Culture=neutral, PublicKeyToken=1099c178b3b54c3b, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion> <SpecificVersion>False</SpecificVersion>
<HintPath>..\..\..\..\..\..\..\ProgramData\Crestron\SDK\SSPDevices\Crestron.SimplSharpPro.UI.dll</HintPath> <HintPath>..\..\..\..\..\..\..\..\ProgramData\Crestron\SDK\SSPDevices\Crestron.SimplSharpPro.UI.dll</HintPath>
</Reference> </Reference>
<Reference Include="mscorlib" /> <Reference Include="mscorlib" />
<Reference Include="PepperDash_Core, Version=1.0.3.27452, Culture=neutral, processorArchitecture=MSIL"> <Reference Include="PepperDash_Core, Version=1.0.3.27452, Culture=neutral, processorArchitecture=MSIL">
@@ -81,27 +81,27 @@
</Reference> </Reference>
<Reference Include="SimplSharpCustomAttributesInterface, Version=1.0.0.0, Culture=neutral, PublicKeyToken=1099c178b3b54c3b, processorArchitecture=MSIL"> <Reference Include="SimplSharpCustomAttributesInterface, Version=1.0.0.0, Culture=neutral, PublicKeyToken=1099c178b3b54c3b, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion> <SpecificVersion>False</SpecificVersion>
<HintPath>..\..\..\..\..\..\..\ProgramData\Crestron\SDK\SimplSharpCustomAttributesInterface.dll</HintPath> <HintPath>..\..\..\..\..\..\..\..\ProgramData\Crestron\SDK\SimplSharpCustomAttributesInterface.dll</HintPath>
</Reference> </Reference>
<Reference Include="SimplSharpHelperInterface, Version=1.0.0.0, Culture=neutral, PublicKeyToken=1099c178b3b54c3b, processorArchitecture=MSIL"> <Reference Include="SimplSharpHelperInterface, Version=1.0.0.0, Culture=neutral, PublicKeyToken=1099c178b3b54c3b, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion> <SpecificVersion>False</SpecificVersion>
<HintPath>..\..\..\..\..\..\..\ProgramData\Crestron\SDK\SimplSharpHelperInterface.dll</HintPath> <HintPath>..\..\..\..\..\..\..\..\ProgramData\Crestron\SDK\SimplSharpHelperInterface.dll</HintPath>
</Reference> </Reference>
<Reference Include="SimplSharpNewtonsoft, Version=1.0.0.0, Culture=neutral, PublicKeyToken=1099c178b3b54c3b, processorArchitecture=MSIL"> <Reference Include="SimplSharpNewtonsoft, Version=1.0.0.0, Culture=neutral, PublicKeyToken=1099c178b3b54c3b, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion> <SpecificVersion>False</SpecificVersion>
<HintPath>..\..\..\..\..\..\..\ProgramData\Crestron\SDK\SimplSharpNewtonsoft.dll</HintPath> <HintPath>..\..\..\..\..\..\..\..\ProgramData\Crestron\SDK\SimplSharpNewtonsoft.dll</HintPath>
</Reference> </Reference>
<Reference Include="SimplSharpPro, Version=1.5.2.0, Culture=neutral, PublicKeyToken=1099c178b3b54c3b, processorArchitecture=MSIL"> <Reference Include="SimplSharpPro, Version=1.5.3.17, Culture=neutral, PublicKeyToken=1099c178b3b54c3b, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion> <SpecificVersion>False</SpecificVersion>
<HintPath>..\..\..\..\..\..\..\ProgramData\Crestron\SDK\SimplSharpPro.exe</HintPath> <HintPath>..\..\..\..\..\..\..\..\ProgramData\Crestron\SDK\SimplSharpPro.exe</HintPath>
</Reference> </Reference>
<Reference Include="SimplSharpReflectionInterface, Version=1.0.5583.25238, Culture=neutral, PublicKeyToken=1099c178b3b54c3b, processorArchitecture=MSIL"> <Reference Include="SimplSharpReflectionInterface, Version=1.0.5583.25238, Culture=neutral, PublicKeyToken=1099c178b3b54c3b, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion> <SpecificVersion>False</SpecificVersion>
<HintPath>..\..\..\..\..\..\..\ProgramData\Crestron\SDK\SimplSharpReflectionInterface.dll</HintPath> <HintPath>..\..\..\..\..\..\..\..\ProgramData\Crestron\SDK\SimplSharpReflectionInterface.dll</HintPath>
</Reference> </Reference>
<Reference Include="SimplSharpTimerEventInterface, Version=1.0.6197.20052, Culture=neutral, PublicKeyToken=1099c178b3b54c3b, processorArchitecture=MSIL"> <Reference Include="SimplSharpTimerEventInterface, Version=1.0.6197.20052, Culture=neutral, PublicKeyToken=1099c178b3b54c3b, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion> <SpecificVersion>False</SpecificVersion>
<HintPath>..\..\..\..\..\..\..\ProgramData\Crestron\SDK\SimplSharpTimerEventInterface.dll</HintPath> <HintPath>..\..\..\..\..\..\..\..\ProgramData\Crestron\SDK\SimplSharpTimerEventInterface.dll</HintPath>
</Reference> </Reference>
<Reference Include="System" /> <Reference Include="System" />
<Reference Include="System.Core" /> <Reference Include="System.Core" />