Replied: Sat, 02 Aug 1997 23:30:21 -0400
Replied: "SHINJO Takeshi <snj@tomcat.lit.hachioji.tokyo.jp> mills@udel.edu, stenn"
Received: from copland.udel.edu by huey.udel.edu id aa02916; 19 Jul 97 6:05 EDT
Received: from mds00.iij.ad.jp (root@mds00.iij.ad.jp [202.232.2.17]) by copland.udel.edu (8.8.5/8.7.3) with ESMTP id GAA11658 for <mills@udel.edu>; Sat, 19 Jul 1997 06:05:23 -0400 (EDT)
Received: from tomcat.lit.hachioji.tokyo.jp (h098.n320.iijnet.or.jp [203.180.110.98]) by mds00.iij.ad.jp (8.7.5+2.6Wbeta6/3.4W4-mds1.0) with ESMTP id TAA18177 for <mills@udel.edu>; Sat, 19 Jul 1997 19:05:16 +0900 (JST)
Received: (from snj@localhost)
	by tomcat.lit.hachioji.tokyo.jp (8.8.5+2.7Wbeta5/3.6Wbeta3-970618) id TAA26483;
	Sat, 19 Jul 1997 19:05:14 +0900 (JST)
Date: Sat, 19 Jul 1997 19:05:14 +0900 (JST)
From: SHINJO Takeshi <snj@tomcat.lit.hachioji.tokyo.jp>
Message-Id: <199707191005.TAA26483@tomcat.lit.hachioji.tokyo.jp>
To: mills@udel.edu
Subject: Worked xntpd by DeLORME Tripmake GPS

Hello David,

I'm one of xntpd user in Japan, and electonic engineer.

Last year,I was visited U.S. and paches DeLORME Tripmate with Street Atls 4.0.
But,it can't use in Japan. So I'm looking forward application for Tripmate GPS.
Last month, I was found xntp3-5.90-export.tar.gz ,and Try cording for Tripmate
GPS driver. It's worked so fine! So,I'll send you patch.
Patchs PRECISION parameter are very very vague.  Because I don't know well Tripmate specification.

----
Takeshi SHINJO <snj@lit.hachioji.tokyo.jp>


----
Working System:
OS : FreeBSD2.2.2-RELEASE
CPU: i486DX4
GPS: DeLORME Tripmate (Use RS232C interface)
xntpd: based on xntp3-5.90-export
modified driver: refclock_nmea.c

Patchs:
---------- Start here ------------------
*** config.h.orig	Wed Jul  2 21:42:14 1997
--- config.h	Wed Jul  2 20:51:06 1997
***************
*** 652,653 ****
--- 652,658 ----
  /* Define if you have the socket library (-lsocket).  */
  /* #undef HAVE_LIBSOCKET */
+ 
+ /* TRIPMATE GPS receiver */
+ #define NMEA 1
+ #define TRIPMATE 1
+ 
*** xntpd/refclock_nmea.c.orig	Sat Apr  5 16:01:53 1997
--- xntpd/refclock_nmea.c	Wed Jul  2 22:02:27 1997
***************
*** 3,6 ****
--- 3,8 ----
   *		Michael Petry Jun 20, 1994
   *		 based on refclock_heath.c
+  * 	added by Takeshi Shinjo for DeLORME Tripmate
+  *		Jun 2, 1997 in Japan
   */
  #ifdef HAVE_CONFIG_H
***************
*** 36,40 ****
--- 38,52 ----
  #define	DEVICE		"/dev/gps%d"	/* name of radio device */
  #define	SPEED232	B4800	/* uart speed (4800 bps) */
+ 
+ #ifdef TRIPMATE
+ 
+ #define	PRECISION	(-20)	/* precision assumed (about 1 us) */
+ 
+ #else
+ 
  #define	PRECISION	(-9)	/* precision assumed (about 2 ms) */
+ 
+ #endif /* TRIPMATE */
+ 
  #define	DCD_PRECISION	(-20)	/* precision assumed (about 1 us) */
  #define	REFID		"GPS\0"	/* reference id */
*************** nmea_start(unit, peer)
*** 146,155 ****
--- 158,187 ----
  	 * Initialize miscellaneous variables
  	 */
+ #ifdef TRIPMATE
+ 
+ 	peer->precision = PRECISION;
+ 
+ #else
+ 
  	peer->precision = DCD_PRECISION;
+ 
+ #endif /* TRIPMATE */
  	pp->clockdesc = DESCRIPTION;
  	memcpy((char *)&pp->refid, REFID, 4);
  	up->pollcnt = 2;
+ #ifdef TRIPMATE
+ 
+ 	gps_send(pp->io.fd,"$IIGPQ,ASTRAL*73\r\n", peer);
+ 	gps_send(pp->io.fd,"$PRWIILOG,ZCH,V,,,\r\n", peer);
+ 	gps_send(pp->io.fd,"$PRWIILOG,GSA,V,,,\r\n", peer);
+ 	gps_send(pp->io.fd,"$PRWIILOG,GGA,V,,,\r\n", peer);
+ 	gps_send(pp->io.fd,"$PRWIILOG,GSA,V,,,\r\n", peer);
+ 
+ #else
+ 
  	gps_send(pp->io.fd,"$PMOTG,RMC,0000*1D\r\n", peer);
  
+ #endif /* TRIPMATE */
+ 
  	return (1);
  }
*************** nmea_receive(rbufp)
*** 220,224 ****
--- 252,266 ----
  	 */
  #define GPRMC	0
+ 
+ #ifdef TRIPMATE
+ 
+ #define ASTRAL	1
+ 
+ #else
+ 
  #define GPXXX	1
+ 
+ #endif /* TRIPMATE */
+ 
  	cp = pp->lastcode;
  	pp->leap = 0;
*************** nmea_receive(rbufp)
*** 227,232 ****
--- 269,284 ----
  		cmdtype=GPRMC;
  		}
+ 
+ #ifdef TRIPMATE
+ 
+ 	else if(strncmp(cp,"ASTRAL",6)==0) {
+ 		cmdtype=ASTRAL;
+ 
+ #else
+ 
  	else if(strncmp(cp,"$GPXXX",6)==0) {
  		cmdtype=GPXXX;
+ 
+ #endif /* TRIPMATE */
  		}
  	else
*************** nmea_receive(rbufp)
*** 256,260 ****
--- 308,320 ----
  		    }
  		break;
+ #ifdef TRIPMATE
+ 
+ 	case ASTRAL:
+ 
+ #else
+ 
  	case GPXXX:
+ 
+ #endif /* TRIPMATE */
  		return;
  	default:
*************** nmea_poll(unit, peer)
*** 369,373 ****
--- 429,445 ----
  	 */
  
+ #ifdef TRIPMATE
+ 
+ 	gps_send(pp->io.fd,"$IIGPQ,ASTRAL*73\r\n", peer);
+ 	gps_send(pp->io.fd,"$PRWIILOG,ZCH,V,,,\r\n", peer);
+ 	gps_send(pp->io.fd,"$PRWIILOG,GSA,V,,,\r\n", peer);
+ 	gps_send(pp->io.fd,"$PRWIILOG,GGA,V,,,\r\n", peer);
+ 	gps_send(pp->io.fd,"$PRWIILOG,GSA,V,,,\r\n", peer);
+ 
+ #else
+ 
  	gps_send(pp->io.fd,"$PMOTG,RMC,0000*1D\r\n", peer);
+ 
+ #endif /* TRIPMATE */
  }

------------- End patch ------------------------------------  

