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

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.  *   T_WiFi_TxDcOffset.cpp
  15.  *
  16.  * Project:
  17.  * --------
  18.  *   Maui META APP
  19.  *
  20.  * Description:
  21.  * ------------
  22.  *  WiFi TX DC offset calibration 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. #include <assert.h>
  41. #include <math.h>
  42. #pragma hdrstop
  43. #ifndef _T_META_FACTORY_CALIBRATION_H_
  44. #include "T_META_factory_calibration.H"
  45. #endif
  46. #ifndef _CAL_COMMON_H_
  47. #include "cal_common.h"
  48. #endif
  49. // form
  50. #ifndef _META_FACTORY_H_
  51. #include "META_Factory.h"
  52. #endif
  53. #ifndef _FORM_MAIN_H_
  54. #include "form_Main.h"
  55. #endif
  56. // misc
  57. #ifndef  _TIME_UTILS_H_
  58. #include "time_utils.h"
  59. #endif
  60. #ifndef  _MISC_WIFI_H_
  61. #include "misc_wifi.h"
  62. #endif
  63. // WiFi
  64. #ifndef  _WIFI_TXDC_H_
  65. #include "wifi_txdc.h"
  66. #endif
  67. // callback
  68. #ifndef _META_FACTORY_NVRAM_CB_H_
  69. #include "meta_factory_nvram_cb.h"
  70. #endif
  71. #ifndef _MF_WIFI_RF_CB_H_
  72. #include "mf_wifi_rf_cb.h"
  73. #endif
  74. #ifndef _MF_WIFI_NVRAM_CB_H_
  75. #include "mf_wifi_nvram_cb.h"
  76. #endif
  77. //----------------------------------------------------------------------------
  78. extern bool  is_suspend_cal; // in T_META_factory_calibration.cpp
  79. //----------------------------------------------------------------------------
  80. bool __fastcall T_META_factory_calibration::WiFiTxDcOffsetCal( void )
  81. {
  82.      char tempbuf[256];
  83.     log->Add( DateToStr(Date()) +  " " + CurrentTimeStr() +
  84.              " ====================== WiFi TX DC offset calibration begin ===================== "
  85.            );
  86.     PostMessage(
  87.                      ctrl.hPostMsgDestHandle,
  88.                      WM_MF_WIFI_TX_DC_OFFSET_BEGIN,
  89.                      0,
  90.                      0
  91.                     );
  92.     m_pCal->s_cal_obj.pc_WIFI_TXDC_Obj->ConfirmCallback  = ::CNF_MF_TxDcOffsetCal;
  93.     m_pCal->s_cal_obj.pc_WIFI_TXDC_Obj->REQ_TxDcOffsetCal_Start();
  94.     RestartTimerCal( WM_MF_WIFI_TX_DC_OFFSET_FAIL );
  95.     is_suspend_cal = true;
  96.     this->Suspend();
  97.     is_suspend_cal = false;
  98.     E_METAAPP_RESULT_T state = m_pCal->s_cal_obj.pc_WIFI_TXDC_Obj->Get_ConfirmState();
  99.     if (state != METAAPP_SUCCESS)
  100.     {
  101.         CalErrorHandler( WM_MF_WIFI_TX_DC_OFFSET_FAIL );
  102.         log->Add( DateToStr(Date()) +  " " + CurrentTimeStr() +
  103.                           " FAIL: Target < WiFi TX DC offset fail."
  104.                         );
  105.         return false;
  106.     }
  107.     WiFi_DAC_DC_Offset_S  sTxDcOffset = m_pCal->s_cal_obj.pc_WIFI_TXDC_Obj->Get_TxDcOffset();
  108.     log->Add( DateToStr(Date()) +  " " + CurrentTimeStr() +
  109.                           " I Offset = " + IntToStr( sTxDcOffset.i_ch_offset ) +
  110.             ", Q Offset = " + IntToStr( sTxDcOffset.q_ch_offset)
  111.                         );
  112.     WriteWiFiTxDcOffsetCalResultToFile(as_ID+".cal",Application->ExeName, m_pCal->b_CalResultPath);
  113.     sprintf(tempbuf, "%8d", sTxDcOffset.i_ch_offset );
  114.     m_pCal->as_ResultBuf = m_pCal->as_ResultBuf + tempbuf + ", ";
  115.     sprintf(tempbuf, "%8d", sTxDcOffset.q_ch_offset );
  116.     m_pCal->as_ResultBuf = m_pCal->as_ResultBuf + tempbuf + ", ";
  117.     m_pCal->s_cal_obj.pc_WIFI_TXDC_Obj->ConfirmCallback = ::CNF_MF_WriteToNVRAM;
  118.     m_pCal->s_cal_obj.pc_WIFI_TXDC_Obj->REQ_Write_To_NVRAM_Start();
  119.     RestartTimerCal( WM_MF_WIFI_TX_DC_OFFSET_FAIL );
  120.     is_suspend_cal = true;
  121.     this->Suspend();
  122.     is_suspend_cal = false;
  123.     state = m_pCal->s_cal_obj.pc_WIFI_TXDC_Obj->Get_ConfirmState();
  124.     if (state != METAAPP_SUCCESS)
  125.     {
  126.         if (METAAPP_NVRAM_LID_VER_NOT_SUPPORT == state)
  127.         {
  128.             CalErrorHandler(WM_MF_NVRAM_EF_WNDRV_DAC_DC_OFFSET_LID_VERNO_FAIL);
  129.             log->Add(DateToStr(Date()) +  " " + CurrentTimeStr() +
  130.                                " FAIL : NVRAM_EF_WNDRV_DAC_DC_OFFSET_LID version is not support, please update META to latest version. "
  131.                                );
  132.         }
  133.         else
  134.         {
  135.            CalErrorHandler(WM_MF_NVRAM_WIFI_TX_DC_OFFSET_WRITE_FAIL);
  136.            log->Add( DateToStr(Date()) +  " " + CurrentTimeStr() +
  137.                                  " FAIL:  Target< Write WiFi TX DC offset to flash "
  138.                                 );
  139.         }
  140.         return false;
  141.     }
  142.     log->Add( DateToStr(Date()) +  " " + CurrentTimeStr() +
  143.                   " Target< Write WiFi TX DC offset to flash "
  144.                 );
  145.     PostMessage(
  146.                      ctrl.hPostMsgDestHandle,
  147.                      WM_MF_WIFI_TX_DC_OFFSET_CALIBRATION_DONE,
  148.                      0,
  149.                      0
  150.                     );
  151.     log->Add( "n" + DateToStr(Date()) + " "+ CurrentTimeStr() +
  152.                " WiFi TX power calibration done! n"
  153.             );
  154.     frmFatcory->DisableAllCalTimer();
  155.     log->Add( DateToStr(Date()) +  " " + CurrentTimeStr() +
  156.              " ====================== WiFi TX DC offset calibration end ===================== "
  157.            );
  158.     return true;
  159. }