aboutsummaryrefslogtreecommitdiff
path: root/apps/commander/commander.c
diff options
context:
space:
mode:
authorLorenz Meier <lm@inf.ethz.ch>2012-10-16 00:02:53 +0200
committerLorenz Meier <lm@inf.ethz.ch>2012-10-16 00:02:53 +0200
commit965bd35e2b925ad896567e77c3ac05e2ffa7af1b (patch)
tree15fae1880dffc09a67629d6b836b1fb5d720a260 /apps/commander/commander.c
parent40abed787cde259218671db87d66b608535e0abd (diff)
downloadpx4-firmware-965bd35e2b925ad896567e77c3ac05e2ffa7af1b.tar.gz
px4-firmware-965bd35e2b925ad896567e77c3ac05e2ffa7af1b.tar.bz2
px4-firmware-965bd35e2b925ad896567e77c3ac05e2ffa7af1b.zip
Ignore measurement parts not projected to the plane
Diffstat (limited to 'apps/commander/commander.c')
-rw-r--r--apps/commander/commander.c40
1 files changed, 22 insertions, 18 deletions
diff --git a/apps/commander/commander.c b/apps/commander/commander.c
index 086962abf..ef81605cd 100644
--- a/apps/commander/commander.c
+++ b/apps/commander/commander.c
@@ -124,7 +124,6 @@ static bool thread_running = false; /**< Deamon status flag */
static int deamon_task; /**< Handle of deamon task / thread */
/* pthread loops */
-// static void *command_handling_loop(void *arg);
static void *orb_receive_loop(void *arg);
__EXPORT int commander_main(int argc, char *argv[]);
@@ -339,6 +338,10 @@ void do_mag_calibration(int status_pub, struct vehicle_status_s *status)
axis_index++;
}
+ if (!(axis_index < 3)) {
+ continue;
+ }
+
// int axis_left = (int64_t)axis_deadline - (int64_t)hrt_absolute_time();
// if ((axis_left / 1000) == 0 && axis_left > 0) {
@@ -351,26 +354,27 @@ void do_mag_calibration(int status_pub, struct vehicle_status_s *status)
orb_copy(ORB_ID(sensor_combined), sub_sensor_combined, &raw);
/* get min/max values */
- if (raw.magnetometer_ga[0] < mag_min[0]) {
- mag_min[0] = raw.magnetometer_ga[0];
+ /* ignore other axes */
+ if (raw.magnetometer_ga[axis_index] < mag_min[axis_index]) {
+ mag_min[axis_index] = raw.magnetometer_ga[axis_index];
}
- else if (raw.magnetometer_ga[0] > mag_max[0]) {
- mag_max[0] = raw.magnetometer_ga[0];
+ else if (raw.magnetometer_ga[axis_index] > mag_max[axis_index]) {
+ mag_max[axis_index] = raw.magnetometer_ga[axis_index];
}
- if (raw.magnetometer_ga[1] < mag_min[1]) {
- mag_min[1] = raw.magnetometer_ga[1];
- }
- else if (raw.magnetometer_ga[1] > mag_max[1]) {
- mag_max[1] = raw.magnetometer_ga[1];
- }
-
- if (raw.magnetometer_ga[2] < mag_min[2]) {
- mag_min[2] = raw.magnetometer_ga[2];
- }
- else if (raw.magnetometer_ga[2] > mag_max[2]) {
- mag_max[2] = raw.magnetometer_ga[2];
- }
+ // if (raw.magnetometer_ga[1] < mag_min[1]) {
+ // mag_min[1] = raw.magnetometer_ga[1];
+ // }
+ // else if (raw.magnetometer_ga[1] > mag_max[1]) {
+ // mag_max[1] = raw.magnetometer_ga[1];
+ // }
+
+ // if (raw.magnetometer_ga[2] < mag_min[2]) {
+ // mag_min[2] = raw.magnetometer_ga[2];
+ // }
+ // else if (raw.magnetometer_ga[2] > mag_max[2]) {
+ // mag_max[2] = raw.magnetometer_ga[2];
+ // }
calibration_counter++;
} else {