aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorpx4dev <px4@purgatory.org>2012-08-18 22:56:04 -0700
committerpx4dev <px4@purgatory.org>2012-08-18 22:56:04 -0700
commit84777544114d3d185a2fee0d30e3187c7f6ab27e (patch)
tree13e58186732ca45040b928a6c535ad83e3c3de4b
parentfcad5b52c52484470c897cdde745e62008c61e7d (diff)
downloadpx4-firmware-84777544114d3d185a2fee0d30e3187c7f6ab27e.tar.gz
px4-firmware-84777544114d3d185a2fee0d30e3187c7f6ab27e.tar.bz2
px4-firmware-84777544114d3d185a2fee0d30e3187c7f6ab27e.zip
Share the PX4IO protocol header, such as it is, between the two apps.
Stop using systemlib in the PX4IO firmware; it has expectations that can't reasonably be met.
-rw-r--r--apps/px4/px4io/driver/px4io.cpp2
-rw-r--r--apps/px4/px4io/protocol.h73
-rw-r--r--apps/px4io/Makefile11
-rw-r--r--apps/px4io/protocol.h8
-rw-r--r--nuttx/configs/px4io/io/appconfig9
5 files changed, 20 insertions, 83 deletions
diff --git a/apps/px4/px4io/driver/px4io.cpp b/apps/px4/px4io/driver/px4io.cpp
index fafec77f9..a5def874d 100644
--- a/apps/px4/px4io/driver/px4io.cpp
+++ b/apps/px4/px4io/driver/px4io.cpp
@@ -65,7 +65,7 @@
#include <systemlib/perf_counter.h>
#include <systemlib/hx_stream.h>
-#include "../protocol.h"
+#include "px4io/protocol.h"
#include "uploader.h"
class PX4IO;
diff --git a/apps/px4/px4io/protocol.h b/apps/px4/px4io/protocol.h
deleted file mode 100644
index c186c5b86..000000000
--- a/apps/px4/px4io/protocol.h
+++ /dev/null
@@ -1,73 +0,0 @@
-/****************************************************************************
- *
- * Copyright (C) 2012 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 PX4FMU <-> PX4IO messaging protocol.
- *
- * This initial version of the protocol is very simple; each side transmits a
- * complete update with each frame. This avoids the sending of many small
- * messages and the corresponding complexity involved.
- */
-
-/*
- * XXX MUST BE KEPT IN SYNC WITH THE VERSION IN PX4FMU UNTIL
- * TREES ARE MERGED.
- */
-
-#define PX4IO_OUTPUT_CHANNELS 8
-#define PX4IO_INPUT_CHANNELS 12
-#define PX4IO_RELAY_CHANNELS 2
-
-#pragma pack(push,1)
-
-/* command from FMU to IO */
-struct px4io_command {
- uint16_t f2i_magic;
-#define F2I_MAGIC 0x636d
-
- uint16_t servo_command[PX4IO_OUTPUT_CHANNELS];
- bool relay_state[PX4IO_RELAY_CHANNELS];
- bool arm_ok;
-};
-
-/* report from IO to FMU */
-struct px4io_report {
- uint16_t i2f_magic;
-#define I2F_MAGIC 0x7570
-
- uint16_t rc_channel[PX4IO_INPUT_CHANNELS];
- bool armed;
- uint8_t channel_count;
-} __attribute__((packed));
-
-#pragma pack(pop)
diff --git a/apps/px4io/Makefile b/apps/px4io/Makefile
index 06be90a0c..9b63d3ac8 100644
--- a/apps/px4io/Makefile
+++ b/apps/px4io/Makefile
@@ -35,4 +35,15 @@
# Build the px4io application.
#
+#
+# Note that we pull a couple of specific files from the systemlib, since
+# we can't support it all.
+#
+CSRCS = comms.c \
+ mixer.c \
+ px4io.c \
+ safety.c \
+ ../systemlib/hx_stream.c \
+ ../systemlib/perf_counter.c
+
include $(APPDIR)/mk/app.mk
diff --git a/apps/px4io/protocol.h b/apps/px4io/protocol.h
index 92558a61d..96e0ca350 100644
--- a/apps/px4io/protocol.h
+++ b/apps/px4io/protocol.h
@@ -48,6 +48,8 @@
#define PX4IO_INPUT_CHANNELS 12
#define PX4IO_RELAY_CHANNELS 2
+#pragma pack(push, 1)
+
/* command from FMU to IO */
struct px4io_command {
uint16_t f2i_magic;
@@ -56,7 +58,7 @@ struct px4io_command {
uint16_t servo_command[PX4IO_OUTPUT_CHANNELS];
bool relay_state[PX4IO_RELAY_CHANNELS];
bool arm_ok;
-} __attribute__((packed));
+};
/* report from IO to FMU */
struct px4io_report {
@@ -66,4 +68,6 @@ struct px4io_report {
uint16_t rc_channel[PX4IO_INPUT_CHANNELS];
bool armed;
uint8_t channel_count;
-} __attribute__((packed));
+};
+
+#pragma pack(pop) \ No newline at end of file
diff --git a/nuttx/configs/px4io/io/appconfig b/nuttx/configs/px4io/io/appconfig
index 94176c6dc..fbe8307a7 100644
--- a/nuttx/configs/px4io/io/appconfig
+++ b/nuttx/configs/px4io/io/appconfig
@@ -1,8 +1,6 @@
############################################################################
-# configs/stm3210e-eval/nsh/appconfig
#
-# Copyright (C) 2011-2012 Gregory Nutt. All rights reserved.
-# Author: Gregory Nutt <gnutt@nuttx.org>
+# Copyright (C) 2012 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
@@ -14,7 +12,7 @@
# notice, this list of conditions and the following disclaimer in
# the documentation and/or other materials provided with the
# distribution.
-# 3. Neither the name NuttX nor the names of its contributors may be
+# 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.
#
@@ -33,7 +31,4 @@
#
############################################################################
-# Path to px4io app containing the user_start entry point
-
CONFIGURED_APPS += px4io
-CONFIGURED_APPS += systemlib