12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455 |
- 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;
- }
- }
- }
|