summaryrefslogtreecommitdiff
path: root/recipes-navigation/gpsd/gpsd-3.18.1/leap2017Aug31.patch
diff options
context:
space:
mode:
Diffstat (limited to 'recipes-navigation/gpsd/gpsd-3.18.1/leap2017Aug31.patch')
-rw-r--r--recipes-navigation/gpsd/gpsd-3.18.1/leap2017Aug31.patch167
1 files changed, 0 insertions, 167 deletions
diff --git a/recipes-navigation/gpsd/gpsd-3.18.1/leap2017Aug31.patch b/recipes-navigation/gpsd/gpsd-3.18.1/leap2017Aug31.patch
deleted file mode 100644
index 658b757..0000000
--- a/recipes-navigation/gpsd/gpsd-3.18.1/leap2017Aug31.patch
+++ /dev/null
@@ -1,167 +0,0 @@
-diff -Naur old/driver_ubx.c new/driver_ubx.c
---- old/driver_ubx.c 2017-08-01 10:56:05.757282801 -0500
-+++ new/driver_ubx.c 2017-08-01 10:53:49.785286827 -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_dop(struct gps_device_t *session,
-@@ -237,6 +260,96 @@
- 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);
-+int secondsperday=24*60*60;
-+lsChange = 1; /* JAK Forward one second */
-+ 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);
-+timeToLsEvent += 212*secondsperday; /* JAK Jul 31 Leap second for test */
-+ gpsd_log(&session->context->errout, LOG_DATA,
-+ "UBX_NAV_TIMELS2: source_of_leapsecond_change=%u:%s "
-+ "leapSecondChage=%d timeToLsEvent=%d\n",
-+ src_of_ls_change,src,lsChange,timeToLsEvent); /* JAK */
-+ 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
- */
-@@ -523,13 +636,22 @@
- case UBX_NAV_EKFSTATUS:
- gpsd_log(&session->context->errout, LOG_DATA, "UBX_NAV_EKFSTATUS\n");
- 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_RXM_RAW:
- gpsd_log(&session->context->errout, LOG_DATA, "UBX_RXM_RAW\n");
- break;
- case UBX_RXM_SFRB:
-+ gpsd_log(&session->context->errout, LOG_DATA, "UBX_RXM_SFRB\n");
- mask = ubx_msg_sfrb(session, &buf[UBX_PREFIX_LEN]);
- break;
-+ case UBX_RXM_SFRBX:
-+ gpsd_log(&session->context->errout, LOG_DATA, "UBX_RXM_SFRBX\n");
-+ break;
- case UBX_RXM_SVSI:
- gpsd_log(&session->context->errout, LOG_PROG, "UBX_RXM_SVSI\n");
- break;
-@@ -955,6 +1077,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 */
-+#endif /* UBLOXTIMELS_ENABLE */
-+ (void)ubx_write(session, 0x06u, 0x01, msg, 3);
- msg[0] = 0x01; /* class */
- msg[1] = 0x30; /* msg id = NAV-SVINFO */
- msg[2] = 0x0a; /* rate */