61 lines
2.0 KiB
C
61 lines
2.0 KiB
C
#include "sl_iostream.h"
|
|
#include "sl_iostream_handles.h"
|
|
#include "string.h"
|
|
|
|
const sl_iostream_instance_info_t *sl_iostream_instances_info[] = {
|
|
|
|
&sl_iostream_instance_rtt_info,
|
|
|
|
};
|
|
|
|
const uint32_t sl_iostream_instances_count = sizeof(sl_iostream_instances_info) / sizeof(sl_iostream_instances_info[0]);
|
|
sl_iostream_t *sl_iostream_recommended_console_stream = NULL;
|
|
|
|
|
|
/***************************************************************************//**
|
|
* Get iostream instance handle for a given name
|
|
*
|
|
* @return Instance handle if it exist, NULL otherwise.
|
|
******************************************************************************/
|
|
sl_iostream_t *sl_iostream_get_handle(char *name)
|
|
{
|
|
for (uint32_t i = 0; i < sl_iostream_instances_count; i++) {
|
|
if (strcmp(sl_iostream_instances_info[i]->name, name) == 0) {
|
|
return sl_iostream_instances_info[i]->handle;
|
|
}
|
|
}
|
|
|
|
return NULL;
|
|
}
|
|
|
|
/***************************************************************************//**
|
|
* Set iostream recommended instance for a console
|
|
******************************************************************************/
|
|
void sl_iostream_set_console_instance(void)
|
|
{
|
|
sl_iostream_type_t console = SL_IOSTREAM_TYPE_UNDEFINED;
|
|
|
|
for (uint32_t i = 0; i < sl_iostream_instances_count; i++) {
|
|
switch (sl_iostream_instances_info[i]->type) {
|
|
case SL_IOSTREAM_TYPE_UART:
|
|
case SL_IOSTREAM_TYPE_RTT:
|
|
if (console != SL_IOSTREAM_TYPE_UART) {
|
|
console = sl_iostream_instances_info[i]->type;
|
|
sl_iostream_recommended_console_stream = sl_iostream_instances_info[i]->handle;
|
|
}
|
|
break;
|
|
|
|
case SL_IOSTREAM_TYPE_VUART:
|
|
if (console != SL_IOSTREAM_TYPE_UART && console != SL_IOSTREAM_TYPE_RTT) {
|
|
console = sl_iostream_instances_info[i]->type;
|
|
sl_iostream_recommended_console_stream = sl_iostream_instances_info[i]->handle;
|
|
}
|
|
break;
|
|
|
|
case SL_IOSTREAM_TYPE_LOOPBACK:
|
|
default:
|
|
// Ignore loopback interface
|
|
break;
|
|
}
|
|
}
|
|
} |