forked from Archive/PX4-Autopilot
added hw test, added better io debugging
This commit is contained in:
parent
d8396ca4b3
commit
13b07efc49
|
@ -128,6 +128,9 @@ MODULES += lib/geo
|
||||||
# https://pixhawk.ethz.ch/px4/dev/debug_values
|
# https://pixhawk.ethz.ch/px4/dev/debug_values
|
||||||
#MODULES += examples/px4_mavlink_debug
|
#MODULES += examples/px4_mavlink_debug
|
||||||
|
|
||||||
|
# Hardware test
|
||||||
|
MODULES += examples/hwtest
|
||||||
|
|
||||||
#
|
#
|
||||||
# Transitional support - add commands from the NuttX export archive.
|
# Transitional support - add commands from the NuttX export archive.
|
||||||
#
|
#
|
||||||
|
|
|
@ -1545,7 +1545,7 @@ PX4IO::print_debug()
|
||||||
int io_fd = -1;
|
int io_fd = -1;
|
||||||
|
|
||||||
if (io_fd < 0) {
|
if (io_fd < 0) {
|
||||||
io_fd = ::open("/dev/ttyS0", O_RDONLY | O_NONBLOCK);
|
io_fd = ::open("/dev/ttyS0", O_RDONLY | O_NONBLOCK | O_NOCTTY);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* read IO's output */
|
/* read IO's output */
|
||||||
|
@ -1555,7 +1555,7 @@ PX4IO::print_debug()
|
||||||
fds[0].events = POLLIN;
|
fds[0].events = POLLIN;
|
||||||
|
|
||||||
usleep(500);
|
usleep(500);
|
||||||
int pret = ::poll(fds, sizeof(fds) / sizeof(fds[0]), 10);
|
int pret = ::poll(fds, sizeof(fds) / sizeof(fds[0]), 0);
|
||||||
|
|
||||||
if (pret > 0) {
|
if (pret > 0) {
|
||||||
int count;
|
int count;
|
||||||
|
@ -1606,6 +1606,8 @@ PX4IO::mixer_send(const char *buf, unsigned buflen, unsigned retries)
|
||||||
memcpy(&msg->text[0], buf, count);
|
memcpy(&msg->text[0], buf, count);
|
||||||
buf += count;
|
buf += count;
|
||||||
buflen -= count;
|
buflen -= count;
|
||||||
|
} else {
|
||||||
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
@ -1644,7 +1646,8 @@ PX4IO::mixer_send(const char *buf, unsigned buflen, unsigned retries)
|
||||||
/* ensure a closing newline */
|
/* ensure a closing newline */
|
||||||
msg->text[0] = '\n';
|
msg->text[0] = '\n';
|
||||||
msg->text[1] = '\0';
|
msg->text[1] = '\0';
|
||||||
int ret = io_reg_set(PX4IO_PAGE_MIXERLOAD, 0, (uint16_t *)frame, 1);
|
|
||||||
|
int ret = io_reg_set(PX4IO_PAGE_MIXERLOAD, 0, (uint16_t *)frame, (sizeof(px4io_mixdata) + 2) / 2);
|
||||||
|
|
||||||
retries--;
|
retries--;
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,74 @@
|
||||||
|
/****************************************************************************
|
||||||
|
*
|
||||||
|
* Copyright (c) 2013 PX4 Development Team. All rights reserved.
|
||||||
|
* Author: Lorenz Meier <lm@inf.ethz.ch>
|
||||||
|
*
|
||||||
|
* 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 hwtest.c
|
||||||
|
*
|
||||||
|
* Simple functional hardware test.
|
||||||
|
*
|
||||||
|
* @author Lorenz Meier <lm@inf.ethz.ch>
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include <nuttx/config.h>
|
||||||
|
#include <stdio.h>
|
||||||
|
#include <systemlib/err.h>
|
||||||
|
#include <drivers/drv_hrt.h>
|
||||||
|
#include <uORB/uORB.h>
|
||||||
|
#include <uORB/topics/actuator_controls.h>
|
||||||
|
|
||||||
|
__EXPORT int ex_hwtest_main(int argc, char *argv[]);
|
||||||
|
|
||||||
|
int ex_hwtest_main(int argc, char *argv[])
|
||||||
|
{
|
||||||
|
struct actuator_controls_s actuators;
|
||||||
|
memset(&actuators, 0, sizeof(actuators));
|
||||||
|
orb_advert_t actuator_pub_fd = orb_advertise(ORB_ID(actuator_controls_0), &actuators);
|
||||||
|
|
||||||
|
int i;
|
||||||
|
float rcvalue = -1.0f;
|
||||||
|
hrt_abstime stime;
|
||||||
|
|
||||||
|
while (true) {
|
||||||
|
stime = hrt_absolute_time();
|
||||||
|
while (hrt_absolute_time() - stime < 1000000) {
|
||||||
|
for (i=0; i<8; i++)
|
||||||
|
actuators.control[i] = rcvalue;
|
||||||
|
actuators.timestamp = hrt_absolute_time();
|
||||||
|
orb_publish(ORB_ID(actuator_controls_0), actuator_pub_fd, &actuators);
|
||||||
|
}
|
||||||
|
warnx("servos set to %.1f", rcvalue);
|
||||||
|
rcvalue *= -1.0f;
|
||||||
|
}
|
||||||
|
|
||||||
|
return OK;
|
||||||
|
}
|
|
@ -0,0 +1,40 @@
|
||||||
|
############################################################################
|
||||||
|
#
|
||||||
|
# Copyright (c) 2012, 2013 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.
|
||||||
|
#
|
||||||
|
############################################################################
|
||||||
|
|
||||||
|
#
|
||||||
|
# Hardware test example application
|
||||||
|
#
|
||||||
|
|
||||||
|
MODULE_COMMAND = ex_hwtest
|
||||||
|
|
||||||
|
SRCS = hwtest.c
|
Loading…
Reference in New Issue