Append AUX mixer for HITL simulation (#5457)

This commit is contained in:
Bart Slinger
2016-09-07 12:09:22 +02:00
committed by Lorenz Meier
parent cbbf5e2e7c
commit 79d8d580b1
4 changed files with 41 additions and 10 deletions
+6 -1
View File
@@ -2295,7 +2295,8 @@ protected:
system_type == MAV_TYPE_HEXAROTOR ||
system_type == MAV_TYPE_OCTOROTOR ||
system_type == MAV_TYPE_VTOL_DUOROTOR ||
system_type == MAV_TYPE_VTOL_QUADROTOR) {
system_type == MAV_TYPE_VTOL_QUADROTOR ||
system_type == MAV_TYPE_VTOL_RESERVED2) {
/* multirotors: set number of rotor outputs depending on type */
@@ -2318,6 +2319,10 @@ protected:
n = 4;
break;
case MAV_TYPE_VTOL_RESERVED2:
n = 8;
break;
default:
n = 8;
break;
+22 -7
View File
@@ -59,7 +59,7 @@
extern "C" __EXPORT int mixer_main(int argc, char *argv[]);
static void usage(const char *reason);
static int load(const char *devname, const char *fname);
static int load(const char *devname, const char *fname, bool append);
int
mixer_main(int argc, char *argv[])
@@ -75,13 +75,26 @@ mixer_main(int argc, char *argv[])
return 1;
}
int ret = load(argv[2], argv[3]);
int ret = load(argv[2], argv[3], false);
if (ret != 0) {
warnx("failed to load mixer");
return 1;
}
} else if (!strcmp(argv[1], "append")) {
if (argc < 4) {
usage("missing device or filename");
return 1;
}
int ret = load(argv[2], argv[3], true);
if (ret != 0) {
warnx("failed to append mixer");
return 1;
}
} else {
usage("Unknown command");
return 1;
@@ -102,7 +115,7 @@ usage(const char *reason)
}
static int
load(const char *devname, const char *fname)
load(const char *devname, const char *fname, bool append)
{
// sleep a while to ensure device has been set up
usleep(20000);
@@ -115,10 +128,12 @@ load(const char *devname, const char *fname)
return 1;
}
/* reset mixers on the device */
if (px4_ioctl(dev, MIXERIOCRESET, 0)) {
warnx("can't reset mixers on %s", devname);
return 1;
/* reset mixers on the device, but not if appending */
if (!append) {
if (px4_ioctl(dev, MIXERIOCRESET, 0)) {
warnx("can't reset mixers on %s", devname);
return 1;
}
}
char buf[2048];