Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Dependencies: LCD_DISCO_F429ZI mbed BSP_DISCO_F429ZI
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
Generated on Sat Jul 16 2022 04:55:53 by
