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

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_apc_8psk.h
  40.  *
  41.  * Project:
  42.  * --------
  43.  *   Maui META APP
  44.  *
  45.  * Description:
  46.  * ------------
  47.  *   8PSK RF APC 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. #ifndef  _RF_APC_8PSK_H_
  66. #define  _RF_APC_8PSK_H_
  67. #include <IniFiles.hpp>
  68. // common
  69. #ifndef  _METAAPP_COMMON_H_
  70. #include "metaapp_common.h"
  71. #endif
  72. #ifndef META_DLL_H
  73. #include "meta.h"
  74. #endif
  75. #ifndef  _MAN_HANDLE_H_
  76. #include "man_handle.h"
  77. #endif
  78. // RF
  79. #ifndef  _RF_COMMON_H_
  80. #include "rf_common.h"
  81. #endif
  82. /*---------------------------------------------------------------------------*/
  83. #define  LOW_VOLTAGE_8PSK_INDEX     0
  84. #define  MID_VOLTAGE_8PSK_INDEX     1
  85. #define  HIGH_VOLTAGE_8PSK_INDEX    2
  86. #define  LOW_TEMPERATURE_8PSK_INDEX     0
  87. #define  MID_TEMPERATURE_8PSK_INDEX     1
  88. #define  HIGH_TEMPERATURE_8PSK_INDEX             2
  89. #define  BATTERY_COMPENSATE_8PSK_SCALE       16384
  90. #define  MAX_PA_VBIAS_NUM      8
  91. #define  A60111A_WEIGHT_OFFSET 4
  92. /*---------------------------------------------------------------------------*/
  93. /*---------------------------------------------------------------------------*/
  94. typedef struct
  95. {
  96.     bool  EpskSetRampTableSupport;
  97.     bool  valid;
  98. }
  99. sRFEPSKSETRAMP;
  100. typedef struct
  101. {
  102.     l1cal_rampTable_T s_ramp_table[MAX_SUPPORT_BAND_NUM];
  103.     mt6140tx s_pa_vbias;
  104.     ad6546tx s_ad6546;
  105. }S_EPSK_RAMP_T;
  106. /*---------------------------------------------------------------------------*/
  107. class  CRFAPC8PSK
  108. {
  109. private:
  110.    // common
  111.     bool  m_bDownloadTrigger;
  112.    unsigned int  m_uiRfModId;
  113.    E_METAAPP_RESULT_T   m_eConfirmState;
  114.    CMETAHANDLE m_META_HANDLE_Obj;
  115.    
  116.    // band
  117.    RFBandSupport_S  band_support;
  118.    
  119.    // APC
  120.    int   CurWRBand;
  121.    short RampApcLevelToken;
  122.    int          ApcBufSize;
  123.    char        *ApcBuf;
  124.    // Vbias
  125.    //bool m_VbiasSupport;
  126.    int  m_VbiasBufSize;
  127.    char *m_VbiasBuf;
  128.    // AD6546 special coefficient
  129.    int m_iAD6546BufSize;
  130.    char* m_cAD6546Buf;
  131.    // B5P
  132.    int          B5PBufSize;
  133.    char        *B5PBuf;
  134.    RF_BRIGHT5P_Coef_T        b5p_coef;
  135.    unsigned int W6S;
  136.    unsigned short  m_usHighApcDcOffset[MAX_SUPPORT_BAND_NUM];
  137.    S_EPSK_RAMP_T  m_sEpskRamp;
  138.   // l1cal_rampTable_T  m_sApcProfile[MAX_SUPPORT_BAND_NUM];
  139.    unsigned char m_ucInterslotLowestDAC[MAX_SUPPORT_BAND_NUM];
  140.    bool                   m_bSingleBand;
  141.    RfSetRampApcLevel_Req  RampApcLevelReq;
  142.    bool  *p_rf_epsk_set_ramp_table_support;
  143.    // set EPSK level
  144.    RfSetRampApcLevel_Req  *m_pRfSetApcDac;
  145.    
  146. protected:
  147. public:
  148.    void  Confirm(E_METAAPP_RESULT_T confirm_state);
  149.    CRFAPC8PSK(void);
  150.   ~CRFAPC8PSK();
  151.    // NVRAM read/write
  152.    void  REQ_ReadApcFromNVRAM(void);
  153.    void  CNF_ReadApcFromNVRAM(void);
  154.    void  REQ_WriteApcToNVRAM(void);
  155.    void  CNF_WriteApcToNVRAM(void);
  156.    void  REQ_ReadVbiasFromNVRAM(void);
  157.    void  CNF_ReadVbiasFromNVRAM(void);
  158.    void  REQ_WriteVbiasToNVRAM(void);
  159.    void  CNF_WriteVbiasToNVRAM(void);
  160.    void  REQ_ReadAD6546CoefFromNVRAM(void);
  161.    void  CNF_ReadAD6546CoefFromNVRAM(void);
  162.    void  REQ_WriteAD6546CoefToNVRAM(void);
  163.    void  CNF_WriteAD6546CoefToNVRAM(void);
  164.    void  CNF_ReadWord3FromNVRAM(void);
  165.    void  CNF_WriteWord3ToNVRAM(void);
  166.    void  CNF_ReadB5PFromNVRAM(void);
  167.    void  CNF_WriteB5PToNVRAM(void);
  168.    // BV
  169.    void  Compose_word6_4_0(sBVW0 &bvw0, unsigned int &word6_4_0);
  170.    void  Compose_word6_5_0(sBVW0 &bvw0, unsigned int &word6_5_0);
  171.    void  Compose_word6_6_0(sBVW0 &bvw0, unsigned int &word6_6_0);
  172.    void  Compose_word6_7_0(sBVW0 &bvw0, unsigned int &word6_7_0);
  173.    void  DeCompose_word6_x_0(unsigned int &word6_x_0, sBVW0 &bvw6x0);
  174. /*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
  175.   // Public member
  176.    void  (*ConfirmCallback)( void );
  177.   // Public interface
  178.    void  REQ_Stop( void );
  179.    void  REQ_Read_APC_From_NVRAM_Start(unsigned int rf_id);
  180.    void  REQ_Read_APC_From_NVRAM_Single_Band_Start(unsigned int rf_id, int band);
  181.    void  REQ_Write_APC_To_NVRAM_Start(unsigned int rf_id);
  182.    void  REQ_Write_APC_To_NVRAM_Single_Band_Start(unsigned int rf_id, int band);
  183.   // void  REQ_Read_WORD3_From_NVRAM( void );
  184.   // void  REQ_Write_WORD3_To_NVRAM( void );
  185.    void  REQ_Read_B5P_From_NVRAM( void );
  186.    void  REQ_Write_B5P_To_NVRAM( void );
  187.    // ini
  188.    bool  ApcGSM850SectionExist( char *filename );
  189.    bool  ApcGSM900SectionExist( char *filename );
  190.    bool  ApcDCS1800SectionExist( char *filename );
  191.    bool  ApcPCS1900SectionExist( char *filename );
  192.    bool  ApcSectionExist( char *filename, int band );
  193.    bool  AnyApcSectionExist( char *filename );
  194.    bool  RenesasWord3SectionExist( char *filename );
  195.    bool  RenesasWord6sSectionExist( char *filename );
  196.    bool  REQ_Read_APC_From_File_Single_Band(char *filename, unsigned int rf_id, int band);
  197.    bool  REQ_Read_APC_From_File(char *filename, unsigned int rf_id);
  198.    bool  REQ_Read_Word3_From_File( char *filename );
  199.    bool  REQ_Read_Word6s_From_File( char *filename  );
  200.    bool  REQ_Read_W64_From_File( TIniFile   *ini_file );
  201.    bool  REQ_Read_W65_From_File( TIniFile   *ini_file );
  202.    bool  REQ_Read_W66_From_File( TIniFile   *ini_file );
  203.    bool  REQ_Read_W67_From_File( TIniFile   *ini_file );
  204.    bool  REQ_Write_APC_To_File_Single_Band(char *filename, unsigned int rf_id, int band);
  205.    bool  REQ_Write_APC_To_File(char *filename, unsigned int rf_id);
  206.    bool  REQ_Write_Word3_To_File( char *filename );
  207.    bool  REQ_Write_Word6s_To_File( char *filename );
  208.    bool  REQ_Write_W64_To_File( TIniFile   *ini_file );
  209.    bool  REQ_Write_W65_To_File( TIniFile   *ini_file );
  210.    bool  REQ_Write_W66_To_File( TIniFile   *ini_file );
  211.    bool  REQ_Write_W67_To_File( TIniFile   *ini_file );
  212.    bool  REQ_Write_To_M12193(char *filename, unsigned int rf_id);
  213.    //bool  Req_SetWord3ToReg( RF_BRIGHT5P_Coef_T &rf_mod_coef );
  214.    bool  Req_SetB5PToReg(RF_BRIGHT5P_Coef_T rf_mod_coef);
  215.    bool  Set_RenesasCoef(RF_BRIGHT5P_Coef_T rf_mod_coef);
  216.    bool  Get_RenesasCoef(RF_BRIGHT5P_Coef_T &rf_mod_coef);
  217.    bool  Set_W6sImmediateBSI(unsigned int w6s);
  218.    bool  Get_BvMode(void);
  219.    void  Set_BvMode(unsigned int bvmode);
  220.    void  Compose_wordC3(sC3Mode c3mode, unsigned int &wordC3);
  221.    void  DeCompose_wordC3(unsigned int wordC3, sC3Mode& c3mode);
  222.    void  REQ_SetW6sImmediateBSI_Start(unsigned int w6s);
  223.    void  REQ_SetW6sImmediateBSI(void);
  224.    void  REQ_EPSK_SetRampApcLevel_Start( RfSetRampApcLevel_Req *req );
  225.    void  REQ_EPSK_SetRampApcLevel( void );
  226.    // runtime setting
  227.    void REQ_RfEPSKSetRampTable_Start( int band_idx );
  228.    bool REQ_RfEPSKSetRampTable( void );
  229.    // query
  230.    void Query_RfEPSKSetRampTable_Start( bool &RfEPSKSetRampTableSupport );
  231.    bool Query_RfEPSKSetRampTable( void );
  232.    // global information
  233.    E_METAAPP_RESULT_T  Get_ConfirmState( void );
  234.    S_EPSK_RAMP_T*   Get_ApcProfile(void);
  235.    void Set_ApcProfile(S_EPSK_RAMP_T apc_profile);
  236.    unsigned short Get_ApcProfilePower( int band_idx, int pcl_idx );
  237.    void Set_ApcProfilePower( int band_idx, int pcl_idx, unsigned short power );
  238.    short Get_TxAfcOffset( int band_idx, int pcl_idx );
  239.    void  Set_TxAfcOffset( int band_idx, short tx_afc_offset );
  240.    unsigned char  Get_InterslotLowestDAC( int band_idx );
  241.    void  Set_InterslotLowestDAC( int band_idx, unsigned char dac );
  242. };
  243. /*---------------------------------------------------------------------------*/
  244. #endif