From cd4154d805d10f84710a98cc280e0b248c5a6d55 Mon Sep 17 00:00:00 2001 From: Andreas Antener Date: Tue, 5 May 2015 14:41:53 +0200 Subject: Revert "Merge pull request #1819 from PX4/chan16" because of #2113 This reverts commit f8c8876642857520e85ec8ca027146c11b4301e3, reversing changes made to de3888bed75347eb8aefdc6cb7dbeeedff749988. --- src/drivers/px4io/px4io.cpp | 16 +++++----------- src/modules/px4iofirmware/mixer.cpp | 6 ++---- src/modules/px4iofirmware/px4io.h | 3 +-- src/modules/px4iofirmware/registers.c | 2 +- src/modules/px4iofirmware/sbus.c | 4 ++-- 5 files changed, 11 insertions(+), 20 deletions(-) diff --git a/src/drivers/px4io/px4io.cpp b/src/drivers/px4io/px4io.cpp index b974b711f..0b24ef152 100644 --- a/src/drivers/px4io/px4io.cpp +++ b/src/drivers/px4io/px4io.cpp @@ -1743,20 +1743,14 @@ PX4IO::io_publish_pwm_outputs() uint16_t ctl[_max_actuators]; int ret = io_reg_get(PX4IO_PAGE_SERVOS, 0, ctl, _max_actuators); - if (ret != OK){ + if (ret != OK) return ret; - } - - unsigned maxouts = sizeof(outputs.output) / sizeof(outputs.output[0]); - unsigned actuator_max = (_max_actuators > maxouts) ? maxouts : _max_actuators; - /* convert from register format to float */ - for (unsigned i = 0; i < actuator_max; i++){ + for (unsigned i = 0; i < _max_actuators; i++) outputs.output[i] = ctl[i]; - } - outputs.noutputs = actuator_max; + outputs.noutputs = _max_actuators; /* lazily advertise on first publication */ if (_to_outputs == 0) { @@ -2087,13 +2081,13 @@ PX4IO::print_status(bool extended_status) printf("vrssi %u\n", io_reg_get(PX4IO_PAGE_STATUS, PX4IO_P_STATUS_VRSSI)); } - printf("actuators (including S.BUS)"); + printf("actuators"); for (unsigned i = 0; i < _max_actuators; i++) printf(" %hi", int16_t(io_reg_get(PX4IO_PAGE_ACTUATORS, i))); printf("\n"); - printf("hardware servo ports"); + printf("servos"); for (unsigned i = 0; i < _max_actuators; i++) printf(" %u", io_reg_get(PX4IO_PAGE_SERVOS, i)); diff --git a/src/modules/px4iofirmware/mixer.cpp b/src/modules/px4iofirmware/mixer.cpp index 6fa26d4ff..f14599a24 100644 --- a/src/modules/px4iofirmware/mixer.cpp +++ b/src/modules/px4iofirmware/mixer.cpp @@ -272,9 +272,8 @@ mixer_tick(void) if (mixer_servos_armed && should_arm) { /* update the servo outputs. */ - for (unsigned i = 0; i < PX4IO_SERVO_HARDWARE_COUNT; i++) { + for (unsigned i = 0; i < PX4IO_SERVO_COUNT; i++) up_pwm_servo_set(i, r_page_servos[i]); - } /* set S.BUS1 or S.BUS2 outputs */ @@ -286,9 +285,8 @@ mixer_tick(void) } else if (mixer_servos_armed && should_always_enable_pwm) { /* set the disarmed servo outputs. */ - for (unsigned i = 0; i < PX4IO_SERVO_HARDWARE_COUNT; i++) { + for (unsigned i = 0; i < PX4IO_SERVO_COUNT; i++) up_pwm_servo_set(i, r_page_servo_disarmed[i]); - } /* set S.BUS1 or S.BUS2 outputs */ if (r_setup_features & PX4IO_P_SETUP_FEATURES_SBUS1_OUT) diff --git a/src/modules/px4iofirmware/px4io.h b/src/modules/px4iofirmware/px4io.h index 8ddf45a12..a7ac74c33 100644 --- a/src/modules/px4iofirmware/px4io.h +++ b/src/modules/px4iofirmware/px4io.h @@ -51,8 +51,7 @@ /* * Constants and limits. */ -#define PX4IO_SERVO_COUNT 16 -#define PX4IO_SERVO_HARDWARE_COUNT 8 +#define PX4IO_SERVO_COUNT 8 #define PX4IO_CONTROL_CHANNELS 8 #define PX4IO_CONTROL_GROUPS 4 #define PX4IO_RC_INPUT_CHANNELS 18 diff --git a/src/modules/px4iofirmware/registers.c b/src/modules/px4iofirmware/registers.c index e7976446c..a8009da41 100644 --- a/src/modules/px4iofirmware/registers.c +++ b/src/modules/px4iofirmware/registers.c @@ -285,7 +285,7 @@ registers_set(uint8_t page, uint8_t offset, const uint16_t *values, unsigned num case PX4IO_PAGE_DIRECT_PWM: /* copy channel data */ - while ((offset < PX4IO_SERVO_COUNT) && (num_values > 0)) { + while ((offset < PX4IO_CONTROL_CHANNELS) && (num_values > 0)) { /* XXX range-check value? */ if (*values != PWM_IGNORE_THIS_CHANNEL) { diff --git a/src/modules/px4iofirmware/sbus.c b/src/modules/px4iofirmware/sbus.c index 14d8ccca2..9d2849090 100644 --- a/src/modules/px4iofirmware/sbus.c +++ b/src/modules/px4iofirmware/sbus.c @@ -163,8 +163,8 @@ sbus1_output(uint16_t *values, uint16_t num_values) void sbus2_output(uint16_t *values, uint16_t num_values) { - // XXX S.BUS2 is not implemented, fall back to S.BUS1 - sbus1_output(values, num_values); + char b = 'B'; + write(sbus_fd, &b, 1); } bool -- cgit v1.2.3