Added Ddvc01VtcMessenger; added to bridge; basic functions and feedbacks

This commit is contained in:
Heath Volmer
2019-01-22 12:00:50 -07:00
parent 37e2dfd11f
commit a870418f96
11 changed files with 844 additions and 488 deletions

View File

@@ -16,12 +16,33 @@ namespace PepperDash.Essentials.AppServer.Messengers
{ {
BasicTriList EISC; BasicTriList EISC;
/// <summary>
/// 221
/// </summary>
const uint BDialHangup = 221; const uint BDialHangup = 221;
/// <summary>
/// 251
/// </summary>
const uint BIncomingAnswer = 251; const uint BIncomingAnswer = 251;
/// <summary>
/// 252
/// </summary>
const uint BIncomingReject = 252; const uint BIncomingReject = 252;
/// <summary>
/// 241
/// </summary>
const uint BSpeedDial1 = 241; const uint BSpeedDial1 = 241;
/// <summary>
/// 242
/// </summary>
const uint BSpeedDial2 = 242; const uint BSpeedDial2 = 242;
/// <summary>
/// 243
/// </summary>
const uint BSpeedDial3 = 243; const uint BSpeedDial3 = 243;
/// <summary>
/// 244
/// </summary>
const uint BSpeedDial4 = 244; const uint BSpeedDial4 = 244;
/// <summary> /// <summary>
@@ -46,7 +67,7 @@ namespace PepperDash.Essentials.AppServer.Messengers
const uint SCallDirection = 222; const uint SCallDirection = 222;
/// <summary> /// <summary>
/// /// 201-212 0-9*#
/// </summary> /// </summary>
Dictionary<string, uint> DTMFMap = new Dictionary<string, uint> Dictionary<string, uint> DTMFMap = new Dictionary<string, uint>
{ {
@@ -64,6 +85,9 @@ namespace PepperDash.Essentials.AppServer.Messengers
{ "#", 212 }, { "#", 212 },
}; };
/// <summary>
///
/// </summary>
CodecActiveCallItem CurrentCallItem; CodecActiveCallItem CurrentCallItem;
@@ -160,6 +184,9 @@ namespace PepperDash.Essentials.AppServer.Messengers
})); }));
} }
/// <summary>
///
/// </summary>
void SendCallsList() void SendCallsList()
{ {
PostStatusMessage(new PostStatusMessage(new

View File

@@ -0,0 +1,320 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Crestron.SimplSharp;
using Crestron.SimplSharpPro.DeviceSupport;
using Crestron.SimplSharpPro.EthernetCommunication;
using PepperDash.Core;
using PepperDash.Essentials.Core;
using PepperDash.Essentials.Devices.Common.Codec;
namespace PepperDash.Essentials.AppServer.Messengers
{
public class Ddvc01VtcMessenger : MessengerBase
{
BasicTriList EISC;
/********* Bools *********/
/// <summary>
/// 724
/// </summary>
const uint BDialHangup = 724;
/// <summary>
/// 750
/// </summary>
const uint BCallIncoming = 750;
/// <summary>
/// 751
/// </summary>
const uint BIncomingAnswer = 751;
/// <summary>
/// 752
/// </summary>
const uint BIncomingReject = 752;
/// <summary>
/// 741
/// </summary>
const uint BSpeedDial1 = 741;
/// <summary>
/// 742
/// </summary>
const uint BSpeedDial2 = 742;
/// <summary>
/// 743
/// </summary>
const uint BSpeedDial3 = 743;
/// <summary>
/// 744
/// </summary>
const uint BSpeedDial4 = 744;
/// <summary>
/// 800
/// </summary>
const uint BDirectorySearchBusy = 800;
/// <summary>
/// 801 when selected entry is a contact
/// </summary>
const uint BDirectoryEntryIsContact = 801;
/// <summary>
/// 802 To show/hide back button
/// </summary>
const uint BDirectoryIsAtTop = 802;
/// <summary>
/// 811
/// </summary>
const uint BCameraControlUp = 811;
/// <summary>
/// 812
/// </summary>
const uint BCameraControlDown = 812;
/// <summary>
/// 813
/// </summary>
const uint BCameraControlLeft = 813;
/// <summary>
/// 814
/// </summary>
const uint BCameraControlRight = 814;
/// <summary>
/// 815
/// </summary>
const uint BCameraControlZoomIn = 815;
/// <summary>
/// 816
/// </summary>
const uint BCameraControlZoomOut = 816;
/// <summary>
/// 821 - 826
/// </summary>
const uint BCameraPresetStart = 821;
/********* Ushorts *********/
/// <summary>
/// 801
/// </summary>
const uint UDirectorySelectRow = 801;
/// <summary>
/// 801
/// </summary>
const uint UDirectoryRowCount = 801;
/********* Strings *********/
/// <summary>
/// 701
/// </summary>
const uint SCurrentDialString = 701;
/// <summary>
/// 711
/// </summary>
const uint SCurrentCallNumber = 711;
/// <summary>
/// 712
/// </summary>
const uint SCurrentCallName = 712;
/// <summary>
/// 731
/// </summary>
const uint SHookState = 731;
/// <summary>
/// 722
/// </summary>
const uint SCallDirection = 722;
/// <summary>
/// 751
/// </summary>
const uint SIncomingCallName = 751;
/// <summary>
/// 752
/// </summary>
const uint SIncomingCallNumber = 752;
/// <summary>
/// 800
/// </summary>
const uint SDirectorySearchString = 800;
/// <summary>
/// 801-1055
/// </summary>
const uint SDirectoryEntriesStart = 801;
/// <summary>
/// 1056
/// </summary>
const uint SDirectoryEntrySelectedName = 1056;
/// <summary>
/// 1057
/// </summary>
const uint SDirectoryEntrySelectedNumber = 1057;
/// <summary>
/// 701-712 0-9*#
/// </summary>
Dictionary<string, uint> DTMFMap = new Dictionary<string, uint>
{
{ "1", 701 },
{ "2", 702 },
{ "3", 703 },
{ "4", 704 },
{ "5", 705 },
{ "6", 706 },
{ "7", 707 },
{ "8", 708 },
{ "9", 709 },
{ "0", 710 },
{ "*", 711 },
{ "#", 712 },
};
CodecActiveCallItem CurrentCallItem;
CodecActiveCallItem IncomingCallItem;
/// <summary>
///
/// </summary>
/// <param name="eisc"></param>
/// <param name="messagePath"></param>
public Ddvc01VtcMessenger(string key, BasicTriList eisc, string messagePath)
: base(key, messagePath)
{
EISC = eisc;
CurrentCallItem = new CodecActiveCallItem();
CurrentCallItem.Type = eCodecCallType.Video;
CurrentCallItem.Id = "-video-";
}
/// <summary>
///
/// </summary>
void SendFullStatus()
{
this.PostStatusMessage(new
{
calls = GetCurrentCallList(),
currentCallString = EISC.GetString(SCurrentCallNumber),
currentDialString = EISC.GetString(SCurrentDialString),
isInCall = EISC.GetString(SHookState) == "Connected",
});
}
/// <summary>
///
/// </summary>
/// <param name="appServerController"></param>
protected override void CustomRegisterWithAppServer(CotijaSystemController appServerController)
{
EISC.SetStringSigAction(SHookState, s =>
{
CurrentCallItem.Status = (eCodecCallStatus)Enum.Parse(typeof(eCodecCallStatus), s, true);
SendCallsList();
});
EISC.SetStringSigAction(SCurrentCallNumber, s =>
{
CurrentCallItem.Number = s;
SendCallsList();
});
EISC.SetStringSigAction(SCurrentCallName, s =>
{
CurrentCallItem.Name = s;
SendCallsList();
});
EISC.SetStringSigAction(SCallDirection, s =>
{
CurrentCallItem.Direction = (eCodecCallDirection)Enum.Parse(typeof(eCodecCallDirection), s, true);
SendCallsList();
});
EISC.SetBoolSigAction(BCallIncoming, b =>
{
if (b)
{
var ica = new CodecActiveCallItem()
{
Direction = eCodecCallDirection.Incoming,
Id = "-video-incoming",
Name = EISC.GetString(SIncomingCallName),
Number = EISC.GetString(SIncomingCallNumber),
Status = eCodecCallStatus.Ringing,
Type = eCodecCallType.Video
};
IncomingCallItem = ica;
}
else
{
IncomingCallItem = null;
}
SendCallsList();
});
// Add press and holds using helper action
Action<string, uint> addPHAction = (s, u) =>
AppServerController.AddAction(MessagePath + s, new PressAndHoldAction(b => EISC.SetBool(u, b)));
addPHAction("/cameraUp", BCameraControlUp);
addPHAction("/cameraDown", BCameraControlDown);
addPHAction("/cameraLeft", BCameraControlLeft);
addPHAction("/cameraRight", BCameraControlRight);
addPHAction("/cameraZoomIn", BCameraControlZoomIn);
addPHAction("/cameraZoonOut", BCameraControlZoomOut);
// Add straight pulse calls using helper action
Action<string, uint> addAction = (s, u) =>
AppServerController.AddAction(MessagePath + s, new Action(() => EISC.PulseBool(u, 100)));
addAction("/endCallById", BDialHangup);
addAction("/acceptById", BIncomingAnswer);
addAction("/rejectById", BIncomingReject);
addAction("/speedDial1", BSpeedDial1);
addAction("/speedDial2", BSpeedDial2);
addAction("/speedDial3", BSpeedDial3);
addAction("/speedDial4", BSpeedDial4);
for(uint i = 0; i < 6; i++)
{
addAction("/cameraPreset" + (i + 1), BCameraPresetStart + i);
}
// Get status
AppServerController.AddAction(MessagePath + "/fullStatus", new Action(SendFullStatus));
// Dial on string
AppServerController.AddAction(MessagePath + "/dial", new Action<string>(s => EISC.SetString(SCurrentDialString, s)));
// Pulse DTMF
AppServerController.AddAction(MessagePath + "/dtmf", new Action<string>(s =>
{
if (DTMFMap.ContainsKey(s))
{
EISC.PulseBool(DTMFMap[s], 100);
}
}));
}
void SendCallsList()
{
PostStatusMessage(new
{
calls = GetCurrentCallList(),
});
}
/// <summary>
/// Turns the
/// </summary>
/// <returns></returns>
List<CodecActiveCallItem> GetCurrentCallList()
{
var list = new List<CodecActiveCallItem>();
if (CurrentCallItem.Status != eCodecCallStatus.Disconnected)
{
list.Add(CurrentCallItem);
}
if (EISC.GetBool(BCallIncoming)) {
}
return list;
}
}
}

View File

@@ -81,6 +81,10 @@ namespace PepperDash.Essentials.Room.Cotija
/// 501 /// 501
/// </summary> /// </summary>
public const uint ConfigIsReady = 501; public const uint ConfigIsReady = 501;
/// <summary>
/// 601
/// </summary>
public const uint SourceShareDisableStartJoin = 601;
} }
public class UshortJoin public class UshortJoin
@@ -166,6 +170,7 @@ namespace PepperDash.Essentials.Room.Cotija
CotijaDdvc01DeviceBridge SourceBridge; CotijaDdvc01DeviceBridge SourceBridge;
Ddvc01AtcMessenger AtcMessenger; Ddvc01AtcMessenger AtcMessenger;
Ddvc01VtcMessenger VtcMessenger;
/// <summary> /// <summary>
@@ -204,10 +209,14 @@ namespace PepperDash.Essentials.Room.Cotija
SetupFunctions(); SetupFunctions();
SetupFeedbacks(); SetupFeedbacks();
var key = this.Key + "-" + Parent.Key; var atcKey = string.Format("atc-{0}-{1}", this.Key, Parent.Key);
AtcMessenger = new Ddvc01AtcMessenger(key, EISC, "/device/audioCodec"); AtcMessenger = new Ddvc01AtcMessenger(atcKey, EISC, "/device/audioCodec");
AtcMessenger.RegisterWithAppServer(Parent); AtcMessenger.RegisterWithAppServer(Parent);
var vtcKey = string.Format("atc-{0}-{1}", this.Key, Parent.Key);
VtcMessenger = new Ddvc01VtcMessenger(vtcKey, EISC, "/device/videoCodec");
VtcMessenger.RegisterWithAppServer(Parent);
EISC.SigChange += EISC_SigChange; EISC.SigChange += EISC_SigChange;
EISC.OnlineStatusChange += (o, a) => EISC.OnlineStatusChange += (o, a) =>
{ {
@@ -251,7 +260,6 @@ namespace PepperDash.Essentials.Room.Cotija
/// </summary> /// </summary>
void SetupFunctions() void SetupFunctions()
{ {
#warning need join numbers for these
Parent.AddAction(@"/room/room1/promptForCode", new Action(() => EISC.PulseBool(BoolJoin.PromptForCode))); Parent.AddAction(@"/room/room1/promptForCode", new Action(() => EISC.PulseBool(BoolJoin.PromptForCode)));
Parent.AddAction(@"/room/room1/clientJoined", new Action(() => EISC.PulseBool(BoolJoin.ClientJoined))); Parent.AddAction(@"/room/room1/clientJoined", new Action(() => EISC.PulseBool(BoolJoin.ClientJoined)));
@@ -467,8 +475,8 @@ namespace PepperDash.Essentials.Room.Cotija
break; break;
var icon = EISC.StringOutput[651 + i].StringValue; var icon = EISC.StringOutput[651 + i].StringValue;
var key = EISC.StringOutput[671 + i].StringValue; var key = EISC.StringOutput[671 + i].StringValue;
var type = EISC.StringOutput[BoolJoin.SourceShareDisableStartJoin + i].StringValue;
var type = EISC.StringOutput[701 + i].StringValue; var disableShare = EISC.BooleanOutput[601 + i].BoolValue;
Debug.Console(0, this, "Adding source {0} '{1}'", key, name); Debug.Console(0, this, "Adding source {0} '{1}'", key, name);
var newSLI = new SourceListItem{ var newSLI = new SourceListItem{
@@ -476,7 +484,8 @@ namespace PepperDash.Essentials.Room.Cotija
Name = name, Name = name,
Order = (int)i + 1, Order = (int)i + 1,
SourceKey = key, SourceKey = key,
Type = eSourceListItemType.Route Type = eSourceListItemType.Route,
DisableCodecSharing = disableShare,
}; };
newSl.Add(key, newSLI); newSl.Add(key, newSLI);

View File

@@ -15,7 +15,7 @@ using PepperDash.Essentials.Devices.Common;
using PepperDash.Essentials.Core.Config; using PepperDash.Essentials.Core.Config;
using PepperDash.Essentials.Core.CrestronIO; using PepperDash.Essentials.Core.CrestronIO;
using PepperDash.Essentials.DM; using PepperDash.Essentials.DM;
using PepperDash.Essentials.Devices.Common.Cameras; //using PepperDash.Essentials.Devices.Common.Cameras;
namespace PepperDash.Essentials.Bridges namespace PepperDash.Essentials.Bridges
{ {
@@ -88,16 +88,16 @@ namespace PepperDash.Essentials.Bridges
(device as GenericComm).LinkToApi(Eisc, d.JoinStart, d.JoinMapKey); (device as GenericComm).LinkToApi(Eisc, d.JoinStart, d.JoinMapKey);
continue; continue;
} }
else if (device is CameraBase) //else if (device is CameraBase)
{ //{
(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);
@@ -124,16 +124,16 @@ namespace PepperDash.Essentials.Bridges
(device as IDigitalInput).LinkToApi(Eisc, d.JoinStart, d.JoinMapKey); (device as IDigitalInput).LinkToApi(Eisc, d.JoinStart, d.JoinMapKey);
continue; continue;
} }
else if (device is LightingBase) //else if (device is LightingBase)
{ //{
(device as LightingBase).LinkToApi(Eisc, d.JoinStart, d.JoinMapKey); // (device as LightingBase).LinkToApi(Eisc, d.JoinStart, d.JoinMapKey);
continue; // continue;
} //}
else if (device is DigitalLogger) //else if (device is DigitalLogger)
{ //{
(device as DigitalLogger).LinkToApi(Eisc, d.JoinStart, d.JoinMapKey); // (device as DigitalLogger).LinkToApi(Eisc, d.JoinStart, d.JoinMapKey);
continue; // continue;
} //}
} }
} }

View File

@@ -1,187 +1,187 @@
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 CameraControllerApiExtensions // public static class CameraControllerApiExtensions
{ // {
public static BasicTriList _TriList; // public static BasicTriList _TriList;
public static CameraControllerJoinMap JoinMap; // public static CameraControllerJoinMap JoinMap;
public static void LinkToApi(this PepperDash.Essentials.Devices.Common.Cameras.CameraBase cameraDevice, BasicTriList trilist, uint joinStart, string joinMapKey) // public static void LinkToApi(this PepperDash.Essentials.Devices.Common.Cameras.CameraBase cameraDevice, BasicTriList trilist, uint joinStart, string joinMapKey)
{ // {
JoinMap = JoinMapHelper.GetJoinMapForDevice(joinMapKey) as CameraControllerJoinMap; // JoinMap = JoinMapHelper.GetJoinMapForDevice(joinMapKey) as CameraControllerJoinMap;
_TriList = trilist; // _TriList = trilist;
if (JoinMap == null) // if (JoinMap == null)
{ // {
JoinMap = new CameraControllerJoinMap(); // JoinMap = new CameraControllerJoinMap();
} // }
JoinMap.OffsetJoinNumbers(joinStart); // JoinMap.OffsetJoinNumbers(joinStart);
Debug.Console(1, "Linking to Trilist '{0}'", trilist.ID.ToString("X")); // Debug.Console(1, "Linking to Trilist '{0}'", trilist.ID.ToString("X"));
Debug.Console(0, "Linking to Bridge Type {0}", cameraDevice.GetType().Name.ToString()); // Debug.Console(0, "Linking to Bridge Type {0}", cameraDevice.GetType().Name.ToString());
var commMonitor = cameraDevice as ICommunicationMonitor; // var commMonitor = cameraDevice as ICommunicationMonitor;
commMonitor.CommunicationMonitor.IsOnlineFeedback.LinkInputSig(trilist.BooleanInput[JoinMap.IsOnline]); // commMonitor.CommunicationMonitor.IsOnlineFeedback.LinkInputSig(trilist.BooleanInput[JoinMap.IsOnline]);
trilist.SetBoolSigAction(JoinMap.Left, (b) => // trilist.SetBoolSigAction(JoinMap.Left, (b) =>
{ // {
if (b) // if (b)
{ // {
cameraDevice.PanLeft(); // cameraDevice.PanLeft();
} // }
else // else
{ // {
cameraDevice.Stop(); // cameraDevice.Stop();
} // }
}); // });
trilist.SetBoolSigAction(JoinMap.Right, (b) => // trilist.SetBoolSigAction(JoinMap.Right, (b) =>
{ // {
if (b) // if (b)
{ // {
cameraDevice.PanRight(); // cameraDevice.PanRight();
} // }
else // else
{ // {
cameraDevice.Stop(); // cameraDevice.Stop();
} // }
}); // });
trilist.SetBoolSigAction(JoinMap.Up, (b) => // trilist.SetBoolSigAction(JoinMap.Up, (b) =>
{ // {
if (b) // if (b)
{ // {
cameraDevice.TiltUp(); // cameraDevice.TiltUp();
} // }
else // else
{ // {
cameraDevice.Stop(); // cameraDevice.Stop();
} // }
}); // });
trilist.SetBoolSigAction(JoinMap.Down, (b) => // trilist.SetBoolSigAction(JoinMap.Down, (b) =>
{ // {
if (b) // if (b)
{ // {
cameraDevice.TiltDown(); // cameraDevice.TiltDown();
} // }
else // else
{ // {
cameraDevice.Stop(); // cameraDevice.Stop();
} // }
}); // });
trilist.SetBoolSigAction(JoinMap.ZoomIn, (b) => // trilist.SetBoolSigAction(JoinMap.ZoomIn, (b) =>
{ // {
if (b) // if (b)
{ // {
cameraDevice.ZoomIn(); // cameraDevice.ZoomIn();
} // }
else // else
{ // {
cameraDevice.Stop(); // cameraDevice.Stop();
} // }
}); // });
trilist.SetBoolSigAction(JoinMap.ZoomOut, (b) => // trilist.SetBoolSigAction(JoinMap.ZoomOut, (b) =>
{ // {
if (b) // if (b)
{ // {
cameraDevice.ZoomOut(); // cameraDevice.ZoomOut();
} // }
else // else
{ // {
cameraDevice.Stop(); // cameraDevice.Stop();
} // }
}); // });
if (cameraDevice.GetType().Name.ToString().ToLower() == "cameravisca") // if (cameraDevice.GetType().Name.ToString().ToLower() == "cameravisca")
{ // {
var viscaCamera = cameraDevice as PepperDash.Essentials.Devices.Common.Cameras.CameraVisca; // var viscaCamera = cameraDevice as PepperDash.Essentials.Devices.Common.Cameras.CameraVisca;
trilist.SetSigTrueAction(JoinMap.PowerOn, () => viscaCamera.PowerOn()); // trilist.SetSigTrueAction(JoinMap.PowerOn, () => viscaCamera.PowerOn());
trilist.SetSigTrueAction(JoinMap.PowerOff, () => viscaCamera.PowerOff()); // trilist.SetSigTrueAction(JoinMap.PowerOff, () => viscaCamera.PowerOff());
viscaCamera.PowerIsOnFeedback.LinkInputSig(trilist.BooleanInput[JoinMap.PowerOn]); // viscaCamera.PowerIsOnFeedback.LinkInputSig(trilist.BooleanInput[JoinMap.PowerOn]);
viscaCamera.PowerIsOnFeedback.LinkComplementInputSig(trilist.BooleanInput[JoinMap.PowerOff]); // viscaCamera.PowerIsOnFeedback.LinkComplementInputSig(trilist.BooleanInput[JoinMap.PowerOff]);
viscaCamera.CommunicationMonitor.IsOnlineFeedback.LinkInputSig(trilist.BooleanInput[JoinMap.IsOnline]); // viscaCamera.CommunicationMonitor.IsOnlineFeedback.LinkInputSig(trilist.BooleanInput[JoinMap.IsOnline]);
for (int i = 0; i < JoinMap.NumberOfPresets; i++) // for (int i = 0; i < JoinMap.NumberOfPresets; i++)
{ // {
int tempNum = i; // int tempNum = i;
trilist.SetSigTrueAction((ushort)(JoinMap.PresetRecallOffset + tempNum), () => // trilist.SetSigTrueAction((ushort)(JoinMap.PresetRecallOffset + tempNum), () =>
{ // {
viscaCamera.RecallPreset(tempNum); // viscaCamera.RecallPreset(tempNum);
}); // });
trilist.SetSigTrueAction((ushort)(JoinMap.PresetSaveOffset + tempNum), () => // trilist.SetSigTrueAction((ushort)(JoinMap.PresetSaveOffset + tempNum), () =>
{ // {
viscaCamera.SavePreset(tempNum); // viscaCamera.SavePreset(tempNum);
}); // });
} // }
} // }
} // }
} // }
public class CameraControllerJoinMap : JoinMapBase // public class CameraControllerJoinMap : JoinMapBase
{ // {
public uint IsOnline { get; set; } // public uint IsOnline { get; set; }
public uint PowerOff { get; set; } // public uint PowerOff { get; set; }
public uint PowerOn { get; set; } // public uint PowerOn { get; set; }
public uint Up { get; set; } // public uint Up { get; set; }
public uint Down { get; set; } // public uint Down { get; set; }
public uint Left { get; set; } // public uint Left { get; set; }
public uint Right { get; set; } // public uint Right { get; set; }
public uint ZoomIn { get; set; } // public uint ZoomIn { get; set; }
public uint ZoomOut { get; set; } // public uint ZoomOut { get; set; }
public uint PresetRecallOffset { get; set; } // public uint PresetRecallOffset { get; set; }
public uint PresetSaveOffset { get; set; } // public uint PresetSaveOffset { get; set; }
public uint NumberOfPresets { get; set; } // public uint NumberOfPresets { get; set; }
public CameraControllerJoinMap() // public CameraControllerJoinMap()
{ // {
// Digital // // Digital
IsOnline = 9; // IsOnline = 9;
PowerOff = 8; // PowerOff = 8;
PowerOn = 7; // PowerOn = 7;
Up = 1; // Up = 1;
Down = 2; // Down = 2;
Left = 3; // Left = 3;
Right = 4; // Right = 4;
ZoomIn = 5; // ZoomIn = 5;
ZoomOut = 6; // ZoomOut = 6;
PresetRecallOffset = 10; // PresetRecallOffset = 10;
PresetSaveOffset = 30; // PresetSaveOffset = 30;
NumberOfPresets = 5; // NumberOfPresets = 5;
// 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;
Up = Up + joinOffset; // Up = Up + joinOffset;
Down = Down + joinOffset; // Down = Down + joinOffset;
Left = Left + joinOffset; // Left = Left + joinOffset;
Right = Right + joinOffset; // Right = Right + joinOffset;
ZoomIn = ZoomIn + joinOffset; // ZoomIn = ZoomIn + joinOffset;
ZoomOut = ZoomOut + joinOffset; // ZoomOut = ZoomOut + joinOffset;
PresetRecallOffset = PresetRecallOffset + joinOffset; // PresetRecallOffset = PresetRecallOffset + joinOffset;
PresetSaveOffset = PresetSaveOffset + joinOffset; // PresetSaveOffset = PresetSaveOffset + joinOffset;
} // }
} // }
} //}

