diff --git a/PepperDashEssentials/Bridges/IBridge.cs b/PepperDashEssentials/Bridges/IBridge.cs
new file mode 100644
index 00000000..a8b0a893
--- /dev/null
+++ b/PepperDashEssentials/Bridges/IBridge.cs
@@ -0,0 +1,12 @@
+using System;
+
+namespace PepperDash.Essentials.Bridges
+{
+ ///
+ /// Defines a device that uses the legacy JoinMapBase for its join map
+ ///
+ [Obsolete("IBridgeAdvanced should be used going forward with JoinMapBaseAdvanced")]
+ public interface IBridge: Core.Bridges.IBridge
+ {
+ }
+}
\ No newline at end of file
diff --git a/PepperDashEssentials/PepperDashEssentials.csproj b/PepperDashEssentials/PepperDashEssentials.csproj
index 5b500425..c403d1c3 100644
--- a/PepperDashEssentials/PepperDashEssentials.csproj
+++ b/PepperDashEssentials/PepperDashEssentials.csproj
@@ -125,6 +125,7 @@
+
diff --git a/essentials-framework/Essentials Core/PepperDashEssentialsBase/Bridges/BridgeBase.cs b/essentials-framework/Essentials Core/PepperDashEssentialsBase/Bridges/BridgeBase.cs
index c0afb5f9..330cb9fb 100644
--- a/essentials-framework/Essentials Core/PepperDashEssentialsBase/Bridges/BridgeBase.cs
+++ b/essentials-framework/Essentials Core/PepperDashEssentialsBase/Bridges/BridgeBase.cs
@@ -109,31 +109,37 @@ namespace PepperDash.Essentials.Core.Bridges
if (device == null) continue;
Debug.Console(1, this, "Linking Device: '{0}'", device.Key);
-
- if (device.GetType().GetCType().IsAssignableFrom(typeof (IBridge)))
+ if (device is IBridge) // Check for this first to allow bridges in plugins to override existing bridges that apply to the same type.
{
- var bridge = device as IBridge;
-
- if (bridge != null) bridge.LinkToApi(Eisc, d.JoinStart, d.JoinMapKey);
- continue;
+ Debug.Console(2, this, "'{0}' is IBridge", device.Key);
+ (device as IBridge).LinkToApi(Eisc, d.JoinStart, d.JoinMapKey);
}
-
- if (device.GetType().GetCType().IsAssignableFrom(typeof (IBridgeAdvanced)))
+ else if (device is IBridgeAdvanced)
{
- var bridge = device as IBridgeAdvanced;
- if (bridge != null) bridge.LinkToApi(Eisc, d.JoinStart, d.JoinMapKey, this);
+ Debug.Console(2, this, "'{0}' is IBridgeAdvanced", device.Key);
+ (device as IBridgeAdvanced).LinkToApi(Eisc, d.JoinStart, d.JoinMapKey, this);
}
-
- //if (device is IBridge) // Check for this first to allow bridges in plugins to override existing bridges that apply to the same type.
+ //if (device.GetType().GetCType().IsAssignableFrom(typeof (IBridge)))
//{
- // (device as IBridge).LinkToApi(Eisc, d.JoinStart, d.JoinMapKey);
+ // var bridge = device as IBridge;
+
+ // if (bridge == null)
+ // continue;
+ // Debug.Console(2, this, "Linking device {0} as IBridge");
+ // bridge.LinkToApi(Eisc, d.JoinStart, d.JoinMapKey);
// continue;
//}
- //else if (device is IBridgeAdvanced)
- //{
- // Debug.Console(2, this, "'{0}' is IBridgeAdvanced", device.Key);
- // (device as IBridgeAdvanced).LinkToApi(Eisc, d.JoinStart, d.JoinMapKey, this);
- //}
+
+ //if (!device.GetType().GetCType().IsAssignableFrom(typeof (IBridgeAdvanced))) continue;
+
+ //var bridgeAdvanced = device as IBridgeAdvanced;
+
+ //if (bridgeAdvanced == null) continue;
+ //Debug.Console(2, this, "Linking device {0} as IBridgeAdvanced");
+ //bridgeAdvanced.LinkToApi(Eisc, d.JoinStart, d.JoinMapKey, this);
+ }
+ Debug.Console(1, this, "Devices Linked.");
+ //
//else if (device is PepperDash.Essentials.Core.Monitoring.SystemMonitorController)
//{
// (device as PepperDash.Essentials.Core.Monitoring.SystemMonitorController).LinkToApi(Eisc, d.JoinStart, d.JoinMapKey);
@@ -234,9 +240,9 @@ namespace PepperDash.Essentials.Core.Bridges
// (device as C2nRthsController).LinkToApi(Eisc, d.JoinStart, d.JoinMapKey);
// continue;
//}
- }
+ //}
- Debug.Console(1, this, "Devices Linked.");
+
});
}
diff --git a/essentials-framework/Essentials Core/PepperDashEssentialsBase/Bridges/IBridge.cs b/essentials-framework/Essentials Core/PepperDashEssentialsBase/Bridges/IBridge.cs
index a4e09c8e..0a4450d0 100644
--- a/essentials-framework/Essentials Core/PepperDashEssentialsBase/Bridges/IBridge.cs
+++ b/essentials-framework/Essentials Core/PepperDashEssentialsBase/Bridges/IBridge.cs
@@ -3,6 +3,14 @@ using Crestron.SimplSharpPro.DeviceSupport;
namespace PepperDash.Essentials.Core.Bridges
{
+ ///
+ /// Defines a device that uses JoinMapBaseAdvanced for its join map
+ ///
+ public interface IBridgeAdvanced
+ {
+ void LinkToApi(BasicTriList trilist, uint joinStart, string joinMapKey, EiscApi bridge);
+ }
+
///
/// Defines a device that uses the legacy JoinMapBase for its join map
///
@@ -11,12 +19,4 @@ namespace PepperDash.Essentials.Core.Bridges
{
void LinkToApi(BasicTriList trilist, uint joinStart, string joinMapKey);
}
-
- ///
- /// Defines a device that uses JoinMapBaseAdvanced for its join map
- ///
- public interface IBridgeAdvanced
- {
- void LinkToApi(BasicTriList trilist, uint joinStart, string joinMapKey, EiscApi bridge);
- }
}
\ No newline at end of file