#ifndef __ESP_SERIAL_CMD_H__
#define __ESP_SERIAL_CMD_H__

#include "esp_connection.h"

class EspSerialCmd : public EspConnection {
public:
    /////////////////////////////////////////////////////////////////////////////////////
    // Constructor
    /////////////////////////////////////////////////////////////////////////////////////
    EspSerialCmd();

    /////////////////////////////////////////////////////////////////////////////////////
    // Operations
    /////////////////////////////////////////////////////////////////////////////////////
    void sendCommands();
    void receiveCommands();

private:
    String recvCommand;

    /////////////////////////////////////////////////////////////////////////////////////
    // Helpers
    /////////////////////////////////////////////////////////////////////////////////////
    void displayBanner();

    void displayRecvCommand(bool success);
    void displayRecvError();
    void displayRecvFooter();

    void displaySentCommand(const char *command);
    void displaySentError();
    void displaySentFooter();

    Message createCmdMessage();
};

#endif