View File

@@ -1,77 +1,77 @@
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 DigitalLoggerApiExtensions // public static class DigitalLoggerApiExtensions
{ // {
public static void LinkToApi(this DigitalLogger DigitalLogger, BasicTriList trilist, uint joinStart, string joinMapKey) // public static void LinkToApi(this DigitalLogger DigitalLogger, BasicTriList trilist, uint joinStart, string joinMapKey)
{ // {
var joinMap = JoinMapHelper.GetJoinMapForDevice(joinMapKey) as DigitalLoggerJoinMap; // var joinMap = JoinMapHelper.GetJoinMapForDevice(joinMapKey) as DigitalLoggerJoinMap;
if (joinMap == null) // if (joinMap == null)
joinMap = new DigitalLoggerJoinMap(); // joinMap = new DigitalLoggerJoinMap();
joinMap.OffsetJoinNumbers(joinStart); // joinMap.OffsetJoinNumbers(joinStart);
Debug.Console(1, DigitalLogger, "Linking to Trilist '{0}'", trilist.ID.ToString("X")); // Debug.Console(1, DigitalLogger, "Linking to Trilist '{0}'", trilist.ID.ToString("X"));
for (uint i = 1; i <= DigitalLogger.CircuitCount; i++) // for (uint i = 1; i <= DigitalLogger.CircuitCount; i++)
{ // {
var circuit = i; // var circuit = i;
DigitalLogger.CircuitNameFeedbacks[circuit - 1].LinkInputSig(trilist.StringInput[joinMap.CircuitNames + circuit]); // DigitalLogger.CircuitNameFeedbacks[circuit - 1].LinkInputSig(trilist.StringInput[joinMap.CircuitNames + circuit]);
DigitalLogger.CircuitIsCritical[circuit - 1].LinkInputSig(trilist.BooleanInput[joinMap.CircuitIsCritical + circuit]); // DigitalLogger.CircuitIsCritical[circuit - 1].LinkInputSig(trilist.BooleanInput[joinMap.CircuitIsCritical + circuit]);
DigitalLogger.CircuitState[circuit - 1].LinkInputSig(trilist.BooleanInput[joinMap.CircuitState + circuit]); // DigitalLogger.CircuitState[circuit - 1].LinkInputSig(trilist.BooleanInput[joinMap.CircuitState + circuit]);
trilist.SetSigTrueAction(joinMap.CircuitCycle + circuit, () => DigitalLogger.CycleCircuit(circuit - 1)); // trilist.SetSigTrueAction(joinMap.CircuitCycle + circuit, () => DigitalLogger.CycleCircuit(circuit - 1));
trilist.SetSigTrueAction(joinMap.CircuitOnCmd + circuit, () => DigitalLogger.TurnOnCircuit(circuit - 1)); // trilist.SetSigTrueAction(joinMap.CircuitOnCmd + circuit, () => DigitalLogger.TurnOnCircuit(circuit - 1));
trilist.SetSigTrueAction(joinMap.CircuitOffCmd + circuit, () => DigitalLogger.TurnOffCircuit(circuit - 1)); // trilist.SetSigTrueAction(joinMap.CircuitOffCmd + circuit, () => DigitalLogger.TurnOffCircuit(circuit - 1));
} // }
} // }
} // }
public class DigitalLoggerJoinMap : JoinMapBase // public class DigitalLoggerJoinMap : JoinMapBase
{ // {
public uint IsOnline { get; set; } // public uint IsOnline { get; set; }
public uint CircuitNames { get; set; } // public uint CircuitNames { get; set; }
public uint CircuitState { get; set; } // public uint CircuitState { get; set; }
public uint CircuitCycle { get; set; } // public uint CircuitCycle { get; set; }
public uint CircuitIsCritical { get; set; } // public uint CircuitIsCritical { get; set; }
public uint CircuitOnCmd { get; set; } // public uint CircuitOnCmd { get; set; }
public uint CircuitOffCmd { get; set; } // public uint CircuitOffCmd { get; set; }
public DigitalLoggerJoinMap() // public DigitalLoggerJoinMap()
{ // {
// Digital // // Digital
IsOnline = 9; // IsOnline = 9;
CircuitState = 0; // CircuitState = 0;
CircuitCycle = 0; // CircuitCycle = 0;
CircuitIsCritical = 10; // CircuitIsCritical = 10;
CircuitOnCmd = 10; // CircuitOnCmd = 10;
CircuitOffCmd = 20; // CircuitOffCmd = 20;
// Serial // // Serial
CircuitNames = 0; // CircuitNames = 0;
// 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;
CircuitNames = CircuitNames + joinOffset; // CircuitNames = CircuitNames + joinOffset;
CircuitState = CircuitState + joinOffset; // CircuitState = CircuitState + joinOffset;
CircuitCycle = CircuitCycle + joinOffset; // CircuitCycle = CircuitCycle + joinOffset;
CircuitIsCritical = CircuitIsCritical + joinOffset; // CircuitIsCritical = CircuitIsCritical + joinOffset;
CircuitOnCmd = CircuitOnCmd + joinOffset; // CircuitOnCmd = CircuitOnCmd + joinOffset;
CircuitOffCmd = CircuitOffCmd + joinOffset; // CircuitOffCmd = CircuitOffCmd + joinOffset;
} // }
} // }
} //}

