Exemple #1
0
        public override byte[] toRaw()
        {
            try
            {
                if (this.Cmd == WRITE_CMD)
                {
                    packet = new byte[SRC_ADD_COUNTER + DEST_ADD_COUNTER + CMD_COUNTER + ADD_VAR_COUNTER + MESSAGE_TEXT_COUNTER];
                }
                else
                {
                    packet = new byte[SRC_ADD_COUNTER + DEST_ADD_COUNTER + CMD_COUNTER + ADD_VAR_COUNTER];
                }


                cIndex = SRC_ADD_COUNTER + DEST_ADD_COUNTER;

                packet[cIndex] = this.Cmd;
                cIndex        += CMD_COUNTER;

                add_var = PacketUtility.IntToTwoBytes(getSMSTextAV(this.SimNumber));
                Array.Copy(add_var, 0, packet, cIndex, ADD_VAR_COUNTER);
                cIndex += ADD_VAR_COUNTER;

                if (this.Cmd == AbstractPacket.WRITE_CMD)
                {
                    byte[] temp = Encoding.BigEndianUnicode.GetBytes(this.Message);

                    if (temp.Length > MESSAGE_TEXT_COUNTER)
                    {
                        throw new IndexOutOfRangeException();
                    }

                    byte[] message_bytes = new byte[MESSAGE_TEXT_COUNTER];
                    Array.Copy(temp, 0, message_bytes, 0, temp.Length);

                    Array.Copy(message_bytes, 0, packet, cIndex, MESSAGE_TEXT_COUNTER);
                    cIndex += MESSAGE_TEXT_COUNTER;
                }

                return(base.toRaw());
            }
            catch (Exception e) {
                throw;
            }
        }
Exemple #2
0
        public override byte[] toRaw()
        {
            packet = new byte[SRC_ADD_COUNTER + DEST_ADD_COUNTER + CMD_COUNTER + ADD_VAR_COUNTER];

            cIndex = SRC_ADD_COUNTER + DEST_ADD_COUNTER;

            packet[cIndex] = AbstractPacket.READ_CMD;
            cIndex        += CMD_COUNTER;

            add_var = PacketUtility.IntToTwoBytes(getInboxAVBound(this.SimNumber)[0] + this.Index);
            Array.Copy(add_var, 0, packet, cIndex, ADD_VAR_COUNTER);
            cIndex += ADD_VAR_COUNTER;


            addCRC();


            return(packet);
        }
        public override byte[] toRaw()
        {
            if (this.Cmd == WRITE_CMD)
            {
                packet = new byte[SRC_ADD_COUNTER + DEST_ADD_COUNTER + CMD_COUNTER + ADD_VAR_COUNTER + NUMBER_COUNTER + ID_COUNTER + STATUS_COUNTER];
            }
            else
            {
                packet = new byte[SRC_ADD_COUNTER + DEST_ADD_COUNTER + CMD_COUNTER + ADD_VAR_COUNTER];
            }

            cIndex = SRC_ADD_COUNTER + DEST_ADD_COUNTER;


            packet[cIndex] = this.Cmd;
            cIndex        += CMD_COUNTER;


            add_var = PacketUtility.IntToTwoBytes(getRegistrationAVBound(this.SimNumber)[0] + Index);
            Array.Copy(add_var, 0, packet, cIndex, ADD_VAR_COUNTER);
            cIndex += ADD_VAR_COUNTER;



            if (this.Cmd == WRITE_CMD)
            {
                number = number.Substring(2);
                int    num        = Convert.ToInt32(number);
                byte[] arr_number = PacketUtility.IntToByteArray(num);
                Array.Copy(arr_number, 0, packet, cIndex, NUMBER_COUNTER);
                cIndex += NUMBER_COUNTER;

                byte[] arr_id = { 0x00 };
                Array.Copy(arr_id, 0, packet, cIndex, ID_COUNTER);
                cIndex += ID_COUNTER;

                byte[] arr_status = { 0x00 };
                Array.Copy(arr_status, 0, packet, cIndex, STATUS_COUNTER);
                cIndex += STATUS_COUNTER;
            }

            return(base.toRaw());
        }
