mirror of https://github.com/ArduPilot/ardupilot
Sub: minimal support for inheritting from RC_Channel
This commit is contained in:
parent
9ce02bc504
commit
1ba0901e51
|
@ -158,7 +158,7 @@ void Sub::fifty_hz_loop()
|
||||||
failsafe_sensors_check();
|
failsafe_sensors_check();
|
||||||
|
|
||||||
// Update rc input/output
|
// Update rc input/output
|
||||||
RC_Channels::read_input();
|
rc().read_input();
|
||||||
SRV_Channels::output_ch_all();
|
SRV_Channels::output_ch_all();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -327,7 +327,7 @@ public:
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
// RC input channels
|
// RC input channels
|
||||||
RC_Channels rc_channels;
|
RC_Channels_Sub rc_channels;
|
||||||
|
|
||||||
// control over servo output ranges
|
// control over servo output ranges
|
||||||
SRV_Channels servo_channels;
|
SRV_Channels servo_channels;
|
||||||
|
|
|
@ -0,0 +1,17 @@
|
||||||
|
#include "Sub.h"
|
||||||
|
|
||||||
|
#include "RC_Channel.h"
|
||||||
|
|
||||||
|
// defining these two macros and including the RC_Channels_VarInfo
|
||||||
|
// header defines the parameter information common to all vehicle
|
||||||
|
// types
|
||||||
|
#define RC_CHANNELS_SUBCLASS RC_Channels_Sub
|
||||||
|
#define RC_CHANNEL_SUBCLASS RC_Channel_Sub
|
||||||
|
|
||||||
|
#include <RC_Channel/RC_Channels_VarInfo.h>
|
||||||
|
|
||||||
|
// note that this callback is not presently used on Plane:
|
||||||
|
int8_t RC_Channels_Sub::flight_mode_channel_number() const
|
||||||
|
{
|
||||||
|
return 1; // sub does not have a flight mode channel
|
||||||
|
}
|
|
@ -0,0 +1,33 @@
|
||||||
|
#pragma once
|
||||||
|
|
||||||
|
#include <RC_Channel/RC_Channel.h>
|
||||||
|
|
||||||
|
class RC_Channel_Sub : public RC_Channel
|
||||||
|
{
|
||||||
|
|
||||||
|
public:
|
||||||
|
|
||||||
|
protected:
|
||||||
|
|
||||||
|
private:
|
||||||
|
|
||||||
|
};
|
||||||
|
|
||||||
|
class RC_Channels_Sub : public RC_Channels
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
|
||||||
|
RC_Channel_Sub obj_channels[NUM_RC_CHANNELS];
|
||||||
|
RC_Channel_Sub *channel(const uint8_t chan) override {
|
||||||
|
if (chan > NUM_RC_CHANNELS) {
|
||||||
|
return nullptr;
|
||||||
|
}
|
||||||
|
return &obj_channels[chan];
|
||||||
|
}
|
||||||
|
|
||||||
|
protected:
|
||||||
|
|
||||||
|
// note that these callbacks are not presently used on Plane:
|
||||||
|
int8_t flight_mode_channel_number() const override;
|
||||||
|
|
||||||
|
};
|
|
@ -54,7 +54,6 @@
|
||||||
#include <AC_PID/AC_PID_2D.h> // PID library (2-axis)
|
#include <AC_PID/AC_PID_2D.h> // PID library (2-axis)
|
||||||
#include <AC_AttitudeControl/AC_AttitudeControl_Sub.h> // Attitude control library
|
#include <AC_AttitudeControl/AC_AttitudeControl_Sub.h> // Attitude control library
|
||||||
#include <AC_AttitudeControl/AC_PosControl_Sub.h> // Position control library
|
#include <AC_AttitudeControl/AC_PosControl_Sub.h> // Position control library
|
||||||
#include <RC_Channel/RC_Channel.h> // RC Channel Library
|
|
||||||
#include <AP_Motors/AP_Motors.h> // AP Motors library
|
#include <AP_Motors/AP_Motors.h> // AP Motors library
|
||||||
#include <AP_RangeFinder/AP_RangeFinder.h> // Range finder library
|
#include <AP_RangeFinder/AP_RangeFinder.h> // Range finder library
|
||||||
#include <Filter/Filter.h> // Filter library
|
#include <Filter/Filter.h> // Filter library
|
||||||
|
@ -82,6 +81,7 @@
|
||||||
#include "defines.h"
|
#include "defines.h"
|
||||||
#include "config.h"
|
#include "config.h"
|
||||||
#include "GCS_Mavlink.h"
|
#include "GCS_Mavlink.h"
|
||||||
|
#include "RC_Channel.h" // RC Channel Library
|
||||||
#include "Parameters.h"
|
#include "Parameters.h"
|
||||||
#include "AP_Arming_Sub.h"
|
#include "AP_Arming_Sub.h"
|
||||||
#include "GCS_Sub.h"
|
#include "GCS_Sub.h"
|
||||||
|
@ -130,6 +130,7 @@ public:
|
||||||
friend class Parameters;
|
friend class Parameters;
|
||||||
friend class ParametersG2;
|
friend class ParametersG2;
|
||||||
friend class AP_Arming_Sub;
|
friend class AP_Arming_Sub;
|
||||||
|
friend class RC_Channels_Sub;
|
||||||
|
|
||||||
Sub(void);
|
Sub(void);
|
||||||
|
|
||||||
|
|
|
@ -87,6 +87,9 @@ void Sub::init_ardupilot()
|
||||||
|
|
||||||
gcs().set_dataflash(&DataFlash);
|
gcs().set_dataflash(&DataFlash);
|
||||||
|
|
||||||
|
// initialise rc channels including setting mode
|
||||||
|
rc().init();
|
||||||
|
|
||||||
init_rc_in(); // sets up rc channels from radio
|
init_rc_in(); // sets up rc channels from radio
|
||||||
init_rc_out(); // sets up motors and output to escs
|
init_rc_out(); // sets up motors and output to escs
|
||||||
init_joystick(); // joystick initialization
|
init_joystick(); // joystick initialization
|
||||||
|
|
Loading…
Reference in New Issue