for example:
EKFStateVariancePSet(EKFStateVariancePData *NewP);
EKFStateVariancePGet(EKFStateVariancePData *NewP);
Also in this case array accessors are renamed as xxxArrayGet/Set:
EKFStateVariancePArraySet(float *NewP);
EKFStateVariancePArrayGet(float *NewP);
Nothing changes for anonymous items as default functions continues to deal with arrays
+review OPReview-552
They caused stack usage increase with -fstrict-aliasing as stack slots are not reused when dealing with unions.
It has now been added the cast_struct_to_array macro in pios_struct_helper.h to handle such case where it is useful to access those homogeneous structs as arrays
+review OPReview-552
This implementation uses a union containing the Array implementing the MultiElement field data and a struct made from element names.
it allow to replace the following sintax:
settings.PitchRatePID[STABILIZATIONSETTINGS_PITCHRATEPID_KP]
with a more concise and less error prone
settings.PitchRatePID.fields.Kp
while allowing the direct array access using the notation
settings.PitchRatePID.data[n]
Also fixes warnings (and bugs) in F4 STM32_USB_OTG_Driver code, allowing -Werror to be enabled for all flight code.
Fixes all other compiler warnings that would otherwise cause the flight code to not compile with -Werror enabled.
Along the way, this also adds some uses of isnan() to various places rather than questionable tests for x != x and
x == x to check for NaNs.
+review OPReview
per target as defined in Makefile (and/or Make include file) For
OpenPilot this is flight/OpenPilot/UAVObjects.inc For sim_posix and
sim_win32 needs rebuild of uavobjectgenerator and uavobjects!
git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@2736 ebee16cc-31ac-478f-84a7-5cbb03baadba
Putting Corvus patch back in. Need to delete uavobjects-synthetics directory
for this to work.
This reverts commit 9cd98bec8fb5e0679c625eb256a94d161a8ce345.
Conflicts:
flight/CopterControl/Makefile
git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@2671 ebee16cc-31ac-478f-84a7-5cbb03baadba
Note: This patch did not build after a clean build.
This reverts commit 7e75b5d16481a32689433c868b67916816d8b9fb.
Conflicts:
flight/CopterControl/Makefile
git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@2651 ebee16cc-31ac-478f-84a7-5cbb03baadba
On architectures supporting automatic initializing, flight/UAVObjects/uavobjectsinit_linker.c is used
On architectures NOT supporting automatic initializing, an uavobjectgenerated file build/uavobject-synthetics/flight/init/uavobjectsinit.c is used
build/uavobjects-synthetics/flight/uavobjectsinit.c went away, so that a wildcard include in the Makefile will not include the (wrong) initialisation code in either version
git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@2640 ebee16cc-31ac-478f-84a7-5cbb03baadba
Now they can include special chars like '.' (dot), '-' (dash), '/' (slash), ' ' (space). All such chars will be removed from autogenerated identifiers ("S.Bus" -> SBUS), but kept intact in text strings (to be displayed by the GCS).
This will not change any existing object IDs.
git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@2592 ebee16cc-31ac-478f-84a7-5cbb03baadba
The UAVObject definition (.xml) files are used by both the
GCS build as well as the flight software builds.
git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@2526 ebee16cc-31ac-478f-84a7-5cbb03baadba
The UAVObject generator is intended to be a standalone tool.
As such, it doesn't belong under the openpilotgcs directory.
git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@2525 ebee16cc-31ac-478f-84a7-5cbb03baadba