mirror of
https://github.com/PepperDash/Essentials.git
synced 2026-02-14 20:24:57 +00:00
Merge branch 'development' into feature/update-Display-Joinmap
This commit is contained in:
@@ -7,61 +7,36 @@ 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; }
|
|
||||||
/// <summary>
|
|
||||||
/// Reports Connected State (High = Connected)
|
|
||||||
/// </summary>
|
|
||||||
public uint Connected { get; set; }
|
|
||||||
#endregion
|
|
||||||
|
|
||||||
#region Analogs
|
[JoinName("SendText")]
|
||||||
/// <summary>
|
public JoinDataComplete SendText = new JoinDataComplete(new JoinData() { JoinNumber = 1, JoinSpan = 1 },
|
||||||
/// Reports the connections status value
|
new JoinMetadata() { Label = "Text Sent To Remote Device", JoinCapabilities = eJoinCapabilities.FromSIMPL, JoinType = eJoinType.Serial });
|
||||||
/// </summary>
|
|
||||||
public uint Status { get; set; }
|
|
||||||
#endregion
|
|
||||||
|
|
||||||
#region Serials
|
[JoinName("SetPortConfig")]
|
||||||
/// <summary>
|
public JoinDataComplete SetPortConfig = new JoinDataComplete(new JoinData() { JoinNumber = 2, JoinSpan = 1 },
|
||||||
/// Data back from port
|
new JoinMetadata() { Label = "Set Port Config", JoinCapabilities = eJoinCapabilities.FromSIMPL, JoinType = eJoinType.Serial });
|
||||||
/// </summary>
|
|
||||||
public uint TextReceived { get; set; }
|
|
||||||
/// <summary>
|
|
||||||
/// Sends data to the port
|
|
||||||
/// </summary>
|
|
||||||
public uint SendText { get; set; }
|
|
||||||
/// <summary>
|
|
||||||
/// Takes a JSON serialized string that sets a COM port's parameters
|
|
||||||
/// </summary>
|
|
||||||
public uint SetPortConfig { get; set; }
|
|
||||||
#endregion
|
|
||||||
|
|
||||||
public IBasicCommunicationJoinMap()
|
[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))
|
||||||
{
|
{
|
||||||
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;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -60,13 +60,12 @@ 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)
|
||||||
{
|
{
|
||||||
|
|||||||
Reference in New Issue
Block a user