Annotation of embedaddon/ntp/ports/winnt/ntpd/refclock_trimbledc.h, revision 1.1
1.1 ! misho 1: /*
! 2: * refclock_trimbledc - clock driver for the Trimble Data Collector compatible
! 3: * GPS receivers (4000, 4700, 4800, 7400, ...)
! 4: *
! 5: * Greg Brackley (greg@trimble.co.nz)
! 6: */
! 7:
! 8: #ifndef _REFCLOCK_TRIMBLEDC_H
! 9: #define _REFCLOCK_TRIMBLEDC_H
! 10:
! 11: #ifdef HAVE_CONFIG_H
! 12: #include "config.h"
! 13: #endif
! 14:
! 15: #if defined HAVE_SYS_MODEM_H
! 16: #include <sys/modem.h>
! 17: #define TIOCMSET MCSETA
! 18: #define TIOCMGET MCGETA
! 19: #define TIOCM_RTS MRTS
! 20: #endif
! 21:
! 22: #ifdef HAVE_TERMIOS_H
! 23: #include <termios.h>
! 24: #endif
! 25:
! 26: #ifdef HAVE_SYS_IOCTL_H
! 27: #include <sys/ioctl.h>
! 28: #endif
! 29:
! 30: #include "ntpd.h"
! 31: #include "ntp_io.h"
! 32: #include "ntp_control.h"
! 33: #include "ntp_refclock.h"
! 34: #include "ntp_unixtime.h"
! 35: #include "ntp_stdlib.h"
! 36:
! 37: /*
! 38: * GPS Definitions
! 39: */
! 40: #define DESCRIPTION "Trimble Data Collector GPS" /* Long name */
! 41: #define PRECISION (-20) /* precision assumed (about 1 us) */
! 42: #define REFID "GPS\0" /* reference ID */
! 43: #define NSAMPLES 1
! 44: #define NSKEEP 1
! 45: #define TRIMBLEDC_MINPOLL 4
! 46: #define TRIMBLEDC_MAXPOLL 4
! 47:
! 48: /*
! 49: * I/O Definitions
! 50: */
! 51: #if !defined SYS_WINNT
! 52: #define DEVICE "/dev/trimbledc%d" /* device name and unit */
! 53: #else
! 54: #define DEVICE "\\\\.\\COM%d" /* device name and unit */
! 55: #endif
! 56: #define SPEED232 B9600 /* uart speed (9600 baud) */
! 57:
! 58: #define POLL_AVG 10 /* number of samples to average code delay */
! 59: #define DC_IO_BUFSIZE 512 /* IO buffer */
! 60: #define DC_MAXLEN 260 /* maximum length TSIP packet */
! 61:
! 62: /*
! 63: * Leap-Insert and Leap-Delete are encoded as follows:
! 64: * PALISADE_UTC_TIME set and PALISADE_LEAP_PENDING set: INSERT leap
! 65: * PALISADE_UTC_TIME clear and PALISADE_LEAP_PENDING set: DELETE leap
! 66: */
! 67:
! 68: #define PALISADE_LEAP_WARNING 0x04 /* GPS Leap Warning (see ICD-200) */
! 69: #define PALISADE_LEAP_PENDING 0x02 /* Leap Pending (24 hours) */
! 70: #define PALISADE_UTC_TIME 0x01 /* UTC time available */
! 71:
! 72: #define mb(_X_) (up->rpt_buf[(_X_ + 1)]) /* shortcut for buffer access */
! 73:
! 74: /* Conversion Definitions */
! 75: #define GPS_PI (3.1415926535898)
! 76: #define R2D (180.0/GPS_PI)
! 77:
! 78: typedef enum TrimbleDcParseState {
! 79:
! 80: TrimbleParseStateAck,
! 81: TrimbleParseStateNak,
! 82: TrimbleParseStateData,
! 83:
! 84: } TrimbleDcParseState;
! 85:
! 86: struct trimbledc_unit {
! 87: int unit; /* NTP refclock unit number */
! 88: int polled; /* flag to detect noreplies */
! 89: char leap_status; /* leap second flag */
! 90: TrimbleDcParseState rpt_status;
! 91: short rpt_cnt;
! 92: char rpt_buf[DC_MAXLEN];
! 93: char io_buf[DC_IO_BUFSIZE];
! 94: short io_ptr[2]; /* 0 = head, 1 = tail */
! 95: };
! 96:
! 97: #endif /* _REFCLOCK_TRIMBLEDC_H */
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>