Sic07/FrameworkLocal/RTEquipmentLibrary/HardwareUnits/ThrottleValves/KITZ/KITZTConnection.cs

55 lines
1.5 KiB
C#

using Aitex.Core.RT.Log;
using MECF.Framework.Common.Communications;
using System;
using System.Collections.Generic;
using System.IO.Ports;
using System.Linq;
using System.Text;
using System.Text.RegularExpressions;
using System.Threading.Tasks;
namespace MECF.Framework.RT.EquipmentLibrary.HardwareUnits.ThrottleValves.KITZ
{
public class KITZMessage : AsciiMessage
{
public string Command { get; set; }
public string Parameter { get; set; }
}
public class KITZConnection : SerialPortConnectionBase
{
public KITZConnection(string portName) : base(portName,115200, 8, Parity.None, StopBits.One, "\r")
{
}
protected override MessageBase ParseResponse(string rawText)
{
KITZMessage msg = new KITZMessage();
msg.IsResponse = false;
msg.IsAck = false;
msg.IsComplete = false;
msg.RawMessage = rawText.Replace("\r", "").Replace("\n", "");
if(string.IsNullOrEmpty(msg.RawMessage) || !msg.RawMessage.Contains(":"))
{
LOG.Error($"text length check failed, " + rawText);
msg.IsFormatError = true;
return msg;
}
string[] words = Regex.Split(msg.RawMessage, ":");
msg.Command = words[0];
if(words.Length > 1)
msg.Parameter = words[1];
msg.IsResponse = true;
msg.IsAck = true;
msg.IsComplete = true;
return msg;
}
}
}