View File

@@ -1,171 +1,171 @@
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; // JoinMap = JoinMapHelper.GetJoinMapForDevice(joinMapKey) as DisplayControllerJoinMap;
_TriList = trilist; // _TriList = trilist;
if (JoinMap == null) // if (JoinMap == null)
{ // {
JoinMap = new DisplayControllerJoinMap(); // JoinMap = new DisplayControllerJoinMap();
} // }
JoinMap.OffsetJoinNumbers(joinStart); // JoinMap.OffsetJoinNumbers(joinStart);
Debug.Console(1, "Linking to Trilist '{0}'", trilist.ID.ToString("X")); // Debug.Console(1, "Linking to Trilist '{0}'", trilist.ID.ToString("X"));
Debug.Console(0, "Linking to Bridge Type {0}", displayDevice.GetType().Name.ToString()); // Debug.Console(0, "Linking to Bridge Type {0}", displayDevice.GetType().Name.ToString());
trilist.StringInput[JoinMap.Name].StringValue = displayDevice.GetType().Name.ToString(); // trilist.StringInput[JoinMap.Name].StringValue = displayDevice.GetType().Name.ToString();
InputNumberFeedback = new IntFeedback(() => { return InputNumber;}); // InputNumberFeedback = new IntFeedback(() => { return InputNumber;});
InputNumberFeedback.LinkInputSig(trilist.UShortInput[JoinMap.InputSelect]); // InputNumberFeedback.LinkInputSig(trilist.UShortInput[JoinMap.InputSelect]);
var commMonitor = displayDevice as ICommunicationMonitor; // var commMonitor = displayDevice as ICommunicationMonitor;
commMonitor.CommunicationMonitor.IsOnlineFeedback.LinkInputSig(trilist.BooleanInput[JoinMap.IsOnline]); // commMonitor.CommunicationMonitor.IsOnlineFeedback.LinkInputSig(trilist.BooleanInput[JoinMap.IsOnline]);
// Poewer Off // // Poewer Off
trilist.SetSigTrueAction(JoinMap.PowerOff, () => // trilist.SetSigTrueAction(JoinMap.PowerOff, () =>
{ // {
InputNumber = 102; // InputNumber = 102;
InputNumberFeedback.FireUpdate(); // InputNumberFeedback.FireUpdate();
displayDevice.PowerOff(); // displayDevice.PowerOff();
}); // });
displayDevice.PowerIsOnFeedback.OutputChange += new EventHandler<FeedbackEventArgs>(PowerIsOnFeedback_OutputChange); // displayDevice.PowerIsOnFeedback.OutputChange += new EventHandler<FeedbackEventArgs>(PowerIsOnFeedback_OutputChange);
displayDevice.PowerIsOnFeedback.LinkComplementInputSig(trilist.BooleanInput[JoinMap.PowerOff]); // displayDevice.PowerIsOnFeedback.LinkComplementInputSig(trilist.BooleanInput[JoinMap.PowerOff]);
// Poewer On // // Poewer On
trilist.SetSigTrueAction(JoinMap.PowerOn, () => // trilist.SetSigTrueAction(JoinMap.PowerOn, () =>
{ // {
InputNumber = 0; // InputNumber = 0;
InputNumberFeedback.FireUpdate(); // InputNumberFeedback.FireUpdate();
displayDevice.PowerOn(); // displayDevice.PowerOn();
}); // });
displayDevice.PowerIsOnFeedback.LinkInputSig(trilist.BooleanInput[JoinMap.PowerOn]); // displayDevice.PowerIsOnFeedback.LinkInputSig(trilist.BooleanInput[JoinMap.PowerOn]);
int count = 1; // int count = 1;
foreach (var input in displayDevice.InputPorts) // foreach (var input in displayDevice.InputPorts)
{ // {
InputKeys.Add(input.Key.ToString()); // InputKeys.Add(input.Key.ToString());
var tempKey = InputKeys.ElementAt(count - 1); // var tempKey = InputKeys.ElementAt(count - 1);
trilist.SetSigTrueAction((ushort)(JoinMap.InputSelectOffset + count), () => { displayDevice.ExecuteSwitch(displayDevice.InputPorts[tempKey].Selector); }); // trilist.SetSigTrueAction((ushort)(JoinMap.InputSelectOffset + count), () => { displayDevice.ExecuteSwitch(displayDevice.InputPorts[tempKey].Selector); });
trilist.StringInput[(ushort)(JoinMap.InputNamesOffset + count)].StringValue = input.Key.ToString(); // trilist.StringInput[(ushort)(JoinMap.InputNamesOffset + count)].StringValue = input.Key.ToString();
count++; // count++;
} // }
displayDevice.CurrentInputFeedback.OutputChange += new EventHandler<FeedbackEventArgs>(CurrentInputFeedback_OutputChange); // displayDevice.CurrentInputFeedback.OutputChange += new EventHandler<FeedbackEventArgs>(CurrentInputFeedback_OutputChange);
trilist.SetUShortSigAction(JoinMap.InputSelect, (a) => // trilist.SetUShortSigAction(JoinMap.InputSelect, (a) =>
{ // {
if (a == 0) // if (a == 0)
{ // {
displayDevice.PowerOff(); // displayDevice.PowerOff();
InputNumber = 0; // InputNumber = 0;
} // }
else if (a > 0 && a < displayDevice.InputPorts.Count && a != InputNumber) // else if (a > 0 && a < displayDevice.InputPorts.Count && a != InputNumber)
{ // {
displayDevice.ExecuteSwitch(displayDevice.InputPorts.ElementAt(a - 1).Selector); // displayDevice.ExecuteSwitch(displayDevice.InputPorts.ElementAt(a - 1).Selector);
InputNumber = a; // InputNumber = a;
} // }
else if (a == 102) // else if (a == 102)
{ // {
displayDevice.PowerToggle(); // displayDevice.PowerToggle();
} // }
InputNumberFeedback.FireUpdate(); // InputNumberFeedback.FireUpdate();
}); // });
} // }
static void CurrentInputFeedback_OutputChange(object sender, FeedbackEventArgs e) // static void CurrentInputFeedback_OutputChange(object sender, FeedbackEventArgs e)
{ // {
Debug.Console(0, "CurrentInputFeedback_OutputChange {0}", e.StringValue); // Debug.Console(0, "CurrentInputFeedback_OutputChange {0}", e.StringValue);
} // }
static void PowerIsOnFeedback_OutputChange(object sender, FeedbackEventArgs e) // static void PowerIsOnFeedback_OutputChange(object sender, FeedbackEventArgs e)
{ // {
// Debug.Console(0, "PowerIsOnFeedback_OutputChange {0}", e.BoolValue); // // Debug.Console(0, "PowerIsOnFeedback_OutputChange {0}", e.BoolValue);
if (!e.BoolValue) // if (!e.BoolValue)
{ // {
InputNumber = 102; // InputNumber = 102;
InputNumberFeedback.FireUpdate(); // InputNumberFeedback.FireUpdate();
} // }
else // else
{ // {
InputNumber = 0; // InputNumber = 0;
InputNumberFeedback.FireUpdate(); // 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

@@ -1,103 +1,103 @@
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 GenericLightingApiExtensions // public static class GenericLightingApiExtensions
{ // {
public static void LinkToApi(this PepperDash.Essentials.Core.Lighting.LightingBase lightingDevice, BasicTriList trilist, uint joinStart, string joinMapKey) // public static void LinkToApi(this PepperDash.Essentials.Core.Lighting.LightingBase lightingDevice, BasicTriList trilist, uint joinStart, string joinMapKey)
{ // {
var joinMap = JoinMapHelper.GetJoinMapForDevice(joinMapKey) as GenericLightingJoinMap; // var joinMap = JoinMapHelper.GetJoinMapForDevice(joinMapKey) as GenericLightingJoinMap;
if (joinMap == null) // if (joinMap == null)
joinMap = new GenericLightingJoinMap(); // joinMap = new GenericLightingJoinMap();
joinMap.OffsetJoinNumbers(joinStart); // joinMap.OffsetJoinNumbers(joinStart);
Debug.Console(1, "Linking to Trilist '{0}'", trilist.ID.ToString("X")); // Debug.Console(1, "Linking to Trilist '{0}'", trilist.ID.ToString("X"));
Debug.Console(0, "Linking to lighting Type {0}", lightingDevice.GetType().Name.ToString()); // Debug.Console(0, "Linking to lighting Type {0}", lightingDevice.GetType().Name.ToString());
// GenericLighitng Actions & FeedBack // // GenericLighitng Actions & FeedBack
trilist.SetUShortSigAction(joinMap.SelectScene, u => lightingDevice.SelectScene(lightingDevice.LightingScenes[u])); // trilist.SetUShortSigAction(joinMap.SelectScene, u => lightingDevice.SelectScene(lightingDevice.LightingScenes[u]));
int sceneIndex = 1; // int sceneIndex = 1;
foreach (var scene in lightingDevice.LightingScenes) // foreach (var scene in lightingDevice.LightingScenes)
{ // {
var tempIndex = sceneIndex - 1; // var tempIndex = sceneIndex - 1;
trilist.SetSigTrueAction((uint)(joinMap.LightingSceneOffset + sceneIndex), () => lightingDevice.SelectScene(lightingDevice.LightingScenes[tempIndex])); // trilist.SetSigTrueAction((uint)(joinMap.LightingSceneOffset + sceneIndex), () => lightingDevice.SelectScene(lightingDevice.LightingScenes[tempIndex]));
scene.IsActiveFeedback.LinkInputSig(trilist.BooleanInput[(uint)(joinMap.LightingSceneOffset + sceneIndex)]); // scene.IsActiveFeedback.LinkInputSig(trilist.BooleanInput[(uint)(joinMap.LightingSceneOffset + sceneIndex)]);
trilist.StringInput[(uint)(joinMap.LightingSceneOffset + sceneIndex)].StringValue = scene.Name; // trilist.StringInput[(uint)(joinMap.LightingSceneOffset + sceneIndex)].StringValue = scene.Name;
trilist.BooleanInput[(uint)(joinMap.ButtonVisibilityOffset + sceneIndex)].BoolValue = true; // trilist.BooleanInput[(uint)(joinMap.ButtonVisibilityOffset + sceneIndex)].BoolValue = true;
sceneIndex++; // sceneIndex++;
} // }
if (lightingDevice.GetType().Name.ToString() == "LutronQuantumArea") // if (lightingDevice.GetType().Name.ToString() == "LutronQuantumArea")
{ // {
var lutronDevice = lightingDevice as PepperDash.Essentials.Devices.Common.Environment.Lutron.LutronQuantumArea; // var lutronDevice = lightingDevice as PepperDash.Essentials.Devices.Common.Environment.Lutron.LutronQuantumArea;
lutronDevice.CommunicationMonitor.IsOnlineFeedback.LinkInputSig(trilist.BooleanInput[joinMap.IsOnline]); // lutronDevice.CommunicationMonitor.IsOnlineFeedback.LinkInputSig(trilist.BooleanInput[joinMap.IsOnline]);
trilist.SetStringSigAction(joinMap.IntegrationIdSet, s => lutronDevice.IntegrationId = s); // trilist.SetStringSigAction(joinMap.IntegrationIdSet, s => lutronDevice.IntegrationId = s);
} // }
//ApiEisc.Eisc.SetStringSigAction(ApiMap.integrationID, (s) => { lutronLights.IntegrationId = s; }); // //ApiEisc.Eisc.SetStringSigAction(ApiMap.integrationID, (s) => { lutronLights.IntegrationId = s; });
/* // /*
var lutronLights = lightingDevice as PepperDash.Essentials.Devices.Common.Environment.Lutron.LutronQuantumArea; // var lutronLights = lightingDevice as PepperDash.Essentials.Devices.Common.Environment.Lutron.LutronQuantumArea;
for (uint i = 1; i <= lightingBase.CircuitCount; i++) // for (uint i = 1; i <= lightingBase.CircuitCount; i++)
{ // {
var circuit = i; // var circuit = i;
lightingBase.CircuitNameFeedbacks[circuit - 1].LinkInputSig(trilist.StringInput[joinMap.CircuitNames + circuit]); // lightingBase.CircuitNameFeedbacks[circuit - 1].LinkInputSig(trilist.StringInput[joinMap.CircuitNames + circuit]);
lightingBase.CircuitIsCritical[circuit - 1].LinkInputSig(trilist.BooleanInput[joinMap.CircuitIsCritical + circuit]); // lightingBase.CircuitIsCritical[circuit - 1].LinkInputSig(trilist.BooleanInput[joinMap.CircuitIsCritical + circuit]);
lightingBase.CircuitState[circuit - 1].LinkInputSig(trilist.BooleanInput[joinMap.CircuitState + circuit]); // lightingBase.CircuitState[circuit - 1].LinkInputSig(trilist.BooleanInput[joinMap.CircuitState + circuit]);
trilist.SetSigTrueAction(joinMap.CircuitCycle + circuit, () => lightingBase.CycleCircuit(circuit - 1)); // trilist.SetSigTrueAction(joinMap.CircuitCycle + circuit, () => lightingBase.CycleCircuit(circuit - 1));
trilist.SetSigTrueAction(joinMap.CircuitOnCmd + circuit, () => lightingBase.TurnOnCircuit(circuit - 1)); // trilist.SetSigTrueAction(joinMap.CircuitOnCmd + circuit, () => lightingBase.TurnOnCircuit(circuit - 1));
trilist.SetSigTrueAction(joinMap.CircuitOffCmd + circuit, () => lightingBase.TurnOffCircuit(circuit - 1)); // trilist.SetSigTrueAction(joinMap.CircuitOffCmd + circuit, () => lightingBase.TurnOffCircuit(circuit - 1));
} // }
*/ // */
} // }
} // }
public class GenericLightingJoinMap : JoinMapBase // public class GenericLightingJoinMap : JoinMapBase
{ // {
public uint IsOnline { get; set; } // public uint IsOnline { 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 GenericLightingJoinMap() // public GenericLightingJoinMap()
{ // {
// Digital // // Digital
IsOnline = 1; // IsOnline = 1;
SelectScene = 1; // SelectScene = 1;
IntegrationIdSet = 1; // IntegrationIdSet = 1;
LightingSceneOffset = 10; // LightingSceneOffset = 10;
ButtonVisibilityOffset = 40; // ButtonVisibilityOffset = 40;
// 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;
SelectScene = SelectScene + joinOffset; // SelectScene = SelectScene + joinOffset;
LightingSceneOffset = LightingSceneOffset + joinOffset; // LightingSceneOffset = LightingSceneOffset + joinOffset;
ButtonVisibilityOffset = ButtonVisibilityOffset + joinOffset; // ButtonVisibilityOffset = ButtonVisibilityOffset + joinOffset;
} // }
} // }
} //}

View File

@@ -245,9 +245,8 @@ namespace PepperDash.Essentials
/// </summary> /// </summary>
public void LoadDevices() public void LoadDevices()
{ {
# warning Missing PepperDash.Essentials.Core.Devices.CrestronProcessor("processor"));
// 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"));
// 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"));

View File

@@ -108,8 +108,9 @@
<Reference Include="System.Data" /> <Reference Include="System.Data" />
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<Compile Include="AppServer\Messengers\AtcDdvc01Messenger.cs" /> <Compile Include="AppServer\Messengers\Ddvc01AtcMessenger.cs" />
<Compile Include="AppServer\Messengers\AudioCodecBaseMessenger.cs" /> <Compile Include="AppServer\Messengers\AudioCodecBaseMessenger.cs" />
<Compile Include="AppServer\Messengers\Ddvc01VtcMessenger.cs" />
<Compile Include="AppServer\Messengers\MessengerBase.cs" /> <Compile Include="AppServer\Messengers\MessengerBase.cs" />
<Compile Include="AppServer\Messengers\SystemMonitorMessenger.cs" /> <Compile Include="AppServer\Messengers\SystemMonitorMessenger.cs" />
<Compile Include="AppServer\Messengers\VideoCodecBaseMessenger.cs" /> <Compile Include="AppServer\Messengers\VideoCodecBaseMessenger.cs" />