📄 173
字号:
PMVXG_S_PORTCONF, PMVXG_D_DOPS, /* control port output block Label */ 0, /* clear current output control list (0=no) */! 0); /* add/delete sentences from list (0=delete) */ /* must be null */! /* sentence output rate (sec) */ /* precision for position output */ /* nmea version for cga & gll output */ /* pass-through control */--- 591,603 ---- * "007" Control Port Configuration * Stop outputting "022" DOPs */! mx4200_send(peer, "%s,%03d,%03d,%d,%d,,%d,,,", pmvxg, PMVXG_S_PORTCONF, PMVXG_D_DOPS, /* control port output block Label */ 0, /* clear current output control list (0=no) */! 2, /* add/delete sentences from list (2=delete) */ /* must be null */! 0); /* sentence output rate (sec) */ /* precision for position output */ /* nmea version for cga & gll output */ /* pass-through control */****************** 598,606 **** PMVXG_S_PORTCONF, PMVXG_D_PHV, /* control port output block Label */ 0, /* clear current output control list (0=no) */! 0); /* add/delete sentences from list (0=delete) */ /* must be null */! /* sentence output rate (sec) */ /* precision for position output */ /* nmea version for cga & gll output */ /* pass-through control */--- 610,618 ---- PMVXG_S_PORTCONF, PMVXG_D_PHV, /* control port output block Label */ 0, /* clear current output control list (0=no) */! 2, /* add/delete sentences from list (2=delete) */ /* must be null */! 0); /* sentence output rate (sec) */ /* precision for position output */ /* nmea version for cga & gll output */ /* pass-through control */****************** 700,706 **** if ((pp->sloppyclockflag & CLK_FLAG2) != (up->sloppyclockflag & CLK_FLAG2)) { up->sloppyclockflag = pp->sloppyclockflag;! mx4200_debug(peer, "mx4200_receive: mode switch: reset receiver\n", cp); mx4200_config(peer); return; }--- 712,719 ---- if ((pp->sloppyclockflag & CLK_FLAG2) != (up->sloppyclockflag & CLK_FLAG2)) { up->sloppyclockflag = pp->sloppyclockflag;! mx4200_debug(peer,! "mx4200_receive: mode switch: reset receiver\n"); mx4200_config(peer); return; }****************** 768,774 **** */ sentence_type = 0; if ((cp = strchr(pp->a_lastcode, ',')) == NULL) {! mx4200_debug(peer, "mx4200_receive: no sentence\n", cp); refclock_report(peer, CEVNT_BADREPLY); return; }--- 781,787 ---- */ sentence_type = 0; if ((cp = strchr(pp->a_lastcode, ',')) == NULL) {! mx4200_debug(peer, "mx4200_receive: no sentence\n"); refclock_report(peer, CEVNT_BADREPLY); return; }****************** 793,799 **** mx4200_debug(peer, "mx4200_receive: status: %s\n", cp); }! mx4200_debug(peer, "mx4200_receive: reset receiver\n", cp); mx4200_config(peer); return; }--- 806,812 ---- mx4200_debug(peer, "mx4200_receive: status: %s\n", cp); }! mx4200_debug(peer, "mx4200_receive: reset receiver\n"); mx4200_config(peer); return; }****************** 1283,1292 **** /* * Check for insane date! * (Certainly can't be a year before this code was last altered!) */ if (monthday > 31 || month > 12 ||! monthday < 1 || month < 1 || year < 1997) { mx4200_debug(peer, "mx4200_parse_t: bad date (%4d-%02d-%02d)\n", year, month, monthday);--- 1296,1305 ---- /* * Check for insane date! * (Certainly can't be any year before this code was last altered!) */ if (monthday > 31 || month > 12 ||! monthday < 1 || month < 1 || year < YEAR_RIGHT_NOW) { mx4200_debug(peer, "mx4200_parse_t: bad date (%4d-%02d-%02d)\n", year, month, monthday);****************** 1706,1712 **** /* Update values */! if (ndop <= 0.0 || ndop<= 0.0 || vdop <= 0.0) return ("nonpositive dop"); up->edop = edop; up->ndop = ndop;--- 1719,1725 ---- /* Update values */! if (edop <= 0.0 || ndop <= 0.0 || vdop <= 0.0) return ("nonpositive dop"); up->edop = edop; up->ndop = ndop;****************** 1911,1918 **** if (ioctl(fdpps, CIOGETEV, (caddr_t)&up->ppsev) < 0) { /* XXX Actually, if this fails, we're pretty much screwed */ mx4200_debug(peer, "mx4200_pps: CIOGETEV: ");! if (errno < sys_nerr)! mx4200_debug(peer, "%s", sys_errlist[errno]); mx4200_debug(peer, "\n"); refclock_report(peer, CEVNT_FAULT); return(1);--- 1924,1930 ---- if (ioctl(fdpps, CIOGETEV, (caddr_t)&up->ppsev) < 0) { /* XXX Actually, if this fails, we're pretty much screwed */ mx4200_debug(peer, "mx4200_pps: CIOGETEV: ");! mx4200_debug(peer, "%s", strerror(errno)); mx4200_debug(peer, "\n"); refclock_report(peer, CEVNT_FAULT); return(1);------ util/tickadj.c*** /tmp/,RCSt1a14528 Fri Jan 23 21:54:08 1998--- tickadj.c Fri Jan 23 18:16:21 1998****************** 205,210 ****--- 205,213 ---- break; case 't': writetick = atoi(ntp_optarg);+ #ifdef TICK_NANO+ writetick *= 1000;+ #endif if (writetick <= 0) { (void) fprintf(stderr,------ config.h.in*** /tmp/,RCSt1a14538 Fri Jan 23 21:54:20 1998--- config.h.in Fri Jan 23 19:51:41 1998****************** 143,148 ****--- 143,151 ---- /* Magnavox MX4200 GPS receiver */ #undef MX4200 + /* Rockwell Jupiter based GPS receiver */+ #undef JUPITER+ /* NMEA GPS receiver */ #undef NMEA ****************** 528,533 ****--- 531,539 ---- /* Define if you have the strchr function. */ #undef HAVE_STRCHR + /* Define if you have the strerror function. */+ #undef HAVE_STRERROR+ /* Define if you have the sysconf function. */ #undef HAVE_SYSCONF ****************** 581,586 ****--- 587,595 ---- /* Define if you have the <netinet/ip.h> header file. */ #undef HAVE_NETINET_IP_H+ + /* Define if you have the <poll.h> header file. */+ #undef HAVE_POLL_H /* Define if you have the <sched.h> header file. */ #undef HAVE_SCHED_H------ configure.in*** /tmp/,RCSt1a14558 Fri Jan 23 21:54:34 1998--- configure.in Fri Jan 23 19:51:19 1998****************** 5,10 ****--- 5,11 ---- AC_CANONICAL_SYSTEM AC_DEFINE_UNQUOTED(STR_SYSTEM, "$target") AM_CONFIG_HEADER(config.h)+ AC_REPLACE_FUNCS(strerror) AC_ARG_PROGRAM dnl we need to check for cross compile tools for vxWorks here****************** 159,164 ****--- 160,166 ---- AC_CHECK_HEADERS(termio.h termios.h unistd.h utmp.h utmpx.h) AC_CHECK_HEADERS(net/if.h netinet/in.h netinet/ip.h sys/bsd_audioirig.h) AC_CHECK_HEADERS(sys/chudefs.h sys/clkdefs.h sys/file.h)+ AC_CHECK_HEADERS(poll.h) case "$target" in *-*-sunos4*) ;; *) AC_CHECK_HEADERS(sys/ioctl.h)****************** 1297,1302 ****--- 1299,1323 ---- if test "$ntp_ok" = "yes"; then ntp_refclock=yes AC_DEFINE(MX4200)+ fi+ AC_MSG_RESULT($ntp_ok)+ case "$ntp_ok$target" in+ yes*-*-ultrix*) AC_WARN(*** But the expected answer is... no ***) ;;+ esac+ + # Not Ultrix+ AC_MSG_CHECKING(Rockwell Jupiter GPS receiver)+ AC_ARG_ENABLE(JUPITER, [ --enable-JUPITER s Rockwell Jupiter GPS receiver],+ [ntp_ok=$enableval],+ [case "$ac_cv_var_ppsclock" in+ yes) ntp_ok=$ntp_eac+ ;;+ *) ntp_ok=no+ ;;+ esac])+ if test "$ntp_ok" = "yes"; then+ ntp_refclock=yes+ AC_DEFINE(JUPITER) fi AC_MSG_RESULT($ntp_ok) case "$ntp_ok$target" in------ acconfig.h*** /tmp/,RCSt1a14573 Fri Jan 23 21:54:44 1998--- acconfig.h Fri Jan 23 18:36:45 1998****************** 88,93 ****--- 88,96 ---- /* Magnavox MX4200 GPS receiver */ #undef MX4200 + /* Rockwell Jupiter based GPS receiver */+ #undef JUPITER+ /* NMEA GPS receiver */ #undef NMEA ------------------------------ misc files (a sharchive)#! /bin/sh# This is a shell archive, meaning:# 1. Remove everything above the #! /bin/sh line.# 2. Save the resulting text in a file.# 3. Execute the file with /bin/sh (not csh) to create the files:# fixautomakedepsmagic# jupiter.h# refclock_jupiter.c# strerror.c# This archive created: Fri Jan 23 21:50:28 1998export PATH; PATH=/bin:$PATHecho shar: extracting "'fixautomakedepsmagic'" '(402 characters)'if test -f 'fixautomakedepsmagic'then echo shar: will not over-write existing file "'fixautomakedepsmagic'"elsesed 's/^X//' << \SHAR_EOF > 'fixautomakedepsmagic'X#!/bin/shXXprog=`basename $0`XXXt=/tmp/$prog.$$XXtrap 'rm -f ${t} ; exit 1' 1 3 15XXwhile [ $# -gt 0 ]; doX f=$1X shiftX sed -e '/^DEPS_MAGIC :=/,/^-include \$/s/^/#/' $f > $tX c="diff $f $t"X echo $cX $cX tstatus=$?X if [ $tstatus = 0 ]; thenX echo "$prog":" $f not modified"X elif [ ! -w $f ]; thenX echo "$prog":" $f not not writable"X elseX c="cp $t $f"X echo $cX $cX fiX rm -f $tXdoneSHAR_EOFif test 402 -ne "`wc -c < 'fixautomakedepsmagic'`"then echo shar: error transmitting "'fixautomakedepsmagic'" '(should have been 402 characters)'fichmod +x 'fixautomakedepsmagic'fi # end of overwriting checkecho shar: extracting "'jupiter.h'" '(9321 characters)'if test -f 'jupiter.h'then echo shar: will not over-write existing file "'jupiter.h'"elsesed 's/^X//' << \SHAR_EOF > 'jupiter.h'X/* @(#) $Header$ (LBL) */XX/*X * Rockwell Jupiter GPS receiver definitionsX *X * This is all based on the "Zodiac GPS Receiver Family Designer'sX * Guide" (dated 12/96)X */XX#define JUPITER_SYNC 0x81ff /* sync word (book says 0xff81 !?!?) */X#define JUPITER_ALL 0xffff /* disable all output messages */XX/* Output messages (sent by the Jupiter board) */X#define JUPITER_O_GPOS 1000 /* geodetic position status */X#define JUPITER_O_EPOS 1001 /* ECEF position status */X#define JUPITER_O_CHAN 1002 /* channel summary */X#define JUPITER_O_VIS 1003 /* visible satellites */X#define JUPITER_O_DGPS 1005 /* differential GPS status */X#define JUPITER_O_MEAS 1007 /* channel measurement */X#define JUPITER_O_ID 1011 /* receiver id */X#define JUPITER_O_USER 1012 /* user-settings output */X#define JUPITER_O_TEST 1100 /* built-in test results */X#define JUPITER_O_MARK 1102 /* measurement time mark */X#define JUPITER_O_PULSE 1108 /* UTC time mark pulse output */X#define JUPITER_O_PORT 1130 /* serial port com parameters in use */X#define JUPITER_O_EUP 1135 /* EEPROM update */X#define JUPITER_O_ESTAT 1136 /* EEPROM status */XX/* Input messages (sent to the Jupiter board) */X#define JUPITER_I_PVTINIT 1200 /* geodetic position and velocity */X#define JUPITER_I_USER 1210 /* user-defined datum */X#define JUPITER_I_MAPSEL 1211 /* map datum select */X#define JUPITER_I_ELEV 1212 /* satellite elevation mask control */X#define JUPITER_I_CAND 1213 /* satellite candidate select */X#define JUPITER_I_DGPS 1214 /* differential GPS control */X#define JUPITER_I_COLD 1216 /* cold start control */X#define JUPITER_I_VALID 1217 /* solution validity criteria */X#define JUPITER_I_ALT 1219 /* user-entered altitude input */X#define JUPITER_I_PLAT 1220 /* application platform control */X#define JUPITER_I_NAV 1221 /* nav configuration */X#define JUPITER_I_TEST 1300 /* preform built-in test command */X#define JUPITER_I_RESTART 1303 /* restart command */X#define JUPITER_I_PORT 1330 /* serial port com parameters */X#define JUPITER_I_PROTO 1331 /* message protocol control */X#define JUPITER_I_RDGPS 1351 /* raw DGPS RTCM SC-104 data */XXstruct jheader {X u_short sync; /* (JUPITER_SYNC) */X u_short id; /* message id */X u_short len; /* number of data short wordss (w/o cksum) */X u_char reqid; /* JUPITER_REQID_MASK bits available as id */X u_char flags; /* flags */X u_short hsum; /* header cksum */X};XX#define JUPITER_REQID_MASK 0x3f /* bits available as id */X#define JUPITER_FLAG_NAK 0x01 /* negative acknowledgement */X#define JUPITER_FLAG_ACK 0x02 /* acknowledgement */X#define JUPITER_FLAG_REQUEST 0x04 /* request ACK or NAK */X#define JUPITER_FLAG_QUERY 0x08 /* request one shot output message */X#define JUPITER_FLAG_LOG 0x20 /* request periodic output message */X#define JUPITER_FLAG_CONN 0x40 /* enable periodic message */X#define JUPITER_FLAG_DISC 0x80 /* disable periodic message */XX#define JUPITER_H_FLAG_BITS \X "\020\1NAK\2ACK\3REQUEST\4QUERY\5MBZ\6LOG\7CONN\10DISC"XX/* Log request messages (data payload when using JUPITER_FLAG_LOG) */Xstruct jrequest {X u_short trigger; /* if 0, trigger on time trigger onX update (e.g. new almanac) */X u_short interval; /* frequency in seconds */X u_short offset; /* offset into minute */X u_short dsum; /* checksum */X};XX/* JUPITER_O_GPOS (1000) */Xstruct jgpos {X u_short stime[2]; /* set time (10 ms ticks) */X u_short seq; /* sequence number */X u_short sseq; /* sat measurement sequence number */X u_short navval; /* navigation soltuion validity */X u_short navtype; /* navigation solution type */X u_short nmeas; /* # of measurements used in solution */X u_short polar; /* if 1 then polar navigation */X u_short gweek; /* GPS week number */X u_short sweek[2]; /* GPS seconds into week */X u_short nsweek[2]; /* GPS nanoseconds into second */X u_short utcday; /* 1 to 31 */X u_short utcmon; /* 1 to 12 */X u_short utcyear; /* 1980 to 2079 */X u_short utchour; /* 0 to 23 */X u_short utcmin; /* 0 to 59 */X u_short utcsec; /* 0 to 59 */X u_short utcnsec[2]; /* 0 to 999999999 */X u_short lat[2]; /* latitude (radians) */X u_short lon[2]; /* longitude (radians) */X u_short height[2]; /* height (meters) */X u_short gsep; /* geoidal separation */X u_short speed[2]; /* ground speed (meters/sec) */X u_short course; /* true course (radians) */X u_short mvar;X u_short climb;X u_short mapd;X u_short herr[2];X u_short verr[2];X u_short terr[2];X u_short hverr;X u_short bias[2];X u_short biassd[2];X u_short drift[2];
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -