Skip to content
Snippets Groups Projects
  1. Nov 10, 2018
  2. Oct 27, 2018
  3. Aug 08, 2018
    • Julian Oes's avatar
      add posix shell · 0c5c741b
      Julian Oes authored
      squashed & rebased version, not including:
      - listener changes
      - src/firmware renaming
      
      Commits:
      
      tag_to_version.py: fix Python3 error
      
      subprocess.communicate returns bytes instead of a str which is not the
      same for Python3. Therefore, we need to decode the bytes.
      
      cmake: remove folder src/firmware
      
      The folder src/firmware was not intuitive. Why would the binaries for
      SITL be inside a src and why even inside a src/firmware folder. Also,
      the rootfs was put there which made it even more confusing.
      
      The CMakeLists.txt files are moved into cmake/ and get now called from
      the main CMakeLists.txt.
      
      qshell: support for return value
      
      Instead of just sending commands, qshell will now also wait until
      the command has finished on QURT and sent back a return value. This will
      allow all modules on the DSP side to be spawned from the Linux side
      meaning that we only need one config/startup file instead of two.
      
      adb_upload: create folders before pushing
      
      Previously the script failed if the folder on the destination was not
      already existing. This therefore makes pushing easier.
      
      posix: spawn PX4 modules in bash
      
      This adds the possibility to spawn PX4 modules out of bash. Basically,
      the main executable can now be started as a server/daemon or as a
      client.
      The server replaces the existing functionality of the main exe with
      the pxh shell, however, it also opens a pipe that clients can talk to.
      
      Clients can run or spawn PX4 modules or commands by connecting to the
      server over the pipe. They clients will get the stdout and return value
      of their commands via a client specific pipe back.
      
      This work will allow to start all modules using a bash script similar to
      the way it is done in NuttX where the NuttShell scripts the startup
      scripts and starts the modules.
      
      SITL: use new client shell in SITL
      
      This is a first step to use the new shell capabilities for SITL.
      The new startup bash script rcS merges (and therefore replaces) the two
      existing scripts rcS_gazebo_iris and rcS_jmavsim_iris.
      
      More cleanup will be necessary for the rest of the SITL startup scripts.
      
      Snapdragon: use new shell to start all modules
      
      Instead of different mainapp.config and px4.config files, we can now use
      a unified rcS bash script which starts all the modules based on
      parameters, mainly the SYS_AUTOSTART param.
      
      Snapdragon: fix the airframe description
      
      pxh: argv needs to end with a nullptr
      
      The comment was wrong that argv needs an additional 0 termination.
      Instead it needs a nullptr at the end.
      
      px4_posix_tasks: variable cleanup
      
      The px4_task_spawn_cmd function got a cleanup while debugging, however,
      no functional changes.
      
      Snapdragon: move some drivers to 4100 config
      
      These drivers are supported by the community, so they go into the 4100
      config.
      
      Snapdragon: update 210qc platform
      
      px4_daemon: use doxygen comments
      
      apps.h_in: fix string printf: use .c_str()
      
      px4_daemon: \b -> \n in printf
      
      px4_daemon: handle error in generate_uuid (close the file on error)
      
      posix main: some clarifications in comment (it's the symlinks not the script aliases)
      
      cmake: remove new install command again
      
      This one was probably wrong and untested. Installing needs revisiting.
      
      POSIX: remove argument USES_TERMINAL
      
      POSIX: copy init and mixer files for SITL
      
      Instead of using non-working install commands, the mixer and startup
      files are now copied as part of the build in cmake.
      
      adb_upload.sh: remove leftover commented printf
      
      POSIX main: just the pointer instead of memmove
      
      POSIX main: remove chroot
      
      chroot is removed because it hasn't been used anywhere and seems
      untested.
      
      px4_daemon: remove client pipe when cleaning up
      
      px4_daemon: fail if the client pipe already exists
      
      The client pipe is supposed to be specific (by UUID), so the path
      shouldn't exist already.
      
      history: limit the number of history entries
      
      This is a protection to avoid filling the memory if we are entering a
      lot of commands (e.g. auto-generated).
      
      px4_daemon: add a threadsafe map and use it
      
      px4_daemon: whitespace
      
      px4_daemon: fix client parsing
      
      Sometimes the client ends up reading more than one packet in one read.
      The parsing is not made for this and would require a (ring)buffer for
      it.
      
      The solution of this commit just reads as much as needed from the pipe
      which avoids having to do buffering and parsing.
      
      posix: changes sitl_run.sh and main.cpp cleanup
      
      This changes the paths in sitl_run.sh quite a bit to allow the px4
      binary to run in the rootfs directory which should make it convenient
      and very close to the NuttX variant.
      
      Also main.cpp got a big cleanup after the big rebase with some
      conflicts. Quite some functionality was removed but it has yet to be
      seen if it needs to be re-added.
      
      px4_log: cleanup log levels, now they make sense
      
      Before DEBUG and INFO log levels where inverted which didn't make much
      sense in my eyes.
      
      dataman: fix path for bash shell
      
      logger: fix paths for bash shell
      
      mavlink: fix paths for bash shell
      
      param: fix path for bash shell
      
      inav: fix paths for bash shell
      
      sdlog2: fix paths for bash shell
      
      ROMFS: add forgotten mixer to list
      
      SITL init: more models, more options
      
      - Support for different models using the unified startup
      script rcS.
      - Support to choose the estimator by setting the environment variable
        PX4_ESTIMATOR.
      - Support to choose the logger by setting the environment variable
        PX4_LOGGER.
      
      rcS: fix string comparison
      
      listener: use template file
      
      Instead of having all of the C++ code inside the Python file it is
      nicer to have a separate template file with the C++ headers, etc.
      
      px4_log: add PX4_INFO_RAW for raw printfs
      
      This allows to do custom formatting but is still transported over
      sockets to clients.
      
      topic_listener: use PX4_INFO_RAW instead of printf
      
      commander: use PX4_INFO_RAW for status
      
      listener: rewrite to classes and factory
      
      posix: fix some argument warnings
      
      generate_listener.py: by accident changed shebang
      
      listener: big refactor of the generator
      
      Hopefully this makes it easier to read and change in the future.
      
      rcS: manually take over rebase changes
      
      listener: remove leftover try
      
      listener: properly clean up topic instance
      
      rcS: take over some vehicle specific changes
      
      posix-configs: vehicle specifics to separate files
      
      posix-configs: remove leftover lines
      
      uORBDevices: new PX4_INFO_RAW instead of printf
      
      px4_log: just use printf on NuttX
      
      listener: use less binary space, strip on NuttX
      
      generate_listener.py: remove commented code
      
      cmake: fix syntax error from merge
      
      px4_daemon: fixes after rebase of apps.h/cpp fix
      
      px4_daemon: namespace missing
      
      posix: only create stub for fsync on QURT
      
      unitests: reduce dependencies of param test
      
      This makes the unit test compile and link again after the bash changes.
      
      QURT: some compile fixes after a rebase
      
      SITL: arg change for sitl_run.sh to use rcS_test
      
      This allows to use a custom startup file for testing.
      
      SITL: add the folder test_data
      
      SITL: implement shutdown command as systemcmd
      
      The shutdown command needs to be a proper systemcmd, otherwise the alias
      and symlink generation doesn't work and we end up calling shutdown of
      the host computer which is to be avoided.
      
      px4fmu_test: same IO_pass mixer as px4fmu_default
      
      px4fmu_test: use normal quad x mixer
      
      There is no good reason to use a specific test mixer, except more cmake
      code around it. Therefore just use the same mixer as default, and at
      some point px4fmu_test and px4fmu_default can get merged
      
      POSIX: cleanup, dir and symlink fixes
      
      This cleans up the logic behind the symlinking and creating directories.
      
      POSIX: correct arg order in usage info
      
      tests: fix paths for SITL tests
      
      POSIX: printf fix
      
      sitl_run.sh: try to make this run on Mac as well
      
      cmake: try to make jenkins happier
      
      Path cleanup, the bin is no longer in src/firmware
      
      POSIX: fix symlink logic
      
      SITL: prefix all exported env variables
      
      cmake: fix path for ROS tests
      
      integrationtests: fix log path
      
      launch: try to make tets with ROS working again
      
      px4_defines: fix after wrong merge deconflicting
      
      px4_defines: get paths for POSIX correct
      
      cmake: fix cmake arguments
      
      This was fine with cmake 3.6 but did not work with cmake 3.2.2
      
      cmake: use cp instead of cmake -E copy
      
      cmake -E copy does not support copying multiple files with versions <
      3.5. Therefore, just use cp for now.
      
      ROMFS: fix build error after rebase
      
      cmake: fix paths in configs
      
      launch: use `spawn_model` again
      
      cmake: various fixes after big rebase
      
      param: path fixes after rebase
      
      posix platform: fixes after rebase
      
      test_mixer: fix screwed up rebase
      0c5c741b
  4. Mar 29, 2017
  5. Aug 24, 2016
  6. Jul 10, 2016
    • Lucas De Marchi's avatar
      Move __STDC_FORMAT_MACROS to build system · 18330f7a
      Lucas De Marchi authored
      __STDC_FORMAT_MACROS changes the behavior of inttypes.h to allow
      defining format macros for printf-like functions. It needs to be defined
      before any include is done, otherwise due to include chains and header
      guards it may not take effect.
      
      Instead of having to define it everywhere it is used, move the define to the
      build system. Also update ecl and DriverFramework submodules to deal with the
      changed definitions.
      18330f7a
  7. Jul 06, 2016
  8. Jun 09, 2016
  9. Jun 07, 2016
  10. Oct 19, 2015
  11. Oct 14, 2015
  12. Sep 27, 2015
  13. Sep 08, 2015
  14. Sep 04, 2015
    • Mark Charlebois's avatar
      Build fixes for qurt after rebase on PX4 master · 54bae34a
      Mark Charlebois authored
      
      Removed the re-definitions of the usage method in the posix/main.cpp file.
      Added qurt_external_hook interface to call externally linked module.
      Fixed code format to comply with PX4 style.
      Added usage information to main app and handled cases for unknown arguments.
      Fixed the orb_priority interface to use int32_t instead of int.
      Fixes to get hil working with led changes.
      Added the config_eagle_adsp.mk file and update the make files to to use new
      include/lib paths
      
      Signed-off-by: default avatarMark Charlebois <charlebm@gmail.com>
      54bae34a
  15. Aug 26, 2015
    • Mark Charlebois's avatar
      Fixes for qurt HIL build · 3a474347
      Mark Charlebois authored
      
      Workaround required Eigen downgrade to 3.2. Hexagon toolchain does
      not support C++11 features of newest version of Eigen.
      
      Running make qurt_fixup will downgrade and patch Eigen for qurt.
      Running make restore will revert the patch and do a git submodule update
      to restore the expected Eigen version.
      
      Added a "restore" target to undo qurt_fixup
      
      Before doing a qurt build run:
      
          make qurt_fixup
      
      That will downgrade Eigen to 3.2 and apply the require patch.
      To build another target after downgrading:
      
          make restore
      
      Them make the desired target (other than qurt).
      
      Fixed type used in orb_priority to be consistent with the code
      (int* was used in declaration but int32_t* used in code)
      
      Removed unused class member variable in sensors.cpp
      
      Added cmake fix for unit tests. The location of px4_log.c changed.
      
      Fixed the qurt drv_hrt.c implementation to use us instead of ms for time resolution
      
      Added px4_led.c to nuttx platform layer
      Use the posix version of px4_led.c for nuttx so we don't end up with
      duplicate files. It was moved out of common because it is not used by qurt.
      
      Changed PX4_DEBUG to PX4_WARN when checking for the error condition for store_poll_waiter in vdev.cpp
      
      Updated the px4_log.h file to make calls to the qurt_log functions.
      The qurt_log function is defined in the platforms/qurt layer.
      
      Added an option to control starting the commander module in HIL mode.
      
      Moved the flight specific drivers to the configuration file instead of adding them
      to the common tool chain file because HIL mode does not need them.
      
      Added the uorb Subscriber and Publisher classes
      
      Call PX4_ISFINITE macro instead of isfinite().
      
      Added px4_led.c to nuttx platform layer
      Use the posix version of px4_led.c for nuttx so we don't end up with duplicate files.
      It was moved out of common because it is not used by qurt.
      
      Signed-off-by: default avatarMark Charlebois <charlebm@gmail.com>
      3a474347
  16. Aug 11, 2015
  17. Jul 05, 2015
  18. Jul 02, 2015
  19. Jun 18, 2015
  20. Jun 17, 2015
  21. Jun 13, 2015
  22. Jun 09, 2015
  23. May 22, 2015
  24. May 19, 2015
    • Mark Charlebois's avatar
      Logging fixes and enhancements · eaef0db7
      Mark Charlebois authored
      
      Made the logging macros generic so they can be used for multiple targets.
      
      Fixed toolchain_native.mk so err.h is included from src/systemlib for posix.
      
      Reduced debug output for uORB.
      
      Signed-off-by: default avatarMark Charlebois <charlebm@gmail.com>
      eaef0db7
    • Mark Charlebois's avatar
      POSIX: Improved logging · ffdc9d62
      Mark Charlebois authored
      
      The warnx and warn calls map to PX4_WARN.
      Calls to errx or err genrtate a compile error.
      
      The px4_log.h file implements a new log format:
      
      For DEBUG and INFO:
      <level> <msg>
      
      For ERROR and WARN:
      <level> <msg> (file filepath line linenum)
      
      The verbosity can be changed by setting the macro to use
      either linux_log or linux_log_verbose in px4_log.h
      
      Signed-off-by: default avatarMark Charlebois <charlebm@gmail.com>
      ffdc9d62
Loading