|
|
@ -277,6 +277,7 @@ private: |
|
|
|
int rc_map_loiter_sw; |
|
|
|
int rc_map_loiter_sw; |
|
|
|
int rc_map_acro_sw; |
|
|
|
int rc_map_acro_sw; |
|
|
|
int rc_map_offboard_sw; |
|
|
|
int rc_map_offboard_sw; |
|
|
|
|
|
|
|
int rc_map_kill_sw; |
|
|
|
|
|
|
|
|
|
|
|
int rc_map_flaps; |
|
|
|
int rc_map_flaps; |
|
|
|
|
|
|
|
|
|
|
@ -297,6 +298,7 @@ private: |
|
|
|
float rc_loiter_th; |
|
|
|
float rc_loiter_th; |
|
|
|
float rc_acro_th; |
|
|
|
float rc_acro_th; |
|
|
|
float rc_offboard_th; |
|
|
|
float rc_offboard_th; |
|
|
|
|
|
|
|
float rc_killswitch_th; |
|
|
|
bool rc_assist_inv; |
|
|
|
bool rc_assist_inv; |
|
|
|
bool rc_auto_inv; |
|
|
|
bool rc_auto_inv; |
|
|
|
bool rc_rattitude_inv; |
|
|
|
bool rc_rattitude_inv; |
|
|
@ -305,6 +307,7 @@ private: |
|
|
|
bool rc_loiter_inv; |
|
|
|
bool rc_loiter_inv; |
|
|
|
bool rc_acro_inv; |
|
|
|
bool rc_acro_inv; |
|
|
|
bool rc_offboard_inv; |
|
|
|
bool rc_offboard_inv; |
|
|
|
|
|
|
|
bool rc_killswitch_inv; |
|
|
|
|
|
|
|
|
|
|
|
float battery_voltage_scaling; |
|
|
|
float battery_voltage_scaling; |
|
|
|
float battery_current_scaling; |
|
|
|
float battery_current_scaling; |
|
|
@ -336,6 +339,7 @@ private: |
|
|
|
param_t rc_map_loiter_sw; |
|
|
|
param_t rc_map_loiter_sw; |
|
|
|
param_t rc_map_acro_sw; |
|
|
|
param_t rc_map_acro_sw; |
|
|
|
param_t rc_map_offboard_sw; |
|
|
|
param_t rc_map_offboard_sw; |
|
|
|
|
|
|
|
param_t rc_map_kill_sw; |
|
|
|
|
|
|
|
|
|
|
|
param_t rc_map_flaps; |
|
|
|
param_t rc_map_flaps; |
|
|
|
|
|
|
|
|
|
|
@ -360,6 +364,7 @@ private: |
|
|
|
param_t rc_loiter_th; |
|
|
|
param_t rc_loiter_th; |
|
|
|
param_t rc_acro_th; |
|
|
|
param_t rc_acro_th; |
|
|
|
param_t rc_offboard_th; |
|
|
|
param_t rc_offboard_th; |
|
|
|
|
|
|
|
param_t rc_killswitch_th; |
|
|
|
|
|
|
|
|
|
|
|
param_t battery_voltage_scaling; |
|
|
|
param_t battery_voltage_scaling; |
|
|
|
param_t battery_current_scaling; |
|
|
|
param_t battery_current_scaling; |
|
|
@ -589,6 +594,7 @@ Sensors::Sensors() : |
|
|
|
_parameter_handles.rc_map_loiter_sw = param_find("RC_MAP_LOITER_SW"); |
|
|
|
_parameter_handles.rc_map_loiter_sw = param_find("RC_MAP_LOITER_SW"); |
|
|
|
_parameter_handles.rc_map_acro_sw = param_find("RC_MAP_ACRO_SW"); |
|
|
|
_parameter_handles.rc_map_acro_sw = param_find("RC_MAP_ACRO_SW"); |
|
|
|
_parameter_handles.rc_map_offboard_sw = param_find("RC_MAP_OFFB_SW"); |
|
|
|
_parameter_handles.rc_map_offboard_sw = param_find("RC_MAP_OFFB_SW"); |
|
|
|
|
|
|
|
_parameter_handles.rc_map_kill_sw = param_find("RC_MAP_KILL_SW"); |
|
|
|
|
|
|
|
|
|
|
|
_parameter_handles.rc_map_aux1 = param_find("RC_MAP_AUX1"); |
|
|
|
_parameter_handles.rc_map_aux1 = param_find("RC_MAP_AUX1"); |
|
|
|
_parameter_handles.rc_map_aux2 = param_find("RC_MAP_AUX2"); |
|
|
|
_parameter_handles.rc_map_aux2 = param_find("RC_MAP_AUX2"); |
|
|
@ -614,6 +620,7 @@ Sensors::Sensors() : |
|
|
|
_parameter_handles.rc_loiter_th = param_find("RC_LOITER_TH"); |
|
|
|
_parameter_handles.rc_loiter_th = param_find("RC_LOITER_TH"); |
|
|
|
_parameter_handles.rc_acro_th = param_find("RC_ACRO_TH"); |
|
|
|
_parameter_handles.rc_acro_th = param_find("RC_ACRO_TH"); |
|
|
|
_parameter_handles.rc_offboard_th = param_find("RC_OFFB_TH"); |
|
|
|
_parameter_handles.rc_offboard_th = param_find("RC_OFFB_TH"); |
|
|
|
|
|
|
|
_parameter_handles.rc_killswitch_th = param_find("RC_KILLSWITCH_TH"); |
|
|
|
|
|
|
|
|
|
|
|
/* Differential pressure offset */ |
|
|
|
/* Differential pressure offset */ |
|
|
|
_parameter_handles.diff_pres_offset_pa = param_find("SENS_DPRES_OFF"); |
|
|
|
_parameter_handles.diff_pres_offset_pa = param_find("SENS_DPRES_OFF"); |
|
|
@ -774,6 +781,10 @@ Sensors::parameters_update() |
|
|
|
warnx("%s", paramerr); |
|
|
|
warnx("%s", paramerr); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if (param_get(_parameter_handles.rc_map_kill_sw, &(_parameters.rc_map_kill_sw)) != OK) { |
|
|
|
|
|
|
|
warnx("%s", paramerr); |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
if (param_get(_parameter_handles.rc_map_flaps, &(_parameters.rc_map_flaps)) != OK) { |
|
|
|
if (param_get(_parameter_handles.rc_map_flaps, &(_parameters.rc_map_flaps)) != OK) { |
|
|
|
warnx("%s", paramerr); |
|
|
|
warnx("%s", paramerr); |
|
|
|
} |
|
|
|
} |
|
|
@ -813,6 +824,9 @@ Sensors::parameters_update() |
|
|
|
param_get(_parameter_handles.rc_offboard_th, &(_parameters.rc_offboard_th)); |
|
|
|
param_get(_parameter_handles.rc_offboard_th, &(_parameters.rc_offboard_th)); |
|
|
|
_parameters.rc_offboard_inv = (_parameters.rc_offboard_th < 0); |
|
|
|
_parameters.rc_offboard_inv = (_parameters.rc_offboard_th < 0); |
|
|
|
_parameters.rc_offboard_th = fabs(_parameters.rc_offboard_th); |
|
|
|
_parameters.rc_offboard_th = fabs(_parameters.rc_offboard_th); |
|
|
|
|
|
|
|
param_get(_parameter_handles.rc_killswitch_th, &(_parameters.rc_killswitch_th)); |
|
|
|
|
|
|
|
_parameters.rc_killswitch_inv = (_parameters.rc_killswitch_th < 0); |
|
|
|
|
|
|
|
_parameters.rc_killswitch_th = fabs(_parameters.rc_killswitch_th); |
|
|
|
|
|
|
|
|
|
|
|
/* update RC function mappings */ |
|
|
|
/* update RC function mappings */ |
|
|
|
_rc.function[rc_channels_s::RC_CHANNELS_FUNCTION_THROTTLE] = _parameters.rc_map_throttle - 1; |
|
|
|
_rc.function[rc_channels_s::RC_CHANNELS_FUNCTION_THROTTLE] = _parameters.rc_map_throttle - 1; |
|
|
@ -827,6 +841,7 @@ Sensors::parameters_update() |
|
|
|
_rc.function[rc_channels_s::RC_CHANNELS_FUNCTION_LOITER] = _parameters.rc_map_loiter_sw - 1; |
|
|
|
_rc.function[rc_channels_s::RC_CHANNELS_FUNCTION_LOITER] = _parameters.rc_map_loiter_sw - 1; |
|
|
|
_rc.function[rc_channels_s::RC_CHANNELS_FUNCTION_ACRO] = _parameters.rc_map_acro_sw - 1; |
|
|
|
_rc.function[rc_channels_s::RC_CHANNELS_FUNCTION_ACRO] = _parameters.rc_map_acro_sw - 1; |
|
|
|
_rc.function[rc_channels_s::RC_CHANNELS_FUNCTION_OFFBOARD] = _parameters.rc_map_offboard_sw - 1; |
|
|
|
_rc.function[rc_channels_s::RC_CHANNELS_FUNCTION_OFFBOARD] = _parameters.rc_map_offboard_sw - 1; |
|
|
|
|
|
|
|
_rc.function[rc_channels_s::RC_CHANNELS_FUNCTION_KILLSWITCH] = _parameters.rc_map_kill_sw - 1; |
|
|
|
|
|
|
|
|
|
|
|
_rc.function[rc_channels_s::RC_CHANNELS_FUNCTION_FLAPS] = _parameters.rc_map_flaps - 1; |
|
|
|
_rc.function[rc_channels_s::RC_CHANNELS_FUNCTION_FLAPS] = _parameters.rc_map_flaps - 1; |
|
|
|
|
|
|
|
|
|
|
@ -1955,6 +1970,8 @@ Sensors::rc_poll() |
|
|
|
_parameters.rc_acro_inv); |
|
|
|
_parameters.rc_acro_inv); |
|
|
|
manual.offboard_switch = get_rc_sw2pos_position(rc_channels_s::RC_CHANNELS_FUNCTION_OFFBOARD, |
|
|
|
manual.offboard_switch = get_rc_sw2pos_position(rc_channels_s::RC_CHANNELS_FUNCTION_OFFBOARD, |
|
|
|
_parameters.rc_offboard_th, _parameters.rc_offboard_inv); |
|
|
|
_parameters.rc_offboard_th, _parameters.rc_offboard_inv); |
|
|
|
|
|
|
|
manual.kill_switch = get_rc_sw2pos_position(rc_channels_s::RC_CHANNELS_FUNCTION_KILLSWITCH, |
|
|
|
|
|
|
|
_parameters.rc_killswitch_th, _parameters.rc_killswitch_inv); |
|
|
|
|
|
|
|
|
|
|
|
/* publish manual_control_setpoint topic */ |
|
|
|
/* publish manual_control_setpoint topic */ |
|
|
|
if (_manual_control_pub != nullptr) { |
|
|
|
if (_manual_control_pub != nullptr) { |
|
|
|