15#include "devicelist.h"
18static void Accel_exec(
UART_t *uart,
char *);
20DEFINE_PROGRAM_HANDLE(
"accel", Accel_exec, NULL)
29static void Accel_exec(
UART_t *uart,
char *flags) {
32 int argPrintIdx = parser.addArg(
33 &parser,
"print", 0, ARG_TYPE_BOOL,
false
35 int argRepeatIdx = parser.addArg(
36 &parser,
"--repeat",
'r', ARG_TYPE_BOOL,
false
38 int argVerboseIdx = parser.addArg(
39 &parser,
"--verbose",
'v', ARG_TYPE_BOOL,
false
42 char *tokens[MAX_ARGS];
46 char *token = strtok(flags,
" ");
47 while (token != NULL && numTokens < MAX_ARGS) {
48 tokens[numTokens++] = token;
49 token = strtok(NULL,
" ");
53 parser.parseArgs(&parser, numTokens, tokens);
56 if (parser.error.status == PARSER_STATUS_ERROR) {
57 uart->println(uart, parser.error.msg);
62 if (parser.args[argPrintIdx].provided) {
66 char *terminal = (parser.args[argRepeatIdx].provided) ?
"\r\n" :
"\r\n";
74 if (parser.args[argVerboseIdx].provided) {
78 timestamp,
sizeof(timestamp),
"[t=%fs] ",
79 state->flightTimeMs / 1000.0f
81 uart->print(uart, timestamp);
86 str, 80,
"X [%d]: %f Y [%d]: %f Z[%d]: %f%s",
97 uart->print(uart, str);
100 if (parser.args[argRepeatIdx].provided)
104 uart->println(uart, parser.error.msg);
Defines the API for the Accelerometer sensor.
void(* update)(struct Accel *accel)
Pointer to update method.
float * accelData
Pointer to driver defined data array.
uint8_t * axes
Pointer to driver defined axes.
DeviceHandle_t DeviceList_getDeviceHandle(DeviceKey)
Retrieve device handle from list by key.
Struct definition for UART interface.