diff --git a/libraries/AP_Beacon/examples/AP_Marvelmind_test/AP_Marvelmind_test.cpp b/libraries/AP_Beacon/examples/AP_Marvelmind_test/AP_Marvelmind_test.cpp new file mode 100644 index 0000000000..eca4337a7f --- /dev/null +++ b/libraries/AP_Beacon/examples/AP_Marvelmind_test/AP_Marvelmind_test.cpp @@ -0,0 +1,54 @@ +/* + simple test of UART interfaces + */ + +#include +#include +#include +#if HAL_OS_POSIX_IO +#include +#endif + +void setup(); +void loop(); + +const AP_HAL::HAL& hal = AP_HAL::get_HAL(); +static AP_SerialManager serial_manager; +AP_Beacon beacon{serial_manager}; + +// try to set the object value but provide diagnostic if it failed +void set_object_value(const void *object_pointer, + const struct AP_Param::GroupInfo *group_info, + const char *name, float value) +{ + if (!AP_Param::set_object_value(object_pointer, group_info, name, value)) { + printf("WARNING: AP_Param::set object value \"%s::%s\" Failed.\n", + group_info->name, name); + } +} + +void setup(void) +{ + set_object_value(&beacon, beacon.var_info, "_TYPE", 2.0f); + set_object_value(&serial_manager, serial_manager.var_info, "0_PROTOCOL", 13.0f); + serial_manager.init(); + beacon.init(); +} + +void loop(void) +{ + static int count = 0; + beacon.update(); + Vector3f pos; + float accuracy = 0.0f; + beacon.get_vehicle_position_ned(pos, accuracy); + if (pos.x > 0.001f) { + printf("%f %f %f\n", pos.x, pos.y, pos.z); + count++; + } + hal.scheduler->delay(1000); + if (count == 3) + exit(0); +} + +AP_HAL_MAIN(); diff --git a/libraries/AP_Beacon/examples/AP_Marvelmind_test/inject_marvelmind_dump.sh b/libraries/AP_Beacon/examples/AP_Marvelmind_test/inject_marvelmind_dump.sh new file mode 100755 index 0000000000..fc47098050 --- /dev/null +++ b/libraries/AP_Beacon/examples/AP_Marvelmind_test/inject_marvelmind_dump.sh @@ -0,0 +1,9 @@ +#!/bin/sh + +./waf configure --board=linux --debug +./waf build --target=examples/AP_Marvelmind_test -j6 +repo_root="$(git rev-parse --show-toplevel)/" +"$repo_root/build/linux-debug/examples/AP_Marvelmind_test" -A tcp:127.0.0.1:5111 & +sleep 1 +cat ${repo_root}/libraries/AP_Beacon/examples/AP_Marvelmind_test/sample.dump| socat - tcp:127.0.0.1:5111 +wait diff --git a/libraries/AP_Beacon/examples/AP_Marvelmind_test/sample.dump b/libraries/AP_Beacon/examples/AP_Marvelmind_test/sample.dump new file mode 100644 index 0000000000..c6bf5a25a5 Binary files /dev/null and b/libraries/AP_Beacon/examples/AP_Marvelmind_test/sample.dump differ diff --git a/libraries/AP_Beacon/examples/AP_Marvelmind_test/wscript b/libraries/AP_Beacon/examples/AP_Marvelmind_test/wscript new file mode 100644 index 0000000000..719ec151ba --- /dev/null +++ b/libraries/AP_Beacon/examples/AP_Marvelmind_test/wscript @@ -0,0 +1,7 @@ +#!/usr/bin/env python +# encoding: utf-8 + +def build(bld): + bld.ap_example( + use='ap', + )