This lets USB send up to 32 bytes in a frame instead of 32 one byte
frames. Add a fallback for drivers that don't implement writeBuf().
serial: allow buffering to speed up USB virtual COM ports.
Add begin write and end write hints. If implemented by the serial
driver, then the driver can buffer up data sent via serialWrite() and
flush it when serialEndWrite() is called.
Implemented at the buffer level as it requires the least change to how
serial_msp and serial_cli are architected.
Also tidy up the visibility in the VCP driver.
Prevent serial tx buffer overflow.
Note: this is likely not the best solution, we can investigate further
in due course.
drivers: add a buffering writer.
This wraps around the serial API and buffers a configurable number of
characters before flushing.
cli: add buffering.
This greatly speeds up the CLI when running over USB VCP under a
virtual machine.
msp: add buffering around the writes.
This bulks up the writes and lets the USB VCP driver send one 20 byte
frame instead of 20 one byte frames. This speeds up the blackbox
download and makes VCP much more reliable when running under a virtual
machine.
Fix for: serial buffer broke BLHeli 1wire pass through
Removed isEnabled flag, replaced by task being in queue or not.
Improvements to queue.
Minor tidy.
Unittests
Minor optimisation: only inclued queueContains if it is required.
Optimised scheduler queue iterators.
Fixed static inline declaration of queue iterators. Minor tidy of case when selectedTask == NULL
Minor optimisations to queueAdd and queueRemove
Whitespace tidy.
Removed conditional inclusion of queueContains.
More test code. Fixed bug in queueAdd.
Added test to check filling up and emptying queue.
Some rework before rebase.
Post rebase fixup.
Improved inclusion of platform.h. Improved initialization in queueClear.
Recursively invoke make with TARGET set correctly.
It is possible to specify multiple targets on make command line.
Special goal `all_targets` will make all known TARGETs.
TARGET-specific goals are passed correctly.
```
make SPARKY NAZE
make all_targets binary test
make all_targets clean
```
Recent OpenTX version do signal when telemetry data is updated with a blinking *, so there is no need anymore to have that misleading changing number when nothing is actually changing.
Signed-off-by: Konstantin Sharlaimov (DigitalEntity) <konstantin.sharlaimov@gmail.com>
FILTER: BiQuad filter optimisations
FILTER: BiQuad filtering fix for REWRITE PID controller. Divide delta by dT before filtering to reduce delta noise caused by dT jitter and make things more correct from DSP point of view