forked from Archive/PX4-Autopilot
Merge branch 'master' of github.com:PX4/Firmware
This commit is contained in:
commit
07f82efe9b
|
@ -51,6 +51,7 @@ MODULES += systemcmds/param
|
||||||
MODULES += systemcmds/perf
|
MODULES += systemcmds/perf
|
||||||
MODULES += systemcmds/preflight_check
|
MODULES += systemcmds/preflight_check
|
||||||
MODULES += systemcmds/pwm
|
MODULES += systemcmds/pwm
|
||||||
|
MODULES += systemcmds/esc_calib
|
||||||
MODULES += systemcmds/reboot
|
MODULES += systemcmds/reboot
|
||||||
MODULES += systemcmds/top
|
MODULES += systemcmds/top
|
||||||
MODULES += systemcmds/tests
|
MODULES += systemcmds/tests
|
||||||
|
|
|
@ -1,6 +1,7 @@
|
||||||
/****************************************************************************
|
/****************************************************************************
|
||||||
*
|
*
|
||||||
* Copyright (C) 2013 PX4 Development Team. All rights reserved.
|
* Copyright (C) 2013 PX4 Development Team. All rights reserved.
|
||||||
|
* Author: Julian Oes <joes@student.ethz.ch>
|
||||||
*
|
*
|
||||||
* Redistribution and use in source and binary forms, with or without
|
* Redistribution and use in source and binary forms, with or without
|
||||||
* modification, are permitted provided that the following conditions
|
* modification, are permitted provided that the following conditions
|
||||||
|
@ -63,7 +64,7 @@
|
||||||
static void usage(const char *reason);
|
static void usage(const char *reason);
|
||||||
__EXPORT int esc_calib_main(int argc, char *argv[]);
|
__EXPORT int esc_calib_main(int argc, char *argv[]);
|
||||||
|
|
||||||
#define MAX_CHANNELS 8
|
#define MAX_CHANNELS 14
|
||||||
|
|
||||||
static void
|
static void
|
||||||
usage(const char *reason)
|
usage(const char *reason)
|
||||||
|
@ -97,7 +98,7 @@ esc_calib_main(int argc, char *argv[])
|
||||||
|
|
||||||
case 'd':
|
case 'd':
|
||||||
dev = optarg;
|
dev = optarg;
|
||||||
argc--;
|
argc=-2;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
default:
|
default:
|
||||||
|
@ -124,15 +125,18 @@ esc_calib_main(int argc, char *argv[])
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Wait for confirmation */
|
/* Wait for confirmation */
|
||||||
int console = open("/dev/console", O_NONBLOCK | O_RDONLY | O_NOCTTY);
|
int console = open("/dev/ttyACM0", O_NONBLOCK | O_RDONLY | O_NOCTTY);
|
||||||
if (!console)
|
if (!console)
|
||||||
err(1, "failed opening console");
|
err(1, "failed opening console");
|
||||||
|
|
||||||
warnx("ATTENTION, please remove or fix props before starting calibration!\n"
|
printf("\nATTENTION, please remove or fix propellers before starting calibration!\n"
|
||||||
"\n"
|
"\n"
|
||||||
"Also press the arming switch first for safety off\n"
|
"Make sure\n"
|
||||||
|
"\t - that the ESCs are not powered\n"
|
||||||
|
"\t - that safety is off (two short blinks)\n"
|
||||||
|
"\t - that the controllers are stopped\n"
|
||||||
"\n"
|
"\n"
|
||||||
"Do you really want to start calibration: y or n?\n");
|
"Do you want to start calibration now: y or n?\n");
|
||||||
|
|
||||||
/* wait for user input */
|
/* wait for user input */
|
||||||
while (1) {
|
while (1) {
|
||||||
|
@ -142,15 +146,15 @@ esc_calib_main(int argc, char *argv[])
|
||||||
|
|
||||||
break;
|
break;
|
||||||
} else if (c == 0x03 || c == 0x63 || c == 'q') {
|
} else if (c == 0x03 || c == 0x63 || c == 'q') {
|
||||||
warnx("ESC calibration exited");
|
printf("ESC calibration exited\n");
|
||||||
close(console);
|
close(console);
|
||||||
exit(0);
|
exit(0);
|
||||||
} else if (c == 'n' || c == 'N') {
|
} else if (c == 'n' || c == 'N') {
|
||||||
warnx("ESC calibration aborted");
|
printf("ESC calibration aborted\n");
|
||||||
close(console);
|
close(console);
|
||||||
exit(0);
|
exit(0);
|
||||||
} else {
|
} else {
|
||||||
warnx("Unknown input, ESC calibration aborted");
|
printf("Unknown input, ESC calibration aborted\n");
|
||||||
close(console);
|
close(console);
|
||||||
exit(0);
|
exit(0);
|
||||||
}
|
}
|
||||||
|
@ -163,23 +167,14 @@ esc_calib_main(int argc, char *argv[])
|
||||||
int fd = open(dev, 0);
|
int fd = open(dev, 0);
|
||||||
if (fd < 0)
|
if (fd < 0)
|
||||||
err(1, "can't open %s", dev);
|
err(1, "can't open %s", dev);
|
||||||
|
|
||||||
// XXX arming not necessaire at the moment
|
|
||||||
// /* Then arm */
|
|
||||||
// ret = ioctl(fd, PWM_SERVO_SET_ARM_OK, 0);
|
|
||||||
// if (ret != OK)
|
|
||||||
// err(1, "PWM_SERVO_SET_ARM_OK");
|
|
||||||
|
|
||||||
// ret = ioctl(fd, PWM_SERVO_ARM, 0);
|
|
||||||
// if (ret != OK)
|
|
||||||
// err(1, "PWM_SERVO_ARM");
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/* Wait for user confirmation */
|
/* Wait for user confirmation */
|
||||||
warnx("Set high PWM\n"
|
printf("\nHigh PWM set\n"
|
||||||
"Connect battery now and hit ENTER after the ESCs confirm the first calibration step");
|
"\n"
|
||||||
|
"Connect battery now and hit ENTER after the ESCs confirm the first calibration step\n"
|
||||||
|
"\n");
|
||||||
|
fflush(stdout);
|
||||||
|
|
||||||
while (1) {
|
while (1) {
|
||||||
|
|
||||||
|
@ -209,7 +204,8 @@ esc_calib_main(int argc, char *argv[])
|
||||||
/* we don't need any more user input */
|
/* we don't need any more user input */
|
||||||
|
|
||||||
|
|
||||||
warnx("Set low PWM, hit ENTER when finished");
|
printf("Low PWM set, hit ENTER when finished\n"
|
||||||
|
"\n");
|
||||||
|
|
||||||
while (1) {
|
while (1) {
|
||||||
|
|
||||||
|
@ -227,7 +223,7 @@ esc_calib_main(int argc, char *argv[])
|
||||||
|
|
||||||
break;
|
break;
|
||||||
} else if (c == 0x03 || c == 0x63 || c == 'q') {
|
} else if (c == 0x03 || c == 0x63 || c == 'q') {
|
||||||
warnx("ESC calibration exited");
|
printf("ESC calibration exited\n");
|
||||||
close(console);
|
close(console);
|
||||||
exit(0);
|
exit(0);
|
||||||
}
|
}
|
||||||
|
@ -237,14 +233,8 @@ esc_calib_main(int argc, char *argv[])
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
warnx("ESC calibration finished");
|
printf("ESC calibration finished\n");
|
||||||
close(console);
|
close(console);
|
||||||
|
|
||||||
// XXX disarming not necessaire at the moment
|
|
||||||
/* Now disarm again */
|
|
||||||
// ret = ioctl(fd, PWM_SERVO_DISARM, 0);
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
exit(0);
|
exit(0);
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue