Skip to content

Commit

Permalink
version 4.2.3
Browse files Browse the repository at this point in the history
  • Loading branch information
mclib-dev committed Oct 22, 2020
1 parent 911f7a8 commit 2eeaf1a
Show file tree
Hide file tree
Showing 281 changed files with 68,945 additions and 2 deletions.
62 changes: 62 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,62 @@
# [4.2.3] (2020-10-10)

## Bug Fixes

* Missing http header is added to requests to data lake on Azure.

# [4.2.2] (2020-09-05)

## Features

* Updated Sony Spresense port for Spresense SDK 2.0.

# [4.2.1] (2020-06-13)

## Features

* Basic http client using tcp sockets and mbedtls for tls is introduced as an alternative to curl-openssl pair.
* MCL is ported to Sony Spresense board using basic http client and mbedtls.

# [4.2.0] (2020-04-16)

## Features

* Data Point Mapping support is added to MCL Connectivity component.

# [4.1.1] (2020-03-19)

## Bug Fixes

* Type mismatch checks added to json utility get functions.

# [4.1.0] (2020-02-03)

## Features

* MCL Data Lake component is released for agents to upload unstructured data.

## Bug Fixes

* Missing C linkage specifications in some headers are added.

# [4.0.1] (2019-12-06)

## Security

* Minimum required OpenSSL version is updated from 1.1.1c to 1.1.1d for users using OpenSSL.

## Features

* mcl_http_client_add_certificate function is added.

## Refactor

* max_http_payload_size parameter of mcl_core_configuration_t structure is removed. Setting it with mcl_core_configuration_set_parameter function will have no effect.
* mcl_core_is_initialized function is removed, hence MCL_NOT_INITIALIZED error code is removed.
* mcl_http_client_configuration_t structure is refactored.

# [4.0.0] (2019-09-13)

## Features

* First release.
122 changes: 122 additions & 0 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,122 @@
CMAKE_MINIMUM_REQUIRED(VERSION 3.10 FATAL_ERROR)

# Set verbose mode for make process.
SET(CMAKE_VERBOSE_MAKEFILE ON)

# Project name.
FILE(STRINGS "${CMAKE_CURRENT_SOURCE_DIR}/mcl_core/include/mcl_core/mcl_version.h" MCL_VERSION_STRING REGEX "^#define MCL_VERSION_STRING*")
STRING(REPLACE "#define MCL_VERSION_STRING" "" MCL_VERSION_STRING ${MCL_VERSION_STRING})
STRING(REPLACE "\"" "" MCL_VERSION_STRING ${MCL_VERSION_STRING})
STRING(REPLACE " " "" MCL_VERSION_STRING ${MCL_VERSION_STRING})
PROJECT(MindConnectLibrary VERSION ${MCL_VERSION_STRING} LANGUAGES C)
MESSAGE(STATUS "MCL Version = ${MCL_VERSION_STRING}")
SET(CMAKE_C_STANDARD 99)
SET(CMAKE_C_STANDARD_REQUIRED ON)

# Set path of MCL's root Cmake directory.
SET(MCL_CMAKE_ROOT_DIR ${CMAKE_CURRENT_SOURCE_DIR})

INCLUDE(CheckIncludeFile)

# Check for header files.
CHECK_INCLUDE_FILE("stdio.h" HAVE_STDIO_H_)
CHECK_INCLUDE_FILE("stddef.h" HAVE_STDDEF_H_)
CHECK_INCLUDE_FILE("string.h" HAVE_STRING_H_)
CHECK_INCLUDE_FILE("stdlib.h" HAVE_STDLIB_H_)
CHECK_INCLUDE_FILE("stdint.h" HAVE_STDINT_H_)
CHECK_INCLUDE_FILE("stdarg.h" HAVE_STDARG_H_)
CHECK_INCLUDE_FILE("syslog.h" HAVE_SYSLOG_H_)
CHECK_INCLUDE_FILE("time.h" HAVE_TIME_H_)

