mirror of https://github.com/ArduPilot/ardupilot
make it possible to enable RC override on non-HIL setups
this makes it possible to allow a GCS to override RC input values for non-HIL setups. This gives a way for a GCS to set an arbitrary switch value, or set a precise PWM value for any control. git-svn-id: https://arducopter.googlecode.com/svn/trunk@1789 f9c3cf11-9bcb-44bc-f272-b75c42450872
This commit is contained in:
parent
f0458631a3
commit
f9469507c0
|
@ -712,6 +712,21 @@
|
||||||
//#define LOG_CMD ENABLED
|
//#define LOG_CMD ENABLED
|
||||||
//
|
//
|
||||||
|
|
||||||
|
//////////////////////////////////////////////////////////////////////////////
|
||||||
|
// RC override
|
||||||
|
//
|
||||||
|
// ALLOW_RC_OVERRIDE OPTIONAL
|
||||||
|
//
|
||||||
|
// This is for advanced used only!
|
||||||
|
//
|
||||||
|
// If you enable ALLOW_RC_OVERRIDE then a GCS will be able to
|
||||||
|
// override RC input values using a MAVLINK_MSG_ID_RC_CHANNELS_RAW
|
||||||
|
// message sent to APM. This allows the GCS to precisely control
|
||||||
|
// all PWM values as seen by APM, which means it can set any switch
|
||||||
|
// position, or set a precise control value. Do not enable unless you
|
||||||
|
// really know what you are doing!
|
||||||
|
//
|
||||||
|
|
||||||
//
|
//
|
||||||
// Do not remove - this is to discourage users from copying this file
|
// Do not remove - this is to discourage users from copying this file
|
||||||
// and using it as-is rather than editing their own.
|
// and using it as-is rather than editing their own.
|
||||||
|
|
|
@ -673,6 +673,28 @@ void GCS_MAVLINK::handleMessage(mavlink_message_t* msg)
|
||||||
break;
|
break;
|
||||||
} // end case
|
} // end case
|
||||||
|
|
||||||
|
#if ALLOW_RC_OVERRIDE == ENABLED
|
||||||
|
case MAVLINK_MSG_ID_RC_CHANNELS_RAW:
|
||||||
|
{
|
||||||
|
// allow override of RC channel values for HIL
|
||||||
|
// or for complete GCS control of switch position
|
||||||
|
// and RC PWM values.
|
||||||
|
mavlink_rc_channels_raw_t packet;
|
||||||
|
int16_t v[8];
|
||||||
|
mavlink_msg_rc_channels_raw_decode(msg, &packet);
|
||||||
|
v[0] = packet.chan1_raw;
|
||||||
|
v[1] = packet.chan2_raw;
|
||||||
|
v[2] = packet.chan3_raw;
|
||||||
|
v[3] = packet.chan4_raw;
|
||||||
|
v[4] = packet.chan5_raw;
|
||||||
|
v[5] = packet.chan6_raw;
|
||||||
|
v[6] = packet.chan7_raw;
|
||||||
|
v[7] = packet.chan8_raw;
|
||||||
|
APM_RC.setHIL(v);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
#if HIL_MODE != HIL_MODE_DISABLED
|
#if HIL_MODE != HIL_MODE_DISABLED
|
||||||
// This is used both as a sensor and to pass the location
|
// This is used both as a sensor and to pass the location
|
||||||
// in HIL_ATTITUDE mode.
|
// in HIL_ATTITUDE mode.
|
||||||
|
@ -700,23 +722,6 @@ void GCS_MAVLINK::handleMessage(mavlink_message_t* msg)
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
case MAVLINK_MSG_ID_RC_CHANNELS_RAW:
|
|
||||||
{
|
|
||||||
// allow override of RC channel values for HIL
|
|
||||||
mavlink_rc_channels_raw_t packet;
|
|
||||||
int16_t v[8];
|
|
||||||
mavlink_msg_rc_channels_raw_decode(msg, &packet);
|
|
||||||
v[0] = packet.chan1_raw;
|
|
||||||
v[1] = packet.chan2_raw;
|
|
||||||
v[2] = packet.chan3_raw;
|
|
||||||
v[3] = packet.chan4_raw;
|
|
||||||
v[4] = packet.chan5_raw;
|
|
||||||
v[5] = packet.chan6_raw;
|
|
||||||
v[6] = packet.chan7_raw;
|
|
||||||
v[7] = packet.chan8_raw;
|
|
||||||
APM_RC.setHIL(v);
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
#endif
|
#endif
|
||||||
#if HIL_MODE == HIL_MODE_ATTITUDE
|
#if HIL_MODE == HIL_MODE_ATTITUDE
|
||||||
case MAVLINK_MSG_ID_ATTITUDE:
|
case MAVLINK_MSG_ID_ATTITUDE:
|
||||||
|
|
|
@ -550,3 +550,11 @@
|
||||||
#define STANDARD_SPEED_SQUARED (STANDARD_SPEED * STANDARD_SPEED)
|
#define STANDARD_SPEED_SQUARED (STANDARD_SPEED * STANDARD_SPEED)
|
||||||
#endif
|
#endif
|
||||||
#define STANDARD_THROTTLE_SQUARED (THROTTLE_CRUISE * THROTTLE_CRUISE)
|
#define STANDARD_THROTTLE_SQUARED (THROTTLE_CRUISE * THROTTLE_CRUISE)
|
||||||
|
|
||||||
|
|
||||||
|
//////////////////////////////////////////////////////////////////////////////
|
||||||
|
// RC override
|
||||||
|
//
|
||||||
|
#ifndef ALLOW_RC_OVERRIDE
|
||||||
|
# define ALLOW_RC_OVERRIDE DISABLED
|
||||||
|
#endif
|
||||||
|
|
Loading…
Reference in New Issue