Ignore:
Timestamp:
05/05/11 12:56:45 (10 years ago)
Author:
scott
Message:

Added activate_module & its message type; modified ewspectra to use it

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/seismic_processing/ewspectra/ewspectra.c

    r4194 r4203  
    5858static  SHM_INFO  OutRegion;    /* shared memory region to use for output */ 
    5959 
    60 MSG_LOGO  GetLogo;                      /* requesting module,type,instid */ 
     60MSG_LOGO  GetLogo[1];                           /* requesting module,type,instid */ 
    6161pid_t MyPid;        /* Our own pid, sent with heartbeat for restart purposes */ 
    6262         
     
    853853   int       res; 
    854854   int       ret; 
    855    char      msg[100]; 
     855   char      date[100], *msgName; 
    856856   double    start, stop; 
     857   int modid, len, okMsg; 
    857858 
    858859   /* Tell the main thread we're ok 
     
    866867      /* Get a message from transport ring 
    867868      ************************************/ 
    868       res = tport_getmsg( &InRegion, &GetLogo, 1, 
     869      res = tport_getmsg( &InRegion, GetLogo, 1, 
    869870                          &reclogo, &recsize, MSrawmsg, MaxMsgSize-1 ); 
    870871 
     
    899900         } 
    900901      } 
     902       
     903      res = sscanf( MSrawmsg, "%d %s %d", &modid, date, &len ); 
     904      if ( modid != MyModId ) 
     905        continue; 
     906      msgName = "ACTIVATE_MODULE"; 
     907      okMsg = (res == 3); 
     908          if ( !okMsg ) { 
     909                        sprintf( errText, "malformed %s msg i%d m%d t%d in %s",msgName, 
     910                                        (int) reclogo.instid, 
     911                                        (int) reclogo.mod, (int)reclogo.type, inRing ); 
     912                        ewspectra_status( TypeError, ERR_BADMSG, errText ); 
     913                        continue; 
     914      } 
    901915 
    902916      /* Process retrieved msg (res==GET_OK,GET_MISS,GET_NOTRACK) 
    903917      ***********************************************************/ 
    904           strncpy( msg, MSrawmsg, recsize ); 
    905           msg[recsize] = 0; 
    906                 start = atof( msg ); 
    907                 if ( start < 0 ) {  
    908                         start += time(NULL); 
    909                 } else if ( EWSConvertTime (msg, &start) == EW_FAILURE ) { 
    910             sprintf( errText, "COMPUTE_SPECTRA message w/ bad time" ); 
    911             ewspectra_status( TypeError, ERR_BADMSG, errText ); 
    912                 } 
    913                 stop = start + atoi( msg+14 ); 
    914            
    915                 process_timespan( wsh, start, stop ); 
     918          start = atof( date ); 
     919          if ( start < 0 ) {  
     920                start += time(NULL); 
     921          } else if ( EWSConvertTime (date, &start) == EW_FAILURE ) { 
     922                sprintf( errText, "%s message w/ bad time (%s)", msgName, date ); 
     923                ewspectra_status( TypeError, ERR_BADMSG, errText ); 
     924          } 
     925          stop = start + len; 
     926   
     927          process_timespan( wsh, start, stop ); 
    916928 
    917929   } /* end of while */ 
     
    10291041        } 
    10301042        if ( find_triggers ) { 
    1031                 int geti = GetInst( "INST_WILDCARD", &(GetLogo.instid) ); 
    1032                 int getm = GetModId( "MOD_WILDCARD", &(GetLogo.mod) ); 
    1033                 int gett = GetType( "TYPE_COMPUTE_SPECTRA", &(GetLogo.type) ); 
     1043                int geti = GetInst( "INST_WILDCARD", &(GetLogo[0].instid) ); 
     1044                int getm = GetModId( "MOD_WILDCARD", &(GetLogo[0].mod) ); 
     1045                int gett = GetType( "TYPE_ACTIVATE_MODULE", &(GetLogo[0].type) ); 
    10341046                int getMsg = 0; 
    10351047                if ( ( MSrawmsg = (char *) malloc(MaxMsgSize) ) ==  NULL ) 
     
    10441056                        if ( getm ) 
    10451057                                logit( "e", "%s: MOD_WILDCARD unknown; exiting!\n", Argv0 ); 
    1046                         if ( geti ) 
    1047                                 logit( "e", "%s: TYPE_COMPUTE_SPECTRA unknown; exiting!\n", Argv0 ); 
     1058                        if ( gett ) 
     1059                                logit( "e", "%s: TYPE_ACTIVATE_MODULE unknown; exiting!\n", Argv0 ); 
    10481060                        ws2ts_purge( wsh, NULL, NULL ); 
    10491061                        exit(1); 
     
    10711083           do 
    10721084           { 
    1073                  res = tport_getmsg( &InRegion, &GetLogo, 1, 
     1085                 res = tport_getmsg( &InRegion, GetLogo, 1, 
    10741086                                                         &reclogo, &recsize, MSrawmsg, MaxMsgSize-1 ); 
    10751087           } while (res !=GET_NONE); 
Note: See TracChangeset for help on using the changeset viewer.