- added function GooseReceiver_getInterfaceId

- GOOSE receiver: fixed problem with running state detection after receiver start
pull/179/head
Michael Zillgith 6 years ago
parent cbd0008f48
commit ee3d4f0164

@ -111,6 +111,15 @@ GooseReceiver_setInterfaceId(GooseReceiver self, const char* interfaceId)
self->interfaceId = StringUtils_copyString(interfaceId);
}
const char*
GooseReceiver_getInterfaceId(GooseReceiver self)
{
if (self->interfaceId)
return self->interfaceId;
else
return CONFIG_ETHERNET_INTERFACE_ID;
}
static void
createNewStringFromBufferElement(MmsValue* value, uint8_t* bufferSrc, int elementLength)
{
@ -784,8 +793,6 @@ gooseReceiverLoop(void* threadParameter)
{
GooseReceiver self = (GooseReceiver) threadParameter;
GooseReceiver_startThreadless(self);
if (self->running) {
while (self->running) {
@ -807,17 +814,19 @@ void
GooseReceiver_start(GooseReceiver self)
{
#if (CONFIG_MMS_THREADLESS_STACK == 0)
self->thread = Thread_create((ThreadExecutionFunction) gooseReceiverLoop, (void*) self, false);
if (GooseReceiver_startThreadless(self)) {
self->thread = Thread_create((ThreadExecutionFunction) gooseReceiverLoop, (void*) self, false);
if (self->thread != NULL) {
if (DEBUG_GOOSE_SUBSCRIBER)
printf("GOOSE_SUBSCRIBER: GOOSE receiver started for interface %s\n", self->interfaceId);
if (self->thread != NULL) {
if (DEBUG_GOOSE_SUBSCRIBER)
printf("GOOSE_SUBSCRIBER: GOOSE receiver started for interface %s\n", self->interfaceId);
Thread_start(self->thread);
}
else {
if (DEBUG_GOOSE_SUBSCRIBER)
printf("GOOSE_SUBSCRIBER: Starting GOOSE receiver failed for interface %s\n", self->interfaceId);
Thread_start(self->thread);
}
else {
if (DEBUG_GOOSE_SUBSCRIBER)
printf("GOOSE_SUBSCRIBER: Starting GOOSE receiver failed for interface %s\n", self->interfaceId);
}
}
#endif
}

@ -73,6 +73,16 @@ GooseReceiver_createEx(uint8_t* buffer);
LIB61850_API void
GooseReceiver_setInterfaceId(GooseReceiver self, const char* interfaceId);
/**
* \brief return the interface ID used by the GOOSE receiver
*
* \param self the GosseReceiver instance
*
* \return the Ethernet interface ID string
*/
LIB61850_API const char*
GooseReceiver_getInterfaceId(GooseReceiver self);
/**
* \brief Add a subscriber to this receiver instance
*

Loading…
Cancel
Save