Finalny program mbed2

Dependencies:   LCD_DISCO_F429ZI mbed TS_DISCO_F429ZI BSP_DISCO_F429ZI

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?

UserRevisionLine numberNew 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