Compare commits

...

4 Commits

Author SHA1 Message Date
c9fdbac547 Merge branch 'finley' 2024-04-12 17:17:49 +02:00
cbe0bcbdd7 add CMakeList for librarys 2024-04-12 15:01:52 +02:00
8433dbf42a rename lineout function to char out 2024-04-11 17:53:13 +02:00
21cc50e4a7 update backspace 2024-04-08 15:45:40 +02:00
3 changed files with 38 additions and 23 deletions

View File

@ -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;
}

View File

@ -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
View 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)