refclock_trimbledc.h [plain text]
#ifndef _REFCLOCK_TRIMBLEDC_H
#define _REFCLOCK_TRIMBLEDC_H
#ifdef HAVE_CONFIG_H
#include "config.h"
#endif
#if defined HAVE_SYS_MODEM_H
#include <sys/modem.h>
#define TIOCMSET MCSETA
#define TIOCMGET MCGETA
#define TIOCM_RTS MRTS
#endif
#ifdef HAVE_TERMIOS_H
#include <termios.h>
#endif
#ifdef HAVE_SYS_IOCTL_H
#include <sys/ioctl.h>
#endif
#include "ntpd.h"
#include "ntp_io.h"
#include "ntp_control.h"
#include "ntp_refclock.h"
#include "ntp_unixtime.h"
#include "ntp_stdlib.h"
#define DESCRIPTION "Trimble Data Collector GPS"
#define PRECISION (-20)
#define REFID "GPS\0"
#define NSAMPLES 1
#define NSKEEP 1
#define TRIMBLEDC_MINPOLL 4
#define TRIMBLEDC_MAXPOLL 4
#if !defined SYS_WINNT
#define DEVICE "/dev/trimbledc%d"
#else
#define DEVICE "\\\\.\\COM%d"
#endif
#define SPEED232 B9600
#define POLL_AVG 10
#define DC_IO_BUFSIZE 512
#define DC_MAXLEN 260
#define PALISADE_LEAP_WARNING 0x04
#define PALISADE_LEAP_PENDING 0x02
#define PALISADE_UTC_TIME 0x01
#define mb(_X_) (up->rpt_buf[(_X_ + 1)])
#define GPS_PI (3.1415926535898)
#define R2D (180.0/GPS_PI)
typedef enum TrimbleDcParseState {
TrimbleParseStateAck,
TrimbleParseStateNak,
TrimbleParseStateData,
} TrimbleDcParseState;
struct trimbledc_unit {
int unit;
int polled;
char leap_status;
TrimbleDcParseState rpt_status;
short rpt_cnt;
char rpt_buf[DC_MAXLEN];
char io_buf[DC_IO_BUFSIZE];
short io_ptr[2];
};
#endif