// >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
void AmplitudeProcessor::setHint(ProcessingHint hint, double value) {
	WaveformProcessor::setHint(hint, value);

	switch ( hint ) {
		case Distance:
			if ( (value < _config.minimumDistance) || (value > _config.maximumDistance) )
				setStatus(DistanceOutOfRange, value);
			else {
				double length = timeWindowLength(value);
				if ( length != _config.signalEnd ) {
					_config.signalEnd = length;
					computeTimeWindow();
					// When we are already finished, make sure the current amplitude
					// will be send immediately
					if ( _trigger + Core::TimeSpan(_config.signalEnd) <= dataTimeWindow().endTime() && _stream.lastRecord )
						process(_stream.lastRecord.get());
				}
			}
			break;

		case Depth:
			if ( (value < _config.minimumDepth) || (value > _config.maximumDepth) )
				setStatus(DepthOutOfRange, value);
			// To be defined
			break;
	}
}
Exemple #2
0
// >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
AmplitudeProcessor_Mjma::AmplitudeProcessor_Mjma(const Core::Time& trigger)
	: AmplitudeProcessor(trigger, "Mjma") {
	setSignalEnd(150.);
	setMinSNR(0);
	setMaxDist(20);
	setMaxDepth(20);
	computeTimeWindow();
}
Exemple #3
0
// >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
AmplitudeProcessor_msbb::AmplitudeProcessor_msbb(const Core::Time& trigger, double duration)
: AmplitudeProcessor(trigger, "Ms(BB)") {
	setSignalEnd(3600.);
	setMinSNR(0);
	setMinDist(2);
	setMaxDist(160);
	setMaxDepth(100);
	computeTimeWindow();
}