LIST(APPEND STANDARD_HEADER_MACROS HAVE_STDIO_H_ HAVE_STDDEF_H_ HAVE_STRING_H_ HAVE_STDLIB_H_ HAVE_STDINT_H_ HAVE_STDARG_H_ HAVE_TIME_H_)
FOREACH(STANDARD_HEADER_MACRO ${STANDARD_HEADER_MACROS})
STRING(REPLACE "HAVE_" "" STANDARD_HEADER_FILE ${STANDARD_HEADER_MACRO})
STRING(REPLACE "_H_" ".H" STANDARD_HEADER_FILE ${STANDARD_HEADER_FILE})
IF(${STANDARD_HEADER_MACRO})
MESSAGE(STATUS "Standard header ${STANDARD_HEADER_FILE} is found.")
ELSE()
MESSAGE(FATAL_ERROR "FATAL ERROR : Build process terminated because ${STANDARD_HEADER_FILE} is NOT found.")
ENDIF()
ENDFOREACH()

IF(HAVE_SYSLOG_H_)
ADD_DEFINITIONS(-DHAVE_SYSLOG_H_=1)
ELSE()
ADD_DEFINITIONS(-DHAVE_SYSLOG_H_=0)
ENDIF()

FIND_PROGRAM(RUBY_FOUND ruby)

# Set flags for coverage output.
STRING(TOLOWER "${CMAKE_BUILD_TYPE}" CMAKE_BUILD_TYPE_LOWER)
IF(CMAKE_COMPILER_IS_GNUCC AND (CMAKE_BUILD_TYPE_LOWER MATCHES debug))
MESSAGE(STATUS "Coverage output with GNU CC generated.")
SET(GCC_COVERAGE_COMPILE_FLAGS "-fprofile-arcs -ftest-coverage")
SET(GCC_COVERAGE_LINK_FLAGS "-lgcov")
SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${GCC_COVERAGE_COMPILE_FLAGS}")
SET(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} ${GCC_COVERAGE_LINK_FLAGS}")
ENDIF()

# Use solution folders.
SET_PROPERTY(GLOBAL PROPERTY USE_FOLDERS ON)

# Set output folder for all targets.
# First for the generic no-config case (e.g. with mingw).
SET(MCL_OUTPUT_DIR ${CMAKE_BINARY_DIR}/build/${CMAKE_BUILD_TYPE})
SET(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${MCL_OUTPUT_DIR})
SET(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${MCL_OUTPUT_DIR})
SET(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${MCL_OUTPUT_DIR})

# Second, for multi-config builds (e.g. msvc).
FOREACH(OUTPUTCONFIG ${CMAKE_CONFIGURATION_TYPES})
STRING(TOUPPER ${OUTPUTCONFIG} OUTPUTCONFIG)
SET(CMAKE_ARCHIVE_OUTPUT_DIRECTORY_${OUTPUTCONFIG} ${MCL_OUTPUT_DIR})
SET(CMAKE_LIBRARY_OUTPUT_DIRECTORY_${OUTPUTCONFIG} ${MCL_OUTPUT_DIR})
SET(CMAKE_RUNTIME_OUTPUT_DIRECTORY_${OUTPUTCONFIG} ${MCL_OUTPUT_DIR})
ENDFOREACH()

# Set variables for distribution package destination.
SET(PACKAGE_DESTINATION_INCLUDE "include")
SET(PACKAGE_DESTINATION_LIB "lib")
SET(PACKAGE_DESTINATION_DOC "doc")

# Define file system presence on the target.
OPTION(HAVE_FILE_SYSTEM_ "The target has a file system." ON)

# Add a global definition.
IF(HAVE_FILE_SYSTEM_)
ADD_DEFINITIONS(-DHAVE_FILE_SYSTEM_=1)
ELSE()
ADD_DEFINITIONS(-DHAVE_FILE_SYSTEM_=0)
ENDIF()

