Esempio n. 1
0
        public override ResponsePdu CreateDefaultResponce()
        {
            PduHeader  header = new PduHeader(CommandType.UnBindResp, VHeader.SequenceNumber);
            UnbindResp resp   = (UnbindResp)CreatePdu(header);

            return(resp);
        }
Esempio n. 2
0
        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);
        }
Esempio n. 3
0
        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");
        }
Esempio n. 4
0
        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);
            }
        }
Esempio n. 5
0
        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());
        }
Esempio n. 6
0
        /// <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);
        }
Esempio n. 7
0
        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);
        }
Esempio n. 8
0
 internal RequestPdu(PduHeader header)
     : base(header)
 {
 }
Esempio n. 9
0
 internal BindTransceiver(PduHeader header)
     : base(header)
 {
 }
Esempio n. 10
0
 internal BindTransmitter(PduHeader header)
     : base(header)
 {
 }
Esempio n. 11
0
 public PduErrorEventArgs(PduException exception, byte[] byteDump, PduHeader header)
 {
     _vException = exception;
     _vByteDump  = byteDump;
     _vHeader    = header;
 }
Esempio n. 12
0
 public PduErrorEventArgs(PduException exception, byte[] byteDump, PduHeader header, Pdu pdu)
     : this(exception, byteDump, header)
 {
     _vPdu = pdu;
 }
Esempio n. 13
0
 internal SmPdu(PduHeader header)
     : base(header)
 {
     VSourceAddress = new SmppAddress();
 }
Esempio n. 14
0
 internal BindReceiver(PduHeader header)
     : base(header)
 {
 }
Esempio n. 15
0
 internal SingleDestinationPdu(PduHeader header)
     : base(header)
 {
     VDestinationAddress = new SmppAddress();
 }
Esempio n. 16
0
 internal ReplaceSmResp(PduHeader header)
     : base(header)
 {
 }
Esempio n. 17
0
 internal UnbindResp(PduHeader header)
     : base(header)
 {
 }
Esempio n. 18
0
 internal CancelSmResp(PduHeader header)
     : base(header)
 {
 }
Esempio n. 19
0
 internal GenericRequestPdu(PduHeader header)
     : base(header)
 {
 }
Esempio n. 20
0
 internal SmOperationPdu(PduHeader header)
     : base(header)
 {
     VMessageId = "";
 }
Esempio n. 21
0
 internal GenericResponsePdu(PduHeader header)
     : base(header)
 {
 }
Esempio n. 22
0
 public BindTransmitterResp(PduHeader header)
     : base(header)
 {
 }
Esempio n. 23
0
 internal ResponsePdu(PduHeader header)
     : base(header)
 {
 }
Esempio n. 24
0
 internal GenericNack(PduHeader header)
     : base(header)
 {
 }
Esempio n. 25
0
 internal EnquireLink(PduHeader header)
     : base(header)
 {
 }