This document describes the format of the spectrometer data file.
Each section begins with a leader which consists of 2 longs:
#define TIME_SECTION 0 #define SYMBOL_TABLE_SECTION 1 #define PULSE_PROGRAM_SECTION 2 #define COMMENTS_SECTION 3 #define GLOBAL_SYMBOLS_SECTION 4 #define DATA_SECTION 5 #define TERMINATION_STATUS_SECTION 6
time_t (=long). See
the time(2) man page for further details.
argv[0] upon
execution of the pulse program. The file obtained after
appending ".c" is copied
verbatim into the data file.
The global symbols are found in a structure defined in "file_utils.h":
typedef struct global_symbols_tag {
double sw;
double sf1;
double sf2;
double sf3;
double size;
double scans;
double experiment;
} GLOBAL_SYMBOLS;
This structure is written into the data file.
typedef struct FID_point_tag {
long int real, imag;
} FID_POINT;
Pulse programs with multiple data sets will concatenate several
data sections. Each data set will have its own leader:
#define RUNNING 0x00 #define HALTED 0x01 #define ABORTED 0x02 #define ERROR 0x03The termination status is of type:
unsigned long.
A program which uses them is:
/*
* file_reader.c
*
* A test program for file support utilities.
*/
#include "file_utils.h"
#include "pulse.h" /* Global variable "data_file" is here */
FILE * data_file;
void main( int argc, char *argv[] )
{
if ((data_file = fopen("Out_File", "rb")) == NULL)
fprintf(stderr,"\nCould not open Out_File.\n");
while (1) { read_section( ); }
fclose( data_file );
}
Additional functions which convert the contents of the data file
to a particular format can be based on those found in
"file_utils.c".
Jonathan Callahan