All Projects → F2I-Consulting → fesapi

F2I-Consulting / fesapi

Licence: Apache-2.0 license
Allow access in reading and writing to ENERGISTICS™ standards data (mainly RESQML™, some of WITSML™ and PRODML™)

Programming Languages

C++
36643 projects - #6 most used programming language
SWIG
194 projects
java
68154 projects - #9 most used programming language
CMake
9771 projects
c
50402 projects - #5 most used programming language
C#
18002 projects

Projects that are alternatives of or similar to fesapi

simple esn
simple Echo State Networks integrated with scikit-learn
Stars: ✭ 24 (+9.09%)
Mutual labels:  reservoir
ngic-rtc
NGIC-RTC is Control User Plane Separated (CUPS) architecture 3GPP TS23501 based implementation of EPC Service and Packet Gateway functions (SGW, PGW)
Stars: ✭ 54 (+145.45%)
Mutual labels:  epc
commonpp
Small library helping you with basic stuff like getting metrics out of your code, thread naming, etc.
Stars: ✭ 29 (+31.82%)
Mutual labels:  reservoir
codebase
The jBPT code library is a compendium of technologies that support research on design, execution, and evaluation of business processes. The library offers a broad range of basis analysis and utility functionality and, due to its open publishing model, can easily be extended.
Stars: ✭ 26 (+18.18%)
Mutual labels:  epc
docker open5gs
Docker files to run open5gs + IMS + eNB + gNB + NR-UE in a docker
Stars: ✭ 98 (+345.45%)
Mutual labels:  epc

Prepare your build environment

  • Create a folder called fesapiEnv.
  • In this folder create the three following folders
    • build
    • fesapi (Git clone this repository into this folder "fesapi". You should then have a path fesapiEnv/fesapi/src)
    • dependencies
  • The following compilers are known to work (used in CI)
    • gcc from version 4.8
    • visual studio from version 2017
    • clang from version 5.0

Prepare the dependencies

Download (build and install if necessary) third party libraries:

We advise you to install these third party libraries respectively into

  • fesapiEnv/dependencies/hdf5-particularVersion
  • fesapiEnv/dependencies/minizip-particularVersion
  • fesapiEnv/dependencies/boost-particularVersion

Configure the build

