Board specific HW configuration is now collected in a single .c
file for each board. This HW configuration is #include'd into
the FW, BL and BU builds for each board.
These new .c files are found in:
flight/board_hw_defs/<board_name>/board_hw_defs.c
Parts of this information were previously duplicated between
the BL and FW builds. This commit cleans up the duplication.
Using a #include on a .c file is a bit ugly but it allows us
to ensure that all of the symbols in the board_hw_defs.c file
are *ONLY* used in the PIOS_Board_Init() function for each
software build.
If no telemetry link is configured, this will force the board
to reset before finishing init. The BootFault logic will
catch this after 3 resets and will boot with default hwsettings
on the next reset.
This won't currently ever fire on OP though since we always
configure the serial telemetry interface. This just makes sure
the pattern is present in case anyone decides to compile without
serial telemetry.
OpenPilot platform (and thus sim too) was missed when the
DIAG_TASKS macro was broken out from the DIAGNOSTICS macro.
This allowed accesses to the TaskInfo UAVO even though it hadn't
been initialized.
Changed file format to be able to save settings and data together.
Old settings files still can be imported. Data export will also contain
settings, so we always have the system settings with the system state.
Sample file:
<!DOCTYPE UAVObjects>
<uavobjects>
<version>
...
</version>
<data>
<object id="0xC409985A" name="AccessoryDesired">
<field values="0" name="AccessoryVal"/>
</object>
...
</data>
<settings>
<object id="0xF2875746" name="ActuatorSettings">
...
</settings>
</uavobjects>
Some modules are written such that they can be included
or excluded at runtime. These are added to the OPTMODULES
list in the makefile for a given board.
This change provides a mechanism to allow a build to force
a given module to be built-in (ie. always initialized)
regardless of the configuration in hwsettings.
The main use case for this is to handle a module being optional
on one platform but essential on another.
All modules added to the MODULES list in the Makefile will
automatically result in a matching #define in the form
MODULE_TheModuleName_BUILTIN
being defined in the CFLAGS for all compiled source.
Note that the capitalization of TheModuleName must match
exactly the capitalization used in the MODULES list.
This allows each device to be moved (at compile time) to a
different adapter. This is the first step to allowing devices
to be attached to different i2c adapters.
The main purpose of this new COM implementation is that it is
much simpler, and requires less code space. This takes a bit
of the pressure off of the CC bootloader which was right at
the limit of available code space in the bootloader partition.
This is not intended to ever be used by the application.
This driver also formalizes the assumptions in the bootloader's
usage of the COM layer. All messages are assumed to arrive
in atomic chunks from the HID layer.
cause:
/projects/OpenPilot/git/ground/openpilotgcs/src/plugins/notify/notifyplugin.cpp:104:6:
warning: unused parameter ‘configInfo’ [-Wunused-parameter]
/projects/OpenPilot/git/ground/openpilotgcs/src/plugins/notify/notifyplugin.cpp:353:6:
warning: unused parameter ‘values’ [-Wunused-parameter]
/projects/OpenPilot/git/ground/openpilotgcs/src/plugins/notify/notifypluginoptionspage.cpp:73:10:
warning: unused parameter ‘parent’ [-Wunused-parameter]
/projects/OpenPilot/git/ground/openpilotgcs/src/plugins/notify/notifypluginoptionspage.cpp:451:6:
warning: unused parameter ‘rangeStr’ [-Wunused-parameter]
/projects/OpenPilot/git/ground/openpilotgcs/src/plugins/notify/notifypluginoptionspage.cpp:512:7:
warning: unused parameter ‘oldstate’ [-Wunused-parameter]
/projects/OpenPilot/git/ground/openpilotgcs/src/plugins/notify/notifypluginoptionspage.cpp:527:6:
warning: unused parameter ‘deselected’ [-Wunused-parameter]
implemented solution:
fixed all of them (commented out var name)
* fixed bug in check code
cause:
/projects/OpenPilot/git/ground/openpilotgcs/src/plugins/notify/notifyplugin.cpp:
In member function ‘void SoundNotifyPlugin::checkNotificationRule(NotificationItem*, UAVObject*)’:
/projects/OpenPilot/git/ground/openpilotgcs/src/plugins/notify/notifyplugin.cpp:398:109:
warning: suggest parentheses around comparison in operand of ‘|’ [-Wparentheses]
implemented solution:
this is an obvious bug that is syntactically correct but leads to a
warning with a good compiler so this bug can be found. fixed that to use
logical or instead of bitwise or.
* fixed bug in include file (error in compilation under Linux)
cause:
In file included from
/projects/OpenPilot/git/ground/openpilotgcs/src/plugins/notify/notifypluginoptionspage.cpp:47:0:
/projects/OpenPilot/git/ground/openpilotgcs/src/plugins/notify/notifytablemodel.h:86:39:
error: reference ‘_list’ cannot be declared ‘mutable’ [-fpermissive]
implemented solution:
removed the mutable flag, as this is wrongly used on a reference (and
therefore correctly causing a compile-time error
Camera Stabilization settings not being read from CC board into GCS if CC is started first.
Created connection callback only to be called after all plugins are loaded.
a change to force an error if the passed in ENV var is not defined. If
that had been there, the borkage wouldn't have been undetected.
Changed to only put the main FW in the firmware dir, instead of BL and
FW.