using PlcSiemens.O; using PlcSiemens.Protocol.Common; using PlcSiemens.Protocol.Negotiate; namespace PlcSiemens.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); } } }