Changeset 8142


Ignore:
Timestamp:
04/13/20 12:26:19 (3 months ago)
Author:
paulf
Message:

tankcut mods for filtering on SCN, untested

Location:
trunk/src/archiving/tankplayer_tools
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/archiving/tankplayer_tools/remux.h

    r3096 r8142  
    22int remux_tracebufs(char *, char *, double, double); 
    33 
     4 
     5/* for filtering on remux */ 
     6void set_net_code(char* n); 
     7void set_chan_code(char* c); 
     8void set_sta_name(char* s); 
     9 
  • trunk/src/archiving/tankplayer_tools/remux_code.c

    r7229 r8142  
    4545int compare_time( const void *, const void * ); /* function for qsort()*/ 
    4646 
     47static char net_code[3]="\0"; 
     48static char sta_name[6]="\0"; 
     49static char chan_code[4]="\0"; 
     50void set_net_code(char* n) { 
     51     strcpy(net_code, n); 
     52} 
     53void set_chan_code(char* c) { 
     54     strcpy(chan_code, c); 
     55} 
     56void set_sta_name(char* s) { 
     57     strcpy(sta_name, s); 
     58} 
     59 
    4760int remux_tracebufs(char *intank, char *outtank, double start_epoch, double end_epoch) 
    4861{ 
     
    5972  int           maxnumbuf;        /* number of buffers we can store       */ 
    6073  long          datalen; 
    61   int           ib; 
     74  int           ib, buf_len; 
    6275  int           rc; 
    6376 
     
    149162     /* now check to see if we store this packet at all */ 
    150163     totbytes += tbuf[nbuf].size; 
     164     if (sta_name[0] != 0) { 
     165        if (strcmp(sta_name, pkt.trh2.sta) != 0) 
     166          continue; 
     167     } 
     168     if (net_code[0] != 0) { 
     169        if (strcmp(net_code, pkt.trh2.net) != 0) 
     170          continue; 
     171     } 
     172     if (chan_code[0] != 0) { 
     173        buf_len = strlen(chan_code); 
     174        if (strncmp(chan_code, pkt.trh2.net, buf_len) != 0) 
     175          continue; 
     176     } 
    151177     if (start_epoch != 0.0)  
    152178     { 
  • trunk/src/archiving/tankplayer_tools/tankcut.c

    r7061 r8142  
    2525#include "remux.h" 
    2626 
    27 #define VERSION "v0.0.2 2011-06-10" 
     27#define VERSION "v0.0.3 2020-04-13" 
    2828 
    2929#ifndef SEC1970 
     
    3939        fprintf(stdout, "\t-e EndTime - when to end including tracebufs from intank\n"); 
    4040        fprintf(stdout, "\t-d Duration - Duration in seconds from start time when to end including tracebufs from intank\n"); 
     41        fprintf(stdout, "\t-S SSSSS - only extract stations matching SSSSS station name from intank\n"); 
     42        fprintf(stdout, "\t-N NN - only extract stations matching NN network code from intank\n"); 
     43        fprintf(stdout, "\t-C [[C]C]C - only extract stations matching any part of CCC channel code from intank\n"); 
    4144        fprintf(stdout, "\t\t Default Duration is 600 seconds from start time\n"); 
    4245 
     
    5154double duration=600.0; 
    5255char start_string[19]; 
     56char station_name[6]; 
     57char channel_name[4]; 
     58char network_name[3]; 
    5359char end_string[19]; 
    5460char tank[2][MAX_TANK_NAME]; 
     
    5763 
    5864  logit_init("tankcut", 0, 1024, 1); 
     65  station_name[0]=0; 
    5966 
    6067 
     
    6471                if(argv[i][0] == '-') { 
    6572                        switch(argv[i][1]) { 
     73                                case 'N': 
     74                                        i++; 
     75                                        if (strlen(argv[i]) > 2) { 
     76                                                fprintf(stderr, "Error: network code (-N) must be 2 chars or less \n"); 
     77                                                usage(); 
     78                                                exit(2); 
     79                                        } 
     80                                        strcpy(network_name, argv[i]); 
     81                                        set_net_code(network_name); 
     82                                        break; 
     83                                case 'C': 
     84                                        i++; 
     85                                        if (strlen(argv[i]) > 3) { 
     86                                                fprintf(stderr, "Error: channel name (-C) must be 3 chars or less \n"); 
     87                                                usage(); 
     88                                                exit(2); 
     89                                        } 
     90                                        strcpy(channel_name, argv[i]); 
     91                                        set_chan_code(channel_name); 
     92                                        break; 
     93                                case 'S': 
     94                                        i++; 
     95                                        if (strlen(argv[i]) > 5) { 
     96                                                fprintf(stderr, "Error: station name (-S) must be 5 chars or less \n"); 
     97                                                usage(); 
     98                                                exit(2); 
     99                                        } 
     100                                        strcpy(station_name, argv[i]); 
     101                                        set_sta_name(station_name); 
     102                                        break; 
    66103                                case 's': 
    67104                                        i++; 
     
    91128                                        break; 
    92129                                case 'd': 
    93                                         duration = atof(argv[i+1]); 
    94130                                        i++; 
     131                                        duration = atof(argv[i]); 
    95132                                        break; 
    96133                                default: 
Note: See TracChangeset for help on using the changeset viewer.