#include "marstartup.h"
#include "qscan345settings.h"
#include <stdio.h>
#include <string.h>
#include <ctype.h>
#include <time.h>
#include <errno.h>
#include <stdlib.h>
#include <fcntl.h>
#include <unistd.h>
#include "esd.h"
#include "marglobals.h"
#include "version.h"
#include "config.h"
Go to the source code of this file.
Defines | |
#define | CONFIGGLOBAL |
Functions | |
int | net_open (int) |
int | marStartup () |
CONFIG | GetConfig (FILE *) |
void | PutConfig (CONFIG) |
Variables | |
char | martable_dir [128] |
char | nbcode_file [128] |
int | lines |
int | status_interval |
#define CONFIGGLOBAL |
Definition at line 27 of file marstartup.cpp.
CONFIG GetConfig | ( | FILE * | ) |
Definition at line 49 of file marconfig.c.
References CONFIG::adcadd, CONFIG::adcadd_A, CONFIG::adcadd_B, CONFIG::adcoff, buf, CONFIG::chi_def, CONFIG::chi_max, CONFIG::chi_min, CONFIG::chi_speed, CONFIG::chi_steps, CONFIG::colors, CONFIG::dist_def, CONFIG::dist_max, CONFIG::dist_min, CONFIG::dist_speed, CONFIG::dist_steps, CONFIG::dosemin, CONFIG::erasetime, CONFIG::filter, CONFIG::flags, FLOAT, CONFIG::gain, CONFIG::host, i, CONFIG::init_maxdist, input_priority, InputType(), INTEGER, CONFIG::intensmin, CONFIG::intenswarn, j, CONFIG::kV, CONFIG::lambda_var, CONFIG::lock_speed, CONFIG::mA, MAX_IGNORE_ERR, MAX_SCANMODE, CONFIG::memory, CONFIG::ome_def, CONFIG::ome_max, CONFIG::ome_min, CONFIG::ome_speed, CONFIG::ome_steps, CONFIG::phi_def, CONFIG::phi_speed, CONFIG::phi_steps, CONFIG::polar, CONFIG::port, CONFIG::prelock_speed, RemoveBlanks(), CONFIG::roff, CONFIG::scantime, SetConfig(), CONFIG::sets, CONFIG::shutter_delay, CONFIG::size, CONFIG::slitx, CONFIG::slity, CONFIG::source, CONFIG::spiral_max, CONFIG::spiral_scale, stat_wavelength, status_interval, str, CONFIG::thet_def, CONFIG::thet_max, CONFIG::thet_min, CONFIG::thet_speed, CONFIG::thet_steps, CONFIG::toff, CONFIG::units_dose, CONFIG::units_time, CONFIG::use_adc, CONFIG::use_base, CONFIG::use_chi, CONFIG::use_dist, CONFIG::use_distmax, CONFIG::use_distmin, CONFIG::use_dose, CONFIG::use_erase, CONFIG::use_error, CONFIG::use_html, CONFIG::use_image, CONFIG::use_msg, CONFIG::use_ome, CONFIG::use_phi, CONFIG::use_run, CONFIG::use_shell, CONFIG::use_sound, CONFIG::use_stats, CONFIG::use_thet, CONFIG::use_txt, CONFIG::use_wave, CONFIG::use_xray, CONFIG::use_zaxis, CONFIG::wavelength, WrongType(), CONFIG::xcen, and CONFIG::ycen.
Referenced by MarStartup::marStartup().
{ CONFIG h; int i,j,k, size, ntok=0, nmode=0; char buf[128], *key, *token[20]; extern int input_priority; extern float stat_wavelength; /* Set defaults */ h = SetConfig(); fseek( fp, 0, SEEK_SET ); /* * Read input lines */ while( fgets(buf,128,fp)!= NULL){ if ( strlen(buf) < 2 ) continue; /* Scip comment lines */ if( buf[0] == '#' || buf[0]=='!' ) continue; /* Tokenize input string */ /* ntok = number of items on input line - 1 (key) */ ntok = -1; for(i=0;i<128;i++) { /* Convert TAB to SPACE */ if( buf[i] == '\t') buf[i] = ' '; if( buf[i] == '\f') buf[i] = ' '; if( buf[i] == '\n') buf[i] = '\0'; if( buf[i] == '\r') buf[i] = '\0'; if( buf[i] == '\0') break; } for(i=0;i<strlen(buf);i++) { if( buf[i] == ' ' ) continue; ntok++; for (j=i;j<strlen(buf);j++) if( buf[j] == ' ') break; i=j; } if (strlen(buf) < 3 ) continue; key = strtok( buf, " "); /* Convert keyword to uppercase */ for ( i=0; i<strlen(key); i++ ) if ( isalnum( key[i] ) ) key[i] = toupper( key[i] ); for(i=0;i<ntok;i++) { token[i] = strtok( NULL, " "); strcpy( str, token[i] ); if ( !strstr( key, "NET" ) ) for ( j=0; j<strlen( str ); j++ ) if ( isalnum( str[j] ) ) str[j] = toupper( str[j] ); strcpy( token[i] , str ); RemoveBlanks( token[i] ); } /* Keyword: GAIN */ if(!strncmp(key,"GAIN",4) && ntok >= 0 ) if ( InputType( token[0] ) >= INTEGER ) h.gain = atof( token[0] ); else WrongType( FLOAT, key, token[0] ); else if( !strncmp(key,"MONO",4) && ntok >=0 ) { for ( i=0; i<ntok; i++ ) { if ( strstr(token[i],"POLA" ) ) { i++; if ( InputType( token[i] ) >= INTEGER ) h.polar = atof( token[i] ); else WrongType( FLOAT, key, token[i] ); } else { strcat( h.filter, token[i] ); } } } /* Keyword: SHUTTER_DELAY */ else if(!strncmp(key,"SHUT",4) && ntok >= 0 ) if ( InputType( token[0] ) == INTEGER ) h.shutter_delay = atoi( token[0] ); else WrongType( INTEGER, key, token[0] ); /* Keyword: SETS */ else if(!strncmp(key,"SETS",4) && ntok >= 0 ) if ( InputType( token[0] ) == INTEGER ) h.sets = (unsigned char)atoi( token[0] ); else WrongType( INTEGER, key, token[0] ); /* Keyword: GENERATOR */ else if( !strncmp(key,"GENE",4) && ntok >= 0 ) { for(i=0;i<ntok;i++) { if ( strstr( token[i], "MA" ) ) { i++; if ( InputType( token[i] ) >= INTEGER ) { h.mA = atof( token[i] ); } else WrongType( FLOAT, key, token[i] ); } else if ( strstr( token[i], "KV" ) ) { i++; if ( InputType( token[i] ) >= INTEGER ) { h.kV = atof( token[i] ); } else WrongType( FLOAT, key, token[i] ); } else strcat( h.source, token[i] ); } } /* Keyword: COLORS */ else if(!strncmp(key,"COLO",4) && ntok >= 0 ) if ( InputType( token[0] ) == INTEGER ) h.colors = (unsigned char)atoi( token[0] ); else WrongType( INTEGER, key, token[0] ); /* Keyword: PRIORITY */ else if(!strncmp(key,"PRIO",4) && ntok >= 0 && input_priority < 0 ) if ( InputType( token[0] ) == INTEGER ) input_priority = atoi( token[0] ); else WrongType( INTEGER, key, token[0] ); /* Keyword: FLAGS */ else if(!strncmp(key,"FLAG",4) && ntok >= 0 ) if ( InputType( token[0] ) == INTEGER ) h.flags = atoi( token[0] ); else WrongType( INTEGER, key, token[0] ); /* Keyword: SPIRAL */ else if(!strncmp(key,"SPIR",4) && ntok >= 0 ) for(i=0;i<ntok;i++) { if ( strstr( token[i], "MAX" ) ) { i++; if ( InputType( token[i] ) == INTEGER ) { h.spiral_max = atoi( token[i] ); } else WrongType( INTEGER, key, token[i] ); } else if ( strstr( token[i], "SCA" ) ) { i++; if ( InputType( token[i] ) >= INTEGER ) { h.spiral_scale = atof( token[i] ); } else WrongType( FLOAT, key, token[i] ); } } /* Keyword: INTENSITY */ else if(!strncmp(key,"INTE",4) && ntok >= 0 ) { for(i=0;i<ntok;i++) { if ( strstr( token[i], "MIN" ) ) { i++; if ( InputType( token[i] ) >= INTEGER ) h.intensmin = atof( token[i] ); else WrongType( FLOAT, key, token[i] ); } else if ( strstr( token[i], "WAR" ) ) { i++; if ( InputType( token[i] ) >= INTEGER ) h.intenswarn = atof( token[i] ); else WrongType( FLOAT, key, token[i] ); } else if ( strstr( token[i], "DOS" ) ) { i++; if ( InputType( token[i] ) >= INTEGER ) h.dosemin = (float)atof( token[i] ); else WrongType( FLOAT, key, token[i] ); } } } /* Keyword: COLLIMATOR */ else if( !strncmp(key,"COLL",4) && ntok >= 1 ) { for(i=0;i<ntok;i++) { if ( strstr( token[i], "WID" ) ) { i++; if ( InputType( token[i] ) >= INTEGER ) { h.slitx= atof( token[i] ); } else WrongType( FLOAT, key, token[i] ); } else if ( strstr( token[i], "HEI" ) ) { i++; if ( InputType( token[i] ) >= INTEGER ) { h.slity = atof( token[i] ); } else WrongType( FLOAT, key, token[i] ); } } } else if(!strncmp(key,"PHI",3) && ntok >= 0 ) { for(i=0;i<ntok;i++) { if ( strstr( token[i], "SPE" ) ) { i++; if ( InputType( token[i] ) == INTEGER ) { h.phi_speed = atoi( token[i] ); } else WrongType( INTEGER, key, token[i] ); } else if ( strstr( token[i], "STE" ) ) { i++; if ( InputType( token[i] ) == INTEGER ) { h.phi_steps = atoi( token[i] ); } else WrongType( INTEGER, key, token[i] ); } else if ( strstr( token[i], "DEF" ) ) { i++; if ( InputType( token[i] ) >= INTEGER ) { h.phi_def = atof( token[i] ); } else WrongType( FLOAT, key, token[i] ); } } } else if(!strncmp(key,"OME",3) && ntok >= 0 ) { for(i=0;i<ntok;i++) { if ( strstr( token[i], "SPE" ) ) { i++; if ( InputType( token[i] ) == INTEGER ) { h.ome_speed = atoi( token[i] ); } else WrongType( INTEGER, key, token[i] ); } else if ( strstr( token[i], "STE" ) ) { i++; if ( InputType( token[i] ) == INTEGER ) { h.ome_steps = atoi( token[i] ); } else WrongType( INTEGER, key, token[i] ); } else if ( strstr( token[i], "MIN" ) ) { i++; if ( InputType( token[i] ) >= INTEGER ) { h.ome_min = atof( token[i] ); } else WrongType( FLOAT, key, token[i] ); } else if ( strstr( token[i], "MAX" ) ) { i++; if ( InputType( token[i] ) >= INTEGER ) { h.ome_max = atof( token[i] ); } else WrongType( FLOAT, key, token[i] ); } else if ( strstr( token[i], "DEF" ) ) { i++; if ( InputType( token[i] ) >= INTEGER ) { h.ome_def = atof( token[i] ); } else WrongType( FLOAT, key, token[i] ); } } } else if(!strncmp(key,"CHI",3) && ntok >= 0 ) { for(i=0;i<ntok;i++) { if ( strstr( token[i], "SPE" ) ) { i++; if ( InputType( token[i] ) == INTEGER ) { h.chi_speed = atoi( token[i] ); } else WrongType( INTEGER, key, token[i] ); } else if ( strstr( token[i], "STE" ) ) { i++; if ( InputType( token[i] ) == INTEGER ) { h.chi_steps = atoi( token[i] ); } else WrongType( INTEGER, key, token[i] ); } else if ( strstr( token[i], "MIN" ) ) { i++; if ( InputType( token[i] ) >= INTEGER ) { h.chi_min = atof( token[i] ); } else WrongType( FLOAT, key, token[i] ); } else if ( strstr( token[i], "MAX" ) ) { i++; if ( InputType( token[i] ) >= INTEGER ) { h.chi_max = atof( token[i] ); } else WrongType( FLOAT, key, token[i] ); } else if ( strstr( token[i], "DEF" ) ) { i++; if ( InputType( token[i] ) >= INTEGER ) { h.chi_def = atof( token[i] ); } else WrongType( FLOAT, key, token[i] ); } } } else if(!strncmp(key,"THET",4) && ntok >= 0 ) { for(i=0;i<ntok;i++) { if ( strstr( token[i], "SPE" ) ) { i++; if ( InputType( token[i] ) == INTEGER ) { h.thet_speed = atoi( token[i] ); } else WrongType( INTEGER, key, token[i] ); } else if ( strstr( token[i], "STE" ) ) { i++; if ( InputType( token[i] ) == INTEGER ) { h.thet_steps = atoi( token[i] ); } else WrongType( INTEGER, key, token[i] ); } else if ( strstr( token[i], "MIN" ) ) { i++; if ( InputType( token[i] ) >= INTEGER ) { h.thet_min = atof( token[i] ); } else WrongType( FLOAT, key, token[i] ); } else if ( strstr( token[i], "MAX" ) ) { i++; if ( InputType( token[i] ) >= INTEGER ) { h.thet_max = atof( token[i] ); } else WrongType( FLOAT, key, token[i] ); } else if ( strstr( token[i], "DEF" ) ) { i++; if ( InputType( token[i] ) >= INTEGER ) { h.thet_def = atof( token[i] ); } else WrongType( FLOAT, key, token[i] ); } } } else if(!strncmp(key,"DIST",4) && ntok >= 0 ) for(i=0;i<ntok;i++) { if ( strstr( token[i], "SPE" ) ) { i++; if ( InputType( token[i] ) == INTEGER ) { h.dist_speed = atoi( token[i] ); } else WrongType( INTEGER, key, token[i] ); } else if ( strstr( token[i], "STE" ) ) { i++; if ( InputType( token[i] ) == INTEGER ) { h.dist_steps = atoi( token[i] ); } else WrongType( INTEGER, key, token[i] ); } else if ( strstr( token[i], "DEF" ) ) { i++; if ( InputType( token[i] ) >= INTEGER ) { h.dist_def = atof( token[i] ); } else WrongType( FLOAT, key, token[i] ); } else if ( strstr( token[i], "USEMIN" ) ) h.use_distmin = 1; else if ( strstr( token[i], "USEMAX" ) ) h.use_distmax = 1; else if ( strstr( token[i], "MIN" ) ) { i++; if ( InputType( token[i] ) >= INTEGER ) { h.dist_min = atof( token[i] ); } else WrongType( FLOAT, key, token[i] ); } else if ( strstr( token[i], "MAX" ) ) { i++; if ( InputType( token[i] ) >= INTEGER ) { h.dist_max = atof( token[i] ); } else WrongType( FLOAT, key, token[i] ); } } else if(!strncmp(key,"LOCK",4) && ntok >= 0 ) { for(i=0;i<ntok;i++) { if ( strstr( token[i], "PRE" ) ) { i++; if ( InputType( token[i] ) == INTEGER ) { h.prelock_speed = atoi( token[i] ); } else WrongType( INTEGER, key, token[i] ); } else if ( strstr( token[i], "LOC" ) ) { i++; if ( InputType( token[i] ) == INTEGER ) { h.lock_speed = atoi( token[i] ); } else WrongType( INTEGER, key, token[i] ); } } } else if(!strncmp(key,"WAVE",4) && ntok >= 0 ) { if ( strstr( token[0], "VAR" ) ) h.lambda_var = 1; else { h.lambda_var = 0; if ( InputType( token[0] ) >= INTEGER ) h.wavelength = stat_wavelength = atof( token[0] ); else WrongType( FLOAT, key, token[0] ); } } /* Keyword: MODE */ else if(!strncmp(key,"MODE",4) && ntok >= 0 ) { for ( i=nmode=0; i<ntok; i++ ) { if ( strstr( token[i], "SCAN" ) ) { i++; if ( InputType( token[i] ) >= INTEGER ) h.scantime[nmode] = atof( token[i] ); else WrongType( FLOAT, key, token[i] ); } else if ( strstr( token[i], "ERAS" ) ) { i++; if ( InputType( token[i] ) >= INTEGER ) h.erasetime[nmode] = atof( token[i] ); else WrongType( FLOAT, key, token[i] ); } else if ( strstr( token[i], "ROFF" ) ) { i++; if ( InputType( token[i] ) >= INTEGER) h.roff[nmode] = atof( token[i] ); else WrongType( FLOAT, key, token[i] ); } else if ( strstr( token[i], "TOFF" ) ) { i++; if ( InputType( token[i] ) >= INTEGER) h.toff[nmode] = atof( token[i] ); else WrongType( FLOAT, key, token[i] ); } else if ( strstr( token[i], "XC" ) ) { i++; if ( InputType( token[i] ) >= INTEGER) h.xcen = atof( token[i] ); else WrongType( FLOAT, key, token[i] ); } else if ( strstr( token[i], "YC" ) ) { i++; if ( InputType( token[i] ) >= INTEGER) h.ycen = atof( token[i] ); else WrongType( FLOAT, key, token[i] ); } else if ( strstr( token[i], "ADC" ) ) { i++; if ( InputType( token[i] ) == INTEGER) h.adcoff[nmode] = atoi( token[i] ); else WrongType( INTEGER, key, token[i] ); } else if ( strstr( token[i], "AADD" ) ) { i++; if ( InputType( token[i] ) == INTEGER) h.adcadd_A[nmode] = atoi( token[i] ); else WrongType( INTEGER, key, token[i] ); } else if ( strstr( token[i], "BADD" ) ) { i++; if ( InputType( token[i] ) == INTEGER) h.adcadd_B[nmode] = atoi( token[i] ); else WrongType( INTEGER, key, token[i] ); } else if ( strstr( token[i], "ADD" ) ) { i++; if ( InputType( token[i] ) == INTEGER) h.adcadd[nmode] = atoi( token[i] ); else WrongType( INTEGER, key, token[i] ); } else { if ( InputType( token[i] ) == INTEGER ){ size = atoi( token[i] ); for ( nmode=0; nmode<MAX_SCANMODE; nmode++ ) { if ( size == h.size[nmode] ) break; } } else { WrongType( INTEGER, key, token[i] ); break; } } } } /* Keyword: UNITS */ else if(!strncmp(key,"UNIT",4) && ntok >= 0 ) for(i=0;i<ntok;i++) { if ( strstr( token[i], "TIME" ) ) { i++; if ( InputType( token[i] ) == INTEGER ) { h.units_time = atoi( token[i] ); } else WrongType( INTEGER, key, token[i] ); } else if ( strstr( token[i], "DOS" ) ) { i++; if ( InputType( token[i] ) == INTEGER ) { h.units_dose = atoi( token[i] ); } else WrongType( INTEGER, key, token[i] ); } } /* Keyword: INITIALIZE */ else if(!strncmp(key,"INIT",4) && ntok >= 0 ) for(i=0;i<ntok;i++) { if ( strstr( token[i], "MIN" ) ) { h.init_maxdist=0; } else if ( strstr( token[i], "MAX" ) ) { h.init_maxdist=1; } } /* Keyword: IGNORE */ else if(!strncmp(key,"IGNO",4) && ntok >= 0 ) for(i=0;i<ntok;i++) { if ( strstr( token[i], "PHI" ) ) h.use_phi = 0; else if ( strstr( token[i], "OME" ) ) h.use_ome = 0; else if ( strstr( token[i], "CHI" ) ) h.use_chi = 0; else if ( strstr( token[i], "THE" ) ) h.use_thet = 0; else if ( strstr( token[i], "DIS" ) ) h.use_dist = 0; else if ( strstr( token[i], "ERA" ) ) h.use_erase = 0; else if ( strstr( token[i], "XRA" ) ) h.use_xray = 0; else if ( strstr( token[i], "SOU" ) ) h.use_sound = 0; else if ( strstr( token[i], "BAS" ) ) h.use_base = 0; else if ( strstr( token[i], "IMA" ) ) h.use_image = 0; else if ( strstr( token[i], "DOS" ) ) h.use_dose = 0; else if ( strstr( token[i], "RUN" ) ) h.use_run = 0; else if ( strstr( token[i], "STA" ) ) h.use_stats = 0; else if ( strstr( token[i], "Z-A" ) ) h.use_zaxis = 0; else if ( strstr( token[i], "WAV" ) ) h.use_wave = 0; else if ( strstr( token[i], "SHE" ) ) h.use_shell= 0; else if ( strstr( token[i], "ERR" ) ) h.use_error[0] = 1; else if ( h.use_error[0] > 0 ) { strcpy( str, token[i] ); for ( j=k=0; k<strlen(str); k++ ) { if ( !isdigit( str[k] ) ) { j=1; break; } } if ( j==0 && h.use_error[0] < MAX_IGNORE_ERR ) { j = atoi(str); h.use_error[h.use_error[0]] = atoi(str); h.use_error[0] ++; } } else if ( strstr( token[i], "SPY" ) ) h.use_msg = 0; else if ( strstr( token[i], "ADC" ) ) h.use_adc = 0; else if ( strstr( token[i], "HTM" ) ) h.use_html = 0; else if ( strstr( token[i], "SUM" ) ) h.use_txt = 0; } /* Keyword: USE */ else if(!strncmp(key,"USE",3) && ntok >= 0 ) for(i=0;i<ntok;i++) { if ( strstr( token[i], "PHI" ) ) h.use_phi = 1; else if ( strstr( token[i], "OME" ) ) h.use_ome = 1; else if ( strstr( token[i], "CHI" ) ) h.use_chi = 1; else if ( strstr( token[i], "THE" ) ) h.use_thet = 1; else if ( strstr( token[i], "DIS" ) ) h.use_dist = 1; else if ( strstr( token[i], "ERA" ) ) h.use_erase = 1; else if ( strstr( token[i], "XRA" ) ) h.use_xray = 1; else if ( strstr( token[i], "SOU" ) ) h.use_sound = 1; else if ( strstr( token[i], "BAS" ) ) h.use_base = 1; else if ( strstr( token[i], "IMA" ) ) h.use_image = 1; else if ( strstr( token[i], "DOS" ) ) h.use_dose = 1; else if ( strstr( token[i], "SPI" ) ) h.use_image = 2; else if ( strstr( token[i], "SPK" ) ) h.use_image = 3; else if ( strstr( token[i], "RUN" ) ) h.use_run = 1; else if ( strstr( token[i], "STATS" ) ) h.use_stats = 1; else if ( strstr( token[i], "STATUS" ) ) status_interval = 1; else if ( strstr( token[i], "Z-A" ) ) h.use_zaxis = 1; else if ( strstr( token[i], "WAV" ) ) h.use_wave = 1; else if ( strstr( token[i], "SHE" ) ) h.use_shell= 1; else if ( strstr( token[i], "SPY" ) ) h.use_msg = 1; else if ( strstr( token[i], "ADC" ) ) h.use_adc = 1; else if ( strstr( token[i], "HTM" ) ) h.use_html = 1; else if ( strstr( token[i], "SUM" ) ) h.use_txt = 1; } /* Keyword: NETWORK */ else if(!strncmp(key,"NET",3) && ntok >= 1 ) for(i=0;i<ntok;i++) { if ( strstr( token[i], "PORT" ) || strstr( token[i], "port") ) { i++; if ( InputType( token[i] ) == INTEGER ) { h.port = atoi( token[i] ); } else WrongType( INTEGER, key, token[i] ); } else if ( strstr( token[i], "HOST" ) || strstr( token[i], "host") ) { i++; strcpy( h.host, token[i] ); } else if ( strstr( token[i], "TIMEOUT") || strstr( token[i], "timeout") ) { double tmo; i++; tmo = atof( token[i] ); } /* Host */ else { strcpy( h.host, token[i] ); } } /* Keyword: MEMORY */ else if(!strncmp(key,"MEMO",4) && ntok >= 0 ) if ( strstr( token[0], "SMA" ) ) h.memory = 0; } /* End of while loop */ /* * End of input lines (while loop) */ /* Ignore all base functions requested */ if ( h.use_base == 0 ) { h.use_phi = 0; h.use_chi = 0; h.use_ome = 0; h.use_thet = 0; h.use_dist = 0; h.use_xray = 0; } if ( h.use_wave ) h.lambda_var = 1; return( h ); }
int marStartup | ( | ) |
int net_open | ( | int | ) |
void PutConfig | ( | CONFIG | ) |
Definition at line 936 of file marconfig.c.
References CONFIG::adcadd, CONFIG::adcadd_A, CONFIG::adcadd_B, CONFIG::adcoff, CONFIG::chi_def, CONFIG::chi_max, CONFIG::chi_min, CONFIG::chi_speed, CONFIG::chi_steps, CONFIG::colors, CONFIG::dist_def, CONFIG::dist_max, CONFIG::dist_min, CONFIG::dist_speed, CONFIG::dist_steps, CONFIG::dosemin, CONFIG::erasetime, CONFIG::filter, CONFIG::flags, CONFIG::gain, CONFIG::host, i, CONFIG::init_maxdist, CONFIG::intensmin, CONFIG::intenswarn, j, CONFIG::kV, CONFIG::mA, MAX_SCANMODE, CONFIG::memory, CONFIG::ome_def, CONFIG::ome_max, CONFIG::ome_min, CONFIG::ome_speed, CONFIG::ome_steps, CONFIG::phi_def, CONFIG::phi_speed, CONFIG::phi_steps, CONFIG::polar, CONFIG::port, CONFIG::roff, CONFIG::scantime, CONFIG::sets, CONFIG::size, CONFIG::slitx, CONFIG::slity, CONFIG::source, CONFIG::spiral_max, CONFIG::spiral_scale, status_interval, str, CONFIG::thet_def, CONFIG::thet_max, CONFIG::thet_min, CONFIG::thet_speed, CONFIG::thet_steps, CONFIG::toff, CONFIG::units_dose, CONFIG::units_time, CONFIG::use_adc, CONFIG::use_chi, CONFIG::use_dist, CONFIG::use_distmax, CONFIG::use_distmin, CONFIG::use_erase, CONFIG::use_error, CONFIG::use_html, CONFIG::use_image, CONFIG::use_msg, CONFIG::use_ome, CONFIG::use_phi, CONFIG::use_run, CONFIG::use_shell, CONFIG::use_sound, CONFIG::use_thet, CONFIG::use_txt, CONFIG::use_wave, CONFIG::use_xray, CONFIG::use_zaxis, verbose, and CONFIG::wavelength.
Referenced by MarStartup::marStartup().
{ int i,j; char num[10]; /* extern FILE *fpout; */ extern int verbose; status_interval = 0; for ( i=0; i<MAX_SCANMODE; i++ ) { if ( h.adcadd[i] != 0 ) h.adcadd_A[i] = h.adcadd_B[i] = h.adcadd[i]; } for ( i=0; i<MAX_SCANMODE; i++ ) { sprintf( str, "scan345: MODE %d SCAN %1.1f ERAS %1.1f\n",h.size[i],h.scantime[i],h.erasetime[i]); if ( verbose > 2 ) fprintf( stdout, str ); sprintf( str, "scan345: MODE %d ROFF %1.1f TOFF %1.1f ADC %d AADD %d BADD %d\n",h.size[i],h.roff[i],h.toff[i],h.adcoff[i],h.adcadd_A[i],h.adcadd_B[i]); if ( verbose > 2 ) fprintf( stdout, str ); } if ( h.use_phi ) { sprintf( str, "scan345: PHI SPEED %d STEPS %d\n",h.phi_speed,h.phi_steps); if ( verbose > 2 ) fprintf( stdout, str ); } else { sprintf( str, "scan345: PHI DEFAULT %1.3f\n",h.phi_def); if ( verbose > 2 ) fprintf( stdout, str ); } if ( h.use_ome ) { sprintf( str, "scan345: OMEGA SPEED %d STEPS %d MIN %1.3f MAX %1.3f\n",h.ome_speed,h.ome_steps,h.ome_min,h.ome_max); if ( verbose > 2 ) fprintf( stdout, str ); } else { sprintf( str, "scan345: OMEGA DEFAULT %1.3f\n",h.ome_def); if ( verbose > 2 ) fprintf( stdout, str ); } if ( h.use_chi ) { sprintf( str, "scan345: CHI SPEED %d STEPS %d MIN %1.3f MAX %1.3f\n",h.chi_speed,h.chi_steps,h.chi_min,h.chi_max); if ( verbose > 2 ) fprintf( stdout, str ); } else { sprintf( str, "scan345: CHI DEFAULT %1.3f\n",h.chi_def); if ( verbose > 2 ) fprintf( stdout, str ); } if ( h.use_thet ) { sprintf( str, "scan345: THETA SPEED %d STEPS %d MIN %1.3f MAX %1.3f\n",h.thet_speed,h.thet_steps,h.thet_min,h.thet_max); if ( verbose > 2 ) fprintf( stdout, str ); } else { sprintf( str, "scan345: THETA DEFAULT %1.3f\n",h.thet_def); if ( verbose > 2 ) fprintf( stdout, str ); } if ( h.use_dist ) { sprintf( str, "scan345: DISTANCE SPEED %d STEPS %d MIN %1.3f MAX %1.3f",h.dist_speed,h.dist_steps,h.dist_min,h.dist_max); if ( h.use_distmin ) strcat( str, " USEMIN " ); if ( h.use_distmax ) strcat( str, " USEMAX " ); strcat( str, "\n"); if ( verbose > 2 ) fprintf( stdout, str ); } else { sprintf( str, "scan345: DISTANCE DEFAULT %1.3f\n",h.dist_def); if ( verbose > 2 ) fprintf( stdout, str ); } sprintf( str, "scan345: UNITS TIME %d DOSE %d\n",h.units_time,h.units_dose); if ( verbose > 2 ) fprintf( stdout, str ); sprintf( str, "scan345: IGNORE "); if ( h.use_phi ==0 ) strcat(str, "PHI "); if ( h.use_ome ==0 ) strcat(str, "OMEGA "); if ( h.use_chi ==0 ) strcat(str, "CHI "); if ( h.use_thet ==0 ) strcat(str, "THETA "); if ( h.use_zaxis==0 ) strcat(str, "Z-AXIS "); if ( h.use_dist ==0 ) strcat(str, "DISTANCE"); strcat( str, "\n"); if ( strlen( str ) > 20 ) { if ( verbose > 2 ) fprintf( stdout, str ); } sprintf( str, "scan345: IGNORE "); if ( h.use_xray ==0 ) strcat(str, "XRAY "); if ( h.use_erase==0 ) strcat(str, "ERASE "); if ( h.use_adc ==0 ) strcat(str, "ADC "); if ( h.use_sound==0 ) strcat(str, "SOUND "); if ( h.use_shell==0 ) strcat(str, "SHELL "); strcat( str, "\n"); if ( strlen( str ) > 20 ) { if ( verbose > 2 ) fprintf( stdout, str ); } sprintf( str, "scan345: IGNORE "); if ( h.use_msg ==0 ) strcat(str, "SPY "); if ( h.use_wave ==0 ) strcat(str, "WAVE "); if ( h.use_run ==0 ) strcat(str, "RUN "); if ( h.use_html ==0 ) strcat(str, "HTML "); if ( h.use_txt ==0 ) strcat(str, "SUMMARY "); strcat( str, "\n"); if ( strlen( str ) > 20 ) { if ( verbose > 2 ) fprintf( stdout, str ); } if ( h.use_error[0] > 1 ) { sprintf( str, "scan345: IGNORE ERROR"); for ( j=1; j<h.use_error[0]; j++ ) { sprintf( num, " %d", h.use_error[j] ); strcat ( str, num ); } strcat( str, "\n"); if ( verbose > 2 ) fprintf( stdout, str ); } sprintf( str, "scan345: USE "); if ( h.use_phi ==1 ) strcat(str, "PHI "); if ( h.use_ome ==1 ) strcat(str, "OMEGA "); if ( h.use_chi ==1 ) strcat(str, "CHI "); if ( h.use_thet ==1 ) strcat(str, "THETA "); if ( h.use_zaxis==1 ) strcat(str, "Z-AXIS "); if ( h.use_dist ==1 ) strcat(str, "DISTANCE "); strcat( str, "\n"); if ( strlen( str ) > 20 ) { if ( verbose > 2 ) fprintf( stdout, str ); } sprintf( str, "scan345: USE "); if ( h.use_xray ==1 ) strcat(str, "XRAY "); if ( h.use_erase==1 ) strcat(str, "ERASE "); if ( h.use_sound==1 ) strcat(str, "SOUND "); if ( h.use_shell==1 ) strcat(str, "SHELL "); if ( h.use_adc ==1 ) strcat(str, "ADC "); if ( status_interval) strcat(str, "STATUS "); strcat( str, "\n"); if ( strlen( str ) > 20 ) { if ( verbose > 2 ) fprintf( stdout, str ); } sprintf( str, "scan345: USE "); if ( h.use_wave ==1 ) strcat(str, "WAVE "); if ( h.use_msg ==1 ) strcat(str, "SPY "); if ( h.use_run ==1 ) strcat(str, "RUN "); if ( h.use_html ==1 ) strcat(str, "HTML "); if ( h.use_txt ==1 ) strcat(str, "SUMMARY "); if ( h.use_image==1 ) strcat(str, "IMAGE "); if ( h.use_image==2 ) strcat(str, "SPIRAL "); if ( h.use_image==3 ) strcat(str, "SPK "); strcat( str, "\n"); if ( strlen( str ) > 20 ) { if ( verbose > 2 ) fprintf( stdout, str ); } if ( h.init_maxdist ) sprintf( str, "scan345: INITIAL MAXDIST\n"); else sprintf( str, "scan345: INITIAL MINDIST\n"); if ( verbose > 2 ) fprintf( stdout, str ); sprintf( str, "scan345: NETWORK HOST %s PORT %d\n",h.host,h.port); if ( verbose > 2 ) fprintf( stdout, str ); sprintf( str, "scan345: SPIRAL SCALE %1.3f MAX %d\n",h.spiral_scale, h.spiral_max); if ( verbose > 2 ) fprintf( stdout, str ); sprintf( str, "scan345: FLAGS %d\n",h.flags); if ( verbose > 2 ) fprintf( stdout, str ); sprintf( str, "scan345: COLORS %d\n",h.colors); if ( verbose > 2 ) fprintf( stdout, str ); if ( h.sets < 4 ) h.sets = 4; if ( h.sets > 4 ) h.sets = 8; sprintf( str, "scan345: SETS %d\n",h.sets); if ( verbose > 2 ) fprintf( stdout, str ); if ( h.memory ) sprintf( str, "scan345: MEMORY LARGE\n"); else sprintf( str, "scan345: MEMORY SMALL\n"); if ( verbose > 2 ) fprintf( stdout, str ); if ( h.gain != 1.0 ) { sprintf( str, "scan345: GAIN %1.0f\n",h.gain); if ( verbose > 2 ) fprintf( stdout, str ); } sprintf( str, "scan345: INTENSITY MIN %1.3f WARNING %1.1f DOSE %1.3f\n",h.intensmin,h.intenswarn,h.dosemin); if ( verbose > 2 ) fprintf( stdout, str ); sprintf( str, "scan345: WAVELENGTH %1.5f\n",h.wavelength); if ( verbose > 2 ) fprintf( stdout, str ); sprintf( str, "scan345: MONOCHROM %s POLAR %1.3f\n",h.filter, h.polar); if ( verbose > 2 ) fprintf( stdout, str ); sprintf( str, "scan345: COLLIMATOR WIDTH %1.3f HEIGHT %1.3f\n",h.slitx,h.slity); if ( verbose > 2 ) fprintf( stdout, str ); sprintf( str, "scan345: GENERATOR %s mA %1.1f kV %1.1f\n",h.source, h.mA,h.kV); if ( verbose > 2 ) fprintf( stdout, str ); if ( status_interval ) { sprintf( str, "scan345: STATUS %d\n",status_interval); if ( verbose > 2 ) fprintf( stdout, str ); } if ( h.use_zaxis ) h.use_ome=1; }
int lines |
char martable_dir[128] |
Definition at line 67 of file marstartup.cpp.
Referenced by MarXF::mar_start_scan_readout(), and MarStartup::marStartup().
char nbcode_file[128] |
Definition at line 68 of file marstartup.cpp.
Referenced by MarXF::mar_start_scan_readout(), and MarStartup::marStartup().
int status_interval |
Definition at line 48 of file scan345.cpp.