AP_BoardConfig: fixed build for some boards

for boards that don't have board detection but do have a safety switch
this fixes the build
This commit is contained in:
Andrew Tridgell 2018-04-21 07:31:20 +10:00
parent 3be6c0e26b
commit e2fa38968f
2 changed files with 18 additions and 10 deletions

View File

@ -10,9 +10,13 @@
#if CONFIG_HAL_BOARD == HAL_BOARD_PX4 || CONFIG_HAL_BOARD == HAL_BOARD_VRBRAIN || defined(HAL_CHIBIOS_ARCH_FMUV3) || defined(HAL_CHIBIOS_ARCH_FMUV4) || defined(HAL_CHIBIOS_ARCH_MINDPXV2) #if CONFIG_HAL_BOARD == HAL_BOARD_PX4 || CONFIG_HAL_BOARD == HAL_BOARD_VRBRAIN || defined(HAL_CHIBIOS_ARCH_FMUV3) || defined(HAL_CHIBIOS_ARCH_FMUV4) || defined(HAL_CHIBIOS_ARCH_MINDPXV2)
#define AP_FEATURE_BOARD_DETECT 1 #define AP_FEATURE_BOARD_DETECT 1
#define AP_FEATURE_SAFETY_BUTTON 1
#else #else
#define AP_FEATURE_BOARD_DETECT 0 #define AP_FEATURE_BOARD_DETECT 0
#endif
#if CONFIG_HAL_BOARD == HAL_BOARD_PX4 || CONFIG_HAL_BOARD == HAL_BOARD_VRBRAIN || defined(HAL_CHIBIOS_ARCH_FMUV3) || defined(HAL_CHIBIOS_ARCH_FMUV4) || defined(HAL_CHIBIOS_ARCH_MINDPXV2) || defined(HAL_GPIO_PIN_SAFETY_IN)
#define AP_FEATURE_SAFETY_BUTTON 1
#else
#define AP_FEATURE_SAFETY_BUTTON 0 #define AP_FEATURE_SAFETY_BUTTON 0
#endif #endif
@ -154,7 +158,7 @@ private:
AP_Int16 vehicleSerialNumber; AP_Int16 vehicleSerialNumber;
#if AP_FEATURE_BOARD_DETECT || defined(AP_FEATURE_BRD_PWM_COUNT_PARAM) #if AP_FEATURE_BOARD_DETECT || defined(AP_FEATURE_BRD_PWM_COUNT_PARAM) || AP_FEATURE_SAFETY_BUTTON
struct { struct {
AP_Int8 pwm_count; AP_Int8 pwm_count;
AP_Int8 safety_enable; AP_Int8 safety_enable;
@ -182,8 +186,6 @@ private:
#endif #endif
void board_init_safety(void);
void board_setup_safety_mask(void);
void board_setup_drivers(void); void board_setup_drivers(void);
bool spi_check_register(const char *devname, uint8_t regnum, uint8_t value, uint8_t read_flag = 0x80); bool spi_check_register(const char *devname, uint8_t regnum, uint8_t value, uint8_t read_flag = 0x80);
void validate_board_type(void); void validate_board_type(void);
@ -191,6 +193,11 @@ private:
#endif // AP_FEATURE_BOARD_DETECT #endif // AP_FEATURE_BOARD_DETECT
#if AP_FEATURE_SAFETY_BUTTON
void board_init_safety(void);
void board_setup_safety_mask(void);
#endif
void board_setup_uart(void); void board_setup_uart(void);
void board_setup_sbus(void); void board_setup_sbus(void);
void board_setup(void); void board_setup(void);

View File

@ -22,16 +22,12 @@
extern const AP_HAL::HAL& hal; extern const AP_HAL::HAL& hal;
#if AP_FEATURE_BOARD_DETECT #if AP_FEATURE_SAFETY_BUTTON
AP_BoardConfig::px4_board_type AP_BoardConfig::px4_configured_board;
/* /*
init safety state init safety state
*/ */
void AP_BoardConfig::board_init_safety() void AP_BoardConfig::board_init_safety()
{ {
#if AP_FEATURE_SAFETY_BUTTON
if (state.safety_enable.get() == 0) { if (state.safety_enable.get() == 0) {
hal.rcout->force_safety_off(); hal.rcout->force_safety_off();
hal.rcout->force_safety_no_wait(); hal.rcout->force_safety_no_wait();
@ -41,8 +37,13 @@ void AP_BoardConfig::board_init_safety()
hal.scheduler->delay(20); hal.scheduler->delay(20);
} }
} }
#endif
} }
#endif
#if AP_FEATURE_BOARD_DETECT
AP_BoardConfig::px4_board_type AP_BoardConfig::px4_configured_board;
#if defined(CONFIG_ARCH_BOARD_PX4FMU_V4) #if defined(CONFIG_ARCH_BOARD_PX4FMU_V4)
extern "C" { extern "C" {