示例#1
0
        public byte[] GetBytes(LogoutReason reason)
        {
            BasicHeaderSegment _basicHeader = new BasicHeaderSegment();
            _basicHeader.Immediate = true;
            _basicHeader.OpCode = OpCode.LogoutRequest;
            _basicHeader.FinalPdu = true;
            _basicHeader.TotalAhsLength = 0;
            _basicHeader.DataSegmentLength = 0;
            _basicHeader.InitiatorTaskTag = _connection.Session.CurrentTaskTag;

            byte[] buffer = new byte[Utilities.RoundUp(48, 4)];
            _basicHeader.WriteTo(buffer, 0);
            buffer[1] |= (byte)((byte)reason & 0x7F);
            Utilities.WriteBytesBigEndian(_connection.Id, buffer, 20);
            Utilities.WriteBytesBigEndian(_connection.Session.CommandSequenceNumber, buffer, 24);
            Utilities.WriteBytesBigEndian(_connection.ExpectedStatusSequenceNumber, buffer, 28);
            return buffer;
        }
        public byte[] GetBytes(LogoutReason reason)
        {
            BasicHeaderSegment _basicHeader = new BasicHeaderSegment();

            _basicHeader.Immediate         = true;
            _basicHeader.OpCode            = OpCode.LogoutRequest;
            _basicHeader.FinalPdu          = true;
            _basicHeader.TotalAhsLength    = 0;
            _basicHeader.DataSegmentLength = 0;
            _basicHeader.InitiatorTaskTag  = _connection.Session.CurrentTaskTag;

            byte[] buffer = new byte[Utilities.RoundUp(48, 4)];
            _basicHeader.WriteTo(buffer, 0);
            buffer[1] |= (byte)((byte)reason & 0x7F);
            Utilities.WriteBytesBigEndian(_connection.Id, buffer, 20);
            Utilities.WriteBytesBigEndian(_connection.Session.CommandSequenceNumber, buffer, 24);
            Utilities.WriteBytesBigEndian(_connection.ExpectedStatusSequenceNumber, buffer, 28);
            return(buffer);
        }