[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:
parent
651c5b35ca
commit
73e5379520
@ -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);
|
||||
}
|
||||
|
19
firmware/targets/api-hal-include/api-hal-vibro.h
Normal file
19
firmware/targets/api-hal-include/api-hal-vibro.h
Normal file
@ -0,0 +1,19 @@
|
||||
#pragma once
|
||||
|
||||
#include <stdbool.h>
|
||||
#include <stdint.h>
|
||||
#include <api-hal-resources.h>
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
/* Initialize vibro */
|
||||
void api_hal_vibro_init();
|
||||
|
||||
/* Turn on/off vibro */
|
||||
void api_hal_vibro_on(bool value);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
@ -22,5 +22,6 @@ template <unsigned int N> struct STOP_EXTERNING_ME {};
|
||||
#include "api-hal-spi.h"
|
||||
#include "api-hal-flash.h"
|
||||
#include "api-hal-subghz.h"
|
||||
#include "api-hal-vibro.h"
|
||||
|
||||
void api_hal_init();
|
||||
|
11
firmware/targets/f5/api-hal/api-hal-vibro.c
Normal file
11
firmware/targets/f5/api-hal/api-hal-vibro.c
Normal file
@ -0,0 +1,11 @@
|
||||
#include <api-hal-vibro.h>
|
||||
#include <api-hal-gpio.h>
|
||||
|
||||
void api_hal_vibro_init() {
|
||||
hal_gpio_init(&vibro_gpio, GpioModeOutputPushPull, GpioPullNo, GpioSpeedLow);
|
||||
hal_gpio_write(&vibro_gpio, false);
|
||||
}
|
||||
|
||||
void api_hal_vibro_on(bool value) {
|
||||
hal_gpio_write(&vibro_gpio, value);
|
||||
}
|
@ -7,4 +7,5 @@ void api_hal_init() {
|
||||
api_hal_i2c_init();
|
||||
api_hal_power_init();
|
||||
api_hal_light_init();
|
||||
api_hal_vibro_init();
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user