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: mbed SDFileSystem
include/CommandParser.h
- Committer:
- Inscape_ao
- Date:
- 2019-04-21
- Revision:
- 1:71c9c97c9f3d
- Parent:
- 0:c347f602596d
- Child:
- 2:a694440145e9
File content as of revision 1:71c9c97c9f3d:
#ifndef _COMMANDPARSER_H_
#define _COMMANDPARSER_H_
#include "UartReceiver.h"
class CommandParser;
typedef struct _command_parser_rule_s {
char* cmdName;
int(*func)(CommandParser*, char*);
} CmdParseRule;
class CommandParser
{
public:
const static int CmdNameLen = 3;
const static int CmdLen = sizeof(":0 CMD 0000") - 1 /* EOL */;
class CmdReply
{
public:
const static int Success = 0;
const static int InvalidFmt = 1;
const static int InvalidCmd = 2;
const static int InvalidLen = 3;
};
private:
int deviceID;
UartReceiver *pR;
Serial *pUart;
CmdParseRule *ruleTable;
int ruleTableLen;
private:
CommandParser(void);
public:
CommandParser(UartReceiver *setUartReceiver, int setDeviceID,
CmdParseRule *setRuleTable, int setRuleTableLen);
void run(void);
int parse(char *pStr);
int getDeviceID(void);
void reply(bool ack = true, int replyCode = 0);
void reply(bool ack, char *replyStr);
};
#endif /* _COMMANDPARSER_H_ */