diff options
author | Anton Babushkin <anton.babushkin@me.com> | 2014-05-21 10:40:58 +0200 |
---|---|---|
committer | Anton Babushkin <anton.babushkin@me.com> | 2014-05-21 10:40:58 +0200 |
commit | 950571eaf6b67344b0c46287c45f06e8f85e8ece (patch) | |
tree | 8995f76f65a60851727c073d12b8dd2f3bcf0fc7 /src/modules/sensors | |
parent | 8c4b35cc23ddf1eaef0dfc90f8fbb066b5b845af (diff) | |
parent | fb801b6faecd77fe2aac54d3389cacf73993ccc4 (diff) | |
download | px4-firmware-950571eaf6b67344b0c46287c45f06e8f85e8ece.tar.gz px4-firmware-950571eaf6b67344b0c46287c45f06e8f85e8ece.tar.bz2 px4-firmware-950571eaf6b67344b0c46287c45f06e8f85e8ece.zip |
Merge branch 'master' into offboard2
Diffstat (limited to 'src/modules/sensors')
-rw-r--r-- | src/modules/sensors/sensor_params.c | 13 | ||||
-rw-r--r-- | src/modules/sensors/sensors.cpp | 16 |
2 files changed, 27 insertions, 2 deletions
diff --git a/src/modules/sensors/sensor_params.c b/src/modules/sensors/sensor_params.c index ae0ff625b..65e2376ce 100644 --- a/src/modules/sensors/sensor_params.c +++ b/src/modules/sensors/sensor_params.c @@ -626,6 +626,15 @@ PARAM_DEFINE_INT32(RC_MAP_POSCTL_SW, 0); PARAM_DEFINE_INT32(RC_MAP_LOITER_SW, 0); /** + * Acro switch channel mapping. + * + * @min 0 + * @max 18 + * @group Radio Calibration + */ +PARAM_DEFINE_INT32(RC_MAP_ACRO_SW, 0); + +/** * Offboard switch channel mapping. * * @min 0 @@ -767,7 +776,7 @@ PARAM_DEFINE_FLOAT(RC_RETURN_TH, 0.5f); PARAM_DEFINE_FLOAT(RC_LOITER_TH, 0.5f); /** - * Threshold for selecting offboard mode + * Threshold for selecting acro mode * * min:-1 * max:+1 @@ -780,4 +789,4 @@ PARAM_DEFINE_FLOAT(RC_LOITER_TH, 0.5f); * negative : true when channel<th * */ -PARAM_DEFINE_FLOAT(RC_OFFB_TH, 0.5f); +PARAM_DEFINE_FLOAT(RC_ACRO_TH, 0.5f); diff --git a/src/modules/sensors/sensors.cpp b/src/modules/sensors/sensors.cpp index f34263a96..1a1d153f7 100644 --- a/src/modules/sensors/sensors.cpp +++ b/src/modules/sensors/sensors.cpp @@ -263,6 +263,7 @@ private: int rc_map_return_sw; int rc_map_posctl_sw; int rc_map_loiter_sw; + int rc_map_acro_sw; int rc_map_offboard_sw; int rc_map_flaps; @@ -279,12 +280,14 @@ private: float rc_posctl_th; float rc_return_th; float rc_loiter_th; + float rc_acro_th; float rc_offboard_th; bool rc_assist_inv; bool rc_auto_inv; bool rc_posctl_inv; bool rc_return_inv; bool rc_loiter_inv; + bool rc_acro_inv; bool rc_offboard_inv; float battery_voltage_scaling; @@ -318,6 +321,7 @@ private: param_t rc_map_return_sw; param_t rc_map_posctl_sw; param_t rc_map_loiter_sw; + param_t rc_map_acro_sw; param_t rc_map_offboard_sw; param_t rc_map_flaps; @@ -334,6 +338,7 @@ private: param_t rc_posctl_th; param_t rc_return_th; param_t rc_loiter_th; + param_t rc_acro_th; param_t rc_offboard_th; param_t battery_voltage_scaling; @@ -535,6 +540,7 @@ Sensors::Sensors() : /* optional mode switches, not mapped per default */ _parameter_handles.rc_map_posctl_sw = param_find("RC_MAP_POSCTL_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_offboard_sw = param_find("RC_MAP_OFFB_SW"); _parameter_handles.rc_map_aux1 = param_find("RC_MAP_AUX1"); @@ -550,6 +556,7 @@ Sensors::Sensors() : _parameter_handles.rc_posctl_th = param_find("RC_POSCTL_TH"); _parameter_handles.rc_return_th = param_find("RC_RETURN_TH"); _parameter_handles.rc_loiter_th = param_find("RC_LOITER_TH"); + _parameter_handles.rc_acro_th = param_find("RC_ACRO_TH"); _parameter_handles.rc_offboard_th = param_find("RC_OFFB_TH"); /* gyro offsets */ @@ -694,6 +701,10 @@ Sensors::parameters_update() warnx("%s", paramerr); } + if (param_get(_parameter_handles.rc_map_acro_sw, &(_parameters.rc_map_acro_sw)) != OK) { + warnx("%s", paramerr); + } + if (param_get(_parameter_handles.rc_map_offboard_sw, &(_parameters.rc_map_offboard_sw)) != OK) { warnx("%s", paramerr); } @@ -723,6 +734,9 @@ Sensors::parameters_update() param_get(_parameter_handles.rc_loiter_th, &(_parameters.rc_loiter_th)); _parameters.rc_loiter_inv = (_parameters.rc_loiter_th < 0); _parameters.rc_loiter_th = fabs(_parameters.rc_loiter_th); + param_get(_parameter_handles.rc_acro_th, &(_parameters.rc_acro_th)); + _parameters.rc_acro_inv = (_parameters.rc_acro_th < 0); + _parameters.rc_acro_th = fabs(_parameters.rc_acro_th); param_get(_parameter_handles.rc_offboard_th, &(_parameters.rc_offboard_th)); _parameters.rc_offboard_inv = (_parameters.rc_offboard_th < 0); _parameters.rc_offboard_th = fabs(_parameters.rc_offboard_th); @@ -737,6 +751,7 @@ Sensors::parameters_update() _rc.function[RETURN] = _parameters.rc_map_return_sw - 1; _rc.function[POSCTL] = _parameters.rc_map_posctl_sw - 1; _rc.function[LOITER] = _parameters.rc_map_loiter_sw - 1; + _rc.function[ACRO] = _parameters.rc_map_acro_sw - 1; _rc.function[OFFBOARD] = _parameters.rc_map_offboard_sw - 1; _rc.function[FLAPS] = _parameters.rc_map_flaps - 1; @@ -1523,6 +1538,7 @@ Sensors::rc_poll() manual.posctl_switch = get_rc_sw2pos_position(POSCTL, _parameters.rc_posctl_th, _parameters.rc_posctl_inv); manual.return_switch = get_rc_sw2pos_position(RETURN, _parameters.rc_return_th, _parameters.rc_return_inv); manual.loiter_switch = get_rc_sw2pos_position(LOITER, _parameters.rc_loiter_th, _parameters.rc_loiter_inv); + manual.acro_switch = get_rc_sw2pos_position(ACRO, _parameters.rc_acro_th, _parameters.rc_acro_inv); manual.offboard_switch = get_rc_sw2pos_position(OFFBOARD, _parameters.rc_offboard_th, _parameters.rc_offboard_inv); /* publish manual_control_setpoint topic */ |