跳到主要内容

DeviceSDK概述

更新时间:2025-04-25 19:03:58

版本更新记录

版本号更新点
1.4.0IoTSDK
1.修改绑定接口 xs_iot_setBindToken 为 xs_iot_setBindInfo,支持海外版本传入regionId信息
2.修改xs_iot_report接口,增加serviceId信息,用于通知设备消息是否上报成功
3.增加xs_iot_disconnect接口,用于控制断开设备连接
4.增加xs_iot_set_timezone接口和xs_timezoneCallback回调接口,用于处理夏令时/冬令时时区切换信息
5.初始化参数中增加regionType和configPath字段,用于支持海外版本以及本地配置文件
6. 增加xs_keepliveCallback回调接口,用于下发4G低功耗设备保活休眠信息

StreamSDK
1.增加xs_stream_postTriggerPicture接口,支持异步抓图模式
2.增加xs_forceIFrame回调,支持强制关键帧
3.增加xs_playStatusCb回调,通知设备播放状态
4.增加xs_getPlaybackProperty回调,获取SD卡回放并发路数信息
5.增加xs_serviceReadyCb状态回调,用于通知设备侧服务状态信息
1.3.11. 支持NVR网关设备接入
1.3.01. 支持远程拉取日志功能
2. 支持定时开关机(休眠)计划
3. 支持定时录像计划
4. 支持双向视频
5. 支持双目设备
1.2.21. 优化直存情况下的内存使用,采用流式传输机制
2. P2P内存占用优化
3. 支持无套餐图片录制功能
4. 支持上报自定义IOT消息(见IoTSDK文档)
1.2.11. 增加登录token的回调(xs_cloudTokenCallback),应用层需要处理,将token保存,防止出现串号串流问题
2. P2P播放内部优化
1.2.0初始版本

SDK介绍

RTCX-设备 SDK 主要提供了嵌入式 IOT 设备快速接入云平台的功能。设备厂商参考接口文档和示例代码,只需极少的工作量就能快速将硬件设备快速接入到 RTCX 云平台,让客户实现对设备的参数配置、状态监控、远程控制、以及直播回放等功能。

RTCX-设备 SDK 主要分为以下几个部分:

SDK运行环境说明备注
IoTSDK(C)主控芯片或 wifi 芯片维护了设备绑定解绑、信令通道、物模型配置管理,消息上报等基础操作必选
StreamSDK(C++)主控芯片维护了音视频传输、图片传输、对讲、回放等跟流媒体相关的业务,视频设备需要接入此 SDK,依赖 IoTSDK 进行信令传输视频设备必选

根据不同应用场景,RTCX-设备 SDK 的使用方式有所不同,主要包含以下场景,用户可以根据自己设备类型自主选择适合的方案。

  1. 普通IOT设备(无音视频功能),只需要在主控芯片上集成IoTSDK即可,实现信令和物模型参数处理,如下图所示

图片无法显示

  1. 长上电IPC设备(或者wifi芯片仅支持保活功能的低功耗设备),在主控芯片上集成IoTSDK和StreamSDK,如下图所示

图片无法显示

  1. 低功耗设备(信令/流媒体分离方案),需要集成IoTSDK和StreamSDK,IoTSDK和StreamSDK运行在不同芯片上,需要厂商通过SPI/SDIO等方式交换两个SDK的回调数据,详情请参考低功耗SDK接入章节

图片无法显示

名词解释

设备接入RTCX-设备SDK之前,需要从RTCX控制台获取以下信息:

名词
说明
ProductKey
产品 key,和产品型号对应,需烧录到设备或固件中
DeviceName
设备唯一标识符,需烧录到设备中
DeviceSecret
设备秘钥,需烧录到设备中

准备工作

厂商开始对接 SDK 之前需要做以下准备工作:

  1. 登录控制台网站,创建产品信息,物模型参数信息,以及申请 ProductKey/DeviceName/DeviceSecret 三元组信息(详细流程参考控制台相关文档创建产品
  2. 厂商提供 IOT 设备芯片对应的编译工具链,给到平台方,如有特殊编译参数要求,需要一并列出
  3. 平台方收到编译工具链之后,会编译相应版本的设备 SDK 以及 SDKdemo 程序,最终打包一起发出(打包中的内容下面会有详细描述)
  4. 如果是低功耗设备,wifi 芯片上的编译工具链也需要提供,并且注明采用的是代理方案还是信令流媒体分离方案,平台方会根据不同的方案编译不同的SDK

系统要求&环境配置

项目
限制条件
资源占用情况

ROM:大约1.8MB左右的 ROM 存储,压缩后约0.9MB。
RAM:和码流大小有关,具体大小可以通过参数控制,一般不超过7MB
平台支持
IoTSDK:嵌入式Linux环境或者LiteOS/RTOS环境,纯C实现
StreamSDK:嵌入式Linux环境,需要支持 C++11 标准(GCC 版本 4.8 及以上)
运行依赖
StreamSDK 依赖于 IoTSDK 传递信令,因此您如果需要使用 StreamSDK 的功能,必须先集成 IoTSDK
SDK(StreamSDK)内部依赖库

SDK 内部依赖的开源库主要包括:
1. mbedtls-2.28.9
2. libcurl-7.78.0
3. jsoncpp-1.9.3
4. zlib-1.2.11
5.c-ares-1.10.0