diff --git a/sensors/common/gps/receiver.c b/sensors/common/gps/receiver.c index 3fc365c7d..90e2a47a7 100644 --- a/sensors/common/gps/receiver.c +++ b/sensors/common/gps/receiver.c @@ -176,7 +176,7 @@ int gps_updateEvt(nmea_t *message, sensor_event_t *evtGps, float posStdev, float evtGps->gps.utc = message->msg.gga.utc * 1000000; gettime(&evtGps->timestamp, NULL); - break; + return 1; case nmea_gsa: evtGps->gps.hdop = (unsigned int)(message->msg.gsa.hdop * 1e2); @@ -184,10 +184,10 @@ int gps_updateEvt(nmea_t *message, sensor_event_t *evtGps, float posStdev, float evtGps->gps.eph = evtGps->gps.hdop * posStdev; evtGps->gps.epv = evtGps->gps.vdop * posStdev; - break; + return 0; case nmea_rmc: - break; + return 0; case nmea_vtg: evtGps->gps.heading = message->msg.vtg.track * DEG2MILIRAD; /* degrees -> milliradians */ @@ -197,13 +197,11 @@ int gps_updateEvt(nmea_t *message, sensor_event_t *evtGps, float posStdev, float /* This is not 100% correct error estimation but the only we have */ evtGps->gps.evel = evtGps->gps.hdop * velStdev; - break; + return 0; default: return 0; } - - return 1; } diff --git a/sensors/gps/ubx.c b/sensors/gps/ubx.c index 2dca03f8d..6ee3017ec 100644 --- a/sensors/gps/ubx.c +++ b/sensors/gps/ubx.c @@ -40,7 +40,7 @@ #define UBX_VEL_ACCURACY 0.0849f #define REC_BUF_SZ 1024 -#define INBOX_SIZE 3 +#define INBOX_SIZE 8 #ifndef UBX_DEFAULT_BAUDRATE #define UBX_DEFAULT_BAUDRATE B9600 @@ -215,6 +215,8 @@ static int ubx_alloc(sensor_info_t *info, const char *args) write(ctx->filedes, UBX_PREMADE_FIX_10HZ, sizeof(UBX_PREMADE_FIX_10HZ)); usleep(100 * 1000); + write(ctx->filedes, UBX_PREMADE_UART1_OUT_NMEA_ONLY_115200, sizeof(UBX_PREMADE_UART1_OUT_NMEA_ONLY_115200)); + info->ctx = ctx; return EOK; diff --git a/sensors/gps/ubx.h b/sensors/gps/ubx.h index f93211efa..da4fd3f96 100644 --- a/sensors/gps/ubx.h +++ b/sensors/gps/ubx.h @@ -35,4 +35,7 @@ /* Premade command that sets baudrate to 115200 */ #define UBX_PREMADE_BAUD_115200 "\xb5\x62\x06\x00\x14\x00\x01\x00\x00\x00\xd0\x08\x00\x00\x00\xc2\x01\x00\x07\x00\x07\x00\x00\x00\x00\x00\xc4\x96\xb5\x62\x06\x00\x01" +/* UART1, 115200, 8N1, input: UBX/NMEA/RTCM, output: NMEA only */ +#define UBX_PREMADE_UART1_OUT_NMEA_ONLY_115200 "\xb5\x62\x06\x00\x14\x00\x01\x00\x00\x00\xd0\x08\x00\x00\x00\xc2\x01\x00\x07\x00\x02\x00\x00\x00\x00\x00\xbf\x78" + #endif