parent
5730538c5f
commit
b369e3a1c0
@ -0,0 +1,47 @@ |
|||||||
|
#include <stdio.h> |
||||||
|
#include <stdlib.h> |
||||||
|
#include <string.h> |
||||||
|
|
||||||
|
#include <buzzer.h> |
||||||
|
#include <console.h> |
||||||
|
|
||||||
|
extern struct buzzer buzzers[]; |
||||||
|
extern size_t nbuzzers; |
||||||
|
|
||||||
|
int shell_buzzer(struct console *con, size_t argc, const char **argv) |
||||||
|
{ |
||||||
|
struct buzzer *buzzer; |
||||||
|
size_t buzzer_id = 0; |
||||||
|
uint32_t freq = 0; |
||||||
|
int state = 0; |
||||||
|
|
||||||
|
if (argc >= 3) |
||||||
|
freq = strtoul(argv[2], NULL, 0); |
||||||
|
|
||||||
|
if (argc >= 2) |
||||||
|
state = (strcmp(argv[1], "on") == 0); |
||||||
|
|
||||||
|
if (argc >= 1) |
||||||
|
buzzer_id = strtoul(argv[0], NULL, 0); |
||||||
|
|
||||||
|
fprintf(con->fp, "%u %d %u\n", buzzer_id, state, freq); |
||||||
|
|
||||||
|
if (buzzer_id > nbuzzers) { |
||||||
|
fprintf(con->fp, "error: invalid buzzer ID %d\n", buzzer_id); |
||||||
|
return -1; |
||||||
|
} |
||||||
|
|
||||||
|
buzzer = buzzers + buzzer_id; |
||||||
|
|
||||||
|
if (!state) { |
||||||
|
buzzer_disable(buzzer); |
||||||
|
return 0; |
||||||
|
} |
||||||
|
|
||||||
|
if (freq) |
||||||
|
buzzer_set_freq(buzzer, freq); |
||||||
|
|
||||||
|
buzzer_enable(buzzer); |
||||||
|
|
||||||
|
return 0; |
||||||
|
} |
Loading…
Reference in new issue