[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [gpsd-dev] [PATCH] subframe decoding fixes
From: |
Alexey Illarionov |
Subject: |
Re: [gpsd-dev] [PATCH] subframe decoding fixes |
Date: |
Wed, 09 May 2012 01:39:16 +0400 |
User-agent: |
Mozilla/5.0 (X11; FreeBSD i386; rv:5.0) Gecko/20110727 Thunderbird/5.0 |
Hi,
On 04.02.2012 00:00, Alexey Illarionov wrote:
The attached patch fixes decoding of several subframe fields:
Yet another typos.
diff --git a/subframe.c b/subframe.c
index 87eda3c..a670a27 100644
--- a/subframe.c
+++ b/subframe.c
@@ -668,10 +668,10 @@ gps_mask_t gpsd_interpret_subframe(struct gps_device_t
*session,
sv = -1;
/* current leap seconds */
- subp->sub4_18.alpha0 = (int8_t)((words[2] >> 16) & 0x0000FF);
+ subp->sub4_18.alpha0 = (int8_t)((words[2] >> 8) & 0x0000FF);
subp->sub4_18.d_alpha0 = pow(2.0, -30) *
(int)subp->sub4_18.alpha0;
- subp->sub4_18.alpha1 = (int8_t)((words[2] >> 8) & 0x0000FF);
- subp->sub4_18.d_alpha1 = pow(2.0, -27) *
(int)subp->sub4_18.alpha2;
+ subp->sub4_18.alpha1 = (int8_t)((words[2] >> 0) & 0x0000FF);
+ subp->sub4_18.d_alpha1 = pow(2.0, -27) *
(int)subp->sub4_18.alpha1;
subp->sub4_18.alpha2 = (int8_t)((words[3] >> 16) & 0x0000FF);
subp->sub4_18.d_alpha2 = pow(2.0, -24) *
(int)subp->sub4_18.alpha2;
subp->sub4_18.alpha3 = (int8_t)((words[3] >> 8) & 0x0000FF);
@@ -680,7 +680,7 @@ gps_mask_t gpsd_interpret_subframe(struct gps_device_t
*session,
subp->sub4_18.beta0 = (int8_t)((words[3] >> 0) & 0x0000FF);
subp->sub4_18.d_beta0 = pow(2.0, 11) * (int)subp->sub4_18.beta0;
subp->sub4_18.beta1 = (int8_t)((words[4] >> 16) & 0x0000FF);
- subp->sub4_18.d_beta1 = pow(2.0, 14) * (int)subp->sub4_18.beta2;
+ subp->sub4_18.d_beta1 = pow(2.0, 14) * (int)subp->sub4_18.beta1;
subp->sub4_18.beta2 = (int8_t)((words[4] >> 8) & 0x0000FF);
subp->sub4_18.d_beta2 = pow(2.0, 16) * (int)subp->sub4_18.beta2;
subp->sub4_18.beta3 = (int8_t)((words[4] >> 0) & 0x0000FF);
@@ -691,13 +691,13 @@ gps_mask_t gpsd_interpret_subframe(struct gps_device_t
*session,
subp->sub4_18.d_A1 = pow(2.0,-50) * subp->sub4_18.A1;
subp->sub4_18.A0 = (int32_t)((words[6] >> 0) & 0xFFFFFF);
subp->sub4_18.A0 <<= 8;
- subp->sub4_18.A0 |= ((words[7] >> 16) & 0x00FFFF);
+ subp->sub4_18.A0 |= ((words[7] >> 16) & 0x0000FF);
subp->sub4_18.d_A0 = pow(2.0,-30) * subp->sub4_18.A0;
/* careful WN is 10 bits, but WNt is 8 bits! */
/* WNt (Week Number of LSF) */
subp->sub4_18.tot = ((words[7] >> 8) & 0x0000FF);
- subp->sub4_18.d_tot = pow(2.0,12) * subp->sub4_18.d_tot;
+ subp->sub4_18.d_tot = pow(2.0,12) * subp->sub4_18.tot;
subp->sub4_18.WNt = ((words[7] >> 0) & 0x0000FF);
subp->sub4_18.leap = (int8_t)((words[8] >> 16) & 0x0000FF);
subp->sub4_18.WNlsf = ((words[8] >> 8) & 0x0000FF);
- Re: [gpsd-dev] [PATCH] subframe decoding fixes,
Alexey Illarionov <=