Commit Graph
100 Commits
Author SHA1 Message Date
Beat Küng 72f9371ca4 micrortps_client_main: remove unnecessary sleep(1);
... and some strange reformatting due to astyle...
2017-08-08 21:47:17 +02:00
Beat Küng 77785c01ef micrortps_client.cpp.template: avoid 0-init & check result of orb_copy 2017-08-08 21:47:17 +02:00
Beat Küng de8e0b54b6 micrortps_client_main: use new module documentation & check param range 2017-08-08 21:47:17 +02:00
Beat Küng e7d19f0a1a micrortps_client_main: add status command 2017-08-08 21:47:17 +02:00
Beat Küng 55f65b4aff Tools/message_id.py: rename to uorb_rtps_message_ids.py for clarity 2017-08-08 21:47:17 +02:00
Beat Küng 98396a0bc5 frsky_telemetry: cleanup static vars, use less memory & fix process priority 2017-08-08 14:47:01 +02:00
Beat Küng cb23817317 frsky_telemetry: send flight mode & gps info
This uses the TEMP1 & TEMP2 fields, which probably were used for something
else initially. However this implementation matches with OpenTX and APM.
2017-08-08 14:47:01 +02:00
Beat Küng a2bfcb94ef frsky_telemetry D protocol: refactor to use less memory & allocations
Also add the vehicle_gps_position & flight mode information
2017-08-08 14:47:01 +02:00
Beat Küng 9dea515eaa frsky_telemetry S.Port: refactor to use less memory & allocations 2017-08-08 14:47:01 +02:00
Beat Küng cf8b6a9de1 frsky_telemetry: use new module documentation 2017-08-08 14:47:01 +02:00
Beat Küng 4e5c6fc805 frsky_telemetry: fix heading for D protocol 2017-08-08 14:47:01 +02:00
Beat Küng 1d40336723 airframes parser: add dodecarotor image 2017-08-08 11:59:00 +02:00
Beat Küng 4ee9cb2e2f px4airframes markdown: always use '/' for path separation
Because it's an URL and os.path.join() will use '\' on windows.
2017-08-07 11:12:51 +02:00
Beat Küng a2ef611a30 dataman: improve error reporting 2017-08-04 18:08:51 +02:00
Beat Küng 45e185f8e3 mavlink: document verbose command 2017-08-04 18:08:51 +02:00
Beat Küng 843cb05ef4 mavlink_mission: fix send_mission_count: must always use MAV_MISSION_TYPE_MISSION
Because it's only used for missions
2017-08-04 18:08:51 +02:00
Beat Küng 34e31641ab mavlink_mission: print mission_type on clear_all verbose output 2017-08-04 18:08:51 +02:00
Beat Küng 25cc64947a mavlink_mission: add check for fence & safe point on regular mission upload 2017-08-04 18:08:51 +02:00
Beat Küng b1730b67e4 mission: keep 'offboard mission updated' printf as a warning
Useful to see when a in-flight mission update happens from the log.
2017-08-04 18:08:51 +02:00
Beat Küng fde1c061ed fix mavlink_mission: mission_set_current message only applies to MISSION_TYPE_MISSION
and thus the current _mission_type does not matter.
2017-08-04 18:08:51 +02:00
Beat Küng 6d85a3c4e4 geofence: lock geofence items during a write transfers
- avoids race conditions when geofence data is updated in flight. During
  a transfer, the geofence module will not check for violations, which
  is done with the new dm_trylock method.
- there is an update counter stored in dataman, and for each write
  transaction this is increased, so that the geofence module can reload
  the data upon data change (after it's unlocked).
- single dm item updates are atomic already, so resetting the polygons
  to 0 does not need locking.
2017-08-04 18:08:51 +02:00
Beat Küng cb580c5268 navigator/mission.cpp: check result of dm_lock
and remove duplicated output, mavlink_log_critical already outputs to the
console
2017-08-04 18:08:51 +02:00
Beat Küng 3d3e6428c2 msg/geofence_update.msg: remove this topic
We'll use dataman to check for geofence data updates.
2017-08-04 18:08:51 +02:00
Beat Küng 72501df88e dataman: add dm_trylock & add lock for FENCE_POINTS items 2017-08-04 18:08:51 +02:00
Beat Küng 1942641ff6 semaphore: add px4_sem_trywait
directly mapped to the posix method sem_trywait
2017-08-04 18:08:51 +02:00
Beat Küng ed478f40fd geofence: implement circular areas 2017-08-04 18:08:51 +02:00
Beat Küng 6667b6434b mavlink_mission: replace warnx, add mission_type to verbose output 2017-08-04 18:08:51 +02:00
Beat Küng cf3b068179 mavlink: add 'verbose [on|off]' command 2017-08-04 18:08:51 +02:00
Beat Küng 371586be2c MAVLink: Add verbose command 2017-08-04 18:08:51 +02:00
Beat Küng 32491626b6 mavlink mission: set mission_type in mavlink_mission_count_t message 2017-08-04 18:08:51 +02:00
Beat Küng 401d6a1a6f navigator status: print how many polygons there are currently loaded 2017-08-04 18:08:51 +02:00
Beat Küng 4c1328483d geofence: disable altitude check if not configured
It currently cannot be configured via mavlink mission protocol.
2017-08-04 18:08:51 +02:00
Beat Küng 2981ece921 geofence: do not show an error for MAV_FRAME_GLOBAL_RELATIVE_ALT{,_INT} items
Since the altitude is not used, we can ignore this as well.
2017-08-04 18:08:51 +02:00
Beat Küng e52491c023 geofence: there is no altitude for geofence vertices, remove the TODO 2017-08-04 18:08:51 +02:00
Beat Küng c4cdaa48e0 dataman, mission_feasibility_checker: remove unneeded uorb includes 2017-08-04 18:08:51 +02:00
Beat Küng 82716012bd geofence_update.msg: notify navigator on geofence update 2017-08-04 18:08:51 +02:00
Beat Küng 328e84117e navigator geofence: switch to new dataman data structure, support multiple polygons
This also removes the 'navigator fence <lon> <lat>' command to simplify
code (I don't think there's still use for that anymore). However the
file loading is still supported.

If goefence.txt does not exist, navigator will not clear the geofence
anymore on startup.
2017-08-04 18:08:51 +02:00
Beat Küng a987886ca3 mavlink: add fence & rally to protocol capabilities 2017-08-04 18:08:51 +02:00
Beat Küng 54d8e245c0 mavlink_mission: fix dm_read check
... and init to 0 is not needed, since already done in constructor
2017-08-04 18:08:51 +02:00
Beat Küng b9cddfb75b dataman: account for new geofence & rally point structs 2017-08-04 18:08:51 +02:00
Beat Küng b8fb8c610e mavlink_mission: implement geofence & rally point protocol
- retrieve & store the geofence & rally point data from/to dataman
- interleaved transmissions (of different types) are not possible. trying
  to do so will NACK the new transmission
- only one storage backend for polygons & rally points (not alternating
  between 2 as the mission does)
2017-08-04 18:08:51 +02:00
Beat Küng 40c696ff49 navigation.h: add dataman structs for fence & save points 2017-08-04 18:08:51 +02:00
Beat Küng 65e0d63ba6 commander: avoid duplicated publish, cleanup log output for offboard_mission update
- orb_advertise already publishes a struct, no need for orb_publish
- mavlink_log_critical goes to the console too
2017-08-04 18:08:51 +02:00
Beat Küng 7206bf86dc navigator mission: fix printf log levels 2017-08-04 18:08:51 +02:00
Beat Küng 52ca49c682 geofence: remove fence & fence_vertex messages
- this was never read
- it was implemented wrong, leading to memory access violations in
  publishFence (an integer was passed instead of the fence_s struct)
2017-08-04 18:08:51 +02:00
Beat Küng e3b61f22f2 Tools/upload_log.py: use https 2017-07-31 14:15:28 +02:00
Beat Küng 6e4ba1196b nuttx_px4fmu-{v1,v2}_default.cmake: disable sdlog2
Due to flash overflow
2017-07-29 23:10:47 +02:00
Beat Küng b1215a6ddd px4_shutdown_request: make sure we release the lock in every case
board_shutdown should not return, but just in case
2017-07-29 23:10:47 +02:00
Beat Küng b89deaf8e3 tap-v1/tap_pwr.c: make sure to invoke the button notification on registering the cb 2017-07-29 23:10:47 +02:00
Beat Küng c5a1d1928d px4_shutdown_unlock: check that counter is > 0 2017-07-29 23:10:47 +02:00
Beat Küng 007b6dd8d7 commander: make sure the power_button_state topic is advertised on startup
Otherwise the publication from IRQ context won't work
2017-07-29 23:10:47 +02:00
Beat Küng 8923664f30 param: seek to the beginning of the file before re-trying a failed export attempt 2017-07-29 23:10:47 +02:00
Beat Küng 9d924bea3f reboot command: add lock/unlock commands to test the shutdown lock
If needed it could be used in scripts as well.
2017-07-29 23:10:47 +02:00
Beat Küng dcb5f80180 shutdown: increase the max timeout to 5s
To make sure slow param writes will finish before we hit the timeout. I've
seen param write durations of around 2s.
2017-07-29 23:10:47 +02:00
Beat Küng 931ef189b5 param: grab the shutdown lock while writing params to the file 2017-07-29 23:10:47 +02:00
Beat Küng 898a8dcd57 shutdown: add px4_shutdown_{lock,unlock} API methods
Prevents the system from shutting down.
2017-07-29 23:10:47 +02:00
Beat Küng 2815c62acf fix power button shutdown: use an orb topic instead of a work queue call
px4_shutdown_request() was called from the power button IRQ callback, which
invoked a work queue callback. But on NuttX, the work queue uses a
semaphore, and thus it cannot be called from IRQ context.
This patch switches to publishing an uORB msg instead, which is handled in
the commander main thread.

To increase failure resistance, we could subscribe to the same topic in
another module for redundancy, in case commander runs wild.
2017-07-29 23:10:47 +02:00
Beat Küng 0109154c43 logger: avoid logging the UUID if the system does not provide it
The linux targets don't have it and setting a fixed constant causes
wrong vehicle associationss in Flight Review.
2017-07-24 09:01:02 +02:00
Beat Küng a6c682ce50 mavlink_ftp: fix stack overflow & add root dir prefix
- change memory allocation from stack to a malloc'd buffer. This avoids
  increasing the stack size. And since FTP is rarely used, the buffers
  are only allocated upon use and freed after a time of 2s inactivity.
- adds PX4_ROOTFSDIR as root directory prefix. This does not change
  anything on NuttX, but in SITL it will avoid enumerating the whole
  disk tree when using QGC (which enumerates all files recursively).
2017-07-21 19:59:45 +02:00
Beat Küng 29f23a390f mavlink_ftp: avoid using seekdir()
The provided argument payload->offset is in range [0, num_file_entries-1],
but seekdir might use a completely different range. It is not defined
by the API spec. It is only useful in conjunction with telldir().
2017-07-21 19:59:45 +02:00
Beat Küng 5a2723ab9c test_mixer.cpp: remove bogus comments 2017-07-21 19:59:45 +02:00
Beat Küng 42f7e6bca3 px4_defines: make sure that PX4_ROOTFSDIR is a string 2017-07-21 19:59:45 +02:00
Beat Küng ced700adf2 cmake px4fmu-v1 config: remove pwm_out_sim from build
To reduce flash space usage
2017-07-20 18:49:38 +02:00
Beat Küng 7fc20049e0 param_shmem import: don't fail on type mismatch 2017-07-20 18:49:38 +02:00
Beat Küng 88b515390a flashparams import: don't fail on type mismatch 2017-07-20 18:49:38 +02:00
Beat Küng 2340e7073d param import: don't fail on type mismatch
This can happen for example when a param type is changed from int32 to
float. The type check will then fail if the param is stored and the param
import will be aborted.
Now we just skip the entry and continue loading the rest.
2017-07-20 18:49:38 +02:00
Beat Küng 0668d61665 SYS_FMU_TASK: add param to start fmu as task (default=work queue) 2017-07-18 20:06:10 +02:00
Beat Küng 07b7a153f3 fmu: add ifdef for dsm_deinit() 2017-07-18 20:06:10 +02:00
Beat Küng 2193afd0a0 fix fmu: lower polling timeout to 5ms when running as task
With the previous value of 20ms, we dropped RC input when not armed. The
result was that some RC channels jumped randomly between min & max.
2017-07-18 20:06:10 +02:00
Beat Küng e6adfa6b6b fix fmu: call dsm_deinit() in destructor
This closes the fd and cleans up a static variable used in the dsm parser.
2017-07-18 20:06:10 +02:00
Beat Küng 1130bc129c fix fmu: make sure init() is called on the new task
This was only a problem when running as a task not on the work queue.
The problem was that init() opened the RC serial device, which was then
read in the main loop, which is a different context when run as a task.
2017-07-18 20:06:10 +02:00
Beat Küng 56cc5e11cc simulator: initialize sensor data buffers 2017-07-18 12:54:28 +02:00
Beat Küng bb3b11e87a battery.cpp: initialize _current_filtered_a 2017-07-18 12:54:28 +02:00
Beat Küng bcca17204b mc_pos_control_main: initialize _in_takeoff 2017-07-18 12:54:28 +02:00
Beat Küng d419537a72 ekf2_main: initialize _mag_time_sum_ms & _balt_time_sum_ms 2017-07-18 12:54:28 +02:00
Beat Küng c59d7baad8 replay: add backward compatibility for updated sensor_combined topic 2017-07-16 14:08:37 +02:00
Beat Küng cef3a29ac9 refactor replay: split timestamp offset into separate method 2017-07-16 14:08:37 +02:00
Beat Küng 4ccbeb47c0 land_detector_main: fix documentation: rover -> ugv 2017-07-14 11:57:11 +02:00
Beat Küng 0949599f0a dataman: fix compilation error
error: invalid conversion from ‘int’ to ‘dm_item_t’
and
error: no ‘operator++(int)’ declared for postfix ‘++’
2017-07-14 11:57:11 +02:00
Beat Küng 1c7941fc89 land_detector: fix too long lines in module documentation 2017-07-14 11:57:11 +02:00
Beat Küng cf5df4489f dataman: extend module documentation 2017-07-14 11:57:11 +02:00
Beat Küng 913cbc773e px4moduledoc: extend validation: limit max line length to 120 2017-07-14 11:57:11 +02:00
Beat Küng 318c4497bd dataman: fix typo 2017-07-14 11:57:11 +02:00
Beat Küng 620d37bc1c fmu: remove tautology, fix pwm2cap2 mode for status 2017-07-14 11:57:11 +02:00
Beat Küng 8b64fc8a5e Tools/px4moduledoc: add some comments, describe the regexes 2017-07-14 11:57:11 +02:00
Beat Küng 8a83fb7dc2 land_detector: use ModuleBase & add module documentation 2017-07-14 11:57:11 +02:00
Beat Küng 8d7481f9ac load_mon: use ModuleBase & add documentation 2017-07-14 11:57:11 +02:00
Beat Küng 5aa8b455c2 crazyflie airframe: add maintainer 2017-07-14 11:57:11 +02:00
Beat Küng 69f0288649 aerofc airframe: RTF -> Ready to Fly Drone & add maintainer 2017-07-14 11:57:11 +02:00
Beat Küng a63699060d ekf2: use ModuleBase & add module documentation 2017-07-14 11:57:11 +02:00
Beat Küng 47073e9c32 vmount: add module documentation 2017-07-14 11:57:11 +02:00
Beat Küng 28e5268497 dataman: rename to .cpp & add module documentation 2017-07-14 11:57:11 +02:00
Beat Küng 682dabded1 replay: use module base class & add module documentation 2017-07-14 11:57:11 +02:00
Beat Küng 674ae5292e markdown module doc script: write how to generate the modules documentation 2017-07-14 11:57:11 +02:00
Beat Küng 05b0c412c8 sensors: extend module doc a bit 2017-07-14 11:57:11 +02:00
Beat Küng 36c9400de4 gps: use ModuleBase class & add documentation
Note: it changes the interface slightly: instead uf -dualgps, use -e now.

This also fixes 2 bugs:
- nullptr access when doing 'gps status' with fake gps running
- close(fd) was called on an uninitialized fd when gps fake was running
2017-07-14 11:57:11 +02:00
Beat Küng 6463bd4f6f sensors: use ModuleBase & add documentation 2017-07-14 11:57:11 +02:00
Beat Küng 5923a2e9d0 src/mainpage.dox: remove this file, it's not used anymore & completely outdated 2017-07-14 11:57:11 +02:00
Beat Küng a43f135ad4 minor documentation updates to some commands 2017-07-14 11:57:11 +02:00
Beat Küng 7d50f3df0a Makefile: add module_documentation target 2017-07-14 11:57:11 +02:00