Skip to content

Commit 7f87353

Browse files
authored
Merge pull request #9 from J-Rios/memory-improvements
HAL selection and configuration file
2 parents 246d0ee + aa2f4b6 commit 7f87353

6 files changed

Lines changed: 530 additions & 118 deletions

File tree

examples/arduino/basic_usage/src/main.cpp

Lines changed: 20 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -76,7 +76,7 @@ void setup()
7676

7777
// CLI init to use Serial as interface
7878
Cli.setup(&Serial, SERIAL_BAUDS);
79-
Cli.printf(PSTR("\nCommand Line Interface is ready\n\n"));
79+
Cli.printf("\nCommand Line Interface is ready\n\n");
8080
}
8181

8282
void loop()
@@ -87,21 +87,21 @@ void loop()
8787
if(Cli.manage(&cli_read))
8888
{
8989
// Show read result element
90-
Cli.printf(PSTR("Command received: %s\n"), cli_read.cmd);
91-
Cli.printf(PSTR("Number of arguments: %d\n"), (int)(cli_read.argc));
90+
Cli.printf("Command received: %s\n", cli_read.cmd);
91+
Cli.printf("Number of arguments: %d\n"), (int)(cli_read.argc);
9292
for(int i = 0; i < cli_read.argc; i++)
93-
Cli.printf(PSTR(" Argument %d: %s"), i, cli_read.argv[i]);
94-
Cli.printf(PSTR("\n"));
93+
Cli.printf(" Argument %d: %s", i, cli_read.argv[i]);
94+
Cli.printf("\n");
9595

9696
// Handle Commands
97-
if(strcmp(cli_read.cmd, PSTR("help")) == 0)
97+
if(strcmp(cli_read.cmd, "help") == 0)
9898
{
99-
Cli.printf(PSTR("Available Commands:\n"));
100-
Cli.printf(PSTR(" help - Current info.\n"));
101-
Cli.printf(PSTR(" led [on/off] - Turn LED ON or OFF.\n"));
102-
Cli.printf(PSTR(" version - Shows current firmware version.\n"));
99+
Cli.printf("Available Commands:\n");
100+
Cli.printf(" help - Current info.\n");
101+
Cli.printf(" led [on/off] - Turn LED ON or OFF.\n");
102+
Cli.printf(" version - Shows current firmware version.\n");
103103
}
104-
else if(strcmp(cli_read.cmd, PSTR("led")) == 0)
104+
else if(strcmp(cli_read.cmd, "led") == 0)
105105
{
106106
bool invalid_argv = false;
107107
char* led_mode = NULL;
@@ -112,30 +112,30 @@ void loop()
112112
else
113113
{
114114
led_mode = cli_read.argv[0];
115-
if(strcmp(led_mode, PSTR("on")) == 0)
115+
if(strcmp(led_mode, "on") == 0)
116116
{
117-
Cli.printf(PSTR("Turning LED ON.\n"));
117+
Cli.printf("Turning LED ON.\n");
118118
digitalWrite(COMMAND_LED, HIGH);
119119
}
120-
else if(strcmp(led_mode, PSTR("off")) == 0)
120+
else if(strcmp(led_mode, "off") == 0)
121121
{
122-
Cli.printf(PSTR("Turning LED OFF.\n"));
122+
Cli.printf("Turning LED OFF.\n");
123123
digitalWrite(COMMAND_LED, LOW);
124124
}
125125
else
126126
invalid_argv = true;
127127
}
128128

129129
if(invalid_argv)
130-
Cli.printf(PSTR("led command needs \"on\" or \"off\" arg.\n"));
130+
Cli.printf("led command needs \"on\" or \"off\" arg.\n");
131131
}
132-
else if(strcmp(cli_read.cmd, PSTR("version")) == 0)
132+
else if(strcmp(cli_read.cmd, "version") == 0)
133133
{
134-
Cli.printf(PSTR("FW App Version: %s\n"), FW_APP_VERSION);
134+
Cli.printf("FW App Version: %s\n", FW_APP_VERSION);
135135
}
136136
// ...
137137
else
138-
Cli.printf(PSTR("Unkown command.\n"));
139-
Cli.printf(PSTR("\n"));
138+
Cli.printf("Unkown command.\n");
139+
Cli.printf("\n");
140140
}
141141
}

examples/arduino/basic_usage_callbacks/src/main.cpp

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -91,14 +91,14 @@ void setup()
9191
Cli.setup(&Serial, SERIAL_BAUDS);
9292

