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 --- |