lwshell/dev/main.c

99 lines
2.2 KiB
C
Raw Normal View History

#include <stdio.h>
#include "lwshell/lwshell.h"
#include <string.h>
#include <stdint.h>
2021-04-13 23:38:03 +02:00
void example_minimal(void);
2021-04-07 23:58:58 +02:00
int32_t
addint_cmd(int32_t argc, char** argv) {
2021-04-08 19:34:20 +02:00
long long i1, i2;
if (argc < 3) {
return -1;
}
i1 = lwshell_parse_long_long(argv[1]);
i2 = lwshell_parse_long_long(argv[2]);
printf("%lld\r\n", i1 + i2);
return 0;
}
int32_t
subint_cmd(int32_t argc, char** argv) {
long long i1, i2;
if (argc < 3) {
return -1;
}
i1 = lwshell_parse_long_long(argv[1]);
i2 = lwshell_parse_long_long(argv[2]);
printf("%lld\r\n", i1 - i2);
return 0;
}
int32_t
adddbl_cmd(int32_t argc, char** argv) {
double i1, i2;
if (argc < 3) {
return -1;
}
i1 = lwshell_parse_double(argv[1]);
i2 = lwshell_parse_double(argv[2]);
printf("%f\r\n", (i1 + i2));
return 0;
}
int32_t
subdbl_cmd(int32_t argc, char** argv) {
double i1, i2;
if (argc < 3) {
return -1;
2021-04-07 23:58:58 +02:00
}
2021-04-08 19:34:20 +02:00
i1 = lwshell_parse_double(argv[1]);
i2 = lwshell_parse_double(argv[2]);
printf("%f\r\n", (i1 - i2));
2021-04-07 23:58:58 +02:00
return 0;
}
2021-04-12 23:35:26 +02:00
/**
* \brief Application output function
* \param[in] str: String to print, null-terminated
* \param[in] lw: LwSHELL instance
*/
void
shell_output(const char* str, lwshell_t* lw) {
printf("%s", str);
if (*str == '\r') {
printf("\n");
}
}
2021-04-13 23:38:03 +02:00
/* Program entry point */
int
2021-04-13 23:38:03 +02:00
main(void) {
2021-04-12 23:35:26 +02:00
/* Init library */
2021-04-07 23:58:58 +02:00
lwshell_init();
2021-04-13 23:38:03 +02:00
/* Add optional output function for the purpose of the feedback */
2021-04-12 23:35:26 +02:00
lwshell_set_output_fn(shell_output);
/* Define shell commands */
2021-04-08 19:34:20 +02:00
lwshell_register_cmd("addint", addint_cmd, "Adds 2 integer numbers and prints them");
lwshell_register_cmd("subint", subint_cmd, "Substitute 2 integer numbers and prints them");
lwshell_register_cmd("adddbl", adddbl_cmd, "Adds 2 double numbers and prints them");
lwshell_register_cmd("subdbl", subdbl_cmd, "Substitute 2 double numbers and prints them");
2021-04-07 23:58:58 +02:00
/* User input to process every character */
2021-04-13 23:38:03 +02:00
printf("Start entering your command and press enter...\r\n");
2021-04-07 23:58:58 +02:00
while (1) {
char str[255];
fgets(str, sizeof(str), stdin);
2021-04-13 23:38:03 +02:00
/* Insert input to library */
lwshell_input(str, strlen(str));
2021-04-07 23:58:58 +02:00
}
return 0;
}