Deleted Added
full compact
refclock_parse.c (82498) refclock_parse.c (132451)
1/*
2 * /src/NTP/ntp-4/ntpd/refclock_parse.c,v 4.36 1999/11/28 17:18:20 kardel RELEASE_19991128_A
3 *
4 * refclock_parse.c,v 4.36 1999/11/28 17:18:20 kardel RELEASE_19991128_A
5 *
6 * generic reference clock driver for receivers
7 *
8 * optionally make use of a STREAMS module for input processing where

--- 788 unchanged lines hidden (view full) ---

797 void *cl_data; /* local data area for "poll" mechanism */
798 double cl_rootdelay; /* rootdelay */
799 double cl_basedelay; /* current offset by which the RS232
800 time code is delayed from the actual time */
801 const char *cl_id; /* ID code */
802 const char *cl_description; /* device name */
803 const char *cl_format; /* fixed format */
804 u_char cl_type; /* clock type (ntp control) */
1/*
2 * /src/NTP/ntp-4/ntpd/refclock_parse.c,v 4.36 1999/11/28 17:18:20 kardel RELEASE_19991128_A
3 *
4 * refclock_parse.c,v 4.36 1999/11/28 17:18:20 kardel RELEASE_19991128_A
5 *
6 * generic reference clock driver for receivers
7 *
8 * optionally make use of a STREAMS module for input processing where

--- 788 unchanged lines hidden (view full) ---

797 void *cl_data; /* local data area for "poll" mechanism */
798 double cl_rootdelay; /* rootdelay */
799 double cl_basedelay; /* current offset by which the RS232
800 time code is delayed from the actual time */
801 const char *cl_id; /* ID code */
802 const char *cl_description; /* device name */
803 const char *cl_format; /* fixed format */
804 u_char cl_type; /* clock type (ntp control) */
805 u_long cl_maxunsync; /* time to trust oscillator after loosing synch */
805 u_long cl_maxunsync; /* time to trust oscillator after losing synch */
806 u_long cl_speed; /* terminal input & output baudrate */
807 u_long cl_cflag; /* terminal control flags */
808 u_long cl_iflag; /* terminal input flags */
809 u_long cl_oflag; /* terminal output flags */
810 u_long cl_lflag; /* terminal local flags */
811 u_long cl_samples; /* samples for median filter */
812 u_long cl_keep; /* samples for median filter to keep */
813} parse_clockinfo[] =

--- 362 unchanged lines hidden (view full) ---

1176 0, /* rootdelay */
1177 11.0 /* bits */ / 9600, /* current offset by which the RS232
1178 time code is delayed from the actual time */
1179 DCF_ID, /* ID code */
1180 "WHARTON 400A Series clock", /* device name */
1181 "WHARTON 400A Series clock Output Format 1", /* fixed format */
1182 /* Must match a format-name in a libparse/clk_xxx.c file */
1183 DCF_TYPE, /* clock type (ntp control) */
806 u_long cl_speed; /* terminal input & output baudrate */
807 u_long cl_cflag; /* terminal control flags */
808 u_long cl_iflag; /* terminal input flags */
809 u_long cl_oflag; /* terminal output flags */
810 u_long cl_lflag; /* terminal local flags */
811 u_long cl_samples; /* samples for median filter */
812 u_long cl_keep; /* samples for median filter to keep */
813} parse_clockinfo[] =

--- 362 unchanged lines hidden (view full) ---

1176 0, /* rootdelay */
1177 11.0 /* bits */ / 9600, /* current offset by which the RS232
1178 time code is delayed from the actual time */
1179 DCF_ID, /* ID code */
1180 "WHARTON 400A Series clock", /* device name */
1181 "WHARTON 400A Series clock Output Format 1", /* fixed format */
1182 /* Must match a format-name in a libparse/clk_xxx.c file */
1183 DCF_TYPE, /* clock type (ntp control) */
1184 (1*60*60), /* time to trust oscillator after loosing synch */
1184 (1*60*60), /* time to trust oscillator after losing synch */
1185 B9600, /* terminal input & output baudrate */
1186 (CS8|CREAD|PARENB|CLOCAL|HUPCL),/* terminal control flags */
1187 0, /* terminal input flags */
1188 0, /* terminal output flags */
1189 0, /* terminal local flags */
1190 5, /* samples for median filter */
1191 3, /* samples for median filter to keep */
1192 },

--- 42 unchanged lines hidden (view full) ---

