From bd445385a75252d53c503e60468d421f55c74d45 Mon Sep 17 00:00:00 2001 From: Adelin Dobre Date: Thu, 1 Nov 2018 18:47:39 +0200 Subject: [PATCH] EHR: Add string based constructor Signed-off-by: Adelin Dobre Signed-off-by: Mihai Tudor Panu --- src/ehr/ehr.cxx | 17 +++++++++++++++++ src/ehr/ehr.hpp | 9 +++++++++ 2 files changed, 26 insertions(+) diff --git a/src/ehr/ehr.cxx b/src/ehr/ehr.cxx index 39667efe..42ff9a2d 100644 --- a/src/ehr/ehr.cxx +++ b/src/ehr/ehr.cxx @@ -46,6 +46,23 @@ EHR::EHR(int pin) m_beatCounter = 0; } +EHR::EHR(std::string initStr) : mraaIo(initStr) +{ + mraa_io_descriptor* descs = mraaIo.getMraaDescriptors(); + + if(!descs->gpios) { + throw std::invalid_argument(std::string(__FUNCTION__) + + ": mraa_gpio_init() failed, invalid pin?"); + } else { + m_gpio = descs->gpios[0]; + } + + mraa_gpio_dir(m_gpio, MRAA_GPIO_IN); + + initClock(); + m_beatCounter = 0; +} + EHR::~EHR() { mraa_gpio_close(m_gpio); diff --git a/src/ehr/ehr.hpp b/src/ehr/ehr.hpp index f22f5f4c..eb460709 100644 --- a/src/ehr/ehr.hpp +++ b/src/ehr/ehr.hpp @@ -27,6 +27,7 @@ #include #include #include +#include #include namespace upm { @@ -60,6 +61,13 @@ namespace upm { * @param pin Digital pin to use */ EHR(int pin); + /** + * Instantiates EHR Heart Rate sensor based on a given string. + * + * @param initStr string containing specific information for EHR initialization. + */ + EHR(std::string initStr); + /** * EHR destructor */ @@ -128,5 +136,6 @@ namespace upm { volatile uint32_t m_beatCounter; struct timeval m_startTime; mraa_gpio_context m_gpio; + mraa::MraaIo mraaIo; }; }