
mbed2 pre-final
Dependencies: LCD_DISCO_F429ZI mbed BSP_DISCO_F429ZI
token_decoder.h@2:7dc265489818, 2020-06-14 (annotated)
- Committer:
- domino5740
- Date:
- Sun Jun 14 11:13:56 2020 +0000
- Revision:
- 2:7dc265489818
pre-finala
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
domino5740 | 2:7dc265489818 | 1 | #ifndef TOKEN_DECODER_H |
domino5740 | 2:7dc265489818 | 2 | #define TOKEN_DECODER_H |
domino5740 | 2:7dc265489818 | 3 | |
domino5740 | 2:7dc265489818 | 4 | #define MAX_TOKEN_NR 2 |
domino5740 | 2:7dc265489818 | 5 | #define MAX_KEYWORD_NR 4 |
domino5740 | 2:7dc265489818 | 6 | #define MAX_KEYWORD_STRING_LTH 20 |
domino5740 | 2:7dc265489818 | 7 | |
domino5740 | 2:7dc265489818 | 8 | typedef enum TokenType {KEYWORD, NUMBER, STRING} TokenType; |
domino5740 | 2:7dc265489818 | 9 | typedef enum KeywordCode {ID, CALIB, GOTO, STEP} KeywordCode; |
domino5740 | 2:7dc265489818 | 10 | enum Result {OK, ERR}; |
domino5740 | 2:7dc265489818 | 11 | |
domino5740 | 2:7dc265489818 | 12 | typedef union TokenValue { |
domino5740 | 2:7dc265489818 | 13 | enum KeywordCode eKeyword; |
domino5740 | 2:7dc265489818 | 14 | unsigned int uiNumber; |
domino5740 | 2:7dc265489818 | 15 | char * pcString; |
domino5740 | 2:7dc265489818 | 16 | } TokenValue; |
domino5740 | 2:7dc265489818 | 17 | |
domino5740 | 2:7dc265489818 | 18 | typedef struct Token { |
domino5740 | 2:7dc265489818 | 19 | enum TokenType eType; |
domino5740 | 2:7dc265489818 | 20 | union TokenValue uValue; |
domino5740 | 2:7dc265489818 | 21 | } Token; |
domino5740 | 2:7dc265489818 | 22 | |
domino5740 | 2:7dc265489818 | 23 | typedef struct Keyword { |
domino5740 | 2:7dc265489818 | 24 | enum KeywordCode eCode; |
domino5740 | 2:7dc265489818 | 25 | char cString[MAX_KEYWORD_STRING_LTH + 1]; |
domino5740 | 2:7dc265489818 | 26 | } Keyword; |
domino5740 | 2:7dc265489818 | 27 | |
domino5740 | 2:7dc265489818 | 28 | class TokenDecoder { |
domino5740 | 2:7dc265489818 | 29 | public: |
domino5740 | 2:7dc265489818 | 30 | void DecodeMsg(char *pcString); |
domino5740 | 2:7dc265489818 | 31 | private: |
domino5740 | 2:7dc265489818 | 32 | unsigned char ucFindTokensInString(char *pcString); |
domino5740 | 2:7dc265489818 | 33 | enum Result eStringToKeyword (char pcStr[], enum KeywordCode *peKeywordCode); |
domino5740 | 2:7dc265489818 | 34 | void DecodeTokens(void); |
domino5740 | 2:7dc265489818 | 35 | }; |
domino5740 | 2:7dc265489818 | 36 | |
domino5740 | 2:7dc265489818 | 37 | #endif |