Skip to content
Snippets Groups Projects
  1. Oct 29, 2016
  2. Oct 28, 2016
    • Julian Oes's avatar
      simulation: SITL outputs from 0..1 · 62603bee
      Julian Oes authored
      Instead of sending actuator controls from -1..1 for SITL, we should send
      0..1 like we already do for HIL. This will enable negative thrust in the
      future, e.g. for pusher props that spin backwards, or for vehicles with
      variable pitch propellers.
      62603bee
    • Julian Oes's avatar
      rename gazebo_tailsitter to tailsitter · 0a043365
      Julian Oes authored
      This is currently broken anyway but the new name makes more sense.
      0a043365
    • Carlo Wood's avatar
      Do not include headers inside __BEGIN_DECLS ... __END_DECLS blocks. · 90f3e3b5
      Carlo Wood authored
      We don't have C++ unsafe headers (anymore).
      
      I added a test to fix_headers.sh that checks if certain "unsafe"
      headers are ONLY included inside a __BEGIN_DECLS ... __END_DECLS
      (because after all, they are unsafe), as well as checking that
      no other header files are included inside such a block. The rationale
      of the latter is that if a file is a C header and it declares
      function prototypes (otherwise it doesn't matter) and is sometimes
      included outside a __BEGIN_DECLS ... __END_DECLS block (from a C++
      source file) then it has to be C++ safe and doesn't ever to be
      included from inside such a block; while if a file is a C++ header
      then obviously it should never be included from such a block.
      
      fix_headers.sh subsequently found several safe headers to be
      included from inside such a block, and those that were (apparently
      in the past) unsafe were included only sometimes inside such a
      block and often outside it. I had a look at those files and saw
      that at least an attempt has been made to make them C++ safe,
      but especially because they already are included OFTEN outside
      a __BEGIN_DECLS ... __END_DECLS (from C++ source files) the
      best decision seems to treat them as safe.
      
      This is not risky: .c files that define such functions still
      generate C-linkage for their functions. If a C++ unsafe C header
      is included outside a __BEGIN_DECLS ... __END_DECLS block then
      the only possible result would be an undefined reference to
      a function with C++-linkage that will not exist. Aka, when
      something links after this commit, then the commit was correct.
      I did build all targets and they all linked.
      90f3e3b5
    • Carlo Wood's avatar
      Clean up of px4_defines.h (remove math.h) · baf89f43
      Carlo Wood authored
      This patch reorders px4_defines.h to make it more readable (I think)
      but more importantly, cleans up the #include <math.h>/<cmath>
      and [std::]isfinite stuff.
      
      My main goal was to completely get rid of including math.h/cmath,
      because that doesn't really belong in a header that is supposed to
      define macro's and is included in almost every source file (if not
      all).
      
      I'm not sure what it did before ;) (pun intended), but now it does
      the following:
      
      PX4_ISFINITE is only used in C++ code (that was already the case,
      but hereby is official; for C code just use 'isfinite()') and is
      defined to be std::isfinite, except on __PX4_QURT because that uses
      the HEXAGON toolset which (erroneously) defines isfinite as macro.
      
      I would have liked to remove PX4_ISFINITE completely from the code
      and just use std::isfinite whereever that is needed, but that would
      have required changing the libecl submodule, and at the moment I'm
      getting tired of changing submodules... so maybe something for the
      future.
      
      Also, all includes of <math.h> or <cmath> have been removed except
      for __PX4_NUTTX. Like the HEXAGON toolset NuttX currently defines
      isfinite as macro for C++. So, we could have solved this in the
      same was as __P4_QURT; but since we can fix NuttX ourselves I chose
      to add a kludge to px4_defines.h instead that fixes this problem,
      until the time that NuttX can be fixed (again postponing changing
      a submodule). The kludge still demands including <cmath>, thus.
      
      After removal of the math header file, it needed to be included
      in source files that actually need it, of course.
      
      Finally, I had a look at the math macro's (like M_PI, M_PI_F,
      M_DEG_TO_RAD etc). These are sometimes (erroneously) defined in
      certain math.h header files (like both, hexagon and nuttx).
      This is incorrect: neither the C nor the C++ standard defines
      math constants (neither as macro nor otherwise). The "problem"
      here was that px4_defines.h defined some of the M_*_F float
      constants in terms of the M_* double constant, which are
      sometimes not defined either thus. So, I cleaned this up by
      defining the M_*_F math constants as float literals in px4_defines.h,
      except when they are defined in math.h for that platform.
      This means that math.h has to be always included when using those
      constants, but well; not much difference there as those files
      usually also need/use the macro NAN (which *is* a standard macro
      defined by math.h).
      
      Finally finally, DEFAULT_PARAM_FILE was removed as it isn't
      used anymore.
      
      All in all I think the resulting px4_defines.h is nice, giving me
      much less the feeling of a nearly unmaintainable and over time
      slowly growing collection of kludges and hacks.
      baf89f43
    • Carlo Wood's avatar
      Remove fake config targets. · e29b9b5d
      Carlo Wood authored
      The "targets" posix_rpi_common, qurt_sdflight_default and
      posix_sdflight_default are not real targets; they are
      just files in cmake/configs that are included by other
      targets.
      e29b9b5d
    • Erik Jähne's avatar
  3. Oct 26, 2016
  4. Oct 25, 2016
  5. Oct 24, 2016
  6. Oct 23, 2016
Loading