Merge branch 'development' into feature/update-Display-Joinmap

This commit is contained in:
Trevor Payne
2020-05-05 15:30:41 -05:00
committed by GitHub
2 changed files with 44 additions and 70 deletions

View File

@@ -6,62 +6,37 @@ using Crestron.SimplSharp;
using PepperDash.Essentials.Core; using PepperDash.Essentials.Core;
namespace PepperDash.Essentials.Core.Bridges namespace PepperDash.Essentials.Core.Bridges
{ {
public class IBasicCommunicationJoinMap : JoinMapBase public class IBasicCommunicationJoinMap : JoinMapBaseAdvanced
{ {
#region Digitals [JoinName("TextReceived")]
/// <summary> public JoinDataComplete TextReceived = new JoinDataComplete(new JoinData() { JoinNumber = 1, JoinSpan = 1 },
/// Set High to connect, Low to disconnect new JoinMetadata() { Label = "Text Received From Remote Device", JoinCapabilities = eJoinCapabilities.ToSIMPL, JoinType = eJoinType.Serial });
/// </summary>
public uint Connect { get; set; } [JoinName("SendText")]
/// <summary> public JoinDataComplete SendText = new JoinDataComplete(new JoinData() { JoinNumber = 1, JoinSpan = 1 },
/// Reports Connected State (High = Connected) new JoinMetadata() { Label = "Text Sent To Remote Device", JoinCapabilities = eJoinCapabilities.FromSIMPL, JoinType = eJoinType.Serial });
/// </summary>
public uint Connected { get; set; } [JoinName("SetPortConfig")]
#endregion public JoinDataComplete SetPortConfig = new JoinDataComplete(new JoinData() { JoinNumber = 2, JoinSpan = 1 },
new JoinMetadata() { Label = "Set Port Config", JoinCapabilities = eJoinCapabilities.FromSIMPL, JoinType = eJoinType.Serial });
#region Analogs
/// <summary> [JoinName("Connect")]
/// Reports the connections status value public JoinDataComplete Connect = new JoinDataComplete(new JoinData() { JoinNumber = 1, JoinSpan = 1 },
/// </summary> new JoinMetadata() { Label = "Connect", JoinCapabilities = eJoinCapabilities.FromSIMPL, JoinType = eJoinType.Digital });
public uint Status { get; set; }
#endregion [JoinName("Connected")]
public JoinDataComplete Connected = new JoinDataComplete(new JoinData() { JoinNumber = 1, JoinSpan = 1 },
#region Serials new JoinMetadata() { Label = "Connected", JoinCapabilities = eJoinCapabilities.ToSIMPL, JoinType = eJoinType.Digital });
/// <summary>
/// Data back from port [JoinName("Status")]
/// </summary> public JoinDataComplete Status = new JoinDataComplete(new JoinData() { JoinNumber = 1, JoinSpan = 1 },
public uint TextReceived { get; set; } new JoinMetadata() { Label = "Status", JoinCapabilities = eJoinCapabilities.ToSIMPL, JoinType = eJoinType.Analog });
/// <summary>
/// Sends data to the port
/// </summary> public IBasicCommunicationJoinMap(uint joinStart)
public uint SendText { get; set; } : base(joinStart, typeof(IBasicCommunicationJoinMap))
/// <summary> {
/// Takes a JSON serialized string that sets a COM port's parameters }
/// </summary>
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;
}
} }
} }

View File

@@ -59,14 +59,13 @@ namespace PepperDash.Essentials.Core
} }
public override void LinkToApi(BasicTriList trilist, uint joinStart, string joinMapKey, EiscApiAdvanced bridge) 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); var joinMapSerialized = JoinMapHelper.GetSerializedJoinMapForDevice(joinMapKey);
if (!string.IsNullOrEmpty(joinMapSerialized)) if (!string.IsNullOrEmpty(joinMapSerialized))
joinMap = JsonConvert.DeserializeObject<IBasicCommunicationJoinMap>(joinMapSerialized); joinMap = JsonConvert.DeserializeObject<IBasicCommunicationJoinMap>(joinMapSerialized);
joinMap.OffsetJoinNumbers(joinStart);
if (CommPort == null) if (CommPort == null)
{ {
@@ -80,22 +79,22 @@ namespace PepperDash.Essentials.Core
CommPort.TextReceived += (s, a) => CommPort.TextReceived += (s, a) =>
{ {
Debug.Console(2, this, "RX: {0}", a.Text); Debug.Console(2, this, "RX: {0}", a.Text);
trilist.SetString(joinMap.TextReceived, a.Text); trilist.SetString(joinMap.TextReceived.JoinNumber, a.Text);
}; };
trilist.SetStringSigAction(joinMap.SendText, s => CommPort.SendText(s)); trilist.SetStringSigAction(joinMap.SendText.JoinNumber, s => CommPort.SendText(s));
trilist.SetStringSigAction(joinMap.SetPortConfig, SetPortConfig); trilist.SetStringSigAction(joinMap.SetPortConfig.JoinNumber, SetPortConfig);
var sComm = this as ISocketStatus; var sComm = this as ISocketStatus;
if (sComm == null) return; if (sComm == null) return;
sComm.ConnectionChange += (s, a) => sComm.ConnectionChange += (s, a) =>
{ {
trilist.SetUshort(joinMap.Status, (ushort)(a.Client.ClientStatus)); trilist.SetUshort(joinMap.Status.JoinNumber, (ushort)(a.Client.ClientStatus));
trilist.SetBool(joinMap.Connected, a.Client.ClientStatus == trilist.SetBool(joinMap.Connected.JoinNumber, a.Client.ClientStatus ==
SocketStatus.SOCKET_STATUS_CONNECTED); SocketStatus.SOCKET_STATUS_CONNECTED);
}; };
trilist.SetBoolSigAction(joinMap.Connect, b => trilist.SetBoolSigAction(joinMap.Connect.JoinNumber, b =>
{ {
if (b) if (b)
{ {