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>