9393
// Add commands and bind callbacks to them
94-
Cli.add_cmd("led", &cmd_led, PSTR("led [on/off], Turn LED ON/OFF."));
95-
Cli.add_cmd("version", &cmd_version, PSTR("Shows firmware version."));
94+
Cli.add_cmd("led", &cmd_led, "led [on/off], Turn LED ON/OFF.");
95+
Cli.add_cmd("version", &cmd_version, "Shows firmware version.");
9696

9797
// The "help" command is already builtin and available from the CLI, and it
9898
// will shows added command descriptions, but you can setup a custom one
99-
Cli.add_cmd("help", &cmd_help, PSTR("Shows program help information."));
99+
Cli.add_cmd("help", &cmd_help, "Shows program help information.");
100100

101-
Cli.printf(PSTR("\nCommand Line Interface is ready\n\n"));
101+
Cli.printf("\nCommand Line Interface is ready\n\n");
102102
}
103103

104104
void loop()
@@ -117,8 +117,8 @@ void loop()
117117
void cmd_help(MINBASECLI* Cli, int argc, char* argv[])
118118
{
119119
// Show some Info text
120-
Cli->printf(PSTR("\nCustom Help Command\n"));
121-
Cli->printf(PSTR("MINBASECLI basic_usage_callbacks %s\n"), FW_APP_VERSION);
120+
Cli->printf("\nCustom Help Command\n");
121+
Cli->printf("MINBASECLI basic_usage_callbacks %s\n", FW_APP_VERSION);
122122

123123
// Call the builtin "help" function to show added command descriptions
124124
Cli->cmd_help(argc, argv);
@@ -135,25 +135,25 @@ void cmd_led(MINBASECLI* Cli, int argc, char* argv[])
135135
char* test_mode = argv[0];
136136
if(strcmp(test_mode, "on") == 0)
137137
{
138-
Cli->printf(PSTR("Turning LED ON.\n"));
138+
Cli->printf("Turning LED ON.\n");
139139
digitalWrite(COMMAND_LED, HIGH);
140140
}
141141
else if(strcmp(test_mode, "off") == 0)
142142
{
143-
Cli->printf(PSTR("Turning LED OFF.\n"));
143+
Cli->printf("Turning LED OFF.\n");
144144
digitalWrite(COMMAND_LED, LOW);
145145
}
146146
else
147147
{ invalid_argv = true; }
148148
}
149149

150150
if(invalid_argv)
151-
{ Cli->printf(PSTR("led command needs \"on\" or \"off\" arg.\n")); }
151+
{ Cli->printf("led command needs \"on\" or \"off\" arg.\n"); }
152152

153-
Cli->printf(PSTR("\n"));
153+
Cli->printf("\n");
154154
}
155155

156156
void cmd_version(MINBASECLI* Cli, int argc, char* argv[])
157157
{
158-
Cli->printf(PSTR("FW App Version: %s\n"), FW_APP_VERSION);
158+
Cli->printf("FW App Version: %s\n", FW_APP_VERSION);
159159
}

examples/avr/basic_usage_callbacks/src/main.cpp

Lines changed: 11 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -60,6 +60,16 @@
6060

6161
/*****************************************************************************/
6262

63+
/* Global Elements */
64+
65+
// UART Object
66+
AvrUart Serial(UART0, F_CPU);
67+
68+
// Command Line Interface Object
69+
MINBASECLI Cli;
70+
71+
/*****************************************************************************/
72+
6373
/* Function Prototypes */
6474

6575
// Initialize the LED (GPIO)
@@ -86,17 +96,14 @@ void cmd_version(MINBASECLI* Cli, int argc, char* argv[]);
8696

