Reworked manual override flag, reworked arming slightly. Pending testing

This commit is contained in:
Lorenz Meier
2013-02-13 08:27:07 +01:00
parent d4ca6a29a1
commit 72de5b5ea7
3 changed files with 6 additions and 7 deletions
+3 -3
View File
@@ -335,7 +335,7 @@ PX4IO::init()
/* dis-arm IO before touching anything */ /* dis-arm IO before touching anything */
io_reg_modify(PX4IO_PAGE_SETUP, PX4IO_P_SETUP_ARMING, io_reg_modify(PX4IO_PAGE_SETUP, PX4IO_P_SETUP_ARMING,
PX4IO_P_SETUP_ARMING_ARM_OK | PX4IO_P_SETUP_ARMING_ARM_OK |
PX4IO_P_SETUP_ARMING_MANUAL_OVERRIDE | PX4IO_P_SETUP_ARMING_MANUAL_OVERRIDE_OK |
PX4IO_P_SETUP_ARMING_VECTOR_FLIGHT_OK, 0); PX4IO_P_SETUP_ARMING_VECTOR_FLIGHT_OK, 0);
/* publish RC config to IO */ /* publish RC config to IO */
@@ -541,9 +541,9 @@ PX4IO::io_set_arming_state()
clear |= PX4IO_P_SETUP_ARMING_VECTOR_FLIGHT_OK; clear |= PX4IO_P_SETUP_ARMING_VECTOR_FLIGHT_OK;
} }
if (vstatus.flag_external_manual_override_ok) { if (vstatus.flag_external_manual_override_ok) {
set |= PX4IO_P_FEAT_ARMING_MANUAL_OVERRIDE_OK; set |= PX4IO_P_SETUP_ARMING_MANUAL_OVERRIDE_OK;
} else { } else {
clear |= PX4IO_P_FEAT_ARMING_MANUAL_OVERRIDE_OK; clear |= PX4IO_P_SETUP_ARMING_MANUAL_OVERRIDE_OK;
} }
return io_reg_modify(PX4IO_PAGE_SETUP, PX4IO_P_SETUP_ARMING, clear, set); return io_reg_modify(PX4IO_PAGE_SETUP, PX4IO_P_SETUP_ARMING, clear, set);
+2 -3
View File
@@ -136,12 +136,11 @@
/* setup page */ /* setup page */
#define PX4IO_PAGE_SETUP 100 #define PX4IO_PAGE_SETUP 100
#define PX4IO_P_SETUP_FEATURES 0 #define PX4IO_P_SETUP_FEATURES 0
#define PX4IO_P_FEAT_ARMING_MANUAL_OVERRIDE_OK (1 << 0) /* OK to switch to manual override */
#define PX4IO_P_SETUP_ARMING 1 /* arming controls */ #define PX4IO_P_SETUP_ARMING 1 /* arming controls */
#define PX4IO_P_SETUP_ARMING_ARM_OK (1 << 0) /* OK to arm */ #define PX4IO_P_SETUP_ARMING_ARM_OK (1 << 0) /* OK to arm */
#define PX4IO_P_SETUP_ARMING_MANUAL_OVERRIDE (1 << 2) /* request switch to manual override */ #define PX4IO_P_SETUP_ARMING_MANUAL_OVERRIDE_OK (1 << 2) /* OK to switch to manual override via override RC channel */
#define PX4IO_P_SETUP_ARMING_VECTOR_FLIGHT_OK (1 << 3) #define PX4IO_P_SETUP_ARMING_VECTOR_FLIGHT_OK (1 << 3) /* OK to perform position / vector control (= position lock) */
#define PX4IO_P_SETUP_PWM_RATES 2 /* bitmask, 0 = low rate, 1 = high rate */ #define PX4IO_P_SETUP_PWM_RATES 2 /* bitmask, 0 = low rate, 1 = high rate */
#define PX4IO_P_SETUP_PWM_LOWRATE 3 /* 'low' PWM frame output rate in Hz */ #define PX4IO_P_SETUP_PWM_LOWRATE 3 /* 'low' PWM frame output rate in Hz */
+1 -1
View File
@@ -284,7 +284,7 @@ registers_set_one(uint8_t page, uint8_t offset, uint16_t value)
r_setup_features = value; r_setup_features = value;
/* update manual override state - disable if no longer OK */ /* update manual override state - disable if no longer OK */
if ((r_status_flags & PX4IO_P_STATUS_FLAGS_OVERRIDE) && !(value & PX4IO_P_FEAT_ARMING_MANUAL_OVERRIDE_OK)) if ((r_status_flags & PX4IO_P_STATUS_FLAGS_OVERRIDE) && !(value & PX4IO_P_SETUP_ARMING_MANUAL_OVERRIDE_OK))
r_status_flags &= ~PX4IO_P_STATUS_FLAGS_OVERRIDE; r_status_flags &= ~PX4IO_P_STATUS_FLAGS_OVERRIDE;
break; break;