diff options
Diffstat (limited to 'src/systemcmds')
-rw-r--r-- | src/systemcmds/config/config.c | 6 | ||||
-rw-r--r-- | src/systemcmds/esc_calib/esc_calib.c | 5 | ||||
-rw-r--r-- | src/systemcmds/preflight_check/preflight_check.c | 6 | ||||
-rw-r--r-- | src/systemcmds/tests/module.mk | 3 | ||||
-rw-r--r-- | src/systemcmds/tests/test_mtd.c | 236 | ||||
-rw-r--r-- | src/systemcmds/tests/tests.h | 3 | ||||
-rw-r--r-- | src/systemcmds/tests/tests_main.c | 3 |
7 files changed, 14 insertions, 248 deletions
diff --git a/src/systemcmds/config/config.c b/src/systemcmds/config/config.c index f54342f06..78db19801 100644 --- a/src/systemcmds/config/config.c +++ b/src/systemcmds/config/config.c @@ -195,7 +195,7 @@ do_gyro(int argc, char *argv[]) int id = ioctl(fd, DEVIOCGDEVICEID,0); int32_t calibration_id = 0; - param_get(param_find("SENS_GYRO_ID"), &(calibration_id)); + param_get(param_find("CAL_GYRO0_ID"), &(calibration_id)); warnx("gyro: \n\tdevice id:\t0x%X\t(calibration is for device id 0x%X)\n\tsample rate:\t%d Hz\n\tread rate:\t%d Hz\n\trange:\t%d dps", id, calibration_id, srate, prate, range); @@ -272,7 +272,7 @@ do_mag(int argc, char *argv[]) int id = ioctl(fd, DEVIOCGDEVICEID,0); int32_t calibration_id = 0; - param_get(param_find("SENS_MAG_ID"), &(calibration_id)); + param_get(param_find("CAL_MAG0_ID"), &(calibration_id)); warnx("mag: \n\tdevice id:\t0x%X\t(calibration is for device id 0x%X)\n\tsample rate:\t%d Hz\n\tread rate:\t%d Hz\n\trange:\t%d Ga", id, calibration_id, srate, prate, range); @@ -349,7 +349,7 @@ do_accel(int argc, char *argv[]) int id = ioctl(fd, DEVIOCGDEVICEID,0); int32_t calibration_id = 0; - param_get(param_find("SENS_ACC_ID"), &(calibration_id)); + param_get(param_find("CAL_ACC0_ID"), &(calibration_id)); warnx("accel: \n\tdevice id:\t0x%X\t(calibration is for device id 0x%X)\n\tsample rate:\t%d Hz\n\tread rate:\t%d Hz\n\trange:\t%d G", id, calibration_id, srate, prate, range); diff --git a/src/systemcmds/esc_calib/esc_calib.c b/src/systemcmds/esc_calib/esc_calib.c index 7d80af307..32682f890 100644 --- a/src/systemcmds/esc_calib/esc_calib.c +++ b/src/systemcmds/esc_calib/esc_calib.c @@ -39,6 +39,7 @@ */ #include <nuttx/config.h> +#include <platforms/px4_defines.h> #include <stdio.h> #include <stdlib.h> @@ -63,6 +64,10 @@ #include "drivers/drv_pwm_output.h" #include <uORB/topics/actuator_controls.h> +#include <uORB/topics/actuator_controls_0.h> +#include <uORB/topics/actuator_controls_1.h> +#include <uORB/topics/actuator_controls_2.h> +#include <uORB/topics/actuator_controls_3.h> static void usage(const char *reason); __EXPORT int esc_calib_main(int argc, char *argv[]); diff --git a/src/systemcmds/preflight_check/preflight_check.c b/src/systemcmds/preflight_check/preflight_check.c index 3e1f76714..c5c959cf3 100644 --- a/src/systemcmds/preflight_check/preflight_check.c +++ b/src/systemcmds/preflight_check/preflight_check.c @@ -99,7 +99,7 @@ int preflight_check_main(int argc, char *argv[]) } devid = ioctl(fd, DEVIOCGDEVICEID,0); - param_get(param_find("SENS_MAG_ID"), &(calibration_devid)); + param_get(param_find("CAL_MAG0_ID"), &(calibration_devid)); if (devid != calibration_devid){ warnx("magnetometer calibration is for a different device - calibrate magnetometer first"); mavlink_log_critical(mavlink_fd, "SENSOR FAIL: MAG CAL ID"); @@ -122,7 +122,7 @@ int preflight_check_main(int argc, char *argv[]) fd = open(ACCEL_DEVICE_PATH, O_RDONLY); devid = ioctl(fd, DEVIOCGDEVICEID,0); - param_get(param_find("SENS_ACC_ID"), &(calibration_devid)); + param_get(param_find("CAL_ACC0_ID"), &(calibration_devid)); if (devid != calibration_devid){ warnx("accelerometer calibration is for a different device - calibrate accelerometer first"); mavlink_log_critical(mavlink_fd, "SENSOR FAIL: ACC CAL ID"); @@ -168,7 +168,7 @@ int preflight_check_main(int argc, char *argv[]) fd = open(GYRO_DEVICE_PATH, 0); devid = ioctl(fd, DEVIOCGDEVICEID,0); - param_get(param_find("SENS_GYRO_ID"), &(calibration_devid)); + param_get(param_find("CAL_GYRO0_ID"), &(calibration_devid)); if (devid != calibration_devid){ warnx("gyro calibration is for a different device - calibrate gyro first"); mavlink_log_critical(mavlink_fd, "SENSOR FAIL: GYRO CAL ID"); diff --git a/src/systemcmds/tests/module.mk b/src/systemcmds/tests/module.mk index 0dc333f0a..1d728e857 100644 --- a/src/systemcmds/tests/module.mk +++ b/src/systemcmds/tests/module.mk @@ -32,8 +32,7 @@ SRCS = test_adc.c \ test_ppm_loopback.c \ test_rc.c \ test_conv.cpp \ - test_mount.c \ - test_mtd.c + test_mount.c EXTRACXXFLAGS = -Wframe-larger-than=2500 -Wno-float-equal -Wno-double-promotion diff --git a/src/systemcmds/tests/test_mtd.c b/src/systemcmds/tests/test_mtd.c deleted file mode 100644 index 43231ccad..000000000 --- a/src/systemcmds/tests/test_mtd.c +++ /dev/null @@ -1,236 +0,0 @@ -/**************************************************************************** - * - * Copyright (c) 2012-2014 PX4 Development Team. All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in - * the documentation and/or other materials provided with the - * distribution. - * 3. Neither the name PX4 nor the names of its contributors may be - * used to endorse or promote products derived from this software - * without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS - * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT - * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS - * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE - * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, - * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, - * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS - * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED - * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN - * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE - * POSSIBILITY OF SUCH DAMAGE. - * - ****************************************************************************/ - -/** - * @file test_mtd.c - * - * Param storage / file test. - * - * @author Lorenz Meier <lm@inf.ethz.ch> - */ - -#include <sys/stat.h> -#include <poll.h> -#include <dirent.h> -#include <stdio.h> -#include <stddef.h> -#include <unistd.h> -#include <fcntl.h> -#include <systemlib/err.h> -#include <systemlib/perf_counter.h> -#include <string.h> - -#include <drivers/drv_hrt.h> - -#include "tests.h" - -#define PARAM_FILE_NAME "/fs/mtd_params" - -static int check_user_abort(int fd); -static void print_fail(void); -static void print_success(void); - -int check_user_abort(int fd) { - /* check if user wants to abort */ - char c; - - struct pollfd fds; - int ret; - fds.fd = 0; /* stdin */ - fds.events = POLLIN; - ret = poll(&fds, 1, 0); - - if (ret > 0) { - - read(0, &c, 1); - - switch (c) { - case 0x03: // ctrl-c - case 0x1b: // esc - case 'c': - case 'q': - { - warnx("Test aborted."); - fsync(fd); - close(fd); - return OK; - /* not reached */ - } - } - } - - return 1; -} - -void print_fail() -{ - printf("<[T]: MTD: FAIL>\n"); -} - -void print_success() -{ - printf("<[T]: MTD: OK>\n"); -} - -int -test_mtd(int argc, char *argv[]) -{ - unsigned iterations= 0; - - /* check if microSD card is mounted */ - struct stat buffer; - if (stat(PARAM_FILE_NAME, &buffer)) { - warnx("file %s not found, aborting MTD test", PARAM_FILE_NAME); - print_fail(); - return 1; - } - - // XXX get real storage space here - unsigned file_size = 4096; - - /* perform tests for a range of chunk sizes */ - unsigned chunk_sizes[] = {256, 512, 4096}; - - for (unsigned c = 0; c < (sizeof(chunk_sizes) / sizeof(chunk_sizes[0])); c++) { - - printf("\n====== FILE TEST: %u bytes chunks ======\n", chunk_sizes[c]); - - uint8_t write_buf[chunk_sizes[c]] __attribute__((aligned(64))); - - /* fill write buffer with known values */ - for (unsigned i = 0; i < sizeof(write_buf); i++) { - /* this will wrap, but we just need a known value with spacing */ - write_buf[i] = i+11; - } - - uint8_t read_buf[chunk_sizes[c]] __attribute__((aligned(64))); - hrt_abstime start, end; - - int fd = open(PARAM_FILE_NAME, O_RDONLY); - int rret = read(fd, read_buf, chunk_sizes[c]); - close(fd); - if (rret <= 0) { - err(1, "read error"); - } - - fd = open(PARAM_FILE_NAME, O_WRONLY); - - printf("printing 2 percent of the first chunk:\n"); - for (unsigned i = 0; i < sizeof(read_buf) / 50; i++) { - printf("%02X", read_buf[i]); - } - printf("\n"); - - iterations = file_size / chunk_sizes[c]; - - start = hrt_absolute_time(); - for (unsigned i = 0; i < iterations; i++) { - int wret = write(fd, write_buf, chunk_sizes[c]); - - if (wret != (int)chunk_sizes[c]) { - warn("WRITE ERROR!"); - print_fail(); - return 1; - } - - fsync(fd); - - if (!check_user_abort(fd)) - return OK; - - } - end = hrt_absolute_time(); - - warnx("write took %llu us", (end - start)); - - close(fd); - fd = open(PARAM_FILE_NAME, O_RDONLY); - - /* read back data for validation */ - for (unsigned i = 0; i < iterations; i++) { - int rret2 = read(fd, read_buf, chunk_sizes[c]); - - if (rret2 != (int)chunk_sizes[c]) { - warnx("READ ERROR!"); - print_fail(); - return 1; - } - - /* compare value */ - bool compare_ok = true; - - for (unsigned j = 0; j < chunk_sizes[c]; j++) { - if (read_buf[j] != write_buf[j]) { - warnx("COMPARISON ERROR: byte %d", j); - print_fail(); - compare_ok = false; - break; - } - } - - if (!compare_ok) { - warnx("ABORTING FURTHER COMPARISON DUE TO ERROR"); - print_fail(); - return 1; - } - - if (!check_user_abort(fd)) - return OK; - - } - - - close(fd); - - } - - /* fill the file with 0xFF to make it look new again */ - char ffbuf[64]; - memset(ffbuf, 0xFF, sizeof(ffbuf)); - int fd = open(PARAM_FILE_NAME, O_WRONLY); - for (unsigned i = 0; i < file_size / sizeof(ffbuf); i++) { - int ret = write(fd, ffbuf, sizeof(ffbuf)); - - if (ret != sizeof(ffbuf)) { - warnx("ERROR! Could not fill file with 0xFF"); - close(fd); - print_fail(); - return 1; - } - } - - (void)close(fd); - print_success(); - - return 0; -} diff --git a/src/systemcmds/tests/tests.h b/src/systemcmds/tests/tests.h index ad55e1410..69fb0e57b 100644 --- a/src/systemcmds/tests/tests.h +++ b/src/systemcmds/tests/tests.h @@ -1,6 +1,6 @@ /**************************************************************************** * - * Copyright (c) 2012-2014 PX4 Development Team. All rights reserved. + * Copyright (c) 2012-2015 PX4 Development Team. All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions @@ -112,7 +112,6 @@ extern int test_mixer(int argc, char *argv[]); extern int test_rc(int argc, char *argv[]); extern int test_conv(int argc, char *argv[]); extern int test_mount(int argc, char *argv[]); -extern int test_mtd(int argc, char *argv[]); extern int test_mathlib(int argc, char *argv[]); __END_DECLS diff --git a/src/systemcmds/tests/tests_main.c b/src/systemcmds/tests/tests_main.c index 0f56704e6..2f586fa85 100644 --- a/src/systemcmds/tests/tests_main.c +++ b/src/systemcmds/tests/tests_main.c @@ -1,6 +1,6 @@ /**************************************************************************** * - * Copyright (c) 2012, 2013 PX4 Development Team. All rights reserved. + * Copyright (c) 2012-2015 PX4 Development Team. All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions @@ -109,7 +109,6 @@ const struct { {"rc", test_rc, OPT_NOJIGTEST | OPT_NOALLTEST}, {"conv", test_conv, OPT_NOJIGTEST | OPT_NOALLTEST}, {"mount", test_mount, OPT_NOJIGTEST | OPT_NOALLTEST}, - {"mtd", test_mtd, 0}, #ifndef TESTS_MATHLIB_DISABLE {"mathlib", test_mathlib, 0}, #endif |