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

MTK

开发平台:

C++ Builder

  1. #ifndef _BT_MT_PARSE_H_
  2. #define _BT_MT_PARSE_H_
  3. #ifndef  _BT_COMMON_H_
  4. #include "bt_common.h"
  5. #endif
  6. #ifndef _BT_MT_COMMON_H_
  7. #include "bt_mt_common.h"
  8. #endif
  9. //=============================================================================
  10. // prefix
  11. #define PREFIX_HCI_COMMMAND    0x01
  12. #define PREFIX_ACL_DATA        0x02
  13. #define PREFIX_SCO_DATA        0x03
  14. #define PREFIX_HCI_EVENT       0x04
  15. // script type
  16. #define STRTYPE_NONE           0
  17. #define STRTYPE_HCI            1 // "HCI1 : COM7"
  18. #define STRTYPE_LOGPATH        2 // "LOGPATH : .MT6611_LOTA"
  19. #define STRTYPE_TITLE          3 // "TITLE : Module Test"
  20. #define STRTYPE_PROCNAME       4 // "PROC : Inquiry"
  21. #define STRTYPE_WAITPROCNAME   5 // "WAITPROC : Inquiry"
  22. #define STRTYPE_TIMEOUT        6 // "TIMEOUT : 100"
  23. #define STRTYPE_WAIT           7 // "WAIT : 100"
  24. #define STRTYPE_VAR            8 // "x1 : 30"
  25. #define STRTYPE_TX_HCI_CMD     9 // "TX1 : 00 11 ....."
  26. #define STRTYPE_RX_HCI_EVENT  10 // "RX2 : 00 3A ....."
  27. #define STRTYPE_WAITRX        11 // "WAITRX1 : ?? 3A ....."
  28. #define STRTYPE_CONTI         12 // "      44 78 A7 ..."
  29. #define STRTYPE_SIMRX         13 // "SIMRX1 : 00 3A 46...."
  30. #define STRTYPE_PATCH         14 // "PATCH1 : D:patch.bin"
  31. #define STRTYPE_BAUDRATE      15 // "HCIRATE1 : 921K" //115K, 230K, 460K, 921K, 3M // 1 2 4 9 3
  32. #define STRTYPE_FAILPROC      16 // "PROCFAIL"
  33. #define STRTYPE_FAILEND       17 // "FAILEND"
  34. #define STRTYPE_GOTONEXTPROC  18 // "GOTONEXTPROC"
  35. #define STRTYPE_FORCEEND      19 // "FORCEEND"
  36. #define STRTYPE_SHOWMSG       20 // "SHOWMSG"
  37. #define STRTYPE_KYLE          21 // "KYLE : 3 4 5"
  38. #define STRTYPE_TX_ACL_DATA   22 // "TX1 : 02 32 20 11 00 0D 00 40 00 00 00 00 00 55 56 57 58 59 5A 5B 5C 45"
  39. #define STRTYPE_RX_ACL_DATA   23 // "RX2 : 02 32 20 11 00 0D 00 40 00 00 00 00 00 55 56 57 58 59 5A 5B 5C 45"
  40. #define STRTYPE_TX_SCO_DATA   24 // "TX2 : 03 00 0E 0A 00 00 00 00 55 56 57 58 59 55"
  41. #define STRTYPE_RX_SCO_DATA   25 // "RX1 : 03 00 0E 0A 00 00 00 00 55 56 57 58 59 55"
  42. #define STRTYPE_END           99 // "END"
  43. //-----------------------------------------------
  44. #define VARCOUNT                30
  45. #define STRSIZE               8192
  46. #define CMDSIZE                256
  47. //-----------------------------------------------
  48. class  CBTMTPARSE
  49. {
  50. protected:
  51.    char *GotoDataFiled( char *p, int mode  );
  52.    void  GetStringData( char *p );
  53.    void  GetDecimalData( char *p );
  54.    int   ByteHexStr2Int( char *p );
  55.    int   GetDecimalArg( char *p );
  56. public:
  57.    int   VarData[VARCOUNT];   // var of x0~x9(0~9), y0~9(10~19), z0~9(20~29)
  58.    // After the PreParseString, you can get information from these variable
  59.    int   StrType;
  60.    int   StrValue;      // value after "term : n"
  61.    int   StrValue2;     // HCIn, xn, yn, zn, TXn, RXn
  62.    int   StrArg1, StrArg2, StrArg3;
  63.    char  String[ STRSIZE ];
  64.    int   StrLen;
  65.    // raw data ready to be sent
  66.    unsigned char Command[CMDSIZE];
  67.    int           CmdLen;
  68.    // raw data used to be compared
  69.    unsigned char m_ucEvent[MAX_EVENT_NUM][EVTSIZE];
  70.    unsigned char m_ucEvtTag[MAX_EVENT_NUM][EVTSIZE];
  71.    //int m_iEvtNum;
  72.    int m_iEvtLen[MAX_EVENT_NUM];
  73.    unsigned char m_ucAutoEvent[MAX_EVENT_NUM][EVTSIZE];
  74.    unsigned char m_ucAutoEvtTag[MAX_EVENT_NUM][EVTSIZE];
  75.    //int m_iAutoEvtNum;
  76.    int m_iAutoEvtLen[MAX_EVENT_NUM];
  77.    unsigned char m_ucTxAclData[MAX_ACL_DATA_LEN];
  78.    unsigned char m_ucRxAclData[MAX_ACL_DATA_LEN];
  79.    unsigned char m_ucRxAclDataTag[MAX_ACL_DATA_LEN];
  80.    int m_iTxAclDataLen;
  81.    int m_iRxAclDataLen;
  82. public:
  83.    CBTMTPARSE(void);
  84.    void Reset(void);
  85.    int  PreParseStringType( char *str );
  86.    int  PreParseString(int i_event_idx, char *str);
  87.    bool String2Command(void);
  88.    bool String2TxAclData(void);
  89.    bool String2RxAclData(void);
  90.    bool String2Event(int i_event_idx);
  91.    bool String2AutoEvent(int i_event_idx);
  92.    bool CompareEvent(int i_event_idx, unsigned char *event, int len);
  93. };
  94. //=============================================================================
  95. #endif