Commit Graph
189 Commits
Author SHA1 Message Date
Beat Küng 124e1c26d9 gps injection: use the orb queuing API instead of multiple instances
It uses a queue length of 6. There are 3 RTCM msgs/s, but due to
fragmentation and WiFi lags, there can be more than that. During several
tests, a length of 6 showed no queue overflows.
2016-08-06 20:41:38 +02:00
Lorenz Meier b5ef5cabb5 Updated src/drivers/gps/devices 2016-07-30 11:40:50 +02:00
Eric Ye 9f5b081257 Wrap help line to fit through mini-dm. (#5157)
It currently gets cut off on mini-dm, split it into multiple lines
so all of it comes through.
2016-07-28 14:47:57 -07:00
Beat Küng 09ecc84cc7 gps file dump: re-implement with an uORB topic & write to the log file (#4987)
Drawbacks of the previous method: when writing to the SD card, there are
high delays in the write() call of several 100ms, every now and then. The
frequency and length of these events depend on:
- SD card
- used logger bandwidth
- bandwidth of gps data (RTCM)
Since the whole gps thread was blocked during this period, it lead to
gps timeouts and lost module.

What we do now is: publish an orb topic with queuing. This makes it async
and the logger takes care of buffering. This means it's best to:
- use high logger rate
- use large logger buffer
- reduce logger bandwith by disabling unused topics
2016-07-06 09:32:37 +02:00
Beat Küng f8e9a19889 gps_position: convert uint64 timestamp_time -> int32 timestamp_time_relative
We need to make this timestamp relative to the main timestamp. Necessary
for replay, and saves some space.
2016-06-24 00:22:01 +02:00
Beat Küng e2a7145379 vehicle_gps_position: remove timestamp_variance & timestamp_velocity (they're not used) 2016-06-24 00:22:01 +02:00
Beat Küng 89f5bd27e8 vehicle_gps_position: use timestamp field instead of timestamp_position
timestamp was unused. This allows to remove timestamp_position.
2016-06-24 00:22:01 +02:00
Beat Küng fc2d2c6ce0 gps: update drivers submodule 2016-06-02 09:26:03 +02:00
Beat Küng b226f7d13d gps: call fsync after injecting gps data
This is to minimize delay
2016-06-02 09:26:03 +02:00
Beat Küng 25cff52019 RTCM: use MAVLINK_MSG_ID_GPS_RTCM_DATA mavlink message (supports fragmentation) 2016-06-02 09:26:03 +02:00
Lorenz Meier 7398164fcc Updated PX4 use / API of low level GPIO and other hardware-centric system facilities 2016-05-28 14:56:17 +02:00
Beat Küng a94654e8d4 gps dump communication to file: include received RTCM messages 2016-05-22 12:19:47 +02:00
Beat Küng 6b8ab4611b gps: workaround for missing stat() on QuRT 2016-05-22 12:19:47 +02:00
Beat Küng aef78b8aeb gps: add GPS_DUMP_COMM param: if 1, dump all gps communication to a file 2016-05-22 12:19:47 +02:00
Beat Küng 47ed8c1a3c gps: fix thread initialization under posix
under NuttX the argc in task_main_trampoline contains two arguments,
but on linux only one.
2016-05-22 12:19:47 +02:00
Beat Küng 9d0c5469a0 gps: remove unneeded comment 2016-05-22 12:19:47 +02:00
Beat Küng f600b7fb37 fix gps regression: publish satellite info 2016-05-22 12:19:47 +02:00
Beat Küng c6f25591f7 dual gps: some cleanup, correctly use args argument of px4_task_spawn_cmd 2016-05-22 12:19:47 +02:00
Sebastian Verling e7ed07cf3c formatting 2016-05-22 12:19:47 +02:00
Sebastian Verling 62a152227a removed debugging line 2016-05-22 12:19:47 +02:00
Sebastian Verling 49e1c99dee make sure gps1 always publishes to gps1 topic 2016-05-22 12:19:47 +02:00
Sebastian Verling 7c5d10d57c removed unnecessary pointer and comment 2016-05-22 12:19:47 +02:00
Sebastian Verling 07d1d78a43 driver starting correctly 2016-05-22 12:19:47 +02:00
Sebastian Verling 34150ba688 unadvertising gps_pub 2016-05-22 12:19:47 +02:00
Sebastian Verling 3a72e9b494 formatting 2016-05-22 12:19:47 +02:00
Sebastian Verling c1cdef7e63 fixed multi subscribing and publishing
removed debugging message

changed to orb_publish_auto
2016-05-22 12:19:47 +02:00
Andreas Bircher 556851a511 applying dual gps patch
resolve transfer errors

reformatting

implementing multi-topics
2016-05-22 12:19:47 +02:00
Julian Oes 2e476ce6bf gps/devices: updated submodule
This includes the mtk bugfix for Snapdragon.
2016-04-25 06:21:36 -07:00
Julian Oes c975d01200 gps: fix Snapdragon build 2016-04-25 06:21:36 -07:00
Beat Küng b855d76f28 fix gps: subscribe to topics in the gps thread instead of the shell thread
NuttX does not inherit file descriptors when creating new tasks.
2016-04-25 13:35:41 +02:00
Beat Küng 58a7db51c3 gps: add RTCM message rate to the 'gps status' command 2016-04-25 13:35:41 +02:00
Beat Küng afefa4d2a0 gps: use a max poll timeout of 50ms to check for orb msgs more often
Before this, I measured a max time spent in poll of 197ms. By checking at
least every 50ms we make sure to not lose any orb messages.
2016-04-25 09:48:24 +02:00
Beat Küng 6029551c63 gps & mavlink receiver: use C arrays instead of std::array<> 2016-04-25 09:48:24 +02:00
Beat Küng 4cf08ba580 gps handleInjectDataTopic: repeatedly check for new orb messages
Without that there were still lost messages, now it's all fine (tested
under Linux)
2016-04-25 09:48:24 +02:00
Beat Küng c8f2a7ea02 update gps submodule (fix coding style) 2016-04-25 09:48:24 +02:00
Beat Küng 1085f33f88 gps: remove the old driver files 2016-04-25 09:48:24 +02:00
Beat Küng 1013ae7d49 gps: major restructuring & extension of ubx driver: use a submodule for gps drivers
The gps drivers are now in a platform-independent submodule because they
are used in QGroundControl as well
2016-04-25 09:48:24 +02:00
Nicolae Rosia fff535857d drivers/gps: fix segfault when parsing arguments
running gps command without parameters results in segfault
due to illegal access to unallocated memory

Signed-off-by: Nicolae Rosia <nicolae.rosia@gmail.com>
2016-04-20 21:50:10 +02:00
James Goppert 967e4dd127 Modified cmake to use STACK_MAX and STACK_MAIN 2016-04-14 13:36:36 -04:00
Julian Oes 441d7aacbb gps: fix build, unused var ERROR 2016-04-11 13:51:04 +02:00
Beat Küng dde7907da4 ubx gps driver: configure both USB & UART interfaces 2016-04-11 11:23:01 +02:00
Beat Küng 8c64e2b801 gps driver: fix 'gps stop' error 2016-04-11 11:23:01 +02:00
Beat Küng 0c966dc923 fix mtk+ubx gps driver: use px4_clock_settime instead of clock_settime 2016-04-11 11:23:01 +02:00
Beat Küng c495266c79 ubx gps driver: remove variable length member 'raw' from union
this causes only problems and is not supported by ANSI C. error caused:
fatal error: field '_buf' with variable sized type 'ubx_buf_t' not at the end of a struct or class is a GNU extension
2016-04-11 11:23:01 +02:00
Beat Küng 215aa78f30 fix coding style for gps drivers 2016-04-11 11:23:01 +02:00
Beat Küng 851340eccc ubx gps driver: add error handling when write(...) fails
this also fixes a compiler warning
2016-04-11 11:23:01 +02:00
Beat Küng 95c7534712 ashtech gps: fix compiler warning in configure
the warning is:
error: ignoring return value of ‘ssize_t write(int, const void*, size_t)’, declared with attribute warn_unused_result [-Werror=unused-result]
2016-04-11 11:23:01 +02:00
Beat Küng 21f403e12b gps: make sure the gps module compiles for POSIX & add it to the posix_sitl_default cmake
- Note that the simulator still uses gpssim by default
- now the gps module can be used in the SITL. this makes it possible to test
  the real gps HW under POSIX
  additional steps needed to use it:
  - in the rcS_jmavsim_iris, make sure to start the gps instead of gpssim:
    gps start -d /dev/ttyACM0 -s
  - disable the mavlink serial connection in simulator_mavlink.cpp,
    openUart(PIXHAWK_DEVICE, 115200);
- this also fixes a memory leak in the gps module
2016-04-11 11:23:01 +02:00
Beat Küng 77cda58d73 fix ashtech gps: _satellite_info can be nullptr 2016-04-11 11:23:01 +02:00
Lorenz Meier b71123f4fe GPS: Use shorter perf names 2016-03-28 13:02:29 +02:00