Skip to content

Commit

Permalink
RC_Channel: produce error if feature compiled out and aux func initia…
Browse files Browse the repository at this point in the history
…lised
  • Loading branch information
peterbarker committed Jul 4, 2024
1 parent ce48932 commit 6ce7e17
Showing 1 changed file with 42 additions and 4 deletions.
46 changes: 42 additions & 4 deletions libraries/RC_Channel/RC_Channel.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -626,26 +626,41 @@ void RC_Channel::init_aux_function(const AUX_FUNC ch_option, const AuxSwitchPos
// the following functions do not need to be initialised:
case AUX_FUNC::ARMDISARM:
case AUX_FUNC::ARMDISARM_AIRMODE:
#if AP_BATTERY_ENABLED
case AUX_FUNC::BATTERY_MPPT_ENABLE:
#endif
#if AP_CAMERA_ENABLED
case AUX_FUNC::CAMERA_TRIGGER:
#endif
case AUX_FUNC::CLEAR_WP:
case AUX_FUNC::COMPASS_LEARN:
case AUX_FUNC::DISARM:
case AUX_FUNC::DO_NOTHING:
#if AP_LANDINGGEAR_ENABLED
case AUX_FUNC::LANDING_GEAR:
#endif
case AUX_FUNC::LOST_VEHICLE_SOUND:
#if AP_SERVORELAYEVENTS_ENABLED && AP_RELAY_ENABLED
case AUX_FUNC::RELAY:
case AUX_FUNC::RELAY2:
case AUX_FUNC::RELAY3:
case AUX_FUNC::RELAY4:
case AUX_FUNC::RELAY5:
case AUX_FUNC::RELAY6:
#endif
#if HAL_VISUALODOM_ENABLED
case AUX_FUNC::VISODOM_ALIGN:
#endif
case AUX_FUNC::EKF_LANE_SWITCH:
case AUX_FUNC::EKF_YAW_RESET:
#if HAL_GENERATOR_ENABLED
case AUX_FUNC::GENERATOR: // don't turn generator on or off initially
#endif
case AUX_FUNC::EKF_POS_SOURCE:
#if HAL_TORQEEDO_ENABLED
case AUX_FUNC::TORQEEDO_CLEAR_ERR:
#endif
#if AP_SCRIPTING_ENABLED
case AUX_FUNC::SCRIPTING_1:
case AUX_FUNC::SCRIPTING_2:
case AUX_FUNC::SCRIPTING_3:
Expand All @@ -654,21 +669,30 @@ void RC_Channel::init_aux_function(const AUX_FUNC ch_option, const AuxSwitchPos
case AUX_FUNC::SCRIPTING_6:
case AUX_FUNC::SCRIPTING_7:
case AUX_FUNC::SCRIPTING_8:
#endif
#if AP_VIDEOTX_ENABLED
case AUX_FUNC::VTX_POWER:
#endif
#if AP_OPTICALFLOW_CALIBRATOR_ENABLED
case AUX_FUNC::OPTFLOW_CAL:
#endif
case AUX_FUNC::TURBINE_START:
#if HAL_MOUNT_ENABLED
case AUX_FUNC::MOUNT1_ROLL:
case AUX_FUNC::MOUNT1_PITCH:
case AUX_FUNC::MOUNT1_YAW:
case AUX_FUNC::MOUNT2_ROLL:
case AUX_FUNC::MOUNT2_PITCH:
case AUX_FUNC::MOUNT2_YAW:
#endif
case AUX_FUNC::LOWEHEISER_STARTER:
case AUX_FUNC::MAG_CAL:
#if AP_CAMERA_ENABLED
case AUX_FUNC::CAMERA_IMAGE_TRACKING:
#endif
#if HAL_MOUNT_ENABLED
case AUX_FUNC::MOUNT_LRF_ENABLE:
#endif
break;

// not really aux functions:
Expand All @@ -678,9 +702,13 @@ void RC_Channel::init_aux_function(const AUX_FUNC ch_option, const AuxSwitchPos
case AUX_FUNC::AVOID_ADSB:
#endif
case AUX_FUNC::AVOID_PROXIMITY:
#if AP_FENCE_ENABLED
case AUX_FUNC::FENCE:
#endif
#if AP_GPS_ENABLED
case AUX_FUNC::GPS_DISABLE:
case AUX_FUNC::GPS_DISABLE_YAW:
#endif
#if AP_GRIPPER_ENABLED
case AUX_FUNC::GRIPPER:
#endif
Expand All @@ -692,22 +720,30 @@ void RC_Channel::init_aux_function(const AUX_FUNC ch_option, const AuxSwitchPos
case AUX_FUNC::MISSION_RESET:
case AUX_FUNC::MOTOR_ESTOP:
case AUX_FUNC::RC_OVERRIDE_ENABLE:
#if HAL_RUNCAM_ENABLED
case AUX_FUNC::RUNCAM_CONTROL:
case AUX_FUNC::RUNCAM_OSD_CONTROL:
#endif
#if HAL_SPRAYER_ENABLED
case AUX_FUNC::SPRAYER:
#endif
case AUX_FUNC::DISABLE_AIRSPEED_USE:
case AUX_FUNC::FFT_NOTCH_TUNE:
#if HAL_MOUNT_ENABLED
case AUX_FUNC::RETRACT_MOUNT1:
case AUX_FUNC::MOUNT_LOCK:
#endif
#if HAL_LOGGING_ENABLED
case AUX_FUNC::LOG_PAUSE:
#endif
case AUX_FUNC::ARM_EMERGENCY_STOP:
#if AP_CAMERA_ENABLED
case AUX_FUNC::CAMERA_REC_VIDEO:
case AUX_FUNC::CAMERA_ZOOM:
case AUX_FUNC::CAMERA_MANUAL_FOCUS:
case AUX_FUNC::CAMERA_AUTO_FOCUS:
case AUX_FUNC::CAMERA_LENS:
#endif
case AUX_FUNC::AHRS_TYPE:
run_aux_function(ch_option, ch_flag, AuxFuncTriggerSource::INIT);
break;
Expand Down Expand Up @@ -1049,9 +1085,9 @@ bool RC_Channel::do_aux_function_camera_lens(const AuxSwitchPos ch_flag)
}
#endif // AP_CAMERA_ENABLED

#if HAL_RUNCAM_ENABLED
void RC_Channel::do_aux_function_runcam_control(const AuxSwitchPos ch_flag)
{
#if HAL_RUNCAM_ENABLED
AP_RunCam *runcam = AP::runcam();
if (runcam == nullptr) {
return;
Expand All @@ -1068,12 +1104,10 @@ void RC_Channel::do_aux_function_runcam_control(const AuxSwitchPos ch_flag)
runcam->stop_recording();
break;
}
#endif
}

void RC_Channel::do_aux_function_runcam_osd_control(const AuxSwitchPos ch_flag)
{
#if HAL_RUNCAM_ENABLED
AP_RunCam *runcam = AP::runcam();
if (runcam == nullptr) {
return;
Expand All @@ -1088,8 +1122,8 @@ void RC_Channel::do_aux_function_runcam_osd_control(const AuxSwitchPos ch_flag)
runcam->exit_osd();
break;
}
#endif
}
#endif

#if AP_FENCE_ENABLED
// enable or disable the fence
Expand Down Expand Up @@ -1328,13 +1362,15 @@ bool RC_Channel::do_aux_function(const AUX_FUNC ch_option, const AuxSwitchPos ch
break;
#endif // AP_SERVORELAYEVENTS_ENABLED && AP_RELAY_ENABLED

#if HAL_RUNCAM_ENABLED
case AUX_FUNC::RUNCAM_CONTROL:
do_aux_function_runcam_control(ch_flag);
break;

case AUX_FUNC::RUNCAM_OSD_CONTROL:
do_aux_function_runcam_osd_control(ch_flag);
break;
#endif

case AUX_FUNC::CLEAR_WP:
do_aux_function_clear_wp(ch_flag);
Expand Down Expand Up @@ -1415,6 +1451,7 @@ bool RC_Channel::do_aux_function(const AUX_FUNC ch_option, const AuxSwitchPos ch
}
#endif

#if AP_GPS_ENABLED
case AUX_FUNC::GPS_DISABLE:
AP::gps().force_disable(ch_flag == AuxSwitchPos::HIGH);
#if HAL_EXTERNAL_AHRS_ENABLED
Expand All @@ -1425,6 +1462,7 @@ bool RC_Channel::do_aux_function(const AUX_FUNC ch_option, const AuxSwitchPos ch
case AUX_FUNC::GPS_DISABLE_YAW:
AP::gps().set_force_disable_yaw(ch_flag == AuxSwitchPos::HIGH);
break;
#endif // AP_GPS_ENABLED

#if AP_AIRSPEED_ENABLED
case AUX_FUNC::DISABLE_AIRSPEED_USE: {
Expand Down

0 comments on commit 6ce7e17

Please sign in to comment.