wifi_cprx.cpp
上传用户:gelin96
上传日期:2017-01-08
资源大小:20993k
文件大小:7k
源码类别:

MTK

开发平台:

C++ Builder

  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) 2001
  8. *
  9. *****************************************************************************/
  10. /*****************************************************************************
  11.  *
  12.  * Filename:
  13.  * ---------
  14.  *   wifi_cprx.cpp
  15.  *
  16.  * Project:
  17.  * --------
  18.  *   Maui META APP
  19.  *
  20.  * Description:
  21.  * ------------
  22.  *   WiFi continuous packet RX source
  23.  *
  24.  * Author:
  25.  * -------
  26.  *  Andy Ueng (mtk00490)
  27.  *
  28.  *============================================================================
  29.  *             HISTORY
  30.  * Below this line, this part is controlled by PVCS VM. DO NOT MODIFY!!
  31.  *------------------------------------------------------------------------------
  32.  * $Revision$
  33.  * $Modtime$
  34.  * $Log$
  35.  *
  36.  *------------------------------------------------------------------------------
  37.  * Upper this line, this part is controlled by PVCS VM. DO NOT MODIFY!!
  38.  *============================================================================
  39.  ****************************************************************************/
  40. //===========================================================================
  41. #include <IniFiles.hpp>
  42. #pragma hdrstop
  43. #ifndef  _WIFI_CPRX_H_
  44. #include "wifi_cprx.h"
  45. #endif
  46. // man
  47. #ifndef  _MAN_ACTIVE_H_
  48. #include "man_active.h"
  49. #endif
  50. #ifndef  _MAN_FDM_H_
  51. #include "man_fdm.h"
  52. #endif
  53. static CWIFICPRX*  gs_wifi_cprx_ptr;
  54. //===========================================================================
  55. //---------------------------------------------------------------------------
  56. //------------------------------------------------------------------------------
  57. static void  REQ_TimeOut( void )
  58. {   gs_wifi_cprx_ptr->REQ_TimeOut();
  59. }
  60. //------------------------------------------------------------------------------
  61. static void  REQ_Finish( void )
  62. {   gs_wifi_cprx_ptr->REQ_Finish();
  63. }
  64. //------------------------------------------------------------------------------
  65. static void  REQ_SetContinuousRx( void )
  66. {   gs_wifi_cprx_ptr->REQ_SetContinuousRx();
  67. }
  68. //---------------------------------------------------------------------------
  69. static void REQ_QueryRxStatus( void )
  70. {   gs_wifi_cprx_ptr->REQ_QueryRxStatus();
  71. }
  72. //---------------------------------------------------------------------------
  73. static void REQ_QueryRxCounter( void )
  74. {   gs_wifi_cprx_ptr->REQ_QueryRxCounter();
  75. }
  76. //===========================================================================
  77. CWIFICPRX::CWIFICPRX( void )
  78. {
  79.    m_bIsRunning = false;
  80.    ConfirmCallback = 0;
  81.   // m_pcTxPowerBuf = 0;
  82.   // m_iTxPowerBufSize = 0;
  83. }
  84. //---------------------------------------------------------------------------
  85. CWIFICPRX::~CWIFICPRX( )
  86. {
  87.    m_bIsRunning = false;
  88.    ConfirmCallback = 0;
  89.   // if( m_pcTxPowerBuf )
  90.  //  {
  91.   //     delete [] m_pcTxPowerBuf;
  92.   //     m_pcTxPowerBuf = NULL;
  93.   // }
  94. }
  95. //---------------------------------------------------------------------------
  96. void  CWIFICPRX::REQ_Finish( void )
  97. {
  98.    if( ! m_bIsRunning )  return;
  99.    Confirm( STATE_CPRX_OK );
  100.    m_bIsRunning = false;
  101. }
  102. //---------------------------------------------------------------------------
  103. void  CWIFICPRX::REQ_Stop( void )
  104. {
  105.     if( ! m_bIsRunning )  return;
  106.     Confirm( STATE_CPRX_STOP );
  107.     m_bIsRunning = false;
  108. }
  109. //---------------------------------------------------------------------------
  110. void  CWIFICPRX::REQ_TimeOut( void )
  111. {
  112.     if( ! m_bIsRunning )  return;
  113.     Confirm( STATE_CPRX_TIMEOUT );
  114.     m_bIsRunning = false;
  115. }
  116. //---------------------------------------------------------------------------
  117. void  CWIFICPRX::Confirm( int confirm_state )
  118. {
  119.    if( ! m_bIsRunning )  return;
  120.    if(ConfirmCallback==0)  return;
  121.    m_iConfirmState = confirm_state;
  122.    ActiveMan->SetActiveFunction( ConfirmCallback );
  123. }
  124. //===========================================================================
  125. void  CWIFICPRX::REQ_Start( unsigned int channel_freq, WiFi_RxAntSel_E rx_ant )
  126. {
  127.     gs_wifi_cprx_ptr = this;
  128.     m_bIsRunning = true;
  129.     m_sPktRx.ch_freq = channel_freq;
  130.     m_sPktRx.mode    = WIFI_RF_RX_TEST_MODE;
  131.     m_sPktRx.rxAnt   = rx_ant;
  132.     ActiveMan->SetActiveFunction( ::REQ_SetContinuousRx );
  133. }
  134. //---------------------------------------------------------------------------
  135. void CWIFICPRX::REQ_SetContinuousRx( void )
  136. {
  137.     META_RESULT MetaResult = META_WiFi_ContPktRx_r( m_META_HANDLE_Obj.Get_MainHandle(), 900, &m_sPktRx );
  138.     if(MetaResult!=META_SUCCESS)
  139.     {
  140.         if( MetaResult!=META_TIMEOUT )
  141.         {   Confirm( STATE_CPRX_FAIL );  return;  }
  142.        // else
  143.        // {   Confirm( STATE_CPRX_TIMEOUT );  return;  }
  144.     }
  145.    // ActiveMan->SetActiveFunction( ::REQ_QueryRxStatus );
  146.     ActiveMan->SetActiveFunction( ::REQ_Finish );
  147. }
  148. //===========================================================================
  149. ////////////////////////////          Query          ////////////////////////
  150. //===========================================================================
  151. void CWIFICPRX::REQ_QueryRxStatus_Start( void )
  152. {
  153.     gs_wifi_cprx_ptr = this;
  154.     m_bIsRunning = true;
  155.     ActiveMan->SetActiveFunction( ::REQ_QueryRxStatus );
  156. }
  157. //---------------------------------------------------------------------------
  158. void CWIFICPRX::REQ_QueryRxStatus( void )
  159. {
  160.     META_RESULT MetaResult = META_WiFi_QueryRxStatus_r ( m_META_HANDLE_Obj.Get_MainHandle(), 900, &m_sRxStatus);
  161.                                                        
  162.     if(MetaResult!=META_SUCCESS)
  163.     {
  164.         if( MetaResult!=META_TIMEOUT )
  165.         {   Confirm( STATE_CPRX_FAIL );  return;  }
  166.         //else
  167.         //{   Confirm( STATE_CPRX_TIMEOUT );  return;  }
  168.     }
  169.     ActiveMan->SetActiveFunction( ::REQ_Finish );
  170. }
  171. //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  172. void CWIFICPRX::REQ_QueryRxCounter_Start( void )
  173. {
  174.     gs_wifi_cprx_ptr = this;
  175.     m_bIsRunning = true;
  176.     ActiveMan->SetActiveFunction( ::REQ_QueryRxCounter );
  177. }
  178. //---------------------------------------------------------------------------
  179. void CWIFICPRX::REQ_QueryRxCounter( void )
  180. {
  181.     META_RESULT MetaResult = META_WiFi_QueryRxCounter_r ( m_META_HANDLE_Obj.Get_MainHandle(), 900, &m_sRxCounter);
  182.     if(MetaResult!=META_SUCCESS)
  183.     {
  184.         if( MetaResult!=META_TIMEOUT )
  185.         {   Confirm( STATE_CPRX_FAIL );  return;  }
  186.         else
  187.         {   Confirm( STATE_CPRX_TIMEOUT );  return;  }
  188.     }
  189.     ActiveMan->SetActiveFunction( ::REQ_Finish );
  190. }
  191. //===========================================================================
  192. ////////////////////////////   Global  information   ////////////////////////
  193. //===========================================================================
  194. //---------------------------------------------------------------------------
  195. int   CWIFICPRX::Get_ConfirmState( void )
  196. {
  197.     return  m_iConfirmState;
  198. }
  199. //---------------------------------------------------------------------------
  200. WiFi_RxStatus_S CWIFICPRX::Get_RxStatus( void )
  201. {
  202.     return m_sRxStatus;
  203. }
  204. //---------------------------------------------------------------------------
  205. WiFi_RxCounter_S CWIFICPRX::Get_RxCounter( void )
  206. {
  207.     return m_sRxCounter;
  208. }