From 738504e9fca8c1269a84ed1715c54ffbd16f3978 Mon Sep 17 00:00:00 2001 From: Neil Dorin Date: Thu, 18 Sep 2025 14:48:21 -0600 Subject: [PATCH 1/3] fix: Add error handling for network parameter retrieval Introduced a try-catch block to handle exceptions when fetching the Crestron Ethernet adapter's ID, subnet mask, and IP address. Added logging for cases where the processor lacks a CS LAN. Also included a new using directive for Serilog.Events. --- .../MobileControlTouchpanelController.cs | 18 +++++++++++++----- 1 file changed, 13 insertions(+), 5 deletions(-) diff --git a/src/PepperDash.Essentials.MobileControl/Touchpanel/MobileControlTouchpanelController.cs b/src/PepperDash.Essentials.MobileControl/Touchpanel/MobileControlTouchpanelController.cs index a4476cd8..bd082233 100644 --- a/src/PepperDash.Essentials.MobileControl/Touchpanel/MobileControlTouchpanelController.cs +++ b/src/PepperDash.Essentials.MobileControl/Touchpanel/MobileControlTouchpanelController.cs @@ -16,6 +16,7 @@ using PepperDash.Essentials.Core.Config; using PepperDash.Essentials.Core.DeviceInfo; using PepperDash.Essentials.Core.DeviceTypeInterfaces; using PepperDash.Essentials.Core.UI; +using Serilog.Events; using Feedback = PepperDash.Essentials.Core.Feedback; namespace PepperDash.Essentials.Touchpanel @@ -190,12 +191,19 @@ namespace PepperDash.Essentials.Touchpanel RegisterForExtenders(); - var csAdapterId = CrestronEthernetHelper.GetAdapterdIdForSpecifiedAdapterType(EthernetAdapterType.EthernetCSAdapter); - var csSubnetMask = CrestronEthernetHelper.GetEthernetParameter(CrestronEthernetHelper.ETHERNET_PARAMETER_TO_GET.GET_CURRENT_IP_MASK, csAdapterId); - var csIpAddress = CrestronEthernetHelper.GetEthernetParameter(CrestronEthernetHelper.ETHERNET_PARAMETER_TO_GET.GET_CURRENT_IP_ADDRESS, csAdapterId); + try + { + var csAdapterId = CrestronEthernetHelper.GetAdapterdIdForSpecifiedAdapterType(EthernetAdapterType.EthernetCSAdapter); + var csSubnetMask = CrestronEthernetHelper.GetEthernetParameter(CrestronEthernetHelper.ETHERNET_PARAMETER_TO_GET.GET_CURRENT_IP_MASK, csAdapterId); + var csIpAddress = CrestronEthernetHelper.GetEthernetParameter(CrestronEthernetHelper.ETHERNET_PARAMETER_TO_GET.GET_CURRENT_IP_ADDRESS, csAdapterId); - this.csSubnetMask = System.Net.IPAddress.Parse(csSubnetMask); - this.csIpAddress = System.Net.IPAddress.Parse(csIpAddress); + this.csSubnetMask = System.Net.IPAddress.Parse(csSubnetMask); + this.csIpAddress = System.Net.IPAddress.Parse(csIpAddress); + } + catch + { + Debug.LogInformation("This processor does not have a CS LAN", this); + } } /// From 258699fbcd5bc575a908bd013184915b2af43d5c Mon Sep 17 00:00:00 2001 From: Neil Dorin Date: Thu, 18 Sep 2025 18:23:12 -0600 Subject: [PATCH 2/3] fix: Enhance AppUrl change logging Updated logging to include the new AppUrl value when it changes. This provides better context in the logs, making it easier to track the specific URL that was set. --- .../Touchpanel/MobileControlTouchpanelController.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/PepperDash.Essentials.MobileControl/Touchpanel/MobileControlTouchpanelController.cs b/src/PepperDash.Essentials.MobileControl/Touchpanel/MobileControlTouchpanelController.cs index bd082233..61f54832 100644 --- a/src/PepperDash.Essentials.MobileControl/Touchpanel/MobileControlTouchpanelController.cs +++ b/src/PepperDash.Essentials.MobileControl/Touchpanel/MobileControlTouchpanelController.cs @@ -510,7 +510,7 @@ namespace PepperDash.Essentials.Touchpanel _bridge.UserCodeChanged += UpdateFeedbacks; _bridge.AppUrlChanged += (s, a) => { - this.LogInformation("AppURL changed"); + this.LogInformation("AppURL changed: {appURL}", _bridge.AppUrl); SetAppUrl(_bridge.AppUrl); UpdateFeedbacks(s, a); }; From ba0de5128fb365622f42c4f555cefaf3193c1e4f Mon Sep 17 00:00:00 2001 From: Neil Dorin Date: Tue, 23 Sep 2025 11:56:57 -0600 Subject: [PATCH 3/3] Update src/PepperDash.Essentials.MobileControl/Touchpanel/MobileControlTouchpanelController.cs Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> --- .../Touchpanel/MobileControlTouchpanelController.cs | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/src/PepperDash.Essentials.MobileControl/Touchpanel/MobileControlTouchpanelController.cs b/src/PepperDash.Essentials.MobileControl/Touchpanel/MobileControlTouchpanelController.cs index 61f54832..540063c5 100644 --- a/src/PepperDash.Essentials.MobileControl/Touchpanel/MobileControlTouchpanelController.cs +++ b/src/PepperDash.Essentials.MobileControl/Touchpanel/MobileControlTouchpanelController.cs @@ -200,10 +200,18 @@ namespace PepperDash.Essentials.Touchpanel this.csSubnetMask = System.Net.IPAddress.Parse(csSubnetMask); this.csIpAddress = System.Net.IPAddress.Parse(csIpAddress); } - catch + catch (ArgumentException) { Debug.LogInformation("This processor does not have a CS LAN", this); } + catch (InvalidOperationException) + { + Debug.LogInformation("This processor does not have a CS LAN", this); + } + catch (Exception ex) + { + Debug.LogError($"Unexpected exception when checking CS LAN: {ex}", this); + } } ///