# Set log level if provided during call of cmake.
IF(MCL_LOG_LEVEL)
MESSAGE(STATUS "Compile log level set to ${MCL_LOG_LEVEL}.")
ADD_DEFINITIONS(-DMCL_LOG_LEVEL=${MCL_LOG_LEVEL})
ENDIF()

# Option to compile connectivity extension.
OPTION(MCL_CONNECTIVITY "Option to compile connectivity extension." ON)

# Option to compile data lake extension.
OPTION(MCL_DATA_LAKE "Option to compile data lake extension." ON)

# Option to set if MCL build as static or dynamic.
OPTION(MCL_STATICLIB "Option to build static or dynamic." OFF)

# Option to enable testing for mcl_core and all extensions.
OPTION(MCL_TEST "Option to build test executables." OFF)

# Option to enable or disable creation of documentation.
OPTION(MCL_DOC "Option to generate documentation." OFF)

ADD_SUBDIRECTORY(mcl_core)

IF(MCL_CONNECTIVITY)
ADD_SUBDIRECTORY(mcl_connectivity)
ENDIF()

IF(MCL_DATA_LAKE)
ADD_SUBDIRECTORY(mcl_data_lake)
ENDIF()
71 changes: 71 additions & 0 deletions LICENSE.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,71 @@
# SIEMENS

# MindSphere Development License Agreement

December 2018

This Development License Agreement (the "**License**") stipulates the rights that Siemens AG, Germany ("**Siemens**") grants to you ("**you**") in receipt of certain development material in relation to MindSphere (the "**Platform**"). This material may include software, sample code, scripts, libraries, software development kits, technology, documentation, and other proprietary material or information (collectively, the "**Licensed Material**").

Siemens retains the right to utilize its affiliated companies in pursuing any of its rights and fulfilling any of its obligations under this License. Therefore, the term "Siemens" as used herein may also refer to affiliated companies that are directly or indirectly owned or controlled by the ultimate parent company of Siemens AG and who have been authorized by Siemens AG to distribute the Licensed Material.

##### 1.Proprietary Rights in the Licensed Material

All rights, title, interest and know-how in and to the Licensed Material, any part and improvement thereof and all intellectual property rights in or to the foregoing, other than those rights expressly granted in this License, shall remain wholly vested in Siemens or its third party business partners and/or licensors.

##### 2.License Grant

If you have entered a separate commercial license agreement with Siemens that covers the Licensed Material, such license agreement shall prevail and this License shall not apply.

You must accept this License to use the Licensed Material. If you use the Licensed Material, any such use shall constitute acceptance of this License. The Licensed Material is licensed, not sold.

Subject to the terms and conditions of this License, Siemens grants you a non-exclusive, worldwide, royalty-free, non-transferable right to:

- publish, modify and create derivative works of small source code examples (no longer than 50 lines of code) contained in Licensed Material,
- integrate and publish Licensed Material in software that interoperates with the Platform, e.g. by transmission of data between applications, devices, systems or equipment and the Platform (hereinafter referred as "**Customizations**"), and license such Customizations to third parties to enable your offering of services relating to the Platform,
- use, run and copy Licensed Material for your own internal use, and
- sublicense Licensed Material to a service provider for the purposes of this section.

You shall not:

- use the Licensed Material for any other technology than the Platform, or
- use the Licensed Material to abuse the Platform, or to compromise its integrity or security, or
- disassemble or reverse-engineer any Licenses Material provided in object-code format, unless such action is permitted by an applicable Open-Source license or the law that applies to you, or
- remove or modify Siemens copyright, patent, trademark or attribution notices in the Licensed Material.

##### 3.Feedback

If you provide Siemens with feedback regarding the Licensed Material, you grant Siemens a non-exclusive, worldwide, royalty-free and perpetual right to use, copy, modify, distribute, and sublicense any such feedback in any way.

##### 4.Open-Source Software

The Licensed Material may contain third-party software, including Open-Source Software ("**OSS**"). If required, Siemens will furnish a notice file with the Licensed Material. To the extent the licenses terms applicable to such OSS are in contradiction to this License, the OSS license conditions shall prevail.

