#include <stdio.h>#include <ctype.h>#include <string.h>#include <stdlib.h>#include <time.h>#include <math.h>#include <unistd.h>#include <fcntl.h>#include <sys/types.h>#include <sys/stat.h>#include "marcmd.h"#include "esd.h"#include "marglobals.h"#include "mararrays.h"#include "config.h"#include "version.h"#include <mar345_header.h>#include <mar300_header.h>#include <nb_header.h>#include "marxf.h"
Go to the source code of this file.
Defines | |
| #define | NB_SIZE 1024 |
| #define | BOXSIZE 100 |
| #define | BOX_OFF 100 |
| #define | ltell(a) lseek( a, 0, SEEK_CUR ) |
| #define | min0(a, b) if ( b < a ) a = b |
| #define | max0(a, b) if ( b > a ) a = b |
Functions | |
| int | put_pck (unsigned short int *, int, int, int) |
| void | swaplong (char *, int) |
| void | swapshort (char *, int) |
| int | Putmar345Header (int, MAR345_HEADER) |
| int | Putmar300Header (int, int, MAR300_HEADER) |
| MAR345_HEADER | Getmar345Header (FILE *) |
| MARNB_HEADER | GetmarNBHeader (FILE *) |
| int | PutCIFHeader (char *, char *) |
| int | PutCIFData (char *, char *, char, unsigned int *) |
| int | GetCIFData (char *, char *, FILE *, unsigned int *) |
| void | mar3452CIFHeader (char *, char *, MAR345_HEADER) |
| float | GetResol (float, float, float) |
| void | rotate_i4 (unsigned int *, int) |
| void | rotate_i4_anti (unsigned int *, int) |
Variables | |
| MAR345_HEADER | h345 |
| char | large_mem = 1 |
| char | scan_in_progress = 0 |
| char | xf_in_progress = 0 |
| char | op_in_progress = 0 |
| char | last_image [128] = { ""} |
| char | is_data = 0 |
| int | last_total = 0 |
| int | bytes2xfer |
| static int | n1 = 0 |
| static int | n2 = 0 |
| static int | adcavg1 |
| static int | adcavg2 |
| static int | adcavg11 |
| static int | adcavg21 |
| static int | xf_histo [65600] |
| static int | hist_begin |
| static int | hist_end |
| static int | hist_max |
| static int | add_A |
| static int | add_B |
| int | valmax |
| int | valmin |
| int | sp_pixels |
| int | xf_pixels |
| int | maximum_pixels |
| int | maximum_block |
| int | maximum_bytes |
| int | data_offset |
| int | current_pixel |
| int | xform_status |
| int | Imax |
| float | AvgI |
| float | SigI |
| static char | adc_channel = 0 |
| static unsigned short | i2_record [MAX_SIZE] |
| static STRONG | strong_rec [MAX_SIZE/2] |
| static FILE * | fpnb = NULL |
| static int | fdspiral = -1 |
| static int | iindex = 0 |
| static int | i_x0 = 0 |
| static int | j_y0 = 0 |
| static int | max_spiral_int = 0 |
| static int | spiral_offset = 0 |
| static int | ac_size = 0 |
| static int | i_rec = 1 |
| static int | xf_rec = 0 |
| static int | ns_rec = 0 |
| static int | fdxf = 0 |
| static int | swap_nb = 0 |
| static char | start_with_A = 1 |
| static int | spiral_size |
| static int | total_pixels |
| static int | last_block |
| static int | last_pixel |
| static int | istrong |
| static int | nskip |
| static int | poff |
| static int | nb_index |
| static int | lin_dxy [8] |
| static int | saturation |
| static char | spiral_only |
| static float | fract_intens |
| static MAR300_HEADER | h300 |
| static MARNB_HEADER | nb |
| static signed char | x_rec [NB_SIZE] |
| static signed char | y_rec [NB_SIZE] |
| static unsigned char | nb_rec [NB_SIZE] |
| static unsigned short | px_rec [9 *NB_SIZE] |
| static unsigned char | bit [8] = { 1, 2, 4, 8, 16, 32, 64, 128 } |
| int | adc1 |
| int | adc2 |
| int | stat_blocks_sent |
| int | com_scanmode |
| char | input_skip_op |
| char | skip_op |
| char | keep_image |
| char | do_xform |
| int | fdnb |
| int | stat_scan_add |
| int | edit_output |
| int | nstrong |
| int | nsat |
| CONFIG | cfg |
| #define BOX_OFF 100 |
Definition at line 45 of file marxf.cpp.
Referenced by MarXF::output_image().
| #define BOXSIZE 100 |
Definition at line 44 of file marxf.cpp.
Referenced by MarXF::output_image().
| #define ltell | ( | a | ) | lseek( a, 0, SEEK_CUR ) |
Definition at line 47 of file marxf.cpp.
Referenced by MarXF::output_image(), and MarXF::Transform().
| #define max0 | ( | a, | |
| b | |||
| ) | if ( b > a ) a = b |
Definition at line 49 of file marxf.cpp.
Referenced by MarXF::HistoMinMax(), MarXF::output_image(), and MarXF::Transform().
| #define min0 | ( | a, | |
| b | |||
| ) | if ( b < a ) a = b |
Definition at line 48 of file marxf.cpp.
Referenced by MarXF::output_image().
| #define NB_SIZE 1024 |
Definition at line 43 of file marxf.cpp.
Referenced by MarXF::Transform().
| int GetCIFData | ( | char * | , |
| char * | , | ||
| FILE * | , | ||
| unsigned int * | |||
| ) |
Definition at line 1880 of file marcif.c.
References CIF_HEADER::array_id, cbf_failnez, cbf_find_category(), cbf_find_column(), cbf_find_row(), cbf_free_handle(), cbf_get_integerarray(), cbf_get_integerarrayparameters(), cbf_rewind_datablock(), cif_compression, cif_element_signed, cif_element_size, cif_element_unsigned, cif_error, cif_id, cif_maxelement, cif_minelement, cif_nelements, cif_read, printe, and verbose.
{
cif_read = 0;
cbf_failnez (cbf_rewind_datablock(cif))
cbf_failnez (cbf_find_category (cif, "array_data"))
if ( cif_error ) {
printe("Cannot find category: array_data");
goto CIF_END;
}
cbf_failnez (cbf_find_column (cif, "array_id"))
cbf_failnez (cbf_find_row (cif, hcif.array_id))
cbf_failnez (cbf_find_column (cif, "data"))
cbf_failnez (cbf_get_integerarrayparameters(
cif,
&cif_compression,
&cif_id,
&cif_element_size,
&cif_element_signed,
&cif_element_unsigned,
&cif_nelements,
&cif_minelement,
&cif_maxelement))
if ( cif_error ) {
printe("Cannot get data array parameters");
goto CIF_END;
}
cbf_failnez (cbf_get_integerarray (
cif,
&cif_id,
(void *)i4_img,
cif_element_size,
cif_element_signed,
cif_nelements,
&cif_read))
if ( cif_error ) {
printe("Cannot read data array");
goto CIF_END;
}
CIF_END:
if ( verbose > 1 ) {
printf("\n");
printf(" Identifier :\t %11d\n",cif_id);
printf(" Compression :\t %11d\n",cif_compression);
printf(" Elements: :\t %11d\n",cif_nelements);
printf(" Min. element :\t %11d\n",cif_minelement);
printf(" Max. element :\t %11d\n",cif_maxelement);
printf(" Element size :\t %11d\n",cif_element_size);
printf(" Signed :\t %11d\n",cif_element_signed);
printf(" Unsigned :\t %11d\n",cif_element_unsigned);
printf(" Elements read:\t %11d\n",cif_read);
}
/* Free the cbf */
cbf_failnez (cbf_free_handle (cif))
/* Input file has been closed my cbf_free_handle! */
fp = NULL;
return cif_read;
}
| MAR345_HEADER Getmar345Header | ( | FILE * | ) |
Definition at line 57 of file mar345_header.c.
References MAR345_HEADER::adc_A, MAR345_HEADER::adc_B, MAR345_HEADER::add_A, MAR345_HEADER::add_B, buf, MAR345_HEADER::byteorder, MAR345_HEADER::chi, MAR345_HEADER::date, MAR345_HEADER::dist, MAR345_HEADER::doseavg, MAR345_HEADER::dosebeg, MAR345_HEADER::doseend, MAR345_HEADER::dosemax, MAR345_HEADER::dosemin, MAR345_HEADER::dosen, MAR345_HEADER::dosesig, MAR345_HEADER::filter, FLOAT, MAR345_HEADER::format, MAR345_HEADER::gain, MAR345_HEADER::gap, MAR345_HEADER::high, MAR345_HEADER::histbeg, MAR345_HEADER::histend, MAR345_HEADER::histmax, i, InputType(), INTEGER, j, MAR345_HEADER::kV, MAR345_HEADER::mA, MAR345_HEADER::mode, MAR345_HEADER::multiplier, N_GAPS, MAR345_HEADER::omebeg, MAR345_HEADER::omeend, MAR345_HEADER::omeosc, MAR345_HEADER::phibeg, MAR345_HEADER::phiend, MAR345_HEADER::phiosc, MAR345_HEADER::pixel_height, MAR345_HEADER::pixel_length, MAR345_HEADER::pixels, MAR345_HEADER::polar, MAR345_HEADER::program, MAR345_HEADER::remark, RemoveBlanks(), MAR345_HEADER::resol, MAR345_HEADER::roff, MAR345_HEADER::scanner, Setmar345Header(), MAR345_HEADER::size, MAR345_HEADER::slitx, MAR345_HEADER::slity, MAR345_HEADER::source, str, STRING, MAR345_HEADER::theta, MAR345_HEADER::time, MAR345_HEADER::toff, MAR345_HEADER::valavg, MAR345_HEADER::valmax, MAR345_HEADER::valmin, MAR345_HEADER::valsig, MAR345_HEADER::version, MAR345_HEADER::wave, WrongType(), MAR345_HEADER::xcen, and MAR345_HEADER::ycen.
{
MAR345_HEADER h;
int i,j, ntok=0,fpos=0;
int ngaps = 0;
char str[64], buf[128], *key, *token[20];
int head[32];
/*
* Set defaults
*/
h = Setmar345Header();
if( fp == NULL ) return( h );
fseek( fp, 0, SEEK_SET );
if ( fread( head, sizeof(int), 32, fp ) < 32) {
return( h );
}
/* First 32 longs contain: */
h.byteorder = (int )head[ 0];
h.size = (short)head[ 1];
h.high = (int )head[ 2];
h.format = (char )head[ 3];
h.mode = (char )head[ 4];
h.pixels = (int )head[ 5];
h.pixel_length = (float)head[ 6];
h.pixel_height = (float)head[ 7];
h.wave = (float)head[ 9]/1000000.;
h.dist = (float)head[ 8]/1000.;
h.phibeg = (float)head[10]/1000.;
h.phiend = (float)head[11]/1000.;
h.omebeg = (float)head[12]/1000.;
h.omeend = (float)head[13]/1000.;
h.chi = (float)head[14]/1000.;
h.theta = (float)head[15]/1000.;
/* First ASCII line (bytes 128 to 192 contains: mar research */
/* Ignore it... */
fpos = fseek( fp, 192, SEEK_SET );
/*
* Read input lines
*/
while( fgets(buf,64,fp)!= NULL){
/* Always add 64 bytes to current filemarker after 1 read */
fpos += 64;
fseek( fp, fpos, SEEK_SET );
/* Keyword: END OF HEADER*/
if(strstr(buf,"END OF HEADER") )
break;
else if ( strstr( buf, "SKIP" ) ) continue;
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<64;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] );
for ( j=0; j<strlen( str ); j++ )
if ( isalnum( str[j] ) && !strstr(key,"PROG") ) str[j] = toupper( str[j] );
strcpy( token[i] , str );
RemoveBlanks( token[i] );
}
/* Keyword: PROGRAM */
if(!strncmp(key,"PROG",4) && ntok >= 2 ) {
strcpy( h.program, token[0] );
strcpy( h.version, token[2] );
}
/* Keyword: OFFSET */
else if(!strncmp(key,"OFFS",4) && ntok >= 1 ) {
for ( i=0; i<ntok; i++ ) {
if ( strstr( token[i], "ROF" ) ) {
i++;
if ( InputType( token[i] ) >= INTEGER ) {
h.roff = atof( token[i] );
}
else
WrongType( FLOAT, key, token[i] );
}
else if ( strstr( token[i], "TOF" ) ) {
i++;
if ( InputType( token[i] ) >= INTEGER ) {
h.toff = atof( token[i] );
}
else
WrongType( FLOAT, key, token[i] );
}
/* Compatibility with previous versions for GAP entries: */
else if ( strstr( token[i], "GAP" ) ) {
i++;
if ( InputType( token[i] ) == INTEGER ) {
h.gap[1] = atoi( token[i] );
}
else
WrongType( INTEGER, key, token[i] );
}
}
}
/* Keyword: GAP */
else if(!strncmp(key,"GAPS",4) && ntok >= 1 ) {
for ( i=0; i<ntok; i++ ) {
if ( InputType( token[i] ) == INTEGER ) {
if ( ngaps < N_GAPS )
h.gap[ngaps++] = atoi( token[i] );
}
else
WrongType( INTEGER, key, token[i] );
}
}
/* Keyword: ADC */
else if(!strncmp(key,"ADC",3) && ntok >= 1 ) {
for ( i=0; i<ntok; i++ ) {
if ( strstr( token[i], "A" ) && strlen( token[i] ) == 1 ) {
i++;
if ( InputType( token[i] ) == INTEGER ) {
h.adc_A = atoi( token[i] );
}
else
WrongType( INTEGER, key, token[i] );
}
else if ( strstr( token[i], "B" ) && strlen( token[i] ) == 1 ) {
i++;
if ( InputType( token[i] ) == INTEGER ) {
h.adc_B = atoi( token[i] );
}
else
WrongType( INTEGER, key, token[i] );
}
else if ( strstr( token[i], "ADD_A" ) ) {
i++;
if ( InputType( token[i] ) == INTEGER ) {
h.add_A = atoi( token[i] );
}
else
WrongType( INTEGER, key, token[i] );
}
else if ( strstr( token[i], "ADD_B" ) ) {
i++;
if ( InputType( token[i] ) == INTEGER ) {
h.add_B = atoi( token[i] );
}
else
WrongType( INTEGER, key, token[i] );
}
}
}
/* Keyword: MULTIPLIER */
else if(!strncmp(key,"MULT",4) && ntok >= 0 )
if ( InputType( token[0] ) >= INTEGER )
h.multiplier = atof( token[0] );
else
WrongType( FLOAT, key, token[0] );
/* Keyword: GAIN */
else if(!strncmp(key,"GAIN",4) && ntok >= 0 )
if ( InputType( token[0] ) >= INTEGER )
h.gain = atof( token[0] );
else
WrongType( FLOAT, key, token[0] );
/* Keyword: COUNTS */
else if(!strncmp(key,"COUN",4) && ntok >= 1 )
for(i=0;i<ntok;i++) {
if ( strstr( token[i], "STA" ) ) {
i++;
if ( InputType( token[i] ) >= INTEGER ) {
h.dosebeg = atof( token[i] );
}
else
WrongType( FLOAT, key, token[i] );
}
else if ( strstr( token[i], "END" ) ) {
i++;
if ( InputType( token[i] ) >= INTEGER ) {
h.doseend = atof( token[i] );
}
else
WrongType( FLOAT, key, token[i] );
}
else if ( strstr( token[i], "MIN" ) ) {
i++;
if ( InputType( token[i] ) >= INTEGER ) {
h.dosemin = atof( token[i] );
}
else
WrongType( FLOAT, key, token[i] );
}
else if ( strstr( token[i], "MAX" ) ) {
i++;
if ( InputType( token[i] ) >= INTEGER ) {
h.dosemax = atof( token[i] );
}
else
WrongType( FLOAT, key, token[i] );
}
else if ( strstr( token[i], "AVE" ) ) {
i++;
if ( InputType( token[i] ) >= INTEGER ) {
h.doseavg = atof( token[i] );
}
else
WrongType( FLOAT, key, token[i] );
}
else if ( strstr( token[i], "SIG" ) ) {
i++;
if ( InputType( token[i] ) >= INTEGER ) {
h.dosesig = atof( token[i] );
}
else
WrongType( FLOAT, key, token[i] );
}
else if ( strstr( token[i], "NME" ) ) {
i++;
if ( InputType( token[i] ) == INTEGER ) {
h.dosen = atoi( token[i] );
}
else
WrongType( INTEGER, key, token[i] );
}
}
/* Keyword: MODE */
else if( !strncmp(key,"MODE",4) && ntok >= 0 )
if ( strstr( token[0], "TIME" ) )
h.mode = 1;
else if ( strstr( token[0], "DOSE" ) )
h.mode = 0;
else
WrongType( STRING, key, token[0] );
/* Keyword: DISTANCE */
else if(!strncmp(key,"DIST",4) && ntok >= 0 )
if ( InputType( token[0] ) >= INTEGER )
h.dist = atof( token[0] );
else
WrongType( FLOAT, key, token[0] );
/* Keyword: PIXELSIZE */
else if(!strncmp(key,"PIXE",4) && ntok >= 0 ) {
for(i=0;i<ntok;i++) {
if ( strstr( token[i], "LEN" ) ) {
i++;
if ( InputType( token[i] ) >= INTEGER ) {
h.pixel_length = atof( token[i] );
}
else
WrongType( FLOAT, key, token[i] );
}
else if ( strstr( token[i], "HEI" ) ) {
i++;
if ( InputType( token[i] ) >= INTEGER ) {
h.pixel_height= atof( token[i] );
}
else
WrongType( FLOAT, key, token[i] );
}
}
}
/* Keyword: SCANNER */
else if(!strncmp(key,"SCAN",4) && ntok >= 0 )
if ( InputType( token[0] ) == INTEGER )
h.scanner = atoi( token[0] );
else
WrongType( INTEGER, key, token[0] );
/* Keyword: HIGH */
else if(!strncmp(key,"HIGH",4) && ntok >= 0 )
if ( InputType( token[0] ) == INTEGER )
h.high = atoi( token[0] );
else
WrongType( INTEGER, key, token[0] );
/* Keyword: DATE */
else if(!strncmp(key,"DATE",4) && ntok >= 0 ) {
for ( i=0; i<strlen( buf ); i++ )
if ( buf[i] == ' ' ) break;
for ( j=i; j<strlen( buf ); j++ )
if ( buf[j] != ' ' ) break;
strcpy( h.date, buf+j );
}
/* Keyword: REMARK */
else if(!strncmp(key,"REMA",4) && ntok >= 0 ) {
for ( i=0; i<strlen( buf ); i++ )
if ( buf[i] == ' ' ) break;
for ( j=i; j<strlen( buf ); j++ )
if ( buf[j] != ' ' ) break;
strcpy( h.remark, buf+j );
}
/* Keyword: FORMAT */
else if(!strncmp(key,"FORM",4) && ntok >= 1 ) {
if ( InputType( token[0] ) == INTEGER )
h.size = atoi( token[0] );
else
WrongType( INTEGER, key, token[0] );
for ( i=1; i<ntok; i++ ) {
if ( strstr( token[i], "PCK" ) )
h.format = 1;
else if ( strstr( token[i], "IMA" ) )
h.format = 0;
else if ( strstr( token[i], "SPI" ) )
h.format = 2;
else {
if ( InputType( token[i] ) == INTEGER )
h.pixels = atoi( token[i] );
else
WrongType( INTEGER, key, token[i] );
}
}
}
/* Keyword: LAMBDA or WAVELENGTH */
else if( (!strncmp(key,"LAMB",4) || !strncmp(key,"WAVE",4) ) && ntok >= 0 )
if ( InputType( token[0] ) >= INTEGER )
h.wave = atof( token[0] );
else
WrongType( FLOAT, key, token[0] );
/* Keyword: MONOCHROMATOR */
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: PHI */
else if(!strncmp(key,"PHI",3) && ntok >= 1 )
for(i=0;i<ntok;i++) {
if ( strstr( token[i], "STA" ) ) {
i++;
if ( InputType( token[i] ) >= INTEGER ) {
h.phibeg = atof( token[i] );
}
else
WrongType( FLOAT, key, token[i] );
}
else if ( strstr( token[i], "END" ) ) {
i++;
if ( InputType( token[i] ) >= INTEGER ) {
h.phiend = atof( token[i] );
}
else
WrongType( FLOAT, key, token[i] );
}
else if ( strstr( token[i], "OSC" ) ) {
i++;
if ( InputType( token[i] ) == INTEGER ) {
h.phiosc = atoi( token[i] );
}
else
WrongType( INTEGER, key, token[i] );
}
}
/* Keyword: OMEGA */
else if(!strncmp(key,"OMEG",4) && ntok >= 1 )
for(i=0;i<ntok;i++) {
if ( strstr( token[i], "STA" ) ) {
i++;
if ( InputType( token[i] ) >= INTEGER ) {
h.omebeg = atof( token[i] );
}
else
WrongType( FLOAT, key, token[i] );
}
else if ( strstr( token[i], "END" ) ) {
i++;
if ( InputType( token[i] ) >= INTEGER ) {
h.omeend = atof( token[i] );
}
else
WrongType( FLOAT, key, token[i] );
}
else if ( strstr( token[i], "OSC" ) ) {
i++;
if ( InputType( token[i] ) == INTEGER ) {
h.omeosc = atoi( token[i] );
}
else
WrongType( INTEGER, key, token[i] );
}
}
/* Keyword: TWOTHETA */
else if( !strncmp(key,"TWOT",4) && ntok >= 0 )
if ( InputType( token[0] ) >= INTEGER )
h.theta = atof( token[0] );
else
WrongType( FLOAT, key, token[0] );
/* Keyword: CHI */
else if( !strncmp(key,"CHI",3) && ntok >= 0 )
if ( InputType( token[0] ) >= INTEGER )
h.chi = atof( token[0] );
else
WrongType( FLOAT, key, token[0] );
/* Keyword: RESOLUTION */
else if( !strncmp(key,"RESO",4) && ntok >= 0 )
if ( InputType( token[0] ) >= INTEGER )
h.resol = atof( token[0] );
else
WrongType( FLOAT, key, token[0] );
/* Keyword: TIME */
else if( !strncmp(key,"TIME",4) && ntok >= 0 )
if ( InputType( token[0] ) >= INTEGER )
h.time = atof( token[0] );
else
WrongType( FLOAT, key, token[0] );
/* Keyword: CENTER */
else if( !strncmp(key,"CENT",4) && ntok >= 1 ) {
for(i=0;i<ntok;i++) {
if ( strstr( token[i], "X" ) ) {
i++;
if ( InputType( token[i] ) >= INTEGER ) {
h.xcen = atof( token[i] );
}
else
WrongType( FLOAT, key, token[i] );
}
else if ( strstr( token[i], "Y" ) ) {
i++;
if ( InputType( token[i] ) >= INTEGER ) {
h.ycen = atof( token[i] );
}
else
WrongType( FLOAT, key, token[i] );
}
}
}
/* Keyword: COLLIMATOR, SLITS */
else if( ( !strncmp(key,"COLL",4) || !strncmp(key,"SLIT",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] );
}
}
}
/* 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: 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.valmin = atoi( token[i] );
}
else
WrongType( INTEGER, key, token[i] );
}
else if ( strstr( token[i], "MAX" ) ) {
i++;
if ( InputType( token[i] ) == INTEGER ) {
h.valmax = atoi( token[i] );
}
else
WrongType( INTEGER, key, token[i] );
}
else if ( strstr( token[i], "AVE" ) ) {
i++;
if ( InputType( token[i] ) >= INTEGER ) {
h.valavg = atof( token[i] );
}
else
WrongType( FLOAT, key, token[i] );
}
else if ( strstr( token[i], "SIG" ) ) {
i++;
if ( InputType( token[i] ) >= INTEGER ) {
h.valsig = atof( token[i] );
}
else
WrongType( FLOAT, key, token[i] );
}
}
}
/* Keyword: HISTOGRAM */
else if( !strncmp(key,"HIST",4) && ntok >= 0 ) {
for(i=0;i<ntok;i++) {
if ( strstr( token[i], "STA" ) ) {
i++;
if ( InputType( token[i] ) == INTEGER ) {
h.histbeg = atoi( token[i] );
}
else
WrongType( INTEGER, key, token[i] );
}
else if ( strstr( token[i], "END" ) ) {
i++;
if ( InputType( token[i] ) == INTEGER ) {
h.histend = atoi( token[i] );
}
else
WrongType( INTEGER, key, token[i] );
}
else if ( strstr( token[i], "MAX" ) ) {
i++;
if ( InputType( token[i] ) == INTEGER ) {
h.histmax = atoi( token[i] );
}
else
WrongType( INTEGER, key, token[i] );
}
}
}
} /* End of while loop */
/*
* End of input lines (while loop)
*/
return( h );
}
| MARNB_HEADER GetmarNBHeader | ( | FILE * | fp | ) |
Definition at line 49 of file nb_header.c.
References buf, MARNB_HEADER::byteorder, MARNB_HEADER::cutoff, MARNB_HEADER::date, FLOAT, MARNB_HEADER::fpos, MARNB_HEADER::gain, i, InputType(), INTEGER, j, MAX_NBMODE, MARNB_HEADER::mode, MARNB_HEADER::nbs, MARNB_HEADER::phioff, MARNB_HEADER::pixel_height, MARNB_HEADER::pixel_length, MARNB_HEADER::pixels, MARNB_HEADER::program, RemoveBlanks(), MARNB_HEADER::roff, MARNB_HEADER::scale, MARNB_HEADER::scanner, SetmarNBHeader(), MARNB_HEADER::size, MARNB_HEADER::skip, str, MARNB_HEADER::subpixels, MARNB_HEADER::tot_pixels, MARNB_HEADER::version, WrongType(), MARNB_HEADER::x, and MARNB_HEADER::y.
Referenced by MarXF::mar_start_scan_readout().
{
MARNB_HEADER h;
int i,j, itmp, size,fpos, ntok=0;
char str[64], buf[128], *key, *token[20];
/*
* Set defaults
*/
h = SetmarNBHeader();
if( fp == NULL ) return( h );
fseek( fp, 0, SEEK_SET );
if ( fread( &h.byteorder, sizeof(int), 1, fp ) < 1 ) {
return( h );
}
fgets( buf, 60, fp );
fpos = 64;
/* First ASCII line (bytes 128 to 192 contains: mar research */
/* Ignore it... */
fseek( fp, 192, SEEK_SET );
fpos = 192;
/*
* Read input lines
*/
while( fgets(buf,64,fp)!= NULL){
/* Always add 64 bytes to current filemarker after 1 read */
fpos += 64;
fseek( fp, fpos, SEEK_SET );
/* Keyword: END OF HEADER*/
if(strstr(buf,"END OF HEADER") )
break;
else if(strstr(buf,"REMARK") )
continue;
/*
*/
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<64;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] );
for ( j=0; j<strlen( str ); j++ )
if ( isalnum( str[j] ) ) str[j] = toupper( str[j] );
strcpy( token[i] , str );
RemoveBlanks( token[i] );
}
/* Keyword: PROGRAM */
if(!strncmp(key,"PROG",4) && ntok >= 2 ) {
strcpy( h.program, token[0] );
strcpy( h.version, token[2] );
}
/* Keyword: SCALE */
else if(!strncmp(key,"SCAL",4) && ntok >= 0 )
if ( InputType( token[0] ) >= INTEGER )
h.scale = atof( token[0] );
else
WrongType( FLOAT, key, token[0] );
/* Keyword: PHIOFF */
else if(!strncmp(key,"PHI",3) && ntok >= 0 )
if ( InputType( token[0] ) >= INTEGER )
h.phioff = atof( token[0] );
else
WrongType( FLOAT, key, token[0] );
/* Keyword: CUTOFF */
else if(!strncmp(key,"CUT",3) && ntok >= 0 )
if ( InputType( token[0] ) >= INTEGER )
h.cutoff = atof( token[0] );
else
WrongType( FLOAT, key, token[0] );
/* Keyword: GAIN */
else 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,"PIXE",4) && ntok >= 0 ) {
for(i=0;i<ntok;i++) {
if ( strstr( token[i], "LEN" ) ) {
i++;
if ( InputType( token[i] ) >= INTEGER ) {
h.pixel_length = atof( token[i] );
}
else
WrongType( FLOAT, key, token[i] );
}
else if ( strstr( token[i], "HEI" ) ) {
i++;
if ( InputType( token[i] ) >= INTEGER ) {
h.pixel_height= atof( token[i] );
}
else
WrongType( FLOAT, key, token[i] );
}
else if ( strstr( token[i], "SUB" ) ) {
i++;
if ( InputType( token[i] ) == INTEGER ) {
h.subpixels = atoi( token[i] );
}
else
WrongType( INTEGER, key, token[i] );
}
}
}
/* Keyword: SCANNER */
else if(!strncmp(key,"SCAN",4) && ntok >= 0 )
if ( InputType( token[0] ) == INTEGER )
h.scanner = atoi( token[0] );
else
WrongType( INTEGER, key, token[0] );
/* Keyword: DATE */
else if(!strncmp(key,"DATE",4) && ntok >= 0 ) {
for ( i=0; i<strlen( buf ); i++ )
if ( buf[i] == ' ' ) break;
for ( j=i; j<strlen( buf ); j++ )
if ( buf[j] != ' ' ) break;
strcpy( h.date, buf+j );
}
/* Keyword: MODE */
else if(!strncmp(key,"MODE",4) && ntok >= 0 ) {
if ( InputType( token[0] ) != INTEGER )
WrongType( INTEGER, key, token[0] );
else {
size = atoi( token[0] );
for ( j=0, i=0; i<MAX_NBMODE; i++ ) {
if ( h.size[i] == 0 && h.mode <= MAX_NBMODE ) {
h.size[h.mode] = size;
j = h.mode;
h.mode++;
break;
}
else if ( h.size[i] == size ) {
j = i;
break;
}
}
for ( i=1; i<ntok; i++ ) {
if ( strstr( token[i], "POS" ) ) {
i++;
if ( InputType( token[i] ) == INTEGER )
h.fpos[j] = atoi( token[i] );
else
WrongType( INTEGER, key, token[i] );
}
else if ( strstr( token[i], "PIX" ) ) {
i++;
if ( InputType( token[i] ) == INTEGER )
h.pixels[j] = atoi( token[i] );
else
WrongType( INTEGER, key, token[i] );
}
else if ( strstr( token[i], "X" ) ) {
i++;
if ( InputType( token[i] ) == INTEGER )
h.x[j] = atoi( token[i] );
else
WrongType( INTEGER, key, token[i] );
}
else if ( strstr( token[i], "Y" ) ) {
i++;
if ( InputType( token[i] ) == INTEGER )
h.y[j] = atoi( token[i] );
else
WrongType( INTEGER, key, token[i] );
}
else if ( strstr( token[i], "SK" ) ) {
i++;
if ( InputType( token[i] ) == INTEGER )
h.skip[j] = atoi( token[i] );
else
WrongType( INTEGER, key, token[i] );
}
else if ( strstr( token[i], "RO" ) ) {
i++;
if ( InputType( token[i] ) == INTEGER )
h.roff[j] = atoi( token[i] );
else
WrongType( INTEGER, key, token[i] );
}
}
}
}
/* Keyword: NUMBER */
else if(!strncmp(key,"NUMB",3) && ntok >= 1 ) {
for(i=0;i<ntok;i++) {
if ( strstr( token[i], "PIX" ) ) {
i++;
if ( InputType( token[i] ) == INTEGER ) {
h.tot_pixels = atoi( token[i] );
}
else
WrongType( INTEGER, key, token[i] );
}
else if ( strstr( token[i], "NEI" ) ) {
i++;
if ( InputType( token[i] ) == INTEGER ) {
h.nbs = atoi( token[i] );
}
else
WrongType( INTEGER, key, token[i] );
}
}
}
} /* End of while loop */
/*
* End of input lines (while loop)
*/
fseek( fp, 4096, SEEK_SET );
return( h );
}
| float GetResol | ( | float | radius, |
| float | distance, | ||
| float | wave | ||
| ) |
Definition at line 37 of file utils.c.
Referenced by MarXF::get_header_values().
{
float res;
if ( distance < 1.0 ) return 0.0;
res = atan( radius/distance); /* Two theta !!! */
if ( res < 0.0001 ) return 0.0;
res = wave/(2.0*sin(res/2.0));
return( res );
}
| void mar3452CIFHeader | ( | char * | , |
| char * | , | ||
| MAR345_HEADER | |||
| ) |
Definition at line 1613 of file marcif.c.
References MAR345_HEADER::adc_A, MAR345_HEADER::adc_B, MAR345_HEADER::add_A, MAR345_HEADER::add_B, AXIS_CHI, AXIS_DISTANCE, AXIS_OMEGA, AXIS_PHI, AXIS_THETA, MAR345_HEADER::chi, MAR345_HEADER::date, MAR345_HEADER::dist, MAR345_HEADER::doseavg, MAR345_HEADER::dosebeg, MAR345_HEADER::doseend, MAR345_HEADER::dosemax, MAR345_HEADER::dosemin, MAR345_HEADER::dosen, MAR345_HEADER::dosesig, MAR345_HEADER::filter, MAR345_HEADER::gain, MAR345_HEADER::gap, MAR345_HEADER::high, MAR345_HEADER::histbeg, MAR345_HEADER::histend, MAR345_HEADER::histmax, i, MAR345_HEADER::kV, MAR345_HEADER::mA, MAR345_HEADER::mode, MAR345_HEADER::multiplier, now, MAR345_HEADER::omebeg, MAR345_HEADER::omeend, MAR345_HEADER::omeosc, MAR345_HEADER::phibeg, MAR345_HEADER::phiend, MAR345_HEADER::phiosc, MAR345_HEADER::pixel_height, MAR345_HEADER::pixel_length, MAR345_HEADER::pixels, MAR345_HEADER::polar, MAR345_HEADER::roff, MAR345_HEADER::scanner, MAR345_HEADER::size, MAR345_HEADER::source, str, MAR345_HEADER::theta, MAR345_HEADER::time, MAR345_HEADER::toff, MAR345_HEADER::valavg, MAR345_HEADER::valmax, MAR345_HEADER::valmin, MAR345_HEADER::valsig, MAR345_HEADER::wave, MAR345_HEADER::xcen, and MAR345_HEADER::ycen.
Referenced by MarXF::output_image().
{
char *c,str[64],num[16];
int i;
float pixelsize;
time_t now;
time( &now );
/* Initialize CIF Header */
memset( (char *)&hcif, 0, sizeof(CIF_HEADER) );
pixelsize = h345.pixel_height;
if ( pixelsize > 1.0 ) pixelsize /= 1000.;
hcif.binary_id = 1;
strcpy(hcif.entry_id, "img1");
strcpy(hcif.scan_id, "scan1");
strcpy(hcif.array_id, "img1");
strcpy(hcif.crystal_id, "xtal1");
sprintf(str, "SN_%03d",h345.scanner);
strcpy(hcif.element_id, str);
strcpy(hcif.mar_id, str);
strcpy(hcif.diffrn_id, "diffrn1");
strcpy(hcif.data_id, "data1");
strcpy(hcif.detector_id, "mar345");
strcpy(hcif.frame_id, "frm1");
sprintf(str, "%s",(char *)ctime( &now ) );
str[ strlen( str ) -1 ] = '\0';
if ( strlen( h345.date ) > 5 )
strcpy(hcif.audit.creation_date, h345.date);
else
strcpy(hcif.audit.creation_date, str);
sprintf(str, "Created by %s", prg);
strcpy(hcif.audit.creation_method, str);
strcpy(hcif.diffrn_radiation.detector, "Image Plate");
strcpy(hcif.diffrn_radiation.collimation, "double slits");
strcpy(hcif.diffrn_radiation.monochromator, h345.filter);
hcif.diffrn_radiation_wavelength.polarisn_ratio = h345.polar;
hcif.diffrn_radiation_wavelength.polarisn_norm = 0.0;
hcif.diffrn_radiation_wavelength.wavelength = h345.wave;
hcif.diffrn_radiation_wavelength.wavelength_wt = 1.0;
if ( strlen( h345.source ) )
strcpy(hcif.diffrn_source.source, h345.source);
else
strcpy(hcif.diffrn_source.source, "unknown");
strcpy(hcif.diffrn_source.type, "unknown");
hcif.diffrn_source.current = h345.mA;
hcif.diffrn_source.voltage = h345.kV;
hcif.diffrn_source.power = h345.kV*h345.mA;
strcpy(hcif.array_structure.compression_type, "x-CBF_PACKED");
strcpy(hcif.array_structure.encoding_type, "unsigned 32-bit integer");
strcpy(hcif.array_structure.byte_order, "little_endian");
hcif.array_structure_list[0].dimension = h345.size;
hcif.array_structure_list[1].dimension = h345.size;
hcif.array_structure_list[0].index = 1;
hcif.array_structure_list[1].index = 2;
hcif.array_structure_list[0].precedence = 2;
hcif.array_structure_list[1].precedence = 1;
strcpy(hcif.array_structure_list[0].direction, "increasing");
strcpy(hcif.array_structure_list[1].direction, "increasing");
hcif.array_element_size.pixelsize[0] = pixelsize/1000.;
hcif.array_element_size.pixelsize[1] = pixelsize/1000.;
hcif.array_element_size.index[0] = 1;
hcif.array_element_size.index[1] = 2;
hcif.array_intensities.gain = h345.gain;
hcif.array_intensities.overload = 250000;
hcif.array_intensities.undefined_value = 999999;
strcpy(hcif.array_intensities.linearity, "linear");
hcif.array_intensities.offset = 0;
hcif.array_intensities.scaling = h345.multiplier;
strcpy(hcif.axis[AXIS_PHI].id, "phi" );
strcpy(hcif.axis[AXIS_PHI].type, "rotation" );
strcpy(hcif.axis[AXIS_PHI].equipment, "detector" );
strcpy(hcif.axis[AXIS_PHI].depends_on, "." );
hcif.axis[AXIS_PHI].vector[0] = 1.0;
hcif.axis[AXIS_PHI].vector[1] = 0.0;
hcif.axis[AXIS_PHI].vector[2] = 0.0;
strcpy(hcif.axis[AXIS_OMEGA].id, "omega" );
strcpy(hcif.axis[AXIS_OMEGA].type, "rotation" );
strcpy(hcif.axis[AXIS_OMEGA].equipment, "detector" );
strcpy(hcif.axis[AXIS_OMEGA].depends_on, "." );
hcif.axis[AXIS_OMEGA].vector[0] = 0.0;
hcif.axis[AXIS_OMEGA].vector[1] = 1.0;
hcif.axis[AXIS_OMEGA].vector[2] = 0.0;
strcpy(hcif.axis[AXIS_CHI].id, "chi" );
strcpy(hcif.axis[AXIS_CHI].type, "rotation" );
strcpy(hcif.axis[AXIS_CHI].equipment, "detector" );
strcpy(hcif.axis[AXIS_CHI].depends_on, "." );
hcif.axis[AXIS_CHI].vector[0] = 0.0;
hcif.axis[AXIS_CHI].vector[1] = 0.0;
hcif.axis[AXIS_CHI].vector[2] = 1.0;
strcpy(hcif.axis[AXIS_THETA].id, "twotheta" );
strcpy(hcif.axis[AXIS_THETA].type, "rotation" );
strcpy(hcif.axis[AXIS_THETA].equipment, "detector" );
strcpy(hcif.axis[AXIS_THETA].depends_on, "." );
hcif.axis[AXIS_THETA].vector[0] = 1.0;
hcif.axis[AXIS_THETA].vector[1] = 0.0;
hcif.axis[AXIS_THETA].vector[2] = 0.0;
strcpy(hcif.axis[AXIS_DISTANCE].id, "distance" );
strcpy(hcif.axis[AXIS_DISTANCE].type, "translation" );
strcpy(hcif.axis[AXIS_DISTANCE].equipment, "detector" );
strcpy(hcif.axis[AXIS_DISTANCE].depends_on, "." );
hcif.axis[AXIS_DISTANCE].vector[0] = 0.0;
hcif.axis[AXIS_DISTANCE].vector[1] = 0.0;
hcif.axis[AXIS_DISTANCE].vector[2] = -1.0;
strcpy(hcif.diffrn_detector.detector, "Image Plate" );
strcpy(hcif.diffrn_detector.type, "mar345 IP system" );
hcif.diffrn_detector_element.center_x = h345.xcen*pixelsize;
hcif.diffrn_detector_element.center_y = h345.ycen*pixelsize;
/* marresearch extensions */
if ( h345.mode == 0 )
strcpy(hcif.diffrn_detector_mar_exposure.type, "dose");
else
strcpy(hcif.diffrn_detector_mar_exposure.type, "time");
hcif.diffrn_detector_mar_exposure.time = h345.time;
hcif.diffrn_detector_mar_exposure.dose = h345.doseavg;
for (i=0; i<=AXIS_DISTANCE; i++ ) {
hcif.diffrn_detector_mar_axis[i].angle_start =
hcif.diffrn_detector_mar_axis[i].angle_end =
hcif.diffrn_detector_mar_axis[i].angle_increment=
hcif.diffrn_detector_mar_axis[i].displacement = 0.0;
}
hcif.diffrn_detector_mar_axis[AXIS_PHI].angle_start = h345.phibeg;
hcif.diffrn_detector_mar_axis[AXIS_PHI].angle_end = h345.phiend;
hcif.diffrn_detector_mar_axis[AXIS_OMEGA].angle_start = h345.omebeg;
hcif.diffrn_detector_mar_axis[AXIS_OMEGA].angle_end = h345.omeend;
hcif.diffrn_detector_mar_axis[AXIS_CHI].angle_start = h345.chi;
hcif.diffrn_detector_mar_axis[AXIS_CHI].angle_end = h345.chi;
hcif.diffrn_detector_mar_axis[AXIS_THETA].angle_end = h345.theta;
hcif.diffrn_detector_mar_axis[AXIS_THETA].angle_start = h345.theta;
hcif.diffrn_detector_mar_axis[AXIS_OMEGA].oscillations = h345.omeosc;
hcif.diffrn_detector_mar_axis[AXIS_PHI ].oscillations = h345.phiosc;
hcif.diffrn_detector_mar_axis[AXIS_DISTANCE].angle_start = 0.0;
hcif.diffrn_detector_mar_axis[AXIS_DISTANCE].angle_end = 0.0;
hcif.diffrn_detector_mar_axis[AXIS_DISTANCE].displacement = h345.dist;
for (i=0; i<=AXIS_DISTANCE; i++ ) {
strcpy( hcif.diffrn_detector_mar_axis[i].axis_id, hcif.axis[i].id);
hcif.diffrn_detector_mar_axis[i].angle_increment = hcif.diffrn_detector_mar_axis[i].angle_end -
hcif.diffrn_detector_mar_axis[i].angle_start;\
}
hcif.diffrn_detector_mar_exposure_dose.start = h345.dosebeg;
hcif.diffrn_detector_mar_exposure_dose.end = h345.doseend;
hcif.diffrn_detector_mar_exposure_dose.min = h345.dosemin;
hcif.diffrn_detector_mar_exposure_dose.max = h345.dosemax;
hcif.diffrn_detector_mar_exposure_dose.avg = h345.doseavg;
hcif.diffrn_detector_mar_exposure_dose.esd = h345.dosesig;
hcif.diffrn_detector_mar_exposure_dose.measurements = h345.dosen;
hcif.diffrn_detector_mar_adc.channel_a = h345.adc_A;
hcif.diffrn_detector_mar_adc.channel_b = h345.adc_B;
hcif.diffrn_detector_mar_adc.add_channel_a = h345.add_A;
hcif.diffrn_detector_mar_adc.add_channel_b = h345.add_B;
hcif.diffrn_detector_mar_adc.gain = h345.gain;
hcif.diffrn_detector_mar_adc.multiplier = h345.multiplier;
if ( h345.pixel_height == 100.f || h345.pixel_height == 0.1f )
hcif.diffrn_detector_mar_adc.oversampling = 1;
else
hcif.diffrn_detector_mar_adc.oversampling = 2;
hcif.diffrn_detector_mar_scan.scanmode = h345.size;
hcif.diffrn_detector_mar_scan.number_of_pixels = h345.pixels;
hcif.diffrn_detector_mar_scan.number_of_pixels_larger_16_bit = h345.high;
hcif.diffrn_detector_mar_scan.radial_offset = h345.roff;
hcif.diffrn_detector_mar_scan.tangential_offset = h345.toff;
hcif.diffrn_detector_mar_scan.pixel_height = h345.pixel_height;
hcif.diffrn_detector_mar_scan.pixel_length = h345.pixel_length;
hcif.diffrn_detector_mar_data.intensity_min = h345.valmin;
hcif.diffrn_detector_mar_data.intensity_max = h345.valmax;
hcif.diffrn_detector_mar_data.intensity_avg = h345.valavg;
hcif.diffrn_detector_mar_data.intensity_esd = h345.valsig;
hcif.diffrn_detector_mar_data.histogram_start = h345.histbeg;
hcif.diffrn_detector_mar_data.histogram_end = h345.histend;
hcif.diffrn_detector_mar_data.histogram_max = h345.histmax;
for ( i=0; i<8; i++ )
hcif.diffrn_detector_mar_gaps.gap[i] = h345.gap[i];
/* From the entire file name path, cut off directory */
c = strrchr( f, '/' );
if ( c == NULL )
c = f;
else
c++;
/* From the remaining filename root + extension, cut off extension */
strcpy( str, c);
c = strrchr ( str, '.' );
if ( c!=NULL ) {
i=strlen( c );
str[ strlen(str) - i ] = '\0';
}
strcpy( hcif.diffrn_scan.frame_id_start, str);
strcpy( hcif.diffrn_scan.frame_id_end, str);
for (i=strlen(str)-1;i>=0; i--) {
if ( str[i] == '_' ) {
str[i] = '\0';
break;
}
}
strcpy(hcif.crystal_id, str);
hcif.diffrn_scan.frames = 1;
strcpy(hcif.diffrn_measurement.device, "oscillation camera");
strcpy(hcif.diffrn_measurement.device_type, "mar detector");
strcpy(hcif.diffrn_measurement.method, "phi scan");
hcif.diffrn_measurement.sample_detector_distance = h345.dist;
hcif.diffrn_measurement.number_of_axes = 1;
strcpy(hcif.diffrn_scan_axis[AXIS_PHI].axis_id, "phi" );
hcif.diffrn_scan_axis[AXIS_PHI].angle_start = h345.phibeg;
hcif.diffrn_scan_axis[AXIS_PHI].angle_range = h345.phiend-h345.phibeg;
hcif.diffrn_scan_axis[AXIS_PHI].angle_increment = h345.phiend-h345.phibeg;
strcpy(hcif.diffrn_scan_axis[AXIS_OMEGA].axis_id,"omega" );
hcif.diffrn_scan_axis[AXIS_OMEGA].angle_start = h345.omebeg;
hcif.diffrn_scan_axis[AXIS_OMEGA].angle_range = h345.omeend-h345.omebeg;
hcif.diffrn_scan_axis[AXIS_OMEGA].angle_increment= h345.omeend-h345.omebeg;
strcpy(hcif.diffrn_scan_frame_axis[AXIS_PHI].axis_id, "phi" );
hcif.diffrn_scan_frame_axis[AXIS_PHI].angle = h345.phiend;
hcif.diffrn_scan_frame_axis[AXIS_PHI].displacement = 0.0;
strcpy(hcif.diffrn_scan_frame_axis[AXIS_OMEGA].axis_id, "omega" );
hcif.diffrn_scan_frame_axis[AXIS_OMEGA].angle = h345.omeend;
hcif.diffrn_scan_frame_axis[AXIS_OMEGA].displacement = 0.0;
strcpy(hcif.diffrn_scan_frame_axis[AXIS_CHI].axis_id, "chi" );
hcif.diffrn_scan_frame_axis[AXIS_CHI].angle = h345.chi;
hcif.diffrn_scan_frame_axis[AXIS_CHI].displacement = 0.0;
strcpy(hcif.diffrn_scan_frame_axis[AXIS_THETA].axis_id, "twotheta" );
hcif.diffrn_scan_frame_axis[AXIS_THETA].angle = h345.theta;
hcif.diffrn_scan_frame_axis[AXIS_THETA].displacement = 0.0;
strcpy(hcif.diffrn_scan_frame_axis[AXIS_DISTANCE].axis_id,"distance" );
hcif.diffrn_scan_frame_axis[AXIS_DISTANCE].angle = 0.0;
hcif.diffrn_scan_frame_axis[AXIS_DISTANCE].displacement = h345.dist;
}
| int put_pck | ( | unsigned short int * | , |
| int | , | ||
| int | , | ||
| int | |||
| ) |
Referenced by MarXF::output_image().
| int PutCIFData | ( | char * | , |
| char * | , | ||
| char | , | ||
| unsigned int * | |||
| ) |
Definition at line 1946 of file marcif.c.
References CIF_HEADER::array_structure_list, CIF_HEADER::binary_id, CBF, cbf_failnez, cbf_free_handle(), CBF_PACKED, cbf_set_integerarray(), cbf_write_file(), CIF, cif_compression, cif_element_signed, cif_element_size, cif_error, cif_id, cif_nelements, ARRAY_STRUCTURE_LIST::dimension, ENC_BASE64, ENC_CRTERM, ENC_LFTERM, ENC_NONE, MIME_HEADERS, MSG_DIGEST, and verbose.
Referenced by MarXF::output_image().
{
FILE *fp = NULL;
int success = 0;
int mime = MIME_HEADERS;
int digest = MSG_DIGEST;
int encoding = ENC_NONE;
int bytedir = 0;
int cbforcif = CBF;
int term = ENC_CRTERM | ENC_LFTERM;
if ( op_cbf == 1 ) {
cbforcif = CBF;
encoding = ENC_NONE;
term = ENC_CRTERM | ENC_LFTERM;
}
else {
cbforcif = CIF;
encoding = ENC_BASE64;
term = ENC_LFTERM;
}
cif_compression = CBF_PACKED;
cif_id = hcif.binary_id;
cif_element_size = sizeof(int);
cif_element_signed = 0;
cif_nelements = hcif.array_structure_list[0].dimension *
hcif.array_structure_list[1].dimension;
/* Save the binary data */
cbf_failnez (cbf_set_integerarray (
cif,
cif_compression,
cif_id,
(void *)i4_img,
cif_element_size,
cif_element_signed,
cif_nelements))
fp = fopen (op, "w+b");
if ( fp == NULL ) return 0;
cbf_failnez (cbf_write_file (
cif,
fp,
1,
cbforcif,
mime | digest,
encoding | bytedir | term))
if ( !cif_error ) success = 1;
/* Free the cbf */
cbf_failnez (cbf_free_handle (cif))
if ( verbose > 1 ) {
printf("\n");
printf("%s: CIF-Header values:\n",prg);
printf(" Pixels :\t %d x %d\n",hcif.array_structure_list[0].dimension,hcif.array_structure_list[1].dimension);
printf(" Identifier :\t %11d\n",cif_id);
printf(" Compression :\t %11d\n",cif_compression);
printf(" Elements: :\t %11d\n",cif_nelements);
printf(" Element size :\t %11d\n",cif_element_size);
printf(" Signed :\t %11d\n",cif_element_signed);
}
return success;
}
| int PutCIFHeader | ( | char * | , |
| char * | |||
| ) |
Definition at line 960 of file marcif.c.
References MARIP_ADC::add_channel_a, MARIP_ADC::add_channel_b, DIFFRN_SCAN_FRAME_AXIS::angle, MARIP_AXIS::angle_end, DIFFRN_SCAN_AXIS::angle_increment, MARIP_AXIS::angle_increment, DIFFRN_SCAN_AXIS::angle_start, MARIP_AXIS::angle_start, CIF_HEADER::array_element_size, CIF_HEADER::array_id, CIF_HEADER::array_intensities, CIF_HEADER::array_structure_list, CIF_HEADER::audit, MARIP_EXPOSURE_DOSE::avg, AXIS_DISTANCE, DIFFRN_SCAN_FRAME_AXIS::axis_id, DIFFRN_SCAN_AXIS::axis_id, MARIP_AXIS::axis_id, AXIS_PHI, CIF_HEADER::binary_id, cbf_failnez, cbf_force_new_category(), cbf_make_handle(), cbf_new_column(), cbf_new_datablock(), cbf_new_row(), cbf_next_row(), cbf_rewind_row(), cbf_set_doublevalue(), cbf_set_integervalue(), cbf_set_value(), DIFFRN_DETECTOR_ELEMENT::center_x, DIFFRN_DETECTOR_ELEMENT::center_y, MARIP_ADC::channel_a, MARIP_ADC::channel_b, DIFFRN_RADIATION::collimation, AUDIT::creation_date, AUDIT::creation_method, CIF_HEADER::crystal_id, DIFFRN_SOURCE::current, DIFFRN_DETECTOR::detector, DIFFRN_RADIATION::detector, CIF_HEADER::detector_id, DIFFRN_MEASUREMENT::device, DIFFRN_MEASUREMENT::device_type, CIF_HEADER::diffrn_detector, CIF_HEADER::diffrn_detector_element, CIF_HEADER::diffrn_detector_mar_adc, CIF_HEADER::diffrn_detector_mar_axis, CIF_HEADER::diffrn_detector_mar_data, CIF_HEADER::diffrn_detector_mar_exposure, CIF_HEADER::diffrn_detector_mar_exposure_dose, CIF_HEADER::diffrn_detector_mar_gaps, CIF_HEADER::diffrn_detector_mar_scan, CIF_HEADER::diffrn_id, CIF_HEADER::diffrn_measurement, CIF_HEADER::diffrn_radiation, CIF_HEADER::diffrn_radiation_wavelength, CIF_HEADER::diffrn_scan, CIF_HEADER::diffrn_scan_axis, CIF_HEADER::diffrn_scan_frame_axis, CIF_HEADER::diffrn_source, ARRAY_STRUCTURE_LIST::dimension, ARRAY_STRUCTURE_LIST::direction, DIFFRN_SCAN_FRAME_AXIS::displacement, MARIP_AXIS::displacement, MARIP_EXPOSURE::dose, CIF_HEADER::element_id, MARIP_EXPOSURE_DOSE::end, MARIP_EXPOSURE_DOSE::esd, CIF_HEADER::frame_id, DIFFRN_SCAN::frame_id_end, DIFFRN_SCAN::frame_id_start, DIFFRN_SCAN::frames, ARRAY_INTENSITIES::gain, MARIP_ADC::gain, MARIP_GAPS::gap, MARIP_DATA::histogram_end, MARIP_DATA::histogram_max, MARIP_DATA::histogram_start, i, ARRAY_ELEMENT_SIZE::index, ARRAY_STRUCTURE_LIST::index, MARIP_DATA::intensity_avg, MARIP_DATA::intensity_esd, MARIP_DATA::intensity_max, MARIP_DATA::intensity_min, ARRAY_INTENSITIES::linearity, CIF_HEADER::mar_id, MARIP_EXPOSURE_DOSE::max, MARIP_EXPOSURE_DOSE::measurements, DIFFRN_MEASUREMENT::method, MARIP_EXPOSURE_DOSE::min, DIFFRN_RADIATION::monochromator, MARIP_ADC::multiplier, MARIP_SCAN::number_of_pixels, MARIP_SCAN::number_of_pixels_larger_16_bit, MARIP_AXIS::oscillations, ARRAY_INTENSITIES::overload, MARIP_ADC::oversampling, MARIP_SCAN::pixel_height, MARIP_SCAN::pixel_length, ARRAY_ELEMENT_SIZE::pixelsize, DIFFRN_RADIATION_WAVELENGTH::polarisn_norm, DIFFRN_RADIATION_WAVELENGTH::polarisn_ratio, ARRAY_STRUCTURE_LIST::precedence, PRINT_AXIS, PRINT_CHEMICAL, MARIP_SCAN::radial_offset, DIFFRN_MEASUREMENT::sample_detector_distance, ARRAY_INTENSITIES::scaling, CIF_HEADER::scan_id, MARIP_SCAN::scanmode, DIFFRN_SOURCE::source, MARIP_EXPOSURE_DOSE::start, MARIP_SCAN::tangential_offset, MARIP_EXPOSURE::time, MARIP_EXPOSURE::type, DIFFRN_DETECTOR::type, DIFFRN_SOURCE::type, ARRAY_INTENSITIES::undefined_value, DIFFRN_SOURCE::voltage, DIFFRN_RADIATION_WAVELENGTH::wavelength, and DIFFRN_RADIATION_WAVELENGTH::wavelength_wt.
Referenced by MarXF::output_image().
{
const char *sval;
float fval;
double dval;
int ival;
int i;
cbf_failnez (cbf_make_handle (&cif))
/* Make a new data block */
cbf_failnez (cbf_new_datablock (cif, "image_1"))
/********************************************************************
* AUDIT
********************************************************************/
cbf_failnez (cbf_force_new_category (cif, "audit"))
cbf_failnez (cbf_new_column (cif, "creation_date"))
cbf_failnez (cbf_set_value (cif, hcif.audit.creation_date))
cbf_failnez (cbf_new_column (cif, "creation_method"))
cbf_failnez (cbf_set_value (cif, hcif.audit.creation_method))
/********************************************************************
* ENTRY, EXPTL_CRYSTAL & CHEMICAL
********************************************************************/
cbf_failnez (cbf_force_new_category (cif, "entry_id"))
cbf_failnez (cbf_new_column (cif, "id"))
cbf_failnez (cbf_set_value (cif, "img1"))
cbf_failnez (cbf_force_new_category (cif, "exptl_crystal"))
cbf_failnez (cbf_new_column (cif, "id"))
cbf_failnez (cbf_set_value (cif, hcif.crystal_id))
if ( PRINT_CHEMICAL ) {
cbf_failnez (cbf_force_new_category (cif, "chemical"))
cbf_failnez (cbf_new_column (cif, "entry_id"))
cbf_failnez (cbf_set_value (cif, "img1"))
}
/********************************************************************
* DIFFRN
********************************************************************/
cbf_failnez (cbf_force_new_category (cif, "diffrn"))
cbf_failnez (cbf_new_column (cif, "id"))
cbf_failnez (cbf_set_value (cif, hcif.diffrn_id ))
cbf_failnez (cbf_new_column (cif, "crystal_id"))
cbf_failnez (cbf_set_value (cif, hcif.crystal_id))
/********************************************************************
* DIFFRN_SOURCE
********************************************************************/
cbf_failnez (cbf_force_new_category (cif, "diffrn_source"))
cbf_failnez (cbf_new_column (cif, "diffrn_id"))
cbf_failnez (cbf_set_value (cif, hcif.diffrn_id ))
cbf_failnez (cbf_new_column (cif, "source"))
cbf_failnez (cbf_set_value (cif, hcif.diffrn_source.source))
cbf_failnez (cbf_new_column (cif, "type"))
cbf_failnez (cbf_set_value (cif, hcif.diffrn_source.type))
cbf_failnez (cbf_new_column (cif, "current"))
cbf_failnez (cbf_set_doublevalue (cif, "%.1f", hcif.diffrn_source.current))
cbf_failnez (cbf_new_column (cif, "voltage"))
cbf_failnez (cbf_set_doublevalue (cif, "%.1f", hcif.diffrn_source.voltage))
/********************************************************************
* DIFFRN_MEASUREMENT
********************************************************************/
cbf_failnez (cbf_force_new_category (cif, "diffrn_measurement"))
cbf_failnez (cbf_new_column (cif, "diffrn_id"))
cbf_failnez (cbf_set_value (cif, hcif.diffrn_id ))
cbf_failnez (cbf_new_column (cif, "method"))
cbf_failnez (cbf_set_value (cif, hcif.diffrn_measurement.method))
cbf_failnez (cbf_new_column (cif, "device"))
cbf_failnez (cbf_set_value (cif, hcif.diffrn_measurement.device))
cbf_failnez (cbf_new_column (cif, "device_type"))
cbf_failnez (cbf_set_value (cif, hcif.diffrn_measurement.device_type))
cbf_failnez (cbf_new_column (cif, "sample_detector_distance"))
cbf_failnez (cbf_set_doublevalue (cif, "%.6f", hcif.diffrn_measurement.sample_detector_distance))
/********************************************************************
* DIFFRN_RADIATION
********************************************************************/
cbf_failnez (cbf_force_new_category (cif, "diffrn_radiation"))
cbf_failnez (cbf_new_column (cif, "diffrn_id"))
cbf_failnez (cbf_set_value (cif, hcif.diffrn_id ))
cbf_failnez (cbf_new_column (cif, "detector"))
cbf_failnez (cbf_set_value (cif, hcif.diffrn_radiation.detector))
cbf_failnez (cbf_new_column (cif, "collimation"))
cbf_failnez (cbf_set_value (cif, hcif.diffrn_radiation.collimation))
cbf_failnez (cbf_new_column (cif, "monochromator"))
cbf_failnez (cbf_set_value (cif, hcif.diffrn_radiation.monochromator))
/********************************************************************
* DIFFRN_RADIATION_WAVELENGTH
********************************************************************/
cbf_failnez (cbf_force_new_category (cif, "diffrn_radiation_wavelength"))
cbf_failnez (cbf_new_column (cif, "id"))
cbf_failnez (cbf_set_value (cif, "WL1"))
cbf_failnez (cbf_new_column (cif, "wavelength"))
cbf_failnez (cbf_set_doublevalue (cif, "%.6f", hcif.diffrn_radiation_wavelength.wavelength))
cbf_failnez (cbf_new_column (cif, "wavelength_wt"))
cbf_failnez (cbf_set_doublevalue (cif, "%.3f", hcif.diffrn_radiation_wavelength.wavelength_wt))
cbf_failnez (cbf_new_column (cif, "polarisn_ratio"))
cbf_failnez (cbf_set_doublevalue (cif, "%.3f", hcif.diffrn_radiation_wavelength.polarisn_ratio))
cbf_failnez (cbf_new_column (cif, "polarisn_norm"))
cbf_failnez (cbf_set_doublevalue (cif, "%.3f", hcif.diffrn_radiation_wavelength.polarisn_norm))
/********************************************************************
* DIFFRN_DETECTOR
********************************************************************/
cbf_failnez (cbf_force_new_category (cif, "diffrn_detector"))
cbf_failnez (cbf_new_column (cif, "id"))
cbf_failnez (cbf_set_value (cif, hcif.detector_id ))
cbf_failnez (cbf_new_column (cif, "diffrn_id"))
cbf_failnez (cbf_set_value (cif, hcif.diffrn_id ))
cbf_failnez (cbf_new_column (cif, "detector"))
cbf_failnez (cbf_set_value (cif, hcif.diffrn_detector.detector))
cbf_failnez (cbf_new_column (cif, "type"))
cbf_failnez (cbf_set_value (cif, hcif.diffrn_detector.type))
/********************************************************************
* DIFFRN_DETECTOR_ELEMENT
********************************************************************/
cbf_failnez (cbf_force_new_category (cif, "diffrn_detector_element"))
cbf_failnez (cbf_new_column (cif, "id"))
cbf_failnez (cbf_set_value (cif, hcif.element_id ))
cbf_failnez (cbf_new_column (cif, "detector_id"))
cbf_failnez (cbf_set_value (cif, hcif.detector_id ))
cbf_failnez (cbf_new_column (cif, "center[1]"))
cbf_failnez (cbf_set_doublevalue (cif, "%.3f", hcif.diffrn_detector_element.center_x))
cbf_failnez (cbf_new_column (cif, "center[2]"))
cbf_failnez (cbf_set_doublevalue (cif, "%.3f", hcif.diffrn_detector_element.center_y))
/********************************************************************
* MARIP
********************************************************************/
cbf_failnez (cbf_force_new_category (cif, "diffrn_detector_mar"))
cbf_failnez (cbf_new_column (cif, "id"))
cbf_failnez (cbf_set_value (cif, hcif.mar_id ))
cbf_failnez (cbf_new_column (cif, "detector_id"))
cbf_failnez (cbf_set_value (cif, hcif.detector_id ))
/********************************************************************
* MARIP_ADC
********************************************************************/
cbf_failnez (cbf_force_new_category (cif, "diffrn_detector_mar_adc"))
cbf_failnez (cbf_new_column (cif, "mar_id"))
cbf_failnez (cbf_set_value (cif, hcif.mar_id ))
cbf_failnez (cbf_new_column (cif, "channel_a"))
cbf_failnez (cbf_set_integervalue (cif, hcif.diffrn_detector_mar_adc.channel_a))
cbf_failnez (cbf_new_column (cif, "channel_b"))
cbf_failnez (cbf_set_integervalue (cif, hcif.diffrn_detector_mar_adc.channel_b))
cbf_failnez (cbf_new_column (cif, "add_channel_a"))
cbf_failnez (cbf_set_integervalue (cif, hcif.diffrn_detector_mar_adc.add_channel_a))
cbf_failnez (cbf_new_column (cif, "add_channel_b"))
cbf_failnez (cbf_set_integervalue (cif, hcif.diffrn_detector_mar_adc.add_channel_b))
cbf_failnez (cbf_new_column (cif, "oversampling"))
cbf_failnez (cbf_set_integervalue (cif, hcif.diffrn_detector_mar_adc.oversampling))
cbf_failnez (cbf_new_column (cif, "multiplier"))
cbf_failnez (cbf_set_doublevalue (cif, "%.3f", hcif.diffrn_detector_mar_adc.multiplier))
cbf_failnez (cbf_new_column (cif, "gain"))
cbf_failnez (cbf_set_doublevalue (cif, "%.3f", hcif.diffrn_detector_mar_adc.gain))
/********************************************************************
* MARIP_GAPS
********************************************************************/
cbf_failnez (cbf_force_new_category (cif, "diffrn_detector_mar_gaps"))
cbf_failnez (cbf_new_column (cif, "mar_id"))
cbf_failnez (cbf_set_value (cif, hcif.mar_id ))
cbf_failnez (cbf_new_column (cif, "gap[1]"))
cbf_failnez (cbf_set_integervalue (cif, hcif.diffrn_detector_mar_gaps.gap[0]))
cbf_failnez (cbf_new_column (cif, "gap[2]"))
cbf_failnez (cbf_set_integervalue (cif, hcif.diffrn_detector_mar_gaps.gap[1]))
cbf_failnez (cbf_new_column (cif, "gap[3]"))
cbf_failnez (cbf_set_integervalue (cif, hcif.diffrn_detector_mar_gaps.gap[2]))
cbf_failnez (cbf_new_column (cif, "gap[4]"))
cbf_failnez (cbf_set_integervalue (cif, hcif.diffrn_detector_mar_gaps.gap[3]))
cbf_failnez (cbf_new_column (cif, "gap[5]"))
cbf_failnez (cbf_set_integervalue (cif, hcif.diffrn_detector_mar_gaps.gap[4]))
cbf_failnez (cbf_new_column (cif, "gap[6]"))
cbf_failnez (cbf_set_integervalue (cif, hcif.diffrn_detector_mar_gaps.gap[5]))
cbf_failnez (cbf_new_column (cif, "gap[7]"))
cbf_failnez (cbf_set_integervalue (cif, hcif.diffrn_detector_mar_gaps.gap[6]))
cbf_failnez (cbf_new_column (cif, "gap[8]"))
cbf_failnez (cbf_set_integervalue (cif, hcif.diffrn_detector_mar_gaps.gap[7]))
/********************************************************************
* MARIP_SCAN
********************************************************************/
cbf_failnez (cbf_force_new_category (cif, "diffrn_detector_mar_scan"))
cbf_failnez (cbf_new_column (cif, "mar_id"))
cbf_failnez (cbf_set_value (cif, hcif.mar_id ))
cbf_failnez (cbf_new_column (cif, "scanmode"))
cbf_failnez (cbf_set_integervalue (cif, hcif.diffrn_detector_mar_scan.scanmode))
cbf_failnez (cbf_new_column (cif, "number_of_pixels"))
cbf_failnez (cbf_set_integervalue (cif, hcif.diffrn_detector_mar_scan.number_of_pixels))
cbf_failnez (cbf_new_column (cif, "number_of_pixels_larger_16_bit"))
cbf_failnez (cbf_set_integervalue (cif, hcif.diffrn_detector_mar_scan.number_of_pixels_larger_16_bit))
cbf_failnez (cbf_new_column (cif, "radial_offset"))
cbf_failnez (cbf_set_doublevalue (cif, "%1.3f", hcif.diffrn_detector_mar_scan.radial_offset))
cbf_failnez (cbf_new_column (cif, "tangential_offset"))
cbf_failnez (cbf_set_doublevalue (cif, "%1.3f", hcif.diffrn_detector_mar_scan.tangential_offset))
cbf_failnez (cbf_new_column (cif, "pixel_height"))
cbf_failnez (cbf_set_doublevalue (cif, "%1.3f", hcif.diffrn_detector_mar_scan.pixel_height))
cbf_failnez (cbf_new_column (cif, "pixel_length"))
cbf_failnez (cbf_set_doublevalue (cif, "%1.3f", hcif.diffrn_detector_mar_scan.pixel_length))
/********************************************************************
* MARIP_EXPOSURE
********************************************************************/
cbf_failnez (cbf_force_new_category (cif, "diffrn_detector_mar_exposure"))
cbf_failnez (cbf_new_column (cif, "mar_id"))
cbf_failnez (cbf_set_value (cif, hcif.mar_id ))
cbf_failnez (cbf_new_column (cif, "type"))
cbf_failnez (cbf_set_value (cif, hcif.diffrn_detector_mar_exposure.type))
cbf_failnez (cbf_new_column (cif, "time"))
cbf_failnez (cbf_set_doublevalue (cif, "%1.2f", hcif.diffrn_detector_mar_exposure.time))
cbf_failnez (cbf_new_column (cif, "dose"))
cbf_failnez (cbf_set_doublevalue (cif, "%1.2f", hcif.diffrn_detector_mar_exposure.dose))
/********************************************************************
* MARIP_EXPOSURE_DOSE
********************************************************************/
cbf_failnez (cbf_force_new_category (cif, "diffrn_detector_mar_exposure_dose"))
cbf_failnez (cbf_new_column (cif, "mar_id"))
cbf_failnez (cbf_set_value (cif, hcif.mar_id ))
cbf_failnez (cbf_new_column (cif, "dose"))
cbf_failnez (cbf_set_doublevalue (cif, "%1.2f", hcif.diffrn_detector_mar_exposure.dose))
cbf_failnez (cbf_new_column (cif, "avg"))
cbf_failnez (cbf_set_doublevalue (cif, "%1.2f", hcif.diffrn_detector_mar_exposure_dose.avg))
cbf_failnez (cbf_new_column (cif, "esd"))
cbf_failnez (cbf_set_doublevalue (cif, "%1.2f", hcif.diffrn_detector_mar_exposure_dose.esd))
cbf_failnez (cbf_new_column (cif, "min"))
cbf_failnez (cbf_set_doublevalue (cif, "%1.2f", hcif.diffrn_detector_mar_exposure_dose.min))
cbf_failnez (cbf_new_column (cif, "max"))
cbf_failnez (cbf_set_doublevalue (cif, "%1.2f", hcif.diffrn_detector_mar_exposure_dose.max))
cbf_failnez (cbf_new_column (cif, "start"))
cbf_failnez (cbf_set_doublevalue (cif, "%1.2f", hcif.diffrn_detector_mar_exposure_dose.start))
cbf_failnez (cbf_new_column (cif, "end"))
cbf_failnez (cbf_set_doublevalue (cif, "%1.2f", hcif.diffrn_detector_mar_exposure_dose.end))
cbf_failnez (cbf_new_column (cif, "measurements"))
cbf_failnez (cbf_set_integervalue (cif, hcif.diffrn_detector_mar_exposure_dose.measurements))
/********************************************************************
* MARIP_DATA
********************************************************************/
cbf_failnez (cbf_force_new_category (cif, "diffrn_detector_mar_data"))
cbf_failnez (cbf_new_column (cif, "mar_id"))
cbf_failnez (cbf_set_value (cif, hcif.mar_id ))
cbf_failnez (cbf_new_column (cif, "intensity_avg"))
cbf_failnez (cbf_set_doublevalue (cif, "%1.3f", hcif.diffrn_detector_mar_data.intensity_avg))
cbf_failnez (cbf_new_column (cif, "intensity_esd"))
cbf_failnez (cbf_set_doublevalue (cif, "%1.3f", hcif.diffrn_detector_mar_data.intensity_esd))
cbf_failnez (cbf_new_column (cif, "intensity_min"))
cbf_failnez (cbf_set_integervalue (cif, hcif.diffrn_detector_mar_data.intensity_min))
cbf_failnez (cbf_new_column (cif, "intensity_max"))
cbf_failnez (cbf_set_integervalue (cif, hcif.diffrn_detector_mar_data.intensity_max))
cbf_failnez (cbf_new_column (cif, "histogram_start"))
cbf_failnez (cbf_set_integervalue (cif, hcif.diffrn_detector_mar_data.histogram_start))
cbf_failnez (cbf_new_column (cif, "histogram_end"))
cbf_failnez (cbf_set_integervalue (cif, hcif.diffrn_detector_mar_data.histogram_end))
cbf_failnez (cbf_new_column (cif, "histogram_max"))
cbf_failnez (cbf_set_integervalue (cif, hcif.diffrn_detector_mar_data.histogram_max))
/********************************************************************
* MARIP_AXIS
********************************************************************/
cbf_failnez (cbf_force_new_category (cif, "diffrn_detector_mar_axis"))
cbf_failnez (cbf_new_column (cif, "mar_id"))
for ( i=0; i<=AXIS_DISTANCE; i++ ) {
cbf_failnez (cbf_set_value (cif, hcif.mar_id ))
if ( i==AXIS_DISTANCE ) break;
cbf_failnez (cbf_new_row (cif))
}
cbf_failnez (cbf_new_column (cif, "axis_id"))
cbf_failnez (cbf_rewind_row (cif))
for ( i=0; i<=AXIS_DISTANCE; i++ ) {
cbf_failnez (cbf_set_value (cif, hcif.diffrn_detector_mar_axis[i].axis_id))
if ( i==AXIS_DISTANCE ) break;
cbf_failnez (cbf_next_row (cif))
}
cbf_failnez (cbf_new_column (cif, "angle_start"))
cbf_failnez (cbf_rewind_row (cif))
for ( i=0; i<=AXIS_DISTANCE; i++ ) {
cbf_failnez (cbf_set_doublevalue (cif, "%.3f", hcif.diffrn_detector_mar_axis[i].angle_start))
if ( i==AXIS_DISTANCE ) break;
cbf_failnez (cbf_next_row (cif))
}
cbf_failnez (cbf_new_column (cif, "angle_end"))
cbf_failnez (cbf_rewind_row (cif))
for ( i=0; i<=AXIS_DISTANCE; i++ ) {
cbf_failnez (cbf_set_doublevalue (cif, "%.3f", hcif.diffrn_detector_mar_axis[i].angle_end))
if ( i==AXIS_DISTANCE ) break;
cbf_failnez (cbf_next_row (cif))
}
cbf_failnez (cbf_new_column (cif, "angle_increment"))
cbf_failnez (cbf_rewind_row (cif))
for ( i=0; i<=AXIS_DISTANCE; i++ ) {
cbf_failnez (cbf_set_doublevalue (cif, "%.3f", hcif.diffrn_detector_mar_axis[i].angle_increment))
if ( i==AXIS_DISTANCE ) break;
cbf_failnez (cbf_next_row (cif))
}
cbf_failnez (cbf_new_column (cif, "oscillations"))
cbf_failnez (cbf_rewind_row (cif))
for ( i=0; i<=AXIS_DISTANCE; i++ ) {
cbf_failnez (cbf_set_integervalue (cif, hcif.diffrn_detector_mar_axis[i].oscillations))
if ( i==AXIS_DISTANCE ) break;
cbf_failnez (cbf_next_row (cif))
}
cbf_failnez (cbf_new_column (cif, "displacement"))
cbf_failnez (cbf_rewind_row (cif))
for ( i=0; i<=AXIS_DISTANCE; i++ ) {
cbf_failnez (cbf_set_doublevalue (cif, "%.3f", hcif.diffrn_detector_mar_axis[i].displacement))
if ( i==AXIS_DISTANCE ) break;
cbf_failnez (cbf_next_row (cif))
}
/********************************************************************
* DIFFRN_FRAME_DATA
********************************************************************/
cbf_failnez (cbf_force_new_category (cif, "diffrn_frame_data"))
cbf_failnez (cbf_new_column (cif, "id"))
cbf_failnez (cbf_set_value (cif, hcif.frame_id ))
cbf_failnez (cbf_new_column (cif, "detector_element_id"))
cbf_failnez (cbf_set_value (cif, hcif.element_id ))
cbf_failnez (cbf_new_column (cif, "array_id"))
cbf_failnez (cbf_set_value (cif, hcif.array_id ))
cbf_failnez (cbf_new_column (cif, "binary_id"))
cbf_failnez (cbf_set_integervalue (cif, hcif.binary_id))
/********************************************************************
* DIFFRN_SCAN
********************************************************************/
cbf_failnez (cbf_force_new_category (cif, "diffrn_scan"))
cbf_failnez (cbf_new_column (cif, "scan_id"))
cbf_failnez (cbf_set_value (cif, hcif.scan_id ))
cbf_failnez (cbf_new_column (cif, "frame_id_start"))
cbf_failnez (cbf_set_value (cif, hcif.diffrn_scan.frame_id_start))
cbf_failnez (cbf_new_column (cif, "frame_id_end"))
cbf_failnez (cbf_set_value (cif, hcif.diffrn_scan.frame_id_end))
cbf_failnez (cbf_new_column (cif, "frames"))
cbf_failnez (cbf_set_integervalue (cif, hcif.diffrn_scan.frames))
/********************************************************************
* AXIS
********************************************************************/
if ( !PRINT_AXIS ) goto CIF_DIFFRN_SCAN_AXIS;
cbf_failnez (cbf_force_new_category (cif, "axis"))
cbf_failnez (cbf_new_column (cif, "id"))
cbf_failnez (cbf_set_value (cif, "phi" ))
cbf_failnez (cbf_new_row (cif))
cbf_failnez (cbf_set_value (cif, "chi" ))
cbf_failnez (cbf_new_row (cif))
cbf_failnez (cbf_set_value (cif, "omega" ))
cbf_failnez (cbf_new_row (cif))
cbf_failnez (cbf_set_value (cif, "twotheta" ))
cbf_failnez (cbf_new_row (cif))
cbf_failnez (cbf_set_value (cif, "distance" ))
cbf_failnez (cbf_new_column (cif, "type"))
cbf_failnez (cbf_rewind_row (cif))
cbf_failnez (cbf_set_value (cif, "rotation" ))
cbf_failnez (cbf_next_row (cif))
cbf_failnez (cbf_set_value (cif, "rotation" ))
cbf_failnez (cbf_next_row (cif))
cbf_failnez (cbf_set_value (cif, "rotation" ))
cbf_failnez (cbf_next_row (cif))
cbf_failnez (cbf_set_value (cif, "rotation" ))
cbf_failnez (cbf_next_row (cif))
cbf_failnez (cbf_set_value (cif, "translation" ))
cbf_failnez (cbf_new_column (cif, "equipment"))
cbf_failnez (cbf_rewind_row (cif))
cbf_failnez (cbf_set_value (cif, "detector" ))
cbf_failnez (cbf_next_row (cif))
cbf_failnez (cbf_set_value (cif, "detector" ))
cbf_failnez (cbf_next_row (cif))
cbf_failnez (cbf_set_value (cif, "detector" ))
cbf_failnez (cbf_next_row (cif))
cbf_failnez (cbf_set_value (cif, "detector" ))
cbf_failnez (cbf_next_row (cif))
cbf_failnez (cbf_set_value (cif, "detector" ))
cbf_failnez (cbf_new_column (cif, "vector[1]"))
cbf_failnez (cbf_rewind_row (cif))
cbf_failnez (cbf_set_doublevalue (cif, "%.0f", 1.0))
cbf_failnez (cbf_next_row (cif))
cbf_failnez (cbf_set_doublevalue (cif, "%.0f", 0.0))
cbf_failnez (cbf_next_row (cif))
cbf_failnez (cbf_set_doublevalue (cif, "%.0f", 0.0))
cbf_failnez (cbf_next_row (cif))
cbf_failnez (cbf_set_doublevalue (cif, "%.0f", 1.0))
cbf_failnez (cbf_next_row (cif))
cbf_failnez (cbf_set_doublevalue (cif, "%.0f", 0.0))
cbf_failnez (cbf_new_column (cif, "vector[2]"))
cbf_failnez (cbf_rewind_row (cif))
cbf_failnez (cbf_set_doublevalue (cif, "%.0f", 0.0))
cbf_failnez (cbf_next_row (cif))
cbf_failnez (cbf_set_doublevalue (cif, "%.0f", 1.0))
cbf_failnez (cbf_next_row (cif))
cbf_failnez (cbf_set_doublevalue (cif, "%.0f", 0.0))
cbf_failnez (cbf_next_row (cif))
cbf_failnez (cbf_set_doublevalue (cif, "%.0f", 0.0))
cbf_failnez (cbf_next_row (cif))
cbf_failnez (cbf_set_doublevalue (cif, "%.0f", 0.0))
cbf_failnez (cbf_new_column (cif, "vector[3]"))
cbf_failnez (cbf_rewind_row (cif))
cbf_failnez (cbf_set_doublevalue (cif, "%.0f", 0.0))
cbf_failnez (cbf_next_row (cif))
cbf_failnez (cbf_set_doublevalue (cif, "%.0f", 0.0))
cbf_failnez (cbf_next_row (cif))
cbf_failnez (cbf_set_doublevalue (cif, "%.0f", 1.0))
cbf_failnez (cbf_next_row (cif))
cbf_failnez (cbf_set_doublevalue (cif, "%.0f", 0.0))
cbf_failnez (cbf_next_row (cif))
cbf_failnez (cbf_set_doublevalue (cif, "%.0f", -1.0))
cbf_failnez (cbf_new_column (cif, "offset[1]"))
cbf_failnez (cbf_rewind_row (cif))
for (i=0;i<=AXIS_DISTANCE;i++) {
cbf_failnez (cbf_set_doublevalue (cif, "%.0f", 0.0))
if ( i==AXIS_DISTANCE ) break;
cbf_failnez (cbf_next_row (cif))
}
cbf_failnez (cbf_new_column (cif, "offset[2]"))
cbf_failnez (cbf_rewind_row (cif))
for (i=0;i<=AXIS_DISTANCE;i++) {
cbf_failnez (cbf_set_doublevalue (cif, "%.0f", 0.0))
if ( i==AXIS_DISTANCE ) break;
cbf_failnez (cbf_next_row (cif))
}
cbf_failnez (cbf_new_column (cif, "offset[3]"))
cbf_failnez (cbf_rewind_row (cif))
for (i=0;i<=AXIS_DISTANCE;i++) {
cbf_failnez (cbf_set_doublevalue (cif, "%.0f", 0.0))
if ( i==AXIS_DISTANCE ) break;
cbf_failnez (cbf_next_row (cif))
}
/********************************************************************
* DIFFRN_SCAN_AXIS
********************************************************************/
CIF_DIFFRN_SCAN_AXIS:
cbf_failnez (cbf_force_new_category (cif, "diffrn_scan_axis"))
cbf_failnez (cbf_new_column (cif, "scan_id"))
cbf_failnez (cbf_set_value (cif, hcif.scan_id ))
cbf_failnez (cbf_new_column (cif, "axis_id"))
cbf_failnez (cbf_set_value (cif, hcif.diffrn_scan_axis[AXIS_PHI].axis_id))
cbf_failnez (cbf_new_column (cif, "angle_start"))
cbf_failnez (cbf_set_doublevalue (cif, "%.3f", hcif.diffrn_scan_axis[AXIS_PHI].angle_start))
cbf_failnez (cbf_new_column (cif, "angle_increment"))
cbf_failnez (cbf_set_doublevalue (cif, "%.3f", hcif.diffrn_scan_axis[AXIS_PHI].angle_increment))
/********************************************************************
* DIFFRN_SCAN_FRAME
********************************************************************/
cbf_failnez (cbf_force_new_category (cif, "diffrn_scan_frame"))
cbf_failnez (cbf_new_column (cif, "scan_id"))
cbf_failnez (cbf_set_value (cif, hcif.scan_id ))
cbf_failnez (cbf_new_column (cif, "frame_id"))
cbf_failnez (cbf_set_value (cif, hcif.frame_id ))
/********************************************************************
* DIFFRN_SCAN_FRAME_AXIS
********************************************************************/
cbf_failnez (cbf_force_new_category (cif, "diffrn_scan_frame_axis"))
cbf_failnez (cbf_new_column (cif, "frame_id"))
for ( i=0; i<=AXIS_DISTANCE; i++ ) {
cbf_failnez (cbf_set_value (cif, hcif.frame_id ))
if ( i==AXIS_DISTANCE ) break;
cbf_failnez (cbf_new_row (cif))
}
cbf_failnez (cbf_new_column (cif, "axis_id"))
cbf_failnez (cbf_rewind_row (cif))
for ( i=0; i<=AXIS_DISTANCE; i++ ) {
cbf_failnez (cbf_set_value (cif, hcif.diffrn_scan_frame_axis[i].axis_id))
if ( i==AXIS_DISTANCE ) break;
cbf_failnez (cbf_next_row (cif))
}
cbf_failnez (cbf_new_column (cif, "angle"))
cbf_failnez (cbf_rewind_row (cif))
for ( i=0; i<=AXIS_DISTANCE; i++ ) {
cbf_failnez (cbf_set_doublevalue (cif, "%.3f", hcif.diffrn_scan_frame_axis[i].angle))
if ( i==AXIS_DISTANCE ) break;
cbf_failnez (cbf_next_row (cif))
}
cbf_failnez (cbf_new_column (cif, "displacement"))
cbf_failnez (cbf_rewind_row (cif))
for ( i=0; i<=AXIS_DISTANCE; i++ ) {
cbf_failnez (cbf_set_doublevalue (cif, "%.3f", hcif.diffrn_scan_frame_axis[i].displacement))
if ( i==AXIS_DISTANCE ) break;
cbf_failnez (cbf_next_row (cif))
}
/********************************************************************
* ARRAY_STRUCTURE
********************************************************************/
cbf_failnez (cbf_force_new_category (cif, "array_structure"))
cbf_failnez (cbf_new_column (cif, "array_id"))
cbf_failnez (cbf_set_value (cif, hcif.array_id ))
/********************************************************************
* ARRAY_INTENSITIES
********************************************************************/
cbf_failnez (cbf_force_new_category (cif, "array_intensities"))
cbf_failnez (cbf_new_column (cif, "array_id"))
cbf_failnez (cbf_set_value (cif, hcif.array_id ))
cbf_failnez (cbf_new_column (cif, "binary_id"))
cbf_failnez (cbf_set_integervalue (cif, hcif.binary_id))
cbf_failnez (cbf_new_column (cif, "linearity"))
cbf_failnez (cbf_set_value (cif, hcif.array_intensities.linearity))
cbf_failnez (cbf_new_column (cif, "undefined_value"))
cbf_failnez (cbf_set_doublevalue (cif, "%.0f", hcif.array_intensities.undefined_value))
cbf_failnez (cbf_new_column (cif, "overload"))
cbf_failnez (cbf_set_doublevalue (cif, "%.0f", hcif.array_intensities.overload))
cbf_failnez (cbf_new_column (cif, "scaling"))
cbf_failnez (cbf_set_doublevalue (cif, "%.3f", hcif.array_intensities.scaling))
cbf_failnez (cbf_new_column (cif, "gain"))
cbf_failnez (cbf_set_doublevalue (cif, "%.3f", hcif.array_intensities.gain))
/********************************************************************
* ARRAY_STRUCTURE_LIST
********************************************************************/
cbf_failnez (cbf_force_new_category (cif, "array_structure_list"))
cbf_failnez (cbf_new_column (cif, "array_id"))
for ( i=0; i<2; i++ ) {
cbf_failnez (cbf_set_value (cif, hcif.array_id ))
if ( i==1) break;
cbf_failnez (cbf_new_row (cif))
}
cbf_failnez (cbf_new_column (cif, "index"))
cbf_failnez (cbf_rewind_row (cif))
for ( i=0; i<2; i++ ) {
cbf_failnez (cbf_set_integervalue (cif, hcif.array_structure_list[i].index))
if ( i==1) break;
cbf_failnez (cbf_next_row (cif))
}
cbf_failnez (cbf_new_column (cif, "dimension"))
cbf_failnez (cbf_rewind_row (cif))
for ( i=0; i<2; i++ ) {
cbf_failnez (cbf_set_integervalue (cif, hcif.array_structure_list[i].dimension))
if ( i==1) break;
cbf_failnez (cbf_next_row (cif))
}
cbf_failnez (cbf_new_column (cif, "precedence"))
cbf_failnez (cbf_rewind_row (cif))
for ( i=0; i<2; i++ ) {
cbf_failnez (cbf_set_integervalue (cif, hcif.array_structure_list[i].precedence))
if ( i==1) break;
cbf_failnez (cbf_next_row (cif))
}
cbf_failnez (cbf_new_column (cif, "direction"))
cbf_failnez (cbf_rewind_row (cif))
for ( i=0; i<2; i++ ) {
cbf_failnez (cbf_set_value (cif, hcif.array_structure_list[i].direction))
if ( i==1) break;
cbf_failnez (cbf_next_row (cif))
}
/********************************************************************
* ARRAY_ELEMENT_SIZE
********************************************************************/
cbf_failnez (cbf_force_new_category (cif, "array_element_size"))
cbf_failnez (cbf_new_column (cif, "array_id"))
for ( i=0; i<2; i++ ) {
cbf_failnez (cbf_set_value (cif, hcif.array_id ))
if ( i==1) break;
cbf_failnez (cbf_new_row (cif))
}
cbf_failnez (cbf_new_column (cif, "index"))
cbf_failnez (cbf_rewind_row (cif))
for ( i=0; i<2; i++ ) {
cbf_failnez (cbf_set_integervalue (cif, hcif.array_element_size.index[i]))
if ( i==1) break;
cbf_failnez (cbf_next_row (cif))
}
cbf_failnez (cbf_new_column (cif, "size"))
cbf_failnez (cbf_rewind_row (cif))
for ( i=0; i<2; i++ ) {
cbf_failnez (cbf_set_doublevalue (cif, "%1.4e", hcif.array_element_size.pixelsize[i]))
if ( i==1) break;
cbf_failnez (cbf_next_row (cif))
}
/********************************************************************
* ARRAY_DATA
********************************************************************/
cbf_failnez (cbf_force_new_category (cif, "array_data"))
cbf_failnez (cbf_new_column (cif, "array_id"))
cbf_failnez (cbf_set_value (cif, "image_1"))
cbf_failnez (cbf_new_column (cif, "binary_id"))
cbf_failnez (cbf_set_integervalue (cif, hcif.binary_id))
cbf_failnez (cbf_new_column (cif, "data"))
return 1;
}
| int Putmar300Header | ( | int | , |
| int | , | ||
| MAR300_HEADER | |||
| ) |
Definition at line 212 of file mar300_header.c.
References MAR300_HEADER::centre_x, MAR300_HEADER::centre_y, MAR300_HEADER::counts_end, MAR300_HEADER::counts_start, MAR300_HEADER::date, MAR300_HEADER::distance, MAR300_HEADER::exptime_sec, MAR300_HEADER::exptime_units, MAR300_HEADER::high_pixels, MAR300_HEADER::high_records, i, MAR300_HEADER::lambda, MAR300_HEADER::lrecl, MAR300_HEADER::max_rec, MAR300_HEADER::multiplier, now, MAR300_HEADER::omega, MAR300_HEADER::p_l, MAR300_HEADER::p_r, MAR300_HEADER::p_x, MAR300_HEADER::p_y, MAR300_HEADER::phi_end, MAR300_HEADER::phi_start, MAR300_HEADER::pixels_x, MAR300_HEADER::pixels_y, MAR300_HEADER::prog_time, MAR300_HEADER::r_max, MAR300_HEADER::r_min, and str.
Referenced by MarXF::output_header().
{
int i;
int io=0;
char c=' ',str[32];
time_t now;
if ( fd < 0 )return(0);
/*
* Rewind file
*/
i = lseek( fd, 0, SEEK_SET );
if ( strlen( h.date ) < 5 ) {
time( &now );
sprintf( str,"%s", (char *)ctime( &now ) );
for ( i=24; i<32; i++ )
str[i]='\0';
strncpy( h.date, str, 24 );
}
/*
* Write image header (10xint+15*float+date)
*/
io = write( fd, &h, sizeof( h ) );
/*
* New header additions, all items are 16 byte strings.
* 1.) MARCONTROL + Version no.
* 2.) Scanner serial no.
* 3.) Computer architecture
* 4.) Sum of xray units
* 5-...) Repeat normal header (i.e. 10 ints and 15 floats).
*/
str[15] = '\0';
sprintf( str, "MARCONTROL 1.0 ");
io += write( fd, str, 16 );
sprintf( str, "%16d", serial);
io += write( fd, str, 16 );
#if ( LINUX || linux )
sprintf( str, "LINUX " );
#elif ( __sgi )
sprintf( str, "SGI " );
#elif ( __osf__ )
sprintf( str, "DEC UNIX " );
#elif ( __hpux )
sprintf( str, "HPUX " );
#elif ( __ALPHA )
sprintf( str, "ALPHA " );
#else
sprintf( str, "UNKNOWN " );
#endif
io += write( fd, str, 16 );
sprintf( str, "%16.3f", (float)h.exptime_units );
io += write( fd, str, 16 );
str[16] = '\0';
/* 10 x integer as string */
sprintf( str, "%16d", h.pixels_x );
io += write( fd, str, 16 );
sprintf( str, "%16d", h.pixels_y );
io += write( fd, str, 16 );
sprintf( str, "%16d", h.lrecl );
io += write( fd, str, 16 );
sprintf( str, "%16d", h.max_rec );
io += write( fd, str, 16 );
sprintf( str, "%16d", h.high_pixels );
io += write( fd, str, 16 );
sprintf( str, "%16d", h.high_records );
io += write( fd, str, 16 );
sprintf( str, "%16d", h.counts_start );
io += write( fd, str, 16 );
sprintf( str, "%16d", h.counts_end );
io += write( fd, str, 16 );
sprintf( str, "%16d", h.exptime_sec );
io += write( fd, str, 16 );
sprintf( str, "%16d", h.exptime_units );
io += write( fd, str, 16 );
/* 15 x integer as string */
sprintf( str, "%16.3f", h.prog_time );
io += write( fd, str, 16 );
sprintf( str, "%16.3f", h.r_max );
io += write( fd, str, 16 );
sprintf( str, "%16.3f", h.r_min );
io += write( fd, str, 16 );
sprintf( str, "%16.3f", h.p_r );
io += write( fd, str, 16 );
sprintf( str, "%16.3f", h.p_l );
io += write( fd, str, 16 );
sprintf( str, "%16.3f", h.p_x );
io += write( fd, str, 16 );
sprintf( str, "%16.3f", h.p_y );
io += write( fd, str, 16 );
sprintf( str, "%16.3f", h.centre_x );
io += write( fd, str, 16 );
sprintf( str, "%16.3f", h.centre_y );
io += write( fd, str, 16 );
sprintf( str, "%16.3f", h.lambda );
io += write( fd, str, 16 );
sprintf( str, "%16.3f", h.distance );
io += write( fd, str, 16 );
sprintf( str, "%16.3f", h.phi_start );
io += write( fd, str, 16 );
sprintf( str, "%16.3f", h.phi_end );
io += write( fd, str, 16 );
sprintf( str, "%16.3f", h.omega );
io += write( fd, str, 16 );
sprintf( str, "%16.3f", h.multiplier );
io += write( fd, str, 16 );
/*
* Fill remaining bytes of record with blanks
*/
FILL:
while ( lseek( fd, 0, SEEK_CUR ) < (2*h.pixels_x) )
if ( write( fd, &c, 1) < 1 )
break;
else
io++;
if ( io < 2*h.pixels_x )
return 0;
return 1;
}
| int Putmar345Header | ( | int | , |
| MAR345_HEADER | |||
| ) |
Definition at line 747 of file mar345_header.c.
References MAR345_HEADER::adc_A, MAR345_HEADER::adc_B, MAR345_HEADER::add_A, MAR345_HEADER::add_B, MAR345_HEADER::byteorder, MAR345_HEADER::chi, MAR345_HEADER::date, MAR345_HEADER::dist, MAR345_HEADER::doseavg, MAR345_HEADER::dosebeg, MAR345_HEADER::doseend, MAR345_HEADER::dosemax, MAR345_HEADER::dosemin, MAR345_HEADER::dosen, MAR345_HEADER::dosesig, MAR345_HEADER::filter, MAR345_HEADER::format, MAR345_HEADER::gain, MAR345_HEADER::gap, MAR345_HEADER::high, MAR345_HEADER::histbeg, MAR345_HEADER::histend, MAR345_HEADER::histmax, i, MAR345_HEADER::kV, MAR345_HEADER::mA, MAR345_HEADER::mode, MAR345_HEADER::multiplier, now, MAR345_HEADER::omebeg, MAR345_HEADER::omeend, MAR345_HEADER::omeosc, MAR345_HEADER::phibeg, MAR345_HEADER::phiend, MAR345_HEADER::phiosc, MAR345_HEADER::pixel_height, MAR345_HEADER::pixel_length, MAR345_HEADER::pixels, MAR345_HEADER::polar, MAR345_HEADER::program, MAR345_HEADER::remark, MAR345_HEADER::resol, MAR345_HEADER::roff, MAR345_HEADER::scanner, MAR345_HEADER::size, MAR345_HEADER::slitx, MAR345_HEADER::slity, MAR345_HEADER::source, str, MAR345_HEADER::theta, MAR345_HEADER::time, MAR345_HEADER::toff, MAR345_HEADER::valavg, MAR345_HEADER::valmax, MAR345_HEADER::valmin, MAR345_HEADER::valsig, MAR345_HEADER::version, MAR345_HEADER::wave, MAR345_HEADER::xcen, and MAR345_HEADER::ycen.
Referenced by MarXF::output_header().
{
int i,k=0;
int io;
int head[32];
int byte_order=1234;
time_t now;
char c=' ', str[128];
char *mode[2] ={"DOSE","TIME"};
char *format[3]={"IMAGE","PCK","SPIRAL"};
char *source[3]={"SEALED TUBE","ROTATING ANODE","SYNCHROTRON"};
char *filter[3]={"GRAPHITE", "MIRRORS" ,"FILTER" };
if ( fd < 0 )return(0);
h.byteorder = 1234;
time( &now);
sprintf( str, "%s", (char *)ctime( &now ));
memcpy( h.date, str, 24 );
lseek( fd, 0, SEEK_SET );
/* Make some necessary checks */
if ( h.mode > 1 ) h.mode = 1;
if ( h.format > 2 ) h.format = 1;
/* First 32 longs contain: */
memset( head, 0, 32*sizeof(int) );
head[ 0] = (int)( h.byteorder );
head[ 1] = (int)( h.size );
head[ 2] = (int)( h.high );
head[ 3] = (int)( h.format );
head[ 4] = (int)( h.mode );
head[ 5] = (int)( h.pixels );
head[ 6] = (int)( h.pixel_length );
head[ 7] = (int)( h.pixel_height );
head[ 8] = (int)( h.wave * 1000000. );
head[ 9] = (int)( h.dist * 1000. );
head[10] = (int)( h.phibeg * 1000. );
head[11] = (int)( h.phiend * 1000. );
head[12] = (int)( h.omebeg * 1000. );
head[13] = (int)( h.omeend * 1000. );
head[14] = (int)( h.chi * 1000. );
head[15] = (int)( h.theta * 1000. );
/* First 4 bytes: integer with 1234 */
io = write( fd, head, 32*sizeof(int) );
sprintf( str, "mar research");
for ( i=strlen(str); i<63; i++ ) str[i]=' '; str[63]='\n';
io += write( fd, str, 64); k++;
sprintf( str, "PROGRAM %s Version %s",h.program,h.version);
for ( i=strlen(str); i<63; i++ ) str[i]=' '; str[63]='\n';
io += write( fd, str, 64); k++;
sprintf( str, "DATE %s",h.date);
for ( i=strlen(str); i<63; i++ ) str[i]=' '; str[63]='\n';
io += write( fd, str, 64 ); k++;
sprintf( str, "SCANNER %d\n",h.scanner);
for ( i=strlen(str); i<63; i++ ) str[i]=' '; str[63]='\n';
io += write( fd, str, 64 ); k++;
sprintf( str, "FORMAT %d %s %d\n",h.size,format[(int)h.format],h.pixels);
for ( i=strlen(str); i<63; i++ ) str[i]=' '; str[63]='\n';
io += write( fd, str, 64 ); k++;
sprintf( str, "HIGH %d\n",h.high);
for ( i=strlen(str); i<63; i++ ) str[i]=' '; str[63]='\n';
io += write( fd, str, 64 ); k++;
sprintf( str, "PIXEL LENGTH %1.0f HEIGHT %1.0f\n",h.pixel_length,h.pixel_height);
for ( i=strlen(str); i<63; i++ ) str[i]=' '; str[63]='\n';
io += write( fd, str, 64 ); k++;
sprintf( str, "OFFSET ROFF %1.0f TOFF %1.0f\n",h.roff,h.toff);
for ( i=strlen(str); i<63; i++ ) str[i]=' '; str[63]='\n';
io += write( fd, str, 64 ); k++;
sprintf( str, "GAPS %d %d %d %d %d %d %d %d\n",
h.gap[0],h.gap[1],h.gap[2],h.gap[3],h.gap[4],h.gap[5],h.gap[6],h.gap[7]);
for ( i=strlen(str); i<63; i++ ) str[i]=' '; str[63]='\n';
io += write( fd, str, 64 ); k++;
if ( h.adc_A >= 0 ) {
sprintf( str, "ADC A %d B %d ADD_A %d ADD_B %d\n",h.adc_A,h.adc_B,h.add_A,h.add_B);
for ( i=strlen(str); i<63; i++ ) str[i]=' '; str[63]='\n';
io += write( fd, str, 64 ); k++;
}
sprintf( str, "MULTIPLIER %1.3f\n",h.multiplier);
for ( i=strlen(str); i<63; i++ ) str[i]=' '; str[63]='\n';
io += write( fd, str, 64 ); k++;
sprintf( str, "GAIN %1.3f\n",h.gain);
for ( i=strlen(str); i<63; i++ ) str[i]=' '; str[63]='\n';
io += write( fd, str, 64 ); k++;
sprintf( str, "WAVELENGTH %1.5f\n",h.wave);
for ( i=strlen(str); i<63; i++ ) str[i]=' '; str[63]='\n';
io += write( fd, str, 64 ); k++;
sprintf( str, "DISTANCE %1.3f\n",h.dist);
for ( i=strlen(str); i<63; i++ ) str[i]=' '; str[63]='\n';
io += write( fd, str, 64 ); k++;
sprintf( str, "RESOLUTION %1.3f\n",h.resol);
for ( i=strlen(str); i<63; i++ ) str[i]=' '; str[63]='\n';
io += write( fd, str, 64 ); k++;
sprintf( str, "PHI START %1.3f END %1.3f OSC %d\n",h.phibeg,h.phiend,h.phiosc);
for ( i=strlen(str); i<63; i++ ) str[i]=' '; str[63]='\n';
io += write( fd, str, 64 ); k++;
sprintf( str, "OMEGA START %1.3f END %1.3f OSC %d\n",h.omebeg,h.omeend,h.omeosc);
for ( i=strlen(str); i<63; i++ ) str[i]=' '; str[63]='\n';
io += write( fd, str, 64 ); k++;
sprintf( str, "CHI %1.3f\n",h.chi);
for ( i=strlen(str); i<63; i++ ) str[i]=' '; str[63]='\n';
io += write( fd, str, 64 ); k++;
sprintf( str, "TWOTHETA %1.3f\n",h.theta);
for ( i=strlen(str); i<63; i++ ) str[i]=' '; str[63]='\n';
io += write( fd, str, 64 ); k++;
sprintf( str, "CENTER X %1.3f Y %1.3f\n",h.xcen,h.ycen);
for ( i=strlen(str); i<63; i++ ) str[i]=' '; str[63]='\n';
io += write( fd, str, 64 ); k++;
sprintf( str, "MODE %s\n",mode[(int)h.mode]);
for ( i=strlen(str); i<63; i++ ) str[i]=' '; str[63]='\n';
io += write( fd, str, 64 ); k++;
sprintf( str, "TIME %1.2f\n",h.time);
for ( i=strlen(str); i<63; i++ ) str[i]=' '; str[63]='\n';
io += write( fd, str, 64 ); k++;
sprintf( str, "COUNTS START %1.2f END %1.2f NMEAS %d\n",h.dosebeg,h.doseend,h.dosen);
for ( i=strlen(str); i<63; i++ ) str[i]=' '; str[63]='\n';
io += write( fd, str, 64 ); k++;
sprintf( str, "COUNTS MIN %1.2f MAX %1.2f\n",h.dosemin,h.dosemax);
for ( i=strlen(str); i<63; i++ ) str[i]=' '; str[63]='\n';
io += write( fd, str, 64 ); k++;
sprintf( str, "COUNTS AVE %1.2f SIG %1.2f\n",h.doseavg,h.dosesig);
for ( i=strlen(str); i<63; i++ ) str[i]=' '; str[63]='\n';
io += write( fd, str, 64 ); k++;
sprintf( str, "INTENSITY MIN %d MAX %d AVE %1.1f SIG %1.2f\n",h.valmin,h.valmax,h.valavg,h.valsig);
for ( i=strlen(str); i<63; i++ ) str[i]=' '; str[63]='\n';
io += write( fd, str, 64 ); k++;
sprintf( str, "HISTOGRAM START %d END %d MAX %d\n",h.histbeg,h.histend,h.histmax);
for ( i=strlen(str); i<63; i++ ) str[i]=' '; str[63]='\n';
io += write( fd, str, 64 ); k++;
sprintf( str, "GENERATOR %s kV %1.1f mA %1.1f\n",h.source,h.kV, h.mA);
for ( i=strlen(str); i<63; i++ ) str[i]=' '; str[63]='\n';
io += write( fd, str, 64 ); k++;
sprintf( str, "MONOCHROMATOR %s POLAR %1.3f\n",h.filter,h.polar);
for ( i=strlen(str); i<63; i++ ) str[i]=' '; str[63]='\n';
io += write( fd, str, 64 ); k++;
sprintf( str, "COLLIMATOR WIDTH %1.2f HEIGHT %1.2f\n",h.slitx,h.slity);
for ( i=strlen(str); i<63; i++ ) str[i]=' '; str[63]='\n';
io += write( fd, str, 64 ); k++;
sprintf( str, "REMARK %s\n",h.remark);
for ( i=strlen(str); i<63; i++ ) str[i]=' '; str[63]='\n';
io += write( fd, str, 64 ); k++;
sprintf( str, "END OF HEADER\n");
for ( i=strlen(str); i<63; i++ ) str[i]=' '; str[63]='\n';
io += write( fd, str, 64 ); k++;
/*
* Fill rest of header (4096 bytes) with blanks:
*/
k = 4096;
while ( lseek( fd, 0, SEEK_CUR ) < k ) {
i = write( fd, &c, 1 );
if ( i < 1 ) break;
io += i;
}
if ( io < k ) {
fprintf( stderr, "ERROR: only %d out of %d bytes written into image header!!!\n",io,k);
return 0;
}
return 1;
}
| void rotate_i4 | ( | unsigned int * | data, |
| int | nx | ||
| ) |
Definition at line 176 of file misc.c.
Referenced by MarXF::output_image().
{
register unsigned int *ptr1, *ptr2, *ptr3, *ptr4, temp;
register int i, j;
int nx2 = (nx+1)/2;
for ( i=nx/2; i--; ) {
/* Set pointer addresses */
j = nx2 - 1;
ptr1 = data + nx*i + j; /* 1. Quadrant */
ptr2 = data + nx*j + nx-1-i; /* 2. Quadrant */
ptr3 = data + nx*(nx-1-i) + nx-1-j; /* 4. Quadrant */
ptr4 = data + nx*(nx-1-j) + i; /* 3. Quadrant */
for ( j = nx2; j--; ) {
/* Restack: clockwise rotation by 90.0 */
temp = *ptr4;
*ptr4 = *ptr3;
*ptr3 = *ptr2;
*ptr2 = *ptr1;
*ptr1 = temp;
/* Increase pointer */
ptr1 --;
ptr2 -= nx;
ptr3 ++;
ptr4 += nx;
}
}
}
| void rotate_i4_anti | ( | unsigned int * | data, |
| int | nx | ||
| ) |
Definition at line 44 of file misc.c.
Referenced by MarXF::output_image().
{
register unsigned int *ptr1, *ptr2, *ptr3, *ptr4, temp;
register int i, j;
int nx2 = (nx+1)/2;
for ( i=nx/2; i--; ) {
/* Set pointer addresses */
j = nx2 - 1;
ptr1 = data + nx*i + j; /* 1. Quadrant */
ptr2 = data + nx*j + nx-1-i; /* 2. Quadrant */
ptr3 = data + nx*(nx-1-i) + nx-1-j; /* 4. Quadrant */
ptr4 = data + nx*(nx-1-j) + i; /* 3. Quadrant */
for ( j = nx2; j--; ) {
/* Restack: anticlockwise rotation by 90.0 */
temp = *ptr1;
*ptr1 = *ptr2;
*ptr2 = *ptr3;
*ptr3 = *ptr4;
*ptr4 = temp;
/* Increase pointer */
ptr1 --;
ptr2 -= nx;
ptr3 ++;
ptr4 += nx;
}
}
}
| void swaplong | ( | char * | , |
| int | |||
| ) |
| void swapshort | ( | char * | , |
| int | |||
| ) |
int ac_size = 0 [static] |
Definition at line 95 of file marxf.cpp.
Referenced by MarXF::get_header_values(), MarXF::mar_start_scan_readout(), MarXF::output_header(), MarXF::output_image(), MarXF::PrintStats(), and MarXF::Transform().
| int adc1 |
Definition at line 54 of file marhw.cpp.
Referenced by MarXF::get_header_values(), MarXF::PrintStats(), and MarXF::Transform().
| int adc2 |
Definition at line 55 of file marhw.cpp.
Referenced by MarXF::get_header_values(), MarXF::PrintStats(), and MarXF::Transform().
char adc_channel = 0 [static] |
Definition at line 84 of file marxf.cpp.
Referenced by MarXF::mar_start_scan_readout(), and MarXF::Transform().
| int adcavg1 |
Definition at line 65 of file marxf.cpp.
Referenced by MarXF::mar_start_scan_readout(), and MarXF::Transform().
| int adcavg11 |
Definition at line 65 of file marxf.cpp.
Referenced by MarXF::mar_start_scan_readout(), and MarXF::Transform().
| int adcavg2 |
Definition at line 65 of file marxf.cpp.
Referenced by MarXF::mar_start_scan_readout().
| int adcavg21 |
Definition at line 65 of file marxf.cpp.
Referenced by MarXF::mar_start_scan_readout().
int add_A [static] |
Definition at line 68 of file marxf.cpp.
Referenced by MarXF::get_header_values(), MarXF::mar_start_scan_readout(), and MarXF::Transform().
| int add_B |
Definition at line 68 of file marxf.cpp.
Referenced by MarXF::get_header_values(), MarXF::mar_start_scan_readout(), and MarXF::Transform().
| float AvgI |
Definition at line 79 of file marxf.cpp.
Referenced by MarXF::get_header_values(), MarXF::output_image(), and MarXF::PrintResults().
unsigned char bit[8] = { 1, 2, 4, 8, 16, 32, 64, 128 } [static] |
Definition at line 122 of file marxf.cpp.
Referenced by cbf_compare_bitcodes(), cbf_decompress_none(), cbf_get_bit(), cbf_reverse_bitcodes(), pack_longs(), and MarXF::Transform().
| int bytes2xfer |
Definition at line 63 of file marxf.cpp.
Referenced by MarXF::mar_start_scan_readout(), and MarNet::net_data().
| int com_scanmode |
Definition at line 207 of file marglobals.h.
Referenced by Command::exec_command(), Command::mar_init_params(), MarHW::marTask(), and MarHW::StartScan().
| int current_pixel |
Definition at line 75 of file marxf.cpp.
Referenced by MarXF::mar_start_scan_readout(), MarHW::marTask(), MarHW::StartScan(), and MarXF::Transform().
| int data_offset |
Definition at line 74 of file marxf.cpp.
Referenced by MarXF::mar_start_scan_readout().
| char do_xform |
Definition at line 49 of file scan345.cpp.
Referenced by MarXF::mar_start_scan_readout(), MarXF::output_header(), MarXF::output_image(), and MarXF::Transform().
| int edit_output |
| int fdnb |
int fdspiral = -1 [static] |
Definition at line 89 of file marxf.cpp.
Referenced by MarXF::mar_start_scan_readout(), MarXF::output_header(), MarXF::output_image(), and MarXF::Transform().
int fdxf = 0 [static] |
Definition at line 99 of file marxf.cpp.
Referenced by MarXF::mar_start_scan_readout(), MarXF::output_header(), and MarXF::output_image().
FILE* fpnb = NULL [static] |
Definition at line 87 of file marxf.cpp.
Referenced by MarXF::mar_start_scan_readout(), and MarXF::Transform().
float fract_intens [static] |
Definition at line 113 of file marxf.cpp.
Referenced by MarXF::ImageArray(), and MarXF::Transform().
MAR300_HEADER h300 [static] |
Definition at line 54 of file marxf.cpp.
Referenced by CIF2mar345Header().
int hist_begin [static] |
Definition at line 67 of file marxf.cpp.
Referenced by MarXF::get_header_values(), and MarXF::HistoMinMax().
| int hist_end |
Definition at line 67 of file marxf.cpp.
Referenced by MarXF::get_header_values(), and MarXF::HistoMinMax().
| int hist_max |
Definition at line 67 of file marxf.cpp.
Referenced by MarXF::get_header_values(), and MarXF::HistoMinMax().
unsigned short i2_record[MAX_SIZE] [static] |
Definition at line 85 of file marxf.cpp.
Referenced by MarXF::mar_start_scan_readout().
int i_rec = 1 [static] |
Definition at line 96 of file marxf.cpp.
Referenced by MarXF::mar_start_scan_readout().
int i_x0 = 0 [static] |
Definition at line 91 of file marxf.cpp.
Referenced by MarXF::mar_start_scan_readout(), and MarXF::Transform().
int iindex = 0 [static] |
Definition at line 90 of file marxf.cpp.
Referenced by MarXF::mar_start_scan_readout().
| int Imax |
Definition at line 78 of file marxf.cpp.
Referenced by MarXF::get_header_values(), MarXF::output_image(), and MarXF::PrintResults().
| char input_skip_op |
Definition at line 53 of file scan345.cpp.
Referenced by MarXF::output_image(), MarXF::PrintResults(), and Scan345::scan345_main().
int istrong [static] |
Definition at line 106 of file marxf.cpp.
Referenced by MarXF::mar_start_scan_readout(), MarXF::output_image(), and MarXF::PrintResults().
int j_y0 = 0 [static] |
Definition at line 92 of file marxf.cpp.
Referenced by MarXF::mar_start_scan_readout(), and MarXF::Transform().
| char keep_image |
Definition at line 49 of file marhw.cpp.
Referenced by MarXF::mar_start_scan_readout(), MarHW::marTask(), MarHW::NotEnoughDiskSpace(), MarXF::output_header(), MarXF::output_image(), Scan345::scan345_main(), and MarXF::Transform().
int last_block [static] |
Definition at line 104 of file marxf.cpp.
Referenced by MarXF::mar_start_scan_readout(), and MarXF::Transform().
| char last_image[128] = { ""} |
Definition at line 59 of file marxf.cpp.
Referenced by MarXF::output_image().
int last_pixel [static] |
Definition at line 105 of file marxf.cpp.
Referenced by MarXF::mar_start_scan_readout(), and MarXF::Transform().
| int last_total = 0 |
int lin_dxy[8] [static] |
Definition at line 110 of file marxf.cpp.
Referenced by MarXF::mar_start_scan_readout(), and MarXF::Transform().
int max_spiral_int = 0 [static] |
Definition at line 93 of file marxf.cpp.
Referenced by MarXF::mar_start_scan_readout(), and MarXF::Transform().
| int maximum_block |
Definition at line 72 of file marxf.cpp.
Referenced by MarXF::mar_start_scan_readout(), and MarXF::Transform().
| int maximum_bytes |
Definition at line 73 of file marxf.cpp.
Referenced by MarXF::mar_start_scan_readout(), and MarNet::net_data().
| int maximum_pixels |
Definition at line 71 of file marxf.cpp.
Referenced by MarXF::get_header_values(), MarHW::mar_progress(), MarXF::mar_start_scan_readout(), and MarXF::Transform().
int n1 = 0 [static] |
Definition at line 65 of file marxf.cpp.
Referenced by MarXF::mar_start_scan_readout(), and MarXF::Transform().
| int n2 = 0 |
Definition at line 65 of file marxf.cpp.
Referenced by MarXF::mar_start_scan_readout().
MARNB_HEADER nb [static] |
int nb_index [static] |
Definition at line 109 of file marxf.cpp.
Referenced by MarXF::mar_start_scan_readout(), and MarXF::Transform().
unsigned char nb_rec[NB_SIZE] [static] |
Definition at line 120 of file marxf.cpp.
Referenced by MarXF::ReadNB(), and MarXF::Transform().
int ns_rec = 0 [static] |
Definition at line 98 of file marxf.cpp.
Referenced by MarXF::get_header_values(), and MarXF::output_image().
| int nsat |
Referenced by MarXF::output_image(), and MarXF::PrintResults().
int nskip [static] |
Definition at line 107 of file marxf.cpp.
Referenced by MarXF::mar_start_scan_readout(), and MarXF::Transform().
| int nstrong |
Referenced by MarXF::get_header_values(), MarXF::output_image(), and MarXF::PrintResults().
| char op_in_progress = 0 |
Definition at line 58 of file marxf.cpp.
Referenced by MarXF::output_image(), and MarXF::Transform().
int poff [static] |
Definition at line 108 of file marxf.cpp.
Referenced by MarXF::get_header_values(), MarXF::mar_start_scan_readout(), and MarXF::Transform().
unsigned short px_rec[9 *NB_SIZE] [static] |
Definition at line 121 of file marxf.cpp.
Referenced by MarXF::ReadNB(), and MarXF::Transform().
int saturation [static] |
Definition at line 111 of file marxf.cpp.
Referenced by MarXF::mar_start_scan_readout().
| char scan_in_progress = 0 |
Definition at line 56 of file marxf.cpp.
Referenced by Command::exec_command(), MarHW::get_status(), MarHW::mar_progress(), MarXF::mar_start_scan_readout(), MarHW::marTask(), MarNet::net_data(), MarXF::output_image(), and MarXF::Transform().
| float SigI |
Definition at line 79 of file marxf.cpp.
Referenced by MarXF::get_header_values(), and MarXF::output_image().
| char skip_op |
Definition at line 48 of file marhw.cpp.
Referenced by MarHW::marTask(), MarXF::output_image(), and MarXF::PrintResults().
| int sp_pixels |
Definition at line 70 of file marxf.cpp.
Referenced by MarXF::mar_start_scan_readout(), MarXF::ReadNB(), and MarXF::Transform().
int spiral_offset = 0 [static] |
Definition at line 94 of file marxf.cpp.
Referenced by MarXF::mar_start_scan_readout(), and MarXF::Transform().
char spiral_only [static] |
Definition at line 112 of file marxf.cpp.
Referenced by MarXF::mar_start_scan_readout(), MarXF::output_header(), MarXF::output_image(), and MarXF::PrintResults().
int spiral_size [static] |
Definition at line 102 of file marxf.cpp.
Referenced by MarXF::mar_start_scan_readout(), and MarXF::Transform().
char start_with_A = 1 [static] |
Definition at line 101 of file marxf.cpp.
Referenced by MarXF::get_header_values(), and MarXF::mar_start_scan_readout().
| int stat_blocks_sent |
Definition at line 69 of file marhw.cpp.
Referenced by MarXF::mar_start_scan_readout(), MarNet::net_data(), and MarXF::Transform().
| int stat_scan_add |
Definition at line 62 of file marhw.cpp.
Referenced by MarXF::mar_start_scan_readout(), MarHW::marTask(), and MarHW::StartScan().
STRONG strong_rec[MAX_SIZE/2] [static] |
int swap_nb = 0 [static] |
Definition at line 100 of file marxf.cpp.
Referenced by MarXF::mar_start_scan_readout(), and MarXF::ReadNB().
int total_pixels [static] |
Definition at line 103 of file marxf.cpp.
Referenced by MarXF::mar_start_scan_readout(), MarXF::output_image(), and MarXF::Transform().
| int valmin |
Definition at line 69 of file marxf.cpp.
Referenced by MarXF::get_header_values(), MarXF::mar_start_scan_readout(), and MarXF::output_image().
signed char x_rec[NB_SIZE] [static] |
Definition at line 118 of file marxf.cpp.
Referenced by MarXF::ReadNB(), and MarXF::Transform().
int xf_histo[65600] [static] |
Definition at line 66 of file marxf.cpp.
Referenced by MarXF::HistoMinMax(), MarXF::mar_start_scan_readout(), and MarXF::output_image().
| char xf_in_progress = 0 |
Definition at line 57 of file marxf.cpp.
Referenced by MarXF::mar_start_scan_readout(), and MarXF::output_image().
| int xf_pixels |
Definition at line 70 of file marxf.cpp.
Referenced by MarXF::mar_start_scan_readout(), and MarXF::output_image().
int xf_rec = 0 [static] |
Definition at line 97 of file marxf.cpp.
Referenced by MarXF::mar_start_scan_readout().
| int xform_status |
Definition at line 76 of file marxf.cpp.
Referenced by MarXF::mar_start_scan_readout(), and MarXF::Transform().
signed char y_rec[NB_SIZE] [static] |
Definition at line 119 of file marxf.cpp.
Referenced by MarXF::ReadNB(), and MarXF::Transform().
1.7.3