forked from Archive/PX4-Autopilot
Merge pull request #18 from tstellanova/add_rc15_param
Add defines for RC15 params (15 channels total)
This commit is contained in:
commit
32193a26a7
|
@ -158,6 +158,13 @@ PARAM_DEFINE_FLOAT(RC14_MAX, 2000);
|
||||||
PARAM_DEFINE_FLOAT(RC14_REV, 1.0f);
|
PARAM_DEFINE_FLOAT(RC14_REV, 1.0f);
|
||||||
PARAM_DEFINE_FLOAT(RC14_DZ, 0.0f);
|
PARAM_DEFINE_FLOAT(RC14_DZ, 0.0f);
|
||||||
|
|
||||||
|
PARAM_DEFINE_FLOAT(RC15_MIN, 1000);
|
||||||
|
PARAM_DEFINE_FLOAT(RC15_TRIM, 1500);
|
||||||
|
PARAM_DEFINE_FLOAT(RC15_MAX, 2000);
|
||||||
|
PARAM_DEFINE_FLOAT(RC15_REV, 1.0f);
|
||||||
|
PARAM_DEFINE_FLOAT(RC15_DZ, 0.0f);
|
||||||
|
|
||||||
|
|
||||||
PARAM_DEFINE_INT32(RC_RL1_DSM_VCC, 0); /* Relay 1 controls DSM VCC */
|
PARAM_DEFINE_INT32(RC_RL1_DSM_VCC, 0); /* Relay 1 controls DSM VCC */
|
||||||
PARAM_DEFINE_INT32(RC_DSM_BIND, 0); /* 0 = Idle, 1 = Start DSM2 bind, 2 = Start DSMX bind */
|
PARAM_DEFINE_INT32(RC_DSM_BIND, 0); /* 0 = Idle, 1 = Start DSM2 bind, 2 = Start DSMX bind */
|
||||||
|
|
||||||
|
|
|
@ -660,7 +660,9 @@ int
|
||||||
Sensors::parameters_update()
|
Sensors::parameters_update()
|
||||||
{
|
{
|
||||||
bool rc_valid = true;
|
bool rc_valid = true;
|
||||||
|
float tmpScaleFactor = 0.0f;
|
||||||
|
float tmpRevFactor = 0.0f;
|
||||||
|
|
||||||
/* rc values */
|
/* rc values */
|
||||||
for (unsigned int i = 0; i < RC_CHANNELS_MAX; i++) {
|
for (unsigned int i = 0; i < RC_CHANNELS_MAX; i++) {
|
||||||
|
|
||||||
|
@ -670,18 +672,21 @@ Sensors::parameters_update()
|
||||||
param_get(_parameter_handles.rev[i], &(_parameters.rev[i]));
|
param_get(_parameter_handles.rev[i], &(_parameters.rev[i]));
|
||||||
param_get(_parameter_handles.dz[i], &(_parameters.dz[i]));
|
param_get(_parameter_handles.dz[i], &(_parameters.dz[i]));
|
||||||
|
|
||||||
_parameters.scaling_factor[i] = (1.0f / ((_parameters.max[i] - _parameters.min[i]) / 2.0f) * _parameters.rev[i]);
|
tmpScaleFactor = (1.0f / ((_parameters.max[i] - _parameters.min[i]) / 2.0f) * _parameters.rev[i]);
|
||||||
|
tmpRevFactor = tmpScaleFactor * _parameters.rev[i];
|
||||||
|
|
||||||
/* handle blowup in the scaling factor calculation */
|
/* handle blowup in the scaling factor calculation */
|
||||||
if (!isfinite(_parameters.scaling_factor[i]) ||
|
if (!isfinite(tmpScaleFactor) ||
|
||||||
_parameters.scaling_factor[i] * _parameters.rev[i] < 0.000001f ||
|
(tmpRevFactor < 0.000001f) ||
|
||||||
_parameters.scaling_factor[i] * _parameters.rev[i] > 0.2f) {
|
(tmpRevFactor > 0.2f) ) {
|
||||||
warnx("RC chan %u not sane, scaling: %8.6f, rev: %d", i, _parameters.scaling_factor[i], (int)(_parameters.rev[i]));
|
warnx("RC chan %u not sane, scaling: %8.6f, rev: %d", i, tmpScaleFactor, (int)(_parameters.rev[i]));
|
||||||
/* scaling factors do not make sense, lock them down */
|
/* scaling factors do not make sense, lock them down */
|
||||||
_parameters.scaling_factor[i] = 0;
|
_parameters.scaling_factor[i] = 0.0f;
|
||||||
rc_valid = false;
|
rc_valid = false;
|
||||||
}
|
}
|
||||||
|
else {
|
||||||
|
_parameters.scaling_factor[i] = tmpScaleFactor;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/* handle wrong values */
|
/* handle wrong values */
|
||||||
|
|
Loading…
Reference in New Issue