Update to version 2
This commit is contained in:
@@ -54,7 +54,6 @@ bool MSEEDDataRecord::readMetaData(std::streambuf &buf, int size,
|
||||
Header &header,
|
||||
Time &startTime,
|
||||
Time &endTime) {
|
||||
#if 1 // Set this to 1 to enable no-malloc fast MSeed meta parser
|
||||
fsdh_s head;
|
||||
|
||||
if ( size <= 0 ) {
|
||||
@@ -239,22 +238,7 @@ bool MSEEDDataRecord::readMetaData(std::streambuf &buf, int size,
|
||||
endTime += TimeSpan((hptime_t)hptime/HPTMODULUS,(hptime_t)hptime%HPTMODULUS);
|
||||
}
|
||||
|
||||
timeToTimestamp(_header.samplingTime, startTime);
|
||||
#else
|
||||
std::vector<char> data(size);
|
||||
size_t read = buf.sgetn(&data[0], data.size());
|
||||
if ( read != data.size() ) {
|
||||
CAPS_WARNING("read metadata: input buffer underflow: only %d/%d bytes read",
|
||||
(int)read, (int)data.size());
|
||||
return;
|
||||
}
|
||||
|
||||
unpackHeader(&data[0], data.size());
|
||||
|
||||
header = _header;
|
||||
startTime = _startTime;
|
||||
endTime = _endTime;
|
||||
#endif
|
||||
timeToTimestamp(header.samplingTime, startTime);
|
||||
|
||||
return true;
|
||||
}
|
||||
@@ -328,93 +312,6 @@ DataRecord::ReadStatus MSEEDDataRecord::get(std::streambuf &buf, int size,
|
||||
}
|
||||
|
||||
return RS_Complete;
|
||||
|
||||
/*
|
||||
// Only unpack the header structure
|
||||
int state = msr_unpack(&_data[0], _data.size(), &ms_rec, 0, 0);
|
||||
if ( state != MS_NOERROR ) {
|
||||
switch ( state ) {
|
||||
case MS_GENERROR:
|
||||
CAPS_WARNING("get: generic libmseed error");
|
||||
break;
|
||||
case MS_NOTSEED:
|
||||
CAPS_WARNING("get: input data is not seed");
|
||||
break;
|
||||
case MS_WRONGLENGTH:
|
||||
CAPS_WARNING("get: length of data read was not correct");
|
||||
break;
|
||||
case MS_OUTOFRANGE:
|
||||
CAPS_WARNING("get: SEED record length out of range");
|
||||
break;
|
||||
case MS_UNKNOWNFORMAT:
|
||||
CAPS_WARNING("get: unknown data encoding format");
|
||||
break;
|
||||
case MS_STBADCOMPFLAG:
|
||||
CAPS_WARNING("get: invalid Steim compression flag(s)");
|
||||
break;
|
||||
}
|
||||
if ( ms_rec != NULL )
|
||||
msr_free(&ms_rec);
|
||||
return RS_Error;
|
||||
}
|
||||
|
||||
hptime_t hptime = msr_starttime(ms_rec);
|
||||
_startTime = Time((hptime_t)hptime/HPTMODULUS,(hptime_t)hptime%HPTMODULUS);
|
||||
_endTime = _startTime;
|
||||
|
||||
if ( ms_rec->samprate > 0.0 && ms_rec->samplecnt > 0 ) {
|
||||
hptime = (hptime_t)(((double)(ms_rec->samplecnt) / ms_rec->samprate * HPTMODULUS) + 0.5);
|
||||
_endTime += TimeSpan((hptime_t)hptime/HPTMODULUS,(hptime_t)hptime%HPTMODULUS);
|
||||
}
|
||||
|
||||
_header.dataType = DT_Unknown;
|
||||
timeToTimestamp(_header.samplingTime, _startTime);
|
||||
|
||||
if ( ms_rec->fsdh->samprate_fact > 0 ) {
|
||||
_header.samplingFrequencyNumerator = ms_rec->fsdh->samprate_fact;
|
||||
_header.samplingFrequencyDenominator = 1;
|
||||
}
|
||||
else {
|
||||
_header.samplingFrequencyNumerator = 1;
|
||||
_header.samplingFrequencyDenominator = -ms_rec->fsdh->samprate_fact;
|
||||
}
|
||||
|
||||
if ( ms_rec->fsdh->samprate_mult > 0 )
|
||||
_header.samplingFrequencyNumerator *= ms_rec->fsdh->samprate_mult;
|
||||
else
|
||||
_header.samplingFrequencyDenominator *= -ms_rec->fsdh->samprate_mult;
|
||||
|
||||
switch ( ms_rec->sampletype ) {
|
||||
case 'a':
|
||||
_header.dataType = DT_INT8;
|
||||
break;
|
||||
case 'i':
|
||||
_header.dataType = DT_INT32;
|
||||
break;
|
||||
case 'f':
|
||||
_header.dataType = DT_FLOAT;
|
||||
break;
|
||||
case 'd':
|
||||
_header.dataType = DT_DOUBLE;
|
||||
break;
|
||||
default:
|
||||
_header.dataType = DT_Unknown;
|
||||
break;
|
||||
}
|
||||
|
||||
msr_free(&ms_rec);
|
||||
|
||||
if ( start.valid() || end.valid() ) {
|
||||
// Out of scope?
|
||||
if ( end.valid() && (end <= _startTime) )
|
||||
return RS_AfterTimeWindow;
|
||||
|
||||
if ( start.valid() && (start >= _endTime) )
|
||||
return RS_BeforeTimeWindow;
|
||||
}
|
||||
|
||||
return RS_Complete;
|
||||
*/
|
||||
}
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user