Esempio n. 1
0
        public int Encode(byte[] buffer, ConnectionSettings settings)
        {
            buffer[0] = 0x68;

            var length = 4;

            switch (apciType)
            {
            case ApciType.I_FORMAT:
                buffer[2] = (byte)(sendSeqNum << 1);
                buffer[3] = (byte)(sendSeqNum >> 7);
                buffer[4] = (byte)(receiveSeqNum << 1);
                buffer[5] = (byte)(receiveSeqNum >> 7);
                length   += aSdu.Encode(buffer, 6, settings);
                break;

            case ApciType.STARTDT_ACT:
                buffer[2] = 0x07;
                buffer[3] = 0x00;
                buffer[4] = 0x00;
                buffer[5] = 0x00;
                break;

            case ApciType.STARTDT_CON:
                buffer[2] = 0x0b;
                buffer[3] = 0x00;
                buffer[4] = 0x00;
                buffer[5] = 0x00;
                break;

            case ApciType.S_FORMAT:
                buffer[2] = 0x01;
                buffer[3] = 0x00;
                buffer[4] = (byte)(receiveSeqNum << 1);
                buffer[5] = (byte)(receiveSeqNum >> 7);
                break;
            }

            buffer[1] = (byte)length;

            return(length + 2);
        }
Esempio n. 2
0
        public int Encode(byte[] buffer, ConnectionSettings settings)
        {
            buffer[0] = 0x68;

            var length = 4;

            if (apciType == ApciType.FORMAT)
            {
                buffer[2] = (byte)(sendSeqNum << 1);
                buffer[3] = (byte)(sendSeqNum >> 7);
                buffer[4] = (byte)(receiveSeqNum << 1);
                buffer[5] = (byte)(receiveSeqNum >> 7);
                length   += aSdu.Encode(buffer, 6, settings);
            }
            else if (apciType == ApciType.STARTDT_ACT)
            {
                buffer[2] = 0x07;
                buffer[3] = 0x00;
                buffer[4] = 0x00;
                buffer[5] = 0x00;
            }
            else if (apciType == ApciType.STARTDT_CON)
            {
                buffer[2] = 0x0b;
                buffer[3] = 0x00;
                buffer[4] = 0x00;
                buffer[5] = 0x00;
            }
            else if (apciType == ApciType.S_FORMAT)
            {
                buffer[2] = 0x01;
                buffer[3] = 0x00;
                buffer[4] = (byte)(receiveSeqNum << 1);
                buffer[5] = (byte)(receiveSeqNum >> 7);
            }

            buffer[1] = (byte)length;

            return(length + 2);
        }