123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107 |
- using System;
- using System.Diagnostics;
- using System.Linq;
- using System.Net;
- using Aitex.Core.RT.Event;
- using Aitex.Core.RT.Log;
- using athosRT.tool;
- using MECF.Framework.Common.Communications;
- using EV = Aitex.Core.RT.Event.EV;
- using TCPPortConnectionBase = athosRT.tool.Comm.TCPPortConnectionBase;
- namespace athosRT.Modules.Robot
- {
- public class RorzeRobot751Connection : TCPPortConnectionBase
- {
- private RorzeRobot751 _robot;
- private string _address;
- public RorzeRobot751Connection(RorzeRobot751 robot, string ipaddress)
- : base(ipaddress)
- {
- _address = ipaddress;
- _robot = robot;
- }
- protected override MessageBase ParseResponse(string rawMessage)
- {
- LogObject.Info("Robot", $"Communication {_address} Receive {rawMessage.Replace("\r", "")}");
- RorzeRobot751Message rorzeRobot751Message = new RorzeRobot751Message();
- try
- {
- rorzeRobot751Message.RawMessage = rawMessage.Replace("\r", "");
- rorzeRobot751Message.IsAck = false;
- rorzeRobot751Message.IsComplete = false;
- rorzeRobot751Message.IsFormatError = false;
- rorzeRobot751Message.IsEvent = false;
- switch (rawMessage[0])
- {
- case 'a':
- rorzeRobot751Message.IsAck = true;
- rorzeRobot751Message.IsComplete = false;
- rorzeRobot751Message.Data = rawMessage.Split(';').LastOrDefault().Split('/');
- break;
- case 'n':
- rorzeRobot751Message.IsNak = true;
- rorzeRobot751Message.IsComplete = false;
- break;
- case 'c':
- rorzeRobot751Message.IsError = true;
- rorzeRobot751Message.IsComplete = false;
- break;
- case 'e':
- rorzeRobot751Message.IsEvent = true;
- rorzeRobot751Message.IsComplete = false;
- _robot.OnEventReceived(rawMessage);
- break;
- }
- return rorzeRobot751Message;
- }
- catch (Exception ex)
- {
- LOG.Write(ex, 2, "D:\\sorter\\trunk\\Efem\\Jet\\Jet_001_2P_Jet\\EfemRT\\Devices\\Rorze751\\RorzeRobot751Connection.cs", "ParseResponse", 76);
- rorzeRobot751Message.IsFormatError = true;
- return rorzeRobot751Message;
- }
- }
- protected override void OnEventArrived(MessageBase msg)
- {
- RorzeRobot751Message rorzeRobot751Message = msg as RorzeRobot751Message;
- if (rorzeRobot751Message.EvNo == "100")
- {
- string text = rorzeRobot751Message.EvData.Substring(1, rorzeRobot751Message.EvData.Length - 1);
- _robot.NotifyAlarmByErrorCode(text.ToUpper());
- if (Convert.ToInt32(text, 16) > 240)
- {
- _robot.OnError("Robot occurred error:" + rorzeRobot751Message.EvData + " on " + rorzeRobot751Message.EvDate + ".");
- }
- else
- {
- EV.PostWarningLog("Robot", "Robot occurred error:" + rorzeRobot751Message.EvData + " on " + rorzeRobot751Message.EvDate + ".");
- }
- }
- if (!(rorzeRobot751Message.EvNo == "140"))
- {
- }
- }
- protected override void ActiveHandlerProceedMessage(MessageBase msg)
- {
- //Trace.WriteLine("ActiveHandlerProceedMessage override");
- lock (_lockerActiveHandler)
- {
- //if (_activeHandler != null && (msg.IsFormatError || (_activeHandler.HandleMessage(msg, out var transactionComplete) && transactionComplete)))
- if (_activeHandler != null && (_activeHandler.HandleMessage(msg, out var transactionComplete) && transactionComplete))
- {
- _activeHandler = null;
- }
- }
- }
- }
- }
|