Krzysztof Bolek / Mbed 2 deprecated mbed_cz2_2_5

Dependencies:   LCD_DISCO_F429ZI mbed BSP_DISCO_F429ZI

Embed: (wiki syntax)

« Back to documentation index

Show/hide line numbers command_decoder.h Source File

command_decoder.h

00001 #ifndef COMMAND_DECODER_H
00002 #define COMMAND_DECODER_H
00003 #include "mbed.h"
00004 #include <string>
00005 
00006 #define MAX_TOKEN_NR 2 
00007 #define MAX_KEYWORD_STRING_LTH 6
00008 #define MAX_KEYWORD_NR 4
00009 #define DELIMITER_CHAR 0x20
00010 
00011 enum TokenType { KEYWORD, NUMBER, STRING};
00012 enum KeywordCode {ID,CALLIB,GOTO,STEP};
00013 enum Result { OK, FAIL };
00014 
00015 
00016 union TokenValue {
00017     enum KeywordCode eKeyword;
00018     unsigned int uiNumber;
00019     char *pcString;
00020 };
00021 
00022 struct Token {
00023     enum TokenType eType; 
00024     union TokenValue uValue;
00025 };
00026 
00027 struct Keyword {
00028     enum KeywordCode eCode;
00029     char cString[MAX_KEYWORD_STRING_LTH + 1]; 
00030 };
00031 
00032 class CommandDecoder {
00033     public:
00034         void DecodeMsg(char *pcString);
00035         struct Token asToken[MAX_TOKEN_NR];
00036         unsigned char ucTokenNr;
00037     private:
00038         enum Result eHexStringToUInt(char pcStr[],unsigned int *puiValue);
00039         void ReplaceCharactersInString(char pcString[], char cOldChar,char cNewChar);
00040         void TokenizeString(char *pcString);
00041         unsigned char ucFindTokensInString(char *pcString);
00042         enum Result eStringToKeyword(char pcStr[],enum KeywordCode *peKeywordCode);
00043         enum Result DecodeTokens();
00044        
00045 };    
00046 
00047 #endif