From 945fe080f36a5bfa64aa47858f2e10d76fc5c4fd Mon Sep 17 00:00:00 2001 From: Michael Zillgith Date: Fri, 15 Jan 2021 10:15:57 +0100 Subject: [PATCH] - removed some compiler warnings --- hal/inc/tls_socket.h | 3 ++- hal/serial/linux/serial_port_linux.c | 4 ++-- src/iec61850/common/iec61850_common.c | 9 +++++---- src/iec61850/server/mms_mapping/control.c | 5 +++++ src/iec61850/server/mms_mapping/logging.c | 4 ++++ src/iec61850/server/mms_mapping/mms_goose.c | 4 ++++ src/sampled_values/sv_subscriber.c | 4 ++-- 7 files changed, 24 insertions(+), 9 deletions(-) diff --git a/hal/inc/tls_socket.h b/hal/inc/tls_socket.h index 1eb39a85..ac5b8c15 100644 --- a/hal/inc/tls_socket.h +++ b/hal/inc/tls_socket.h @@ -3,7 +3,7 @@ * * TLS socket API for protocol libraries using TCP/IP * - * Copyright 2017-2018 Michael Zillgith, MZ Automation GmbH + * Copyright 2017-2020 Michael Zillgith, MZ Automation GmbH * * Abstraction layer for different TLS implementations * @@ -41,6 +41,7 @@ extern "C" { * @{ */ +#include #include "tls_config.h" #include "hal_socket.h" diff --git a/hal/serial/linux/serial_port_linux.c b/hal/serial/linux/serial_port_linux.c index 9da1831e..5cdfd085 100644 --- a/hal/serial/linux/serial_port_linux.c +++ b/hal/serial/linux/serial_port_linux.c @@ -183,7 +183,7 @@ SerialPort_open(SerialPort self) tios.c_iflag |= INPCK; } - tios.c_iflag &= ~(IXON | IXOFF | IXANY); + tios.c_iflag &= ~(IXON | IXOFF | IXANY | ICRNL); tios.c_iflag |= IGNBRK; /* Set ignore break to allow 0xff characters */ tios.c_iflag |= IGNPAR; tios.c_oflag &=~ OPOST; @@ -265,7 +265,7 @@ SerialPort_readByte(SerialPort self) int SerialPort_write(SerialPort self, uint8_t* buffer, int startPos, int bufSize) { - //TODO assure minimum line idle time + /* TODO assure minimum line idle time? */ self->lastError = SERIAL_PORT_ERROR_NONE; diff --git a/src/iec61850/common/iec61850_common.c b/src/iec61850/common/iec61850_common.c index 58cb146f..19ea0b44 100644 --- a/src/iec61850/common/iec61850_common.c +++ b/src/iec61850/common/iec61850_common.c @@ -381,7 +381,7 @@ Timestamp_setTimeInMilliseconds(Timestamp* self, msSinceEpoch millisSinceEpoch) void Timestamp_setTimeInNanoseconds(Timestamp* self, nsSinceEpoch nsTime) { - uint32_t timeval32 = (nsTime / 1000000000LLU); + uint32_t timeval32 = (uint32_t)(nsTime / 1000000000ULL); uint8_t* valueArray = self->val; @@ -390,7 +390,7 @@ Timestamp_setTimeInNanoseconds(Timestamp* self, nsSinceEpoch nsTime) valueArray[2] = (timeval32 / 0x100 & 0xff); valueArray[3] = (timeval32 & 0xff); - uint64_t remainder = (nsTime % 1000000000LLU); + uint64_t remainder = (nsTime % 1000000000ULL); remainder = remainder << 24; remainder = remainder / 1000000000UL; @@ -465,7 +465,7 @@ Timestamp_getTimeInNs(Timestamp* self) nsVal = nsVal * 1000000000UL; nsVal = nsVal >> 24; - uint64_t timeval64 = (uint64_t) timeval32 * 1000000000LLU + nsVal; + uint64_t timeval64 = (uint64_t) timeval32 * 1000000000ULL + nsVal; return timeval64; } @@ -571,7 +571,8 @@ MmsMapping_createMmsVariableNameFromObjectReference(const char* objectReference, else mmsVariableName = buffer; - strcpy(mmsVariableName, objectReference + i); + strncpy(mmsVariableName, objectReference + i, len); + mmsVariableName[len - 1] = 0; return mmsVariableName; } diff --git a/src/iec61850/server/mms_mapping/control.c b/src/iec61850/server/mms_mapping/control.c index dd2fa06f..9fd21cc9 100644 --- a/src/iec61850/server/mms_mapping/control.c +++ b/src/iec61850/server/mms_mapping/control.c @@ -27,9 +27,14 @@ #include "iec61850_server.h" #include "ied_server_private.h" #include "mms_value_internal.h" +#include #if (CONFIG_IEC61850_CONTROL_SERVICE == 1) +#if defined(_MSC_VER) && _MSC_VER < 1900 +#define snprintf(buf,len, format,...) _snprintf_s(buf, len,len, format, __VA_ARGS__) +#endif + #ifndef DEBUG_IED_SERVER #define DEBUG_IED_SERVER 0 #endif diff --git a/src/iec61850/server/mms_mapping/logging.c b/src/iec61850/server/mms_mapping/logging.c index 2f4f3488..6d9e4551 100644 --- a/src/iec61850/server/mms_mapping/logging.c +++ b/src/iec61850/server/mms_mapping/logging.c @@ -37,6 +37,10 @@ #include "logging_api.h" +#if defined(_MSC_VER) && _MSC_VER < 1900 +#define snprintf(buf,len, format,...) _snprintf_s(buf, len,len, format, __VA_ARGS__) +#endif + #if (CONFIG_IEC61850_LOG_SERVICE == 1) LogInstance* diff --git a/src/iec61850/server/mms_mapping/mms_goose.c b/src/iec61850/server/mms_mapping/mms_goose.c index 24847c63..80ca121b 100644 --- a/src/iec61850/server/mms_mapping/mms_goose.c +++ b/src/iec61850/server/mms_mapping/mms_goose.c @@ -38,6 +38,10 @@ #include "goose_publisher.h" #include "ied_server_private.h" +#if defined(_MSC_VER) && _MSC_VER < 1900 +#define snprintf(buf,len, format,...) _snprintf_s(buf, len,len, format, __VA_ARGS__) +#endif + struct sMmsGooseControlBlock { char* name; bool goEna; diff --git a/src/sampled_values/sv_subscriber.c b/src/sampled_values/sv_subscriber.c index 78865653..950e803e 100644 --- a/src/sampled_values/sv_subscriber.c +++ b/src/sampled_values/sv_subscriber.c @@ -627,7 +627,7 @@ decodeUtcTimeToNsTime(uint8_t* buffer, uint8_t* timeQuality) if (timeQuality != NULL) *timeQuality = buffer[7]; - uint64_t timeval64 = (uint64_t) timeval32 * 1000000000LLU + nsVal; + uint64_t timeval64 = (uint64_t) timeval32 * 1000000000ULL + nsVal; return timeval64; } @@ -640,7 +640,7 @@ SVSubscriber_ASDU_getRefrTmAsMs(SVSubscriber_ASDU self) if (self->refrTm != NULL) msTime = decodeUtcTimeToNsTime(self->refrTm, NULL); - return (msTime / 1000000LLU); + return (msTime / 1000000ULL); } nsSinceEpoch