public override ResponsePdu CreateDefaultResponce() { PduHeader header = new PduHeader(CommandType.UnBindResp, VHeader.SequenceNumber); UnbindResp resp = (UnbindResp)CreatePdu(header); return(resp); }
public override ResponsePdu CreateDefaultResponce() { PduHeader header = new PduHeader(CommandType.EnquireLinkResp, VHeader.SequenceNumber); //use default Status and Length //header.CommandStatus = 0; //header.CommandLength = 16; EnquireLinkResp resp = (EnquireLinkResp)CreatePdu(header); return(resp); }
public void PduHeaderTest() { PduHeader tag = new PduHeader(new TlvTagBuilder(Constants.PduHeader.TagType, false, false, new ITlvTag[] { new StringTag(Constants.PduHeader.LoginIdTagType, false, false, "TestLoginId"), new IntegerTag(Constants.PduHeader.InstanceIdTagType, false, false, 1), new IntegerTag(Constants.PduHeader.MessageIdTagType, false, false, 2) }).BuildTag()); Assert.AreEqual("TestLoginId", tag.LoginId, "Unexpected login id"); Assert.AreEqual(1, tag.InstanceId, "Unexpected instance id"); Assert.AreEqual(2, tag.MessageId, "Unexpected publication time"); }
private void RaisePduErrorEvent(PduException exception, byte[] byteDump, PduHeader header, Pdu pdu) { if (PduError == null) { return; } PduErrorEventArgs e = new PduErrorEventArgs(exception, byteDump, header, pdu); foreach (EventHandler <PduErrorEventArgs> del in PduError.GetInvocationList()) { del.BeginInvoke(this, e, AsyncCallBackRaisePduErrorEvent, del); } }
public void ToStringTest() { PduHeader tag = new PduHeader(new TlvTagBuilder(Constants.PduHeader.TagType, false, false, new ITlvTag[] { new StringTag(Constants.PduHeader.LoginIdTagType, false, false, "TestLoginId"), new IntegerTag(Constants.PduHeader.InstanceIdTagType, false, false, 1), new IntegerTag(Constants.PduHeader.MessageIdTagType, false, false, 2) }).BuildTag()); PduHeader tag2 = new PduHeader(new RawTag(tag.Type, tag.NonCritical, tag.Forward, tag.EncodeValue())); Assert.AreEqual(tag.ToString(), tag2.ToString()); tag = new PduHeader("TestLoginId", 1, 2); Assert.AreEqual(tag.ToString(), tag2.ToString()); }
/// <summary> /// Creates the specified root layer. /// </summary> /// <param name="rootLayer">The root layer.</param> /// <param name="reader">The reader.</param> /// <returns></returns> public AcnPacket Create(AcnRootLayer rootLayer, AcnBinaryReader reader) { long startPosition = reader.BaseStream.Position; PduHeader pduHeader = new PduHeader(); pduHeader.ReadPdu(reader); IPacketBuilder builder; if (TryGetBuilder(new PacketKey(pduHeader.Vector), out builder)) { reader.BaseStream.Seek(startPosition, System.IO.SeekOrigin.Begin); return(builder.Create(rootLayer, reader)); } return(null); }
private Pdu WaitPdu() { PduHeader header = null; Pdu pdu = null; byte[] bodyBytes = null; byte[] headerBytes = null; //-- try { headerBytes = ReadHeaderBytes(); } catch (TcpIpException tcpIpEx1) { if (_vTraceSwitch.TraceInfo) { Trace.WriteLine(string.Format( "200010:TCP/IP Exception encountered while reading pdu header bytes:{0};", tcpIpEx1.Message)); } HandleException(tcpIpEx1); throw; } //-- header = PduHeader.Parse(new ByteBuffer(headerBytes)); try { pdu = Pdu.CreatePdu(header); } catch (InvalidPduCommandException invEx) { ByteBuffer iBuffer = new ByteBuffer((int)header.CommandLength); iBuffer.Append(header.GetBytes()); if (header.CommandLength > 16) { try { iBuffer.Append(ReadBodyBytes((int)header.CommandLength - 16)); } catch (TcpIpException tcpIpEx3) { HandleException(tcpIpEx3); } } if (_vTraceSwitch.TraceWarning) { Trace.WriteLine(string.Format( "200011:Invalid PDU command type:{0};", iBuffer.DumpString())); } RaisePduErrorEvent(invEx, iBuffer.ToBytes(), header, null); throw; } //-- try { bodyBytes = ReadBodyBytes((int)header.CommandLength - 16); } catch (TcpIpException tpcIpEx2) { if (_vTraceSwitch.TraceInfo) { Trace.WriteLine(string.Format( "200012:TCP/IP Exception encountered while reading pdu body bytes:{0};", tpcIpEx2.Message)); } HandleException(tpcIpEx2); throw; } //-- try { pdu.SetBodyData(new ByteBuffer(bodyBytes)); } catch (PduException pduEx) { ByteBuffer pBuffer = new ByteBuffer((int)header.CommandLength); pBuffer.Append(headerBytes); pBuffer.Append(bodyBytes); RaisePduErrorEvent(pduEx, pBuffer.ToBytes(), header, pdu); if (_vTraceSwitch.TraceWarning) { Trace.WriteLine(string.Format( "200013:Malformed PDU body received:{0} {1};", pBuffer.DumpString(), pduEx.Message)); } throw; } return(pdu); }
internal RequestPdu(PduHeader header) : base(header) { }
internal BindTransceiver(PduHeader header) : base(header) { }
internal BindTransmitter(PduHeader header) : base(header) { }
public PduErrorEventArgs(PduException exception, byte[] byteDump, PduHeader header) { _vException = exception; _vByteDump = byteDump; _vHeader = header; }
public PduErrorEventArgs(PduException exception, byte[] byteDump, PduHeader header, Pdu pdu) : this(exception, byteDump, header) { _vPdu = pdu; }
internal SmPdu(PduHeader header) : base(header) { VSourceAddress = new SmppAddress(); }
internal BindReceiver(PduHeader header) : base(header) { }
internal SingleDestinationPdu(PduHeader header) : base(header) { VDestinationAddress = new SmppAddress(); }
internal ReplaceSmResp(PduHeader header) : base(header) { }
internal UnbindResp(PduHeader header) : base(header) { }
internal CancelSmResp(PduHeader header) : base(header) { }
internal GenericRequestPdu(PduHeader header) : base(header) { }
internal SmOperationPdu(PduHeader header) : base(header) { VMessageId = ""; }
internal GenericResponsePdu(PduHeader header) : base(header) { }
public BindTransmitterResp(PduHeader header) : base(header) { }
internal ResponsePdu(PduHeader header) : base(header) { }
internal GenericNack(PduHeader header) : base(header) { }
internal EnquireLink(PduHeader header) : base(header) { }