##### 5.Responsibility for Use of the Licensed Material and Customizations

Except any liability directly caused by Siemens violating its obligations under this License, you are responsible for the use of the Licensed Material (and all consequences arising therefrom), regardless of whether the use is undertaken by you, your employees or any third parties. You will ensure that the use of the Licensed Material by you, your employees or your customers complies with your obligations under this License. Should you become aware of any violation of your obligations under this License, you will (i) immediately inform Siemens thereof in reasonable detail and (ii) cease to use the Licensed Material.

You are responsible for (i) properly integrating the Licensed Material into your Customizations, (ii) configuring and testing any Customization and making sure that a Customization is able to connect to and/or interoperate with the Platform, (iii) regular testing and monitoring of integrity, accuracy and timeliness of data transmission through a Customization (e.g. by monitoring over the Platform), (iv) the security of a Customization, and (v) the security of your and your customer's system, any third party system or any data stored on such systems.

You are responsible for the integrity, accuracy and timeliness of the exchange of data between a Customization and the Platform. Nothing in this License shall in any way constitute or be communicated by you or your customers to be an endorsement from us of a Customization in which you implemented the Licensed Material.

##### 6.Warranty, Liability and Indemnification

SIEMENS PROVIDES THE LICENSED MATERIAL FREE OF CHARGE AND THEREFORE "AS IS" WITHOUT ANY EXPRESS OR IMPLIED WARRANTIES. ANY STATEMENTS OR REPRESENTATIONS ABOUT THE LICENSED MATERIAL AND ITS RESPECTIVE FUNCTIONALITY IN THE LICENSED MATERIAL CONSTITUTE MERELY TECHNICAL INFORMATION AND ARE NEITHER A GUARANTEE NOR A WARRANTY. SIEMENS IS NOT AWARE THAT THE LICENSED MATERIAL VIOLATES ANY THIRD PARTY RIGHTS IF USED IN ACCORDANCE WITH THE LICENSE. FURTHERMORE, SIEMENS DOES NOT WARRANT THAT THE LICENSED MATERIAL IS FAIL-SAFE, FAULT-TOLERANT, ERROR-FREE OR THAT ANY DATA TRANSMITTED THROUGH THE LICENSED MATERIAL OR A CUSTOMIZATION WILL BE SECURE OR NOT OTHERWISE LOST OR DAMAGED.

Siemens disclaims all liability for all damages of any kind irrespective of the legal ground in relation to the Licensed Material. However, nothing in this License shall exclude or limit Siemens' liability in case of death or personal injury of any person, or in case of our willful misconduct, gross negligence, fraud or fraudulent misrepresentation. Any limitations of liability set forth in this License shall also apply for the benefit of Siemens' subcontractors, employees, directors, agents or any other person acting for Siemens.

You agree to indemnify, defend, and hold Siemens harmless from and against all losses, expenses, damages and costs, including reasonable attorneys' fees, resulting from or arising out of any violation of this License by you or any other person you provided with the Licensed Material, regardless of your knowledge, including any claim, proceeding, action, fine, loss, cost and damages arising out of or relating to any non-compliance with export control regulations.

##### 7.Term and Termination, Updates

If Siemens reasonably determines that you are breaching this License and you fail to remediate such breach without undue delay, Siemens may suspend or terminate your Platform access temporarily or permanently and terminate this License at its sole discretion.

Siemens may, at its sole discretion, make available updates or security patches for the Licensed Material. Outdated versions of the Licensed Material may not be able to connect to and/or interoperate with the Platform.

##### 8.Applicable Law

This License shall be governed by and construed in accordance with the laws of Switzerland, without giving effect to any choice-of-law rules that may require the application of the law of another jurisdiction. The UN Convention on Contracts for the International Sale of Goods shall not apply.

---
MindSphere Development License Agreement v1.3 (December 18)
Unrestricted
Loading

0 comments on commit 2eeaf1a

Please sign in to comment.