![](/media/cache/img/default_profile.jpg.50x50_q85.jpg)
Finalny program mbed2
Dependencies: LCD_DISCO_F429ZI mbed TS_DISCO_F429ZI BSP_DISCO_F429ZI
command_decoder.h@0:33ff53112cc9, 2020-06-09 (annotated)
- Committer:
- azmuth_sd
- Date:
- Tue Jun 09 08:24:40 2020 +0000
- Revision:
- 0:33ff53112cc9
Ostatni program drugiej czesci mbed
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
azmuth_sd | 0:33ff53112cc9 | 1 | #ifndef COMMAND_DECODER_H |
azmuth_sd | 0:33ff53112cc9 | 2 | #define COMMAND_DECODER_H |
azmuth_sd | 0:33ff53112cc9 | 3 | |
azmuth_sd | 0:33ff53112cc9 | 4 | #define MAX_TOKEN_NR 2 |
azmuth_sd | 0:33ff53112cc9 | 5 | #define MAX_KEYWORD_STRING_LTH 10 |
azmuth_sd | 0:33ff53112cc9 | 6 | #define MAX_KEYWORD_NR 4 |
azmuth_sd | 0:33ff53112cc9 | 7 | |
azmuth_sd | 0:33ff53112cc9 | 8 | |
azmuth_sd | 0:33ff53112cc9 | 9 | enum CharacterType {TOKEN, DELIMITER}; |
azmuth_sd | 0:33ff53112cc9 | 10 | enum TokenType {KEYWORD, NUMBER, STRING}; |
azmuth_sd | 0:33ff53112cc9 | 11 | enum KeywordCode { ID, CALIB, GOTO, STEP }; |
azmuth_sd | 0:33ff53112cc9 | 12 | |
azmuth_sd | 0:33ff53112cc9 | 13 | struct Keyword { |
azmuth_sd | 0:33ff53112cc9 | 14 | |
azmuth_sd | 0:33ff53112cc9 | 15 | enum KeywordCode eCode; |
azmuth_sd | 0:33ff53112cc9 | 16 | char cString[MAX_KEYWORD_STRING_LTH + 1]; |
azmuth_sd | 0:33ff53112cc9 | 17 | }; |
azmuth_sd | 0:33ff53112cc9 | 18 | |
azmuth_sd | 0:33ff53112cc9 | 19 | |
azmuth_sd | 0:33ff53112cc9 | 20 | union TokenValue { |
azmuth_sd | 0:33ff53112cc9 | 21 | |
azmuth_sd | 0:33ff53112cc9 | 22 | enum KeywordCode eKeyword; // jezeli KEYWORD |
azmuth_sd | 0:33ff53112cc9 | 23 | unsigned int uiNumber; // jezeli NUMBER |
azmuth_sd | 0:33ff53112cc9 | 24 | char * pcString; // jezeli STRING |
azmuth_sd | 0:33ff53112cc9 | 25 | }; |
azmuth_sd | 0:33ff53112cc9 | 26 | |
azmuth_sd | 0:33ff53112cc9 | 27 | struct tToken { |
azmuth_sd | 0:33ff53112cc9 | 28 | |
azmuth_sd | 0:33ff53112cc9 | 29 | enum TokenType eType; // KEYWORD, NUMBER, STRING |
azmuth_sd | 0:33ff53112cc9 | 30 | union TokenValue uValue; // enum, unsigned int, char* |
azmuth_sd | 0:33ff53112cc9 | 31 | }; |
azmuth_sd | 0:33ff53112cc9 | 32 | |
azmuth_sd | 0:33ff53112cc9 | 33 | class Token { |
azmuth_sd | 0:33ff53112cc9 | 34 | |
azmuth_sd | 0:33ff53112cc9 | 35 | private: |
azmuth_sd | 0:33ff53112cc9 | 36 | unsigned char ucFindTokensInString (char *pcString); |
azmuth_sd | 0:33ff53112cc9 | 37 | void DecodeTokens(void); |
azmuth_sd | 0:33ff53112cc9 | 38 | enum Result eSringToKeyword (char pcStr[],enum KeywordCode *peKeywordCode); |
azmuth_sd | 0:33ff53112cc9 | 39 | enum Result eHexStringToUInt(char pcStr[],unsigned int *puiValue); |
azmuth_sd | 0:33ff53112cc9 | 40 | void ReplaceCharactersInString(char pcString[],char cOldChar,char cNewChar); |
azmuth_sd | 0:33ff53112cc9 | 41 | public: |
azmuth_sd | 0:33ff53112cc9 | 42 | struct tToken asToken[MAX_TOKEN_NR]; |
azmuth_sd | 0:33ff53112cc9 | 43 | unsigned char ucTokenNr; |
azmuth_sd | 0:33ff53112cc9 | 44 | void DecodeMsg(char *pcString); |
azmuth_sd | 0:33ff53112cc9 | 45 | }; |
azmuth_sd | 0:33ff53112cc9 | 46 | |
azmuth_sd | 0:33ff53112cc9 | 47 | |
azmuth_sd | 0:33ff53112cc9 | 48 | #endif |