From 52274d8b1032ca769d2b0207517fd3ceb5eb64f7 Mon Sep 17 00:00:00 2001 From: Jon Trulson Date: Thu, 10 Sep 2015 12:47:46 -0600 Subject: [PATCH] itg3200: throw exception(s) on fatal errors Signed-off-by: Jon Trulson Signed-off-by: Mihai Tudor Panu --- src/itg3200/itg3200.cxx | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/src/itg3200/itg3200.cxx b/src/itg3200/itg3200.cxx index c0258124..90ea9d91 100644 --- a/src/itg3200/itg3200.cxx +++ b/src/itg3200/itg3200.cxx @@ -23,6 +23,8 @@ */ #include +#include +#include #include #include "math.h" #include "itg3200.h" @@ -64,7 +66,14 @@ using namespace upm; Itg3200::Itg3200(int bus) : m_i2c(bus) { - //reset chip + //init bus and reset chip + if ( !(m_i2c = mraa_i2c_init(bus)) ) + { + throw std::invalid_argument(std::string(__FUNCTION__) + + ": mraa_i2c_init() failed"); + return; + } + m_i2c.address(ITG3200_I2C_ADDR); m_buffer[0] = ITG3200_PWR_MGM; m_buffer[1] = ITG3200_RESET;