uncrustify libraries/AP_Motors/AP_Motors.h

This commit is contained in:
uncrustify 2012-08-16 23:20:27 -07:00 committed by Pat Hickey
parent 4fe97c1e7b
commit d773a9c43b

View File

@ -27,12 +27,12 @@
#define AP_MOTORS_MAX_NUM_MOTORS 8 #define AP_MOTORS_MAX_NUM_MOTORS 8
#define AP_MOTORS_DEFAULT_MIN_THROTTLE 130 #define AP_MOTORS_DEFAULT_MIN_THROTTLE 130
#define AP_MOTORS_DEFAULT_MAX_THROTTLE 850 #define AP_MOTORS_DEFAULT_MAX_THROTTLE 850
// APM board definitions // APM board definitions
#define AP_MOTORS_APM1 1 #define AP_MOTORS_APM1 1
#define AP_MOTORS_APM2 2 #define AP_MOTORS_APM2 2
// frame definitions // frame definitions
#define AP_MOTORS_PLUS_FRAME 0 #define AP_MOTORS_PLUS_FRAME 0
@ -44,94 +44,120 @@
#define AP_MOTORS_SPEED_INSTANT_PWM 0 #define AP_MOTORS_SPEED_INSTANT_PWM 0
// top-bottom ratio (for Y6) // top-bottom ratio (for Y6)
#define AP_MOTORS_TOP_BOTTOM_RATIO 1.0 #define AP_MOTORS_TOP_BOTTOM_RATIO 1.0
/// @class AP_Motors /// @class AP_Motors
class AP_Motors { class AP_Motors {
public: public:
// Constructor // Constructor
AP_Motors( uint8_t APM_version, APM_RC_Class* rc_out, RC_Channel* rc_roll, RC_Channel* rc_pitch, RC_Channel* rc_throttle, RC_Channel* rc_yaw, uint16_t speed_hz = AP_MOTORS_SPEED_DEFAULT); AP_Motors( uint8_t APM_version, APM_RC_Class* rc_out, RC_Channel* rc_roll, RC_Channel* rc_pitch, RC_Channel* rc_throttle, RC_Channel* rc_yaw, uint16_t speed_hz = AP_MOTORS_SPEED_DEFAULT);
// init // init
virtual void Init() {}; virtual void Init() {
};
// set mapping from motor number to RC channel // set mapping from motor number to RC channel
virtual void set_motor_to_channel_map( uint8_t mot_1, uint8_t mot_2, uint8_t mot_3, uint8_t mot_4, uint8_t mot_5, uint8_t mot_6, uint8_t mot_7, uint8_t mot_8 ) { virtual void set_motor_to_channel_map( uint8_t mot_1, uint8_t mot_2, uint8_t mot_3, uint8_t mot_4, uint8_t mot_5, uint8_t mot_6, uint8_t mot_7, uint8_t mot_8 ) {
_motor_to_channel_map[AP_MOTORS_MOT_1] = mot_1; _motor_to_channel_map[AP_MOTORS_MOT_1] = mot_1;
_motor_to_channel_map[AP_MOTORS_MOT_2] = mot_2; _motor_to_channel_map[AP_MOTORS_MOT_2] = mot_2;
_motor_to_channel_map[AP_MOTORS_MOT_3] = mot_3; _motor_to_channel_map[AP_MOTORS_MOT_3] = mot_3;
_motor_to_channel_map[AP_MOTORS_MOT_4] = mot_4; _motor_to_channel_map[AP_MOTORS_MOT_4] = mot_4;
_motor_to_channel_map[AP_MOTORS_MOT_5] = mot_5; _motor_to_channel_map[AP_MOTORS_MOT_5] = mot_5;
_motor_to_channel_map[AP_MOTORS_MOT_6] = mot_6; _motor_to_channel_map[AP_MOTORS_MOT_6] = mot_6;
_motor_to_channel_map[AP_MOTORS_MOT_7] = mot_7; _motor_to_channel_map[AP_MOTORS_MOT_7] = mot_7;
_motor_to_channel_map[AP_MOTORS_MOT_8] = mot_8; _motor_to_channel_map[AP_MOTORS_MOT_8] = mot_8;
} }
// set update rate to motors - a value in hertz or AP_MOTORS_SPEED_INSTANT_PWM for instant pwm // set update rate to motors - a value in hertz or AP_MOTORS_SPEED_INSTANT_PWM for instant pwm
virtual void set_update_rate( uint16_t speed_hz ) { _speed_hz = speed_hz; }; virtual void set_update_rate( uint16_t speed_hz ) {
_speed_hz = speed_hz;
};
// set frame orientation (normally + or X) // set frame orientation (normally + or X)
virtual void set_frame_orientation( uint8_t new_orientation ) { _frame_orientation = new_orientation; }; virtual void set_frame_orientation( uint8_t new_orientation ) {
_frame_orientation = new_orientation;
};
// enable - starts allowing signals to be sent to motors // enable - starts allowing signals to be sent to motors
virtual void enable() {}; virtual void enable() {
};
// arm, disarm or check status status of motors // arm, disarm or check status status of motors
virtual bool armed() { return _armed; }; virtual bool armed() {
virtual void armed(bool arm) { _armed = arm; }; return _armed;
};
virtual void armed(bool arm) {
_armed = arm;
};
// check or set status of auto_armed - controls whether autopilot can take control of throttle // check or set status of auto_armed - controls whether autopilot can take control of throttle
// Note: this should probably be moved out of this class as it has little to do with the motors // Note: this should probably be moved out of this class as it has little to do with the motors
virtual bool auto_armed() { return _auto_armed; }; virtual bool auto_armed() {
virtual void auto_armed(bool arm) { _auto_armed = arm; }; return _auto_armed;
};
virtual void auto_armed(bool arm) {
_auto_armed = arm;
};
// set_min_throttle - sets the minimum throttle that will be sent to the engines when they're not off (i.e. to prevents issues with some motors spinning and some not at very low throttle) // set_min_throttle - sets the minimum throttle that will be sent to the engines when they're not off (i.e. to prevents issues with some motors spinning and some not at very low throttle)
virtual void set_min_throttle(uint16_t min_throttle) { _min_throttle = min_throttle; }; virtual void set_min_throttle(uint16_t min_throttle) {
virtual void set_max_throttle(uint16_t max_throttle) { _max_throttle = max_throttle; }; _min_throttle = min_throttle;
};
virtual void set_max_throttle(uint16_t max_throttle) {
_max_throttle = max_throttle;
};
// output - sends commands to the motors // output - sends commands to the motors
virtual void output() { if( _armed && _auto_armed ) { output_armed(); }else{ output_disarmed(); } }; virtual void output() {
if( _armed && _auto_armed ) { output_armed(); }else{ output_disarmed(); }
};
// output_min - sends minimum values out to the motors // output_min - sends minimum values out to the motors
virtual void output_min() {}; virtual void output_min() {
};
// get basic information about the platform // get basic information about the platform
virtual uint8_t get_num_motors() { return 0; }; virtual uint8_t get_num_motors() {
return 0;
};
// motor test // motor test
virtual void output_test() {}; virtual void output_test() {
};
// throttle_pass_through - passes throttle through to motors - dangerous but required for initialising ESCs // throttle_pass_through - passes throttle through to motors - dangerous but required for initialising ESCs
virtual void throttle_pass_through(); virtual void throttle_pass_through();
// 1 if motor is enabled, 0 otherwise
AP_Int8 motor_enabled[AP_MOTORS_MAX_NUM_MOTORS];
// final output values sent to the motors. public (for now) so that they can be access for logging // 1 if motor is enabled, 0 otherwise
int16_t motor_out[AP_MOTORS_MAX_NUM_MOTORS]; AP_Int8 motor_enabled[AP_MOTORS_MAX_NUM_MOTORS];
// power ratio of upper vs lower motors (only used by y6 and octa quad copters) // final output values sent to the motors. public (for now) so that they can be access for logging
AP_Float top_bottom_ratio; int16_t motor_out[AP_MOTORS_MAX_NUM_MOTORS];
// var_info for holding Parameter information // power ratio of upper vs lower motors (only used by y6 and octa quad copters)
static const struct AP_Param::GroupInfo var_info[]; AP_Float top_bottom_ratio;
// var_info for holding Parameter information
static const struct AP_Param::GroupInfo var_info[];
protected: protected:
// output functions that should be overloaded by child classes // output functions that should be overloaded by child classes
virtual void output_armed() {}; virtual void output_armed() {
virtual void output_disarmed() {}; };
virtual void output_disarmed() {
APM_RC_Class* _rc; // APM_RC class used to send updates to ESCs/Servos };
RC_Channel* _rc_roll, *_rc_pitch, *_rc_throttle, *_rc_yaw; // input in from users
uint8_t _motor_to_channel_map[AP_MOTORS_MAX_NUM_MOTORS]; // mapping of motor number (as received from upper APM code) to RC channel output - used to account for differences between APM1 and APM2 APM_RC_Class* _rc; // APM_RC class used to send updates to ESCs/Servos
uint16_t _speed_hz; // speed in hz to send updates to motors RC_Channel* _rc_roll, *_rc_pitch, *_rc_throttle, *_rc_yaw; // input in from users
bool _armed; // true if motors are armed uint8_t _motor_to_channel_map[AP_MOTORS_MAX_NUM_MOTORS]; // mapping of motor number (as received from upper APM code) to RC channel output - used to account for differences between APM1 and APM2
bool _auto_armed; // true is throttle is above zero, allows auto pilot to take control of throttle uint16_t _speed_hz; // speed in hz to send updates to motors
uint8_t _frame_orientation; // PLUS_FRAME 0, X_FRAME 1, V_FRAME 2 bool _armed; // true if motors are armed
int16_t _min_throttle; // the minimum throttle to be sent to the engines when they're on (prevents issues with some motors on while other off at very low throttle) bool _auto_armed; // true is throttle is above zero, allows auto pilot to take control of throttle
int16_t _max_throttle; // the minimum throttle to be sent to the engines when they're on (prevents issues with some motors on while other off at very low throttle) uint8_t _frame_orientation; // PLUS_FRAME 0, X_FRAME 1, V_FRAME 2
}; int16_t _min_throttle; // the minimum throttle to be sent to the engines when they're on (prevents issues with some motors on while other off at very low throttle)
int16_t _max_throttle; // the minimum throttle to be sent to the engines when they're on (prevents issues with some motors on while other off at very low throttle)
};
#endif // AP_MOTORS #endif // AP_MOTORS