Commit Graph

160 Commits

Author SHA1 Message Date
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
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 755569ac12 HDOP / VDOP correctly reporting 2016-02-25 13:45:34 +01:00
Lorenz Meier fdff16c3cb Always enable nav sol 2016-02-25 13:45:34 +01:00
Lorenz Meier 8fcf24f23f GPS driver UBX: Support hdop and vdop 2016-02-25 13:45:34 +01:00
Lorenz Meier 6f484c04bd Ashtech GPS driver: Fix code style 2016-02-25 13:45:34 +01:00
Lorenz Meier 56c95dc9c8 GPS driver: Populate HDOP / VDOP fields 2016-02-25 13:45:34 +01:00
Julian Oes 1524ff7f80 HMC5883: added wrapper for DriverFramework 2016-02-19 16:59:47 +01:00
Lorenz Meier 9cccc0ec76 GPS: Do initial zero value publication to avoid corner cases 2016-01-25 09:30:45 +01:00
Artem Sabadyr a284b77c7b gps advertise fix 2016-01-24 15:03:41 +01:00
Stefan b97b3c68cb Update mtk.h
spelling mistakes
2016-01-11 08:37:43 +01:00
Stefan 9d7b3bbff1 update ublox Protocol Specification links
update ublox Protocol Specification links
2016-01-11 08:37:43 +01:00
Amir c23562c9ed GPS: Add height above the ellipsoid info
Modification of the GPS message, add height above the ellipsoid info.
2015-11-27 22:28:41 +01:00
Lorenz Meier ff6676ef8c GPS: Fixed code style 2015-10-19 13:16:11 +02:00
Lorenz Meier 5b23345b0f GPS: Remove excessive stack allocation 2015-10-10 22:23:34 +02:00
Lorenz Meier fa5071b3c5 Remove module.mk files to prevent confusion of adopters upgrading 2015-10-06 11:23:20 +02:00
Lorenz Meier dd697d1343 GPS: Remove unused header 2015-09-16 18:12:05 +02:00
James Goppert 1d6b31d196 Switch to cmake build system. 2015-09-07 20:37:45 -04:00
Lorenz Meier 8cd6f3529c Merge pull request #2555 from PX4/uorb_msg
uORB message support
2015-08-12 17:31:44 +02:00
Mark Charlebois a589d15c52 Refactored debug() and log() in CDev
These functions used vprintf which is not available on all platforms.
They also do not enable line and file debug output.

Changed to macros that preserve the output format.  Uses new macro that
can be used to implement per object, runtime selectable logging

Signed-off-by: Mark Charlebois <charlebm@gmail.com>
2015-08-11 12:07:06 -07:00
Lorenz Meier ffb9e87161 Converted satellite_info topic to generated topic 2015-08-10 15:34:08 +02:00
Lorenz Meier 0c6b8f2501 GPS: silence verbose boot messages 2015-08-01 17:15:52 +02:00
Lorenz Meier 0d37de005b Merged beta to master 2015-07-17 23:42:23 +02:00
Lorenz Meier d9f0baf4dc GPS driver: Only let the driver publish reports if it really found a GPS receiver 2015-07-17 21:19:32 +02:00
Lorenz Meier c62ae87c69 Merge release_v1.0.0 into master 2015-05-28 18:08:31 -07:00
Lorenz Meier 46920cfd27 GPS driver: Obey non-publish flag in all modes 2015-05-28 17:41:26 -07:00
Mark Charlebois 1ca05aaa64 orb_advert_t changed to void * and checks changed to nullptr
The existing orb_advert_t use thoughout the code sometimes tries
to treat it as a file descriptor and there are checks for < 0
and ::close calls on orb_advert_t types which is an invalid use
of an object pointer, which is what orb_advert_t really is.

Initially I had changed the -1 initializations to 0 but it was
suggested that this should be nullptr. That was a good recommendation
but the definition of orb_advert_t had to change to void * because
you cannot initialize a uintptr_t as nullptr.

Signed-off-by: Mark Charlebois <charlebm@gmail.com>
2015-05-27 14:42:49 -07:00
Mark Charlebois a734fc96d1 extensive orb_advert_t fixes
The calls to orb_advertise were being mishandled throughout the code.
There were ::close() calls on memory pointers, there were checks
against < 0 when it is a pointer to a object and values larger than
0x7ffffffff are valid. Some places orb_advert_t variables were
being initialized as 0 other places as -1.

The orb_advert_t type was changed to uintptr_t so the pointer value
would not be wrapped as a negative number. This was causing a failure
on ARM.

Tests for < 0 were changed to == 0 since a null pointer is the valid
representation for error, or uninitialized.

Signed-off-by: Mark Charlebois <charlebm@gmail.com>
2015-05-27 14:41:33 -07:00