Exemple #4
0
        public override byte[] toRaw()
        {
            if (this.Cmd == WRITE_CMD)
            {
                packet = new byte[SRC_ADD_COUNTER + DEST_ADD_COUNTER + CMD_COUNTER + ADD_VAR_COUNTER + START_COUNTER + FINISH_COUNTER + Unused_COUNTER + WORKING_INDEX_COUNTER + RES_COUNTER];
            }
            else
            {
                packet = new byte[SRC_ADD_COUNTER + DEST_ADD_COUNTER + CMD_COUNTER + ADD_VAR_COUNTER];
            }

            cIndex = SRC_ADD_COUNTER + DEST_ADD_COUNTER;

            packet[cIndex] = this.Cmd;
            cIndex        += CMD_COUNTER;

            add_var = PacketUtility.IntToTwoBytes(getActivationAV(this.SimNumber));
            Array.Copy(add_var, 0, packet, cIndex, ADD_VAR_COUNTER);
            cIndex += ADD_VAR_COUNTER;

            if (this.Cmd == AbstractPacket.WRITE_CMD)
            {
                packet[cIndex] = (byte)Start;
                cIndex        += START_COUNTER;

                packet[cIndex] = (byte)Finish;
                cIndex        += FINISH_COUNTER;

                cIndex += Unused_COUNTER;     // third byte in data is already unused, 4th byte is related to working index

                packet[cIndex] = (byte)Start; // Working index should be equal to start value
                cIndex        += WORKING_INDEX_COUNTER;

                byte[] res = { 0x00, 0x00, 0x00, 0x00 };
                Array.Copy(res, 0, packet, cIndex, RES_COUNTER);
                cIndex += RES_COUNTER;
            }
            return(base.toRaw());
        }
Exemple #5
0
        public override byte[] toRaw()
        {
            if (this.Cmd == WRITE_CMD)
            {
                packet = new byte[SRC_ADD_COUNTER + DEST_ADD_COUNTER + CMD_COUNTER + ADD_VAR_COUNTER + STATUS_COUNTER];
            }
            else // e.g read and ...
            {
                packet = new byte[SRC_ADD_COUNTER + DEST_ADD_COUNTER + CMD_COUNTER + ADD_VAR_COUNTER]; // TODO : should be investigated later
            }
            cIndex = SRC_ADD_COUNTER + DEST_ADD_COUNTER;

            packet[cIndex] = this.Cmd;
            cIndex        += CMD_COUNTER;

            add_var = PacketUtility.IntToTwoBytes(getSendAV(this.SimNumber));
            Array.Copy(add_var, 0, packet, cIndex, ADD_VAR_COUNTER);
            cIndex += ADD_VAR_COUNTER;

            packet[cIndex] = (byte)Status;
            cIndex        += STATUS_COUNTER;

            return(base.toRaw());
        }
Exemple #6
0
        public override byte[] toRaw()
        {
            if (ussdType == USSDType.Write)
            {
                packet = new byte[SRC_ADD_COUNTER + DEST_ADD_COUNTER + CMD_COUNTER + ADD_VAR_COUNTER + MESSAGE_COUNTER + RES_COUNTER];
            }
            else if (ussdType == USSDType.Execute)
            {
                packet = new byte[SRC_ADD_COUNTER + DEST_ADD_COUNTER + CMD_COUNTER + ADD_VAR_COUNTER + RES_COUNTER];
            }
            else if (ussdType == USSDType.Read)
            {
                packet = new byte[SRC_ADD_COUNTER + DEST_ADD_COUNTER + CMD_COUNTER + ADD_VAR_COUNTER];
            }


            cIndex = SRC_ADD_COUNTER + DEST_ADD_COUNTER;

            if (ussdType == USSDType.Write)
            {
                this.Cmd = AbstractPacket.WRITE_CMD;
            }
            else if (ussdType == USSDType.Execute)
            {
                this.Cmd = AbstractPacket.EXECUTE_CMD;
            }
            else if (ussdType == USSDType.Read)
            {
                this.Cmd = AbstractPacket.READ_CMD;
            }

            packet[cIndex] = this.Cmd;
            cIndex        += CMD_COUNTER;

            switch (this.ussdType)
            {
            case USSDType.Write:
                add_var = PacketUtility.IntToTwoBytes(getUSSDWriteAV(this.SimNumber));
                break;

            case USSDType.Read:
                add_var = PacketUtility.IntToTwoBytes(getUSSDReadAV(this.SimNumber));
                break;

            case USSDType.Execute:
                add_var = PacketUtility.IntToTwoBytes(getUSSDExecuteAV(this.SimNumber));
                break;
            }

            Array.Copy(add_var, 0, packet, cIndex, ADD_VAR_COUNTER);
            cIndex += ADD_VAR_COUNTER;

            if (this.ussdType == USSDType.Write)
            {
                byte[] temp = Encoding.UTF8.GetBytes(this.RequestAnswer);

                byte[] code_bytes = new byte[300];
                Array.Copy(temp, 0, code_bytes, 0, temp.Length);


                Array.Copy(code_bytes, 0, packet, cIndex, MESSAGE_COUNTER);
                cIndex += MESSAGE_COUNTER;
            }


            return(base.toRaw());
        }