/* * shell_commands.c * * Created on: Aug 10, 2016 * Author: tkl */ #include #include #include #include #include #include "list.h" #include "driver.h" #include "shell.h" #include "queue.h" #include "stack.h" #include "kernel.h" #include "drive_ctrl.h" #include "version.h" #include "sensor_data.h" static void *drive_turn_right_cb(const char *param); static void *drive_turn_left_cb(const char *param); static void *drive_boost_cb(const char *param); static void *drive_retard_cb(const char *param); static void *drive_halt_cb(const char *param); static void *drive_forward_cb(const char *param); static void *drive_backward_cb(const char *param); static void *app_version(const char *param); static void *sys_msg_on_cb(const char *param); static void *sys_msg_off_cb(const char *param); static struct command cmd_sys_msg_on = { .command = "sys on", .description = "Switch system message on.", .command_callback = sys_msg_on_cb, }; static struct command cmd_sys_msg_off = { .command = "sys off", .description = "Switch system message off.", .command_callback = sys_msg_off_cb, }; static struct command cmd_app_version = { .command = "version", .description = "Get application version.", .command_callback = app_version, }; static struct command drive_forward = { .command = "f", .description = "Start driving forward with preset speed.", .command_callback = drive_forward_cb, }; static struct command drive_backward = { .command = "b", .description = "Start driving backward with preset speed.", .command_callback = drive_backward_cb, }; static struct command drive_halt = { .command = "h", .description = "Stop driving.", .command_callback = drive_halt_cb, }; static struct command drive_boost = { .command = "+", .description = "Boost speed.", .command_callback = drive_boost_cb, }; static struct command drive_retard = { .command = "-", .description = "Retard speed", .command_callback = drive_retard_cb, }; static struct command drive_turn_left = { .command = "l", .description = "Turn left.", .command_callback = drive_turn_left_cb, }; static struct command drive_turn_right = { .command = "r", .description = "Turn right", .command_callback = drive_turn_right_cb, }; int shell_commands_init(void) { shell_add_command(&cmd_app_version); shell_add_command(&drive_forward); shell_add_command(&drive_backward); shell_add_command(&drive_boost); shell_add_command(&drive_retard); shell_add_command(&drive_halt); shell_add_command(&drive_turn_left); shell_add_command(&drive_turn_right); shell_add_command(&cmd_sys_msg_off); shell_add_command(&cmd_sys_msg_on); return 0; } static void *drive_turn_right_cb(const char *param) { drive_ctrl_turn_right(); return NULL; } static void *drive_turn_left_cb(const char *param) { drive_ctrl_turn_left(); return NULL; } static void *drive_boost_cb(const char *param) { drive_ctrl_boost(); return NULL; } static void *drive_retard_cb(const char *param) { drive_ctrl_retard(); return NULL; } static void *drive_halt_cb(const char *param) { drive_ctrl_halt(); return NULL; } static void *drive_forward_cb(const char *param) { drive_ctrl_forward(); return NULL; } static void *drive_backward_cb(const char *param) { drive_ctrl_backward(); return NULL; } static void *app_version(const char *param) { char *greeter = "engine_control version: "; shell_write(greeter, strlen(greeter)); shell_write(MAJOR_VERSION, strlen(MAJOR_VERSION)); shell_write(".", 1); shell_write(MINOR_VERSION, strlen(MINOR_VERSION)); shell_write(".", 1); shell_write(BUILD_NUMBER, strlen(BUILD_NUMBER)); shell_write("\r\n", 2); return NULL; } static void *sys_msg_on_cb(const char *param) { sensor_data_sys_msg(true); return NULL; } static void *sys_msg_off_cb(const char *param) { sensor_data_sys_msg(false); return NULL; }