/* sync2.h ======= */ /* Sessai Special additional functions to sync.c in support.lib */ /* functions to synchronize the radar */ //#include //#include //#include //#include "radops.h" //#include "support.h" /* global declaration of the time so we don't need to keep calling * read_clock() */ //extern int yr,mon,day,hr,min,sec; //extern int msec,usec; /* This function waits for a two minute boundary */ /* additional function by Sessai */ void wait_boundary2(int bnd,int bnd_sec) { long int sleep_time; if (bnd*60+bnd_sec <=0) return; // added by Sessai on Nov.28,1997 // sleep_time=(bnd*60L*1000L)- sleep_time=( (bnd*60L+bnd_sec)*1000L ) - ( ( ((min*60+sec)*1000L)+msec ) % ( (bnd*60L+bnd_sec)*1000L) ); sleep_time-=20L; if (sleep_time<0) sleep_time=0L; sleep((unsigned int) (sleep_time/1000)); delay((unsigned int) (sleep_time % 1000)); } /* additional function by Sessai on June 12, 1997 */ void wait_boundary3(int bnd_min,int bnd_sec, int bnd_start_hr,int bnd_start_min,int bnd_start_sec) { long int sleep_time; long int tmpL; if (bnd_min*60+bnd_sec <=0) return; // added by Sessai on Nov.28,1997 tmpL= (((long)( hr*60+ min)*60L +(long)sec )*1000L+(long)msec) -(((long)(bnd_start_hr*60+bnd_start_min)*60L +(long)bnd_start_sec)*1000L); if(tmpL < 0L) tmpL+=86400000L; // 24*60*60*1000 sleep_time=( (bnd_min*60L+bnd_sec)*1000L ) - ( tmpL % ( (bnd_min*60L+bnd_sec)*1000L) ); sleep_time-=20L; if (sleep_time<0) sleep_time=0L; sleep((unsigned int) (sleep_time/1000)); delay((unsigned int) (sleep_time % 1000)); } /* This function calculates how many beams we should skip */ /* additional function by Sessai */ int calc_skip2(int bnd,int bnd_sec) { /* modified by Sessai!!!!!!!!! */ int rs; if (intt <=0) return 0; if (bnd*60+bnd_sec <=0) return 0; // added by Sessai on Nov.28,1997 // rs=(min % bnd)*60 + sec; rs=(min*60+sec)%(bnd*60+bnd_sec); if (rs > intt/4 + 1) return (rs + (intt + 1)/2)/intt + 2; /* if (sec !=0) return ((min % bnd)*60 + sec + (intt + 1)/2)/intt + 2; */ return 0; } /* additional function in incorporated with wait_boundary_3 by Sessai on June 12, 1997 */ int calc_skip3(int bnd_min,int bnd_sec, int bnd_start_hr,int bnd_start_min,int bnd_start_sec) { int rs; long int tmpL; if (intt <=0) return 0; if (bnd_min*60+bnd_sec <=0) return 0; // added by Sessai on Nov.28,1997 tmpL= ((long)( hr*60+ min)*60L+(long)sec ) -((long)(bnd_start_hr*60+bnd_start_min)*60L+(long)bnd_start_sec); if(tmpL < 0L) tmpL+=86400L; // 24*60*60 rs=(int)(tmpL%(bnd_min*60+bnd_sec)); if (rs > intt/4 + 1) return (rs + (intt + 1)/2)/intt + 2; return 0; } /* check for two hour file boundary */ /* determine day or night */