Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

RC_Channel: produce error if feature compiled out and aux func initia… #27449

Merged
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
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
Loading