Commit Graph

107 Commits

Author SHA1 Message Date
Hidenori
96a5baa12b Navio: fix style 2016-10-06 09:00:09 +02:00
Hidenori
56ef984529 Navio2: modify for SPI-connected GPS and fix bug in GPIO driver 2016-10-06 09:00:09 +02:00
Artem Sabadyr
74b2780874 GPS driver: use FIONREAD on NuttX only 2016-10-02 11:19:55 +02:00
Artem Sabadyr
4c04b7bb53 gps read optimization 2016-10-02 11:19:47 +02:00
huanglilong
6f7b78821a fix fake gps bugs (#5285) 2016-08-09 21:24:11 +02:00
Lorenz Meier
aae3a37983 GPS: Do not use nonblocking access 2016-08-09 15:59:34 +02:00
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
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
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
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
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
Julian Oes
441d7aacbb gps: fix build, unused var ERROR 2016-04-11 13:51:04 +02:00
Beat Küng
8c64e2b801 gps driver: fix 'gps stop' error 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
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
Lorenz Meier
b71123f4fe GPS: Use shorter perf names 2016-03-28 13:02:29 +02:00
Lorenz Meier
b114575139 GPS: Fix comment 2016-03-13 15:40:39 +01:00
Lorenz Meier
f7640f02ad GPS driver: Removed debugging noise 2016-03-12 17:17:47 +01:00
Julian Oes
1cebfde840 gps: make the driver compile and run on QURT 2016-03-06 18:02:50 +01:00
Lorenz Meier
8fcf24f23f GPS driver UBX: Support hdop and vdop 2016-02-25 13:45:34 +01:00
Lorenz Meier
9cccc0ec76 GPS: Do initial zero value publication to avoid corner cases 2016-01-25 09:30:45 +01:00