1 #ifndef SLOWFASTAGGREGATOR_HPP 2 #define SLOWFASTAGGREGATOR_HPP 4 #include <aggregator/StreamAligner.hpp> 13 aggregator::StreamAligner *slow_aggr;
14 aggregator::StreamAligner *fast_aggr;
20 size_t *prev_num_processed_streams_slow;
31 this->slow_aggr = &slow_aggr;
32 this->fast_aggr = &fast_aggr;
34 stream_size = slow_aggr.getStreamSize();
36 prev_num_processed_streams_slow =
new size_t[stream_size];
37 for(
int i = 0; i < stream_size; i++)
39 prev_num_processed_streams_slow[i] = 0;
60 while( slow_aggr->step() );
66 for(
int i = 0; i < stream_size; i++)
68 const aggregator::StreamStatus &status_fast( fast_aggr->getBufferStatus(i) );
69 const aggregator::StreamStatus &status_slow( slow_aggr->getBufferStatus(i) );
71 int total_stream_dropped_fast = status_fast.samples_dropped_buffer_full + status_fast.samples_dropped_late_arriving;
72 int total_stream_dropped_slow = status_slow.samples_dropped_buffer_full + status_slow.samples_dropped_late_arriving;
73 int current_dif = total_stream_dropped_fast - total_stream_dropped_slow;
78 if( prev_num_processed_streams_slow[i] < status_slow.samples_processed)
86 prev_num_processed_streams_slow[i] = status_slow.samples_processed;
94 if ( slow_aggr->getLatency().toSeconds() > fast_aggr->getTimeOut().toSeconds() )
99 fast_aggr->copyState( *slow_aggr );
103 for(
int i = 0; i < stream_size; i++)
105 const aggregator::StreamStatus &status_slow( slow_aggr->getBufferStatus(i) );
106 prev_num_processed_streams_slow[i] = status_slow.samples_processed;
109 while( fast_aggr->step() );
119 #endif // SLOWFASTAGGREGATOR_H void configureSlowFastAggr(aggregator::StreamAligner &slow_aggr, aggregator::StreamAligner &fast_aggr)
Definition: SlowFastAggregator.hpp:28
void step()
Definition: SlowFastAggregator.hpp:56
Definition: EKFPosYawBiasT.hpp:11
SlowFastAggregator()
Definition: SlowFastAggregator.hpp:26
virtual void copyState()=0
Definition: SlowFastAggregator.hpp:7