This module and its associated settings uavo can be used
to test various fault conditions during initialization.
To enable the module, add the TEST_FAULTS=YES to your make
command line:
make fw_coptercontrol TEST_FAULTS=YES
Once this module is part of your firmware load, you can
enable it in the hwsettings uavo and then select the
type of fault to insert by editing the faultsettings uavo.
On the next reset, the configured fault will be inserted
into the init sequence to allow you to test the boot fault
recovery code.
With a fault inserted, you should see 3 failed boot attempts
followed by a successful (recovery) boot. You will see the
BootFault alarm set to Critical, and the RAM version of your
hwsettings will be reset to defaults. Since the defaults have
all optional modules disabled, the fault module will be out of
the way during the recovery boot.
You can then "Load" the flash version of the hwsettings uavo
in the object browser, disable the Fault module and then "Save"
the hwsettings module back to the board. The next reset will
boot normally without the fault inserted.
The GCS hwsettings config widget now disallows any
configuration that disables both HID and VCP telemetry
over the USB port.
The firmware will allow it if the UAVObj is set manually.
This allows a mechanism to reduce RAM usage by another
500 more bytes if USB telemetry can be sacrificed in
certain configurations.
These logs are disabled by default, and can be
turned on at compile time by defining:
UAVTALK_DEBUG
at the top of uavtalk.cpp.
These logs proved very helpful in diagnosing a
serial comms issue.
The difference between 56000 and 57600 baud is very
important.
When using a USB to serial adapter that is capable
of synthesizing arbitrary baud rates, these errors
resulted in a completely mismatched/unusable serial
link.
The autoscaling values used by the scope gadget were
being applied to the raw data being written to the CSV
files. This resulted in the CSV file containing data
that had a variable scale, thus making it useless.
Changed the UAV import of saved settings to not pull in invalid enum
values. Will warn on the dialog that an element of the UAVObject was
invalid and turn off the "save" checkbox. Also will send a qDebug output
showing the UAVObject name and the invalid enum value.