AP_MOTORS_x_FRAME definitions moved to motor_frame_type enum
init function and now accepts frame-class and type to perform initial motor setup
set_frame_class_and_type allows real-time changing of motor setup
initialised_ok flag and accessor records whether setup was successful
allow vehicle code to compensate for thrust effectiveness changes due
to properties outside the scope of AP_Motors. This allows for
compensation in tiltrotors and tiltwings.
This commit changes the way libraries headers are included in source files:
- If the header is in the same directory the source belongs to, so the
notation '#include ""' is used with the path relative to the directory
containing the source.
- If the header is outside the directory containing the source, then we use
the notation '#include <>' with the path relative to libraries folder.
Some of the advantages of such approach:
- Only one search path for libraries headers.
- OSs like Windows may have a better lookup time.
Remove all RC Input channels passed as reference into AP_Motors. All input handling self-contained inside AP_Motors.
Rework Tricopter to use internal servo calcs.
Extended AP_MotorsTri class to take in pointer to rc_tail servo (rc_7) and we use this servo's REV parameter to determine whether to reverse the output to the tail servo or not
1. it's step towards rearchitecting the current code base ahead of a move to RTOS.
2. internally it uses a MatrixTable for the Quad, Octa, OctaQuad, Y6 frames.
3. it implements the missing stability patch for Octa and OctaQuads (still missing for Y6)
Later check-ins will incorporate into the main ArduCopter code.