35#ifndef SHELLMINATOR_HPP_
36#define SHELLMINATOR_HPP_
45#ifdef SHELLMINATOR_USE_WIFI_CLIENT
47 #include <ESP8266WiFi.h>
56 #if __has_include ("Commander-API.hpp")
57 #include "Commander-API.hpp"
61#ifdef COMMANDER_API_VERSION
62#include "Commander-API.hpp"
76#ifdef SHELLMINATOR_ENABLE_QR_SUPPORT
84#ifndef SHELLMINATOR_BUFF_LEN
85#define SHELLMINATOR_BUFF_LEN 20
92#ifndef SHELLMINATOR_BUFF_DIM
93#define SHELLMINATOR_BUFF_DIM 5
98#ifndef SHELLMINATOR_BANNER_LEN
99#define SHELLMINATOR_BANNER_LEN 20
103#define SHELLMINATOR_VERSION "1.1.1"
107#ifndef SHELLMINATOR_LOGO_FONT_STYLE
108#define SHELLMINATOR_LOGO_FONT_STYLE BOLD
111#ifndef SHELLMINATOR_LOGO_COLOR
112#define SHELLMINATOR_LOGO_COLOR RED
157#ifdef SHELLMINATOR_USE_ARDUINO_SERIAL
169 Shellminator( HardwareSerial *serialPort_p,
void( *execution_fn_p )(
char* ) );
172#ifdef SHELLMINATOR_USE_ARDUINO_32U4_SERIAL
184 Shellminator( Serial_ *serialPort_p,
void( *execution_fn_p )(
char* ) );
187#ifdef SHELLMINATOR_USE_WIFI_CLIENT
199 Shellminator( WiFiClient *resp,
void( *execution_fn_p )(
char* ) );
206 void addExecFunc(
void( *execution_fn_p )(
char* ) );
214 void begin(
char* banner_p );
222 void begin(
const char* banner_p );
370 #ifdef COMMANDER_API_VERSION
372 void attachCommander( Commander* commander_p );
377 #ifdef SHELLMINATOR_ENABLE_QR_SUPPORT
386 void generateQRText(
char* text );
395 void generateQRText(
const char* text );
404 void generateQRText(
char* text,
enum qrcodegen_Ecc ecc );
413 void generateQRText(
const char* text,
enum qrcodegen_Ecc ecc );
428 void( *execution_fn )(
char* );
444 uint32_t cmd_buff_dim = 1;
447 uint32_t cmd_buff_cntr = 0;
453 uint32_t escape_state = 0;
459 void( *upArrowOverrideFunc )( void ) = NULL;
462 void( *downArrowOverrideFunc )( void ) = NULL;
465 void( *leftArrowOverrideFunc )( void ) = NULL;
468 void( *rightArrowOverrideFunc )( void ) = NULL;
471 void( *abortKeyFunc )( void ) = NULL;
479 void process(
char new_char );
492 #ifdef SHELLMINATOR_USE_ARDUINO_SERIAL
497 #ifdef SHELLMINATOR_USE_ARDUINO_32U4_SERIAL
502 #ifdef SHELLMINATOR_USE_WIFI_CLIENT
512 #ifdef COMMANDER_API_VERSION
515 Commander* commander = NULL;
518 uint32_t commandCheckTimerStart = 0;
521 bool commandChecked =
false;
525 bool commandFound =
false;
530 #ifdef SHELLMINATOR_ENABLE_QR_SUPPORT
532 uint8_t qr_data[ qrcodegen_BUFFER_LEN_MAX ];
533 uint8_t qr_tempBuff[ qrcodegen_BUFFER_LEN_MAX ];
#define SHELLMINATOR_BUFF_LEN
+---— Costum configuration ---—+ | | | This is where you have to config | | your defines!...
#define SHELLMINATOR_BANNER_LEN
Maximum length of the banner text.
#define SHELLMINATOR_BUFF_DIM
Definition of the maximum length of the previous command memory.
void begin(char *banner_p)
Shellminator initialization function.
void clear()
Clear screen.
void freeLeftArrow()
Reset left arrow key functionality to default.
void overrideUpArrow(void(*func)(void))
Override up arrow key behaviour.
void update()
Update function.
void addExecFunc(void(*execution_fn_p)(char *))
Execution function adder function.
bool enableFormatting
This flag enables or disables character formatting.
void overrideRightArrow(void(*func)(void))
Override right arrow key behaviour.
void freeAbortKey()
Reset abort key functionality to default.
void sendBackspace()
Sends a backspace.
void freeUpArrow()
Reset up arrow key functionality to default.
void overrideDownArrow(void(*func)(void))
Override down arrow key behaviour.
void overrideAbortKey(void(*func)(void))
Override abort key behaviour.
void attachLogo(char *logo_p)
This function attaches a logo to the terminal.
void overrideLeftArrow(void(*func)(void))
Override left arrow key behaviour.
void setTerminalCharacterColor(uint8_t style, uint8_t color)
Bring some color into your code.
void freeRightArrow()
Reset right arrow key functionality to default.
void drawLogo()
Draws the startup logo.
void setBannerText(char *banner_p)
This function sets the banner text.
void freeDownArrow()
Reset down arrow key functionality to default.
static const char * version
String that holds the version information.
Shellminator channel class for Arduino Serial objects.
Shellminator channel class for Arduino Serial objects.
Shellminator channel class.