Agilent Technologies Infiniium 8000A Programmer's Reference Manual page 283

Table of Contents

Advertisement

//*****************************************************************************
//
Description: The next set of functions:
//
ReadWaveformHeader
//
ReadWaveformDataHeader
//
ReadLogicWaveform
//
ReadAnalogWaveform
//
ReadHistogramWaveform
//
IgnoreWaveformData
//
//
Demostrate how to correctly read the Infiniium Public Waveform file with an
//
eye to compatibility with future format changes.
//
Returns 0 if unsucessful.
int ReadWaveformHeader(FILE* inputFile, tPBWaveformHeader* waveformHeader)
{
char* headerBuffer;
int
success, headerSize;
// Assume we'll fail
success = 0;
if (waveformHeader)
{
// read in header size
headerSize = 0;
fread(&headerSize, 1, sizeof(headerSize), inputFile);
// create header buffer
headerBuffer = (char*) malloc(headerSize);
if (headerBuffer)
{
// rewind back the headerSize
fseek(inputFile, - (int)(sizeof(headerSize)), SEEK_CUR);
// Now read in the entire header
fread(headerBuffer, 1, headerSize, inputFile);
// Now set dataHeader from headerBuffer
// any extra information stored in the file
// will be ignored
memcpy((char*) waveformHeader, headerBuffer, sizeof(tPBWaveformHeader));
success = 1;
// Just is case WaveformType has been enhanced
if (waveformHeader->WaveformType > PB_LOGIC)
{
waveformHeader->WaveformType = PB_UNKNOWN;
}
// Done with headerBuffer
free(headerBuffer);
}
}
return success;
}
Disk Commands
BIN Header Format
13-29

Advertisement

Table of Contents
loading

Table of Contents