1235 VARITEXT_LFLAG,
1236 VARITEXT_SAMPLES,
1237 VARITEXT_KEEP
1238 }
1239};
1240
1241static int ncltypes = sizeof(parse_clockinfo) / sizeof(struct parse_clockinfo);
1242
1185 B9600, /* terminal input & output baudrate */
1186 (CS8|CREAD|PARENB|CLOCAL|HUPCL),/* terminal control flags */
1187 0, /* terminal input flags */
1188 0, /* terminal output flags */
1189 0, /* terminal local flags */
1190 5, /* samples for median filter */
1191 3, /* samples for median filter to keep */
1192 },

--- 42 unchanged lines hidden (view full) ---

1235 VARITEXT_LFLAG,
1236 VARITEXT_SAMPLES,
1237 VARITEXT_KEEP
1238 }
1239};
1240
1241static int ncltypes = sizeof(parse_clockinfo) / sizeof(struct parse_clockinfo);
1242
1243#define CLK_REALTYPE(x) ((int)(((x)->ttlmax) & 0x7F))
1243#define CLK_REALTYPE(x) ((int)(((x)->ttl) & 0x7F))
1244#define CLK_TYPE(x) ((CLK_REALTYPE(x) >= ncltypes) ? ~0 : CLK_REALTYPE(x))
1245#define CLK_UNIT(x) ((int)REFCLOCKUNIT(&(x)->srcadr))
1244#define CLK_TYPE(x) ((CLK_REALTYPE(x) >= ncltypes) ? ~0 : CLK_REALTYPE(x))
1245#define CLK_UNIT(x) ((int)REFCLOCKUNIT(&(x)->srcadr))
1246#define CLK_PPS(x) (((x)->ttlmax) & 0x80)
1246#define CLK_PPS(x) (((x)->ttl) & 0x80)
1247
1248/*
1249 * Other constant stuff
1250 */
1251#define PARSEHSREFID 0x7f7f08ff /* 127.127.8.255 refid for hi strata */
1252
1253#define PARSESTATISTICS (60*60) /* output state statistics every hour */
1254

--- 1835 unchanged lines hidden (view full) ---

3090 CLK_UNIT(parse->peer));
3091 }
3092
3093 if (event == CEVNT_FAULT)
3094 {
3095 NLOG(NLOG_CLOCKEVENT) /* conditional if clause for conditional syslog */
3096 ERR(ERR_BADEVENT)
3097 msyslog(LOG_ERR,
1247
1248/*
1249 * Other constant stuff
1250 */
1251#define PARSEHSREFID 0x7f7f08ff /* 127.127.8.255 refid for hi strata */
1252
1253#define PARSESTATISTICS (60*60) /* output state statistics every hour */
1254

--- 1835 unchanged lines hidden (view full) ---

3090 CLK_UNIT(parse->peer));
3091 }
3092
3093 if (event == CEVNT_FAULT)
3094 {
3095 NLOG(NLOG_CLOCKEVENT) /* conditional if clause for conditional syslog */
3096 ERR(ERR_BADEVENT)
3097 msyslog(LOG_ERR,
3098 "clock %s fault '%s' (0x%02x)", refnumtoa(parse->peer->srcadr.sin_addr.s_addr), ceventstr(event),
3098 "clock %s fault '%s' (0x%02x)", refnumtoa(&parse->peer->srcadr), ceventstr(event),
3099 (u_int)event);
3100 }
3101 else
3102 {
3103 NLOG(NLOG_CLOCKEVENT) /* conditional if clause for conditional syslog */
3104 if (event == CEVNT_NOMINAL || list_err(parse, ERR_BADEVENT))
3105 msyslog(LOG_INFO,
3099 (u_int)event);
3100 }
3101 else
3102 {
3103 NLOG(NLOG_CLOCKEVENT) /* conditional if clause for conditional syslog */
3104 if (event == CEVNT_NOMINAL || list_err(parse, ERR_BADEVENT))
3105 msyslog(LOG_INFO,
3106 "clock %s event '%s' (0x%02x)", refnumtoa(parse->peer->srcadr.sin_addr.s_addr), ceventstr(event),
3106 "clock %s event '%s' (0x%02x)", refnumtoa(&parse->peer->srcadr), ceventstr(event),
3107 (u_int)event);
3108 }
3109
3110 report_event(EVNT_PEERCLOCK, parse->peer);
3111 report_event(EVNT_CLOCKEXCPT, parse->peer);
3112 }
3113}
3114

--- 608 unchanged lines hidden (view full) ---

