|
CmdMessenger
3.0
CmdMessenger is a messaging library for the Arduino Platform. It has uses the serial port as its transport layer
|
Public Member Functions | |
| CmdMessenger (Stream &comms, const char fld_separator= ',', const char cmd_separator= ';', const char esc_character= '/') | |
| void | printLfCr (bool addNewLine=true) |
| void | attach (messengerCallbackFunction newFunction) |
| void | attach (byte msgId, messengerCallbackFunction newFunction) |
| void | feedinSerialData () |
| bool | next () |
| bool | available () |
| uint8_t | CommandID () |
| template<class T > | |
| bool | sendCmd (int cmdId, T arg, bool reqAc=false, int ackCmdId=1, int timeout=5000) |
| template<class T > | |
| bool | sendBinCmd (int cmdId, T arg, bool reqAc=false, int ackCmdId=1, int timeout=5000) |
| void | sendCmdStart (int cmdId) |
| void | sendCmdEscArg (char *arg) |
| void | sendCmdfArg (char *fmt,...) |
| bool | sendCmdEnd (bool reqAc=false, int ackCmdId=1, int timeout=5000) |
| template<class T > | |
| void | sendCmdArg (T arg) |
| template<class T > | |
| void | sendCmdArg (T arg, int n) |
| template<class T > | |
| void | sendCmdBinArg (T arg) |
| bool | readBoolArg () |
| int | readIntArg () |
| char | readCharArg () |
| float | readFloatArg () |
| char * | readStringArg () |
| void | copyStringArg (char *string, uint8_t size) |
| uint8_t | compareStringArg (char *string) |
| template<class T > | |
| T | readBinArg () |
| void | unescape (char *fromChar) |
| CmdMessenger::CmdMessenger | ( | Stream & | ccomms, |
| const char | fld_separator = ',', |
||
| const char | cmd_separator = ';', |
||
| const char | esc_character = '/' |
||
| ) |
CmdMessenger constructor
| void CmdMessenger::attach | ( | messengerCallbackFunction | newFunction | ) |
Attaches an default function for commands that are not explicitly attached
| void CmdMessenger::attach | ( | byte | msgId, |
| messengerCallbackFunction | newFunction | ||
| ) |
Attaches a function to a command ID
| bool CmdMessenger::available | ( | ) |
| uint8_t CmdMessenger::CommandID | ( | ) |
Returns the CommandID of the current command
| uint8_t CmdMessenger::compareStringArg | ( | char * | string | ) |
Compare the next argument with a string
References next().
| void CmdMessenger::copyStringArg | ( | char * | string, |
| uint8_t | size | ||
| ) |
Return next argument as a new string Note that this is useful if the string needs to be persisted
References next().
| void CmdMessenger::feedinSerialData | ( | ) |
Feeds serial data in CmdMessenger
| bool CmdMessenger::next | ( | ) |
Gets next argument. Returns true if an argument is available
Referenced by available(), compareStringArg(), copyStringArg(), readCharArg(), readFloatArg(), readIntArg(), and readStringArg().
| void CmdMessenger::printLfCr | ( | bool | addNewLine = true | ) |
Enables printing newline after a sent command
| T CmdMessenger::readBinArg | ( | ) | [inline] |
Read an argument of any type in binary format
| bool CmdMessenger::readBoolArg | ( | ) |
Read the next argument as bool
References readIntArg().
| char CmdMessenger::readCharArg | ( | ) |
Read the next argument as char
References next().
| float CmdMessenger::readFloatArg | ( | ) |
Read the next argument as float
References next().
| int CmdMessenger::readIntArg | ( | ) |
| char * CmdMessenger::readStringArg | ( | ) |
Read next argument as string. Note that the String is valid until the current command is replaced
References next().
| bool CmdMessenger::sendBinCmd | ( | int | cmdId, |
| T | arg, | ||
| bool | reqAc = false, |
||
| int | ackCmdId = 1, |
||
| int | timeout = 5000 |
||
| ) | [inline] |
Send a command with a single argument of any type Note that the argument is sent in binary format
References sendCmdBinArg(), sendCmdEnd(), and sendCmdStart().
| bool CmdMessenger::sendCmd | ( | int | cmdId, |
| T | arg, | ||
| bool | reqAc = false, |
||
| int | ackCmdId = 1, |
||
| int | timeout = 5000 |
||
| ) | [inline] |
Send a command with a single argument of any type Note that the argument is sent as string
References sendCmdArg(), sendCmdEnd(), and sendCmdStart().
| void CmdMessenger::sendCmdArg | ( | T | arg | ) | [inline] |
Send a single argument as string Note that this will only succeed if a sendCmdStart has been issued first
Referenced by sendCmd().
| void CmdMessenger::sendCmdArg | ( | T | arg, |
| int | n | ||
| ) | [inline] |
Send a single argument as string with custom accuracy Note that this will only succeed if a sendCmdStart has been issued first
| void CmdMessenger::sendCmdBinArg | ( | T | arg | ) | [inline] |
Send a single argument in binary format Note that this will only succeed if a sendCmdStart has been issued first
Referenced by sendBinCmd().
| bool CmdMessenger::sendCmdEnd | ( | bool | reqAc = false, |
| int | ackCmdId = 1, |
||
| int | timeout = 5000 |
||
| ) |
Send end of command
Referenced by sendBinCmd(), and sendCmd().
| void CmdMessenger::sendCmdEscArg | ( | char * | arg | ) |
Send an escaped command argument
| void CmdMessenger::sendCmdfArg | ( | char * | fmt, |
| ... | |||
| ) |
Send formatted argument. Note that floating points are not supported and resulting string is limited to 128 chars
| void CmdMessenger::sendCmdStart | ( | int | cmdId | ) |
Send start of command. This makes it easy to send multiple arguments per command
Referenced by sendBinCmd(), and sendCmd().
| void CmdMessenger::unescape | ( | char * | fromChar | ) |
Unescapes a string Note that this is done inline
1.7.6.1