X-Git-Url: http://git.droids-corp.org/?p=protos%2Fxbee-avr.git;a=blobdiff_plain;f=commands.c;h=9f7eaf6b3205a7194b85ba1fe7848a78f7b51467;hp=befd1c90aa020d2d332510ed931af66b06877b75;hb=66e8a69f26ffb8039688651235f223428383dac9;hpb=0704ac13884035e9124507092664910f9936bb5d diff --git a/commands.c b/commands.c index befd1c9..9f7eaf6 100644 --- a/commands.c +++ b/commands.c @@ -48,6 +48,7 @@ #include "main.h" #include "cmdline.h" #include "beep.h" +#include "../fpv-common/i2c_commands.h" #include "i2c_protocol.h" #include "eeprom_config.h" @@ -2247,31 +2248,47 @@ const parse_inst_t PROGMEM cmd_eeprom_list = { /* ************* */ -struct cmd_test_result { +struct cmd_dump_i2c_result { fixed_string_t cmd; }; -extern uint8_t imuboard; /* XXX test */ -static void cmd_test_parsed(void *parsed_result, void *data) +static void cmd_dump_i2c_parsed(void *parsed_result, void *data) { + struct i2c_ans_imuboard_status imu; + uint8_t irq_flags; + (void)parsed_result; (void)data; - printf("%d\n", imuboard); - i2c_protocol_debug(); + + while (!cmdline_keypressed()) { + IRQ_LOCK(irq_flags); + memcpy(&imu, &imuboard_status, sizeof(imu)); + IRQ_UNLOCK(irq_flags); + + if (imu.flags & IMUBOARD_STATUS_GPS_OK) { + printf_P(PSTR("GPS lat=%"PRIi32" long=%"PRIi32 + " alt=%"PRIi32"\n"), + imu.latitude, imu.longitude, imu.altitude); + } + else + printf_P(PSTR("GPS unavailable")); + i2c_protocol_debug(); + wait_ms(100); + } } -const char PROGMEM str_test[] = "test"; -const parse_token_string_t PROGMEM cmd_test_cmd = - TOKEN_STRING_INITIALIZER(struct cmd_test_result, cmd, - str_test); +const char PROGMEM str_dump_i2c[] = "dump_i2c"; +const parse_token_string_t PROGMEM cmd_dump_i2c_cmd = + TOKEN_STRING_INITIALIZER(struct cmd_dump_i2c_result, cmd, + str_dump_i2c); -const char PROGMEM help_test[] = "test"; -const parse_inst_t PROGMEM cmd_test = { - .f = cmd_test_parsed, /* function to call */ +const char PROGMEM help_dump_i2c[] = "dump_i2c"; +const parse_inst_t PROGMEM cmd_dump_i2c = { + .f = cmd_dump_i2c_parsed, /* function to call */ .data = NULL, /* 2nd arg of func */ - .help_str = help_test, + .help_str = help_dump_i2c, .tokens = { /* token list, NULL terminated */ - (PGM_P)&cmd_test_cmd, + (PGM_P)&cmd_dump_i2c_cmd, NULL, }, }; @@ -2334,6 +2351,6 @@ const parse_ctx_t PROGMEM main_ctx[] = { &cmd_eeprom_add, &cmd_eeprom_add2, &cmd_eeprom_list, - &cmd_test, + &cmd_dump_i2c, NULL, };