3723 break;
3724
3725 case GPS_SYNTH:
3726 break;
3727
3728 case GPS_ANT_INFO:
3729 {
3730 ANT_INFO antinfo;
3107 (u_int)event);
3108 }
3109
3110 report_event(EVNT_PEERCLOCK, parse->peer);
3111 report_event(EVNT_CLOCKEXCPT, parse->peer);
3112 }
3113}
3114

--- 608 unchanged lines hidden (view full) ---

3723 break;
3724
3725 case GPS_SYNTH:
3726 break;
3727
3728 case GPS_ANT_INFO:
3729 {
3730 ANT_INFO antinfo;
3731 char buffer[512];
3732 char *p;
3731 u_char buffer[512];
3732 u_char *p;
3733
3734 get_mbg_antinfo(&bufp, &antinfo);
3733
3734 get_mbg_antinfo(&bufp, &antinfo);
3735 sprintf((char *)buffer, "meinberg_antenna_status=\"");
3735 sprintf(buffer, "meinberg_antenna_status=\"");
3736 p = buffer + strlen(buffer);
3737
3738 switch (antinfo.status)
3739 {
3740 case ANT_INVALID:
3741 strcat(p, "<OK>");
3742 p += strlen(p);
3743 break;
3744
3745 case ANT_DISCONN:
3746 strcat(p, "DISCONNECTED since ");
3747 NLOG(NLOG_CLOCKSTATUS)
3748 ERR(ERR_BADSTATUS)
3749 msyslog(LOG_ERR,"PARSE receiver #%d: ANTENNA FAILURE: %s",
3750 CLK_UNIT(parse->peer), p);
3751
3752 p += strlen(p);
3736 p = buffer + strlen(buffer);
3737
3738 switch (antinfo.status)
3739 {
3740 case ANT_INVALID:
3741 strcat(p, "<OK>");
3742 p += strlen(p);
3743 break;
3744
3745 case ANT_DISCONN:
3746 strcat(p, "DISCONNECTED since ");
3747 NLOG(NLOG_CLOCKSTATUS)
3748 ERR(ERR_BADSTATUS)
3749 msyslog(LOG_ERR,"PARSE receiver #%d: ANTENNA FAILURE: %s",
3750 CLK_UNIT(parse->peer), p);
3751
3752 p += strlen(p);
3753 mbg_tm_str((unsigned char **)&p, &antinfo.tm_disconn);
3753 mbg_tm_str(&p, &antinfo.tm_disconn);
3754 *p = '\0';
3755 break;
3756
3757 case ANT_RECONN:
3758 strcat(p, "RECONNECTED on ");
3759 p += strlen(p);
3754 *p = '\0';
3755 break;
3756
3757 case ANT_RECONN:
3758 strcat(p, "RECONNECTED on ");
3759 p += strlen(p);
3760 mbg_tm_str((unsigned char **)&p, &antinfo.tm_reconn);
3760 mbg_tm_str(&p, &antinfo.tm_reconn);
3761 sprintf(p, ", reconnect clockoffset %c%ld.%07ld s, disconnect time ",
3762 (antinfo.delta_t < 0) ? '-' : '+',
3763 ABS(antinfo.delta_t) / 10000,
3764 ABS(antinfo.delta_t) % 10000);
3765 p += strlen(p);
3761 sprintf(p, ", reconnect clockoffset %c%ld.%07ld s, disconnect time ",
3762 (antinfo.delta_t < 0) ? '-' : '+',
3763 ABS(antinfo.delta_t) / 10000,
3764 ABS(antinfo.delta_t) % 10000);
3765 p += strlen(p);
3766 mbg_tm_str((unsigned char **)&p, &antinfo.tm_disconn);
3766 mbg_tm_str(&p, &antinfo.tm_disconn);
3767 *p = '\0';
3768 break;
3769
3770 default:
3771 sprintf(p, "bad status 0x%04x", antinfo.status);
3772 p += strlen(p);
3773 break;
3774 }

--- 6 unchanged lines hidden (view full) ---

3781 break;
3782
3783 case GPS_UCAP:
3784 break;
3785
3786 case GPS_CFGH:
3787 {
3788 CFGH cfgh;
3767 *p = '\0';
3768 break;
3769
3770 default:
3771 sprintf(p, "bad status 0x%04x", antinfo.status);
3772 p += strlen(p);
3773 break;
3774 }

--- 6 unchanged lines hidden (view full) ---

3781 break;
3782
3783 case GPS_UCAP:
3784 break;
3785
3786 case GPS_CFGH:
3787 {
3788 CFGH cfgh;
3789 char buffer[512];
3790 char *p;
3789 u_char buffer[512];
3790 u_char *p;
3791
3792 get_mbg_cfgh(&bufp, &cfgh);
3793 if (cfgh.valid)
3794 {
3795 int i;
3796
3797 p = buffer;
3798 strcpy(buffer, "gps_tot_51=\"");
3799 p += strlen(p);
3791
3792 get_mbg_cfgh(&bufp, &cfgh);
3793 if (cfgh.valid)
3794 {
3795 int i;
3796
3797 p = buffer;
3798 strcpy(buffer, "gps_tot_51=\"");
3799 p += strlen(p);
3800 mbg_tgps_str((unsigned char **)&p, &cfgh.tot_51);
3800 mbg_tgps_str(&p, &cfgh.tot_51);
3801 *p++ = '"';
3802 *p = '\0';
3803 set_var(&parse->kv, buffer, sizeof(buffer), RO);
3804
3805 p = buffer;
3806 strcpy(buffer, "gps_tot_63=\"");
3807 p += strlen(p);
3801 *p++ = '"';
3802 *p = '\0';
3803 set_var(&parse->kv, buffer, sizeof(buffer), RO);
3804
3805 p = buffer;
3806 strcpy(buffer, "gps_tot_63=\"");
3807 p += strlen(p);
3808 mbg_tgps_str((unsigned char **)&p, &cfgh.tot_63);
3808 mbg_tgps_str(&p, &cfgh.tot_63);
3809 *p++ = '"';
3810 *p = '\0';
3811 set_var(&parse->kv, buffer, sizeof(buffer), RO);
3812
3813 p = buffer;
3814 strcpy(buffer, "gps_t0a=\"");
3815 p += strlen(p);
3809 *p++ = '"';
3810 *p = '\0';
3811 set_var(&parse->kv, buffer, sizeof(buffer), RO);
3812
3813 p = buffer;
3814 strcpy(buffer, "gps_t0a=\"");
3815 p += strlen(p);
3816 mbg_tgps_str((unsigned char **)&p, &cfgh.t0a);
3816 mbg_tgps_str(&p, &cfgh.t0a);
3817 *p++ = '"';
3818 *p = '\0';
3819 set_var(&parse->kv, buffer, sizeof(buffer), RO);
3820
3821 for (i = MIN_SVNO; i <= MAX_SVNO; i++)
3822 {
3823 p = buffer;
3824 sprintf(p, "gps_cfg[%d]=\"[0x%x] ", i, cfgh.cfg[i]);

--- 1346 unchanged lines hidden (view full) ---

5171 if (ioctl(parse->generic->io.fd, TIOCMSET, (caddr_t)&sl232) == -1)
5172 {
5173 msyslog(LOG_NOTICE, "PARSE receiver #%d: rawdcf_init_1: WARNING: ioctl(fd, TIOCMSET, [C|T]IOCM_DTR): %m", CLK_UNIT(parse->peer));
5174 }
5175 return 0;
5176}
5177#else
5178static int
3817 *p++ = '"';
3818 *p = '\0';
3819 set_var(&parse->kv, buffer, sizeof(buffer), RO);
3820
3821 for (i = MIN_SVNO; i <= MAX_SVNO; i++)
3822 {
3823 p = buffer;
3824 sprintf(p, "gps_cfg[%d]=\"[0x%x] ", i, cfgh.cfg[i]);

--- 1346 unchanged lines hidden (view full) ---

5171 if (ioctl(parse->generic->io.fd, TIOCMSET, (caddr_t)&sl232) == -1)
5172 {
5173 msyslog(LOG_NOTICE, "PARSE receiver #%d: rawdcf_init_1: WARNING: ioctl(fd, TIOCMSET, [C|T]IOCM_DTR): %m", CLK_UNIT(parse->peer));
5174 }
5175 return 0;
5176}
5177#else
5178static int
5179rawdcfdtr_init(
5179rawdcfdtr_init_1(
5180 struct parseunit *parse
5181 )
5182{
5183 msyslog(LOG_NOTICE, "PARSE receiver #%d: rawdcf_init_1: WARNING: OS interface incapable of setting DTR to power DCF modules", CLK_UNIT(parse->peer));
5184 return 0;
5185}
5186#endif /* DTR initialisation type */
5187

--- 199 unchanged lines hidden ---
5180 struct parseunit *parse
5181 )
5182{
5183 msyslog(LOG_NOTICE, "PARSE receiver #%d: rawdcf_init_1: WARNING: OS interface incapable of setting DTR to power DCF modules", CLK_UNIT(parse->peer));
5184 return 0;
5185}
5186#endif /* DTR initialisation type */
5187

--- 199 unchanged lines hidden ---