1#ifndef UARTCOMMANDHANDLER_H
2#define UARTCOMMANDHANDLER_H
34 void addCommand(
const std::string& longName,
const std::string& shortName, std::function<
void(std::queue<std::string> argumentQueue ,std::string&)> funcPtr);
35 void executeCommand(
const std::string& command, std::queue<std::string> arguments);
47 uart_->println(message.c_str());
49 void print(
const std::string& message){
50 uart_->print(message.c_str());
58 std::string shortName;
59 std::function<void(std::queue<std::string>, std::string&)> funcPtr;
61 std::vector<Command> commands_{};
64 std::string fullLine_ = {
""};
68 void trimSpaces(std::string& str);
70 void handleBackspace_();
71 void handleNewline_();
72 void handleChar_(
char receivedChar);
74 bool lastWasCR_ =
false;
75 uint32_t lastInteractionTimestamp_ = 0;
constexpr int kMaxRowLength
constexpr int kUartBufferSize
constexpr int kMaxArguments
constexpr const char * kShellPrompt
CommandLine(Stream *uartStream)
void print(const std::string &message)
void switchUART(Stream *newUart)
void executeCommand(const std::string &command, std::queue< std::string > arguments)
void addCommand(const std::string &longName, const std::string &shortName, std::function< void(std::queue< std::string > argumentQueue, std::string &)> funcPtr)
Stream * getDefaultUART() const
Stream * getActiveUART() const
uint32_t getLastInteractionTimestamp() const
void println(const std::string &message)
void processCommand(const std::string &command)