55 lines
1.5 KiB
C#
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;
|
|||
|
}
|
|||
|
|
|||
|
}
|
|||
|
}
|