crystal_afc.h
上传用户: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.  *   crystal_afc.h
  40.  *
  41.  * Project:
  42.  * --------
  43.  *   Maui META APP
  44.  *
  45.  * Description:
  46.  * ------------
  47.  *  Crystal AFC header
  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. #ifndef _CRYSTAL_AFC_H_
  67. #define _CRYSTAL_AFC_H_
  68. #ifndef _META_CRYSTAL_CFG_H_
  69. #include "meta_crystal_cfg.h"
  70. #endif
  71. // common
  72. #ifndef _MTK_MCU_H_
  73. #include "mtk_mcu.h"
  74. #endif
  75. #ifndef  _METAAPP_COMMON_H_
  76. #include "metaapp_common.h"
  77. #endif
  78. #ifndef META_DLL_H
  79. #include "meta.h"
  80. #endif
  81. #ifndef  _MAN_HANDLE_H_
  82. #include "man_handle.h"
  83. #endif
  84. // equipment
  85. #ifndef  _RCT_COMMON_H_
  86. #include "rct_common.h"
  87. #endif
  88. //---------------------------------------------------------------------------
  89. #define TOTAL_AFCDAC_COUNT 8
  90. #define  CAP_ID_NUM  128
  91. #define  CAP_ID_MIN          0
  92. #define  CAP_ID_MAX_63      63 // MT6139, MT6140
  93. #define  CAP_ID_MAX_127    127 // Aero2, Aero2E, ALICEG2S, A60111A
  94. #define  CAP_ID_MAX_511    511 // AG2550
  95. typedef  struct
  96. {
  97.     E_BANDSEL e_band;
  98.     TNotifyEvent ne_onTermSuccess;
  99.     TNotifyEvent ne_onTermByUser;
  100.     TMETA_crystal_cfg *crystal_cfg;
  101.     TStringList *st_Log;
  102.     E_DIR_TXRX_T e_sweep_type;
  103.     E_DEVICE_TYPE e_device_type;
  104.     bool b_cont_sine_wave;
  105.     BBCHIP_TYPE e_bb_chip;
  106.     APCTxPattern e_burst_type;
  107.     short s_arfcn;
  108.     int pcl;
  109.     char c_TSC;
  110.     short test_count;
  111.     short s_min_afc_dac;
  112.     short s_max_afc_dac;
  113.     short s_afc_dac_step;
  114.     int min_cap_id;
  115.     int max_cap_id;
  116.     int cap_id_step;
  117.    // AnsiString &as_TaModel;
  118.     bool b_temp_sweep;
  119.     float min_temp;
  120.     float max_temp;
  121.     float temp_step;
  122.     int com_port;
  123.     HANDLE hCOM;
  124.     DCB  original_dcb;
  125. }S_CAS_T;
  126. //---------------------------------------------------------------------------
  127. class  CCRYSTALAFC
  128. {
  129. private:
  130.      E_METAAPP_RESULT_T   m_eConfirmState;
  131.      bool  m_bDownloadCrystalAfcDataTrigger;
  132.      bool  m_bDownloadCAPIDTrigger;
  133.      CMETAHANDLE m_META_HANDLE_Obj;
  134.      short        CRYSTALID_AFC;
  135.      char        *m_cCrystalAfcBuf;
  136.      unsigned int m_uiCrystalAfcBufSize;
  137.      int  InitAfcDac;
  138.      int  AfcSlope;
  139.      RfAfc_Req    *RFReq_AFC;
  140.      RfNbtx_Req        *RFReq_TX;
  141.      RfAfc_Cnf    RFCnf_AFC;
  142.      bool  HasMeasured;
  143.      int  DisplayAFC;
  144.      int  EvalAfcDac[2];
  145.      int  EvalFreqErr[2];
  146.      int  EvalInitDac;
  147.      int  EvalSlope;
  148.      int  CurAFC;
  149.     
  150.      int  AFCMin;
  151.      int  AFCMax;
  152.      int  AFCStep;
  153.      int  m_iCapId;
  154. protected:
  155. public:
  156.    // int  state;
  157.     int  Band;
  158.     short m_sArfcn;
  159.     int  Bsic;
  160.     int  PCL;
  161.     int  Frames;
  162.     int  AFCDac;
  163.     int  BurstType;
  164.     l1cal_crystalAfcData_T xo_afc;
  165.     int  CapIDBufSize;
  166.     char *CapIDBuf;
  167.     int  TestCount;
  168.     void  Confirm(E_METAAPP_RESULT_T confirm_state);
  169.     void  REQ_Finish( void );
  170.     void  REQ_TimeOut( void );
  171.     void  REQ_SelectBand( void );
  172.     void __stdcall CNF_SelectBand(const unsigned char cnf, const short token, void *usrData);
  173.     void  REQ_NormalTX( void );
  174.     void __stdcall CNF_NormalTX(const unsigned char cnf, const short token, void *usrData);
  175.     void  REQ_MeasureAFC( void );
  176.     void __stdcall CNF_MeasureAFC(const RfAfc_Cnf *cnf, const short token, void *usrData);
  177.     // run time set CAP ID
  178.     void REQ_SetCapID(void);
  179.     CCRYSTALAFC( void );
  180.    ~CCRYSTALAFC( );
  181.   // Public member
  182.     void  (*ConfirmCallback)( void );
  183.     void  REQ_Stop( void );
  184.     // run time set CAP_ID
  185.     void REQ_SetCapID_Start(int cap_id);
  186.     // NVRAM
  187.     bool  Decompose_crystalAfcData( void );
  188.     bool  Compose_crystalAfcData( void );
  189.     bool  Decompose_CapID( void );
  190.     bool  Compose_CapID( void );
  191.     void  REQ_Read_CrystalAfcData_From_NVRAM(void);
  192.     void  CNF_ReadCrystalAfcDataFromNVRAM(void);
  193.     void  REQ_Write_CrystalAfcData_To_NVRAM(void);
  194.     void  CNF_WriteCrystalAfcDataToNVRAM(void);
  195.     void  REQ_Read_CAPID_From_NVRAM(void);
  196.     void  CNF_CAPID_ReadFromNVRAM(void);
  197.     void  REQ_Write_CAPID_To_NVRAM(void);
  198.     void  CNF_CAPID_WriteToNVRAM(void);
  199.     /*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
  200.   // Public member
  201.     void  REQ_Start_TX(int band, short arfcn, int bsic, int pcl, int frames, int afc_dac);
  202.     // NVRAM
  203.     void  REQ_Read_CrystalAfcData_From_NVRAM_Start(void);
  204.     void  REQ_Write_CrystalAfcData_To_NVRAM_Start(void);
  205.     void  REQ_Read_CAPID_From_NVRAM_Start(void);
  206.     void  REQ_Write_CAPID_To_NVRAM_Start(void);
  207.     // ini file
  208.     bool  REQ_Read_CrystalAfcData_From_File( char *filename );
  209.     bool  REQ_Write_CrystalAfcData_To_File( char *filename );
  210.     bool  CrystalAfcSectionExist( char *filename );
  211.     bool  REQ_Read_CAPID_From_File( char *filename );
  212.     bool  REQ_Write_CAPID_To_File( char *filename );
  213.     // global information
  214.     E_METAAPP_RESULT_T   Get_ConfirmState(void);
  215.     int Get_max_cap_id(unsigned int rd_id);
  216.     int Get_cap_id(void);
  217.     void Set_cap_id(int cap_id_par);
  218. };
  219. #endif