using System.Collections.Generic; using PLC.Siemens.Protocol.Common; using PLC.Siemens.Protocol.Negotiate; using PLC.Siemens.O; namespace PLC.Siemens.ProtocolHandle { public class NegotiateHandle : IPacketHandle { public ushort PduRequest { get; set; } public IList Requests { get; set; } public IList Responses { get; set; } public ResultCode ResultCode { get; set; } public NegotiateHandle() { ResultCode = ResultCode.Unknown; PduRequest = 480; Requests = new List(); Responses = new List(); } public void Handle(IIsoSender sender) { var negotiateRequest = new NegotiateRequest(); negotiateRequest.PduRequestLength = PduRequest; Requests.Add(negotiateRequest); var response = sender.IsoSend(negotiateRequest); if (response == null) { ResultCode = ResultCode.PduConfirmFault; return; } ResultCode = response.Header.Error; if(ResultCode==ResultCode.OK) Responses.Add(response); } } }