Elmar van Rijnswou
7 years ago
13 changed files with 224 additions and 86 deletions
@ -0,0 +1,21 @@ |
|||
/*
|
|||
* port_utilities.cpp |
|||
* |
|||
* Created on: Aug 29, 2017 |
|||
* Author: Elmar |
|||
*/ |
|||
|
|||
#include "port_utilities.h" |
|||
|
|||
namespace rijnfel { |
|||
|
|||
cPortUtilities::cPortUtilities() { |
|||
// TODO Auto-generated constructor stub
|
|||
|
|||
} |
|||
|
|||
cPortUtilities::~cPortUtilities() { |
|||
// TODO Auto-generated destructor stub
|
|||
} |
|||
|
|||
} /* namespace rijnfel */ |
@ -0,0 +1,23 @@ |
|||
/*
|
|||
* port_utilities.h |
|||
* |
|||
* Created on: Aug 29, 2017 |
|||
* Author: Elmar |
|||
*/ |
|||
|
|||
#ifndef APP_PORT_UTILITIES_H_ |
|||
#define APP_PORT_UTILITIES_H_ |
|||
|
|||
#include <rijnfel_core/rijnfel_core.h> |
|||
|
|||
namespace rijnfel { |
|||
|
|||
class cPortUtilities { |
|||
public: |
|||
cPortUtilities(); |
|||
virtual ~cPortUtilities(); |
|||
}; |
|||
|
|||
} /* namespace rijnfel */ |
|||
|
|||
#endif /* APP_PORT_UTILITIES_H_ */ |
@ -0,0 +1,53 @@ |
|||
/*
|
|||
* provider_averager.h |
|||
* |
|||
* Created on: Aug 29, 2017 |
|||
* Author: Elmar |
|||
*/ |
|||
|
|||
#ifndef APP_PROVIDER_AVERAGER_H_ |
|||
#define APP_PROVIDER_AVERAGER_H_ |
|||
|
|||
#include "data_provider.h" |
|||
|
|||
namespace rijnfel { |
|||
template<typename DataType, typename MaxType> |
|||
class cProviderAverager: public cDataSink { |
|||
public: |
|||
cProviderAverager(uint32_t i_averageSize = 250) : |
|||
m_input(this) { |
|||
m_averageSize = i_averageSize; |
|||
m_counter = 0; |
|||
} |
|||
|
|||
virtual void ReceiveCallback(void * i_data, cDataReceiver * i_receiver) { |
|||
m_outcome += *static_cast<DataType*>(i_data); |
|||
m_counter++; |
|||
if (m_counter >= m_averageSize ) { |
|||
if (m_averageSize == 0) { |
|||
//TODO log message
|
|||
return; |
|||
} |
|||
m_outcome = m_outcome / m_counter; |
|||
m_output.Push(&m_outcome); |
|||
Reset(); |
|||
} |
|||
} |
|||
void Reset() { |
|||
m_outcome = 0; |
|||
m_counter = 0; |
|||
} |
|||
virtual ~cProviderAverager() { |
|||
} |
|||
cDataReceiver m_input; |
|||
cDataProvider m_output; |
|||
private: |
|||
uint32_t m_averageSize; |
|||
uint32_t m_counter; |
|||
|
|||
MaxType m_outcome; |
|||
}; |
|||
|
|||
} /* namespace rijnfel */ |
|||
|
|||
#endif /* APP_PROVIDER_AVERAGER_H_ */ |
@ -0,0 +1,52 @@ |
|||
/*
|
|||
* provider_buffer.h |
|||
* |
|||
* Created on: Aug 29, 2017 |
|||
* Author: Elmar |
|||
*/ |
|||
|
|||
#ifndef APP_PROVIDER_BUFFER_H_ |
|||
#define APP_PROVIDER_BUFFER_H_ |
|||
|
|||
#include "data_provider.h" |
|||
#include "helper_structs.h" |
|||
|
|||
namespace rijnfel { |
|||
template<typename Data> |
|||
class cProviderBuffer: public cDataSink { |
|||
public: |
|||
cProviderBuffer(size_t i_bufferSize) : |
|||
m_input(this) { |
|||
m_bufferSize = i_bufferSize; |
|||
m_counter = 0; |
|||
m_array = new Data[i_bufferSize]; |
|||
m_sizedArray.p_array = static_cast<void*>(m_array); |
|||
m_sizedArray.size = m_bufferSize; |
|||
} |
|||
|
|||
virtual void ReceiveCallback(void * i_data, cDataReceiver * i_receiver) { |
|||
m_array[m_counter] = *static_cast<Data*>(i_data); |
|||
m_counter++; |
|||
if (m_counter == m_bufferSize) { |
|||
m_output.Push(static_cast<void*>(&m_sizedArray)); |
|||
Reset(); |
|||
} |
|||
} |
|||
void Reset(){ |
|||
m_counter = 0; |
|||
} |
|||
virtual ~cProviderBuffer() { |
|||
delete[] m_array; |
|||
} |
|||
cDataReceiver m_input; |
|||
cDataProvider m_output; |
|||
private: |
|||
sSizedArray m_sizedArray; |
|||
size_t m_bufferSize; |
|||
size_t m_counter; |
|||
Data * m_array; |
|||
}; |
|||
|
|||
} /* namespace rijnfel */ |
|||
|
|||
#endif /* APP_PROVIDER_BUFFER_H_ */ |
Loading…
Reference in new issue