/** * Command Status class * * Creates an object that holds an error message and a number of * optional numeric values. Each value has a format (hex, * decimal) and a label. The printStatus call formats all of * the data in the command status and prints it out to the * serial port. */ class CmdStatus { public: CmdStatus(); void clear(); void info(const char * msg); void error(const char * msg); void setValueDec(int index, const char * label, long value); void setValueHex(int index, const char * label, long value); bool isClear(); void printStatus(); private: enum { MAX_VALUES = 3 }; enum StatusLevel { SL_NONE, SL_INFO, SL_ERROR }; enum ValueType { VT_NONE, VT_DEC, VT_HEX }; struct StatusValue { const char * label; ValueType valType; long value; }; StatusLevel level; const char * message; StatusValue values[MAX_VALUES]; void setLongValue(int index, const char * label, long value, ValueType vt); };