wifi_txop.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_txop.cpp
  15.  *
  16.  * Project:
  17.  * --------
  18.  *   Maui META APP
  19.  *
  20.  * Description:
  21.  * ------------
  22.  *   WiFi TX output power 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_TXOP_H_
  44. #include "wifi_txop.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 CWIFITXOP*  gs_wifi_txop_ptr;
  54. //===========================================================================
  55. //---------------------------------------------------------------------------
  56. //------------------------------------------------------------------------------
  57. static void  REQ_TimeOut( void )
  58. {   gs_wifi_txop_ptr->REQ_TimeOut();
  59. }
  60. //------------------------------------------------------------------------------
  61. static void  REQ_Finish( void )
  62. {   gs_wifi_txop_ptr->REQ_Finish();
  63. }
  64. //------------------------------------------------------------------------------
  65. static void  REQ_SetRegDomain( void )
  66. {   gs_wifi_txop_ptr->REQ_SetRegDomain();
  67. }
  68. //------------------------------------------------------------------------------
  69. //static void  REQ_SetChannel( void )
  70. //{   gs_wifi_txop_ptr->REQ_SetChannel();
  71. //}
  72. //------------------------------------------------------------------------------
  73. static void  REQ_SetOutputPower( void )
  74. {   gs_wifi_txop_ptr->REQ_SetOutputPower();
  75. }
  76. //===========================================================================
  77. CWIFITXOP::CWIFITXOP( void )
  78. {
  79.    m_bIsRunning = false;
  80.    ConfirmCallback = 0;
  81.   // m_pcTxPowerBuf = 0;
  82.   // m_iTxPowerBufSize = 0;
  83. }
  84. //---------------------------------------------------------------------------
  85. CWIFITXOP::~CWIFITXOP( )
  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  CWIFITXOP::REQ_Finish( void )
  97. {
  98.    if( ! m_bIsRunning )  return;
  99.    Confirm( STATE_TXOP_OK );
  100.    m_bIsRunning = false;
  101. }
  102. //---------------------------------------------------------------------------
  103. void  CWIFITXOP::REQ_Stop( void )
  104. {
  105.     if( ! m_bIsRunning )  return;
  106.     Confirm( STATE_TXOP_STOP );
  107.     m_bIsRunning = false;
  108. }
  109. //---------------------------------------------------------------------------
  110. void  CWIFITXOP::REQ_TimeOut( void )
  111. {
  112.     if( ! m_bIsRunning )  return;
  113.     Confirm( STATE_TXOP_TIMEOUT );
  114.     m_bIsRunning = false;
  115. }
  116. //---------------------------------------------------------------------------
  117. void  CWIFITXOP::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  CWIFITXOP::REQ_Start( S_WIFITXOP wifitxop )
  126. {
  127.     gs_wifi_txop_ptr  = this;
  128.     m_bIsRunning      = true;
  129.     m_sWiFiTXOP       = wifitxop;
  130.     m_sTx.ch_freq     = wifitxop.channel_freq;
  131.     m_sTx.tx_rate     = wifitxop.tx_rate;
  132.     m_sTx.tx_gain_dac = wifitxop.tx_pwr_dac;
  133.     ActiveMan->SetActiveFunction( ::REQ_SetRegDomain );
  134. }
  135. //---------------------------------------------------------------------------
  136. void CWIFITXOP::REQ_SetRegDomain( void )
  137. {
  138.     META_RESULT MetaResult = META_WiFi_SetRegDomain_r( m_META_HANDLE_Obj.Get_MainHandle(), 500, &m_sWiFiTXOP.reg_domain );
  139.     if(MetaResult!=META_SUCCESS)
  140.     {
  141.         if( MetaResult!=META_TIMEOUT )
  142.         {   Confirm( STATE_TXOP_FAIL );  return;  }
  143.         else
  144.         {   Confirm( STATE_TXOP_TIMEOUT );  return;  }
  145.     }
  146.     ActiveMan->SetActiveFunction( ::REQ_SetOutputPower );
  147. }
  148. #if 0
  149. //---------------------------------------------------------------------------
  150. void CWIFITXOP::REQ_SetChannel( void )
  151. {
  152.     META_RESULT MetaResult = META_WiFi_SetChannel_r( m_META_HANDLE_Obj.Get_MainHandle(), 500, m_iChannelFreq);
  153.     if(MetaResult!=META_SUCCESS)
  154.     {
  155.         if( MetaResult!=META_TIMEOUT )
  156.         {   Confirm( STATE_MULTI_SLOT_TX_FAIL );  return;  }
  157.         else
  158.         {   Confirm( STATE_MULTI_SLOT_TX_TIMEOUT );  return;  }
  159.     }
  160.     ActiveMan->SetActiveFunction( ::REQ_SetOutputPower );
  161. }
  162. #endif
  163. //---------------------------------------------------------------------------
  164. void CWIFITXOP::REQ_SetOutputPower( void )
  165. {
  166.     META_RESULT MetaResult = META_WiFi_ContTx_r( m_META_HANDLE_Obj.Get_MainHandle(),  500, &m_sTx );
  167.     if(MetaResult!=META_SUCCESS)
  168.     {
  169.         if( MetaResult!=META_TIMEOUT )
  170.         {   Confirm( STATE_TXOP_FAIL );  return;  }
  171.         else
  172.         {   Confirm( STATE_TXOP_TIMEOUT );  return;  }
  173.     }
  174.     //if( IPN2128 == m_iWiFiID )
  175.     //{
  176.     //    META_RESULT MetaResult = META_WiFi_SetOutputPower500_r( 500, 1 );
  177.     //    if(MetaResult!=META_SUCCESS)
  178.     //    {
  179.     //        if( MetaResult!=META_TIMEOUT )
  180.     //        {   Confirm( STATE_MULTI_SLOT_TX_FAIL );  return;  }
  181.     //        else
  182.     //        {   Confirm( STATE_MULTI_SLOT_TX_TIMEOUT );  return;  }
  183.     //    }
  184.     //}
  185.     ActiveMan->SetActiveFunction( ::REQ_Finish );
  186. }
  187. //===========================================================================
  188. ////////////////////////////          Query          ////////////////////////
  189. //===========================================================================
  190. //===========================================================================
  191. ////////////////////////////   Global  information   ////////////////////////
  192. //===========================================================================
  193. //---------------------------------------------------------------------------
  194. int   CWIFITXOP::Get_ConfirmState( void )
  195. {
  196.     return  m_iConfirmState;
  197. }