8797
int main(void)
8898
{
89-
static AvrUart Serial(UART0, F_CPU);
90-
static MINBASECLI Cli;
91-
9299
// Set LED Pin as digital Output
93100
led_init();
94101

95102
// Initilize UART0
96103
Serial.setup(SERIAL_BAUDS);
97104

98105
// CLI init to use Serial as interface
99-
Cli.setup(&Serial);
106+
Cli.setup(&Serial, SERIAL_BAUDS);
100107

101108
// Add commands and bind callbacks to them
102109
Cli.add_cmd("led", &cmd_led, PSTR("led [on/off], Turn LED ON or OFF.."));

examples/espidf/basic_usage_callbacks/src/main.cpp

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -79,7 +79,6 @@ bool launch_threads(void);
7979

8080
// CLI Thread
8181
void th_cli_interpreter(void* arg);
82-
void cli_interpreter(t_cli_result* cli_read);
8382

8483
// CLI command callback functions
8584
void cmd_help(MINBASECLI* Cli, int argc, char* argv[]);

src/minbasecli.h

Lines changed: 2 additions & 82 deletions
Original file line numberDiff line numberDiff line change
@@ -45,88 +45,8 @@
4545
#include <stdbool.h>
4646
#include <stddef.h>
4747

48-
/*****************************************************************************/
49-
50-
/* Use Specific HAL for build system */
51-
52-
#if defined(__linux__)
53-
#include "hal/linux/minbasecli_linux.h"
54-
#define MINBASECLI_HAL MINBASECLI_LINUX
55-
#elif defined(_WIN32) || defined(_WIN64)
56-
#include "hal/windows/minbasecli_windows.h"
57-
#define MINBASECLI_HAL MINBASECLI_WINDOWS
58-
#elif defined(ARDUINO)
59-
#include "hal/arduino/minbasecli_arduino.h"
60-
#define MINBASECLI_HAL MINBASECLI_ARDUINO
61-
#elif defined(__AVR)
62-
#include "hal/avr/minbasecli_avr.h"
63-
#define MINBASECLI_HAL MINBASECLI_AVR
64-
#elif defined(ESP_PLATFORM)
65-
#include "hal/espidf/minbasecli_espidf.h"
66-
#define MINBASECLI_HAL MINBASECLI_ESPIDF
67-
#elif defined(STM32F0) || defined(STM32F1) || defined(STM32F2) \
68-
|| defined(STM32G0) || defined(STM32G4) || defined(STM32H7) \
69-
|| defined(STM32F3) || defined(STM32F4) || defined(STM32F7) \
70-
|| defined(STM32L0) || defined(STM32L1) || defined(STM32L4) \
71-
|| defined(STM32L5) || defined(STM32MP1) || defined(STM32U5) \
72-
|| defined(STM32WB) || defined(STM32WL)
73-
#include "hal/stm32/minbasecli_stm32.h"
74-
#define MINBASECLI_HAL MINBASECLI_STM32
75-
#else
76-
#warning "minbasecli - Unsupported device/system."
77-
#define HAL_NONE
78-
#include "hal/none/minbasecli_none.h"
79-
#define MINBASECLI_HAL MINBASECLI_NONE
80-
#endif
81-
82-
/*****************************************************************************/
83-
84-
/* Configuration Defines */
85-
86-
// Default CLI Interface to use if not provided
87-
#if !defined(MINBASECLI_DEFAULT_IFACE)
88-
#define MINBASECLI_DEFAULT_IFACE NULL
89-
#endif
90-
91-
// Default CLI Baud Rate Speed to use if not provided
92-
#if !defined(MINBASECLI_DEFAULT_BAUDS)
93-
#define MINBASECLI_DEFAULT_BAUDS 115200
94-
#endif
95-
96-
// Maximum CLI read buffer size
97-
#if !defined(MINBASECLI_MAX_READ_SIZE)
98-
#define MINBASECLI_MAX_READ_SIZE 64
99-
#endif
100-
101-
// Maximum CLI Command length
102-
#if !defined(MINBASECLI_MAX_CMD_LEN)
103-
#define MINBASECLI_MAX_CMD_LEN 24
104-
#endif
105-
106-
// Maximum CLI Command Argument length
107-
#if !defined(MINBASECLI_MAX_ARGV_LEN)
108-
#define MINBASECLI_MAX_ARGV_LEN 32
109-
#endif
110-
111-
// Maximum number of arguments to check on a received CLI command
112-
#if !defined(MINBASECLI_MAX_ARGV)
113-
#define MINBASECLI_MAX_ARGV 4
114-
#endif
115-
116-
// Maximum Print formated number array size
117-
#if !defined(MINBASECLI_MAX_PRINT_SIZE)
118-
#define MINBASECLI_MAX_PRINT_SIZE 22
119-
#endif
120-
121-
// Maximum number of commands that can be added to the CLI
122-
#if !defined(MINBASECLI_MAX_CMD_TO_ADD)
123-
#define MINBASECLI_MAX_CMD_TO_ADD 16
124-
#endif
125-
126-
// Maximum length of command description text
127-
#if !defined(MINBASECLI_MAX_CMD_DESCRIPTION)
128-
#define MINBASECLI_MAX_CMD_DESCRIPTION 64
129-
#endif
48+
// Interface HAL Selection and configuration
49+
#include "minbasecli_hal_select.h"
13050

13151
/*****************************************************************************/
13252

0 commit comments

Comments
 (0)