DataAccountUtils.c
上传用户:lqx1163
上传日期:2014-08-13
资源大小:9183k
文件大小:7k
源码类别:

MTK

开发平台:

C/C++

  1. /*****************************************************************************
  2. *  Copyright Statement:
  3. *  --------------------
  4. *  This software is protected by Copyright and the information contained
  5. *  herein is confidential. The software may not be copied and the information
  6. *  contained herein may not be used or disclosed except with the written
  7. *  permission of MediaTek Inc. (C) 2005
  8. *
  9. *  BY OPENING THIS FILE, BUYER HEREBY UNEQUIVOCALLY ACKNOWLEDGES AND AGREES
  10. *  THAT THE SOFTWARE/FIRMWARE AND ITS DOCUMENTATIONS ("MEDIATEK SOFTWARE")
  11. *  RECEIVED FROM MEDIATEK AND/OR ITS REPRESENTATIVES ARE PROVIDED TO BUYER ON
  12. *  AN "AS-IS" BASIS ONLY. MEDIATEK EXPRESSLY DISCLAIMS ANY AND ALL WARRANTIES,
  13. *  EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED WARRANTIES OF
  14. *  MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE OR NONINFRINGEMENT.
  15. *  NEITHER DOES MEDIATEK PROVIDE ANY WARRANTY WHATSOEVER WITH RESPECT TO THE
  16. *  SOFTWARE OF ANY THIRD PARTY WHICH MAY BE USED BY, INCORPORATED IN, OR
  17. *  SUPPLIED WITH THE MEDIATEK SOFTWARE, AND BUYER AGREES TO LOOK ONLY TO SUCH
  18. *  THIRD PARTY FOR ANY WARRANTY CLAIM RELATING THERETO. MEDIATEK SHALL ALSO
  19. *  NOT BE RESPONSIBLE FOR ANY MEDIATEK SOFTWARE RELEASES MADE TO BUYER'S
  20. *  SPECIFICATION OR TO CONFORM TO A PARTICULAR STANDARD OR OPEN FORUM.
  21. *
  22. *  BUYER'S SOLE AND EXCLUSIVE REMEDY AND MEDIATEK'S ENTIRE AND CUMULATIVE
  23. *  LIABILITY WITH RESPECT TO THE MEDIATEK SOFTWARE RELEASED HEREUNDER WILL BE,
  24. *  AT MEDIATEK'S OPTION, TO REVISE OR REPLACE THE MEDIATEK SOFTWARE AT ISSUE,
  25. *  OR REFUND ANY SOFTWARE LICENSE FEES OR SERVICE CHARGE PAID BY BUYER TO
  26. *  MEDIATEK FOR SUCH MEDIATEK SOFTWARE AT ISSUE. 
  27. *
  28. *  THE TRANSACTION CONTEMPLATED HEREUNDER SHALL BE CONSTRUED IN ACCORDANCE
  29. *  WITH THE LAWS OF THE STATE OF CALIFORNIA, USA, EXCLUDING ITS CONFLICT OF
  30. *  LAWS PRINCIPLES.  ANY DISPUTES, CONTROVERSIES OR CLAIMS ARISING THEREOF AND
  31. *  RELATED THERETO SHALL BE SETTLED BY ARBITRATION IN SAN FRANCISCO, CA, UNDER
  32. *  THE RULES OF THE INTERNATIONAL CHAMBER OF COMMERCE (ICC).
  33. *
  34. *****************************************************************************/
  35. /*****************************************************************************
  36.  *
  37.  * Filename:
  38.  * ---------
  39.  * DataAccountUtils.c
  40.  *
  41.  * Project:
  42.  * --------
  43.  *   MAUI
  44.  *
  45.  * Description:
  46.  * ------------
  47.  *   Utility functions for Data Account.
  48.  *
  49.  * Author:
  50.  * -------
  51.  * -------
  52.  *
  53.  *============================================================================
  54.  *             HISTORY
  55.  * Below this line, this part is controlled by PVCS VM. DO NOT MODIFY!!
  56.  *------------------------------------------------------------------------------
  57.  * removed!
  58.  *
  59.  * removed!
  60.  * removed!
  61.  * removed!
  62.  *
  63.  * removed!
  64.  * removed!
  65.  * removed!
  66.  *
  67.  *------------------------------------------------------------------------------
  68.  * Upper this line, this part is controlled by PVCS VM. DO NOT MODIFY!!
  69.  *============================================================================
  70.  ****************************************************************************/
  71. #include "DataAccountCommon.h"
  72. #ifdef __MMI_WLAN_FEATURES__
  73. /*****************************************************************************
  74.  * FUNCTION
  75.  *  hex_to_string
  76.  * DESCRIPTION
  77.  *  
  78.  * PARAMETERS
  79.  *  dest        [?]         
  80.  *  src         [?]         
  81.  *  len         [IN]        
  82.  * RETURNS
  83.  *  
  84.  *****************************************************************************/
  85. BOOL hex_to_string(U8 *dest, U8 *src, U8 len)
  86. {
  87.     /*----------------------------------------------------------------*/
  88.     /* Local Variables                                                */
  89.     /*----------------------------------------------------------------*/
  90.     int i, j;
  91.     /*----------------------------------------------------------------*/
  92.     /* Code Body                                                      */
  93.     /*----------------------------------------------------------------*/
  94.     if (len % 2 != 0)
  95.     {
  96.         return FALSE;
  97.     }
  98.     memset(dest, 0, len / 2 + 1);
  99.     for (i = 0, j = 0; i < len; i++)
  100.     {
  101.         j = (i - i % 2) / 2;
  102.         if (src[i] >= '0' && src[i] <= '9')
  103.         {
  104.             dest[j] += (src[i] - '0') << 4 * ((i + 1) % 2);
  105.         }
  106.         else if (src[i] >= 'A' && src[i] <= 'F')
  107.         {
  108.             dest[j] += (src[i] - 'A' + 0x0A) << 4 * ((i + 1) % 2);
  109.         }
  110.         else if (src[i] >= 'a' && src[i] <= 'f')
  111.         {
  112.             dest[j] += (src[i] - 'a' + 0x0A) << 4 * ((i + 1) % 2);
  113.         }
  114.         else
  115.         {
  116.             return FALSE;
  117.         }
  118.     }
  119.     return TRUE;
  120. }
  121. /*****************************************************************************
  122.  * FUNCTION
  123.  *  is_valid_hexstring
  124.  * DESCRIPTION
  125.  *  
  126.  * PARAMETERS
  127.  *  src     [?]         
  128.  *  len     [IN]        
  129.  * RETURNS
  130.  *  
  131.  *****************************************************************************/
  132. BOOL is_valid_hexstring(U8 *src, U8 len)
  133. {
  134.     /*----------------------------------------------------------------*/
  135.     /* Local Variables                                                */
  136.     /*----------------------------------------------------------------*/
  137.     int i;
  138.     /*----------------------------------------------------------------*/
  139.     /* Code Body                                                      */
  140.     /*----------------------------------------------------------------*/
  141.     for (i = 0; i < len; i++)
  142.     {
  143.         if (src[i] >= '0' && src[i] <= '9')
  144.         {
  145.             continue;
  146.         }
  147.         else if (src[i] >= 'A' && src[i] <= 'F')
  148.         {
  149.             continue;
  150.         }
  151.         else if (src[i] >= 'a' && src[i] <= 'f')
  152.         {
  153.             continue;
  154.         }
  155.         else
  156.         {
  157.             return FALSE;
  158.         }
  159.     }
  160.     return TRUE;
  161. }
  162. /*****************************************************************************
  163.  * FUNCTION
  164.  *  state2str
  165.  * DESCRIPTION
  166.  *  
  167.  * PARAMETERS
  168.  *  src     [?]         
  169.  *  len     [IN]        
  170.  * RETURNS
  171.  *  
  172.  *****************************************************************************/
  173. const char* state2str(wlan_state_enum state)
  174. {
  175.     /*----------------------------------------------------------------*/
  176.     /* Local Variables                                                */
  177.     /*----------------------------------------------------------------*/
  178.     /*----------------------------------------------------------------*/
  179.     /* Code Body                                                      */
  180.     /*----------------------------------------------------------------*/
  181.     switch(state)
  182.     {
  183.     case WLAN_STATE_NULL:
  184.         return "NULL";
  185.     case WLAN_STATE_DEINIT_WAIT:
  186.         return "DEINIT_WAIT";
  187.     case WLAN_STATE_INIT_WAIT:
  188.         return "INIT_WAIT";
  189.     case WLAN_STATE_INIT:
  190.         return "INIT";
  191.     case WLAN_STATE_DISCONNECT_WAIT:
  192.         return "DISCONNECT_WAIT";
  193.     case WLAN_STATE_CONNECT_WAIT:
  194.         return "CONNECT_WAIT";
  195.     case WLAN_STATE_CONNECTED:
  196.         return "CONNECTED";
  197.     }
  198.     
  199.     ASSERT(0);
  200.     return NULL;
  201. }
  202. #endif /* __MMI_WLAN_FEATURES__ */