diff --git a/config/stack_config.h b/config/stack_config.h index 49fb2e5c..72245fdd 100644 --- a/config/stack_config.h +++ b/config/stack_config.h @@ -21,7 +21,7 @@ #define DEBUG_IED_CLIENT 0 #define DEBUG_MMS_CLIENT 0 #define DEBUG_MMS_SERVER 0 -#define DEBUG_GOOSE_SUBSCRIBER 0 +#define DEBUG_GOOSE_SUBSCRIBER 1 #define DEBUG_GOOSE_PUBLISHER 0 /* Maximum MMS PDU SIZE - default is 65000 */ diff --git a/src/goose/goose_publisher.c b/src/goose/goose_publisher.c index cc453865..c09466ee 100644 --- a/src/goose/goose_publisher.c +++ b/src/goose/goose_publisher.c @@ -201,6 +201,7 @@ prepareGooseBuffer(GoosePublisher self, CommParameters* parameters, const char* int bufPos = 12; +#if 0 /* Priority tag - IEEE 802.1Q */ self->buffer[bufPos++] = 0x81; self->buffer[bufPos++] = 0x00; @@ -212,6 +213,7 @@ prepareGooseBuffer(GoosePublisher self, CommParameters* parameters, const char* self->buffer[bufPos++] = tci1; /* Priority + VLAN-ID */ self->buffer[bufPos++] = tci2; /* VLAN-ID */ +#endif /* EtherType GOOSE */ self->buffer[bufPos++] = 0x88; diff --git a/src/goose/goose_receiver.c b/src/goose/goose_receiver.c index 44595d97..960073a3 100644 --- a/src/goose/goose_receiver.c +++ b/src/goose/goose_receiver.c @@ -752,7 +752,6 @@ GooseReceiver_destroy(GooseReceiver self) void GooseReceiver_startThreadless(GooseReceiver self) { - if (self->interfaceId == NULL) self->ethSocket = Ethernet_createSocket(CONFIG_ETHERNET_INTERFACE_ID, NULL); else diff --git a/src/iec61850/client/ied_connection.c b/src/iec61850/client/ied_connection.c index f71a4451..77a912f6 100644 --- a/src/iec61850/client/ied_connection.c +++ b/src/iec61850/client/ied_connection.c @@ -604,21 +604,37 @@ IedConnection_close(IedConnection self) void IedConnection_destroy(IedConnection self) { + printf("D1\n"); + IedConnection_close(self); + printf("D2\n"); + MmsConnection_destroy(self->connection); + printf("D3\n"); + if (self->logicalDevices != NULL) LinkedList_destroyDeep(self->logicalDevices, (LinkedListValueDeleteFunction) ICLogicalDevice_destroy); + printf("D4\n"); + +#if 0 if (self->enabledReports != NULL) LinkedList_destroyDeep(self->enabledReports, (LinkedListValueDeleteFunction) ClientReport_destroy); +#endif LinkedList_destroyStatic(self->clientControls); + printf("D6\n"); + Semaphore_destroy(self->stateMutex); + printf("D7\n"); + GLOBAL_FREEMEM(self); + + printf("D8\n"); } MmsVariableSpecification* diff --git a/tools/model_generator/genmodel.jar b/tools/model_generator/genmodel.jar index 2f84d3f0..f0c858a9 100644 Binary files a/tools/model_generator/genmodel.jar and b/tools/model_generator/genmodel.jar differ