[FL-936] CLI commands for vibro, led and display backlight support (#367)
* api-hal: add api-hal-vibro * cli: add vibro cli command * cli: add cli commands for led and disp backlight
This commit is contained in:
@@ -74,6 +74,56 @@ void cli_command_log(string_t args, void* context) {
|
||||
furi_stdglue_set_global_stdout_callback(NULL);
|
||||
}
|
||||
|
||||
void cli_command_vibro(string_t args, void* context) {
|
||||
if(!string_cmp(args, "0")) {
|
||||
api_hal_vibro_on(false);
|
||||
} else if(!string_cmp(args, "1")) {
|
||||
api_hal_vibro_on(true);
|
||||
} else {
|
||||
printf("Wrong input");
|
||||
}
|
||||
}
|
||||
|
||||
void cli_command_led(string_t args, void* context) {
|
||||
// Get first word as light name
|
||||
Light light;
|
||||
string_t light_name;
|
||||
string_init(light_name);
|
||||
size_t ws = string_search_char(args, ' ');
|
||||
if(ws == STRING_FAILURE) {
|
||||
printf("Wrong input");
|
||||
string_clear(light_name);
|
||||
return;
|
||||
} else {
|
||||
string_set_n(light_name, args, 0, ws);
|
||||
string_right(args, ws);
|
||||
string_strim(args);
|
||||
}
|
||||
// Check light name
|
||||
if(!string_cmp(light_name, "r")) {
|
||||
light = LightRed;
|
||||
} else if(!string_cmp(light_name, "g")) {
|
||||
light = LightGreen;
|
||||
} else if(!string_cmp(light_name, "b")) {
|
||||
light = LightBlue;
|
||||
} else if(!string_cmp(light_name, "bl")) {
|
||||
light = LightBacklight;
|
||||
} else {
|
||||
printf("Wrong argument");
|
||||
string_clear(light_name);
|
||||
return;
|
||||
}
|
||||
string_clear(light_name);
|
||||
// Read light value from the rest of the string
|
||||
char* end_ptr;
|
||||
uint32_t value = strtoul(string_get_cstr(args), &end_ptr, 0);
|
||||
if(!(value < 256 && *end_ptr == '\0')) {
|
||||
printf("Wrong argument");
|
||||
return;
|
||||
}
|
||||
api_hal_light_set(light, value);
|
||||
}
|
||||
|
||||
void cli_commands_init(Cli* cli) {
|
||||
cli_add_command(cli, "help", cli_command_help, cli);
|
||||
cli_add_command(cli, "?", cli_command_help, cli);
|
||||
@@ -82,4 +132,6 @@ void cli_commands_init(Cli* cli) {
|
||||
cli_add_command(cli, "uid", cli_command_uuid, cli);
|
||||
cli_add_command(cli, "date", cli_command_date, cli);
|
||||
cli_add_command(cli, "log", cli_command_log, cli);
|
||||
cli_add_command(cli, "vibro", cli_command_vibro, cli);
|
||||
cli_add_command(cli, "led", cli_command_led, cli);
|
||||
}
|
||||
|
Reference in New Issue
Block a user