AP_WheelEncoder: add error reporting for attaching of interrupts
AP_WheelEncoder: use detach_interrupt method
AP_WheelEncoder: correct initialisation of wheelencoder instances
AP_WheelEncoder: make update_phase_and_error_count non-static
AP_WheelEncoder: use (uint8_t)-1 in place of 255
AP_RPM: move PX4 IRQ handling into AP_HAL_PX4
AP_RPM: correct RPM sensor initialisation
The initialisation code used the type from the wrong configuration
parameters (if the first rpm sensor wasn't configured then the sensing
for the second sensor would use the type from the first).
The packing of drivers[...] was done in a non-sparse manner - i.e. if a
sensor wasn't detected then it would not take up space in the array.
The PX4 PWM backend relies on the instance number (offset in the drivers
array) corresponding to the parameters, so making this sparse is
required.
The main detection block fills in drivers based on the number of
instances detected so far, but the nullptr check checks based on the
number of detected backends. If the second instance wasn't configured we
wouldn't attempt to configure a third.
AP_RPM: add error reporting for attaching of interrupts
AP_RPM: use detach_interrupt method
AP_RPM: use (uint8_t)-1 in place of 255
AP_HAL: add type-safety for interrupt types
AP_HAL: remove interrupt-low and interrupt-high, and interrupt-none
It is possible that the radio needs very tight timings - do not force
the use of the functor interface
AP_HAL: add detach_interrupt method
Tools: correct altitude check
Tools: correct tests syntax
Tools: add autotest syntax check on common
Tools: search for syntax mistake on autotest lambda
Tools: put copter in hover trottle to prevent crash
Tools: reboot after baterry failsafe test
Tools: copter takeoff wait_ready_to_arm before arming
Tools: arm copter after land on RTL
Tools: reset copter battery voltage after battery failsafe