Merge branch 'finley'
This commit is contained in:
commit
c9fdbac547
46
CLI/CLI.c
46
CLI/CLI.c
@ -6,22 +6,22 @@
|
||||
|
||||
#include "../FIFOBuff/FIFOBuffChar.h"
|
||||
|
||||
CLI_lineOutFn CLI_lineOut;
|
||||
CLI_charOutFn CLI_charOut;
|
||||
CMDList_t* CMDList;
|
||||
FIFOBuffChar_t* FIFO;
|
||||
|
||||
// initilize and register the lineout print function
|
||||
bool CLI_init(CLI_lineOutFn lineOut, CMDList_t* cmdList)
|
||||
bool CLI_init(CLI_charOutFn lineOut, CMDList_t* cmdList)
|
||||
{
|
||||
CLI_lineOut = lineOut;
|
||||
CLI_charOut = lineOut;
|
||||
CMDList = cmdList;
|
||||
|
||||
FIFO = FIFOBuffChar_create();
|
||||
|
||||
if (CLI_lineOut != NULL)
|
||||
if (CLI_charOut != NULL)
|
||||
{
|
||||
(*CLI_lineOut)(">");
|
||||
(*CLI_lineOut)(" ");
|
||||
(*CLI_charOut)(">");
|
||||
(*CLI_charOut)(" ");
|
||||
}
|
||||
|
||||
return true;
|
||||
@ -29,7 +29,7 @@ bool CLI_init(CLI_lineOutFn lineOut, CMDList_t* cmdList)
|
||||
|
||||
bool CLI_deinit()
|
||||
{
|
||||
CLI_lineOut = NULL;
|
||||
CLI_charOut = NULL;
|
||||
CMDList = NULL;
|
||||
|
||||
FIFOBuffChar_delete(FIFO);
|
||||
@ -61,23 +61,23 @@ int tryExecute(FIFOBuffChar_t* fifo)
|
||||
{
|
||||
(*(cmd->fn))(line);
|
||||
|
||||
if (CLI_lineOut != NULL)
|
||||
if (CLI_charOut != NULL)
|
||||
{
|
||||
(*CLI_lineOut)(">");
|
||||
(*CLI_lineOut)(" ");
|
||||
(*CLI_charOut)(">");
|
||||
(*CLI_charOut)(" ");
|
||||
}
|
||||
return true;
|
||||
}
|
||||
else
|
||||
{
|
||||
if (CLI_lineOut != NULL)
|
||||
if (CLI_charOut != NULL)
|
||||
{
|
||||
char err[100];
|
||||
sprintf(&err[0], "command not found: %s\n> ", line);
|
||||
for (int i=0; err[i] != 0; i++)
|
||||
{
|
||||
char c[2] = {err[i], 0};
|
||||
(*CLI_lineOut)(&c[0]);
|
||||
(*CLI_charOut)(&c[0]);
|
||||
}
|
||||
}
|
||||
return false;
|
||||
@ -102,9 +102,9 @@ bool CLI_charIn(char c)
|
||||
)
|
||||
{
|
||||
FIFOBuffChar_put(FIFO, c); // save char in buffer
|
||||
if (CLI_lineOut != NULL)
|
||||
if (CLI_charOut != NULL)
|
||||
{ // echo to terminal
|
||||
(*CLI_lineOut)(&c);
|
||||
(*CLI_charOut)(&c);
|
||||
}
|
||||
}
|
||||
else
|
||||
@ -114,9 +114,9 @@ bool CLI_charIn(char c)
|
||||
{
|
||||
case '\n':
|
||||
case '\r':
|
||||
if (CLI_lineOut != NULL)
|
||||
if (CLI_charOut != NULL)
|
||||
{ // echo to terminal
|
||||
(*CLI_lineOut)(&c);
|
||||
(*CLI_charOut)(&c);
|
||||
}
|
||||
FIFOBuffChar_t* fifo = FIFO;
|
||||
FIFO = FIFOBuffChar_create();
|
||||
@ -127,9 +127,13 @@ bool CLI_charIn(char c)
|
||||
case 127: // backspace
|
||||
if (FIFOBuffChar_pop(FIFO))
|
||||
{
|
||||
(*CLI_lineOut)("\x1b");
|
||||
(*CLI_lineOut)("[");
|
||||
(*CLI_lineOut)("D");
|
||||
(*CLI_charOut)("\x1b");
|
||||
(*CLI_charOut)("[");
|
||||
(*CLI_charOut)("D");
|
||||
(*CLI_charOut)(" ");
|
||||
(*CLI_charOut)("\x1b");
|
||||
(*CLI_charOut)("[");
|
||||
(*CLI_charOut)("D");
|
||||
}
|
||||
break;
|
||||
|
||||
@ -138,7 +142,7 @@ bool CLI_charIn(char c)
|
||||
for (int i=0; str[i] != 0; i++)
|
||||
{
|
||||
char ch[2] = {str[i], 0};
|
||||
(*CLI_lineOut)(&ch[0]);
|
||||
(*CLI_charOut)(&ch[0]);
|
||||
}
|
||||
break;
|
||||
|
||||
@ -147,7 +151,7 @@ bool CLI_charIn(char c)
|
||||
for (int i=0; str[i] != 0; i++)
|
||||
{
|
||||
char ch[2] = {str[i], 0};
|
||||
(*CLI_lineOut)(&ch[0]);
|
||||
(*CLI_charOut)(&ch[0]);
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
||||
@ -5,10 +5,10 @@
|
||||
|
||||
#include "../CMDList/CMDList.h"
|
||||
|
||||
typedef int (*CLI_lineOutFn)(const char* line);
|
||||
typedef int (*CLI_charOutFn)(const char* line);
|
||||
|
||||
// initilize and register the lineout print function
|
||||
bool CLI_init(CLI_lineOutFn lineOut, CMDList_t* cmdList);
|
||||
bool CLI_init(CLI_charOutFn lineOut, CMDList_t* cmdList);
|
||||
bool CLI_deinit();
|
||||
|
||||
// to recive a single caracter
|
||||
|
||||
11
CMakeLists.txt
Normal file
11
CMakeLists.txt
Normal file
@ -0,0 +1,11 @@
|
||||
|
||||
# FIFO Buffer
|
||||
add_library(FIFOBuffChar FIFOBuff/FIFOBuffChar.c)
|
||||
|
||||
# CMD List
|
||||
add_library(CMDList CMDList/CMDList.c)
|
||||
add_library(CMDListPrint CMDList/printList.c)
|
||||
|
||||
# CLI
|
||||
add_library(CLI CLI/CLI.c)
|
||||
target_link_libraries(CLI CMDList FIFOBuffChar)
|
||||
Loading…
x
Reference in New Issue
Block a user