Private
Public Access
2
0

uart: add tcsendbreak support

Signed-off-by: Jon Trulson <jtrulson@ics.com>
Signed-off-by: Alex Tereschenko <alext.mkrs@gmail.com>
This commit is contained in:
Jon Trulson
2017-05-03 12:14:36 -06:00
committed by Alex Tereschenko
parent 6d5b2c0642
commit e0a0dac47b
10 changed files with 111 additions and 0 deletions

View File

@@ -128,6 +128,7 @@ mraa_mock_board()
b->adv_func->uart_init_raw_replace = &mraa_mock_uart_init_raw_replace;
b->adv_func->uart_set_baudrate_replace = &mraa_mock_uart_set_baudrate_replace;
b->adv_func->uart_flush_replace = &mraa_mock_uart_flush_replace;
b->adv_func->uart_sendbreak_replace = &mraa_mock_uart_sendbreak_replace;
b->adv_func->uart_set_flowcontrol_replace = &mraa_mock_uart_set_flowcontrol_replace;
b->adv_func->uart_set_mode_replace = &mraa_mock_uart_set_mode_replace;
b->adv_func->uart_set_non_blocking_replace = &mraa_mock_uart_set_non_blocking_replace;

View File

@@ -53,6 +53,12 @@ mraa_mock_uart_flush_replace(mraa_uart_context dev)
return MRAA_SUCCESS;
}
mraa_result_t
mraa_mock_uart_sendbreak_replace(mraa_uart_context dev, int duration)
{
return MRAA_SUCCESS;
}
mraa_result_t
mraa_mock_uart_set_flowcontrol_replace(mraa_uart_context dev, mraa_boolean_t xonxoff, mraa_boolean_t rtscts)
{

View File

@@ -137,6 +137,12 @@ mraa_pman_uart_flush_replace(mraa_uart_context dev)
return MRAA_ERROR_FEATURE_NOT_IMPLEMENTED;
}
static mraa_result_t
mraa_pman_uart_sendbreak_replace(mraa_uart_context dev)
{
return MRAA_ERROR_FEATURE_NOT_IMPLEMENTED;
}
static int
mraa_pman_uart_read_replace(mraa_uart_context dev, char* buf, size_t len)
{
@@ -854,6 +860,7 @@ mraa_peripheralman_plat_init()
b->adv_func->uart_init_raw_replace = &mraa_pman_uart_init_raw_replace;
b->adv_func->uart_set_baudrate_replace = &mraa_pman_uart_set_baudrate_replace;
b->adv_func->uart_flush_replace = &mraa_pman_uart_flush_replace;
b->adv_func->uart_sendbreak_replace = &mraa_pman_uart_sendbreak_replace;
b->adv_func->uart_set_flowcontrol_replace = &mraa_pman_uart_set_flowcontrol_replace;
b->adv_func->uart_set_mode_replace = &mraa_pman_uart_set_mode_replace;
b->adv_func->uart_set_non_blocking_replace = &mraa_pman_uart_set_non_blocking_replace;

View File

@@ -323,6 +323,27 @@ mraa_uart_flush(mraa_uart_context dev)
return MRAA_SUCCESS;
}
mraa_result_t
mraa_uart_sendbreak(mraa_uart_context dev, int duration)
{
if (!dev) {
syslog(LOG_ERR, "uart: sendbreak: context is NULL");
return MRAA_ERROR_INVALID_HANDLE;
}
if (IS_FUNC_DEFINED(dev, uart_sendbreak_replace)) {
return dev->advance_func->uart_sendbreak_replace(dev, duration);
}
#if !defined(PERIPHERALMAN)
if (tcsendbreak(dev->fd, duration) == -1) {
return MRAA_ERROR_INVALID_PARAMETER;
}
#endif
return MRAA_SUCCESS;
}
mraa_result_t
mraa_uart_set_baudrate(mraa_uart_context dev, unsigned int baud)
{