beacon_tsop
[aversive.git] / projects / microb2010 / tests / beacon_tsop / commands.c
index e938a73..253c886 100644 (file)
 #include <parse.h>
 #include <rdline.h>
 #include <parse_string.h>
+#include <vect_base.h>
+#include <lines.h>
+#include <circles.h>
 
+#include "trigo.h"
 #include "main.h"
 
 /**********************************************************/
@@ -146,6 +150,52 @@ parse_pgm_inst_t cmd_debug_speed = {
        },
 };
 
+/**********************************************************/
+/* Test */
+
+/* this structure is filled when cmd_test is parsed successfully */
+struct cmd_test_result {
+       fixed_string_t arg0;
+};
+
+/* function called when cmd_test is parsed successfully */
+static void cmd_test_parsed(__attribute__((unused)) void *parsed_result,
+                            __attribute__((unused)) void *data)
+{
+       point_t pos;
+       double a01 = 1.65;
+       double a12 = 2.12;
+       double a20 = 2.53;
+       uint16_t time1, time2;
+
+       cli();
+       time1 = TCNT3;
+       sei();
+
+       if (angles_to_posxy(&pos, a01, a12, a20) < 0)
+               printf_P(PSTR("error\n"));
+
+       cli();
+       time2 = TCNT3;
+       sei();
+
+       printf_P(PSTR("%2.2f %2.2f (t=%d)\n"), pos.x, pos.y, time2-time1);
+}
+
+prog_char str_test_arg0[] = "test";
+parse_pgm_token_string_t cmd_test_arg0 = TOKEN_STRING_INITIALIZER(struct cmd_test_result, arg0, str_test_arg0);
+
+prog_char help_test[] = "Test the board";
+parse_pgm_inst_t cmd_test = {
+       .f = cmd_test_parsed,  /* function to call */
+       .data = NULL,      /* 2nd arg of func */
+       .help_str = help_test,
+       .tokens = {        /* token list, NULL terminated */
+               (prog_void *)&cmd_test_arg0, 
+               NULL,
+       },
+};
+
 /**********************************************************/
 
 /* in progmem */
@@ -155,5 +205,6 @@ parse_pgm_ctx_t main_ctx[] = {
        (parse_pgm_inst_t *)&cmd_reset,
        (parse_pgm_inst_t *)&cmd_debug_frame,
        (parse_pgm_inst_t *)&cmd_debug_speed,
+       (parse_pgm_inst_t *)&cmd_test,
        NULL,
 };