From 953a8a7c306dc5bd274558ac3d6970f68a555150 Mon Sep 17 00:00:00 2001
From: joanvallve <jvallve@iri.upc.edu>
Date: Fri, 17 Jul 2020 12:45:16 +0200
Subject: [PATCH] WIP

---
 src/ephemeris.c |  3 +++
 src/rtklib.h    |  1 +
 src/sbas.c      | 39 +++++++++++++++++++++++++++++++++++++++
 3 files changed, 43 insertions(+)

diff --git a/src/ephemeris.c b/src/ephemeris.c
index 404d6d1..d7e722a 100644
--- a/src/ephemeris.c
+++ b/src/ephemeris.c
@@ -759,7 +759,10 @@ extern void satposs(gtime_t teph, const obsd_t *obs, int n, const nav_t *nav,
 
     trace(3,"satposs : teph=%s n=%d ephopt=%d\n",time_str(teph,3),n,ephopt);
     if (ephopt==2)
+    {
         printf("====satposs : teph=%s n=%d ephopt=%d\n",time_str(teph,3),n,ephopt);
+        print_sbassat(&nav->sbssat);
+    }
     
     for (i=0;i<n&&i<2*MAXOBS;i++) {
         for (j=0;j<6;j++) rs [j+i*6]=0.0;
diff --git a/src/rtklib.h b/src/rtklib.h
index d7bf3a1..e28fdac 100644
--- a/src/rtklib.h
+++ b/src/rtklib.h
@@ -1821,6 +1821,7 @@ EXPORT int sbsioncorr(gtime_t time, const nav_t *nav, const double *pos,
                       const double *azel, double *delay, double *var);
 EXPORT double sbstropcorr(gtime_t time, const double *pos, const double *azel,
                           double *var);
+EXPORT void print_sbassat(const sbssat_t *sbssat);
 
 /* options functions ---------------------------------------------------------*/
 EXPORT opt_t *searchopt(const char *name, const opt_t *opts);
diff --git a/src/sbas.c b/src/sbas.c
index 2223a3b..812d8ec 100644
--- a/src/sbas.c
+++ b/src/sbas.c
@@ -123,6 +123,45 @@ static double degfcorr(int ai)
     };
     return 0<ai&&ai<=15?degf[ai]:0.0058;
 }
+/* print sbsfcorr_t (JV) -------------------------------------------------------*/
+static void print_sbsfcorr(const sbsfcorr_t *sbsfcorr)
+{
+    printf("\t\tiodf: %d, udre: %d, [%f, %f, %f, %d]\n",
+           sbsfcorr->iodf,
+           sbsfcorr->udre,
+           sbsfcorr->prc,
+           sbsfcorr->rrc,
+           sbsfcorr->dt,
+           sbsfcorr->ai);
+}
+/* print sbslcorr_t (JV) -------------------------------------------------------*/
+static void print_sbslcorr(const sbslcorr_t *sbslcorr)
+{
+    printf("\t\tiode: %d, [[%f, %f, %f], [%f, %f, %f], %f, %f]\n",
+           sbslcorr->iode,
+           sbslcorr->dpos[0],sbslcorr->dpos[1],sbslcorr->dpos[2],
+           sbslcorr->dvel[0],sbslcorr->dvel[1],sbslcorr->dvel[2],
+           sbslcorr->daf0,sbslcorr->daf1);
+}
+/* print sbssatp_t (JV) -------------------------------------------------------*/
+static void print_sbssatp(const sbssatp_t *sbssatp)
+{
+    printf("\tsat: %d\n", sbssatp->sat); /* satellite number */
+    printf("\tfcorr:\n");
+    print_sbsfcorr(&sbssatp->fcorr);/* fast correction */
+    printf("\tlcorr:\n");
+    print_sbslcorr(&sbssatp->lcorr);/* long term correction */
+}
+/* print sbssat_t (JV) -------------------------------------------------------*/
+extern void print_sbassat(const sbssat_t *sbssat)
+{
+    printf("iodp: %d\n", sbssat->iodp); /* IODP (issue of date mask) */
+    printf("tlat: %d\n", sbssat->tlat); /* system latency (s) */
+    printf("nsat: %d\n", sbssat->nsat); /* number of satellites */
+    printf("sat:\n");
+    for (int i = 0; i < sbssat->nsat; i++)
+        print_sbssatp(&sbssat->sat[i]);
+}
 /* decode type 1: prn masks --------------------------------------------------*/
 static int decode_sbstype1(const sbsmsg_t *msg, sbssat_t *sbssat)
 {
-- 
GitLab