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
this moves both the storage scan and the save code out of the main
thread and into the IO thread. It means that if we have more than 30
parameters saves in very rapid succession while armed that we can lose
parameter changes, but that is extremely unlikely.
This fixes an issue where parameter saves in flight can cause
considerable scheduling problems, sometimes several milliseconds
Setting a dataflash-file buffer size of less than or equal to 2kiB would
cause the startup-messagewriter to never push any messages other than
FMT out to the logs.
This is a combination of the return values of
critical_message_reserved_space and
non_messagewriter_message_reserved_space
This patch forces the startup messages out to the logs by ignoring the
space constraints every 100ms