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());
        }