mirror of
https://github.com/PepperDash/Essentials.git
synced 2026-02-15 20:54:55 +00:00
style: run code cleanup & apply VS suggestions
This commit is contained in:
@@ -5,7 +5,7 @@ namespace PepperDash.Essentials.AppServer
|
|||||||
{
|
{
|
||||||
public class SourceSelectMessageContent
|
public class SourceSelectMessageContent
|
||||||
{
|
{
|
||||||
|
|
||||||
[JsonProperty("sourceListItemKey")]
|
[JsonProperty("sourceListItemKey")]
|
||||||
public string SourceListItemKey { get; set; }
|
public string SourceListItemKey { get; set; }
|
||||||
[JsonProperty("sourceListKey")]
|
[JsonProperty("sourceListKey")]
|
||||||
|
|||||||
@@ -2,14 +2,12 @@
|
|||||||
using PepperDash.Core;
|
using PepperDash.Core;
|
||||||
using PepperDash.Essentials.AppServer;
|
using PepperDash.Essentials.AppServer;
|
||||||
using PepperDash.Essentials.AppServer.Messengers;
|
using PepperDash.Essentials.AppServer.Messengers;
|
||||||
using PepperDash.Essentials.Core.DeviceTypeInterfaces;
|
|
||||||
using System;
|
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
using DisplayBase = PepperDash.Essentials.Devices.Common.Displays.DisplayBase;
|
using DisplayBase = PepperDash.Essentials.Devices.Common.Displays.DisplayBase;
|
||||||
|
|
||||||
namespace PepperDash.Essentials.Room.MobileControl
|
namespace PepperDash.Essentials.Room.MobileControl
|
||||||
{
|
{
|
||||||
public class DisplayBaseMessenger: MessengerBase
|
public class DisplayBaseMessenger : MessengerBase
|
||||||
{
|
{
|
||||||
private readonly DisplayBase display;
|
private readonly DisplayBase display;
|
||||||
|
|
||||||
@@ -20,7 +18,7 @@ namespace PepperDash.Essentials.Room.MobileControl
|
|||||||
|
|
||||||
protected override void RegisterActions()
|
protected override void RegisterActions()
|
||||||
{
|
{
|
||||||
base.RegisterActions();
|
base.RegisterActions();
|
||||||
|
|
||||||
/*AddAction("/powerOn", (id, content) => display.PowerOn());
|
/*AddAction("/powerOn", (id, content) => display.PowerOn());
|
||||||
AddAction("/powerOff", (id, content) => display.PowerOff());
|
AddAction("/powerOff", (id, content) => display.PowerOff());
|
||||||
|
|||||||
@@ -4,7 +4,7 @@ using PepperDash.Essentials.Core;
|
|||||||
|
|
||||||
namespace PepperDash.Essentials.Room.MobileControl
|
namespace PepperDash.Essentials.Room.MobileControl
|
||||||
{
|
{
|
||||||
public class IChannelMessenger:MessengerBase
|
public class IChannelMessenger : MessengerBase
|
||||||
{
|
{
|
||||||
private readonly IChannel channelDevice;
|
private readonly IChannel channelDevice;
|
||||||
|
|
||||||
@@ -15,14 +15,14 @@ namespace PepperDash.Essentials.Room.MobileControl
|
|||||||
|
|
||||||
protected override void RegisterActions()
|
protected override void RegisterActions()
|
||||||
{
|
{
|
||||||
base.RegisterActions();
|
base.RegisterActions();
|
||||||
|
|
||||||
AddAction("/chanUp", (id, content) => PressAndHoldHandler.HandlePressAndHold(DeviceKey, content, (b) => channelDevice?.ChannelUp(b)));
|
AddAction("/chanUp", (id, content) => PressAndHoldHandler.HandlePressAndHold(DeviceKey, content, (b) => channelDevice?.ChannelUp(b)));
|
||||||
|
|
||||||
AddAction("/chanDown", (id, content) => PressAndHoldHandler.HandlePressAndHold(DeviceKey, content, (b) => channelDevice?.ChannelDown(b)));
|
AddAction("/chanDown", (id, content) => PressAndHoldHandler.HandlePressAndHold(DeviceKey, content, (b) => channelDevice?.ChannelDown(b)));
|
||||||
AddAction("/lastChan", (id, content) => PressAndHoldHandler.HandlePressAndHold(DeviceKey, content, (b) => channelDevice?.LastChannel(b)));
|
AddAction("/lastChan", (id, content) => PressAndHoldHandler.HandlePressAndHold(DeviceKey, content, (b) => channelDevice?.LastChannel(b)));
|
||||||
AddAction("/guide", (id, content) => PressAndHoldHandler.HandlePressAndHold(DeviceKey, content, (b) => channelDevice?.Guide(b)));
|
AddAction("/guide", (id, content) => PressAndHoldHandler.HandlePressAndHold(DeviceKey, content, (b) => channelDevice?.Guide(b)));
|
||||||
AddAction("/info", (id, content) => PressAndHoldHandler.HandlePressAndHold (DeviceKey, content, (b) => channelDevice?.Info(b)));
|
AddAction("/info", (id, content) => PressAndHoldHandler.HandlePressAndHold(DeviceKey, content, (b) => channelDevice?.Info(b)));
|
||||||
AddAction("/exit", (id, content) => PressAndHoldHandler.HandlePressAndHold(DeviceKey, content, (b) => channelDevice?.Exit(b)));
|
AddAction("/exit", (id, content) => PressAndHoldHandler.HandlePressAndHold(DeviceKey, content, (b) => channelDevice?.Exit(b)));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,11 +1,10 @@
|
|||||||
using PepperDash.Core;
|
using PepperDash.Core;
|
||||||
using PepperDash.Essentials.AppServer.Messengers;
|
using PepperDash.Essentials.AppServer.Messengers;
|
||||||
using PepperDash.Essentials.Core;
|
using PepperDash.Essentials.Core;
|
||||||
using PepperDash.Essentials.Core.DeviceTypeInterfaces;
|
|
||||||
|
|
||||||
namespace PepperDash.Essentials.Room.MobileControl
|
namespace PepperDash.Essentials.Room.MobileControl
|
||||||
{
|
{
|
||||||
public class IColorMessenger:MessengerBase
|
public class IColorMessenger : MessengerBase
|
||||||
{
|
{
|
||||||
private readonly IColor colorDevice;
|
private readonly IColor colorDevice;
|
||||||
public IColorMessenger(string key, string messagePath, Device device) : base(key, messagePath, device)
|
public IColorMessenger(string key, string messagePath, Device device) : base(key, messagePath, device)
|
||||||
@@ -15,12 +14,12 @@ namespace PepperDash.Essentials.Room.MobileControl
|
|||||||
|
|
||||||
protected override void RegisterActions()
|
protected override void RegisterActions()
|
||||||
{
|
{
|
||||||
base.RegisterActions();
|
base.RegisterActions();
|
||||||
|
|
||||||
AddAction("/red", (id, content) => PressAndHoldHandler.HandlePressAndHold(DeviceKey, content, (b) => colorDevice?.Red(b)));
|
AddAction("/red", (id, content) => PressAndHoldHandler.HandlePressAndHold(DeviceKey, content, (b) => colorDevice?.Red(b)));
|
||||||
AddAction("/green", (id, content) => PressAndHoldHandler.HandlePressAndHold(DeviceKey, content, (b) => colorDevice?.Green(b)));
|
AddAction("/green", (id, content) => PressAndHoldHandler.HandlePressAndHold(DeviceKey, content, (b) => colorDevice?.Green(b)));
|
||||||
AddAction("/yellow", (id, content) => PressAndHoldHandler.HandlePressAndHold(DeviceKey, content, (b) => colorDevice?.Yellow(b)));
|
AddAction("/yellow", (id, content) => PressAndHoldHandler.HandlePressAndHold(DeviceKey, content, (b) => colorDevice?.Yellow(b)));
|
||||||
AddAction("/blue", (id, content) => PressAndHoldHandler.HandlePressAndHold(DeviceKey, content, (b) => colorDevice?.Blue(b)));
|
AddAction("/blue", (id, content) => PressAndHoldHandler.HandlePressAndHold(DeviceKey, content, (b) => colorDevice?.Blue(b)));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -4,7 +4,7 @@ using PepperDash.Essentials.Core;
|
|||||||
|
|
||||||
namespace PepperDash.Essentials.Room.MobileControl
|
namespace PepperDash.Essentials.Room.MobileControl
|
||||||
{
|
{
|
||||||
public class IDPadMessenger:MessengerBase
|
public class IDPadMessenger : MessengerBase
|
||||||
{
|
{
|
||||||
private readonly IDPad dpadDevice;
|
private readonly IDPad dpadDevice;
|
||||||
public IDPadMessenger(string key, string messagePath, Device device) : base(key, messagePath, device)
|
public IDPadMessenger(string key, string messagePath, Device device) : base(key, messagePath, device)
|
||||||
@@ -15,7 +15,7 @@ namespace PepperDash.Essentials.Room.MobileControl
|
|||||||
|
|
||||||
protected override void RegisterActions()
|
protected override void RegisterActions()
|
||||||
{
|
{
|
||||||
base.RegisterActions();
|
base.RegisterActions();
|
||||||
|
|
||||||
AddAction("/up", (id, content) => PressAndHoldHandler.HandlePressAndHold(DeviceKey, content, (b) => dpadDevice?.Up(b)));
|
AddAction("/up", (id, content) => PressAndHoldHandler.HandlePressAndHold(DeviceKey, content, (b) => dpadDevice?.Up(b)));
|
||||||
AddAction("/down", (id, content) => PressAndHoldHandler.HandlePressAndHold(DeviceKey, content, (b) => dpadDevice?.Down(b)));
|
AddAction("/down", (id, content) => PressAndHoldHandler.HandlePressAndHold(DeviceKey, content, (b) => dpadDevice?.Down(b)));
|
||||||
|
|||||||
@@ -4,7 +4,7 @@ using PepperDash.Essentials.Core;
|
|||||||
|
|
||||||
namespace PepperDash.Essentials.Room.MobileControl
|
namespace PepperDash.Essentials.Room.MobileControl
|
||||||
{
|
{
|
||||||
public class IDvrMessenger: MessengerBase
|
public class IDvrMessenger : MessengerBase
|
||||||
{
|
{
|
||||||
private readonly IDvr dvrDevice;
|
private readonly IDvr dvrDevice;
|
||||||
public IDvrMessenger(string key, string messagePath, Device device) : base(key, messagePath, device)
|
public IDvrMessenger(string key, string messagePath, Device device) : base(key, messagePath, device)
|
||||||
@@ -14,7 +14,7 @@ namespace PepperDash.Essentials.Room.MobileControl
|
|||||||
|
|
||||||
protected override void RegisterActions()
|
protected override void RegisterActions()
|
||||||
{
|
{
|
||||||
base.RegisterActions();
|
base.RegisterActions();
|
||||||
|
|
||||||
AddAction("/dvrlist", (id, content) => PressAndHoldHandler.HandlePressAndHold(DeviceKey, content, (b) => dvrDevice?.DvrList(b)));
|
AddAction("/dvrlist", (id, content) => PressAndHoldHandler.HandlePressAndHold(DeviceKey, content, (b) => dvrDevice?.DvrList(b)));
|
||||||
AddAction("/record", (id, content) => PressAndHoldHandler.HandlePressAndHold(DeviceKey, content, (b) => dvrDevice?.Record(b)));
|
AddAction("/record", (id, content) => PressAndHoldHandler.HandlePressAndHold(DeviceKey, content, (b) => dvrDevice?.Record(b)));
|
||||||
|
|||||||
@@ -1,11 +1,10 @@
|
|||||||
using PepperDash.Core;
|
using PepperDash.Core;
|
||||||
using PepperDash.Essentials.AppServer.Messengers;
|
using PepperDash.Essentials.AppServer.Messengers;
|
||||||
using PepperDash.Essentials.Core;
|
using PepperDash.Essentials.Core;
|
||||||
using PepperDash.Essentials.Core.DeviceTypeInterfaces;
|
|
||||||
|
|
||||||
namespace PepperDash.Essentials.Room.MobileControl
|
namespace PepperDash.Essentials.Room.MobileControl
|
||||||
{
|
{
|
||||||
public class IHasPowerMessenger:MessengerBase
|
public class IHasPowerMessenger : MessengerBase
|
||||||
{
|
{
|
||||||
private readonly IHasPowerControl powerDevice;
|
private readonly IHasPowerControl powerDevice;
|
||||||
public IHasPowerMessenger(string key, string messagePath, Device device) : base(key, messagePath, device)
|
public IHasPowerMessenger(string key, string messagePath, Device device) : base(key, messagePath, device)
|
||||||
|
|||||||
@@ -4,7 +4,7 @@ using PepperDash.Essentials.Core;
|
|||||||
|
|
||||||
namespace PepperDash.Essentials.Room.MobileControl
|
namespace PepperDash.Essentials.Room.MobileControl
|
||||||
{
|
{
|
||||||
public class INumericKeypadMessenger:MessengerBase
|
public class INumericKeypadMessenger : MessengerBase
|
||||||
{
|
{
|
||||||
private readonly INumericKeypad keypadDevice;
|
private readonly INumericKeypad keypadDevice;
|
||||||
public INumericKeypadMessenger(string key, string messagePath, Device device) : base(key, messagePath, device)
|
public INumericKeypadMessenger(string key, string messagePath, Device device) : base(key, messagePath, device)
|
||||||
@@ -14,7 +14,7 @@ namespace PepperDash.Essentials.Room.MobileControl
|
|||||||
|
|
||||||
protected override void RegisterActions()
|
protected override void RegisterActions()
|
||||||
{
|
{
|
||||||
base.RegisterActions();
|
base.RegisterActions();
|
||||||
|
|
||||||
AddAction("/num0", (id, content) => PressAndHoldHandler.HandlePressAndHold(DeviceKey, content, (b) => keypadDevice?.Digit0(b)));
|
AddAction("/num0", (id, content) => PressAndHoldHandler.HandlePressAndHold(DeviceKey, content, (b) => keypadDevice?.Digit0(b)));
|
||||||
AddAction("/num1", (id, content) => PressAndHoldHandler.HandlePressAndHold(DeviceKey, content, (b) => keypadDevice?.Digit1(b)));
|
AddAction("/num1", (id, content) => PressAndHoldHandler.HandlePressAndHold(DeviceKey, content, (b) => keypadDevice?.Digit1(b)));
|
||||||
|
|||||||
@@ -4,7 +4,7 @@ using PepperDash.Essentials.Core;
|
|||||||
|
|
||||||
namespace PepperDash.Essentials.Room.MobileControl
|
namespace PepperDash.Essentials.Room.MobileControl
|
||||||
{
|
{
|
||||||
public class ISetTopBoxControlsMessenger:MessengerBase
|
public class ISetTopBoxControlsMessenger : MessengerBase
|
||||||
{
|
{
|
||||||
private readonly ISetTopBoxControls stbDevice;
|
private readonly ISetTopBoxControls stbDevice;
|
||||||
public ISetTopBoxControlsMessenger(string key, string messagePath, IKeyName device) : base(key, messagePath, device)
|
public ISetTopBoxControlsMessenger(string key, string messagePath, IKeyName device) : base(key, messagePath, device)
|
||||||
@@ -18,15 +18,15 @@ namespace PepperDash.Essentials.Room.MobileControl
|
|||||||
AddAction("/fullStatus", (id, content) => SendISetTopBoxControlsFullMessageObject());
|
AddAction("/fullStatus", (id, content) => SendISetTopBoxControlsFullMessageObject());
|
||||||
AddAction("/dvrList", (id, content) => PressAndHoldHandler.HandlePressAndHold(DeviceKey, content, (b) => stbDevice?.DvrList(b)));
|
AddAction("/dvrList", (id, content) => PressAndHoldHandler.HandlePressAndHold(DeviceKey, content, (b) => stbDevice?.DvrList(b)));
|
||||||
AddAction("/replay", (id, content) => PressAndHoldHandler.HandlePressAndHold(DeviceKey, content, (b) => stbDevice?.Replay(b)));
|
AddAction("/replay", (id, content) => PressAndHoldHandler.HandlePressAndHold(DeviceKey, content, (b) => stbDevice?.Replay(b)));
|
||||||
}
|
}
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Helper method to build call status for vtc
|
/// Helper method to build call status for vtc
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <returns></returns>
|
/// <returns></returns>
|
||||||
private void SendISetTopBoxControlsFullMessageObject()
|
private void SendISetTopBoxControlsFullMessageObject()
|
||||||
{
|
{
|
||||||
|
|
||||||
PostStatusMessage( new SetTopBoxControlsState());
|
PostStatusMessage(new SetTopBoxControlsState());
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -4,7 +4,7 @@ using PepperDash.Essentials.Core;
|
|||||||
|
|
||||||
namespace PepperDash.Essentials.Room.MobileControl
|
namespace PepperDash.Essentials.Room.MobileControl
|
||||||
{
|
{
|
||||||
public class ITransportMessenger:MessengerBase
|
public class ITransportMessenger : MessengerBase
|
||||||
{
|
{
|
||||||
private readonly ITransport transportDevice;
|
private readonly ITransport transportDevice;
|
||||||
public ITransportMessenger(string key, string messagePath, Device device) : base(key, messagePath, device)
|
public ITransportMessenger(string key, string messagePath, Device device) : base(key, messagePath, device)
|
||||||
@@ -16,14 +16,14 @@ namespace PepperDash.Essentials.Room.MobileControl
|
|||||||
{
|
{
|
||||||
base.RegisterActions();
|
base.RegisterActions();
|
||||||
|
|
||||||
AddAction("/play", (id, content) => PressAndHoldHandler.HandlePressAndHold(DeviceKey, content, (b) => transportDevice?.Play(b)));
|
AddAction("/play", (id, content) => PressAndHoldHandler.HandlePressAndHold(DeviceKey, content, (b) => transportDevice?.Play(b)));
|
||||||
AddAction("/pause", (id, content) => PressAndHoldHandler.HandlePressAndHold(DeviceKey, content, (b) => transportDevice?.Pause(b)));
|
AddAction("/pause", (id, content) => PressAndHoldHandler.HandlePressAndHold(DeviceKey, content, (b) => transportDevice?.Pause(b)));
|
||||||
AddAction("/stop", (id, content) => PressAndHoldHandler.HandlePressAndHold(DeviceKey, content, (b) => transportDevice?.Stop(b)));
|
AddAction("/stop", (id, content) => PressAndHoldHandler.HandlePressAndHold(DeviceKey, content, (b) => transportDevice?.Stop(b)));
|
||||||
AddAction("/prevTrack", (id, content) => PressAndHoldHandler.HandlePressAndHold(DeviceKey, content, (b) => transportDevice?.ChapPlus(b)));
|
AddAction("/prevTrack", (id, content) => PressAndHoldHandler.HandlePressAndHold(DeviceKey, content, (b) => transportDevice?.ChapPlus(b)));
|
||||||
AddAction("/nextTrack", (id, content) => PressAndHoldHandler.HandlePressAndHold(DeviceKey, content, (b) => transportDevice?.ChapMinus(b)));
|
AddAction("/nextTrack", (id, content) => PressAndHoldHandler.HandlePressAndHold(DeviceKey, content, (b) => transportDevice?.ChapMinus(b)));
|
||||||
AddAction("/rewind", (id, content) => PressAndHoldHandler.HandlePressAndHold(DeviceKey, content, (b) => transportDevice?.Rewind(b)));
|
AddAction("/rewind", (id, content) => PressAndHoldHandler.HandlePressAndHold(DeviceKey, content, (b) => transportDevice?.Rewind(b)));
|
||||||
AddAction("/ffwd", (id, content) => PressAndHoldHandler.HandlePressAndHold(DeviceKey, content, (b) => transportDevice?.FFwd(b)));
|
AddAction("/ffwd", (id, content) => PressAndHoldHandler.HandlePressAndHold(DeviceKey, content, (b) => transportDevice?.FFwd(b)));
|
||||||
AddAction("/record", (id, content) => PressAndHoldHandler.HandlePressAndHold(DeviceKey, content, (b) => transportDevice?.Record(b)));
|
AddAction("/record", (id, content) => PressAndHoldHandler.HandlePressAndHold(DeviceKey, content, (b) => transportDevice?.Record(b)));
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,5 +1,4 @@
|
|||||||
using Newtonsoft.Json.Linq;
|
using Newtonsoft.Json.Linq;
|
||||||
using PepperDash.Essentials.Core.DeviceTypeInterfaces;
|
|
||||||
using PepperDash.Essentials.Devices.Common.AudioCodec;
|
using PepperDash.Essentials.Devices.Common.AudioCodec;
|
||||||
using PepperDash.Essentials.Devices.Common.Codec;
|
using PepperDash.Essentials.Devices.Common.Codec;
|
||||||
using System;
|
using System;
|
||||||
@@ -103,14 +102,14 @@ namespace PepperDash.Essentials.AppServer.Messengers
|
|||||||
var info = Codec.CodecInfo;
|
var info = Codec.CodecInfo;
|
||||||
|
|
||||||
PostStatusMessage(JToken.FromObject(new
|
PostStatusMessage(JToken.FromObject(new
|
||||||
|
{
|
||||||
|
isInCall = Codec.IsInCall,
|
||||||
|
calls = Codec.ActiveCalls,
|
||||||
|
info = new
|
||||||
{
|
{
|
||||||
isInCall = Codec.IsInCall,
|
phoneNumber = info.PhoneNumber
|
||||||
calls = Codec.ActiveCalls,
|
}
|
||||||
info = new
|
})
|
||||||
{
|
|
||||||
phoneNumber = info.PhoneNumber
|
|
||||||
}
|
|
||||||
})
|
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,6 +1,5 @@
|
|||||||
using Newtonsoft.Json.Linq;
|
using Newtonsoft.Json.Linq;
|
||||||
using PepperDash.Essentials.Core;
|
using PepperDash.Essentials.Core;
|
||||||
using PepperDash.Essentials.Core.DeviceTypeInterfaces;
|
|
||||||
using PepperDash.Essentials.Devices.Common.Cameras;
|
using PepperDash.Essentials.Devices.Common.Cameras;
|
||||||
using System;
|
using System;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
@@ -40,9 +39,9 @@ namespace PepperDash.Essentials.AppServer.Messengers
|
|||||||
presetList = presetsCamera.Presets;
|
presetList = presetsCamera.Presets;
|
||||||
|
|
||||||
PostStatusMessage(JToken.FromObject(new
|
PostStatusMessage(JToken.FromObject(new
|
||||||
{
|
{
|
||||||
presets = presetList
|
presets = presetList
|
||||||
})
|
})
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -175,14 +174,14 @@ namespace PepperDash.Essentials.AppServer.Messengers
|
|||||||
presetList = presetsCamera.Presets;
|
presetList = presetsCamera.Presets;
|
||||||
|
|
||||||
PostStatusMessage(JToken.FromObject(new
|
PostStatusMessage(JToken.FromObject(new
|
||||||
{
|
{
|
||||||
cameraManualSupported = Camera is IHasCameraControls,
|
cameraManualSupported = Camera is IHasCameraControls,
|
||||||
cameraAutoSupported = Camera is IHasCameraAutoMode,
|
cameraAutoSupported = Camera is IHasCameraAutoMode,
|
||||||
cameraOffSupported = Camera is IHasCameraOff,
|
cameraOffSupported = Camera is IHasCameraOff,
|
||||||
cameraMode = GetCameraMode(),
|
cameraMode = GetCameraMode(),
|
||||||
hasPresets = Camera is IHasCameraPresets,
|
hasPresets = Camera is IHasCameraPresets,
|
||||||
presets = presetList
|
presets = presetList
|
||||||
})
|
})
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -2,11 +2,6 @@
|
|||||||
using Newtonsoft.Json.Linq;
|
using Newtonsoft.Json.Linq;
|
||||||
using PepperDash.Core;
|
using PepperDash.Core;
|
||||||
using PepperDash.Essentials.Core.DeviceInfo;
|
using PepperDash.Essentials.Core.DeviceInfo;
|
||||||
using System;
|
|
||||||
using System.Collections.Generic;
|
|
||||||
using System.Linq;
|
|
||||||
using System.Text;
|
|
||||||
using System.Threading.Tasks;
|
|
||||||
|
|
||||||
namespace PepperDash.Essentials.AppServer.Messengers
|
namespace PepperDash.Essentials.AppServer.Messengers
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -43,12 +43,14 @@ namespace PepperDash.Essentials.AppServer.Messengers
|
|||||||
protected override void RegisterActions()
|
protected override void RegisterActions()
|
||||||
|
|
||||||
{
|
{
|
||||||
AddAction("/presets/fullStatus", (id, content) => {
|
AddAction("/presets/fullStatus", (id, content) =>
|
||||||
|
{
|
||||||
this.LogInformation("getting full status for client {id}", id);
|
this.LogInformation("getting full status for client {id}", id);
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
SendPresets();
|
SendPresets();
|
||||||
} catch(Exception ex)
|
}
|
||||||
|
catch (Exception ex)
|
||||||
{
|
{
|
||||||
Debug.LogMessage(ex, "Exception sending preset full status", this);
|
Debug.LogMessage(ex, "Exception sending preset full status", this);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -2,7 +2,6 @@
|
|||||||
using Newtonsoft.Json.Converters;
|
using Newtonsoft.Json.Converters;
|
||||||
using Newtonsoft.Json.Linq;
|
using Newtonsoft.Json.Linq;
|
||||||
using PepperDash.Core;
|
using PepperDash.Core;
|
||||||
using PepperDash.Core.Logging;
|
|
||||||
using PepperDash.Essentials.Core;
|
using PepperDash.Essentials.Core;
|
||||||
using System;
|
using System;
|
||||||
|
|
||||||
@@ -39,7 +38,8 @@ namespace PepperDash.Essentials.AppServer.Messengers
|
|||||||
}
|
}
|
||||||
|
|
||||||
PostStatusMessage(messageObj);
|
PostStatusMessage(messageObj);
|
||||||
} catch(Exception ex)
|
}
|
||||||
|
catch (Exception ex)
|
||||||
{
|
{
|
||||||
Debug.LogMessage(ex, "Exception sending full status", this);
|
Debug.LogMessage(ex, "Exception sending full status", this);
|
||||||
}
|
}
|
||||||
@@ -60,7 +60,7 @@ namespace PepperDash.Essentials.AppServer.Messengers
|
|||||||
});
|
});
|
||||||
|
|
||||||
AddAction("/muteToggle", (id, content) =>
|
AddAction("/muteToggle", (id, content) =>
|
||||||
{
|
{
|
||||||
_localDevice.MuteToggle();
|
_localDevice.MuteToggle();
|
||||||
});
|
});
|
||||||
|
|
||||||
@@ -74,21 +74,22 @@ namespace PepperDash.Essentials.AppServer.Messengers
|
|||||||
_localDevice.MuteOff();
|
_localDevice.MuteOff();
|
||||||
});
|
});
|
||||||
|
|
||||||
AddAction("/volumeUp", (id, content) => PressAndHoldHandler.HandlePressAndHold(DeviceKey, content, (b) =>
|
AddAction("/volumeUp", (id, content) => PressAndHoldHandler.HandlePressAndHold(DeviceKey, content, (b) =>
|
||||||
{
|
{
|
||||||
Debug.LogMessage(Serilog.Events.LogEventLevel.Verbose, "Calling {localDevice} volume up with {value}", DeviceKey, b);
|
Debug.LogMessage(Serilog.Events.LogEventLevel.Verbose, "Calling {localDevice} volume up with {value}", DeviceKey, b);
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
_localDevice.VolumeUp(b);
|
_localDevice.VolumeUp(b);
|
||||||
} catch (Exception ex)
|
}
|
||||||
|
catch (Exception ex)
|
||||||
{
|
{
|
||||||
Debug.LogMessage(ex, "Got exception during volume up: {Exception}", null, ex);
|
Debug.LogMessage(ex, "Got exception during volume up: {Exception}", null, ex);
|
||||||
}
|
}
|
||||||
}));
|
}));
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
AddAction("/volumeDown", (id, content) => PressAndHoldHandler.HandlePressAndHold(DeviceKey, content, (b) =>
|
AddAction("/volumeDown", (id, content) => PressAndHoldHandler.HandlePressAndHold(DeviceKey, content, (b) =>
|
||||||
{
|
{
|
||||||
Debug.LogMessage(Serilog.Events.LogEventLevel.Verbose, "Calling {localDevice} volume down with {value}", DeviceKey, b);
|
Debug.LogMessage(Serilog.Events.LogEventLevel.Verbose, "Calling {localDevice} volume down with {value}", DeviceKey, b);
|
||||||
|
|
||||||
@@ -132,7 +133,7 @@ namespace PepperDash.Essentials.AppServer.Messengers
|
|||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
PostStatusMessage(JToken.FromObject(message));
|
PostStatusMessage(JToken.FromObject(message));
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -1,6 +1,4 @@
|
|||||||
using PepperDash.Essentials.Core;
|
using PepperDash.Essentials.Core;
|
||||||
using PepperDash.Essentials.Core.DeviceTypeInterfaces;
|
|
||||||
using System;
|
|
||||||
|
|
||||||
namespace PepperDash.Essentials.AppServer.Messengers
|
namespace PepperDash.Essentials.AppServer.Messengers
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -3,11 +3,6 @@ using Newtonsoft.Json.Converters;
|
|||||||
using Newtonsoft.Json.Linq;
|
using Newtonsoft.Json.Linq;
|
||||||
using PepperDash.Core;
|
using PepperDash.Core;
|
||||||
using PepperDash.Essentials.Core;
|
using PepperDash.Essentials.Core;
|
||||||
using System;
|
|
||||||
using System.Collections.Generic;
|
|
||||||
using System.Linq;
|
|
||||||
using System.Text;
|
|
||||||
using System.Threading.Tasks;
|
|
||||||
|
|
||||||
namespace PepperDash.Essentials.AppServer.Messengers
|
namespace PepperDash.Essentials.AppServer.Messengers
|
||||||
{
|
{
|
||||||
@@ -24,7 +19,7 @@ namespace PepperDash.Essentials.AppServer.Messengers
|
|||||||
{
|
{
|
||||||
base.RegisterActions();
|
base.RegisterActions();
|
||||||
|
|
||||||
AddAction("/fullStatus", (id, content) =>
|
AddAction("/fullStatus", (id, content) =>
|
||||||
{
|
{
|
||||||
PostStatusMessage(new CommunicationMonitorState
|
PostStatusMessage(new CommunicationMonitorState
|
||||||
{
|
{
|
||||||
@@ -33,7 +28,7 @@ namespace PepperDash.Essentials.AppServer.Messengers
|
|||||||
IsOnline = _communicationMonitor.CommunicationMonitor.IsOnline,
|
IsOnline = _communicationMonitor.CommunicationMonitor.IsOnline,
|
||||||
Status = _communicationMonitor.CommunicationMonitor.Status
|
Status = _communicationMonitor.CommunicationMonitor.Status
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
_communicationMonitor.CommunicationMonitor.StatusChange += (sender, args) =>
|
_communicationMonitor.CommunicationMonitor.StatusChange += (sender, args) =>
|
||||||
|
|||||||
@@ -79,7 +79,7 @@ namespace PepperDash.Essentials.AppServer.Messengers
|
|||||||
PostStatusMessage(JToken.FromObject(message));
|
PostStatusMessage(JToken.FromObject(message));
|
||||||
};
|
};
|
||||||
|
|
||||||
foreach(var partition in _roomCombiner.Partitions)
|
foreach (var partition in _roomCombiner.Partitions)
|
||||||
{
|
{
|
||||||
partition.PartitionPresentFeedback.OutputChange += (sender, args) =>
|
partition.PartitionPresentFeedback.OutputChange += (sender, args) =>
|
||||||
{
|
{
|
||||||
@@ -101,7 +101,7 @@ namespace PepperDash.Essentials.AppServer.Messengers
|
|||||||
|
|
||||||
foreach (var room in _roomCombiner.Rooms)
|
foreach (var room in _roomCombiner.Rooms)
|
||||||
{
|
{
|
||||||
rooms.Add(new RoomCombinerRoom{ Key = room.Key, Name = room.Name });
|
rooms.Add(new RoomCombinerRoom { Key = room.Key, Name = room.Name });
|
||||||
}
|
}
|
||||||
|
|
||||||
var message = new IEssentialsRoomCombinerStateMessage
|
var message = new IEssentialsRoomCombinerStateMessage
|
||||||
|
|||||||
@@ -2,7 +2,6 @@
|
|||||||
using Newtonsoft.Json.Linq;
|
using Newtonsoft.Json.Linq;
|
||||||
using PepperDash.Core;
|
using PepperDash.Core;
|
||||||
using PepperDash.Essentials.Core;
|
using PepperDash.Essentials.Core;
|
||||||
using PepperDash.Essentials.Core.Routing;
|
|
||||||
|
|
||||||
namespace PepperDash.Essentials.AppServer.Messengers
|
namespace PepperDash.Essentials.AppServer.Messengers
|
||||||
{
|
{
|
||||||
@@ -29,7 +28,8 @@ namespace PepperDash.Essentials.AppServer.Messengers
|
|||||||
PostStatusMessage(message);
|
PostStatusMessage(message);
|
||||||
});
|
});
|
||||||
|
|
||||||
sourceDevice.CurrentSourceChange += (sender, e) => {
|
sourceDevice.CurrentSourceChange += (sender, e) =>
|
||||||
|
{
|
||||||
switch (e)
|
switch (e)
|
||||||
{
|
{
|
||||||
case ChangeType.DidChange:
|
case ChangeType.DidChange:
|
||||||
@@ -42,11 +42,11 @@ namespace PepperDash.Essentials.AppServer.Messengers
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public class CurrentSourceStateMessage: DeviceStateMessageBase
|
public class CurrentSourceStateMessage : DeviceStateMessageBase
|
||||||
{
|
{
|
||||||
[JsonProperty("currentSourceKey", NullValueHandling = NullValueHandling.Ignore)]
|
[JsonProperty("currentSourceKey", NullValueHandling = NullValueHandling.Ignore)]
|
||||||
public string CurrentSourceKey { get; set; }
|
public string CurrentSourceKey { get; set; }
|
||||||
|
|||||||
@@ -1,20 +1,15 @@
|
|||||||
using Newtonsoft.Json;
|
using Newtonsoft.Json;
|
||||||
using Newtonsoft.Json.Linq;
|
using Newtonsoft.Json.Linq;
|
||||||
using PepperDash.Essentials.Core;
|
|
||||||
using PepperDash.Core;
|
using PepperDash.Core;
|
||||||
using System;
|
using PepperDash.Essentials.Core;
|
||||||
using System.Collections.Generic;
|
|
||||||
using System.Linq;
|
|
||||||
using System.Text;
|
|
||||||
using System.Threading.Tasks;
|
|
||||||
|
|
||||||
namespace PepperDash.Essentials.AppServer.Messengers
|
namespace PepperDash.Essentials.AppServer.Messengers
|
||||||
{
|
{
|
||||||
public class IHasPowerControlWithFeedbackMessenger: MessengerBase
|
public class IHasPowerControlWithFeedbackMessenger : MessengerBase
|
||||||
{
|
{
|
||||||
private readonly IHasPowerControlWithFeedback _powerControl;
|
private readonly IHasPowerControlWithFeedback _powerControl;
|
||||||
|
|
||||||
public IHasPowerControlWithFeedbackMessenger(string key, string messagePath, IHasPowerControlWithFeedback powerControl)
|
public IHasPowerControlWithFeedbackMessenger(string key, string messagePath, IHasPowerControlWithFeedback powerControl)
|
||||||
: base(key, messagePath, powerControl as Device)
|
: base(key, messagePath, powerControl as Device)
|
||||||
{
|
{
|
||||||
_powerControl = powerControl;
|
_powerControl = powerControl;
|
||||||
@@ -42,9 +37,9 @@ namespace PepperDash.Essentials.AppServer.Messengers
|
|||||||
private void PowerIsOnFeedback_OutputChange(object sender, FeedbackEventArgs args)
|
private void PowerIsOnFeedback_OutputChange(object sender, FeedbackEventArgs args)
|
||||||
{
|
{
|
||||||
PostStatusMessage(JToken.FromObject(new
|
PostStatusMessage(JToken.FromObject(new
|
||||||
{
|
{
|
||||||
powerState = args.BoolValue
|
powerState = args.BoolValue
|
||||||
})
|
})
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,7 +1,6 @@
|
|||||||
using Newtonsoft.Json;
|
using Newtonsoft.Json;
|
||||||
using Newtonsoft.Json.Linq;
|
using Newtonsoft.Json.Linq;
|
||||||
using PepperDash.Core;
|
using PepperDash.Core;
|
||||||
using PepperDash.Essentials.Core.DeviceTypeInterfaces;
|
|
||||||
using PepperDash.Essentials.Devices.Common.Codec;
|
using PepperDash.Essentials.Devices.Common.Codec;
|
||||||
using System;
|
using System;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
@@ -28,13 +27,13 @@ namespace PepperDash.Essentials.AppServer.Messengers
|
|||||||
private void CodecSchedule_MeetingEventChange(object sender, MeetingEventArgs e)
|
private void CodecSchedule_MeetingEventChange(object sender, MeetingEventArgs e)
|
||||||
{
|
{
|
||||||
PostStatusMessage(JToken.FromObject(new MeetingChangeMessage
|
PostStatusMessage(JToken.FromObject(new MeetingChangeMessage
|
||||||
|
{
|
||||||
|
MeetingChange = new MeetingChange
|
||||||
{
|
{
|
||||||
MeetingChange = new MeetingChange
|
ChangeType = e.ChangeType.ToString(),
|
||||||
{
|
Meeting = e.Meeting
|
||||||
ChangeType = e.ChangeType.ToString(),
|
}
|
||||||
Meeting = e.Meeting
|
})
|
||||||
}
|
|
||||||
})
|
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -1,13 +1,9 @@
|
|||||||
using Independentsoft.Exchange;
|
using Newtonsoft.Json;
|
||||||
using Newtonsoft.Json;
|
|
||||||
using Newtonsoft.Json.Linq;
|
using Newtonsoft.Json.Linq;
|
||||||
using PepperDash.Core;
|
using PepperDash.Core;
|
||||||
using PepperDash.Essentials.Core.DeviceTypeInterfaces;
|
using PepperDash.Essentials.Core.DeviceTypeInterfaces;
|
||||||
using System;
|
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
using System.Text;
|
|
||||||
using System.Threading.Tasks;
|
|
||||||
|
|
||||||
namespace PepperDash.Essentials.AppServer.Messengers
|
namespace PepperDash.Essentials.AppServer.Messengers
|
||||||
{
|
{
|
||||||
@@ -33,7 +29,7 @@ namespace PepperDash.Essentials.AppServer.Messengers
|
|||||||
PostStatusMessage(message);
|
PostStatusMessage(message);
|
||||||
});
|
});
|
||||||
|
|
||||||
foreach(var levelControl in levelControlsDevice.LevelControlPoints)
|
foreach (var levelControl in levelControlsDevice.LevelControlPoints)
|
||||||
{
|
{
|
||||||
// reassigning here just in case of lambda closure issues
|
// reassigning here just in case of lambda closure issues
|
||||||
var key = levelControl.Key;
|
var key = levelControl.Key;
|
||||||
@@ -78,7 +74,7 @@ namespace PepperDash.Essentials.AppServer.Messengers
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public class LevelControlStateMessage:DeviceStateMessageBase
|
public class LevelControlStateMessage : DeviceStateMessageBase
|
||||||
{
|
{
|
||||||
[JsonProperty("levelControls")]
|
[JsonProperty("levelControls")]
|
||||||
public Dictionary<string, Volume> Levels { get; set; }
|
public Dictionary<string, Volume> Levels { get; set; }
|
||||||
|
|||||||
@@ -3,10 +3,10 @@ using Newtonsoft.Json.Linq;
|
|||||||
using PepperDash.Core;
|
using PepperDash.Core;
|
||||||
using PepperDash.Essentials.Core;
|
using PepperDash.Essentials.Core;
|
||||||
using PepperDash.Essentials.Core.Routing;
|
using PepperDash.Essentials.Core.Routing;
|
||||||
using System.Collections.Generic;
|
|
||||||
using System.Linq;
|
|
||||||
using Serilog.Events;
|
using Serilog.Events;
|
||||||
using System;
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Linq;
|
||||||
|
|
||||||
namespace PepperDash.Essentials.AppServer.Messengers
|
namespace PepperDash.Essentials.AppServer.Messengers
|
||||||
{
|
{
|
||||||
@@ -36,7 +36,7 @@ namespace PepperDash.Essentials.AppServer.Messengers
|
|||||||
Inputs = matrixDevice.InputSlots.ToDictionary(kvp => kvp.Key, kvp => new RoutingInput(kvp.Value)),
|
Inputs = matrixDevice.InputSlots.ToDictionary(kvp => kvp.Key, kvp => new RoutingInput(kvp.Value)),
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
PostStatusMessage(message);
|
PostStatusMessage(message);
|
||||||
}
|
}
|
||||||
catch (Exception e)
|
catch (Exception e)
|
||||||
@@ -52,7 +52,7 @@ namespace PepperDash.Essentials.AppServer.Messengers
|
|||||||
matrixDevice.Route(request.InputKey, request.OutputKey, request.RouteType);
|
matrixDevice.Route(request.InputKey, request.OutputKey, request.RouteType);
|
||||||
});
|
});
|
||||||
|
|
||||||
foreach(var output in matrixDevice.OutputSlots)
|
foreach (var output in matrixDevice.OutputSlots)
|
||||||
{
|
{
|
||||||
var key = output.Key;
|
var key = output.Key;
|
||||||
var outputSlot = output.Value;
|
var outputSlot = output.Value;
|
||||||
@@ -66,7 +66,7 @@ namespace PepperDash.Essentials.AppServer.Messengers
|
|||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
foreach(var input in matrixDevice.InputSlots)
|
foreach (var input in matrixDevice.InputSlots)
|
||||||
{
|
{
|
||||||
var key = input.Key;
|
var key = input.Key;
|
||||||
var inputSlot = input.Value;
|
var inputSlot = input.Value;
|
||||||
@@ -82,7 +82,7 @@ namespace PepperDash.Essentials.AppServer.Messengers
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public class MatrixStateMessage : DeviceStateMessageBase
|
public class MatrixStateMessage : DeviceStateMessageBase
|
||||||
{
|
{
|
||||||
[JsonProperty("outputs")]
|
[JsonProperty("outputs")]
|
||||||
public Dictionary<string, RoutingOutput> Outputs;
|
public Dictionary<string, RoutingOutput> Outputs;
|
||||||
@@ -113,13 +113,13 @@ namespace PepperDash.Essentials.AppServer.Messengers
|
|||||||
|
|
||||||
[JsonProperty("videoSyncDetected", NullValueHandling = NullValueHandling.Ignore)]
|
[JsonProperty("videoSyncDetected", NullValueHandling = NullValueHandling.Ignore)]
|
||||||
|
|
||||||
public bool? VideoSyncDetected => _input?.VideoSyncDetected;
|
public bool? VideoSyncDetected => _input?.VideoSyncDetected;
|
||||||
|
|
||||||
[JsonProperty("key", NullValueHandling = NullValueHandling.Ignore)]
|
[JsonProperty("key", NullValueHandling = NullValueHandling.Ignore)]
|
||||||
public string Key => _input?.Key;
|
public string Key => _input?.Key;
|
||||||
|
|
||||||
public RoutingInput(IRoutingInputSlot input)
|
public RoutingInput(IRoutingInputSlot input)
|
||||||
{
|
{
|
||||||
_input = input;
|
_input = input;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -7,7 +7,7 @@ using System;
|
|||||||
|
|
||||||
namespace PepperDash.Essentials.AppServer.Messengers
|
namespace PepperDash.Essentials.AppServer.Messengers
|
||||||
{
|
{
|
||||||
public class IProjectorScreenLiftControlMessenger: MessengerBase
|
public class IProjectorScreenLiftControlMessenger : MessengerBase
|
||||||
{
|
{
|
||||||
private readonly IProjectorScreenLiftControl device;
|
private readonly IProjectorScreenLiftControl device;
|
||||||
|
|
||||||
|
|||||||
@@ -1,7 +1,6 @@
|
|||||||
using Newtonsoft.Json;
|
using Newtonsoft.Json;
|
||||||
using PepperDash.Core;
|
using PepperDash.Core;
|
||||||
using PepperDash.Essentials.Core;
|
using PepperDash.Essentials.Core;
|
||||||
using PepperDash.Essentials.Core.DeviceTypeInterfaces;
|
|
||||||
using System;
|
using System;
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -1,13 +1,8 @@
|
|||||||
using Newtonsoft.Json;
|
using Newtonsoft.Json;
|
||||||
|
using Newtonsoft.Json.Converters;
|
||||||
using Newtonsoft.Json.Linq;
|
using Newtonsoft.Json.Linq;
|
||||||
using PepperDash.Core;
|
using PepperDash.Core;
|
||||||
using PepperDash.Essentials.Core.DeviceTypeInterfaces;
|
using PepperDash.Essentials.Core.DeviceTypeInterfaces;
|
||||||
using System;
|
|
||||||
using System.Collections.Generic;
|
|
||||||
using System.Linq;
|
|
||||||
using System.Text;
|
|
||||||
using System.Threading.Tasks;
|
|
||||||
using Newtonsoft.Json.Converters;
|
|
||||||
|
|
||||||
namespace PepperDash.Essentials.AppServer.Messengers
|
namespace PepperDash.Essentials.AppServer.Messengers
|
||||||
{
|
{
|
||||||
@@ -45,7 +40,7 @@ namespace PepperDash.Essentials.AppServer.Messengers
|
|||||||
foreach (var input in itemDevice.Items)
|
foreach (var input in itemDevice.Items)
|
||||||
{
|
{
|
||||||
var key = input.Key;
|
var key = input.Key;
|
||||||
var localItem = input.Value;
|
var localItem = input.Value;
|
||||||
|
|
||||||
AddAction($"/{key}", (id, content) =>
|
AddAction($"/{key}", (id, content) =>
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -1,12 +1,7 @@
|
|||||||
using System;
|
using Newtonsoft.Json;
|
||||||
using System.Collections.Generic;
|
|
||||||
using System.Linq;
|
|
||||||
using System.Text;
|
|
||||||
using System.Threading.Tasks;
|
|
||||||
using PepperDash.Essentials.Core.CrestronIO;
|
|
||||||
using PepperDash.Essentials.Core.Shades;
|
|
||||||
using Newtonsoft.Json;
|
|
||||||
using PepperDash.Core;
|
using PepperDash.Core;
|
||||||
|
using PepperDash.Essentials.Core.CrestronIO;
|
||||||
|
using System;
|
||||||
|
|
||||||
namespace PepperDash.Essentials.AppServer.Messengers
|
namespace PepperDash.Essentials.AppServer.Messengers
|
||||||
{
|
{
|
||||||
@@ -41,7 +36,7 @@ namespace PepperDash.Essentials.AppServer.Messengers
|
|||||||
|
|
||||||
});
|
});
|
||||||
|
|
||||||
device.OutputIsOnFeedback.OutputChange += new EventHandler<Core.FeedbackEventArgs>((o, a) => SendFullStatus());
|
device.OutputIsOnFeedback.OutputChange += new EventHandler<Core.FeedbackEventArgs>((o, a) => SendFullStatus());
|
||||||
}
|
}
|
||||||
|
|
||||||
private void SendFullStatus()
|
private void SendFullStatus()
|
||||||
|
|||||||
@@ -1,11 +1,4 @@
|
|||||||
using System;
|
using Newtonsoft.Json;
|
||||||
using System.Collections.Generic;
|
|
||||||
using System.Diagnostics.Contracts;
|
|
||||||
using System.Linq;
|
|
||||||
using System.Text;
|
|
||||||
using System.Threading.Tasks;
|
|
||||||
using Independentsoft.Json.Parser;
|
|
||||||
using Newtonsoft.Json;
|
|
||||||
using PepperDash.Core;
|
using PepperDash.Core;
|
||||||
using PepperDash.Essentials.Core;
|
using PepperDash.Essentials.Core;
|
||||||
|
|
||||||
@@ -82,8 +75,8 @@ namespace PepperDash.Essentials.AppServer.Messengers
|
|||||||
[JsonProperty("isValid", NullValueHandling = NullValueHandling.Ignore)]
|
[JsonProperty("isValid", NullValueHandling = NullValueHandling.Ignore)]
|
||||||
public bool? IsValid { get; set; }
|
public bool? IsValid { get; set; }
|
||||||
}
|
}
|
||||||
|
|
||||||
class SetTechPasswordContent
|
internal class SetTechPasswordContent
|
||||||
{
|
{
|
||||||
[JsonProperty("oldPassword")]
|
[JsonProperty("oldPassword")]
|
||||||
public string OldPassword { get; set; }
|
public string OldPassword { get; set; }
|
||||||
|
|||||||
@@ -1,6 +1,5 @@
|
|||||||
using Newtonsoft.Json;
|
using Newtonsoft.Json;
|
||||||
using PepperDash.Core;
|
using PepperDash.Core;
|
||||||
using PepperDash.Essentials.Core.DeviceTypeInterfaces;
|
|
||||||
using PepperDash.Essentials.Core.Lighting;
|
using PepperDash.Essentials.Core.Lighting;
|
||||||
using System;
|
using System;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
|
|||||||
@@ -1,5 +1,4 @@
|
|||||||
using Newtonsoft.Json;
|
using Newtonsoft.Json;
|
||||||
using Newtonsoft.Json.Converters;
|
|
||||||
using Newtonsoft.Json.Linq;
|
using Newtonsoft.Json.Linq;
|
||||||
using PepperDash.Core;
|
using PepperDash.Core;
|
||||||
using PepperDash.Essentials.Core;
|
using PepperDash.Essentials.Core;
|
||||||
@@ -81,9 +80,10 @@ namespace PepperDash.Essentials.AppServer.Messengers
|
|||||||
private void HandleMessage(string path, string id, JToken content)
|
private void HandleMessage(string path, string id, JToken content)
|
||||||
{
|
{
|
||||||
// replace base path with empty string. Should leave something like /fullStatus
|
// replace base path with empty string. Should leave something like /fullStatus
|
||||||
var route = path.Replace(MessagePath, string.Empty);
|
var route = path.Replace(MessagePath, string.Empty);
|
||||||
|
|
||||||
if(!_actions.TryGetValue(route, out var action)) {
|
if (!_actions.TryGetValue(route, out var action))
|
||||||
|
{
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -136,12 +136,12 @@ namespace PepperDash.Essentials.AppServer.Messengers
|
|||||||
{
|
{
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
if(message == null)
|
if (message == null)
|
||||||
{
|
{
|
||||||
throw new ArgumentNullException("message");
|
throw new ArgumentNullException("message");
|
||||||
}
|
}
|
||||||
|
|
||||||
if(_device == null)
|
if (_device == null)
|
||||||
{
|
{
|
||||||
throw new ArgumentNullException("device");
|
throw new ArgumentNullException("device");
|
||||||
}
|
}
|
||||||
@@ -154,7 +154,8 @@ namespace PepperDash.Essentials.AppServer.Messengers
|
|||||||
|
|
||||||
PostStatusMessage(JToken.FromObject(message), MessagePath, clientId);
|
PostStatusMessage(JToken.FromObject(message), MessagePath, clientId);
|
||||||
}
|
}
|
||||||
catch (Exception ex) {
|
catch (Exception ex)
|
||||||
|
{
|
||||||
Debug.LogMessage(ex, "Exception posting status message", this);
|
Debug.LogMessage(ex, "Exception posting status message", this);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -202,17 +203,17 @@ namespace PepperDash.Essentials.AppServer.Messengers
|
|||||||
{
|
{
|
||||||
Type = $"/event{MessagePath}/{message.EventType}",
|
Type = $"/event{MessagePath}/{message.EventType}",
|
||||||
Content = JToken.FromObject(message),
|
Content = JToken.FromObject(message),
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
protected void PostEventMessage(DeviceEventMessageBase message, string eventType)
|
protected void PostEventMessage(DeviceEventMessageBase message, string eventType)
|
||||||
{
|
{
|
||||||
message.Key = _device.Key;
|
message.Key = _device.Key;
|
||||||
|
|
||||||
message.Name = _device.Name;
|
message.Name = _device.Name;
|
||||||
|
|
||||||
message.EventType = eventType;
|
message.EventType = eventType;
|
||||||
|
|
||||||
AppServerController?.SendMessageObject(new MobileControlMessage
|
AppServerController?.SendMessageObject(new MobileControlMessage
|
||||||
{
|
{
|
||||||
Type = $"/event{MessagePath}/{eventType}",
|
Type = $"/event{MessagePath}/{eventType}",
|
||||||
|
|||||||
@@ -3,12 +3,11 @@ using Newtonsoft.Json.Linq;
|
|||||||
using PepperDash.Core;
|
using PepperDash.Core;
|
||||||
using System;
|
using System;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using System.Runtime.CompilerServices;
|
|
||||||
|
|
||||||
namespace PepperDash.Essentials.AppServer.Messengers
|
namespace PepperDash.Essentials.AppServer.Messengers
|
||||||
{
|
{
|
||||||
public static class PressAndHoldHandler
|
public static class PressAndHoldHandler
|
||||||
{
|
{
|
||||||
private const long ButtonHeartbeatInterval = 1000;
|
private const long ButtonHeartbeatInterval = 1000;
|
||||||
|
|
||||||
private static readonly Dictionary<string, CTimer> _pushedActions = new Dictionary<string, CTimer>();
|
private static readonly Dictionary<string, CTimer> _pushedActions = new Dictionary<string, CTimer>();
|
||||||
@@ -54,7 +53,7 @@ namespace PepperDash.Essentials.AppServer.Messengers
|
|||||||
private static void ResetTimer(string deviceKey, Action<bool> action)
|
private static void ResetTimer(string deviceKey, Action<bool> action)
|
||||||
{
|
{
|
||||||
Debug.LogMessage(Serilog.Events.LogEventLevel.Debug, "Attempting to reset timer for {deviceKey}", deviceKey);
|
Debug.LogMessage(Serilog.Events.LogEventLevel.Debug, "Attempting to reset timer for {deviceKey}", deviceKey);
|
||||||
|
|
||||||
if (!_pushedActions.TryGetValue(deviceKey, out CTimer cancelTimer))
|
if (!_pushedActions.TryGetValue(deviceKey, out CTimer cancelTimer))
|
||||||
{
|
{
|
||||||
Debug.LogMessage(Serilog.Events.LogEventLevel.Debug, "Timer for {deviceKey} not found", deviceKey);
|
Debug.LogMessage(Serilog.Events.LogEventLevel.Debug, "Timer for {deviceKey} not found", deviceKey);
|
||||||
@@ -70,7 +69,8 @@ namespace PepperDash.Essentials.AppServer.Messengers
|
|||||||
{
|
{
|
||||||
Debug.LogMessage(Serilog.Events.LogEventLevel.Debug, "Attempting to stop timer for {deviceKey}", deviceKey);
|
Debug.LogMessage(Serilog.Events.LogEventLevel.Debug, "Attempting to stop timer for {deviceKey}", deviceKey);
|
||||||
|
|
||||||
if (!_pushedActions.TryGetValue(deviceKey, out CTimer cancelTimer)) {
|
if (!_pushedActions.TryGetValue(deviceKey, out CTimer cancelTimer))
|
||||||
|
{
|
||||||
Debug.LogMessage(Serilog.Events.LogEventLevel.Debug, "Timer for {deviceKey} not found", deviceKey);
|
Debug.LogMessage(Serilog.Events.LogEventLevel.Debug, "Timer for {deviceKey} not found", deviceKey);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@@ -110,7 +110,7 @@ namespace PepperDash.Essentials.AppServer.Messengers
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
timerHandler(deviceKey, action);
|
timerHandler(deviceKey, action);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,7 +1,6 @@
|
|||||||
using Newtonsoft.Json;
|
using Newtonsoft.Json;
|
||||||
using PepperDash.Core;
|
using PepperDash.Core;
|
||||||
using PepperDash.Essentials.Core;
|
using PepperDash.Essentials.Core;
|
||||||
using PepperDash.Essentials.Core.DeviceTypeInterfaces;
|
|
||||||
using PepperDash.Essentials.Room.Config;
|
using PepperDash.Essentials.Room.Config;
|
||||||
using System;
|
using System;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
|
|||||||
@@ -1,7 +1,6 @@
|
|||||||
using Crestron.SimplSharpPro.DeviceSupport;
|
using Crestron.SimplSharpPro.DeviceSupport;
|
||||||
using Newtonsoft.Json.Linq;
|
using Newtonsoft.Json.Linq;
|
||||||
using PepperDash.Essentials.Core;
|
using PepperDash.Essentials.Core;
|
||||||
using PepperDash.Essentials.Core.DeviceTypeInterfaces;
|
|
||||||
using PepperDash.Essentials.Devices.Common.Codec;
|
using PepperDash.Essentials.Devices.Common.Codec;
|
||||||
using System;
|
using System;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
@@ -44,12 +43,12 @@ namespace PepperDash.Essentials.AppServer.Messengers
|
|||||||
private void SendFullStatus()
|
private void SendFullStatus()
|
||||||
{
|
{
|
||||||
PostStatusMessage(JToken.FromObject(new
|
PostStatusMessage(JToken.FromObject(new
|
||||||
{
|
{
|
||||||
calls = GetCurrentCallList(),
|
calls = GetCurrentCallList(),
|
||||||
currentCallString = _eisc.GetString(JoinMap.CurrentCallName.JoinNumber),
|
currentCallString = _eisc.GetString(JoinMap.CurrentCallName.JoinNumber),
|
||||||
currentDialString = _eisc.GetString(JoinMap.CurrentDialString.JoinNumber),
|
currentDialString = _eisc.GetString(JoinMap.CurrentDialString.JoinNumber),
|
||||||
isInCall = _eisc.GetString(JoinMap.HookState.JoinNumber) == "Connected"
|
isInCall = _eisc.GetString(JoinMap.HookState.JoinNumber) == "Connected"
|
||||||
})
|
})
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -139,9 +138,9 @@ namespace PepperDash.Essentials.AppServer.Messengers
|
|||||||
private void SendCallsList()
|
private void SendCallsList()
|
||||||
{
|
{
|
||||||
PostStatusMessage(JToken.FromObject(new
|
PostStatusMessage(JToken.FromObject(new
|
||||||
{
|
{
|
||||||
calls = GetCurrentCallList(),
|
calls = GetCurrentCallList(),
|
||||||
})
|
})
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -125,11 +125,11 @@ namespace PepperDash.Essentials.AppServer.Messengers
|
|||||||
}
|
}
|
||||||
|
|
||||||
PostStatusMessage(JToken.FromObject(new
|
PostStatusMessage(JToken.FromObject(new
|
||||||
{
|
{
|
||||||
cameraMode = GetCameraMode(),
|
cameraMode = GetCameraMode(),
|
||||||
hasPresets = _eisc.GetBool(_joinMap.SupportsPresets.JoinNumber),
|
hasPresets = _eisc.GetBool(_joinMap.SupportsPresets.JoinNumber),
|
||||||
presets = presetList
|
presets = presetList
|
||||||
})
|
})
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -2,7 +2,6 @@
|
|||||||
using Newtonsoft.Json.Linq;
|
using Newtonsoft.Json.Linq;
|
||||||
using PepperDash.Core;
|
using PepperDash.Core;
|
||||||
using PepperDash.Essentials.Core;
|
using PepperDash.Essentials.Core;
|
||||||
using PepperDash.Essentials.Core.DeviceTypeInterfaces;
|
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
|
|
||||||
namespace PepperDash.Essentials.AppServer.Messengers
|
namespace PepperDash.Essentials.AppServer.Messengers
|
||||||
|
|||||||
@@ -60,9 +60,9 @@ namespace PepperDash.Essentials.AppServer.Messengers
|
|||||||
sourceKey = "none";
|
sourceKey = "none";
|
||||||
|
|
||||||
PostStatusMessage(JToken.FromObject(new
|
PostStatusMessage(JToken.FromObject(new
|
||||||
{
|
{
|
||||||
selectedSourceKey = sourceKey
|
selectedSourceKey = sourceKey
|
||||||
})
|
})
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -2,7 +2,6 @@
|
|||||||
using Newtonsoft.Json.Linq;
|
using Newtonsoft.Json.Linq;
|
||||||
using PepperDash.Core;
|
using PepperDash.Core;
|
||||||
using PepperDash.Essentials.Core;
|
using PepperDash.Essentials.Core;
|
||||||
using PepperDash.Essentials.Core.DeviceTypeInterfaces;
|
|
||||||
using PepperDash.Essentials.Devices.Common.Cameras;
|
using PepperDash.Essentials.Devices.Common.Cameras;
|
||||||
using PepperDash.Essentials.Devices.Common.Codec;
|
using PepperDash.Essentials.Devices.Common.Codec;
|
||||||
using System;
|
using System;
|
||||||
@@ -44,7 +43,7 @@ namespace PepperDash.Essentials.AppServer.Messengers
|
|||||||
/// </summary>
|
/// </summary>
|
||||||
/// <param name="appServerController"></param>
|
/// <param name="appServerController"></param>
|
||||||
protected override void RegisterActions()
|
protected override void RegisterActions()
|
||||||
{
|
{
|
||||||
_eisc.SetStringSigAction(JoinMap.HookState.JoinNumber, s =>
|
_eisc.SetStringSigAction(JoinMap.HookState.JoinNumber, s =>
|
||||||
{
|
{
|
||||||
_currentCallItem.Status = (eCodecCallStatus)Enum.Parse(typeof(eCodecCallStatus), s, true);
|
_currentCallItem.Status = (eCodecCallStatus)Enum.Parse(typeof(eCodecCallStatus), s, true);
|
||||||
|
|||||||
@@ -1,6 +1,5 @@
|
|||||||
using Newtonsoft.Json;
|
using Newtonsoft.Json;
|
||||||
using PepperDash.Core;
|
using PepperDash.Core;
|
||||||
using PepperDash.Essentials.Core.DeviceTypeInterfaces;
|
|
||||||
using PepperDash.Essentials.Core.Shades;
|
using PepperDash.Essentials.Core.Shades;
|
||||||
using System;
|
using System;
|
||||||
|
|
||||||
|
|||||||
@@ -2,7 +2,6 @@
|
|||||||
using Newtonsoft.Json;
|
using Newtonsoft.Json;
|
||||||
using Newtonsoft.Json.Linq;
|
using Newtonsoft.Json.Linq;
|
||||||
using PepperDash.Core;
|
using PepperDash.Core;
|
||||||
using PepperDash.Essentials.Core.DeviceTypeInterfaces;
|
|
||||||
using PepperDash.Essentials.Core.Monitoring;
|
using PepperDash.Essentials.Core.Monitoring;
|
||||||
using System;
|
using System;
|
||||||
using System.Threading.Tasks;
|
using System.Threading.Tasks;
|
||||||
@@ -71,15 +70,15 @@ namespace PepperDash.Essentials.AppServer.Messengers
|
|||||||
|
|
||||||
// This takes a while, launch a new thread
|
// This takes a while, launch a new thread
|
||||||
Task.Run(() => PostStatusMessage(JToken.FromObject(new SystemMonitorStateMessage
|
Task.Run(() => PostStatusMessage(JToken.FromObject(new SystemMonitorStateMessage
|
||||||
{
|
{
|
||||||
|
|
||||||
TimeZone = systemMonitor.TimeZoneFeedback.IntValue,
|
TimeZone = systemMonitor.TimeZoneFeedback.IntValue,
|
||||||
TimeZoneName = systemMonitor.TimeZoneTextFeedback.StringValue,
|
TimeZoneName = systemMonitor.TimeZoneTextFeedback.StringValue,
|
||||||
IoControllerVersion = systemMonitor.IoControllerVersionFeedback.StringValue,
|
IoControllerVersion = systemMonitor.IoControllerVersionFeedback.StringValue,
|
||||||
SnmpVersion = systemMonitor.SnmpVersionFeedback.StringValue,
|
SnmpVersion = systemMonitor.SnmpVersionFeedback.StringValue,
|
||||||
BacnetVersion = systemMonitor.BaCnetAppVersionFeedback.StringValue,
|
BacnetVersion = systemMonitor.BaCnetAppVersionFeedback.StringValue,
|
||||||
ControllerVersion = systemMonitor.ControllerVersionFeedback.StringValue
|
ControllerVersion = systemMonitor.ControllerVersionFeedback.StringValue
|
||||||
})
|
})
|
||||||
));
|
));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -47,10 +47,10 @@ namespace PepperDash.Essentials.AppServer.Messengers
|
|||||||
private void CurrentInputFeedbackOnOutputChange(object sender, FeedbackEventArgs feedbackEventArgs)
|
private void CurrentInputFeedbackOnOutputChange(object sender, FeedbackEventArgs feedbackEventArgs)
|
||||||
{
|
{
|
||||||
PostStatusMessage(JToken.FromObject(new
|
PostStatusMessage(JToken.FromObject(new
|
||||||
{
|
{
|
||||||
currentInput = feedbackEventArgs.StringValue
|
currentInput = feedbackEventArgs.StringValue
|
||||||
})
|
})
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@@ -66,21 +66,21 @@ namespace PepperDash.Essentials.AppServer.Messengers
|
|||||||
private void IsWarmingFeedbackOnOutputChange(object sender, FeedbackEventArgs feedbackEventArgs)
|
private void IsWarmingFeedbackOnOutputChange(object sender, FeedbackEventArgs feedbackEventArgs)
|
||||||
{
|
{
|
||||||
PostStatusMessage(JToken.FromObject(new
|
PostStatusMessage(JToken.FromObject(new
|
||||||
{
|
{
|
||||||
isWarming = feedbackEventArgs.BoolValue
|
isWarming = feedbackEventArgs.BoolValue
|
||||||
})
|
})
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void IsCoolingFeedbackOnOutputChange(object sender, FeedbackEventArgs feedbackEventArgs)
|
private void IsCoolingFeedbackOnOutputChange(object sender, FeedbackEventArgs feedbackEventArgs)
|
||||||
{
|
{
|
||||||
PostStatusMessage(JToken.FromObject(new
|
PostStatusMessage(JToken.FromObject(new
|
||||||
{
|
{
|
||||||
isCooling = feedbackEventArgs.BoolValue
|
isCooling = feedbackEventArgs.BoolValue
|
||||||
})
|
})
|
||||||
);
|
);
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
using System;
|
using System;
|
||||||
|
|
||||||
namespace PepperDash.Essentials.Room.MobileControl
|
namespace PepperDash.Essentials
|
||||||
{
|
{
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Represents a room whose configuration is derived from runtime data,
|
/// Represents a room whose configuration is derived from runtime data,
|
||||||
@@ -10,7 +10,7 @@ namespace PepperDash.Essentials.Room.MobileControl
|
|||||||
public interface IDelayedConfiguration
|
public interface IDelayedConfiguration
|
||||||
{
|
{
|
||||||
|
|
||||||
|
|
||||||
event EventHandler<EventArgs> ConfigurationIsReady;
|
event EventHandler<EventArgs> ConfigurationIsReady;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -1,11 +1,6 @@
|
|||||||
using Newtonsoft.Json.Linq;
|
using Newtonsoft.Json.Linq;
|
||||||
using PepperDash.Essentials.Core.DeviceTypeInterfaces;
|
using PepperDash.Essentials.Core.DeviceTypeInterfaces;
|
||||||
using PepperDash.Essentials.Core.Web.RequestHandlers;
|
|
||||||
using System;
|
using System;
|
||||||
using System.Collections.Generic;
|
|
||||||
using System.Linq;
|
|
||||||
using System.Text;
|
|
||||||
using System.Threading.Tasks;
|
|
||||||
|
|
||||||
namespace PepperDash.Essentials
|
namespace PepperDash.Essentials
|
||||||
{
|
{
|
||||||
@@ -13,9 +8,10 @@ namespace PepperDash.Essentials
|
|||||||
{
|
{
|
||||||
public IMobileControlMessenger Messenger { get; private set; }
|
public IMobileControlMessenger Messenger { get; private set; }
|
||||||
|
|
||||||
public Action<string, string, JToken> Action {get; private set; }
|
public Action<string, string, JToken> Action { get; private set; }
|
||||||
|
|
||||||
public MobileControlAction(IMobileControlMessenger messenger, Action<string,string, JToken> handler) {
|
public MobileControlAction(IMobileControlMessenger messenger, Action<string, string, JToken> handler)
|
||||||
|
{
|
||||||
Messenger = messenger;
|
Messenger = messenger;
|
||||||
Action = handler;
|
Action = handler;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,6 +1,5 @@
|
|||||||
using Newtonsoft.Json;
|
using Newtonsoft.Json;
|
||||||
using Newtonsoft.Json.Converters;
|
using Newtonsoft.Json.Converters;
|
||||||
using System;
|
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
|
|
||||||
namespace PepperDash.Essentials
|
namespace PepperDash.Essentials
|
||||||
@@ -57,7 +56,7 @@ namespace PepperDash.Essentials
|
|||||||
[JsonProperty("port")]
|
[JsonProperty("port")]
|
||||||
public int Port { get; set; }
|
public int Port { get; set; }
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -2,7 +2,6 @@
|
|||||||
using PepperDash.Core.Logging;
|
using PepperDash.Core.Logging;
|
||||||
using PepperDash.Essentials.Core;
|
using PepperDash.Essentials.Core;
|
||||||
using PepperDash.Essentials.Core.Config;
|
using PepperDash.Essentials.Core.Config;
|
||||||
using PepperDash.Essentials.Room.MobileControl;
|
|
||||||
using Serilog.Events;
|
using Serilog.Events;
|
||||||
using System;
|
using System;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
@@ -14,7 +13,7 @@ namespace PepperDash.Essentials
|
|||||||
public class MobileControlDeviceFactory : EssentialsDeviceFactory<MobileControlSystemController>
|
public class MobileControlDeviceFactory : EssentialsDeviceFactory<MobileControlSystemController>
|
||||||
{
|
{
|
||||||
public MobileControlDeviceFactory()
|
public MobileControlDeviceFactory()
|
||||||
{
|
{
|
||||||
TypeNames = new List<string> { "appserver", "mobilecontrol", "webserver" };
|
TypeNames = new List<string> { "appserver", "mobilecontrol", "webserver" };
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -36,7 +35,7 @@ namespace PepperDash.Essentials
|
|||||||
public class MobileControlSimplFactory : EssentialsDeviceFactory<MobileControlSIMPLRoomBridge>
|
public class MobileControlSimplFactory : EssentialsDeviceFactory<MobileControlSIMPLRoomBridge>
|
||||||
{
|
{
|
||||||
public MobileControlSimplFactory()
|
public MobileControlSimplFactory()
|
||||||
{
|
{
|
||||||
TypeNames = new List<string> { "mobilecontrolbridge-ddvc01", "mobilecontrolbridge-simpl" };
|
TypeNames = new List<string> { "mobilecontrolbridge-ddvc01", "mobilecontrolbridge-simpl" };
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -55,7 +54,7 @@ namespace PepperDash.Essentials
|
|||||||
bridge.LogInformation("ERROR: Cannot connect bridge. System controller not present");
|
bridge.LogInformation("ERROR: Cannot connect bridge. System controller not present");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
bridge.LogInformation("Linking to parent controller");
|
bridge.LogInformation("Linking to parent controller");
|
||||||
|
|
||||||
parent.AddDeviceMessenger(bridge);
|
parent.AddDeviceMessenger(bridge);
|
||||||
});
|
});
|
||||||
|
|||||||
@@ -1,24 +1,22 @@
|
|||||||
using PepperDash.Core;
|
using PepperDash.Core;
|
||||||
using PepperDash.Essentials.Core;
|
using PepperDash.Essentials.Core;
|
||||||
using System;
|
using System;
|
||||||
using System.Collections.Generic;
|
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
using System.Reflection;
|
using System.Reflection;
|
||||||
using System.Text;
|
|
||||||
using System.Threading.Tasks;
|
|
||||||
|
|
||||||
namespace PepperDash.Essentials.MobileControl
|
namespace PepperDash.Essentials
|
||||||
{
|
{
|
||||||
public class MobileControlFactory
|
public class MobileControlFactory
|
||||||
{
|
{
|
||||||
public MobileControlFactory() {
|
public MobileControlFactory()
|
||||||
|
{
|
||||||
var assembly = Assembly.GetExecutingAssembly();
|
var assembly = Assembly.GetExecutingAssembly();
|
||||||
|
|
||||||
PluginLoader.SetEssentialsAssembly(assembly.GetName().Name, assembly);
|
PluginLoader.SetEssentialsAssembly(assembly.GetName().Name, assembly);
|
||||||
|
|
||||||
var types = assembly.GetTypes().Where(t => typeof(IDeviceFactory).IsAssignableFrom(t) && !t.IsInterface && !t.IsAbstract);
|
var types = assembly.GetTypes().Where(t => typeof(IDeviceFactory).IsAssignableFrom(t) && !t.IsInterface && !t.IsAbstract);
|
||||||
|
|
||||||
if(types == null)
|
if (types == null)
|
||||||
{
|
{
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,16 +1,9 @@
|
|||||||
using System;
|
using Crestron.SimplSharp;
|
||||||
using System.Collections.Generic;
|
|
||||||
using System.Linq;
|
|
||||||
using System.Reflection;
|
|
||||||
using System.Text.RegularExpressions;
|
|
||||||
using System.Threading.Tasks;
|
|
||||||
using Crestron.SimplSharp;
|
|
||||||
using Crestron.SimplSharp.CrestronIO;
|
using Crestron.SimplSharp.CrestronIO;
|
||||||
using Crestron.SimplSharp.Net.Http;
|
using Crestron.SimplSharp.Net.Http;
|
||||||
using Crestron.SimplSharp.WebScripting;
|
using Crestron.SimplSharp.WebScripting;
|
||||||
using Newtonsoft.Json;
|
using Newtonsoft.Json;
|
||||||
using Newtonsoft.Json.Linq;
|
using Newtonsoft.Json.Linq;
|
||||||
using Org.BouncyCastle.Crypto.Prng;
|
|
||||||
using PepperDash.Core;
|
using PepperDash.Core;
|
||||||
using PepperDash.Core.Logging;
|
using PepperDash.Core.Logging;
|
||||||
using PepperDash.Essentials.AppServer;
|
using PepperDash.Essentials.AppServer;
|
||||||
@@ -32,9 +25,16 @@ using PepperDash.Essentials.Devices.Common.Displays;
|
|||||||
using PepperDash.Essentials.Devices.Common.SoftCodec;
|
using PepperDash.Essentials.Devices.Common.SoftCodec;
|
||||||
using PepperDash.Essentials.Devices.Common.VideoCodec;
|
using PepperDash.Essentials.Devices.Common.VideoCodec;
|
||||||
using PepperDash.Essentials.Room.MobileControl;
|
using PepperDash.Essentials.Room.MobileControl;
|
||||||
|
using PepperDash.Essentials.RoomBridges;
|
||||||
using PepperDash.Essentials.Services;
|
using PepperDash.Essentials.Services;
|
||||||
using PepperDash.Essentials.WebApiHandlers;
|
using PepperDash.Essentials.WebApiHandlers;
|
||||||
using Serilog.Events;
|
using PepperDash.Essentials.WebSocketServer;
|
||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Linq;
|
||||||
|
using System.Reflection;
|
||||||
|
using System.Text.RegularExpressions;
|
||||||
|
using System.Threading.Tasks;
|
||||||
using WebSocketSharp;
|
using WebSocketSharp;
|
||||||
|
|
||||||
namespace PepperDash.Essentials
|
namespace PepperDash.Essentials
|
||||||
@@ -160,7 +160,7 @@ namespace PepperDash.Essentials
|
|||||||
: base(key, name)
|
: base(key, name)
|
||||||
{
|
{
|
||||||
Config = config;
|
Config = config;
|
||||||
|
|
||||||
// The queue that will collect the incoming messages in the order they are received
|
// The queue that will collect the incoming messages in the order they are received
|
||||||
//_receiveQueue = new ReceiveQueue(key, ParseStreamRx);
|
//_receiveQueue = new ReceiveQueue(key, ParseStreamRx);
|
||||||
_receiveQueue = new GenericQueue(
|
_receiveQueue = new GenericQueue(
|
||||||
@@ -222,7 +222,7 @@ namespace PepperDash.Essentials
|
|||||||
{
|
{
|
||||||
_roomCombiner = DeviceManager.AllDevices.OfType<IEssentialsRoomCombiner>().FirstOrDefault();
|
_roomCombiner = DeviceManager.AllDevices.OfType<IEssentialsRoomCombiner>().FirstOrDefault();
|
||||||
|
|
||||||
if(_roomCombiner == null)
|
if (_roomCombiner == null)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
_roomCombiner.RoomCombinationScenarioChanged += OnRoomCombinationScenarioChanged;
|
_roomCombiner.RoomCombinationScenarioChanged += OnRoomCombinationScenarioChanged;
|
||||||
@@ -238,7 +238,7 @@ namespace PepperDash.Essentials
|
|||||||
|
|
||||||
return _wsClient2.IsAlive && IsAuthorized;
|
return _wsClient2.IsAlive && IsAuthorized;
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
private void SetupDefaultRoomMessengers()
|
private void SetupDefaultRoomMessengers()
|
||||||
{
|
{
|
||||||
@@ -247,7 +247,7 @@ namespace PepperDash.Essentials
|
|||||||
foreach (var room in DeviceManager.AllDevices.OfType<IEssentialsRoom>())
|
foreach (var room in DeviceManager.AllDevices.OfType<IEssentialsRoom>())
|
||||||
{
|
{
|
||||||
this.LogVerbose(
|
this.LogVerbose(
|
||||||
"Setting up room messengers for room: {key}",
|
"Setting up room messengers for room: {key}",
|
||||||
room.Key
|
room.Key
|
||||||
);
|
);
|
||||||
|
|
||||||
@@ -260,7 +260,7 @@ namespace PepperDash.Essentials
|
|||||||
AddDefaultDeviceMessenger(messenger);
|
AddDefaultDeviceMessenger(messenger);
|
||||||
|
|
||||||
this.LogVerbose(
|
this.LogVerbose(
|
||||||
"Attempting to set up default room messengers for room: {0}",
|
"Attempting to set up default room messengers for room: {0}",
|
||||||
room.Key
|
room.Key
|
||||||
);
|
);
|
||||||
|
|
||||||
@@ -328,7 +328,7 @@ namespace PepperDash.Essentials
|
|||||||
var allDevices = DeviceManager.AllDevices.Where((d) => !(d is IEssentialsRoom));
|
var allDevices = DeviceManager.AllDevices.Where((d) => !(d is IEssentialsRoom));
|
||||||
|
|
||||||
this.LogInformation(
|
this.LogInformation(
|
||||||
"All Devices that aren't rooms count: {0}",
|
"All Devices that aren't rooms count: {0}",
|
||||||
allDevices?.Count()
|
allDevices?.Count()
|
||||||
);
|
);
|
||||||
|
|
||||||
@@ -425,26 +425,26 @@ namespace PepperDash.Essentials
|
|||||||
var presetsDevice = device as ITvPresetsProvider;
|
var presetsDevice = device as ITvPresetsProvider;
|
||||||
|
|
||||||
|
|
||||||
this.LogVerbose(
|
this.LogVerbose(
|
||||||
"Adding ITvPresetsProvider for {deviceKey}",
|
"Adding ITvPresetsProvider for {deviceKey}",
|
||||||
device.Key
|
device.Key
|
||||||
);
|
);
|
||||||
|
|
||||||
var presetsMessenger = new DevicePresetsModelMessenger(
|
var presetsMessenger = new DevicePresetsModelMessenger(
|
||||||
$"{device.Key}-presets-{Key}",
|
$"{device.Key}-presets-{Key}",
|
||||||
$"/device/{device.Key}",
|
$"/device/{device.Key}",
|
||||||
presetsDevice
|
presetsDevice
|
||||||
);
|
);
|
||||||
|
|
||||||
AddDefaultDeviceMessenger(presetsMessenger);
|
AddDefaultDeviceMessenger(presetsMessenger);
|
||||||
|
|
||||||
|
messengerAdded = true;
|
||||||
|
}
|
||||||
|
|
||||||
messengerAdded = true;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
if (device is DisplayBase)
|
if (device is DisplayBase)
|
||||||
{
|
{
|
||||||
this.LogVerbose( "Adding actions for device: {0}", device.Key);
|
this.LogVerbose("Adding actions for device: {0}", device.Key);
|
||||||
|
|
||||||
var dbMessenger = new DisplayBaseMessenger(
|
var dbMessenger = new DisplayBaseMessenger(
|
||||||
$"{device.Key}-displayBase-{Key}",
|
$"{device.Key}-displayBase-{Key}",
|
||||||
@@ -458,7 +458,7 @@ namespace PepperDash.Essentials
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (device is TwoWayDisplayBase twoWayDisplay)
|
if (device is TwoWayDisplayBase twoWayDisplay)
|
||||||
{
|
{
|
||||||
this.LogVerbose(
|
this.LogVerbose(
|
||||||
"Adding TwoWayDisplayBase for {deviceKey}",
|
"Adding TwoWayDisplayBase for {deviceKey}",
|
||||||
device.Key
|
device.Key
|
||||||
@@ -476,11 +476,11 @@ namespace PepperDash.Essentials
|
|||||||
if (device is IBasicVolumeWithFeedback)
|
if (device is IBasicVolumeWithFeedback)
|
||||||
{
|
{
|
||||||
var deviceKey = device.Key;
|
var deviceKey = device.Key;
|
||||||
this.LogVerbose(
|
this.LogVerbose(
|
||||||
"Adding IBasicVolumeControlWithFeedback for {deviceKey}",
|
"Adding IBasicVolumeControlWithFeedback for {deviceKey}",
|
||||||
deviceKey
|
deviceKey
|
||||||
);
|
);
|
||||||
|
|
||||||
var volControlDevice = device as IBasicVolumeWithFeedback;
|
var volControlDevice = device as IBasicVolumeWithFeedback;
|
||||||
var messenger = new DeviceVolumeMessenger(
|
var messenger = new DeviceVolumeMessenger(
|
||||||
$"{device.Key}-volume-{Key}",
|
$"{device.Key}-volume-{Key}",
|
||||||
@@ -500,7 +500,7 @@ namespace PepperDash.Essentials
|
|||||||
"Adding LightingBaseMessenger for {deviceKey}",
|
"Adding LightingBaseMessenger for {deviceKey}",
|
||||||
deviceKey
|
deviceKey
|
||||||
);
|
);
|
||||||
|
|
||||||
var lightingDevice = device as ILightingScenes;
|
var lightingDevice = device as ILightingScenes;
|
||||||
var messenger = new ILightingScenesMessenger(
|
var messenger = new ILightingScenesMessenger(
|
||||||
$"{device.Key}-lighting-{Key}",
|
$"{device.Key}-lighting-{Key}",
|
||||||
@@ -516,7 +516,7 @@ namespace PepperDash.Essentials
|
|||||||
{
|
{
|
||||||
var deviceKey = device.Key;
|
var deviceKey = device.Key;
|
||||||
var shadeDevice = device as IShadesOpenCloseStop;
|
var shadeDevice = device as IShadesOpenCloseStop;
|
||||||
|
|
||||||
this.LogVerbose(
|
this.LogVerbose(
|
||||||
"Adding ShadeBaseMessenger for {deviceKey}",
|
"Adding ShadeBaseMessenger for {deviceKey}",
|
||||||
deviceKey
|
deviceKey
|
||||||
@@ -535,7 +535,7 @@ namespace PepperDash.Essentials
|
|||||||
if (device is VideoCodecBase codec)
|
if (device is VideoCodecBase codec)
|
||||||
{
|
{
|
||||||
this.LogVerbose(
|
this.LogVerbose(
|
||||||
"Adding VideoCodecBaseMessenger for {deviceKey}", codec.Key );
|
"Adding VideoCodecBaseMessenger for {deviceKey}", codec.Key);
|
||||||
|
|
||||||
var messenger = new VideoCodecBaseMessenger(
|
var messenger = new VideoCodecBaseMessenger(
|
||||||
$"{codec.Key}-videoCodec-{Key}",
|
$"{codec.Key}-videoCodec-{Key}",
|
||||||
@@ -571,7 +571,7 @@ namespace PepperDash.Essentials
|
|||||||
"Adding ISetTopBoxControlMessenger for {deviceKey}"
|
"Adding ISetTopBoxControlMessenger for {deviceKey}"
|
||||||
);
|
);
|
||||||
|
|
||||||
var dev = device as Device;
|
var dev = device as Device;
|
||||||
|
|
||||||
var messenger = new ISetTopBoxControlsMessenger(
|
var messenger = new ISetTopBoxControlsMessenger(
|
||||||
$"{device.Key}-stb-{Key}",
|
$"{device.Key}-stb-{Key}",
|
||||||
@@ -639,7 +639,7 @@ namespace PepperDash.Essentials
|
|||||||
|
|
||||||
if (device is INumericKeypad)
|
if (device is INumericKeypad)
|
||||||
{
|
{
|
||||||
this.LogVerbose("Adding INumericKeyapdMessenger for {deviceKey}", device.Key);
|
this.LogVerbose("Adding INumericKeyapdMessenger for {deviceKey}", device.Key);
|
||||||
|
|
||||||
var dev = device as PepperDash.Core.Device;
|
var dev = device as PepperDash.Core.Device;
|
||||||
|
|
||||||
@@ -709,7 +709,7 @@ namespace PepperDash.Essentials
|
|||||||
|
|
||||||
if (device is IHasCurrentSourceInfoChange)
|
if (device is IHasCurrentSourceInfoChange)
|
||||||
{
|
{
|
||||||
this.LogVerbose("Adding IHasCurrentSourceInfoMessenger for {deviceKey}", device.Key );
|
this.LogVerbose("Adding IHasCurrentSourceInfoMessenger for {deviceKey}", device.Key);
|
||||||
|
|
||||||
var messenger = new IHasCurrentSourceInfoMessenger(
|
var messenger = new IHasCurrentSourceInfoMessenger(
|
||||||
$"{device.Key}-currentSource-{Key}",
|
$"{device.Key}-currentSource-{Key}",
|
||||||
@@ -942,7 +942,7 @@ namespace PepperDash.Essentials
|
|||||||
messengerAdded = true;
|
messengerAdded = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (device is IDspPresets dspPresets)
|
if (device is IDspPresets dspPresets)
|
||||||
{
|
{
|
||||||
this.LogVerbose("Adding IDspPresetsMessenger for {deviceKey}", device.Key
|
this.LogVerbose("Adding IDspPresetsMessenger for {deviceKey}", device.Key
|
||||||
);
|
);
|
||||||
@@ -958,13 +958,11 @@ namespace PepperDash.Essentials
|
|||||||
messengerAdded = true;
|
messengerAdded = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
this.LogVerbose("Trying to cast to generic device for device: {key}", device.Key );
|
this.LogVerbose("Trying to cast to generic device for device: {key}", device.Key);
|
||||||
|
|
||||||
if (device is EssentialsDevice)
|
if (device is EssentialsDevice)
|
||||||
{
|
{
|
||||||
var genericDevice = device as EssentialsDevice;
|
if (!(device is EssentialsDevice genericDevice) || messengerAdded)
|
||||||
|
|
||||||
if (genericDevice == null || messengerAdded)
|
|
||||||
{
|
{
|
||||||
this.LogVerbose(
|
this.LogVerbose(
|
||||||
"Skipping GenericMessenger for {deviceKey}. Messenger(s) Added: {messengersAdded}.",
|
"Skipping GenericMessenger for {deviceKey}. Messenger(s) Added: {messengersAdded}.",
|
||||||
@@ -1100,7 +1098,7 @@ namespace PepperDash.Essentials
|
|||||||
$"Connecting to MC API server"
|
$"Connecting to MC API server"
|
||||||
);
|
);
|
||||||
|
|
||||||
ConnectWebsocketClient();
|
ConnectWebsocketClient();
|
||||||
},
|
},
|
||||||
"mobileconnect",
|
"mobileconnect",
|
||||||
"Forces connect of websocket",
|
"Forces connect of websocket",
|
||||||
@@ -1111,7 +1109,7 @@ namespace PepperDash.Essentials
|
|||||||
s =>
|
s =>
|
||||||
{
|
{
|
||||||
_disableReconnect = true;
|
_disableReconnect = true;
|
||||||
|
|
||||||
CleanUpWebsocketClient();
|
CleanUpWebsocketClient();
|
||||||
|
|
||||||
CrestronConsole.ConsoleCommandResponse(
|
CrestronConsole.ConsoleCommandResponse(
|
||||||
@@ -1334,7 +1332,7 @@ namespace PepperDash.Essentials
|
|||||||
{
|
{
|
||||||
if (CrestronEnvironment.DevicePlatform != eDevicePlatform.Appliance)
|
if (CrestronEnvironment.DevicePlatform != eDevicePlatform.Appliance)
|
||||||
{
|
{
|
||||||
this.LogWarning(
|
this.LogWarning(
|
||||||
"System Monitor does not exist for this platform. Skipping..."
|
"System Monitor does not exist for this platform. Skipping..."
|
||||||
);
|
);
|
||||||
return;
|
return;
|
||||||
@@ -1394,7 +1392,7 @@ namespace PepperDash.Essentials
|
|||||||
CrestronConsole.ConsoleCommandResponse(
|
CrestronConsole.ConsoleCommandResponse(
|
||||||
$"{cmdparameters} is not a valid debug level. Valid options are:\r\n{LogLevel.Trace}\r\n{LogLevel.Debug}\r\n{LogLevel.Info}\r\n{LogLevel.Warn}\r\n{LogLevel.Error}\r\n{LogLevel.Fatal}\r\n"
|
$"{cmdparameters} is not a valid debug level. Valid options are:\r\n{LogLevel.Trace}\r\n{LogLevel.Debug}\r\n{LogLevel.Info}\r\n{LogLevel.Warn}\r\n{LogLevel.Error}\r\n{LogLevel.Fatal}\r\n"
|
||||||
);
|
);
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1617,8 +1615,8 @@ namespace PepperDash.Essentials
|
|||||||
|
|
||||||
if (Config.EnableApiServer)
|
if (Config.EnableApiServer)
|
||||||
{
|
{
|
||||||
CrestronConsole.ConsoleCommandResponse(
|
CrestronConsole.ConsoleCommandResponse(
|
||||||
@"Mobile Control Edge Server API Information:
|
@"Mobile Control Edge Server API Information:
|
||||||
|
|
||||||
Server address: {0}
|
Server address: {0}
|
||||||
System Name: {1}
|
System Name: {1}
|
||||||
@@ -1627,14 +1625,14 @@ namespace PepperDash.Essentials
|
|||||||
System User code: {4}
|
System User code: {4}
|
||||||
Connected?: {5}
|
Connected?: {5}
|
||||||
Seconds Since Last Ack: {6}",
|
Seconds Since Last Ack: {6}",
|
||||||
url,
|
url,
|
||||||
name,
|
name,
|
||||||
ConfigReader.ConfigObject.SystemUrl,
|
ConfigReader.ConfigObject.SystemUrl,
|
||||||
SystemUuid,
|
SystemUuid,
|
||||||
code,
|
code,
|
||||||
conn,
|
conn,
|
||||||
secSinceLastAck.Seconds
|
secSinceLastAck.Seconds
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
@@ -1960,17 +1958,16 @@ Mobile Control Direct Server Infromation:
|
|||||||
confObject.Info.RuntimeInfo.AssemblyVersion = essentialsVersion;
|
confObject.Info.RuntimeInfo.AssemblyVersion = essentialsVersion;
|
||||||
|
|
||||||
|
|
||||||
// // Set for local testing
|
// // Set for local testing
|
||||||
// confObject.RuntimeInfo.PluginVersion = "4.0.0-localBuild";
|
// confObject.RuntimeInfo.PluginVersion = "4.0.0-localBuild";
|
||||||
|
|
||||||
// Populate the plugin version
|
// Populate the plugin version
|
||||||
var pluginVersion = Assembly
|
var pluginVersion = Assembly
|
||||||
.GetExecutingAssembly()
|
.GetExecutingAssembly()
|
||||||
.GetCustomAttributes(typeof(AssemblyInformationalVersionAttribute), false);
|
.GetCustomAttributes(typeof(AssemblyInformationalVersionAttribute), false);
|
||||||
|
|
||||||
var fullVersionAtt = pluginVersion[0] as AssemblyInformationalVersionAttribute;
|
|
||||||
|
|
||||||
if (fullVersionAtt != null)
|
if (pluginVersion[0] is AssemblyInformationalVersionAttribute fullVersionAtt)
|
||||||
{
|
{
|
||||||
var pluginInformationalVersion = fullVersionAtt.InformationalVersion;
|
var pluginInformationalVersion = fullVersionAtt.InformationalVersion;
|
||||||
|
|
||||||
@@ -2003,7 +2000,7 @@ Mobile Control Direct Server Infromation:
|
|||||||
if (Config.EnableApiServer)
|
if (Config.EnableApiServer)
|
||||||
{
|
{
|
||||||
|
|
||||||
_transmitToServerQueue.Enqueue(new TransmitMessage(o, _wsClient2));
|
_transmitToServerQueue.Enqueue(new TransmitMessage(o, _wsClient2));
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -2074,7 +2071,7 @@ Mobile Control Direct Server Infromation:
|
|||||||
private void PingTimerCallback(object o)
|
private void PingTimerCallback(object o)
|
||||||
{
|
{
|
||||||
this.LogDebug(
|
this.LogDebug(
|
||||||
|
|
||||||
"Ping timer expired. Closing websocket"
|
"Ping timer expired. Closing websocket"
|
||||||
);
|
);
|
||||||
|
|
||||||
@@ -2142,7 +2139,6 @@ Mobile Control Direct Server Infromation:
|
|||||||
{
|
{
|
||||||
var clientId = content["clientId"].Value<string>();
|
var clientId = content["clientId"].Value<string>();
|
||||||
var roomKey = content["roomKey"].Value<string>();
|
var roomKey = content["roomKey"].Value<string>();
|
||||||
var touchpanelKey = content.SelectToken("touchpanelKey"); //content["touchpanelKey"].Value<string>();
|
|
||||||
|
|
||||||
if (_roomCombiner == null)
|
if (_roomCombiner == null)
|
||||||
{
|
{
|
||||||
@@ -2198,7 +2194,7 @@ Mobile Control Direct Server Infromation:
|
|||||||
catch
|
catch
|
||||||
{
|
{
|
||||||
qrChecksum = new JValue(string.Empty);
|
qrChecksum = new JValue(string.Empty);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (code == null)
|
if (code == null)
|
||||||
{
|
{
|
||||||
@@ -2283,7 +2279,7 @@ Mobile Control Direct Server Infromation:
|
|||||||
|
|
||||||
// Can't do direct comparison because it will match /room/roomA with /room/roomA/xxx instead of /room/roomAB/xxx
|
// Can't do direct comparison because it will match /room/roomA with /room/roomA/xxx instead of /room/roomAB/xxx
|
||||||
var handlersKv = _actionDictionary.FirstOrDefault(kv => message.Type.StartsWith(kv.Key + "/")); // adds trailing slash to ensure above case is handled
|
var handlersKv = _actionDictionary.FirstOrDefault(kv => message.Type.StartsWith(kv.Key + "/")); // adds trailing slash to ensure above case is handled
|
||||||
|
|
||||||
|
|
||||||
if (handlersKv.Key == null)
|
if (handlersKv.Key == null)
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -30,6 +30,11 @@
|
|||||||
<Compile Remove="bin\**" />
|
<Compile Remove="bin\**" />
|
||||||
<EmbeddedResource Remove="bin\**" />
|
<EmbeddedResource Remove="bin\**" />
|
||||||
<None Remove="bin\**" />
|
<None Remove="bin\**" />
|
||||||
|
</ItemGroup>
|
||||||
|
<ItemGroup>
|
||||||
|
<Compile Remove="MobileControlSimplDeviceBridge.cs" />
|
||||||
|
<Compile Remove="RoomBridges\MobileControlSIMPLRoomBridge.cs" />
|
||||||
|
<Compile Remove="RoomBridges\SourceDeviceMapDictionary.cs" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<PackageReference Include="Crestron.SimplSharp.SDK.ProgramLibrary" Version="2.21.90" />
|
<PackageReference Include="Crestron.SimplSharp.SDK.ProgramLibrary" Version="2.21.90" />
|
||||||
@@ -48,15 +53,15 @@
|
|||||||
<None Remove="C:\Users\awelker\source\Essentials\Essentials\src\PepperDash.Essentials.MobileControl\bin\Debug\net472\PepperDash.Essentials.MobileControl.4.0.0-local.net472.cplz" />
|
<None Remove="C:\Users\awelker\source\Essentials\Essentials\src\PepperDash.Essentials.MobileControl\bin\Debug\net472\PepperDash.Essentials.MobileControl.4.0.0-local.net472.cplz" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<ProjectReference Include="..\PepperDash.Essentials.Core\PepperDash.Essentials.Core.csproj" >
|
<ProjectReference Include="..\PepperDash.Essentials.Core\PepperDash.Essentials.Core.csproj">
|
||||||
<Private>false</Private>
|
<Private>false</Private>
|
||||||
<ExcludeAssets>runtime</ExcludeAssets>
|
<ExcludeAssets>runtime</ExcludeAssets>
|
||||||
</ProjectReference>
|
</ProjectReference>
|
||||||
<ProjectReference Include="..\PepperDash.Essentials.Devices.Common\PepperDash.Essentials.Devices.Common.csproj" >
|
<ProjectReference Include="..\PepperDash.Essentials.Devices.Common\PepperDash.Essentials.Devices.Common.csproj">
|
||||||
<Private>false</Private>
|
<Private>false</Private>
|
||||||
<ExcludeAssets>runtime</ExcludeAssets>
|
<ExcludeAssets>runtime</ExcludeAssets>
|
||||||
</ProjectReference>
|
</ProjectReference>
|
||||||
<ProjectReference Include="..\PepperDash.Essentials.MobileControl.Messengers\PepperDash.Essentials.MobileControl.Messengers.csproj" >
|
<ProjectReference Include="..\PepperDash.Essentials.MobileControl.Messengers\PepperDash.Essentials.MobileControl.Messengers.csproj">
|
||||||
<Private>false</Private>
|
<Private>false</Private>
|
||||||
<ExcludeAssets>runtime</ExcludeAssets>
|
<ExcludeAssets>runtime</ExcludeAssets>
|
||||||
</ProjectReference>
|
</ProjectReference>
|
||||||
|
|||||||
@@ -1,10 +1,11 @@
|
|||||||
using PepperDash.Core;
|
using PepperDash.Core;
|
||||||
|
using PepperDash.Core.Logging;
|
||||||
using PepperDash.Essentials.AppServer.Messengers;
|
using PepperDash.Essentials.AppServer.Messengers;
|
||||||
using PepperDash.Essentials.Core.DeviceTypeInterfaces;
|
using PepperDash.Essentials.Core.DeviceTypeInterfaces;
|
||||||
using System;
|
using System;
|
||||||
|
|
||||||
|
|
||||||
namespace PepperDash.Essentials
|
namespace PepperDash.Essentials.RoomBridges
|
||||||
{
|
{
|
||||||
/// <summary>
|
/// <summary>
|
||||||
///
|
///
|
||||||
@@ -102,12 +103,12 @@ namespace PepperDash.Essentials
|
|||||||
/// </summary>
|
/// </summary>
|
||||||
protected virtual void UserCodeChange()
|
protected virtual void UserCodeChange()
|
||||||
{
|
{
|
||||||
Debug.Console(1, this, "Server user code changed: {0}", UserCode);
|
this.LogDebug("Server user code changed: {userCode}", UserCode);
|
||||||
|
|
||||||
var qrUrl = string.Format($"{Parent.Host}/api/rooms/{Parent.SystemUuid}/{RoomKey}/qr?x={new Random().Next()}");
|
var qrUrl = string.Format($"{Parent.Host}/api/rooms/{Parent.SystemUuid}/{RoomKey}/qr?x={new Random().Next()}");
|
||||||
QrCodeUrl = qrUrl;
|
QrCodeUrl = qrUrl;
|
||||||
|
|
||||||
Debug.Console(1, this, "Server user code changed: {0} - {1}", UserCode, qrUrl);
|
this.LogDebug("Server user code changed: {userCode} - {qrCodeUrl}", UserCode, qrUrl);
|
||||||
|
|
||||||
OnUserCodeChanged();
|
OnUserCodeChanged();
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -16,14 +16,14 @@ using PepperDash.Essentials.Devices.Common.Cameras;
|
|||||||
using PepperDash.Essentials.Devices.Common.Room;
|
using PepperDash.Essentials.Devices.Common.Room;
|
||||||
using PepperDash.Essentials.Devices.Common.VideoCodec;
|
using PepperDash.Essentials.Devices.Common.VideoCodec;
|
||||||
using PepperDash.Essentials.Room.Config;
|
using PepperDash.Essentials.Room.Config;
|
||||||
|
using PepperDash.Essentials.WebSocketServer;
|
||||||
using System;
|
using System;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
using IShades = PepperDash.Essentials.Core.Shades.IShades;
|
using IShades = PepperDash.Essentials.Core.Shades.IShades;
|
||||||
using ShadeBase = PepperDash.Essentials.Devices.Common.Shades.ShadeBase;
|
using ShadeBase = PepperDash.Essentials.Devices.Common.Shades.ShadeBase;
|
||||||
using Volume = PepperDash.Essentials.Room.MobileControl.Volume;
|
|
||||||
|
|
||||||
namespace PepperDash.Essentials
|
namespace PepperDash.Essentials.RoomBridges
|
||||||
{
|
{
|
||||||
public class MobileControlEssentialsRoomBridge : MobileControlBridgeBase
|
public class MobileControlEssentialsRoomBridge : MobileControlBridgeBase
|
||||||
{
|
{
|
||||||
@@ -339,7 +339,7 @@ namespace PepperDash.Essentials
|
|||||||
string shareText;
|
string shareText;
|
||||||
bool isSharing;
|
bool isSharing;
|
||||||
|
|
||||||
if (Room is IHasCurrentSourceInfoChange srcInfoRoom && (Room is IHasVideoCodec vcRoom && (vcRoom.VideoCodec.SharingContentIsOnFeedback.BoolValue && srcInfoRoom.CurrentSourceInfo != null)))
|
if (Room is IHasCurrentSourceInfoChange srcInfoRoom && Room is IHasVideoCodec vcRoom && vcRoom.VideoCodec.SharingContentIsOnFeedback.BoolValue && srcInfoRoom.CurrentSourceInfo != null)
|
||||||
{
|
{
|
||||||
shareText = srcInfoRoom.CurrentSourceInfo.PreferredName;
|
shareText = srcInfoRoom.CurrentSourceInfo.PreferredName;
|
||||||
isSharing = true;
|
isSharing = true;
|
||||||
@@ -532,7 +532,8 @@ namespace PepperDash.Essentials
|
|||||||
}
|
}
|
||||||
|
|
||||||
return state;
|
return state;
|
||||||
} catch (Exception ex)
|
}
|
||||||
|
catch (Exception ex)
|
||||||
{
|
{
|
||||||
Debug.LogMessage(ex, "Error getting full status", this);
|
Debug.LogMessage(ex, "Error getting full status", this);
|
||||||
return null;
|
return null;
|
||||||
@@ -560,7 +561,7 @@ namespace PepperDash.Essentials
|
|||||||
{
|
{
|
||||||
var zrcTp = DeviceManager.AllDevices.OfType<IMobileControlTouchpanelController>().SingleOrDefault((tp) => tp.ZoomRoomController);
|
var zrcTp = DeviceManager.AllDevices.OfType<IMobileControlTouchpanelController>().SingleOrDefault((tp) => tp.ZoomRoomController);
|
||||||
|
|
||||||
configuration.ZoomRoomControllerKey = zrcTp != null ? zrcTp.Key : null;
|
configuration.ZoomRoomControllerKey = zrcTp?.Key;
|
||||||
}
|
}
|
||||||
catch
|
catch
|
||||||
{
|
{
|
||||||
@@ -578,7 +579,7 @@ namespace PepperDash.Essentials
|
|||||||
// find the room combiner for this room by checking if the room is in the list of rooms for the room combiner
|
// find the room combiner for this room by checking if the room is in the list of rooms for the room combiner
|
||||||
var roomCombiner = DeviceManager.AllDevices.OfType<IEssentialsRoomCombiner>().FirstOrDefault();
|
var roomCombiner = DeviceManager.AllDevices.OfType<IEssentialsRoomCombiner>().FirstOrDefault();
|
||||||
|
|
||||||
configuration.RoomCombinerKey = roomCombiner != null ? roomCombiner.Key : null;
|
configuration.RoomCombinerKey = roomCombiner?.Key;
|
||||||
|
|
||||||
|
|
||||||
if (room is IEssentialsRoomPropertiesConfig propertiesConfig)
|
if (room is IEssentialsRoomPropertiesConfig propertiesConfig)
|
||||||
@@ -620,7 +621,8 @@ namespace PepperDash.Essentials
|
|||||||
configuration.VideoCodecKey = vcRoom.VideoCodec.Key;
|
configuration.VideoCodecKey = vcRoom.VideoCodec.Key;
|
||||||
configuration.VideoCodecIsZoomRoom = type.Name.Equals("ZoomRoom", StringComparison.InvariantCultureIgnoreCase);
|
configuration.VideoCodecIsZoomRoom = type.Name.Equals("ZoomRoom", StringComparison.InvariantCultureIgnoreCase);
|
||||||
}
|
}
|
||||||
};
|
}
|
||||||
|
;
|
||||||
|
|
||||||
if (room is IHasAudioCodec acRoom)
|
if (room is IHasAudioCodec acRoom)
|
||||||
{
|
{
|
||||||
@@ -655,7 +657,7 @@ namespace PepperDash.Essentials
|
|||||||
|
|
||||||
eEnvironmentalDeviceTypes type = eEnvironmentalDeviceTypes.None;
|
eEnvironmentalDeviceTypes type = eEnvironmentalDeviceTypes.None;
|
||||||
|
|
||||||
if (dev is ILightingScenes || dev is Devices.Common.Lighting.LightingBase)
|
if (dev is ILightingScenes)
|
||||||
{
|
{
|
||||||
type = eEnvironmentalDeviceTypes.Lighting;
|
type = eEnvironmentalDeviceTypes.Lighting;
|
||||||
}
|
}
|
||||||
@@ -871,7 +873,7 @@ namespace PepperDash.Essentials
|
|||||||
public Dictionary<string, SourceListItem> SourceList { get; set; }
|
public Dictionary<string, SourceListItem> SourceList { get; set; }
|
||||||
|
|
||||||
[JsonProperty("destinationList", NullValueHandling = NullValueHandling.Ignore)]
|
[JsonProperty("destinationList", NullValueHandling = NullValueHandling.Ignore)]
|
||||||
public Dictionary<string, DestinationListItem> DestinationList { get; set;}
|
public Dictionary<string, DestinationListItem> DestinationList { get; set; }
|
||||||
|
|
||||||
[JsonProperty("audioControlPointList", NullValueHandling = NullValueHandling.Ignore)]
|
[JsonProperty("audioControlPointList", NullValueHandling = NullValueHandling.Ignore)]
|
||||||
public AudioControlPointListItem AudioControlPointList { get; set; }
|
public AudioControlPointListItem AudioControlPointList { get; set; }
|
||||||
|
|||||||
@@ -66,7 +66,8 @@ namespace PepperDash.Essentials.Services
|
|||||||
}
|
}
|
||||||
|
|
||||||
return authResponse;
|
return authResponse;
|
||||||
} catch(Exception ex)
|
}
|
||||||
|
catch (Exception ex)
|
||||||
{
|
{
|
||||||
Debug.LogMessage(ex, "Error authorizing with Mobile Control");
|
Debug.LogMessage(ex, "Error authorizing with Mobile Control");
|
||||||
return new AuthorizationResponse { Authorized = false, Reason = ex.Message };
|
return new AuthorizationResponse { Authorized = false, Reason = ex.Message };
|
||||||
|
|||||||
@@ -1,15 +1,9 @@
|
|||||||
using PepperDash.Core;
|
using PepperDash.Core;
|
||||||
using PepperDash.Essentials.Core;
|
|
||||||
using System;
|
|
||||||
using System.Collections.Generic;
|
|
||||||
using System.Linq;
|
|
||||||
using System.Text;
|
|
||||||
using System.Threading.Tasks;
|
|
||||||
|
|
||||||
namespace PepperDash.Essentials.Touchpanel
|
namespace PepperDash.Essentials.Touchpanel
|
||||||
{
|
{
|
||||||
public interface ITheme:IKeyed
|
public interface ITheme : IKeyed
|
||||||
{
|
{
|
||||||
string Theme { get; }
|
string Theme { get; }
|
||||||
|
|
||||||
void UpdateTheme(string theme);
|
void UpdateTheme(string theme);
|
||||||
|
|||||||
@@ -3,7 +3,6 @@ using Newtonsoft.Json.Linq;
|
|||||||
using PepperDash.Core;
|
using PepperDash.Core;
|
||||||
using PepperDash.Core.Logging;
|
using PepperDash.Core.Logging;
|
||||||
using PepperDash.Essentials.AppServer.Messengers;
|
using PepperDash.Essentials.AppServer.Messengers;
|
||||||
using PepperDash.Essentials.Core.DeviceTypeInterfaces;
|
|
||||||
|
|
||||||
namespace PepperDash.Essentials.Touchpanel
|
namespace PepperDash.Essentials.Touchpanel
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -3,7 +3,6 @@ using Newtonsoft.Json.Linq;
|
|||||||
using PepperDash.Core;
|
using PepperDash.Core;
|
||||||
using PepperDash.Core.Logging;
|
using PepperDash.Core.Logging;
|
||||||
using PepperDash.Essentials.AppServer.Messengers;
|
using PepperDash.Essentials.AppServer.Messengers;
|
||||||
using PepperDash.Essentials.Core.DeviceTypeInterfaces;
|
|
||||||
|
|
||||||
|
|
||||||
namespace PepperDash.Essentials.Touchpanel
|
namespace PepperDash.Essentials.Touchpanel
|
||||||
@@ -41,7 +40,7 @@ namespace PepperDash.Essentials.Touchpanel
|
|||||||
|
|
||||||
|
|
||||||
_zoomControl.ZoomInCallFeedback.OutputChange += (s, a) =>
|
_zoomControl.ZoomInCallFeedback.OutputChange += (s, a) =>
|
||||||
{
|
{
|
||||||
PostStatusMessage(JToken.FromObject(
|
PostStatusMessage(JToken.FromObject(
|
||||||
new
|
new
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -10,13 +10,12 @@ using PepperDash.Essentials.Core.Config;
|
|||||||
using PepperDash.Essentials.Core.DeviceInfo;
|
using PepperDash.Essentials.Core.DeviceInfo;
|
||||||
using PepperDash.Essentials.Core.DeviceTypeInterfaces;
|
using PepperDash.Essentials.Core.DeviceTypeInterfaces;
|
||||||
using PepperDash.Essentials.Core.UI;
|
using PepperDash.Essentials.Core.UI;
|
||||||
using PepperDash.Essentials.Touchpanel;
|
|
||||||
using System;
|
using System;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
using Feedback = PepperDash.Essentials.Core.Feedback;
|
using Feedback = PepperDash.Essentials.Core.Feedback;
|
||||||
|
|
||||||
namespace PepperDash.Essentials.Devices.Common.TouchPanel
|
namespace PepperDash.Essentials.Touchpanel
|
||||||
{
|
{
|
||||||
//public interface IMobileControlTouchpanelController
|
//public interface IMobileControlTouchpanelController
|
||||||
//{
|
//{
|
||||||
@@ -75,7 +74,7 @@ namespace PepperDash.Essentials.Devices.Common.TouchPanel
|
|||||||
|
|
||||||
AddPostActivationAction(SubscribeForMobileControlUpdates);
|
AddPostActivationAction(SubscribeForMobileControlUpdates);
|
||||||
|
|
||||||
ThemeFeedback = new StringFeedback($"{Key}-theme",() => Theme);
|
ThemeFeedback = new StringFeedback($"{Key}-theme", () => Theme);
|
||||||
AppUrlFeedback = new StringFeedback($"{Key}-appUrl", () => _appUrl);
|
AppUrlFeedback = new StringFeedback($"{Key}-appUrl", () => _appUrl);
|
||||||
QrCodeUrlFeedback = new StringFeedback($"{Key}-qrCodeUrl", () => _bridge?.QrCodeUrl);
|
QrCodeUrlFeedback = new StringFeedback($"{Key}-qrCodeUrl", () => _bridge?.QrCodeUrl);
|
||||||
McServerUrlFeedback = new StringFeedback($"{Key}-mcServerUrl", () => _bridge?.McServerUrl);
|
McServerUrlFeedback = new StringFeedback($"{Key}-mcServerUrl", () => _bridge?.McServerUrl);
|
||||||
@@ -357,10 +356,11 @@ namespace PepperDash.Essentials.Devices.Common.TouchPanel
|
|||||||
_bridge = bridge;
|
_bridge = bridge;
|
||||||
|
|
||||||
_bridge.UserCodeChanged += UpdateFeedbacks;
|
_bridge.UserCodeChanged += UpdateFeedbacks;
|
||||||
_bridge.AppUrlChanged += (s, a) => {
|
_bridge.AppUrlChanged += (s, a) =>
|
||||||
this.LogInformation("AppURL changed");
|
{
|
||||||
|
this.LogInformation("AppURL changed");
|
||||||
SetAppUrl(_bridge.AppUrl);
|
SetAppUrl(_bridge.AppUrl);
|
||||||
UpdateFeedbacks(s, a);
|
UpdateFeedbacks(s, a);
|
||||||
};
|
};
|
||||||
|
|
||||||
SetAppUrl(_bridge.AppUrl);
|
SetAppUrl(_bridge.AppUrl);
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
using Newtonsoft.Json;
|
using Newtonsoft.Json;
|
||||||
using PepperDash.Essentials.Core;
|
using PepperDash.Essentials.Core;
|
||||||
|
|
||||||
namespace PepperDash.Essentials.Devices.Common.TouchPanel
|
namespace PepperDash.Essentials.Touchpanel
|
||||||
{
|
{
|
||||||
public class MobileControlTouchpanelProperties : CrestronTouchpanelPropertiesConfig
|
public class MobileControlTouchpanelProperties : CrestronTouchpanelPropertiesConfig
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -27,14 +27,14 @@ namespace PepperDash.Essentials.Touchpanel
|
|||||||
var theme = content.ToObject<MobileControlSimpleContent<string>>();
|
var theme = content.ToObject<MobileControlSimpleContent<string>>();
|
||||||
|
|
||||||
Debug.LogMessage(Serilog.Events.LogEventLevel.Information, "Setting theme to {theme}", this, theme.Value);
|
Debug.LogMessage(Serilog.Events.LogEventLevel.Information, "Setting theme to {theme}", this, theme.Value);
|
||||||
_tpDevice.UpdateTheme(theme.Value);
|
_tpDevice.UpdateTheme(theme.Value);
|
||||||
|
|
||||||
PostStatusMessage(JToken.FromObject(new {theme = theme.Value}));
|
PostStatusMessage(JToken.FromObject(new { theme = theme.Value }));
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public class ThemeUpdateMessage:DeviceStateMessageBase
|
public class ThemeUpdateMessage : DeviceStateMessageBase
|
||||||
{
|
{
|
||||||
[JsonProperty("theme")]
|
[JsonProperty("theme")]
|
||||||
public string Theme { get; set; }
|
public string Theme { get; set; }
|
||||||
|
|||||||
@@ -4,6 +4,7 @@ using PepperDash.Core;
|
|||||||
using PepperDash.Core.Logging;
|
using PepperDash.Core.Logging;
|
||||||
using PepperDash.Essentials.AppServer.Messengers;
|
using PepperDash.Essentials.AppServer.Messengers;
|
||||||
using PepperDash.Essentials.Core.Queues;
|
using PepperDash.Essentials.Core.Queues;
|
||||||
|
using PepperDash.Essentials.WebSocketServer;
|
||||||
using Serilog.Events;
|
using Serilog.Events;
|
||||||
using System;
|
using System;
|
||||||
using System.Threading;
|
using System.Threading;
|
||||||
@@ -46,19 +47,19 @@ namespace PepperDash.Essentials
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
var message = JsonConvert.SerializeObject(msgToSend, Formatting.None,
|
var message = JsonConvert.SerializeObject(msgToSend, Formatting.None,
|
||||||
new JsonSerializerSettings { NullValueHandling = NullValueHandling.Ignore, Converters = { new IsoDateTimeConverter() } });
|
new JsonSerializerSettings { NullValueHandling = NullValueHandling.Ignore, Converters = { new IsoDateTimeConverter() } });
|
||||||
|
|
||||||
Debug.LogMessage(LogEventLevel.Verbose, "Message TX: {0}", null, message);
|
Debug.LogMessage(LogEventLevel.Verbose, "Message TX: {0}", null, message);
|
||||||
|
|
||||||
_ws.Send(message);
|
_ws.Send(message);
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
catch (Exception ex)
|
catch (Exception ex)
|
||||||
{
|
{
|
||||||
Debug.LogMessage(ex, "Caught an exception in the Transmit Processor");
|
Debug.LogMessage(ex, "Caught an exception in the Transmit Processor");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
#endregion
|
#endregion
|
||||||
@@ -89,7 +90,7 @@ namespace PepperDash.Essentials
|
|||||||
{
|
{
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
if(_server == null)
|
if (_server == null)
|
||||||
{
|
{
|
||||||
Debug.LogMessage(LogEventLevel.Warning, "Cannot send message. Server is null");
|
Debug.LogMessage(LogEventLevel.Warning, "Cannot send message. Server is null");
|
||||||
return;
|
return;
|
||||||
@@ -109,13 +110,13 @@ namespace PepperDash.Essentials
|
|||||||
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
_server.SendMessageToAllClients(message);
|
|
||||||
|
|
||||||
_server.LogVerbose("Message TX To all clients: {message}", null, message);
|
_server.SendMessageToAllClients(message);
|
||||||
|
|
||||||
|
_server.LogVerbose("Message TX To all clients: {message}", null, message);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
catch (ThreadAbortException)
|
catch (ThreadAbortException)
|
||||||
{
|
{
|
||||||
@@ -123,7 +124,7 @@ namespace PepperDash.Essentials
|
|||||||
}
|
}
|
||||||
catch (Exception ex)
|
catch (Exception ex)
|
||||||
{
|
{
|
||||||
Debug.LogMessage(ex,"Caught an exception in the Transmit Processor");
|
Debug.LogMessage(ex, "Caught an exception in the Transmit Processor");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
using Newtonsoft.Json;
|
using Newtonsoft.Json;
|
||||||
|
|
||||||
namespace PepperDash.Essentials.AppServer
|
namespace PepperDash.Essentials
|
||||||
{
|
{
|
||||||
public class UserCodeChangedContent
|
public class UserCodeChangedContent
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
using Newtonsoft.Json;
|
using Newtonsoft.Json;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
|
|
||||||
namespace PepperDash.Essentials.Room.MobileControl
|
namespace PepperDash.Essentials
|
||||||
{
|
{
|
||||||
public class Volumes
|
public class Volumes
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -1,7 +1,6 @@
|
|||||||
using Crestron.SimplSharp.WebScripting;
|
using Crestron.SimplSharp.WebScripting;
|
||||||
using Newtonsoft.Json;
|
using Newtonsoft.Json;
|
||||||
using PepperDash.Core.Web.RequestHandlers;
|
using PepperDash.Core.Web.RequestHandlers;
|
||||||
using PepperDash.Essentials.AppServer.Messengers;
|
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
|
|
||||||
@@ -33,7 +32,7 @@ namespace PepperDash.Essentials.WebApiHandlers
|
|||||||
private readonly MobileControlSystemController mcController;
|
private readonly MobileControlSystemController mcController;
|
||||||
|
|
||||||
[JsonProperty("actionPaths")]
|
[JsonProperty("actionPaths")]
|
||||||
public List<ActionPath> ActionPaths => mcController.GetActionDictionaryPaths().Select((path) => new ActionPath { MessengerKey = path.Item1, Path = path.Item2}).ToList();
|
public List<ActionPath> ActionPaths => mcController.GetActionDictionaryPaths().Select((path) => new ActionPath { MessengerKey = path.Item1, Path = path.Item2 }).ToList();
|
||||||
|
|
||||||
public ActionPathsResponse(MobileControlSystemController mcController)
|
public ActionPathsResponse(MobileControlSystemController mcController)
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -3,6 +3,7 @@ using Newtonsoft.Json;
|
|||||||
using PepperDash.Core;
|
using PepperDash.Core;
|
||||||
using PepperDash.Core.Web.RequestHandlers;
|
using PepperDash.Core.Web.RequestHandlers;
|
||||||
using PepperDash.Essentials.Core.Config;
|
using PepperDash.Essentials.Core.Config;
|
||||||
|
using PepperDash.Essentials.WebSocketServer;
|
||||||
using System;
|
using System;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
@@ -30,8 +31,7 @@ namespace PepperDash.Essentials.WebApiHandlers
|
|||||||
}
|
}
|
||||||
catch (Exception ex)
|
catch (Exception ex)
|
||||||
{
|
{
|
||||||
Debug.Console(1, $"exception showing mobile info: {ex.Message}");
|
Debug.LogMessage(ex, "exception showing mobile info");
|
||||||
Debug.Console(2, $"stack trace: {ex.StackTrace}");
|
|
||||||
|
|
||||||
context.Response.StatusCode = 500;
|
context.Response.StatusCode = 500;
|
||||||
context.Response.End();
|
context.Response.End();
|
||||||
@@ -143,7 +143,7 @@ namespace PepperDash.Essentials.WebApiHandlers
|
|||||||
public string Token => Key;
|
public string Token => Key;
|
||||||
|
|
||||||
[JsonProperty("connected")]
|
[JsonProperty("connected")]
|
||||||
public bool Connected => context.Client == null ? false : context.Client.Context.WebSocket.IsAlive;
|
public bool Connected => context.Client != null && context.Client.Context.WebSocket.IsAlive;
|
||||||
|
|
||||||
[JsonProperty("duration")]
|
[JsonProperty("duration")]
|
||||||
public double Duration => context.Client == null ? 0 : context.Client.ConnectedDuration.TotalSeconds;
|
public double Duration => context.Client == null ? 0 : context.Client.ConnectedDuration.TotalSeconds;
|
||||||
|
|||||||
@@ -3,6 +3,7 @@ using Newtonsoft.Json;
|
|||||||
using PepperDash.Core;
|
using PepperDash.Core;
|
||||||
using PepperDash.Core.Web.RequestHandlers;
|
using PepperDash.Core.Web.RequestHandlers;
|
||||||
using PepperDash.Essentials.Core.Web;
|
using PepperDash.Essentials.Core.Web;
|
||||||
|
using PepperDash.Essentials.WebSocketServer;
|
||||||
using Serilog.Events;
|
using Serilog.Events;
|
||||||
|
|
||||||
namespace PepperDash.Essentials.WebApiHandlers
|
namespace PepperDash.Essentials.WebApiHandlers
|
||||||
|
|||||||
@@ -8,6 +8,7 @@ using PepperDash.Essentials.AppServer.Messengers;
|
|||||||
using PepperDash.Essentials.Core;
|
using PepperDash.Essentials.Core;
|
||||||
using PepperDash.Essentials.Core.DeviceTypeInterfaces;
|
using PepperDash.Essentials.Core.DeviceTypeInterfaces;
|
||||||
using PepperDash.Essentials.Core.Web;
|
using PepperDash.Essentials.Core.Web;
|
||||||
|
using PepperDash.Essentials.RoomBridges;
|
||||||
using PepperDash.Essentials.WebApiHandlers;
|
using PepperDash.Essentials.WebApiHandlers;
|
||||||
using Serilog.Events;
|
using Serilog.Events;
|
||||||
using System;
|
using System;
|
||||||
@@ -23,7 +24,7 @@ using WebSocketSharp.Server;
|
|||||||
using ErrorEventArgs = WebSocketSharp.ErrorEventArgs;
|
using ErrorEventArgs = WebSocketSharp.ErrorEventArgs;
|
||||||
|
|
||||||
|
|
||||||
namespace PepperDash.Essentials
|
namespace PepperDash.Essentials.WebSocketServer
|
||||||
{
|
{
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Represents the behaviour to associate with a UiClient for WebSocket communication
|
/// Represents the behaviour to associate with a UiClient for WebSocket communication
|
||||||
@@ -255,14 +256,14 @@ namespace PepperDash.Essentials
|
|||||||
Port = customPort;
|
Port = customPort;
|
||||||
}
|
}
|
||||||
|
|
||||||
if(parent.Config.DirectServer.AutomaticallyForwardPortToCSLAN == true)
|
if (parent.Config.DirectServer.AutomaticallyForwardPortToCSLAN == true)
|
||||||
{
|
{
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
CrestronEthernetHelper.GetAdapterdIdForSpecifiedAdapterType(EthernetAdapterType.EthernetCSAdapter);
|
CrestronEthernetHelper.GetAdapterdIdForSpecifiedAdapterType(EthernetAdapterType.EthernetCSAdapter);
|
||||||
|
|
||||||
|
|
||||||
Debug.LogMessage(Serilog.Events.LogEventLevel.Information, "Automatically forwarding port {0} to CS LAN", Port);
|
Debug.LogMessage(LogEventLevel.Information, "Automatically forwarding port {0} to CS LAN", Port);
|
||||||
|
|
||||||
var csAdapterId = CrestronEthernetHelper.GetAdapterdIdForSpecifiedAdapterType(EthernetAdapterType.EthernetCSAdapter);
|
var csAdapterId = CrestronEthernetHelper.GetAdapterdIdForSpecifiedAdapterType(EthernetAdapterType.EthernetCSAdapter);
|
||||||
var csIp = CrestronEthernetHelper.GetEthernetParameter(CrestronEthernetHelper.ETHERNET_PARAMETER_TO_GET.GET_CURRENT_IP_ADDRESS, csAdapterId);
|
var csIp = CrestronEthernetHelper.GetEthernetParameter(CrestronEthernetHelper.ETHERNET_PARAMETER_TO_GET.GET_CURRENT_IP_ADDRESS, csAdapterId);
|
||||||
@@ -271,12 +272,12 @@ namespace PepperDash.Essentials
|
|||||||
|
|
||||||
if (result != CrestronEthernetHelper.PortForwardingUserPatRetCodes.NoErr)
|
if (result != CrestronEthernetHelper.PortForwardingUserPatRetCodes.NoErr)
|
||||||
{
|
{
|
||||||
Debug.LogMessage(Serilog.Events.LogEventLevel.Error, "Error adding port forwarding: {0}", result);
|
Debug.LogMessage(LogEventLevel.Error, "Error adding port forwarding: {0}", result);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
catch (ArgumentException)
|
catch (ArgumentException)
|
||||||
{
|
{
|
||||||
Debug.LogMessage(Serilog.Events.LogEventLevel.Information, "This processor does not have a CS LAN", this);
|
Debug.LogMessage(LogEventLevel.Information, "This processor does not have a CS LAN", this);
|
||||||
}
|
}
|
||||||
catch (Exception ex)
|
catch (Exception ex)
|
||||||
{
|
{
|
||||||
@@ -351,7 +352,7 @@ namespace PepperDash.Essentials
|
|||||||
|
|
||||||
if (_server.IsListening)
|
if (_server.IsListening)
|
||||||
{
|
{
|
||||||
Debug.LogMessage(Serilog.Events.LogEventLevel.Information, "Mobile Control WebSocket Server listening on port {port}", this, _server.Port);
|
Debug.LogMessage(LogEventLevel.Information, "Mobile Control WebSocket Server listening on port {port}", this, _server.Port);
|
||||||
}
|
}
|
||||||
|
|
||||||
CrestronEnvironment.ProgramStatusEventHandler += OnProgramStop;
|
CrestronEnvironment.ProgramStatusEventHandler += OnProgramStop;
|
||||||
@@ -537,7 +538,7 @@ namespace PepperDash.Essentials
|
|||||||
{
|
{
|
||||||
Debug.LogMessage(ex, "Error getting application configuration", this);
|
Debug.LogMessage(ex, "Error getting application configuration", this);
|
||||||
|
|
||||||
Debug.LogMessage(Serilog.Events.LogEventLevel.Verbose, "Config Object: {config} from {parentConfig}", this, config, _parent.Config);
|
Debug.LogMessage(LogEventLevel.Verbose, "Config Object: {config} from {parentConfig}", this, config, _parent.Config);
|
||||||
}
|
}
|
||||||
|
|
||||||
return config;
|
return config;
|
||||||
@@ -558,9 +559,9 @@ namespace PepperDash.Essentials
|
|||||||
|
|
||||||
if (secret != null)
|
if (secret != null)
|
||||||
{
|
{
|
||||||
Debug.LogMessage(Serilog.Events.LogEventLevel.Information, "Secret successfully retrieved", this);
|
Debug.LogMessage(LogEventLevel.Information, "Secret successfully retrieved", this);
|
||||||
|
|
||||||
Debug.LogMessage(Serilog.Events.LogEventLevel.Debug, "Secret: {0}", this, secret.Value.ToString());
|
Debug.LogMessage(LogEventLevel.Debug, "Secret: {0}", this, secret.Value.ToString());
|
||||||
|
|
||||||
|
|
||||||
// populate the local secrets object
|
// populate the local secrets object
|
||||||
@@ -571,27 +572,27 @@ namespace PepperDash.Essentials
|
|||||||
// populate the _uiClient collection
|
// populate the _uiClient collection
|
||||||
foreach (var token in _secret.Tokens)
|
foreach (var token in _secret.Tokens)
|
||||||
{
|
{
|
||||||
if(token.Value == null)
|
if (token.Value == null)
|
||||||
{
|
{
|
||||||
Debug.LogMessage(Serilog.Events.LogEventLevel.Warning, "Token value is null", this);
|
Debug.LogMessage(LogEventLevel.Warning, "Token value is null", this);
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
Debug.LogMessage(Serilog.Events.LogEventLevel.Information, "Adding token: {0} for room: {1}", this, token.Key, token.Value.RoomKey);
|
Debug.LogMessage(LogEventLevel.Information, "Adding token: {0} for room: {1}", this, token.Key, token.Value.RoomKey);
|
||||||
|
|
||||||
if(UiClients == null)
|
if (UiClients == null)
|
||||||
{
|
{
|
||||||
Debug.LogMessage(Serilog.Events.LogEventLevel.Warning, "UiClients is null", this);
|
Debug.LogMessage(LogEventLevel.Warning, "UiClients is null", this);
|
||||||
UiClients = new Dictionary<string, UiClientContext>();
|
UiClients = new Dictionary<string, UiClientContext>();
|
||||||
}
|
}
|
||||||
|
|
||||||
UiClients.Add(token.Key, new UiClientContext(token.Value));
|
UiClients.Add(token.Key, new UiClientContext(token.Value));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (UiClients.Count > 0)
|
if (UiClients.Count > 0)
|
||||||
{
|
{
|
||||||
Debug.LogMessage(Serilog.Events.LogEventLevel.Information, "Restored {uiClientCount} UiClients from secrets data", this, UiClients.Count);
|
Debug.LogMessage(LogEventLevel.Information, "Restored {uiClientCount} UiClients from secrets data", this, UiClients.Count);
|
||||||
|
|
||||||
foreach (var client in UiClients)
|
foreach (var client in UiClients)
|
||||||
{
|
{
|
||||||
@@ -602,7 +603,7 @@ namespace PepperDash.Essentials
|
|||||||
_server.AddWebSocketService(path, () =>
|
_server.AddWebSocketService(path, () =>
|
||||||
{
|
{
|
||||||
var c = new UiClient();
|
var c = new UiClient();
|
||||||
Debug.LogMessage(Serilog.Events.LogEventLevel.Debug, "Constructing UiClient with id: {key}", this, key);
|
Debug.LogMessage(LogEventLevel.Debug, "Constructing UiClient with id: {key}", this, key);
|
||||||
|
|
||||||
c.Controller = _parent;
|
c.Controller = _parent;
|
||||||
c.RoomKey = roomKey;
|
c.RoomKey = roomKey;
|
||||||
@@ -623,10 +624,10 @@ namespace PepperDash.Essentials
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
Debug.LogMessage(Serilog.Events.LogEventLevel.Warning, "No secret found");
|
Debug.LogMessage(LogEventLevel.Warning, "No secret found");
|
||||||
}
|
}
|
||||||
|
|
||||||
Debug.LogMessage(Serilog.Events.LogEventLevel.Debug, "{uiClientCount} UiClients restored from secrets data", this, UiClients.Count);
|
Debug.LogMessage(LogEventLevel.Debug, "{uiClientCount} UiClients restored from secrets data", this, UiClients.Count);
|
||||||
}
|
}
|
||||||
catch (Exception ex)
|
catch (Exception ex)
|
||||||
{
|
{
|
||||||
@@ -643,7 +644,7 @@ namespace PepperDash.Essentials
|
|||||||
{
|
{
|
||||||
if (_secret == null)
|
if (_secret == null)
|
||||||
{
|
{
|
||||||
Debug.LogMessage(Serilog.Events.LogEventLevel.Error, "Secret is null", this);
|
Debug.LogMessage(LogEventLevel.Error, "Secret is null", this);
|
||||||
|
|
||||||
_secret = new ServerTokenSecrets(string.Empty);
|
_secret = new ServerTokenSecrets(string.Empty);
|
||||||
}
|
}
|
||||||
@@ -748,17 +749,17 @@ namespace PepperDash.Essentials
|
|||||||
_server.AddWebSocketService(path, () =>
|
_server.AddWebSocketService(path, () =>
|
||||||
{
|
{
|
||||||
var c = new UiClient();
|
var c = new UiClient();
|
||||||
Debug.LogMessage(Serilog.Events.LogEventLevel.Verbose, "Constructing UiClient with id: {0}", this, key);
|
Debug.LogMessage(LogEventLevel.Verbose, "Constructing UiClient with id: {0}", this, key);
|
||||||
c.Controller = _parent;
|
c.Controller = _parent;
|
||||||
c.RoomKey = bridge.RoomKey;
|
c.RoomKey = bridge.RoomKey;
|
||||||
UiClients[key].SetClient(c);
|
UiClients[key].SetClient(c);
|
||||||
return c;
|
return c;
|
||||||
});
|
});
|
||||||
|
|
||||||
Debug.LogMessage(Serilog.Events.LogEventLevel.Information, "Added new WebSocket UiClient service at path: {path}", this, path);
|
Debug.LogMessage(LogEventLevel.Information, "Added new WebSocket UiClient service at path: {path}", this, path);
|
||||||
Debug.LogMessage(Serilog.Events.LogEventLevel.Information, "Token: {@token}", this, token);
|
Debug.LogMessage(LogEventLevel.Information, "Token: {@token}", this, token);
|
||||||
|
|
||||||
Debug.LogMessage(Serilog.Events.LogEventLevel.Verbose, "{serviceCount} websocket services present", this, _server.WebSocketServices.Count);
|
Debug.LogMessage(LogEventLevel.Verbose, "{serviceCount} websocket services present", this, _server.WebSocketServices.Count);
|
||||||
|
|
||||||
UpdateSecret();
|
UpdateSecret();
|
||||||
|
|
||||||
@@ -970,7 +971,7 @@ namespace PepperDash.Essentials
|
|||||||
}
|
}
|
||||||
catch (Exception ex)
|
catch (Exception ex)
|
||||||
{
|
{
|
||||||
this.LogException(ex, "Caught an exception in the OnPost handler");
|
this.LogException(ex, "Caught an exception in the OnPost handler");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1048,7 +1049,7 @@ namespace PepperDash.Essentials
|
|||||||
var body = Encoding.UTF8.GetBytes(message);
|
var body = Encoding.UTF8.GetBytes(message);
|
||||||
res.ContentLength64 = body.LongLength;
|
res.ContentLength64 = body.LongLength;
|
||||||
res.Close(body, true);
|
res.Close(body, true);
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
@@ -1101,23 +1102,23 @@ namespace PepperDash.Essentials
|
|||||||
|
|
||||||
if (File.Exists(filePath))
|
if (File.Exists(filePath))
|
||||||
{
|
{
|
||||||
if(filePath.EndsWith(".png"))
|
if (filePath.EndsWith(".png"))
|
||||||
{
|
{
|
||||||
res.ContentType = "image/png";
|
res.ContentType = "image/png";
|
||||||
}
|
}
|
||||||
else if(filePath.EndsWith(".jpg"))
|
else if (filePath.EndsWith(".jpg"))
|
||||||
{
|
{
|
||||||
res.ContentType = "image/jpeg";
|
res.ContentType = "image/jpeg";
|
||||||
}
|
}
|
||||||
else if(filePath.EndsWith(".gif"))
|
else if (filePath.EndsWith(".gif"))
|
||||||
{
|
{
|
||||||
res.ContentType = "image/gif";
|
res.ContentType = "image/gif";
|
||||||
}
|
}
|
||||||
else if(filePath.EndsWith(".svg"))
|
else if (filePath.EndsWith(".svg"))
|
||||||
{
|
{
|
||||||
res.ContentType = "image/svg+xml";
|
res.ContentType = "image/svg+xml";
|
||||||
}
|
}
|
||||||
byte[] contents = System.IO.File.ReadAllBytes(filePath);
|
byte[] contents = File.ReadAllBytes(filePath);
|
||||||
res.ContentLength64 = contents.LongLength;
|
res.ContentLength64 = contents.LongLength;
|
||||||
res.Close(contents, true);
|
res.Close(contents, true);
|
||||||
}
|
}
|
||||||
@@ -1126,7 +1127,7 @@ namespace PepperDash.Essentials
|
|||||||
res.StatusCode = (int)HttpStatusCode.NotFound;
|
res.StatusCode = (int)HttpStatusCode.NotFound;
|
||||||
res.Close();
|
res.Close();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Handles requests to serve files for the Angular single page app
|
/// Handles requests to serve files for the Angular single page app
|
||||||
@@ -1138,9 +1139,6 @@ namespace PepperDash.Essentials
|
|||||||
{
|
{
|
||||||
this.LogVerbose("Requesting User app file");
|
this.LogVerbose("Requesting User app file");
|
||||||
|
|
||||||
var qp = req.QueryString;
|
|
||||||
var token = qp["token"];
|
|
||||||
|
|
||||||
string filePath = path.Split('?')[0];
|
string filePath = path.Split('?')[0];
|
||||||
|
|
||||||
// remove the token from the path if found
|
// remove the token from the path if found
|
||||||
@@ -1202,10 +1200,10 @@ namespace PepperDash.Essentials
|
|||||||
this.LogVerbose("Attempting to serve file: {filePath}", filePath);
|
this.LogVerbose("Attempting to serve file: {filePath}", filePath);
|
||||||
|
|
||||||
byte[] contents;
|
byte[] contents;
|
||||||
if (System.IO.File.Exists(filePath))
|
if (File.Exists(filePath))
|
||||||
{
|
{
|
||||||
this.LogVerbose("File found: {filePath}", filePath);
|
this.LogVerbose("File found: {filePath}", filePath);
|
||||||
contents = System.IO.File.ReadAllBytes(filePath);
|
contents = File.ReadAllBytes(filePath);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
using Newtonsoft.Json;
|
using Newtonsoft.Json;
|
||||||
using PepperDash.Essentials.Core;
|
using PepperDash.Essentials.Core;
|
||||||
|
|
||||||
namespace PepperDash.Essentials
|
namespace PepperDash.Essentials.WebSocketServer
|
||||||
{
|
{
|
||||||
internal class WebSocketServerSecretProvider : CrestronLocalSecretsProvider
|
internal class WebSocketServerSecretProvider : CrestronLocalSecretsProvider
|
||||||
{
|
{
|
||||||
|
|||||||
Reference in New Issue
Block a user