Fix some inconsistences for the following sensors:

- a110x
 - abp
 - ad8232
 - adafruitms1438
 - adafruitss

Signed-off-by: Mihai Tudor Panu <mihai.tudor.panu@intel.com>
This commit is contained in:
Adelin Dobre 2018-07-03 16:09:37 +03:00 committed by Mihai Tudor Panu
parent 7352aab3b0
commit d7fe4e717b
5 changed files with 47 additions and 26 deletions

View File

@ -48,24 +48,22 @@ A110X::A110X(int pin)
A110X::A110X(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?");
return;
}
else
else
{
if( !(m_gpio = descs->gpios[0]) )
{
throw std::invalid_argument(std::string(__FUNCTION__) +
": mraa_gpio_init() failed, invalid pin?");
return;
}
}
mraa_gpio_dir(m_gpio, MRAA_GPIO_IN);
m_isrInstalled = false;
}
@ -90,7 +88,7 @@ void A110X::installISR(void (*isr)(void *), void *arg)
uninstallISR();
// install our interrupt handler
mraa_gpio_isr(m_gpio, MRAA_GPIO_EDGE_BOTH,
mraa_gpio_isr(m_gpio, MRAA_GPIO_EDGE_BOTH,
isr, arg);
m_isrInstalled = true;
}

View File

@ -44,7 +44,7 @@ ABP::ABP(std::string initStr) : mraaIo(initStr)
mraa_io_descriptor* descs = mraaIo.getMraaDescriptors();
std::vector<std::string> upmTokens;
if(mraaIo.getLeftoverStr() != "")
if(!mraaIo.getLeftoverStr().empty())
{
upmTokens = UpmStringParser::parse(mraaIo.getLeftoverStr());
}

View File

@ -29,22 +29,44 @@
using namespace upm;
using namespace std;
AD8232::AD8232(int loPlus, int loMinus, int output, float aref) :
m_gpioLOPlus(loPlus), m_gpioLOMinus(loMinus), m_aioOUT(output)
{
m_gpioLOPlus.dir(mraa::DIR_IN);
m_gpioLOMinus.dir(mraa::DIR_IN);
AD8232::AD8232(int loPlus, int loMinus, int output, float aref) {
m_gpioLOPlus = new mraa::Gpio(loPlus);
m_gpioLOMinus = new mraa::Gpio(loMinus);
m_aioOUT = new mraa::Aio(output);
m_gpioLOPlus->dir(mraa::DIR_IN);
m_gpioLOMinus->dir(mraa::DIR_IN);
m_aref = aref;
m_ares = (1 << m_aioOUT.getBit());
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])
AD8232::AD8232(std::string initStr) : mraaIo(initStr)
{
if(!mraaIo.gpios.empty())
{
m_gpioLOPlus = new mraa::Gpio(mraaIo.gpios[0]);
m_gpioLOMinus = new mraa::Gpio(mraaIo.gpios[1]);
}
else
{
throw std::invalid_argument(std::string(__FUNCTION__) +
": mraa_gpio_init() failed, invalid pin?");
}
if(!mraaIo.gpios.empty())
{
m_aioOUT = new mraa::Aio(mraaIo.aios[0]);
}
else
{
throw std::invalid_argument(std::string(__FUNCTION__) +
": mraa_aio_init() failed, invalid pin?");
}
std::vector<std::string> upmTokens;
if(mraaIo.getLeftoverStr() != "")
if(!mraaIo.getLeftoverStr().empty())
{
upmTokens = UpmStringParser::parse(mraaIo.getLeftoverStr());
}
@ -56,17 +78,20 @@ AD8232::AD8232(std::string initStr) : mraaIo(initStr), m_gpioLOPlus(mraaIo.gpios
m_aref = std::stof(tok.substr(5));
}
}
m_ares = (1 << m_aioOUT.getBit());
m_ares = (1 << m_aioOUT->getBit());
}
AD8232::~AD8232()
{
delete m_gpioLOPlus;
delete m_gpioLOMinus;
delete m_aioOUT;
}
int AD8232::value()
{
if (m_gpioLOPlus.read() || m_gpioLOMinus.read())
if (m_gpioLOPlus->read() || m_gpioLOMinus->read())
return 0;
else
return m_aioOUT.read();
return m_aioOUT->read();
}

View File

@ -106,9 +106,9 @@ namespace upm {
private:
mraa::MraaIo mraaIo;
mraa::Gpio m_gpioLOPlus;
mraa::Gpio m_gpioLOMinus;
mraa::Aio m_aioOUT;
mraa::Gpio *m_gpioLOPlus;
mraa::Gpio *m_gpioLOMinus;
mraa::Aio *m_aioOUT;
float m_aref;
int m_ares;

View File

@ -69,7 +69,7 @@ adafruitss::adafruitss(std::string initStr) : mraaIo(initStr)
std::vector<std::string> upmTokens;
if (mraaIo.getLeftoverStr() != "")
if (!mraaIo.getLeftoverStr().empty())
{
upmTokens = UpmStringParser::parse(mraaIo.getLeftoverStr());
}
@ -78,7 +78,6 @@ adafruitss::adafruitss(std::string initStr) : mraaIo(initStr)
{
throw std::invalid_argument(std::string(__FUNCTION__) +
": mraa_i2c_init() failed");
return;
}
else
{
@ -86,7 +85,6 @@ adafruitss::adafruitss(std::string initStr) : mraaIo(initStr)
{
throw std::invalid_argument(std::string(__FUNCTION__) +
": mraa_i2c_init() failed");
return;
}
}