Coder Social home page Coder Social logo

ciscodevnet / kinetic-efm-cpp-sdk Goto Github PK

View Code? Open in Web Editor NEW
1.0 21.0 2.0 165.21 MB

The Cisco Kinetic EFM IOT C++ SDK provides technologies to develop DSA links with a modern and easy to use C++ API

HTML 91.79% JavaScript 1.54% CSS 0.75% Makefile 0.08% C++ 5.80% Shell 0.04%

kinetic-efm-cpp-sdk's Introduction

Cisco Kinetic EFM IOT C++ SDK Readme

Overview

The Cisco Kinetic EFM IOT C++ SDK provides technologies to develop DSA links with a modern and easy to use C++ API.

Version

The current SDK version is 1.2.5.

System Requirements and Installation

The Cisco Kinetic EFM IOT C++ SDK is provided for the following platforms:

  • CentOS 7 (x86_64)
  • Ubuntu 14.04 (x86_64 / requires g++ 4.9) - DEPRECATED Support for Ubuntu 14.04 ended in April 2019
  • Ubuntu 16.04 (x86_64) - also for IOx-powered devices with x86 processor

On all systems (excluding Ubuntu 14.04) you will need the g++ platform compiler installed to build links with the SDK.

Release Contents

  • include/ - API header files
  • lib/ - API static libraries
  • examples/ - Samples to get you started
  • docs/ - API documentation
  • CHANGELOG.md - List of changes per version
  • CONFIG.md - Documentation of configuration files
  • LICENSE.md - License information
  • README.md - This readme

Limitations

  • No roll-up yet.
  • No support for profiles.

Known Issues

Changelog

See CHANGELOG.md for changelog information.

Examples

You can find a couple of samples in the examples directory to show the use of the API and should get you started quickly.

  • examples/responder/ - Implements a responder link example
  • examples/requester/ - Implements a requester link example

To build an example, just invoke make in the corresponding directory.

To create a package which can be deployed via a LCM run the following command:

prompt> make package

To use the examples you need a running broker. As the requester example subscribes to paths from the responder example, you should start the responder example before starting the requester example.

To start an example you have to supply the broker url by using the -b command line parameter:

prompt> ./responder -b http://localhost:8080/conn

In order to connect via HTTPS to a broker, you might need to enable self signed certificates by adding the following section to your dslink.json link configuration file:

"ssl": {
  "self_signed_tls_certificate_allowed": true
}

Then connect to a C++ Broker:

prompt> ./responder -b https://localhost:8463/conn --ssl-ca-file /opt/cisco/kinetic/cpp_broker/server.ca-bundle

Compatibility

Currently any C++ SDK and C++ Broker with a matching major version (first digit) are compatible with each other.

Minor version updates (second digits) are done for each release cycle and will not break any compatibility.

There is no need to re-compile with a new SDK version if a new broker is being released (barring any issues that might require an update).

Updating either of them is not supposed to be causing any issues.

C++ SDK Version C++ Broker Version
any 1.x.y any 1.x.y

License

See LICENSE.md for license information.

Third-party Software

The Cisco Kinetic EFM IOT C++ SDK uses the following third-party software:

  • Boost 1.69
  • RapidJSON 1.1.0
  • zlib 1.2.11
  • OpenSSL 1.0.2r

COPYRIGHT © 2018-2019 CISCO SYSTEMS, INC. ALL RIGHTS RESERVED.

kinetic-efm-cpp-sdk's People

Contributors

eckelcu avatar

Stargazers

 avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Forkers

kevinmiles gencto

kinetic-efm-cpp-sdk's Issues

[OSX] ld: unknown option: -z

Trying to compile the simple_responder example in the Linux distro folder but got this error.

RBAINDOU-M-4116:simple_responder robert$ pwd
/Users/robert/kinetic-efm-cpp-sdk/efm-cpp-sdk-1.0.15-Linux-dslink-dev/examples/simple_responder
RBAINDOU-M-4116:simple_responder robert$ ll
total 40
drwxr-xr-x  6 robert  staff   204 Feb 18 10:45 .
drwxr-xr-x  5 robert  staff   170 Feb 18 10:45 ..
-rw-r--r--  1 robert  staff   843 Feb 18 10:45 Makefile
-rw-r--r--  1 robert  staff  1149 Feb 18 10:45 error_code.cpp
-rw-r--r--  1 robert  staff  1053 Feb 18 10:45 error_code.h
-rw-r--r--  1 robert  staff  8116 Feb 18 10:45 main.cpp
RBAINDOU-M-4116:simple_responder robert$ make
c++ -c -o error_code.o error_code.cpp -std=c++11 -Wall -Wextra -I ../../include -g -O2 -D_FORTIFY_SOURCE=2 -fPIE -fstack-protector
c++ -c -o main.o main.cpp -std=c++11 -Wall -Wextra -I ../../include -g -O2 -D_FORTIFY_SOURCE=2 -fPIE -fstack-protector
c++ -o simple-responder error_code.o main.o -L ../../lib -pie -Wl,-z,now -ldslink-sdk-cpp-static -lboost_log -lboost_date_time -lboost_program_options -lboost_system -lboost_thread -lboost_filesystem -lboost_regex -lssl -lcrypto -ldl -pthread
clang: warning: argument unused during compilation: '-pie'
clang: warning: argument unused during compilation: '-pthread'
ld: unknown option: -z
clang: error: linker command failed with exit code 1 (use -v to see invocation)
make: *** [simple-responder] Error 1

Anyway we can add support for:

RBAINDOU-M-4116:simple_responder robert$ clang -v
Apple LLVM version 8.0.0 (clang-800.0.42.1)
Target: x86_64-apple-darwin16.7.0
Thread model: posix
InstalledDir: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin

RBAINDOU-M-4116:simple_responder robert$ ld -v
@(#)PROGRAM:ld  PROJECT:ld64-274.2
configured to support archs: armv6 armv7 armv7s arm64 i386 x86_64 x86_64h armv6m armv7k armv7m armv7em (tvOS)
LTO support using: LLVM version 8.0.0, (clang-800.0.42.1)
TAPI support using: Apple TAPI version 1.30

Thanks in advance.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.