3 changed files with 114 additions and 2 deletions
@ -0,0 +1,44 @@ |
|||||
|
//----------------------------------------------------------------------------------------------------------------------------
|
||||
|
// Project: Uppsense
|
||||
|
// Name: signal_processor.cpp
|
||||
|
// Author: Maximilian Stiefel
|
||||
|
// Date: 22.08.2017
|
||||
|
//
|
||||
|
// Description:
|
||||
|
//
|
||||
|
//----------------------------------------------------------------------------------------------------------------------------
|
||||
|
|
||||
|
//-------------------------------------Libraries------------------------------------------------------------------------------
|
||||
|
#include "signal_processor.h" |
||||
|
#include <SmingCore/SmingCore.h> |
||||
|
|
||||
|
//-------------------------------------Namespaces-----------------------------------------------------------------------------
|
||||
|
namespace rijnfel { |
||||
|
|
||||
|
cSignalProcessor* cSignalProcessor::s_instance = NULL; |
||||
|
|
||||
|
//-------------------------------------GetInstance----------------------------------------------------------------------------
|
||||
|
cSignalProcessor* cSignalProcessor::GetInstance() |
||||
|
{ |
||||
|
if(s_instance == NULL) |
||||
|
s_instance = new cSignalProcessor; |
||||
|
return s_instance; |
||||
|
} |
||||
|
|
||||
|
//-------------------------------------receiveADCValues-----------------------------------------------------------------------
|
||||
|
void cSignalProcessor::receiveADCValues(cADC<ads::ads_sample_t, int32_t> & i_adc, cDoubleBuffer<ads::ads_sample_t>& i_adcBuffer) { |
||||
|
ads::ads_sample_t * buf = &i_adcBuffer.GetReadyBuffer()[0]; |
||||
|
if (buf != NULL) { |
||||
|
int pos = buf->mux - ads::eInputMux::AIN_0; |
||||
|
int64_t average = 0; |
||||
|
int size = i_adcBuffer.GetSize(); |
||||
|
for (int i = 0; i < size; i++) { |
||||
|
average += i_adc.ConvertSample(buf[i]); |
||||
|
} |
||||
|
if (size != 0) { |
||||
|
average /= size; |
||||
|
} |
||||
|
Serial.printf("Average: %d/n/r", average); |
||||
|
} |
||||
|
} |
||||
|
} |
@ -0,0 +1,66 @@ |
|||||
|
//----------------------------------------------------------------------------------------------------------------------------
|
||||
|
// Project: Uppsense
|
||||
|
// Name: signal_processor.h
|
||||
|
// Author: Maximilian Stiefel
|
||||
|
// Date: 22.08.2017
|
||||
|
//
|
||||
|
// Description:
|
||||
|
//
|
||||
|
//----------------------------------------------------------------------------------------------------------------------------
|
||||
|
|
||||
|
#ifndef APP_SIGNAL_PROCESSOR_H_ |
||||
|
#define APP_SIGNAL_PROCESSOR_H_ |
||||
|
|
||||
|
//-------------------------------------Libraries------------------------------------------------------------------------------
|
||||
|
#include <stdint.h> |
||||
|
#include "defines.h" |
||||
|
#include "double_buffer.h" |
||||
|
#include "adc.h" |
||||
|
#include "ads101x.h" |
||||
|
|
||||
|
//-------------------------------------Defines--------------------------------------------------------------------------------
|
||||
|
|
||||
|
//-------------------------------------Namespaces-----------------------------------------------------------------------------
|
||||
|
namespace rijnfel { |
||||
|
|
||||
|
//-------------------------------------Enums----------------------------------------------------------------------------------
|
||||
|
|
||||
|
//-------------------------------------cDAC101085-----------------------------------------------------------------------------
|
||||
|
/** Small simple driver for the TI DAC101C085.
|
||||
|
*/ |
||||
|
class cSignalProcessor |
||||
|
{ |
||||
|
|
||||
|
public: |
||||
|
/**
|
||||
|
* @brief Returns the global cSignalProcessor instance. |
||||
|
* Only one webserver should ever be running |
||||
|
* @return global cSignalProcessor instance |
||||
|
* */ |
||||
|
static cSignalProcessor *GetInstance(); |
||||
|
public: |
||||
|
/**
|
||||
|
* @brief Notifies object that new samples are available. |
||||
|
* @param i_adc Instance of the adc sensor. |
||||
|
* @param i_adcBuffer Buffer containing the raw adc values. |
||||
|
* */ |
||||
|
void receiveADCValues(cADC<ads::ads_sample_t, int32_t> & i_adc, cDoubleBuffer<ads::ads_sample_t> & i_adcBuffer); |
||||
|
|
||||
|
private: |
||||
|
// Singleton instance
|
||||
|
static cSignalProcessor *s_instance; |
||||
|
/**
|
||||
|
* @brief Constructor is private, so it can not be called. |
||||
|
*/ |
||||
|
cSignalProcessor(){}; |
||||
|
/**
|
||||
|
* @brief Copy constructor is private, so it can not be called. |
||||
|
*/ |
||||
|
cSignalProcessor(cSignalProcessor const&){}; |
||||
|
/**
|
||||
|
* @brief Assignment operator is private, so it can not be used. |
||||
|
*/ |
||||
|
cSignalProcessor& operator=(cSignalProcessor const&){}; |
||||
|
}; |
||||
|
} |
||||
|
#endif /* APP_SIGNAL_PROCESSOR_H_ */ |
Loading…
Reference in new issue