diff --git a/src/mraa.c b/src/mraa.c index c3050f4..707f1c5 100644 --- a/src/mraa.c +++ b/src/mraa.c @@ -1027,8 +1027,12 @@ mraa_add_subplatform(mraa_platform_t subplatformtype, const char* uart_dev) #if defined(FIRMATA) if (subplatformtype == MRAA_GENERIC_FIRMATA) { if (plat->sub_platform != NULL) { - syslog(LOG_NOTICE, "mraa: Failed to add firmata subplatform"); - return MRAA_ERROR_INVALID_PARAMETER; + if (plat->sub_platform->platform_type == subplatformtype) { + syslog(LOG_NOTICE, "mraa: Firmata subplatform already present"); + return MRAA_SUCCESS; + } + syslog(LOG_NOTICE, "mraa: We don't support multiple firmata subplatforms!"); + return MRAA_ERROR_FEATURE_NOT_SUPPORTED; } if (mraa_firmata_platform(plat, uart_dev) == MRAA_GENERIC_FIRMATA) { syslog(LOG_NOTICE, "mraa: Added firmata subplatform");