#include #include "led.h" /* single led */ static int cmd_led_fade(const struct shell *sh, size_t argc, char **argv) { if (argc != 2) { shell_error(sh, "Usage: led fade "); return -EINVAL; } return led_fade(atoi(argv[1])); } static int cmd_led_progress(const struct shell *sh, size_t argc, char **argv) { if (argc != 2) { shell_error(sh, "Usage: led progress <0-100>"); return -EINVAL; } return led_set_progress(atoi(argv[1]) / 100.0f); } SHELL_STATIC_SUBCMD_SET_CREATE(led_cmds, SHELL_CMD(fade, NULL, "Fade over ", cmd_led_fade), SHELL_CMD(progress, NULL, "Set progress <0.0-1.0>", cmd_led_progress), SHELL_SUBCMD_SET_END ); SHELL_CMD_REGISTER(led, &led_cmds, "Single LED commands", NULL); /* addressable leds */ static int cmd_leds_all(const struct shell *sh, size_t argc, char **argv) { if (argc != 4) { shell_error(sh, "Usage: leds all (0-255)"); return -EINVAL; } leds_set_all(atoi(argv[1]) / 255.0f, atoi(argv[2]) / 255.0f, atoi(argv[3]) / 255.0f); return leds_update(); } static int cmd_leds_fade(const struct shell *sh, size_t argc, char **argv) { if (argc != 5) { shell_error(sh, "Usage: leds fade (0-255)"); return -EINVAL; } return leds_fade(atoi(argv[1]), atoi(argv[2]) / 255.0f, atoi(argv[3]) / 255.0f, atoi(argv[4]) / 255.0f); } static int cmd_leds_clear(const struct shell *sh, size_t argc, char **argv) { return leds_clear(); } static int cmd_leds_fade_to(const struct shell *sh, size_t argc, char **argv) { if (argc != 5) { shell_error(sh, "Usage: leds fade_to (0-255, -1 to keep)"); return -EINVAL; } return leds_fade_to(atoi(argv[1]), atoi(argv[2]) < 0 ? -1.0f : atoi(argv[2]) / 255.0f, atoi(argv[3]) < 0 ? -1.0f : atoi(argv[3]) / 255.0f, atoi(argv[4]) < 0 ? -1.0f : atoi(argv[4]) / 255.0f); } SHELL_STATIC_SUBCMD_SET_CREATE(leds_cmds, SHELL_CMD(all, NULL, "Set all ", cmd_leds_all), SHELL_CMD(clear, NULL, "Clear all", cmd_leds_clear), SHELL_CMD(fade, NULL, "Fade in/out ", cmd_leds_fade), SHELL_CMD(fade_to, NULL, "Fade to color ", cmd_leds_fade_to), SHELL_SUBCMD_SET_END ); SHELL_CMD_REGISTER(leds, &leds_cmds, "Addressable LED commands", NULL);