summaryrefslogtreecommitdiff
path: root/recipes-navigation/gpsd/gpsd-3.18.1/0006-ubxtimelps.patch
diff options
context:
space:
mode:
Diffstat (limited to 'recipes-navigation/gpsd/gpsd-3.18.1/0006-ubxtimelps.patch')
-rw-r--r--recipes-navigation/gpsd/gpsd-3.18.1/0006-ubxtimelps.patch192
1 files changed, 0 insertions, 192 deletions
diff --git a/recipes-navigation/gpsd/gpsd-3.18.1/0006-ubxtimelps.patch b/recipes-navigation/gpsd/gpsd-3.18.1/0006-ubxtimelps.patch
deleted file mode 100644
index 030001c..0000000
--- a/recipes-navigation/gpsd/gpsd-3.18.1/0006-ubxtimelps.patch
+++ /dev/null
@@ -1,192 +0,0 @@
-diff -Naru gpsd-3.18.1.orig/driver_ubx.c gpsd-3.18.1/driver_ubx.c
---- gpsd-3.18.1.orig/driver_ubx.c 2018-10-26 16:01:08.010358178 -0500
-+++ gpsd-3.18.1/driver_ubx.c 2018-10-29 17:30:18.354526227 -0500
-@@ -57,6 +57,29 @@
- #define UBX_CFG_LEN 20
- #define outProtoMask 14
-
-+#ifdef UBLOXTIMELS_ENABLE
-+/* UBX-NAV-TIMELS support */
-+static char *srcOfCurrLs[] = {
-+ "firmware",
-+ "GPS GLONASS difference",
-+ "GPS",
-+ "SBAS",
-+ "BeiDou",
-+ "Galileo",
-+ "Aided data",
-+ "Configured"
-+};
-+static char *srcOfLsChange[] = {
-+ "No Source",
-+ "Undefined",
-+ "GPS",
-+ "SBAS",
-+ "BeiDou",
-+ "Galileo",
-+ "GLONOSS",
-+};
-+#endif /* UBLOXTIMELS_ENABLE */
-+
- static gps_mask_t ubx_parse(struct gps_device_t *session, unsigned char *buf,
- size_t len);
- static gps_mask_t ubx_msg_nav_eoe(struct gps_device_t *session,
-@@ -397,6 +420,90 @@
- return mask;
- }
-
-+#ifdef UBLOXTIMELS_ENABLE
-+/**
-+ * Navigation time to leap second
-+ *
-+ * Sets leap_notify if leap second is < 23 hours away.
-+ */
-+static void
-+ubx_msg_nav_timels(struct gps_device_t *session, unsigned char *buf,
-+ size_t data_len)
-+{
-+ int version;
-+ unsigned int flags;
-+ int valid_curr_ls;
-+ int valid_time_to_ls_event;
-+
-+ if (data_len != 24) {
-+ gpsd_log(&session->context->errout, LOG_WARN,
-+ "UBX-NAV-TIMELS: unexpected length %d, expecting 24\n",
-+ data_len);
-+ return;
-+ }
-+ version = getsb(buf,4);
-+ /* Only version 0 is defined so far. */
-+ flags = (unsigned int)getub(buf, 23);
-+ gpsd_log(&session->context->errout, LOG_DATA,
-+ "UBX-NAV-TIMELS: flags 0x%x message version %d\n",flags, version);
-+ valid_curr_ls = flags & UBX_TIMELS_VALID_CURR_LS;
-+ valid_time_to_ls_event = flags & UBX_TIMELS_VALID_TIME_LS_EVT;
-+ if(valid_curr_ls) {
-+ unsigned int src_of_curr_ls = getub(buf,8);
-+ int curr_ls = getsb(buf,9);
-+ char *src = "Unknown";
-+
-+ if(src_of_curr_ls < (sizeof srcOfCurrLs/(sizeof srcOfCurrLs[0])))
-+ src = srcOfCurrLs[src_of_curr_ls];
-+
-+ gpsd_log(&session->context->errout, LOG_DATA,
-+ "UBX-NAV-TIMELS: source_of_current_leapsecond=%u:%s curr_ls=%d\n",
-+ src_of_curr_ls,src,curr_ls);
-+ session->context->leap_seconds = curr_ls;
-+ session->context->valid |= LEAP_SECOND_VALID;
-+ } /* Valid current leap second */
-+ if(valid_time_to_ls_event) {
-+ char *src="Unknown";
-+ unsigned int src_of_ls_change;
-+ unsigned short dateOfLSGpsWn, dateOfLSGpsDn;
-+ int lsChange = getsb(buf,11);
-+ int timeToLsEvent = getles32(buf,12);
-+ src_of_ls_change = getub(buf,10);
-+ if(src_of_ls_change < (sizeof srcOfLsChange/(sizeof srcOfLsChange[0])))
-+ src = srcOfLsChange[src_of_ls_change];
-+ dateOfLSGpsWn = getles16(buf,16);
-+ dateOfLSGpsDn = getles16(buf,18);
-+ gpsd_log(&session->context->errout, LOG_DATA,
-+ "UBX_NAV_TIMELS: source_of_leapsecond_change=%u:%s "
-+ "leapSecondChage=%d timeToLsEvent=%d\n",
-+ src_of_ls_change,src,lsChange,timeToLsEvent);
-+ gpsd_log(&session->context->errout, LOG_DATA,
-+ "UBX_NAV_TIMELS: dateOfLSGpsWn=%d dateOfLSGpsDn=%d\n",
-+ dateOfLSGpsWn,dateOfLSGpsDn);
-+ if(timeToLsEvent < 60*60*23 && timeToLsEvent > 0) {
-+ if(lsChange == 0)
-+ session->context->leap_notify = LEAP_NOWARNING;
-+ else if (lsChange == 1)
-+ session->context->leap_notify = LEAP_ADDSECOND;
-+ else if (lsChange == -1)
-+ session->context->leap_notify = LEAP_DELSECOND;
-+ } else
-+ session->context->leap_notify = LEAP_NOWARNING;
-+
-+ if (session->context->leap_notify == LEAP_ADDSECOND)
-+ gpsd_log(&session->context->errout,LOG_INF,
-+ "UBX_NAV_TIMELS: Add leap second today\n");
-+ else if (session->context->leap_notify == LEAP_DELSECOND)
-+ gpsd_log(&session->context->errout,LOG_INF,
-+ "UBX_NAV_TIMELS: Remove leap second today\n");
-+
-+ gpsd_log(&session->context->errout, LOG_DATA,
-+ "UBX_NAV_TIMELS: leaving: leap_notify=%d\n",
-+ session->context->leap_notify);
-+ }
-+}
-+#endif /* UBLOXTIMELS_ENABLE */
-+
- /**
- * Geodetic position solution message
- */
-@@ -1129,6 +1236,9 @@
- break;
- case UBX_NAV_TIMELS:
- gpsd_log(&session->context->errout, LOG_DATA, "UBX_NAV_TIMELS\n");
-+#ifdef UBLOXTIMELS_ENABLE
-+ ubx_msg_nav_timels(session, &buf[UBX_PREFIX_LEN],data_len);
-+#endif // UBLOXTIMELS_ENABLE
- break;
- case UBX_NAV_TIMEUTC:
- gpsd_log(&session->context->errout, LOG_DATA, "UBX_NAV_TIMEUTC\n");
-@@ -1172,6 +1282,7 @@
- gpsd_log(&session->context->errout, LOG_DATA, "UBX_RXM_RTCM\n");
- break;
- case UBX_RXM_SFRB:
-+ gpsd_log(&session->context->errout, LOG_DATA, "UBX_RXM_SFRB\n");
- mask = ubx_rxm_sfrb(session, &buf[UBX_PREFIX_LEN]);
- break;
- case UBX_RXM_SFRBX:
-@@ -1474,6 +1585,12 @@
- msg[1] = 0x20; /* msg id = UBX_NAV_TIMEGPS */
- msg[2] = 0x00; /* rate */
- (void)ubx_write(session, 0x06u, 0x01, msg, 3);
-+#ifdef UBLOXTIMELS_ENABLE
-+ msg[0] = 0x01; /* class */
-+ msg[1] = 0x26; /* msg id = UBX_NAV_TIMELS */
-+ msg[2] = 0xff; /* rate */
-+#endif /* UBLOXTIMELS_ENABLE */
-+ (void)ubx_write(session, 0x06u, 0x01, msg, 3);
- msg[0] = 0x01; /* class */
- msg[1] = 0x30; /* msg id = NAV-SVINFO */
- msg[2] = 0x00; /* rate */
-@@ -1558,6 +1675,12 @@
- msg[1] = 0x20; /* msg id = UBX_NAV_TIMEGPS */
- msg[2] = 0x01; /* rate */
- (void)ubx_write(session, 0x06u, 0x01, msg, 3);
-+#ifdef UBLOXTIMELS_ENABLE
-+ msg[0] = 0x01; /* class */
-+ msg[1] = 0x26; /* msg id = UBX_NAV_TIMELS */
-+ msg[2] = 0xff; /* rate */
-+ (void)ubx_write(session, 0x06u, 0x01, msg, 3);
-+#endif /* UBLOXTIMELS_ENABLE */
- msg[0] = 0x01; /* class */
- msg[1] = 0x30; /* msg id = NAV-SVINFO */
- msg[2] = 0x0a; /* rate */
-diff -Naru gpsd-3.18.1.orig/driver_ubx.h gpsd-3.18.1/driver_ubx.h
---- gpsd-3.18.1.orig/driver_ubx.h 2018-10-26 16:01:08.010358178 -0500
-+++ gpsd-3.18.1/driver_ubx.h 2018-10-26 16:26:09.114313738 -0500
-@@ -210,6 +210,9 @@
- #define UBX_SOL_VALID_WEEK 0x04
- #define UBX_SOL_VALID_TIME 0x08
-
-+#define UBX_TIMELS_VALID_CURR_LS 0x01
-+#define UBX_TIMELS_VALID_TIME_LS_EVT 0x01
-+
- #define UBX_TIMEGPS_VALID_TIME 0x01
- #define UBX_TIMEGPS_VALID_WEEK 0x02
- #define UBX_TIMEGPS_VALID_LEAP_SECOND 0x04
-diff -Naru gpsd-3.18.1.orig/SConstruct gpsd-3.18.1/SConstruct
---- gpsd-3.18.1.orig/SConstruct 2018-10-26 15:53:30.174371732 -0500
-+++ gpsd-3.18.1/SConstruct 2018-10-26 15:55:33.726368074 -0500
-@@ -178,6 +178,7 @@
- ("tripmate", True, "DeLorme TripMate support"),
- ("tsip", True, "Trimble TSIP support"),
- ("ublox", True, "u-blox Protocol support"),
-+ ("ubloxtimels", False, "u-blox UBX-NAV-TIMELS support (leap second)"),
- # Non-GPS protocols
- ("aivdm", True, "AIVDM support"),
- ("gpsclock", True, "GPSClock support"),