Merge d45f00539a493e16a86964c4c98daa680b7cb142 into 8f63914d76f8d6ff9971e3a97141012a2d78daf3

This commit is contained in:
Gérard Vidal 2018-04-19 15:18:03 +00:00 committed by GitHub
commit b3d79a3beb
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 40 additions and 0 deletions

View File

@ -65,6 +65,38 @@ MHZ16::MHZ16(int uart)
} }
} }
MHZ16::MHZ16(char * uart_raw)
{
m_ttyFd = -1;
if ( !(m_uart = mraa_uart_init_raw(uart_raw)) )
{
throw std::invalid_argument(std::string(__FUNCTION__) +
": mraa_uart_init_raw() failed");
return;
}
// This requires a recent MRAA (1/2015)
const char *devPath = mraa_uart_get_dev_path(m_uart);
if (!devPath)
{
throw std::runtime_error(std::string(__FUNCTION__) +
": mraa_uart_get_dev_path() failed");
return;
}
// now open the tty
if ( (m_ttyFd = open(devPath, O_RDWR)) == -1)
{
throw std::runtime_error(std::string(__FUNCTION__) +
": open of " +
string(devPath) + " failed: " +
string(strerror(errno)));
return;
}
}
MHZ16::~MHZ16() MHZ16::~MHZ16()
{ {
if (m_ttyFd != -1) if (m_ttyFd != -1)

View File

@ -41,6 +41,7 @@
#include <mraa/uart.h> #include <mraa/uart.h>
const int MHZ16_DEFAULT_UART = 0; const int MHZ16_DEFAULT_UART = 0;
const char * MHZ16_DEFAULT_UART_RAW="/dev/ttyS0";
// protocol start and end codes // protocol start and end codes
const uint8_t MHZ16_START = 0x7e; const uint8_t MHZ16_START = 0x7e;
@ -84,6 +85,13 @@ namespace upm {
*/ */
MHZ16(int uart); MHZ16(int uart);
/**
* MHZ16 constructor
*
* @param uart File path (/dev/ttyXXX to uart)
*/
MHZ16(char * uart_raw);
/** /**
* MHZ16 destructor * MHZ16 destructor
*/ */