summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEric S. Raymond <esr@thyrsus.com>2005-07-12 19:57:31 +0000
committerEric S. Raymond <esr@thyrsus.com>2005-07-12 19:57:31 +0000
commit50fc825f363fe6b5b4115f2235bcb397794b2f18 (patch)
treef30865b8afd84c8a9aeb268d150d0138ce763257
parent8f44ee89c8eeed7e1f1c0801932e598d5b0ec5eb (diff)
downloadgpsd-50fc825f363fe6b5b4115f2235bcb397794b2f18.tar.gz
Added output_mag, conditioned out, just in case we ever want to issue
RTCM streams.
-rw-r--r--rtcmdecode.c33
1 files changed, 33 insertions, 0 deletions
diff --git a/rtcmdecode.c b/rtcmdecode.c
index 75b9df60..24c22744 100644
--- a/rtcmdecode.c
+++ b/rtcmdecode.c
@@ -237,8 +237,41 @@ void rtcm_init(/*@out@*/struct rtcm_ctx * ctx)
}
/*@ +usereleased +compdef @*/
+#ifdef __UNUSED __
+void rtcm_output_mag(RTCMWORD * ip)
+/* ship an RTCM message to standard output in Magnavox format */
+{
+ static RTCMWORD w = 0;
+ int len;
+ static uint sqnum = 0;
+
+ len = ((struct rtcm_msghdr *) ip)->w2.frmlen + 2;
+ ((struct rtcm_msghdr *) ip)->w2.sqnum = sqnum++;
+ sqnum &= 0x7;
+
+ while (len-- > 0) {
+ w <<= 30;
+ w |= *ip++ & W_DATA_MASK;
+
+ w |= rtcmparity(w);
+
+ /* weird-assed inversion */
+ if (w & P_30_MASK)
+ w ^= W_DATA_MASK;
+
+ /* msb first */
+ putchar(MAG_TAG_DATA | reverse_bits[(w >> 24) & 0x3f]);
+ putchar(MAG_TAG_DATA | reverse_bits[(w >> 18) & 0x3f]);
+ putchar(MAG_TAG_DATA | reverse_bits[(w >> 12) & 0x3f]);
+ putchar(MAG_TAG_DATA | reverse_bits[(w >> 6) & 0x3f]);
+ putchar(MAG_TAG_DATA | reverse_bits[(w) & 0x3f]);
+ }
+}
+#endif /* UNUSED */
+
#ifdef TESTMAIN
void rtcm_print_msg(struct rtcm_msghdr *msghdr)
+/* dump the contents of a parsed RTCM104 message */
{
int len = (int)msghdr->w2.frmlen;
double zcount = msghdr->w2.zcnt * ZCOUNT_SCALE;