mirror of
https://github.com/PepperDash/Essentials.git
synced 2026-08-31 10:58:28 +00:00
Merge pull request #1456 from PepperDash/feat/touchpanel-communication-monitor
This commit is contained in:
commit
f70c78bcc5
1 changed files with 36 additions and 1 deletions
|
|
@ -25,11 +25,28 @@ namespace PepperDash.Essentials.Touchpanel
|
||||||
/// Mobile Control touchpanel controller that provides app control, Zoom integration,
|
/// Mobile Control touchpanel controller that provides app control, Zoom integration,
|
||||||
/// and mobile control functionality for Crestron touchpanels.
|
/// and mobile control functionality for Crestron touchpanels.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public class MobileControlTouchpanelController : TouchpanelBase, IHasFeedback, ITswAppControl, ITswZoomControl, IDeviceInfoProvider, IMobileControlCrestronTouchpanelController, ITheme
|
public class MobileControlTouchpanelController : TouchpanelBase, IHasFeedback, ITswAppControl, ITswZoomControl, IDeviceInfoProvider, IMobileControlCrestronTouchpanelController, ITheme, ICommunicationMonitor
|
||||||
{
|
{
|
||||||
private readonly MobileControlTouchpanelProperties localConfig;
|
private readonly MobileControlTouchpanelProperties localConfig;
|
||||||
private IMobileControlRoomMessenger _bridge;
|
private IMobileControlRoomMessenger _bridge;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Gets the CommunicationMonitor tracking the panel's online/offline state
|
||||||
|
/// </summary>
|
||||||
|
public StatusMonitorBase CommunicationMonitor { get; private set; }
|
||||||
|
|
||||||
|
private sealed class NullCommunicationMonitor : StatusMonitorBase
|
||||||
|
{
|
||||||
|
public NullCommunicationMonitor(IKeyed parent) : base(parent, 120000, 300000)
|
||||||
|
{
|
||||||
|
Status = MonitorStatus.InError;
|
||||||
|
Message = "Panel is not initialized";
|
||||||
|
}
|
||||||
|
|
||||||
|
public override void Start() { }
|
||||||
|
public override void Stop() { }
|
||||||
|
}
|
||||||
|
|
||||||
private string _appUrl;
|
private string _appUrl;
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
|
|
@ -128,6 +145,11 @@ namespace PepperDash.Essentials.Touchpanel
|
||||||
{
|
{
|
||||||
localConfig = config;
|
localConfig = config;
|
||||||
|
|
||||||
|
if (panel != null)
|
||||||
|
{
|
||||||
|
CommunicationMonitor = new CrestronGenericBaseCommunicationMonitor(this, panel, 120000, 300000);
|
||||||
|
}
|
||||||
|
|
||||||
AddPostActivationAction(SubscribeForMobileControlUpdates);
|
AddPostActivationAction(SubscribeForMobileControlUpdates);
|
||||||
|
|
||||||
ThemeFeedback = new StringFeedback($"{Key}-theme", () => Theme);
|
ThemeFeedback = new StringFeedback($"{Key}-theme", () => Theme);
|
||||||
|
|
@ -366,6 +388,8 @@ namespace PepperDash.Essentials.Touchpanel
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public override bool CustomActivate()
|
public override bool CustomActivate()
|
||||||
{
|
{
|
||||||
|
CommunicationMonitor?.Start();
|
||||||
|
|
||||||
var appMessenger = new ITswAppControlMessenger($"appControlMessenger-{Key}", $"/device/{Key}", this);
|
var appMessenger = new ITswAppControlMessenger($"appControlMessenger-{Key}", $"/device/{Key}", this);
|
||||||
|
|
||||||
var zoomMessenger = new ITswZoomControlMessenger($"zoomControlMessenger-{Key}", $"/device/{Key}", this);
|
var zoomMessenger = new ITswZoomControlMessenger($"zoomControlMessenger-{Key}", $"/device/{Key}", this);
|
||||||
|
|
@ -393,6 +417,17 @@ namespace PepperDash.Essentials.Touchpanel
|
||||||
return base.CustomActivate();
|
return base.CustomActivate();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Stops the CommunicationMonitor on deactivation.
|
||||||
|
/// </summary>
|
||||||
|
/// <returns>True if deactivation was successful; otherwise, false.</returns>
|
||||||
|
public override bool Deactivate()
|
||||||
|
{
|
||||||
|
CommunicationMonitor?.Stop();
|
||||||
|
|
||||||
|
return base.Deactivate();
|
||||||
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Handles device extender signal changes for system reserved signals.
|
/// Handles device extender signal changes for system reserved signals.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue