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

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.  *   wifi_cptx.h
  15.  *
  16.  * Project:
  17.  * --------
  18.  *   Maui META APP
  19.  *
  20.  * Description:
  21.  * ------------
  22.  *   WiFi continuous packet TX header
  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. #ifndef  _WIFI_CPTX_H_
  41. #define  _WIFI_CPTX_H_
  42. #include "meta.h"
  43. #ifndef  _MAN_HANDLE_H_
  44. #include "man_handle.h"
  45. #endif
  46. #ifndef  _WIFI_COMMON_H_
  47. #include "wifi_common.h"
  48. #endif
  49. /*---------------------------------------------------------------------------*/
  50. // WiFi MAC header
  51. #define  WIFI_MAC_HEAD_FRAME_CTRL_LEN 2
  52. #define  WIFI_MAC_HEAD_DURATION_LEN   2
  53. #define  WIFI_MAC_HEAD_ADDRESS_LEN    6
  54. #define  WIFI_MAC_HEAD_SEQ_CTRL_LEN   2
  55. #define  WIFI_MAC_HEAD_LEN           24
  56. #define  WIFI_TX_FLAG_ENABLE_ALC_TRACK   0x01
  57. #define  WIFI_TX_FLAG_TARGET_ALC_PROVIDE 0x02
  58. #define  WIFI_TX_FLAG_NO_TXGAIN          0x04
  59. /*---------------------------------------------------------------------------*/
  60. typedef struct
  61. {
  62.     unsigned char frame_ctrl[WIFI_MAC_HEAD_FRAME_CTRL_LEN];
  63.     unsigned char duration[WIFI_MAC_HEAD_DURATION_LEN];
  64.     unsigned char address1[WIFI_MAC_HEAD_ADDRESS_LEN];
  65.     unsigned char address2[WIFI_MAC_HEAD_ADDRESS_LEN];
  66.     unsigned char address3[WIFI_MAC_HEAD_ADDRESS_LEN];
  67.     unsigned char seq_ctrl[WIFI_MAC_HEAD_SEQ_CTRL_LEN];
  68. }S_WiFiMacHead;
  69. typedef struct
  70. {
  71.     bool bAlcSupport;
  72.     int wifi_id;
  73.     WiFi_RegDomain_S reg_domain;
  74.     unsigned int channel_freq;
  75.     WiFi_TestRate_E tx_rate;
  76.     unsigned int pkt_length;
  77.     unsigned int pkt_count;
  78.     unsigned int pkt_interval;
  79.     unsigned char tx_pwr_dac;
  80.     WiFi_TestPktTxPattern_E pattern;
  81.     unsigned char is_short_preamble;
  82.     S_WiFiMacHead     s_mac_header;
  83.     // ALC
  84.     unsigned int ui_txFlags;
  85.     unsigned int ui_targetAlc;
  86. }S_WIFICPT;
  87. /*---------------------------------------------------------------------------*/
  88. class  CWIFICPT
  89. {
  90. private:
  91.      int   m_iConfirmState;
  92.      CMETAHANDLE m_META_HANDLE_Obj;
  93.      S_WIFICPT  m_sWiFiCPT;
  94.      WiFi_TestPktTx_Ex_S  m_sPktTx;
  95.      WiFi_TxPower_2400M_S  m_sTxPwr2400M;
  96.      WiFi_TxPower_5000M_S  m_sTxPwr5000M;
  97.      WiFi_DBM2DAC_Set_S    m_sSetDbm2Dac;
  98.      WiFi_DBM2DAC_Query_S  m_sQueryDbm2Dac;
  99.      char             *m_pcTxPowerBuf;
  100.      int               m_iTxPowerBufSize;
  101.      int m_idBm;
  102.      // query
  103.      WiFi_TxStatus_Ex_S  m_WiFiTxStatus;
  104. protected:
  105.    void  Confirm(int confirm_state);
  106. public:
  107.    CWIFICPT(void);
  108.    ~CWIFICPT();
  109.    void  REQ_Finish(void);
  110.    void  REQ_TimeOut(void);
  111.    // query
  112.    void REQ_Query_TxStatus(void);
  113.    void REQ_Query_DbmToDac(void);
  114. /*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
  115. public:  // Public member
  116.    void  (*ConfirmCallback)(void);
  117.    void  REQ_Start(S_WIFICPT wificpt);
  118.    void  REQ_Stop(void);
  119.    void  REQ_SetRegDomain(void);
  120.    void  REQ_ContinuousPktTx(void);
  121.    void  REQ_SetDbmToDac_Start(unsigned int channel_freq, WiFi_TestRate_E tx_rate, int dBm);
  122.    void  REQ_SetDbmToDac(void);
  123.    // MAC header
  124.    void  Compose_MacHeader(S_WiFiMacHead s_mac_head, char *p_mac_header);
  125.    void  DeCompose_MacHeader(char *p_mac_header, S_WiFiMacHead &s_mac_head);
  126.    // query
  127.    bool REQ_Query_ChannelList(unsigned int *channel_num, unsigned char *channel_id);
  128.    void REQ_Query_TxStatus_Start(bool alc_support);
  129.    void REQ_Query_DbmToDac_Start(void);
  130.    // global information
  131.    int   Get_ConfirmState(void);
  132.    WiFi_TxPower_2400M_S  Get_TxPwr2400M(void);
  133.    void  Set_TxPwr2400M(WiFi_TxPower_2400M_S *p_tx_pwr_2400m);
  134.    WiFi_TxPower_5000M_S  Get_TxPwr5000M(void);
  135.    void  Set_TxPwr5000M(WiFi_TxPower_5000M_S *p_tx_pwr_5000m);
  136.    WiFi_TxStatus_Ex_S  Get_TxStatus(void);
  137. };
  138. /*---------------------------------------------------------------------------*/
  139. #endif