Changeset 4222


Ignore:
Timestamp:
05/18/11 09:16:56 (10 years ago)
Author:
scott
Message:

Updates to recent updates for Solaris & WIndows builds

Location:
trunk/src
Files:
14 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/libsrc/util/ew_spectra_io.c

    r4204 r4222  
    5151        tmDate.tm_year  = atoi( strDate ) - 1900; 
    5252    tmDate.tm_wday = tmDate.tm_yday = tmDate.tm_isdst = 0; 
    53 #if defined (_SOLARIS) 
     53#if defined (_SOLARIS) || defined(_WINNT) 
    5454#else 
    5555        tmDate.tm_gmtoff = 0; 
     
    6666int EWSUnConvertTime (char *pStart, double start) 
    6767{ 
    68     char                strDate[30]; 
    6968    struct tm   tmDate; 
    7069    time_t              start_time; 
  • trunk/src/libsrc/util/ws2ts.c

    r4194 r4222  
    2323#include <time.h> 
    2424#include <math.h> 
    25 #include <earthworm_defs.h> 
     25#include <earthworm.h> 
     26#include <swap.h> 
    2627#include <ws2ts.h> 
    2728 
     
    171172    But->got_a_menu = 0; 
    172173    got_one = 0; 
    173     RetryWaveservers: 
     174 
    174175    for (i = 0; i < But->nServer; i++) { 
    175176        retry = 0; 
     
    438439        long         nfill_max = 0l; 
    439440        long         nsamp_this_scn = 0l; 
    440         long         this_size; 
    441441        double       starttime, endtime; /* times for current scn         */ 
    442442        double       samprate; 
    443443        double       AH_starttime; 
    444         struct tm    *time; 
    445         time_t       ltime; 
    446444        char         datatype; /* 's' for short, 'l' for long */ 
    447445        double           gapTime = 0; 
    448446        double       GapThresh; 
    449447        double           *mydata; 
    450         char         *mydata_c; 
    451         long             realNsamp = 0; 
    452448        EW_TIME_SERIES *my_ewt; 
    453449        int          eltSize; 
     
    769765        double f, x; 
    770766        double *fdata = ewts.data; 
     767#ifdef M_PI 
    771768        double PI = M_PI; 
     769#else 
     770        double PI = 3.1415; 
     771#endif 
    772772        int i; 
    773773 
     
    894894int demean_EWTS( EW_TIME_SERIES arg )  
    895895{ 
    896         int i; 
    897896        double sum[2] = {0,0}; 
    898897        unary_calc_EWTS( arg, EWTS_MODE_BOTH, addto, sum ); 
     
    921920                op = identity; 
    922921        if ( fp == NULL ) 
    923                 fp == stdout; 
     922                fp = stdout; 
    924923        if ( ts->dataType == EWTS_TYPE_SIMPLE ) { 
    925924                fprintf( fp, "%15s\t%15s\n", col1header, "Value" ); 
  • trunk/src/seismic_processing/Makefile

    r4194 r4222  
    4949        carlsubtrig \ 
    5050        compress_UA \ 
    51         compute_spectra \ 
    5251        debias \ 
    5352        decimate \ 
     
    8079        rayloc_ew \ 
    8180        raypicker \ 
    82         sniffspectra \ 
    8381        statrigfilter \ 
    8482        wftimefilter 
     
    121119        pkfilter \ 
    122120        raypicker \ 
    123         sniffspectra \ 
    124121        statrigfilter \ 
    125122        wftimefilter 
     
    138135        carlsubtrig \ 
    139136        compress_UA \ 
    140         compute_spectra \ 
    141137        debias \ 
    142138        decimate \ 
     
    161157        globalproc \ 
    162158        gmew \ 
    163         hyp71_mgr \ 
    164         hyp2000 \ 
    165         hyp2000_mgr \ 
     159#       hyp71_mgr \ 
     160#       hyp2000 \ 
     161#       hyp2000_mgr \ 
    166162        pick_ew \ 
    167163        pkfilter \ 
    168164        rayloc_ew \ 
    169165        raypicker \ 
    170         sniffspectra \ 
    171166        statrigfilter \ 
    172167        wftimefilter 
  • trunk/src/seismic_processing/ewspectra/activate_module.c

    r4203 r4222  
    1919#include <stdlib.h> 
    2020#include <time.h> 
    21 #include <earthworm_defs.h> 
     21#include <earthworm.h> 
    2222#include <math.h> 
    2323#include <string.h> 
     
    3838 
    3939MSG_LOGO  GetLogo;                      /* requesting module,type,instid */ 
    40 pid_t MyPid;        /* Our own pid, sent with heartbeat for restart purposes */ 
     40/*pid_t MyPid;        Our own pid, sent with heartbeat for restart purposes */ 
    4141         
    4242int static long    OutMsgSize;          /* size for output msgs    */ 
     
    4545{ 
    4646/* Other variables: */ 
    47    MSG_LOGO      logo;   /* logo of retrieved message             */ 
    48    char *outMsg, *sptr, midStr[20]; 
    49    double start, stop; 
    50    int i; 
    51    unsigned char outModID; 
     47        MSG_LOGO      logo;   /* logo of retrieved message             */ 
     48        char *outMsg, *sptr, midStr[20]; 
     49        int i; 
     50        unsigned char outModID; 
     51        int getm, gett; 
    5252         
    5353        /* Look up installations of interest 
     
    8282        *************/ 
    8383        logo.instid = InstId; 
    84         unsigned char ewsModId; 
    85         int getm = GetModId( "MOD_WILDCARD", &(logo.mod) ); 
    86         int gett = GetType( "TYPE_ACTIVATE_MODULE", &(logo.type) ); 
     84        getm = GetModId( "MOD_WILDCARD", &(logo.mod) ); 
     85        gett = GetType( "TYPE_ACTIVATE_MODULE", &(logo.type) ); 
    8786        if ( getm || gett ) { 
    8887                if ( getm ) 
     
    123122        } 
    124123        *sptr = 0; 
    125         if( tport_putmsg( &OutRegion, &logo, OutMsgSize, outMsg ) != PUT_OK ) 
     124        if( tport_putmsg( &OutRegion, &logo, OutMsgSize+1, outMsg ) != PUT_OK ) 
    126125        fprintf( stderr, "Error posting message\n" ); 
    127126    else 
  • trunk/src/seismic_processing/ewspectra/ewspectra.c

    r4203 r4222  
    1919#include <stdlib.h> 
    2020#include <time.h> 
    21 #include <earthworm_defs.h> 
     21#include <earthworm.h> 
    2222#include <ws2ts.h> 
    2323#include <math.h> 
    2424#include <string.h> 
    2525#include <kom.h> 
     26#include <imp_exp_gen.h> 
     27#include <mem_circ_queue.h> 
    2628#include <ew_spectra.h> 
    2729#include <transport.h> 
    2830#include "iir.h" 
    2931#include <ew_spectra_io.h> 
     32#include <ws_clientII.h> 
     33#include <socket_ew.h> 
    3034 
    3135#define MAX_EWS_PROCS   10      /* maximum number of spectra processing definitions */ 
     
    3539#define MSGSTK_ERR   -1              /* MessageStacker encountered error quit    */ 
    3640volatile int MessageStackerStatus = MSGSTK_OFF; 
     41 
     42QUEUE OutQueue;              /* from queue.h, queue.c; sets up linked    */ 
     43                                     /*    list via malloc and free              */ 
     44thr_ret MessageStacker( void * );    /* used to pass messages between main thread */ 
     45thr_ret Process( void * ); 
    3746 
    3847/* Error messages used by export 
     
    4251#define  ERR_NOTRACK       2   /* msg retreived; tracking limit exceeded  */ 
    4352#define  ERR_BADMSG        3   /* message w/ bad timespan                 */ 
     53#define  ERR_QUEUE         4   /* error queueing message for sending      */ 
    4454static char  errText[256];     /* string for log/error messages           */ 
    4555 
     
    6878static unsigned char TypeError; 
    6979 
    70 static char *Rawmsg = NULL;          /* "raw" retrieved msg for main thread      */ 
    7180static char *MSrawmsg = NULL;        /* MessageStacker's "raw" retrieved message */ 
     81static char *SSmsg = NULL;           /* Process's incoming message buffer   */ 
     82static MSG_LOGO Logo;        /* logo of message to re-send */ 
    7283 
    7384int static long    MaxMsgSize = 100;          /* max size for input msgs    */ 
     85static int     RingSize = 10;        /* max messages in output circular buffer       */ 
    7486 
    7587WShandle *wsh; 
     
    7789#define THREAD_STACK 8192 
    7890static unsigned tidStacker;          /* Thread moving messages from transport */ 
     91static unsigned tidProcess;          /* Processor thread id */ 
    7992 
    8093int numPeaks = 0; 
     
    346359                peakBand[0] = k_val(); 
    347360                peakBand[1] = k_val(); 
     361    } else if( k_its("RingSize") ) { 
     362                RingSize = k_long(); 
    348363        } else 
    349364                return 1; 
     
    475490        ewspec->data = spec; 
    476491        memcpy( spec, ewts->data, ewts->dataCount*sizeof(double) ); 
    477         bzero( spec+ewts->dataCount, sizeof(double)*(ndata-ewts->dataCount+2) ); 
     492        memset( spec+ewts->dataCount, 0, sizeof(double)*(ndata-ewts->dataCount+2) ); 
    478493 
    479494        ah_fftr(spec, ndata); 
     
    521536        { 
    522537                double l,r; 
     538                double cur; 
    523539                l = (i - 2 < 0)?arr[0]:arr[i-2]; 
    524540                r = (i + 2 >= n)?arr[n-2]:arr[i+2]; 
    525                 double cur = (l + 2*arr[i] + r)/4; 
     541                cur = (l + 2*arr[i] + r)/4; 
    526542                if(goup) { 
    527543                        if(prev > cur && i > 0) { 
     
    562578        /* Try each of the processing requests from config */ 
    563579        for ( pn=0; pn < num_ews_procs; pn++ ) { 
     580                double delta, nyquist, ndata, scale; 
     581                MSG_LOGO logo; 
     582                char date[2][20]; 
     583                char buffer[2000], *specData, *peakData; 
    564584         
    565585                /* Get the tracebufs for the first/only SCNL */ 
     
    670690                        smooth_spectra( &ewspec, EWTS_MODE_FIRST | EWTS_MODE_SECOND ); 
    671691                 
    672                 double delta = 1/ewspec.trh2x.samprate; 
    673                 double nyquist= 1.0/(2.0*delta); 
    674                 double ndata = ewspec.dataCount - 1; 
    675                 double scale = nyquist/ndata; 
     692                delta = 1/ewspec.trh2x.samprate; 
     693                nyquist= 1.0/(2.0*delta); 
     694                ndata = ewspec.dataCount - 1; 
     695                scale = nyquist/ndata; 
    676696                 
    677697                if ( OutRingKey != -1 ) { 
     
    682702                } 
    683703                 
    684                 MSG_LOGO logo; 
    685704                logo.instid = InstId; 
    686705                logo.mod    = MyModId; 
    687706                 
    688                 char date[2][20]; 
    689                 char buffer[2000], line[100], *specData = buffer, *peakData = buffer; 
     707                specData = peakData = buffer; 
    690708                EWSUnConvertTime( date[0], start ); 
    691709                EWSUnConvertTime( date[1], stop ); 
     
    762780                        fp = fopen( outpath, "a" ); 
    763781                        if ( fp == NULL ) 
    764                                 logit( "e", "Could not open output file: '%s'\n", outpath ); 
     782                                logit( "e", "ewspectra: Could not open output file: '%s'\n", outpath ); 
    765783                        fwrite( buffer, peakData-buffer, 1, fp ); 
    766784                } 
     
    849867   long          recsize;   /* size of retrieved message             */ 
    850868   MSG_LOGO      reclogo;       /* logo of retrieved message             */ 
    851    long      filteredSize;  /* size of message after user-filtering  */ 
    852    unsigned char filteredType;  /* type of message after filtering       */ 
    853869   int       res; 
    854870   int       ret; 
    855871   char      date[100], *msgName; 
    856    double    start, stop; 
    857872   int modid, len, okMsg; 
     873   int           NumOfTimesQueueLapped= 0; /* number of messages lost due to 
     874                                             queue lap */ 
    858875 
    859876   /* Tell the main thread we're ok 
     
    916933      /* Process retrieved msg (res==GET_OK,GET_MISS,GET_NOTRACK) 
    917934      ***********************************************************/ 
     935 
     936      /* put it into the 'to be shipped' queue */ 
     937      /* the Process thread is in the biz of de-queueng and processing */ 
     938      RequestMutex(); 
     939      ret=enqueue( &OutQueue, MSrawmsg, recsize, reclogo ); 
     940      ReleaseMutex_ew(); 
     941 
     942      if ( ret!= 0 ) 
     943      { 
     944         if (ret==-2)  /* Serious: quit */ 
     945         {    /* Currently, eneueue() in mem_circ_queue.c never returns this error. */ 
     946        sprintf(errText,"internal queue error. Terminating."); 
     947            ewspectra_status( TypeError, ERR_QUEUE, errText ); 
     948        goto error; 
     949         } 
     950         if (ret==-1) 
     951         { 
     952            sprintf(errText,"queue cannot allocate memory. Lost message."); 
     953            ewspectra_status( TypeError, ERR_QUEUE, errText ); 
     954            continue; 
     955         } 
     956         if (ret==-3)  /* Log only while client's connected */ 
     957         { 
     958         /* Queue is lapped too often to be logged to screen. 
     959          * Log circular queue laps to logfile. 
     960          * Maybe queue laps should not be logged at all. 
     961          */ 
     962            NumOfTimesQueueLapped++; 
     963            if (!(NumOfTimesQueueLapped % 5)) 
     964            { 
     965               logit("t", 
     966                     "%s(%s): Circular queue lapped 5 times. Messages lost.\n", 
     967                      Argv0, MyModName); 
     968               if (!(NumOfTimesQueueLapped % 100)) 
     969               { 
     970                  logit( "et", 
     971                        "%s(%s): Circular queue lapped 100 times. Messages lost.\n", 
     972                         Argv0, MyModName); 
     973               } 
     974            } 
     975            continue; 
     976         } 
     977      } 
     978 
     979 
     980   } /* end of while */ 
     981 
     982   /* we're quitting 
     983   *****************/ 
     984error: 
     985   MessageStackerStatus = MSGSTK_ERR; /* file a complaint to the main thread */ 
     986   KillSelfThread(); /* main thread will restart us */ 
     987} 
     988 
     989/**************************  Main Dup Thread   *********************** 
     990*          Pull a messsage from the queue, and put it on OutRing     * 
     991**********************************************************************/ 
     992 
     993thr_ret Process( void *dummy ) 
     994{ 
     995   int      ret; 
     996   int       res; 
     997   long     msgSize; 
     998   double    start, stop; 
     999   int modid, len; 
     1000   char      date[100], *msgName; 
     1001 
     1002   while (1)   /* main loop */ 
     1003   { 
     1004     /* Get message from queue 
     1005      *************************/ 
     1006     RequestMutex(); 
     1007     ret=dequeue( &OutQueue, SSmsg, &msgSize, &Logo); 
     1008     ReleaseMutex_ew(); 
     1009     if(ret < 0 ) 
     1010     { /* -1 means empty queue */ 
     1011       sleep_ew(500); /* wait a bit (changed from 1000 to 500 on 970624:ldd) */ 
     1012       continue; 
     1013     } 
     1014 
     1015      /* Process retrieved msg (res==GET_OK,GET_MISS,GET_NOTRACK) 
     1016      ***********************************************************/ 
     1017 
     1018      res = sscanf( SSmsg, "%d %s %d", &modid, date, &len ); 
     1019      msgName = "ACTIVATE_MODULE"; 
     1020 
    9181021          start = atof( date ); 
    9191022          if ( start < 0 ) {  
     
    9271030          process_timespan( wsh, start, stop ); 
    9281031 
    929    } /* end of while */ 
    930  
    931    /* we're quitting 
    932    *****************/ 
    933 error: 
    934    MessageStackerStatus = MSGSTK_ERR; /* file a complaint to the main thread */ 
    935    KillSelfThread(); /* main thread will restart us */ 
     1032   }   /* End of main loop */ 
     1033 
    9361034} 
    9371035 
     
    10041102        } 
    10051103        if ( OutRingKey == -1 && outpath[0] == 0 ) { 
    1006                 logit( "e", "No output specified; exiting\n" ); 
     1104                logit( "e", "ewspectra: No output specified; exiting\n" ); 
    10071105                ws2ts_purge( wsh, NULL, NULL ); 
    10081106                exit(1); 
    10091107        } 
    10101108        if ( lowcutoff > 0 && highcutoff > 0 && lowcutoff >= highcutoff ) { 
    1011                 logit( "e", "Low Cutoff Frequency Must Be < High Cutoff Frequency.\n" ); 
     1109                logit( "e", "ewspectra: Low Cutoff Frequency Must Be < High Cutoff Frequency.\n" ); 
    10121110                ws2ts_purge( wsh, NULL, NULL ); 
    10131111                exit(1); 
     
    10181116                        if ( *SCNL[i][2][3] == 0 ) 
    10191117                                if ( outpath[0] != 0 ) 
    1020                                         logit( "w", "No SCNL for ring messages specified for %s.%s.%s.%s; will only write to file\n", 
     1118                                        logit( "w", "ewspectra: No SCNL for ring messages specified for %s.%s.%s.%s; will only write to file\n", 
    10211119                                                SCNL[i][0][0], SCNL[i][0][1], SCNL[i][0][2], SCNL[i][0][3] ); 
    10221120                                else { 
    1023                                         logit( "w", "No SCNL for ring messages specified for %s.%s.%s.%s; aborting this SCNL\n", 
     1121                                        logit( "w", "ewspectra: No SCNL for ring messages specified for %s.%s.%s.%s; aborting this SCNL\n", 
    10241122                                                SCNL[i][0][0], SCNL[i][0][1], SCNL[i][0][2], SCNL[i][0][3] ); 
    10251123                                        num_ews_procs--; 
     
    10341132                                } 
    10351133                if ( num_ews_procs == 0 ) { 
    1036                         logit( "e", "All SCNLs aborted; exiting\n" ); 
     1134                        logit( "e", "ewspectra: All SCNLs aborted; exiting\n" ); 
    10371135                        ws2ts_purge( wsh, NULL, NULL ); 
    10381136                        exit(1); 
     
    10671165        } 
    10681166         
    1069         if ( start != -1 ) 
    1070                 process_timespan( wsh, start, stop ); 
     1167   /* Buffers for Process thread: */ 
     1168   if ( ( SSmsg = (char *) malloc(MaxMsgSize) ) ==  NULL ) 
     1169   { 
     1170      logit( "e", "%s(%s): error allocating SSmsg; exiting!\n", 
     1171              Argv0, MyModName ); 
     1172            if ( InRingKey != -1 ) 
     1173                        tport_detach( &InRegion ); 
     1174                if ( OutRingKey != -1 ) 
     1175                        tport_detach( &OutRegion ); 
     1176                        ws2ts_purge( wsh, NULL, NULL ); 
     1177                        exit(1); 
     1178   } 
     1179 
     1180   /* Create a Mutex to control access to queue 
     1181   ********************************************/ 
     1182   CreateMutex_ew(); 
     1183 
     1184   /* Initialize the message queue 
     1185   *******************************/ 
     1186   initqueue( &OutQueue, (unsigned long)RingSize,(unsigned long)MaxMsgSize ); 
     1187 
     1188   /* Start the socket writing thread 
     1189   ***********************************/ 
     1190   if ( StartThread(  Process, (unsigned)THREAD_STACK, &tidProcess ) == -1 ) 
     1191   { 
     1192      logit( "e", "%s(%s): Error starting Process thread; exiting!\n", 
     1193              Argv0, MyModName ); 
     1194          if ( InRingKey != -1 ) 
     1195                        tport_detach( &InRegion ); 
     1196          if ( OutRingKey != -1 ) 
     1197                        tport_detach( &OutRegion ); 
     1198          free( SSmsg ); 
     1199          ws2ts_purge( wsh, NULL, NULL ); 
     1200      exit( -1 ); 
     1201   } 
     1202 
     1203        if ( start != -1 ) { 
     1204            int len = (stop-start+0.9); 
     1205            int ret; 
     1206 
     1207            reclogo.instid = InstId; 
     1208            reclogo.mod    = MyModId; 
     1209            reclogo.type   = GetLogo[0].type; 
     1210                sprintf( MSrawmsg, "%5d %14s %9d%c", MyModId, "", len, 0 ); 
     1211                EWSUnConvertTime( MSrawmsg+6, start ); 
     1212                MSrawmsg[20] = ' '; 
     1213        RequestMutex(); 
     1214        ret=enqueue( &OutQueue, MSrawmsg, 31, reclogo ); 
     1215        ReleaseMutex_ew(); 
     1216        } 
    10711217 
    10721218        /* Here's where, if InputRing is defined, we'd listen for  
     
    11381284        ws2ts_purge( wsh, NULL, NULL ); 
    11391285} 
     1286 
  • trunk/src/seismic_processing/ewspectra/iir.c

    r4194 r4222  
    4848#include <math.h> 
    4949#include <stdlib.h> 
     50#include <earthworm_simple_funcs.h> 
    5051#include "iir.h" 
    5152 
    5253#ifndef PI 
     54#ifdef M_PI 
    5355#define PI  M_PI 
     56#else 
     57#define PI 3.1415 
     58#endif 
    5459#endif 
    5560 
     
    201206} 
    202207 
    203 /*******************************************************************/ 
    204 /*             sweep (f1, f0, npts, dt, as)                        */ 
    205 /*******************************************************************/ 
    206 /*      Routine to calculate linear frequency sweep 
    207             f1 = stop frequency 
    208             f0 = start frequency 
    209             npts = number of points in sweep 
    210             dt = time between samples 
    211             as = array for storage of data 
    212  
    213 */ 
    214 static void sweep (f1, f0, npts, dt, as) 
    215 double  f1, f0, dt, as[] ; 
    216 int     npts ; 
    217 { 
    218     double  tf, df, tt ; 
    219     int i ; 
    220  
    221     /*    PI = 3.1415927 ; */ 
    222     tf = npts*dt ;  /* get final time */ 
    223     df = 2.*PI*(f1-f0)/(tf*2) ; /*  frequency increment  */ 
    224     for( i=0 ; i<npts ; i++) 
    225     { 
    226         tt = i*dt ; 
    227         as[i] = sin(f0*tt + df*tt*tt) ; 
    228     } 
    229  
    230 } 
    231208 
    232209/************************************************************************/ 
     
    261238} 
    262239 
    263 /***************************************************************/ 
    264 /*              wdat(FF, npts, dt, ar)                         */ 
    265 /***************************************************************/ 
    266 /* 
    267     Routine to write data in format for asci2sac to read 
    268         FF = output file name 
    269         npts = number of points to output 
    270         dt = sample rate in seconds 
    271         ar = array of values to output 
    272  
    273 */ 
    274 static void wdat (FF, npts, dt, ar) 
    275 char       FF[] ; 
    276 int         npts ; 
    277 double      dt ; 
    278 double      ar[] ; 
    279 { 
    280     int     i ; 
    281     FILE    *fn ; 
    282  
    283     if((fn = fopen(FF,"w+")) == NULL) 
    284     { 
    285         printf("cannot create output file ") ; 
    286         exit (1) ; 
    287     } 
    288      
    289     for ( i=0 ; i<npts ; i++) 
    290     { 
    291         fprintf(fn, "%16.8le\n", ar[i]) ; 
    292     } 
    293     fclose(fn) ; 
    294 } 
    295240 
    296241/**************************************************************************/ 
  • trunk/src/seismic_processing/ewspectra/makefile.nt

    r4203 r4222  
    2727                $L\ws_clientII.obj \ 
    2828                $L\socket_ew_common.obj \ 
     29                $L\mem_circ_queue.obj \ 
    2930                $L\socket_ew.obj \ 
    3031                $L\swap.obj \ 
     32                $L\ws2ts.obj \ 
    3133                $L\ew_spectra_io.obj 
    3234 
     
    3739libs = libcmt.lib 
    3840 
     41ALL: $B\$(APP).exe $B\$(APPc).exe $B\$(APPs).exe 
     42 
    3943$B\$(APP).exe: $(OBJS) 
    40    link $(linkflags) $(EW_LIBS) $(libs) $(OBJS) -out:$B\$(APP).exe 
     44   $(link) $(conlflags) $(ldebug) $(conlibsmt) $O $(OBJS) $(EW_LIBS) \ 
     45      $(LIBS) -out:$B\$(APP).exe 
    4146$B\$(APPc).exe: $(OBJSc) 
    42    link $(linkflags) $(EW_LIBS) $(libs) $(OBJSc) -out:$B\$(APPc).exe 
     47   $(link) $(conlflags) $(ldebug) $(conlibsmt) $O $(OBJSc) $(EW_LIBS) \ 
     48      $(LIBS) -out:$B\$(APPc).exe 
    4349$B\$(APPs).exe: $(OBJSs) 
    44    link $(linkflags) $(EW_LIBS) $(libs) $(OBJSs) -out:$B\$(APPs).exe 
     50   $(link) $(conlflags) $(ldebug) $(conlibsmt) $O $(OBJSs) $(EW_LIBS) \ 
     51      $(LIBS) -out:$B\$(APPs).exe 
    4552 
    4653.c.obj: 
  • trunk/src/seismic_processing/ewspectra/makefile.sol

    r4203 r4222  
    44L = $(EW_HOME)/$(EW_VERSION)/lib 
    55 
    6 LIBS = -lm -lposix4 -lthread 
     6LIBS = -lm -lposix4 -lthread -lnsl -lsocket 
    77 
    88EW_LIBS = $L/logit_mt.o \ 
     
    1515                $L/sema_ew.o \ 
    1616                $L/ws_clientII.o \ 
     17       $L/mem_circ_queue.o \ 
    1718                $L/socket_ew_common.o \ 
    1819                $L/socket_ew.o \ 
     
    2728OBJSs = sniffspectra.o 
    2829 
     30all: ewspectra activate_module sniffspectra 
    2931 
    3032ewspectra: $(OBJS) $(EW_LIBS) 
    31         $(CC) $(CFLAGS) -o $B/ewspectra $(OBJS) $(EW_LIBS) $(LIBS) 
     33        $(CC) $(CFLAGS) -o $B/ewspectra  $L/ws2ts.o $(OBJS) $(EW_LIBS) $(LIBS) 
    3234 
    33 activate_module: $(OBJS) $(EW_LIBS) 
    34         $(CC) $(CFLAGS) -o $B/activate_module $(OBJS) $(EW_LIBS) $(LIBS) 
     35activate_module: $(OBJSc) $(EW_LIBS) 
     36        $(CC) $(CFLAGS) -o $B/activate_module $(OBJSc) $(EW_LIBS) $(LIBS) 
    3537 
    36 sniffspectra: $(OBJS) $(EW_LIBS) 
    37         $(CC) $(CFLAGS) -o $B/sniffspectra $(OBJS) $(EW_LIBS) $(LIBS) 
     38sniffspectra: $(OBJSs) $(EW_LIBS) 
     39        $(CC) $(CFLAGS) -o $B/sniffspectra $(OBJSs) $(EW_LIBS) $(LIBS) 
    3840 
    3941lint: 
  • trunk/src/seismic_processing/ewspectra/makefile.ux

    r4203 r4222  
    2020          $(LIBDIR)/getutil.o $(LIBDIR)/sema_ew.o $(LIBDIR)/ws_clientII.o \ 
    2121          $(LIBDIR)/socket_ew_common.o $(LIBDIR)/socket_ew.o $(LIBDIR)/swap.o \ 
    22           $(LIBDIR)/ew_spectra_io.o 
     22          $(LIBDIR)/mem_circ_queue.o $(LIBDIR)/ew_spectra_io.o 
    2323  
    2424.c.o: 
  • trunk/src/seismic_processing/ewspectra/sniffspectra.c

    r4194 r4222  
    4646#include <ew_spectra.h> 
    4747#include <ew_timeseries.h> 
     48#include <ew_spectra_io.h> 
    4849 
    4950#define NLOGO 4 
     
    136137   long            gotsize; 
    137138   char            msg[MAX_SPECTRA_SIZE]; 
    138    char           *getSta, *getComp, *getNet, *getLoc, *inRing; 
    139    char            wildSta, wildComp, wildNet, wildLoc; 
     139   char           *inRing; 
    140140   unsigned char   Type_Spectra_Data; 
    141141   unsigned char   InstWildcard, ModWildcard; 
     
    148148   int             i; 
    149149   int             rc; 
    150    int             verbose = 0; /* if verbose =1 print name and number for logo ids */ 
    151    int             useLoc = 0; 
    152150   int             nLogo = NLOGO; 
    153151   static unsigned char InstId;        /* local installation id              */ 
    154    char            ModName[MAX_MOD_STR]; 
    155152   unsigned char   sequence_number = 0; 
    156    int             statistics_flag; 
    157    int             dataargument_position=5; 
    158153   long                    packet_total = 0, packet_total_size = 0; 
    159    time_t monitor_start_time; 
    160    double start_time, end_time; 
    161    SCNL_LAST_SCNL_PACKET_TIME scnl_time[MAX_NUM_SCNL]; /* times of last scnl and packet */ 
    162    int n_scnl_time = 0;                                  /* current number of scnl_time items */ 
    163154   char *outDirPath = NULL; 
    164155   double ewsh_endtime; 
     
    324315      if (dataflag == 1) 
    325316      { 
    326         int dtype = EWTS_TYPE_COMPLEX ? ewsh->units[0]=='c' : EWTS_TYPE_AMPPHS; 
    327         write_spectra_to_file( ewsh, msg+sizeof(*ewsh), "sniffspectra", fp ); 
     317        write_spectra_to_file( ewsh, (double*)(msg+sizeof(*ewsh)), "sniffspectra", fp ); 
    328318          } 
    329319      fflush (fp); 
  • trunk/src/seismic_processing/ewthresh/ewthresh.c

    r4196 r4222  
    33 *      File:                   ewthresh.c 
    44 * 
    5  *      Function:               Program to read TRACEBUF2X messages and report (via a  
    6  *                  message to another ring) each that has a converted value  
     5 *      Function:               Program to read TRACEBUF2X messages and report (via a 
     6 *                  message to another ring) each that has a converted value 
    77 *                  exceeding a specified threshold. 
    88 * 
     
    1111 *      Source:                 Started anew. 
    1212 * 
    13  *      Notes:                   
     13 *      Notes: 
    1414 * 
    1515 *      Change History: 
    1616 *                      4/26/11 Started source 
    17  *       
     17 * 
    1818 *****************************************************************************/ 
    1919 
     
    2222#include <string.h> 
    2323#include <fcntl.h> 
    24 #include <time.h> 
     24#include <time_ew.h> 
    2525#include <earthworm.h> 
    2626#include <kom.h> 
     
    298298   while( 1 ) 
    299299   { 
    300            
     300 
    301301      /* Get a message from transport ring 
    302302      ************************************/ 
     
    337337      /* Process retrieved msg (res==GET_OK,GET_MISS,GET_NOTRACK) 
    338338      ***********************************************************/ 
    339        
     339 
    340340      /* First, localize & make sure it is a TRACEBUF2X message 
    341341      ***********************************************/ 
     
    346346      if ( convFactor == 0 ) 
    347347        continue; /*convFactor = 1;*/ 
    348                   
     348 
    349349      /* Next, see if it matches one of our SNCLs 
    350350      *********************************************/ 
     
    357357      if ( sncl_idx >= nThreshDefs ) 
    358358        continue; 
    359          
     359 
    360360      /* Now scan content for maximum value 
    361361      *******************************************/ 
     
    411411                  struct tm theTimeStruct; 
    412412                  time_t theTime = tbh2x->starttime + maxi * (1.0/tbh2x->samprate); 
    413                    
    414                   gmtime_r( &theTime, &theTimeStruct ); 
    415                    
     413 
     414                  gmtime_ew( &theTime, &theTimeStruct ); 
     415 
    416416                  sprintf( msg, "SNCL=%s.%s.%s.%s Thresh=%1.1lf Value=%lf Time=%s%c", 
    417417                        tbh2x->sta, tbh2x->net, tbh2x->chan, tbh2x->loc, 
     
    542542                nThreshDefs++; 
    543543                init[6] = 1; 
    544                  
     544 
    545545            } 
    546546 
  • trunk/src/seismic_processing/ewthresh/makefile.nt

    r4195 r4222  
    11# 
    2 #                    Nmake File For ewspectra  - Windows NT version 
     2#                    Nmake File For ewthresh  - Windows NT version 
    33# 
    44 
     
    3232 
    3333$B\$(APP).exe: $(OBJS) 
    34    link $(linkflags) $(EW_LIBS) $(libs) $(OBJS) -out:$B\$(APP).exe 
     34   $(link) $(conlflags) $(ldebug) $(conlibsmt) $O $(OBJS) $(EW_LIBS) \ 
     35      $(LIBS) -out:$B\$(APP).exe 
    3536 
    3637.c.obj: 
  • trunk/src/seismic_processing/ewthresh/makefile.sol

    r4195 r4222  
    44L = $(EW_HOME)/$(EW_VERSION)/lib 
    55 
    6 LIBS = -lm -lposix4 -lthread 
     6LIBS = -lm -lposix4 -lthread  -lnsl -lsocket 
    77 
    88EW_LIBS = $L/logit_mt.o \ 
     
    1212                $L/transport.o \ 
    1313                $L/sleep_ew.o \ 
     14       $L/mem_circ_queue.o \ 
    1415                $L/getutil.o \ 
    1516                $L/sema_ew.o \ 
  • trunk/src/seismic_processing/gmew/makefile.nt

    r4217 r4222  
    6060   $L\sleep_ew.obj $L\tlay.obj $L\mnbrak.obj $L\brent.obj $L\dirops_ew.obj \ 
    6161   $L\transport.obj $L\getutil.obj $L\mem_circ_queue.obj $L\sema_ew.obj \ 
    62    $L\threads_ew.obj $L\fft99.obj $L\fft_prep.obj $L\transfer.obj $L/gma.obj \ 
     62   $L\threads_ew.obj $L\fft99.obj $L\fft_prep.obj $L\transfer.obj $L\gma.obj \ 
    6363   $L\rw_strongmotionII.obj $L\ew_spectra_io.obj 
    6464 
Note: See TracChangeset for help on using the changeset viewer.