- SV subscriber: fixed bug in function SVReceiver_enableDestAddrCheck

pull/179/head
Michael Zillgith 7 years ago
parent 9f8d52005b
commit 0308f87b85

@ -121,7 +121,7 @@ SVReceiver_disableDestAddrCheck(SVReceiver self)
void void
SVReceiver_enableDestAddrCheck(SVReceiver self) SVReceiver_enableDestAddrCheck(SVReceiver self)
{ {
self->checkDestAddr = false; self->checkDestAddr = true;
} }
void void
@ -454,7 +454,7 @@ parseSVMessage(SVReceiver self, int numbytes)
if (numbytes < 22) return; if (numbytes < 22) return;
/* Ethernet source address */ /* Ethernet source address */
uint8_t* srcAddr = buffer; uint8_t* dstAddr = buffer;
/* skip ethernet addresses */ /* skip ethernet addresses */
bufPos = 12; bufPos = 12;
@ -517,13 +517,13 @@ parseSVMessage(SVReceiver self, int numbytes)
if (subscriber->appId == appId) { if (subscriber->appId == appId) {
if (self->checkDestAddr) { if (self->checkDestAddr) {
if (memcmp(srcAddr, subscriber->ethAddr, 6) == 0) { if (memcmp(dstAddr, subscriber->ethAddr, 6) == 0) {
subscriberFound = true; subscriberFound = true;
break; break;
} }
else else
if (DEBUG_SV_SUBSCRIBER) if (DEBUG_SV_SUBSCRIBER)
printf("SV_SUBSCRIBER: Checking ethernet src address failed!\n"); printf("SV_SUBSCRIBER: Checking ethernet dest address failed!\n");
} }
else { else {
subscriberFound = true; subscriberFound = true;
@ -545,7 +545,7 @@ parseSVMessage(SVReceiver self, int numbytes)
parseSVPayload(self, subscriber, buffer + bufPos, apduLength); parseSVPayload(self, subscriber, buffer + bufPos, apduLength);
else { else {
if (DEBUG_SV_SUBSCRIBER) if (DEBUG_SV_SUBSCRIBER)
printf("SV_SUBSCRIBER: SV message ignored due to unknown APPID value\n"); printf("SV_SUBSCRIBER: SV message ignored due to unknown APPID value or dest address mismatch\n");
} }
} }

@ -247,7 +247,12 @@ LIB61850_API bool
SVReceiver_tick(SVReceiver self); SVReceiver_tick(SVReceiver self);
/* /*
* Subscriber * \brief Create a new SV subscriber instance
*
* \param ethAddr optional destination address (NULL to not specify the destination address)
* \param appID the APP-ID to identify matching SV messages
*
* \return the new subscriber instance
*/ */
LIB61850_API SVSubscriber LIB61850_API SVSubscriber
@ -263,7 +268,6 @@ SVSubscriber_create(const uint8_t* ethAddr, uint16_t appID);
* \param self The subscriber object * \param self The subscriber object
* \param listener the callback function to install * \param listener the callback function to install
* \param a user provided parameter that is provided to the callback function * \param a user provided parameter that is provided to the callback function
*
*/ */
LIB61850_API void LIB61850_API void
SVSubscriber_setListener(SVSubscriber self, SVUpdateListener listener, void* parameter); SVSubscriber_setListener(SVSubscriber self, SVUpdateListener listener, void* parameter);

Loading…
Cancel
Save