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

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) 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.  *   rf_tx.cpp
  40.  *
  41.  * Project:
  42.  * --------
  43.  *   Maui META APP
  44.  *
  45.  * Description:
  46.  * ------------
  47.  *   RF TX source
  48.  *
  49.  * Author:
  50.  * -------
  51.  *  Andy Ueng (mtk00490)
  52.  *
  53.  *============================================================================
  54.  *             HISTORY
  55.  * Below this line, this part is controlled by PVCS VM. DO NOT MODIFY!!
  56.  *------------------------------------------------------------------------------
  57.  * $Revision$
  58.  * $Modtime$
  59.  * $Log$
  60.  * 
  61.  *------------------------------------------------------------------------------
  62.  * Upper this line, this part is controlled by PVCS VM. DO NOT MODIFY!!
  63.  *============================================================================
  64.  ****************************************************************************/
  65. //===========================================================================
  66. #include <IniFiles.hpp>
  67. #pragma hdrstop
  68. #ifndef  _RF_TX_H_
  69. #include "rf_tx.h"
  70. #endif
  71. #ifndef  _MAN_ACTIVE_H_
  72. #include "man_active.h"
  73. #endif
  74. //===========================================================================
  75. static CRFTX*  g_rf_tx_ptr;
  76. static bool g_bIsRunning = false;
  77. //===========================================================================
  78. static void  REQ_SelectBand(void)
  79. {
  80.     g_rf_tx_ptr->REQ_SelectBand();
  81. }
  82. //------------------------------------------------------------------------------
  83. static void __stdcall CNF_SelectBand(const unsigned char cnf, const short token, void *usrData)
  84. {
  85.     g_rf_tx_ptr->CNF_SelectBand(cnf, token, usrData);
  86. }
  87. //------------------------------------------------------------------------------
  88. static void REQ_NormalTX(void)
  89. {
  90.     g_rf_tx_ptr->REQ_NormalTX();
  91. }
  92. //------------------------------------------------------------------------------
  93. static void __stdcall CNF_NormalTX(const unsigned char cnf, const short token, void *usrData)
  94. {
  95.     g_rf_tx_ptr->CNF_NormalTX(cnf, token, usrData);
  96. }
  97. //===========================================================================
  98. CRFTX::CRFTX(void)
  99. {
  100.     g_bIsRunning = false;
  101.     ConfirmCallback = NULL;
  102. }
  103. //---------------------------------------------------------------------------
  104. CRFTX::~CRFTX()
  105. {
  106.     g_bIsRunning = false;
  107.     ConfirmCallback = NULL;
  108. }
  109. //---------------------------------------------------------------------------
  110. void CRFTX::REQ_Stop(void)
  111. {
  112.     if (!g_bIsRunning)
  113.     {
  114.         return;
  115.     }
  116.     META_Cancel_r(m_META_HANDLE_Obj.Get_MainHandle(), m_sRFID_TX);
  117.     Confirm(METAAPP_STOP);
  118. }
  119. //---------------------------------------------------------------------------
  120. void CRFTX::Confirm(E_METAAPP_RESULT_T confirm_state)
  121. {
  122.     if (!g_bIsRunning)
  123.     {
  124.         return;
  125.     }
  126.     if (confirm_state != METAAPP_SECTION_OK)
  127.     {
  128.         g_bIsRunning = false;
  129.     }
  130.     if ((confirm_state != METAAPP_SECTION_OK) &&
  131.         (confirm_state != METAAPP_SUCCESS)
  132.        )
  133.     {
  134.         META_Cancel_r(m_META_HANDLE_Obj.Get_MainHandle(), m_sRFID_TX);
  135.     }
  136.     if (NULL == ConfirmCallback)
  137.     {
  138.         return;
  139.     }
  140.     m_eConfirmState = confirm_state;
  141.     ActiveMan->SetActiveFunction(ConfirmCallback);
  142. }
  143. //===========================================================================
  144. void  CRFTX::REQ_Start(S_RFTX rf_tx)
  145. {
  146.     g_rf_tx_ptr = this;
  147.     g_bIsRunning = true;
  148.     m_sRfTx = rf_tx;
  149.     ActiveMan->SetActiveFunction(::REQ_SelectBand);
  150. }
  151. //---------------------------------------------------------------------------
  152. void CRFTX::REQ_SelectBand(void)
  153. {
  154.     if (!g_bIsRunning)
  155.     {
  156.         return;
  157.     }
  158.     unsigned char select_PCS1900;
  159.     if (BANDSEL_PCS1900 == m_sRfTx.e_bandsel)
  160.     {
  161.         select_PCS1900 = 1;
  162.     }
  163.     else
  164.     {
  165.         select_PCS1900 = 0;
  166.     }
  167.     META_RESULT MetaResult = META_Rf_SelectFrequencyBand1900_r(m_META_HANDLE_Obj.Get_MainHandle(), select_PCS1900, ::CNF_SelectBand, &m_sRFID_TX, NULL );
  168.     if (MetaResult != META_SUCCESS)
  169.     {
  170.         Confirm( METAAPP_FAIL );
  171.         return;
  172.     }
  173. }
  174. //-------------------------------------
  175. void __stdcall CRFTX::CNF_SelectBand( const unsigned char cnf, const short token, void *usrData)
  176. {
  177.     if (!g_bIsRunning)
  178.     {
  179.         return;
  180.     }
  181.     if (false == cnf)
  182.     {
  183.         Confirm(METAAPP_FAIL);
  184.         return;
  185.     }
  186.   // if((TrimI==-99)&&(TrimQ==-99))
  187.    {  ActiveMan->SetActiveFunction(::REQ_NormalTX);
  188.    }
  189.   // else
  190.   // {  ActiveMan->SetActiveFunction( ::REQ_BBTXCfg );
  191.   // }
  192. }
  193. //---------------------------------------------------------------------------
  194. void CRFTX::REQ_NormalTX(void)
  195. {
  196.     if (!g_bIsRunning)
  197.     {
  198.         return;
  199.     }
  200.     META_RESULT MetaResult = META_Rf_NB_TX_r(m_META_HANDLE_Obj.Get_MainHandle(), &m_sRfTx.s_RfNbTxReq, ::CNF_NormalTX, &m_sRFID_TX, NULL);
  201.     if (MetaResult != META_SUCCESS)
  202.     {
  203.         Confirm(METAAPP_FAIL);
  204.         return;
  205.     }
  206. }
  207. //-------------------------------------
  208. void __stdcall CRFTX::CNF_NormalTX(const unsigned char cnf, const short token, void *usrData)
  209. {
  210.     if (!g_bIsRunning)
  211.     {
  212.         return;
  213.     }
  214.     if (0 == cnf)
  215.     {
  216.         Confirm(METAAPP_FAIL);
  217.         return;
  218.     }
  219.     Confirm(METAAPP_SUCCESS);
  220. }
  221. //===========================================================================
  222. ////////////////////////////   Export  information   ////////////////////////
  223. //===========================================================================
  224. E_METAAPP_RESULT_T CRFTX::Get_ConfirmState(void)
  225. {
  226.     return  m_eConfirmState;
  227. }