wifi_sc.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) 2001
  8. *
  9. *****************************************************************************/
  10. /*****************************************************************************
  11.  *
  12.  * Filename:
  13.  * ---------
  14.  *   wifi_sc.h
  15.  *
  16.  * Project:
  17.  * --------
  18.  *   Maui META APP
  19.  *
  20.  * Description:
  21.  * ------------
  22.  *   WiFi script 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_SC_H_
  41. #define  _WIFI_SC_H_
  42. #include <fstream.h>
  43. #include <vcl.h>
  44. #include <vector.h>
  45. #include "meta.h"
  46. #ifndef  _WIFI_COMMON_H_
  47. #include "wifi_common.h"
  48. #endif
  49. #ifndef  _WIFI_BB_H_
  50. #include "wifi_bb.h"
  51. #endif
  52. #ifndef  _WIFI_MAC_H_
  53. #include "wifi_mac.h"
  54. #endif
  55. #ifndef  _MAN_HANDLE_H_
  56. #include "man_handle.h"
  57. #endif
  58. /*---------------------------------------------------------------------------*/
  59. #define  STATE_SC_OK          0
  60. #define  STATE_SC_FAIL        1
  61. #define  STATE_SC_TIMEOUT     2
  62. #define  STATE_SC_STOP        3
  63. #define  STATE_SC_SECTION_OK  4
  64. typedef struct
  65. {
  66.     AnsiString name;
  67.     unsigned int value;
  68. }S_DEFINE;
  69. typedef struct
  70. {
  71.     AnsiString name;
  72.     unsigned char value;
  73. }S_B_VAR;
  74. typedef struct
  75. {
  76.     AnsiString name;
  77.     unsigned short value;
  78. }S_W_VAR;
  79. typedef struct
  80. {
  81.     AnsiString name;
  82.     unsigned int value;
  83. }S_D_VAR;
  84. typedef struct
  85. {
  86.     AnsiString name;
  87.     streampos pos;
  88. }S_LABEL;
  89. typedef struct
  90. {
  91.     streampos pos;
  92. }S_CALL;
  93. typedef struct
  94. {
  95.     HANDLE hPostMsgDestHandle;
  96.     AnsiString filename;
  97.     TStringList *log;
  98. }S_WIFISC;
  99. typedef enum
  100. {
  101.     DEFINE_TAG=0,                // "DEFINE",
  102.     EEPROMR_TAG,                // "EEPROMR",
  103.     EEPROMW_TAG,                  // "EEPROMW",
  104.     MCRR_TAG,                 // "MCRR",
  105.     MCRW_TAG,                 // "MCRW",
  106.     MCR16R_TAG,               // "MCR16R",
  107.     MCR16W_TAG,               // "MCR16W",
  108.     BBR_TAG,                  // "BBR",
  109.     BBW_TAG,                  // "BBW",
  110.     B_TAG,                    // "B",
  111.     W_TAG,                    // "W",
  112.     D_TAG,                    // "D",
  113.     DELAY_TAG,                // "DELAY",
  114.     CALL_TAG,                 // "CALL",
  115.     RET_TAG,                  // "RET",
  116.     EXIT_TAG,                 // "EXIT",
  117.     LABEL_TAG,                // "LABEL",
  118.     LOOP_TAG,                 // "LOOP",
  119.     LOAD_TAG,                 // "LOAD",
  120.     MADDB_TAG,                // "MADDB",
  121.     MADDW_TAG,                // "MADDW",
  122.     MADDD_TAG,                // "MADDD",
  123.     MSUBB_TAG,                // "MSUBB",
  124.     MSUBW_TAG,                // "MSUBW",
  125.     MSUBD_TAG,                // "MSUBD",
  126.     MCMPB_TAG,                // "MCMPB",
  127.     MCMPD_TAG,                // "MCMPD",
  128.     MANDB_TAG,                // "MANDB",
  129.     MANDW_TAG,                // "MANDW",
  130.     MANDD_TAG,                // "MANDD",
  131.     MORB_TAG,                 // "MORB",
  132.     MORW_TAG,                 // "MORW",
  133.     MORD_TAG,                 // "MORD",
  134.     MXORB_TAG,                // "MXORB",
  135.     MXORW_TAG,                // "MXORW",
  136.     MXORD_TAG,                // "MXORD",
  137.     MSHLB_TAG,                // "MSHLB",
  138.     MSHLW_TAG,                // "MSHLW",
  139.     MSHLD_TAG,                // "MSHLD",
  140.     MSHRB_TAG,                // "MSHRB",
  141.     MSHRW_TAG,                // "MSHRW",
  142.     MSHRD_TAG,                // "MSHRD",
  143.     JNE_TAG,                  // "JNE",
  144.     JNB_TAG,                  // "JNB",
  145.     JNA_TAG,                  // "JNA",
  146.     JE_TAG,                   // "JE",
  147.     JB_TAG,                   // "JB",
  148.     JA_TAG,                   // "JA",
  149.     JMP_TAG,                  // "JMP",
  150.     MPRB_TAG,                 // "MPRB",
  151.     MPRW_TAG,                 // "MPRW",
  152.     MPRD_TAG,                 // "MPRD",
  153.     MPWB_TAG,                 // "MPWB",
  154.     MPWW_TAG,                 // "MPWW",
  155.     MPWD_TAG,                 // "MPWD",
  156.     PRINT_TAG,                // "PRINT",
  157.     MPRN2FILE_TAG,            // "MPRN2FILE",
  158.     RAND_TAG,                 // "RAND",
  159.     SET_START_TAG,            // "SET_START",
  160.     SET_STOP_TAG,             // "SET_STOP",
  161.     SET_CONT_TX_TAG,          // "SET_CONT_TX",
  162.     SET_LOCAL_FREQ_TAG,       //  "SET_LOCAL_FREQ",
  163.     SET_CARRIER_SUPP_TAG,     // "SET_CARRIER_SUPP",
  164.     SET_PKT_TX_TAG,           // "SET_PKT_TX",
  165.     SET_PWR_MGT_TAG,          // "SET_PWR_MGT"
  166.     SET_PKT_RX_TAG,           // "SET_PKT_RX",
  167.     SET_REG_DOMAIN_TAG,       // "SET_REG_DOMAIN",
  168.     SET_DBM_TO_DAC_TAG,       // "SET_DBM_TO_DAC",
  169.     SET_END_TAG,              // "SET_END"
  170. }E_WIFISCRIPT_TAG;
  171. typedef enum
  172. {
  173.     SET_OP=0,
  174.     GET_OP,
  175.     ADD_OP,
  176.     SUB_OP,
  177.     CMP_OP,
  178.     AND_OP,
  179.     OR_OP,
  180.     XOR_OP,
  181.     SHL_OP,
  182.     SHR_OP,
  183. }E_OPERATION;
  184. typedef struct
  185. {
  186.     E_WIFISCRIPT_TAG tag;
  187.     AnsiString op1;
  188.     AnsiString op2;
  189. }
  190. S_OP;
  191. /*---------------------------------------------------------------------------*/
  192. class  CWIFISC
  193. {
  194. private:
  195.      CMETAHANDLE m_META_HANDLE_Obj;
  196.      int   m_iConfirmState;
  197.      S_WIFISC  m_WiFiSc;
  198.      ifstream *m_pifs;
  199.      filebuf* m_pFBuf;
  200.      vector<S_DEFINE> *m_pvDefine;
  201.      vector<S_B_VAR> *m_pvBVar;
  202.      vector<S_W_VAR> *m_pvWVar;
  203.      vector<S_D_VAR> *m_pvDVar;
  204.      vector<S_LABEL>  *m_pvLabel;
  205.      vector<S_CALL>  *m_pvCall;
  206.      CWIFIBB    m_WIFI_BB_Obj;
  207.      CWIFIMAC   m_WIFI_MAC_Obj;
  208. protected:
  209.    void  Confirm( int confirm_state );
  210. public:
  211.    CWIFISC( void );
  212.    ~CWIFISC();
  213.    void  REQ_Finish( void );
  214.    void  REQ_TimeOut( void );
  215. /*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
  216.  // Public member
  217.    void  (*ConfirmCallback)( void );
  218.    void  REQ_Start( S_WIFISC  wifisc );
  219.    void  REQ_Stop(  );
  220.    // memory
  221.    void  AllocateVector( void );
  222.    void  DeAllocateVector( void );
  223.    // script file
  224.    void  REQ_Read_From_File( void );
  225.    bool  OpenFile( void );
  226.    void  CloseFile( void );
  227.    bool  ParseFile( void );
  228.    bool  ParseCommandLine( AnsiString as_cmd );
  229.    bool  Interpret( S_OP op );
  230.    unsigned int GetDefineValue( AnsiString str );
  231.    void  ByteValueOperate( AnsiString byte_name, unsigned char &value, E_OPERATION op );
  232.    void  DWordValueOperate( AnsiString dword_name, unsigned int &value, E_OPERATION op );
  233.    void  WordValueOperate( AnsiString word_name, unsigned short &value, E_OPERATION op );
  234.    // log
  235.    void  AddLogToStringList( AnsiString as_log );
  236.   // void  Clear_Log( void );
  237.    
  238.    // global information
  239.    int   Get_ConfirmState( void );
  240.   // void  Get_Log( TStringList *log );
  241. };
  242. /*---------------------------------------------------------------------------*/
  243. #endif