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

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.  *   META_Factory_Result_Handle.cpp
  40.  *
  41.  * Project:
  42.  * --------
  43.  *   Maui META APP
  44.  *
  45.  * Description:
  46.  * ------------
  47.  *  META factory result file handle 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. #include <vcl.h>
  66. #pragma hdrstop
  67. #include "meta_utils.h"
  68. #include "rf_agc.h"
  69. #include "rf_afc.h"
  70. #include "crystal_afc.h"
  71. #ifndef  _RF_PM_H_
  72. #include "rf_pm.h"
  73. #endif
  74. #include "rf_apc.h"
  75. #ifndef  _RF_TXIQ_H_
  76. #include "rf_txiq.h"
  77. #endif
  78. #include "bb_adc.h"
  79. #include "META_Factory.h"
  80. #pragma package(smart_init)
  81. extern CRFAFC*  MF_rf_afc_ptr;
  82. extern CCRYSTALAFC*  MF_crystal_afc_ptr;
  83. extern CRFAGC*  MF_rf_agc_ptr;
  84. extern CRFPM*   MF_rf_pm_ptr;
  85. extern CRFAPC*  MF_rf_apc_ptr;
  86. extern CRFAPC8PSK*  MF_rf_apc_8psk_ptr;
  87. extern CRFTXIQ*  MF_rf_txiq_ptr;
  88. extern CBBADC*  MF_BB_ADC_ptr;
  89. //==============================================================================
  90. bool __fastcall T_META_factory_calibration::Get_CalFilePathName(AnsiString asCalFile, AnsiString asExeName, bool b_CalResultPath, AnsiString& asPathName)
  91. {
  92.     AnsiString asPath;
  93.     if (b_CalResultPath)
  94.     {
  95.         asPath = m_pCal->as_CalPath + "\";
  96.     }
  97.     else
  98.     {
  99.         getPathFromStr(asExeName, asPath);
  100.     }
  101.     if (withPath(asPath) && !withPath(asCalFile))
  102.     {
  103.         asPathName = asPath + asCalFile;
  104.     }
  105.     else
  106.     {
  107.         return false;
  108.     }
  109.     return true;
  110. }
  111. //==============================================================================
  112. bool __fastcall T_META_factory_calibration::WriteIP2CalResultToFile(AnsiString asCalFile, AnsiString asExeName, bool b_CalResultPath, unsigned int rfmod_id, int band)
  113. {
  114.     AnsiString asPath;
  115.     if (b_CalResultPath)
  116.     {
  117.         asPath = m_pCal->as_CalPath + "\";
  118.     }
  119.     else
  120.     {
  121.         getPathFromStr(asExeName, asPath);
  122.     }
  123.     if (withPath(asPath) && !withPath(asCalFile))
  124.     {
  125.         asCalFile = asPath + asCalFile;
  126.     }
  127.     else
  128.     {
  129.         return false;
  130.     }
  131.     try
  132.     {
  133.         MF_rf_pm_ptr->REQ_Write_IP2Reg_To_File_Single_Band(asCalFile.c_str(), rfmod_id, band);
  134.         return true;
  135.     }
  136.     catch (...)
  137.     {
  138.         ShowMessage(" Write : write calibration result file : " + asCalFile + " error ");
  139.     }
  140.     return true;
  141. }
  142. //==============================================================================
  143. bool __fastcall T_META_factory_calibration::WriteIP2RxAmCalModeToFile(AnsiString asCalFile, AnsiString asExeName, bool b_CalResultPath,  unsigned int rfmod_id )
  144. {
  145.     AnsiString asPath;
  146.     if (b_CalResultPath)
  147.     {
  148.         asPath = m_pCal->as_CalPath + "\";
  149.     }
  150.     else
  151.     {
  152.         getPathFromStr(asExeName, asPath);
  153.     }
  154.     if (withPath(asPath) && !withPath(asCalFile))
  155.     {
  156.         asCalFile = asPath + asCalFile;
  157.     }
  158.     else
  159.     {
  160.         return false;
  161.     }
  162.     try
  163.     {
  164.         MF_rf_pm_ptr->REQ_Write_IP2Reg_RxAmCalMode_To_File(asCalFile.c_str(), rfmod_id);
  165.         return true;
  166.     }
  167.     catch (...)
  168.     {
  169.         ShowMessage(" Write : write calibration result file : " + asCalFile + " error ");
  170.     }
  171.     return true;
  172. }
  173. //==============================================================================
  174. bool __fastcall T_META_factory_calibration::WriteAFCCalResultToFile(AnsiString asCalFile, AnsiString asExeName, bool b_CalResultPath)
  175. {
  176.     AnsiString asPath;
  177.     if (b_CalResultPath)
  178.     {
  179.         asPath = m_pCal->as_CalPath + "\";
  180.     }
  181.     else
  182.     {
  183.         getPathFromStr(asExeName, asPath);
  184.     }
  185.     if (withPath(asPath) && !withPath(asCalFile))
  186.     {
  187.         asCalFile = asPath + asCalFile;
  188.     }
  189.     try
  190.     {
  191.         MF_rf_afc_ptr->REQ_Write_To_File(asCalFile.c_str());
  192.         return true;
  193.     }
  194.     catch (...)
  195.     {
  196.         ShowMessage(" Write : write calibration result file : " + asCalFile + " error ");
  197.     }
  198.     return true;
  199. }
  200. //=================================================================================================
  201. bool __fastcall T_META_factory_calibration::WriteCrystalAFCCalResultToFile(AnsiString asCalFile, AnsiString asExeName, bool b_CalResultPath)
  202. {
  203.     AnsiString asPath;
  204.     if (b_CalResultPath)
  205.     {
  206.         asPath = m_pCal->as_CalPath + "\";
  207.     }
  208.     else
  209.     {
  210.         getPathFromStr(asExeName, asPath);
  211.     }
  212.     if ( withPath( asPath) && !withPath( asCalFile) )
  213.     {
  214.         asCalFile = asPath + asCalFile;
  215.     }
  216.     else
  217.     {
  218.         return false;
  219.     }
  220.     try
  221.     {
  222.         MF_crystal_afc_ptr->REQ_Write_CAPID_To_File( asCalFile.c_str() );
  223.         return true;
  224.     }
  225.     catch (...)
  226.     {
  227.         ShowMessage( " Write : write calibration result file : " + asCalFile + " error ");
  228.     }
  229.     return true;
  230. }
  231. //==============================================================================
  232. bool __fastcall T_META_factory_calibration::WriteAGCCalResultToFile(AnsiString asCalFile, AnsiString asExeName, bool b_CalResultPath, FrequencyBand freqband)
  233. {
  234.     AnsiString asPath;
  235.     if (b_CalResultPath)
  236.     {
  237.         asPath = m_pCal->as_CalPath + "\";
  238.     }
  239.     else
  240.     {
  241.         getPathFromStr(asExeName, asPath);
  242.     }
  243.     if ( withPath( asPath) && !withPath( asCalFile) )
  244.     {
  245.         asCalFile = asPath + asCalFile;
  246.     }
  247.     else
  248.     {
  249.         return false;
  250.     }
  251.     try
  252.     {
  253.         MF_rf_agc_ptr->REQ_Write_To_File_Single_Band( asCalFile.c_str(), freqband);
  254.         return true;
  255.     }
  256.     catch (...)
  257.     {
  258.         ShowMessage( " Write : write calibration result file : " + asCalFile + " error ");
  259.     }
  260.     return true;
  261. }
  262. //=================================================================================================
  263. bool __fastcall T_META_factory_calibration::WriteTxDcOffsetCalResultToFile(AnsiString asCalFile, AnsiString asExeName, bool b_CalResultPath)
  264. {
  265.     AnsiString asPath;
  266.     if (b_CalResultPath)
  267.     {
  268.         asPath = m_pCal->as_CalPath + "\";
  269.     }
  270.     else
  271.     {
  272.         getPathFromStr(asExeName, asPath);
  273.     }
  274.     if ( withPath( asPath) && !withPath( asCalFile) )
  275.     {
  276.         asCalFile = asPath + asCalFile;
  277.     }
  278.     else
  279.     {
  280.         return false;
  281.     }
  282.     try
  283.     {
  284.         MF_rf_txiq_ptr->REQ_Write_To_File(asCalFile.c_str(),  m_pCal->ui_rf_id, m_pCal->e_bbtxcfg_ver );
  285.         return true;
  286.     }
  287.     catch (...)
  288.     {
  289.         ShowMessage( " Write : write calibration result file : " + asCalFile + " error ");
  290.     }
  291.     return true;
  292. }
  293. //=================================================================================================
  294. bool __fastcall T_META_factory_calibration::WriteAPCCalResultToFile(AnsiString asCalFile, AnsiString asExeName, bool b_CalResultPath, int band )
  295. {
  296.     AnsiString asPath;
  297.     if (b_CalResultPath)
  298.     {
  299.         asPath = m_pCal->as_CalPath + "\";
  300.     }
  301.     else
  302.     {
  303.         getPathFromStr(asExeName, asPath);
  304.     }
  305.     if ( withPath( asPath) && !withPath( asCalFile) )
  306.     {
  307.         asCalFile = asPath + asCalFile;
  308.     }
  309.     else
  310.     {
  311.         return false;
  312.     }
  313.     try
  314.     {
  315.         MF_rf_apc_ptr->REQ_Write_APC_To_File_Single_Band(asCalFile.c_str(), m_pCal->ui_rf_id, band, m_pCal->b_TADOSupport );
  316.         return true;
  317.     }
  318.     catch (...)
  319.     {
  320.         ShowMessage( " Write : write calibration result file : " + asCalFile + " error ");
  321.     }
  322.     return true;
  323. }
  324. //=================================================================================================
  325. bool __fastcall T_META_factory_calibration::WriteEpskAPCCalResultToFile(AnsiString asCalFile, AnsiString asExeName, bool b_CalResultPath, int band )
  326. {
  327.     AnsiString asPath;
  328.     if (b_CalResultPath)
  329.     {
  330.         asPath = m_pCal->as_CalPath + "\";
  331.     }
  332.     else
  333.     {
  334.         getPathFromStr(asExeName, asPath);
  335.     }
  336.     if ( withPath( asPath) && !withPath( asCalFile) )
  337.     {
  338.         asCalFile = asPath + asCalFile;
  339.     }
  340.     else
  341.     {
  342.         return false;
  343.     }
  344.     try
  345.     {
  346.         MF_rf_apc_8psk_ptr->REQ_Write_APC_To_File_Single_Band(asCalFile.c_str(), m_pCal->ui_rf_id, band);
  347.         return true;
  348.     }
  349.     catch (...)
  350.     {
  351.         ShowMessage( " Write : write calibration result file : " + asCalFile + " error ");
  352.     }
  353.     return true;
  354. }
  355. //=================================================================================================
  356. bool __fastcall T_META_factory_calibration::WriteTxPhaseErrCalResultToFile(AnsiString asCalFile, AnsiString asExeName, bool b_CalResultPath)
  357. {
  358.     AnsiString asPath;
  359.     if (b_CalResultPath)
  360.     {
  361.         asPath = m_pCal->as_CalPath + "\";
  362.     }
  363.     else
  364.     {
  365.         getPathFromStr(asExeName, asPath);
  366.     }
  367.     if ( withPath( asPath) && !withPath( asCalFile) )
  368.     {
  369.         asCalFile = asPath + asCalFile;
  370.     }
  371.     else
  372.     {
  373.         return false;
  374.     }
  375.     try
  376.     {
  377. #if 0
  378.         S_BB_TX_PARAMETER_ACCESS s_BBTXParAccess;
  379.         s_BBTXParAccess.b_bbtx_common_mode_voltage = true;
  380.         s_BBTXParAccess.b_bbtx_gain                = true;
  381.         s_BBTXParAccess.b_bbtx_calrcsel            = true;
  382.         s_BBTXParAccess.b_bbtx_trimI               = true;
  383.         s_BBTXParAccess.b_bbtx_trimQ               = true;
  384.         s_BBTXParAccess.b_bbtx_offsetI             = true;
  385.         s_BBTXParAccess.b_bbtx_offsetQ             = true;
  386.         s_BBTXParAccess.b_bbtx_isCalibrated        = true;
  387.         s_BBTXParAccess.b_apc_bat_low_voltage      = true;
  388.         s_BBTXParAccess.b_apc_bat_high_voltage     = true;
  389.         s_BBTXParAccess.b_apc_bat_low_temperature  = true;
  390.         s_BBTXParAccess.b_apc_bat_high_temperature = true;
  391.         // high band
  392.         bool flag = ((RF_ID_MT6140C == m_Cal.ui_rf_id) || (RF_ID_MT6140C == m_Cal.ui_rf_id));
  393.         s_BBTXParAccess.b_bbtx_common_mode_voltage_h = flag;
  394.         s_BBTXParAccess.b_bbtx_gain_h = flag;
  395.         s_BBTXParAccess.b_bbtx_calrcsel_h = flag;
  396.         s_BBTXParAccess.b_bbtx_trimI_h = flag;
  397.         s_BBTXParAccess.b_bbtx_trimQ_h = flag;
  398.         s_BBTXParAccess.b_bbtx_offsetI_h = flag;
  399.         s_BBTXParAccess.b_bbtx_offsetQ_h = flag;
  400.        // s_BBTXParAccess.b_bbtx_isCalibrated_h = flag;
  401.         s_BBTXParAccess.b_bbtx_phsel_h = flag;
  402. #endif
  403.         MF_rf_txiq_ptr->REQ_Write_To_File( asCalFile.c_str(), m_pCal->ui_rf_id, m_pCal->e_bbtxcfg_ver  );
  404.         return true;
  405.     }
  406.     catch (...)
  407.     {
  408.         ShowMessage( " Write : write calibration result file : " + asCalFile + " error ");
  409.     }
  410.     return true;
  411. }
  412. //=================================================================================================
  413. bool __fastcall T_META_factory_calibration::WriteADCCalResultToFile(AnsiString asCalFile, AnsiString asExeName, bool b_CalResultPath)
  414. {
  415.     AnsiString asPath;
  416.     if (b_CalResultPath)
  417.     {
  418.         asPath = m_pCal->as_CalPath + "\";
  419.     }
  420.     else
  421.     {
  422.         getPathFromStr(asExeName, asPath);
  423.     }
  424.     if ( withPath( asPath) && !withPath( asCalFile))
  425.     {
  426.         asCalFile = asPath + asCalFile;
  427.     }
  428.     else
  429.     {
  430.         return false;
  431.     }
  432.     try
  433.     {
  434.         MF_BB_ADC_ptr->REQ_Write_To_File( asCalFile.c_str() );
  435.         return true;
  436.     }
  437.     catch (...)
  438.     {
  439.         ShowMessage( " Write : write calibration result file : " + asCalFile + " error ");
  440.     }
  441.     return true;
  442. }
  443. //==============================================================================
  444. bool __fastcall T_META_factory_calibration::WriteBtCapIDCalResultToFile(AnsiString asCalFile, AnsiString asExeName, bool b_CalResultPath, BT_ModuleID_S bt_module)
  445. {
  446.     AnsiString asPathName;
  447.     if (!Get_CalFilePathName(asCalFile, asExeName, b_CalResultPath, asPathName))
  448.     {
  449.         return false;
  450.     }
  451.     return true;
  452. }
  453. //==============================================================================
  454. bool __fastcall T_META_factory_calibration::WriteWiFiAPCCalResultToFile(AnsiString asCalFile, AnsiString asExeName, bool b_CalResultPath, E_WIFI_GENERATION e_802_11_idx )
  455. {
  456.     AnsiString asPath;
  457.     if (b_CalResultPath)
  458.     {
  459.         asPath = m_pCal->as_CalPath + "\";
  460.     }
  461.     else
  462.     {
  463.         getPathFromStr(asExeName, asPath);
  464.     }
  465.     if ( withPath( asPath) && !withPath( asCalFile) )
  466.     {
  467.         asCalFile = asPath + asCalFile;
  468.     }
  469.     else
  470.     {
  471.         return false;
  472.     }
  473.     switch (e_802_11_idx )
  474.     {
  475.         case WIFI_802_11A_IDX:
  476.         {
  477.             if( ! m_pCal->s_cal_obj.pc_WIFI_APC_Obj->REQ_Write_TxPower5000M_To_File( asCalFile.c_str() )  )
  478.             {   return false;
  479.             }
  480.         }
  481.         break;
  482.         case WIFI_802_11B_IDX:
  483.         {
  484.             if( ! m_pCal->s_cal_obj.pc_WIFI_APC_Obj->REQ_Write_TxPower2400M_To_File( asCalFile.c_str() )  )
  485.             {   return false;
  486.             }
  487.         }
  488.         break;
  489.         case WIFI_802_11G_IDX:
  490.         {
  491.             if( ! m_pCal->s_cal_obj.pc_WIFI_APC_Obj->REQ_Write_TxPower2400M_To_File( asCalFile.c_str() )  )
  492.             {   return false;
  493.             }
  494.         }
  495.         break;
  496.         default:
  497.             return false;
  498.       
  499.     }
  500.     return true;
  501. }
  502. //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  503. bool __fastcall T_META_factory_calibration::WriteWiFiALCCalResultToFile(AnsiString asCalFile, AnsiString asExeName, bool b_CalResultPath)
  504. {
  505.     AnsiString asPath;
  506.     if ( b_CalResultPath )
  507.     {
  508.         asPath = m_pCal->as_CalPath + "\";
  509.     }
  510.     else
  511.     {
  512.         getPathFromStr(asExeName, asPath);
  513.     }
  514.     if (withPath(asPath) && !withPath(asCalFile))
  515.     {
  516.         asCalFile = asPath + asCalFile;
  517.     }
  518.     else
  519.     {
  520.         return false;
  521.     }
  522.     if (!m_pCal->s_cal_obj.pc_WIFI_ALC_Obj->REQ_Write_To_File(asCalFile.c_str()))
  523.     {
  524.         return false;
  525.     }
  526.     return true;
  527. }
  528. //=============================================================================
  529. bool __fastcall T_META_factory_calibration::WriteWiFiTxDcOffsetCalResultToFile(AnsiString asCalFile, AnsiString asExeName, bool b_CalResultPath)
  530. {
  531.     AnsiString asPath;
  532.     if ( b_CalResultPath )
  533.     {
  534.         asPath = m_pCal->as_CalPath + "\";
  535.     }
  536.     else
  537.     {
  538.         getPathFromStr(asExeName, asPath);
  539.     }
  540.     if ( withPath( asPath) && !withPath( asCalFile) )
  541.     {
  542.         asCalFile = asPath + asCalFile;
  543.     }
  544.     else
  545.     {
  546.         return false;
  547.     }
  548.     if (! m_pCal->s_cal_obj.pc_WIFI_TXDC_Obj->REQ_Write_To_File(asCalFile.c_str() ))
  549.     {   return false;
  550.     }
  551.     return true;
  552. }