Code Monkey home page Code Monkey logo

st-device-sdk-c's Introduction

SmartThings SDK for Direct Connected Devices for C

License

The SmartThings SDK for Direct Connected Devices for C is the IoT core device library that allow device applications to securely connect to the SmartThings Cloud. To facilitate the development of device application in your original chipset SDK that installed before, we provide this core device library as a separate repository. You may simply link it to develop a device application in your existing development environment.

We also provide examples so that so that you can refer to how this core device library can be linked in existing original chipset SDKs and device applications can be developed.

It is distributed in source form and written in C99 for the purpose of portability to most platforms.

Main features

This core device library provides the following features :

  • Customized MQTT in order to reduce memory consumption and enhance stability
  • Easy and efficient APIs
    • Connection APIs : You can do onboarding & MQTT connection by just calling only a few these APIs.
    • Capability APIs : More than hundred different capabilities can be implemented as only a few APIs.

How to get started?

This core device library includes platform-dependent parts that should be built in a specific toolchain or SDK. That is, if you do NOT use the pre-porting environment, you must first port them to the appropriate environment.

After porting, you can use this library completely under the specific environment. For more information on detailed workflow below, please refer to the Getting Started. Maybe, we think it's more helpful to you

  • Register a Device on Developer Workspace
  • Develop a Device Application

Porting SmartThings SDK for Direct Connected Devices for C

This core device library has platform-dependent directories. In current SDK version, those that must be ported are present in src/port/bsp, src/port/net and src/port/os. By default, we have already provided several implementations based on some operating systems(e.g. FreeRTOS, LINUX) and chipsets(e.g. ESPRESSIF, REALTEK, Raspberry Pi). These porting examples in those directories make it easier for you to port to additional chipsets and operating systems.

For instructions on how to port this SDK, please see the Porting Guide.

Building SmartThings SDK for Direct Connected Devices for C

This core device library should be built according to the chipset development environment to be applied. If this environment is not ready yet, you can build it in the POSIX environment based on Ubuntu as shown below.

But, unlike the resource limited MCU devices, you can NOT check the onboarding process in the POSIX environment because it does not support a SoftAP function by default. Therefore, as a starting point of this SDK, we strongly recommend that you build one of the MCU device examples provided in example directory to use all features without limitations.

Prerequisites

Basically, you can build this core device library through cmake in the Ubuntu.

  • sudo apt-get install libssl-dev libpthread-stubs0-dev

Build

  1. Clone the source code.

    • Download the source code via git clone.

      $ git clone https://github.com/SmartThingsCommunity/st-device-sdk-c.git
  2. Build a POSIX example application.

    • Go to a example directory and then build.

      $ cd st-device-sdk-c/example/posix
      $ cmake -B build
      $ cd build
      $ make

Learn more

For more information, please review the following documents:

  • Getting Started : It covers the overall workflow and detailed steps for starters to work with SDK.
  • API References : It provide all API reference that SDK offers.
  • Commercialization Guide : It provides guide for ones who consider commercializing their IoT products with SDK.
  • Capabilities Reference : This page serves as a reference for the supported capabilities.
  • Developer Workspace : It provides functions related to device information registration and device integration in the SmartThings cloud.

Contact

If you have any issue, or want to commercialize your IoT devices using this SDK, please contact [email protected] or open new issue.

License

This library is licensed under the Apache License Ver2.0.

st-device-sdk-c's People

Contributors

kwang-hui avatar stdk-scm avatar sangheedotkim avatar yongsuloh avatar junyoun-kim avatar hdlee27 avatar sahilpai1 avatar jy0209-kim avatar jaehoon-you avatar srcn-liqin avatar jonggab-park avatar baojunluo avatar bimanpaulsamsung avatar donghoon-ryu avatar blackdragon81 avatar hisongfeng avatar seokhee06 avatar xiarihf avatar grobebar avatar hongye-samsung avatar xixidodo avatar jaeyongshin avatar casuist311 avatar bhargava-cs avatar dohyung2-kim avatar chulspro avatar poojakatewal1 avatar kolos avatar

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.