diff --git a/CMakeLists.txt b/CMakeLists.txt index 49d775f2..81f609f5 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -143,6 +143,10 @@ include_directories( add_subdirectory("${CMAKE_CURRENT_LIST_DIR}/hal") +if(DEBUG) + set(CMAKE_BUILD_TYPE Debug) +endif(DEBUG) + if(BUILD_EXAMPLES) add_subdirectory(${CMAKE_CURRENT_LIST_DIR}/examples) endif(BUILD_EXAMPLES) diff --git a/examples/server_example_basic_io/server_example_basic_io.c b/examples/server_example_basic_io/server_example_basic_io.c index cc73e912..98bcf49a 100644 --- a/examples/server_example_basic_io/server_example_basic_io.c +++ b/examples/server_example_basic_io/server_example_basic_io.c @@ -99,7 +99,7 @@ main(int argc, char** argv) /* disable MMS file service */ IedServerConfig_enableFileService(config, false); - /* disable dynamic data set service */ + /* enable dynamic data set service */ IedServerConfig_enableDynamicDataSetService(config, true); /* disable log service */ diff --git a/examples/server_example_control/simpleIO_control_tests.icd b/examples/server_example_control/simpleIO_control_tests.icd index 6bfd88cd..4ff831ec 100644 --- a/examples/server_example_control/simpleIO_control_tests.icd +++ b/examples/server_example_control/simpleIO_control_tests.icd @@ -1,15 +1,13 @@ - -
+
Station bus - 10
-

10.0.0.2

+

192.168.2.223

255.255.255.0

10.0.0.1

0001

@@ -29,10 +27,7 @@ - - - diff --git a/src/iec61850/server/mms_mapping/reporting.c b/src/iec61850/server/mms_mapping/reporting.c index 6d7a03be..b0d04cc8 100644 --- a/src/iec61850/server/mms_mapping/reporting.c +++ b/src/iec61850/server/mms_mapping/reporting.c @@ -348,6 +348,9 @@ getDataSetEntryWithIndex(DataSetEntry* dataSet, int index) static bool sendReportSegment(ReportControl* self, bool isIntegrity, bool isGI) { + if (self->clientConnection == NULL) + return false; + int maxMmsPduSize = MmsServerConnection_getMaxMmsPduSize(self->clientConnection); int estimatedSegmentSize = 19; /* maximum size of header information (header can have 13-19 byte) */ estimatedSegmentSize += 8; /* reserve space for more-segments-follow (3 byte) and sub-seq-num (3-5 byte) */ @@ -1593,17 +1596,19 @@ increaseConfRev(ReportControl* self) static void checkReservationTimeout(ReportControl* rc) { - if (rc->resvTms > 0) { - if (Hal_getTimeInMs() > rc->reservationTimeout) { - rc->resvTms = 0; + if (rc->enabled == false) { + if (rc->resvTms > 0) { + if (Hal_getTimeInMs() > rc->reservationTimeout) { + rc->resvTms = 0; #if (CONFIG_IEC61850_BRCB_WITH_RESVTMS == 1) - MmsValue* resvTmsVal = ReportControl_getRCBValue(rc, "ResvTms"); - MmsValue_setInt16(resvTmsVal, rc->resvTms); + MmsValue* resvTmsVal = ReportControl_getRCBValue(rc, "ResvTms"); + MmsValue_setInt16(resvTmsVal, rc->resvTms); #endif - rc->reservationTimeout = 0; - updateOwner(rc, NULL); + rc->reservationTimeout = 0; + updateOwner(rc, NULL); + } } } } @@ -2511,6 +2516,11 @@ exit_function: static bool sendNextReportEntrySegment(ReportControl* self) { + if (self->clientConnection == NULL) + return false; + + int maxMmsPduSize = MmsServerConnection_getMaxMmsPduSize(self->clientConnection); + Semaphore_wait(self->reportBuffer->lock); if (self->reportBuffer->nextToTransmit == NULL) { @@ -2518,7 +2528,6 @@ sendNextReportEntrySegment(ReportControl* self) return false; } - int maxMmsPduSize = MmsServerConnection_getMaxMmsPduSize(self->clientConnection); int estimatedSegmentSize = 19; /* maximum size of header information (header can have 13-19 byte) */ estimatedSegmentSize += 8; /* reserve space for more-segments-follow (3 byte) and sub-seq-num (3-5 byte) */ diff --git a/src/logging/drivers/sqlite/log_storage_sqlite.c b/src/logging/drivers/sqlite/log_storage_sqlite.c index 426e0a61..fcb02ec9 100644 --- a/src/logging/drivers/sqlite/log_storage_sqlite.c +++ b/src/logging/drivers/sqlite/log_storage_sqlite.c @@ -25,7 +25,7 @@ #include "logging_api.h" #include "libiec61850_platform_includes.h" -#include +#include "sqlite3.h" #ifndef DEBUG_LOG_STORAGE_DRIVER #define DEBUG_LOG_STORAGE_DRIVER 0 diff --git a/src/mms/iso_mms/server/mms_file_service.c b/src/mms/iso_mms/server/mms_file_service.c index 1bd29ef5..fb1209e4 100644 --- a/src/mms/iso_mms/server/mms_file_service.c +++ b/src/mms/iso_mms/server/mms_file_service.c @@ -510,6 +510,9 @@ mmsServer_fileUploadTask(MmsServer self, MmsObtainFileTask task) IsoConnection_sendMessage(task->connection->isoConnection, response, false); + FileSystem_closeFile(task->fileHandle); + deleteFile(MmsServerConnection_getFilesystemBasepath(task->connection), task->destinationFilename); + MmsServer_releaseTransmitBuffer(self); if (DEBUG_MMS_SERVER) @@ -529,6 +532,9 @@ mmsServer_fileUploadTask(MmsServer self, MmsObtainFileTask task) IsoConnection_sendMessage(task->connection->isoConnection, response, false); + FileSystem_closeFile(task->fileHandle); + deleteFile(MmsServerConnection_getFilesystemBasepath(task->connection), task->destinationFilename); + MmsServer_releaseTransmitBuffer(self); if (DEBUG_MMS_SERVER)