Thing-IF SDK 结构

Thing-IF SDK 提供了一个用于开发 Thing 程序的 Thing-IF C SDK 以及用于开发移动端应用的 Thing-IF Android SDK、Thing-IF iOS SDK 和 Thing-IF JavaScript SDK。

使用 Thing 和移动端应用 SDK,你可以开发出能够让用户在移动端应用上控制 Thing 的服务。

Thing-IF C SDK

Thing-IF C SDK 是运行在 Thing 上的开源 C 程序。你可以下载并编译它。

SDK 的结构

下图描述了 SDK 的结构。

此 SDK 由3个资源库组成:thing-if-ThingSDK、KiiThingSDK-Embedded 以及 kii_json。你可以通过它们来使用 Thing Interaction Framework 提供的功能。

以下是一些在使用 Thing SDK 过程需要注意的重要事项:

  • 基本上你只需要实现那些处理程序

    当程序初始化 SDK 后,基本上就是等待 SDK 执行它的回调函数(即命令和状态的处理程序).

  • 此 SDK 在其内部使用了 Thing SDK Embedded

    Thing-IF SDK 在其内部使用了 Thing SDK Embedded。 Thing SDK Embedded 是一个由 C 编写并用于嵌入式设备的 SDK。Thing SDK Embedded 支持 Kii Cloud SDK 的主要功能。

    你也可以直接使用 Thing SDK Embedded。详见 借助 Thing SDK Embedded 开发 Thing。请查阅 使用 kii-core 一节了解如何使用 kii-core。kii-core 是 Thing SDK Embedded 内部使用的 SDK。

  • 所有操作系统相关的功能都可以使用

    thing-if-ThingSDK 为一些特定的环境定义了 参考实现。那些深入依赖于操作系统的 API,比如套接字和任务管理,都已经在参考实现中定义了。你可以简单的编译并使用这些功能。如果你想在其他环境下使用 SDK,那么你需要引用源代码来为目标环境提供相当的功能。

    在实际开发过程中,thing-if-ThingSDK 集成了各种操作系统的依赖库,这些库都包含在 KiiThing-Embedded 中。

  • MQTT 可用

    KiiThingSDK-Embedded 包含了 MQTT 客户端的实现,所以你无需额外的库就可以使用 MQTT 推送通知功能。在项目中,你需要使用推送通知来 接收命令

  • 你需要在程序中准备缓冲区

    你的 Thing 程序需要为接收命令和发送状态分配内存。所分配的内存将在初始化时传递给 SDK。SDK 所提供的 API 不包含从堆栈(相当于malloc)分配内存。

    请查阅 初始化和激活 一节了解缓冲区的处理详情。

  • kii_json 库可用于解析 JSON。

    当需要集成移动端应用时,Thing 需要解析 JSON 字符串。

    你可以使用其他方法来解析 JSON 字符串,但是使用 kii_json 可以让代码更简洁。详见 解析 JSON

参考实现

我们为如下环境提供了参考实现:

  • Linux
  • Intel Edison
  • Ti CC3200

    参照 Makefile 示例编译相关的代码就可以获得用于 Linux 的 SO 文件。

如果想要在其他环境下使用此 SDK,请自行实现必需的 API。如结构图中所示,所有依赖于操作系统的操作,比如套接字和任务(线程)生成,对所有平台来说都是可插拔的。你可以通过替换这些实现将 SDK 部署到任何平台。

如果你需要替换 API 的实现,请在目标环境下准备等同于 thing-if-ThingSDK 资源库中的 kii_iot_environment_linux.c 文件的源代码。

关于 SDK 的准备工作详见 此节

用于移动端应用程序的 Thing-IF SDK

我们提供了用于开发可以使用 Thing Interaction Framework 的移动端应用的 SDK。这些 SDK 可用来开发原生的 Android、iOS 和使用 JavaScript 或 TypeScript 的 Web 应用程序。借助这些 SDK 你可以快速开发出可以操控 Thing 的移动端应用程序。

关于运行环境请查阅 SDK 及其所支持的环境.

如需使用 Thing-IF SDK,你还需要使用 Kii Cloud SDK。

  • Thing-IF SDK 提供控制 Thing 的能力,比如发送命令以及读取状态。

  • Kii Cloud SDK 提供获取 Thing 权属人用户的访问令牌和 ID 的能力。访问令牌和 ID 是初始化 Thing 所必需的。

Thing Interaction Framework 内部使用的是 Kii Cloud 功能(例如,用户和数据管理、推送通知)来实现命令和状态的传输。我们将在开发指南中展示具体的实现过程。在此,典型的移动端应用只需要和指南中提供的示例一样执行 Kii Cloud SDK 功能即可。

Kii Cloud 和 Thing Interaction Framework 在云端共享应用程序。如果你想要使用数据管理和推送通知等功能,那么你也可以调用 Kii Cloud SDK 的功能。

关于如何安装 SDK 详见 AndroidiOSJavaScript 的编程指南。

REST API

你可以直接使用 REST API 命令代替以上 SDK,以通过 Thing Interaction Framework 开发移动端应用程序或 Thing 端程序。

需要特别注意的是,如果你使用 Thing Interaction Framework 中的功能来开发 Thing,那么你只能使用 MQTT 协议。请查阅 通过 MQTT 使用 API只使用 MQTT 了解如何只使用 MQTT 协议实现 Thing。