AD8232: Add string based constructor for Heart Rate Monitor

This commit is contained in:
Adelin Dobre 2018-06-29 14:02:09 +03:00 committed by Stefan Andritoiu
parent 317a780161
commit 33fcb18cce
2 changed files with 32 additions and 4 deletions

View File

@ -23,7 +23,7 @@
*/
#include <iostream>
#include "upm_string_parser.hpp"
#include "ad8232.hpp"
using namespace upm;
@ -39,6 +39,26 @@ AD8232::AD8232(int loPlus, int loMinus, int output, float aref) :
m_ares = (1 << m_aioOUT.getBit());
}
AD8232::AD8232(std::string initStr) : mraaIo(initStr), m_gpioLOPlus(mraaIo.gpios[0]),
m_gpioLOMinus(mraaIo.gpios[1]), m_aioOUT(mraaIo.aios[0])
{
std::vector<std::string> upmTokens;
if(mraaIo.getLeftoverStr() != "")
{
upmTokens = UpmStringParser::parse(mraaIo.getLeftoverStr());
}
for (std::string tok : upmTokens)
{
if(tok.substr(0,5) == "volt:")
{
m_aref = std::stof(tok.substr(5));
}
}
m_ares = (1 << m_aioOUT.getBit());
}
AD8232::~AD8232()
{
}

View File

@ -27,8 +27,8 @@
#include <sys/time.h>
#include <mraa/gpio.hpp>
#include <mraa/aio.hpp>
#include <mraa/initio.hpp>
#define AD8232_DEFAULT_AREF 3.3
@ -84,6 +84,13 @@ namespace upm {
*/
AD8232(int loPlus, int loMinus, int output, float aref=AD8232_DEFAULT_AREF);
/**
* Instantiates AD8232 sensor object based on a given string.
*
* @param initStr string containing specific information for AD8232 sensor initialization.
*/
AD8232(std::string initStr);
/**
* AD8232 destructor
*/
@ -98,6 +105,7 @@ namespace upm {
int value();
private:
mraa::MraaIo mraaIo;
mraa::Gpio m_gpioLOPlus;
mraa::Gpio m_gpioLOMinus;
mraa::Aio m_aioOUT;