diff --git a/essentials-framework/Essentials Core/PepperDashEssentialsBase/Bridges/JoinMaps/IBasicCommunicationJoinMap.cs b/essentials-framework/Essentials Core/PepperDashEssentialsBase/Bridges/JoinMaps/IBasicCommunicationJoinMap.cs
index 3669738e..d9b361b4 100644
--- a/essentials-framework/Essentials Core/PepperDashEssentialsBase/Bridges/JoinMaps/IBasicCommunicationJoinMap.cs
+++ b/essentials-framework/Essentials Core/PepperDashEssentialsBase/Bridges/JoinMaps/IBasicCommunicationJoinMap.cs
@@ -6,62 +6,37 @@ using Crestron.SimplSharp;
using PepperDash.Essentials.Core;
namespace PepperDash.Essentials.Core.Bridges
-{
- public class IBasicCommunicationJoinMap : JoinMapBase
- {
- #region Digitals
- ///
- /// Set High to connect, Low to disconnect
- ///
- public uint Connect { get; set; }
- ///
- /// Reports Connected State (High = Connected)
- ///
- public uint Connected { get; set; }
- #endregion
-
- #region Analogs
- ///
- /// Reports the connections status value
- ///
- public uint Status { get; set; }
- #endregion
-
- #region Serials
- ///
- /// Data back from port
- ///
- public uint TextReceived { get; set; }
- ///
- /// Sends data to the port
- ///
- public uint SendText { get; set; }
- ///
- /// Takes a JSON serialized string that sets a COM port's parameters
- ///
- public uint SetPortConfig { get; set; }
- #endregion
-
- public IBasicCommunicationJoinMap()
- {
- TextReceived = 1;
- SendText = 1;
- SetPortConfig = 2;
- Connect = 1;
- Connected = 1;
- Status = 1;
- }
-
- public override void OffsetJoinNumbers(uint joinStart)
- {
- var joinOffset = joinStart - 1;
-
- TextReceived = TextReceived + joinOffset;
- SendText = SendText + joinOffset;
- SetPortConfig = SetPortConfig + joinOffset;
- Connect = Connect + joinOffset;
- Connected = Connected + joinOffset;
- Status = Status + joinOffset;
- }
+{
+ public class IBasicCommunicationJoinMap : JoinMapBaseAdvanced
+ {
+ [JoinName("TextReceived")]
+ public JoinDataComplete TextReceived = new JoinDataComplete(new JoinData() { JoinNumber = 1, JoinSpan = 1 },
+ new JoinMetadata() { Label = "Text Received From Remote Device", JoinCapabilities = eJoinCapabilities.ToSIMPL, JoinType = eJoinType.Serial });
+
+ [JoinName("SendText")]
+ public JoinDataComplete SendText = new JoinDataComplete(new JoinData() { JoinNumber = 1, JoinSpan = 1 },
+ new JoinMetadata() { Label = "Text Sent To Remote Device", JoinCapabilities = eJoinCapabilities.FromSIMPL, JoinType = eJoinType.Serial });
+
+ [JoinName("SetPortConfig")]
+ public JoinDataComplete SetPortConfig = new JoinDataComplete(new JoinData() { JoinNumber = 2, JoinSpan = 1 },
+ new JoinMetadata() { Label = "Set Port Config", JoinCapabilities = eJoinCapabilities.FromSIMPL, JoinType = eJoinType.Serial });
+
+ [JoinName("Connect")]
+ public JoinDataComplete Connect = new JoinDataComplete(new JoinData() { JoinNumber = 1, JoinSpan = 1 },
+ new JoinMetadata() { Label = "Connect", JoinCapabilities = eJoinCapabilities.FromSIMPL, JoinType = eJoinType.Digital });
+
+ [JoinName("Connected")]
+ public JoinDataComplete Connected = new JoinDataComplete(new JoinData() { JoinNumber = 1, JoinSpan = 1 },
+ new JoinMetadata() { Label = "Connected", JoinCapabilities = eJoinCapabilities.ToSIMPL, JoinType = eJoinType.Digital });
+
+ [JoinName("Status")]
+ public JoinDataComplete Status = new JoinDataComplete(new JoinData() { JoinNumber = 1, JoinSpan = 1 },
+ new JoinMetadata() { Label = "Status", JoinCapabilities = eJoinCapabilities.ToSIMPL, JoinType = eJoinType.Analog });
+
+
+ public IBasicCommunicationJoinMap(uint joinStart)
+ : base(joinStart, typeof(IBasicCommunicationJoinMap))
+ {
+ }
}
}
\ No newline at end of file
diff --git a/essentials-framework/Essentials Core/PepperDashEssentialsBase/Config/Comm and IR/GenericComm.cs b/essentials-framework/Essentials Core/PepperDashEssentialsBase/Config/Comm and IR/GenericComm.cs
index 41438832..b1dd55ee 100644
--- a/essentials-framework/Essentials Core/PepperDashEssentialsBase/Config/Comm and IR/GenericComm.cs
+++ b/essentials-framework/Essentials Core/PepperDashEssentialsBase/Config/Comm and IR/GenericComm.cs
@@ -59,14 +59,13 @@ namespace PepperDash.Essentials.Core
}
public override void LinkToApi(BasicTriList trilist, uint joinStart, string joinMapKey, EiscApiAdvanced bridge)
- {
- var joinMap = new IBasicCommunicationJoinMap();
+ {
+ var joinMap = new IBasicCommunicationJoinMap(joinStart);
var joinMapSerialized = JoinMapHelper.GetSerializedJoinMapForDevice(joinMapKey);
if (!string.IsNullOrEmpty(joinMapSerialized))
joinMap = JsonConvert.DeserializeObject(joinMapSerialized);
- joinMap.OffsetJoinNumbers(joinStart);
if (CommPort == null)
{
@@ -80,22 +79,22 @@ namespace PepperDash.Essentials.Core
CommPort.TextReceived += (s, a) =>
{
Debug.Console(2, this, "RX: {0}", a.Text);
- trilist.SetString(joinMap.TextReceived, a.Text);
- };
- trilist.SetStringSigAction(joinMap.SendText, s => CommPort.SendText(s));
- trilist.SetStringSigAction(joinMap.SetPortConfig, SetPortConfig);
+ trilist.SetString(joinMap.TextReceived.JoinNumber, a.Text);
+ };
+ trilist.SetStringSigAction(joinMap.SendText.JoinNumber, s => CommPort.SendText(s));
+ trilist.SetStringSigAction(joinMap.SetPortConfig.JoinNumber, SetPortConfig);
var sComm = this as ISocketStatus;
if (sComm == null) return;
sComm.ConnectionChange += (s, a) =>
- {
- trilist.SetUshort(joinMap.Status, (ushort)(a.Client.ClientStatus));
- trilist.SetBool(joinMap.Connected, a.Client.ClientStatus ==
+ {
+ trilist.SetUshort(joinMap.Status.JoinNumber, (ushort)(a.Client.ClientStatus));
+ trilist.SetBool(joinMap.Connected.JoinNumber, a.Client.ClientStatus ==
SocketStatus.SOCKET_STATUS_CONNECTED);
- };
-
- trilist.SetBoolSigAction(joinMap.Connect, b =>
+ };
+
+ trilist.SetBoolSigAction(joinMap.Connect.JoinNumber, b =>
{
if (b)
{