aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorThomas Gubler <thomasgubler@gmail.com>2014-08-12 16:42:55 +0200
committerThomas Gubler <thomasgubler@gmail.com>2014-08-12 16:42:55 +0200
commita2e6b2bca0d967cb29eb855f6aebd7fcc933bfc1 (patch)
tree6525b1c665a51c678c55560788e32cf69ae45095
parenta04d70ed5a800ff6d74afc6800f7bb94ed472ad4 (diff)
parent62959d4d01b441c9bf7057417b319dc0888615a8 (diff)
downloadpx4-firmware-a2e6b2bca0d967cb29eb855f6aebd7fcc933bfc1.tar.gz
px4-firmware-a2e6b2bca0d967cb29eb855f6aebd7fcc933bfc1.tar.bz2
px4-firmware-a2e6b2bca0d967cb29eb855f6aebd7fcc933bfc1.zip
Merge remote-tracking branch 'upstream/master' into offboard2_externalsetpointmessages
-rw-r--r--ROMFS/px4fmu_common/init.d/rcS13
-rwxr-xr-xTools/px_uploader.py2
-rw-r--r--src/drivers/px4io/px4io.cpp36
3 files changed, 39 insertions, 12 deletions
diff --git a/ROMFS/px4fmu_common/init.d/rcS b/ROMFS/px4fmu_common/init.d/rcS
index 24b2a299a..c9e6a27ca 100644
--- a/ROMFS/px4fmu_common/init.d/rcS
+++ b/ROMFS/px4fmu_common/init.d/rcS
@@ -83,9 +83,12 @@ then
param select $PARAM_FILE
if param load
then
- echo "[init] Params loaded: $PARAM_FILE"
+ echo "[param] Loaded: $PARAM_FILE"
else
- echo "[init] ERROR: Params loading failed: $PARAM_FILE"
+ echo "[param] FAILED loading $PARAM_FILE"
+ if param reset
+ then
+ fi
fi
#
@@ -280,9 +283,11 @@ then
nshterm /dev/ttyACM0 &
#
- # Start the datamanager
+ # Start the datamanager (and do not abort boot if it fails)
#
- dataman start
+ if dataman start
+ then
+ fi
#
# Start the Commander (needs to be this early for in-air-restarts)
diff --git a/Tools/px_uploader.py b/Tools/px_uploader.py
index cd7884f6d..d8f4884bc 100755
--- a/Tools/px_uploader.py
+++ b/Tools/px_uploader.py
@@ -180,7 +180,7 @@ class uploader(object):
def __init__(self, portname, baudrate):
# open the port, keep the default timeout short so we can poll quickly
- self.port = serial.Serial(portname, baudrate, timeout=0.5)
+ self.port = serial.Serial(portname, baudrate, timeout=2.0)
self.otp = b''
self.sn = b''
diff --git a/src/drivers/px4io/px4io.cpp b/src/drivers/px4io/px4io.cpp
index d93009c47..32069cf09 100644
--- a/src/drivers/px4io/px4io.cpp
+++ b/src/drivers/px4io/px4io.cpp
@@ -136,6 +136,15 @@ public:
virtual int init();
/**
+ * Initialize the PX4IO class.
+ *
+ * Retrieve relevant initial system parameters. Initialize PX4IO registers.
+ *
+ * @param disable_rc_handling set to true to forbid override / RC handling on IO
+ */
+ int init(bool disable_rc_handling);
+
+ /**
* Detect if a PX4IO is connected.
*
* Only validate if there is a PX4IO to talk to.
@@ -580,6 +589,12 @@ PX4IO::detect()
}
int
+PX4IO::init(bool rc_handling_disabled) {
+ _rc_handling_disabled = rc_handling_disabled;
+ return init();
+}
+
+int
PX4IO::init()
{
int ret;
@@ -778,6 +793,11 @@ PX4IO::init()
if (_rc_handling_disabled) {
ret = io_disable_rc_handling();
+ if (ret != OK) {
+ log("failed disabling RC handling");
+ return ret;
+ }
+
} else {
/* publish RC config to IO */
ret = io_set_rc_config();
@@ -1175,6 +1195,7 @@ PX4IO::io_set_arming_state()
int
PX4IO::disable_rc_handling()
{
+ _rc_handling_disabled = true;
return io_disable_rc_handling();
}
@@ -2613,24 +2634,25 @@ start(int argc, char *argv[])
errx(1, "driver alloc failed");
}
- if (OK != g_dev->init()) {
- delete g_dev;
- g_dev = nullptr;
- errx(1, "driver init failed");
- }
+ bool rc_handling_disabled = false;
/* disable RC handling on request */
if (argc > 1) {
if (!strcmp(argv[1], "norc")) {
- if (g_dev->disable_rc_handling())
- warnx("Failed disabling RC handling");
+ rc_handling_disabled = true;
} else {
warnx("unknown argument: %s", argv[1]);
}
}
+ if (OK != g_dev->init(rc_handling_disabled)) {
+ delete g_dev;
+ g_dev = nullptr;
+ errx(1, "driver init failed");
+ }
+
#ifdef CONFIG_ARCH_BOARD_PX4FMU_V1
int dsm_vcc_ctl;