Fesapi uses cmake as its build tool. A 3.12 version or later of cmake is required https://cmake.org/download/. We also recommend using cmake-gui (already included in the bin folder of the binary releases of cmake) which provides a graphical user interface on top of cmake. If you want to use cmake in command line, you would find example in Azure Pipeline file. Follow the below instructions :

  • yourPath/fesapiEnv/fesapi defines where is the source code folder
  • yourPath/fesapiEnv/build/theNameYouWant defines where to build the binaries
  • Click on "Configure" button and select your favorite compiler : it will raise several errors.
  • give real values, path and files to the following cmake variables:
    • HDF5
      • HDF5_1_8 : true if you link to a HDF5 library version 1.8 false (default) if you link to a HDF5 library version 1.10 or 1.12
      • (ONLY FOR WINDOWS) HD5_BUILT_AS_DYNAMIC_LIB : true if you link to a shared HDF5 library else false
      • HDF5_C_INCLUDE_DIR : where the HDF5 headers are located
      • (ONLY FOR WINDOWS) HDF5_C_LIBRARY_DEBUG : Optional, only used by Visual studio Debug configuration, the HDF5 debug library you want to link to .
      • HDF5_C_LIBRARY_RELEASE : the HDF5 library you want to link to. On Visual studio, it is used on Release configuration. With other compilers, it is the default HDF5 library to link to.
    • MINIZIP
      • MINIZIP_INCLUDE_DIR : where the HDF5 headers are located
      • (ONLY FOR WINDOWS) MINIZIP_LIBRARY_DEBUG : Optional, only used by Visual studio Debug configuration, the MINIZIP debug library you want to link to
      • MINIZIP_LIBRARY_RELEASE : the MINIZIP library you want to link to. On Visual studio, it is used on Release configuration. With other compilers, it is the default HDF5 library to link to.
    • ZLIB
      • ZLIB_INCLUDE_DIR : where the zlib headers (commonly zlib.h only) are located. If you use the HDF5 binaries downloaded from HDF Group website, then it should be the same as HDF5_C_INCLUDE_DIR.
      • (ONLY FOR WINDOWS) ZLIB_LIBRARY_DEBUG : Optional, only used by Visual studio Debug configuration, the ZLIB debug library you want to link to
      • ZLIB_LIBRARY_RELEASE : the ZLIB library you want to link to. It must be the same as the one which is linked to HDF5 library and MINIZIP library otherwise you will get a warning from CMake. If you use the HDF5 binaries downloaded from HDF Group website, use the zlib library which lies in the same directory as HDF5_C_LIBRARY_RELEASE. On Visual studio, it is used on Release configuration. With other compilers, it is the default ZLIB library to link to.
    • SZIP (it is only required when you statically link to HDF5 AND when HDF5 has been built using SZIP)
      • SZIP_LIBRARY_RELEASE : the SZIP library you want to link to. This warning can be ignored most of time but it can really create unpredictable bugs in some circumstances (static linking to HDF5 with HDF5 making use of szip).
    • Boost
      • Boost_INCLUDE_DIR : where the Boost headers are located (generally the boost install folder)
  • Click again on "Configure" button. You should no more have errors so you can now click on "Generate" button. alt text
  • You can now build your solution with your favorite compiler (and linker) using the generated solution in yourPath/fesapiEnv/build/theNameYouWant
  • OPTIONALLY, you can build the tutorial example by setting WITH_EXAMPLE cmake variable to ON
  • OPTIONALLY, you can also set the variables WITH_DOTNET_WRAPPING, WITH_JAVA_WRAPPING or WITH_PYTHON_WRAPPING to true if you want to also generate wrappers on top of FESAPI for these two other programming languages. Don't forget to click again on "Configure" button once you changed the value of these two variables.
    • You will then have to also provide the path to the SWIG (version 3 as a mininum version) executable http://swig.org/download.html in the SWIG_EXECUTABLE variable (and click again on "Configure" button)
    • FOR Java and only for JAVA, you'll also have to provide various path to some java executables. Still only for Java, it is highly recommended to lower the optimization level of the C++ compilation by setting O1 instead of O2 in the variables called CMAKE_CXX_FLAGS_RELEASE and CMAKE_CXX_FLAGS_RELWITHDEBINFO
    • you will find the wrappers in fesapi/java/src or fesapi/cs/src (fesapi/cs also contains a VS2015 project for the wrappers) or fesapi/python/fesapi

Remark : you can choose where FESAPI will be installed (using "make install" on Linux or by generating the "INSTALL" project on Visual Studio) by setting the cmake variable called CMAKE_INSTALL_PREFIX

How to start

As a first way to start, we advise people to look at examples provided with FESAPI. Please give a look at:

  • C++ : in example/example.cpp
  • C# : in cs/example/example.sln (Program.cs will be generated by cmake configuration when WITH_DOTNET_WRAPPING is ON, the source file is initially located in cmake/Program.cs)
  • Java (JDK 1.5 and later) : in java/src/com/f2i_consulting/example/FesapiJavaExample.java (FesapiJavaExample.java will be generated by cmake configuration when WITH_JAVA_WRAPPING is ON, the source file is initially located in cmake/FesapiJavaExample.java)
  • Python3 (no support for Python2) : in python/example/example.py (please follow instructions in the documentation header of this example python file)

You can also find Doxygen generated documentation here

Testing

This software was tested with :

Credits

This software was developed with :

FESAPI Product incorporates RESQML™, WITSML™ and PRODML™ technology/standards provided by the Energistics Consortium, Inc.

RESQML, WITSML and PRODML are trademarks or registered trademarks of Energistics Consortium, Inc.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].