SDK 开发指南

本文介绍了涂鸦 IPC 嵌入式 SDK 的开发流程,从运行 SDK Demo 开始,将开发中所需要的资料串联。您可根据实际需要进行具体功能的开发,可查看对应方案的开发说明,适用于开发者快速入门。

名词解释

名词 说明
配网 网络连接的过程,建立设备、手机 App、涂鸦 IoT 之间的通信链路。
产品ID 即 PID(Product ID),PID关联了产品具有的功能点,用来标示某一类产品。同一种类型的 IPC 设备共享同一个 PID。
UUID 即通用唯一识别码(Universally Unique Identifier),由计算机随机生成的数字,保证所有 UUID 都具有唯一性。
AUTHKEY 设备的授权值,在涂鸦 IoT 上已注册能够使用涂鸦云服务的服务码。
P2P ID 点对点服务ID,3.0.0 版本以上 SDK 不需要填写 P2P ID,涂鸦 IoT 自动进行分配。
Token 在扫描二维码配网的过程中,由涂鸦 IoT 生成的标识码,具有 10 分钟的有效期。
DP 即功能点(Date Point),设备功能与涂鸦 IoT 交互的。
Chromecast 谷歌电视棒或谷歌Home Hub 实时视频传输服务。
Echo Show 亚马逊 Echo Show 音响实时视频传输服务。
IFTTT 与其他品牌商建立设备联动的服务,例如梅赛德斯奔驰。
OTA 即设备固件在线升级( Over the Air)。

SDK 目录

涂鸦 IPC 嵌入式 SDK 文件目录如下:

. └── tuya_ipc_sdk ├── include │ ├── base_hwl.h │ ├── cJSON.h │ ├── tuya_cloud_base_defs.h │ ├── tuya_cloud_com_defs.h │ ├── tuya_cloud_error_code.h │ ├── tuya_cloud_types.h │ ├── tuya_cloud_wifi_defs.h │ ├── tuya_g711_utils.h │ ├── tuya_iot_config.h │ ├── tuya_ipc_ai_detect_storage.h │ ├── tuya_ipc_ai_face_db.h │ ├── tuya_ipc_ai_face_detect.h │ ├── tuya_ipc_api.h │ ├── tuya_ipc_chromecast.h │ ├── tuya_ipc_cloud_storage.h │ ├── tuya_ipc_echo_show.h │ ├── tuya_ipc_img_defs.h │ ├── tuya_ipc_img_proc.h │ ├── tuya_ipc_media.h │ ├── tuya_ipc_mqt_proccess.h │ ├── tuya_ipc_p2p.h │ ├── tuya_ipc_ptz.h │ ├── tuya_ipc_qrcode_proc.h │ ├── tuya_ipc_skill.h │ ├── tuya_ipc_stream_storage.h │ ├── tuya_ipc_video_msg.h │ ├── tuya_ipc_video_proc.h │ ├── tuya_ipc_webrtc.h │ ├── tuya_ipc_wifi_migrate.h │ ├── tuya_ring_buffer.h │ ├── uni_network.h │ └── wifi_hwl.h └── libs ├── libmbedtls.a └── libtuya_ipc.a

业务流程

获取到 SDK 后,您首先需要进行SDK服务注册。注册操作通过SDK配网模组建立,服务通道建立成功,用户可以将设备的音视频信息按照格式要求送入SDK开辟的缓存中,至此用户无需关心后续的操作。

可通过App端进行操控设备。基于原始的的音视频数据,SDK结合手机端App可以实现设备的存储功能、点对点传输服务以及其他的第三方接入功能,例如亚马逊 EchoShow 和谷歌 ChromeCast 接入功能。

图片1.png

快速体验

您可以根据以下流程快速体验涂鸦 IPC SDK 功能:

  1. 登录 涂鸦 IoT 平台创建产品。
  2. 获取涂鸦 IPC SDK 包。
  3. 在 App Store 等应用市场下载涂鸦智能 app。
  4. 在 Linux 系统中做简单适配。
  5. 运行 Demo,手机移动端直观体验。

第一步:创建产品

创建产品的详细步骤可参考 选品类创建产品

  1. 登录 涂鸦 IoT 平台
  2. 选择 安防监控 > 云台摄像机,选择自定义方案,输入输入产品名称和型号等信息。
  3. 根据产品所需,添加功能点。
    image.png
  4. 硬件开发 阶段,选择芯片平台和模组名称。
  5. 根据页面提示,您可以获取免费的激活码。
  6. 选择了激活码后,等待生成免费授权码。
  7. 短信收到后,点击订单详情。
  8. 产品创建成功,并获得10组试用的授权信息。

第二步:获取 IPC SDK

请登录 GitHub 下载 SDK。

第三步:运行 Demo

通过运行 Demo,您可以快速体验涂鸦 IPC SDK 功能。

  1. 按照 Demo 使用说明,下载Demo 代码到本地。

    #git clone https://github.com/tuya/tuya-iotos-embeded-multimedia-demo.git
    
  2. 将下载的 SDK 解压到demo_for_ipc/sdk目录下,生成可执行程序。

    #cd demo_for_ipc #make APP_NAME=demo
  3. 手机安装涂鸦智能App,选择添加摄像机,生成二维码。将二维码通过微信“扫一扫”功能。

    {“s”:“Tuya-Test”,“p”:“88888888”,“t”:“AYm1YVV5jupJcF”}

    该 Token 有 10 分钟的有效期。

  4. 执行虚拟机,体验 Demo。

    #cd output #./tuya_ipc_demo -m 2 -p [PID] -u [UUID] -a [AUTHKEY] -r "[./]" -t "[TOKEN]"
  5. 通过如下指令体验不同的功能,例如虚拟设备执行过程中,运行以下命令:

    #start

    随后,可以在消息中心产看得到一条移动侦测的上报。

    其他模拟指令说明如下表:

    指令 指令说明
    start 模拟移动侦测事件触发
    stop 模拟停止移动侦测事件
    status 获取设备激活状态
    bell 模拟门铃事件上报

SDK 配网开发

涂鸦 IPC SDK 搭建了一套完整的用以引导设备配网的函数框架,本章节阐述配网的流程以及各框架函数的用途。建议您按照文档介绍,在对应的框架函数下,实现各功能点的具体操作。

填写基本参数

Wi-Fi 快联配网

效果图

开发流程

二维码配网

AP配网

有线配网(局域网发现)

有线配网(手机扫设备二维码)

音视频开发

实时预览开发

SDK初始化时,将默认创建10秒音视频数据缓存,您将设备采集到的音视频数据送入ringbuffer即可。

SDK库文件已实现数据的发送,您不需要再做对应开发。

开发流程

本地录像开发

涂鸦SDK库文件已集成本地存储功能,您仅需要将音视频送入ringbuffer,且完成本地存储的设置即可。

因此,本节将主要介绍如何开发本地存储录像的开启与设置。

同步时间开发

本地存储开发

功能点开发

DP 主要用以控制设备的各项功能,您需要根据服务器下发的 DP 与 DP 的值,设置设备并将设置后的状态上报服务器,在tuya_ipc_utils.h文件中对通用 DP 进行了具体说明,您可以根据已有demo代码来进行开发与设置。若有定制化 DP 加入,则仿照已有的相同数据类型的 DP 代码进行添加与设置即可。

DP 数据保存与读取

OSD水印功能开发

PIR功能开发

移动侦测开发

SDK提供了控制移动侦测功能开关控制、灵敏度控制、定时控制、间歇控制以及数据上报的函数,4.4.6 SDK库文件已实现移动侦测。

以及移动追踪功能的判断,您可以调用SDK API接口完成功能移动侦测以及移动追踪功能的开发。

移动侦测开发流程(通用)

移动侦测开发流程(SDK集成)

间歇移动侦测

图像缩放开发(SDK集成)

图像缩放功能目的在于调整图像的分辨率,将采集到的图像调整至需要的目标分辨率。

图像缩放开发流程

PTZ摇头机功能开发

设备接收到服务端DP的控制指令后,控制PTZ摇头机转动

PTZ摇头机通用控制开发

摇头机 DP DP 说明
119 云台转动控制 0-右上,1-右,2-右下,3-下,4-左下,5-左,6-左上,7-上
116 云台转动停止,BOOL类型
161 移动跟踪使能开关,bool类型,true 开启,false 不开启
178 收藏点操作,string型,type:1 添加,type:2 删除,不同类型跟的数据串不同

PTZ摇头机预设位控制开发

AP预览功能开发

开启AP预览

设备时间获取

设备连接app后,app通过233 DP 下发UTC时间信息,通过234下发时区信息,设备需要调用接口:tuya_ipc_set_service_time与接口:uni_set_time_zone将UTC时间信息以及时区信息设置到SDK中,函数如下所示。

说明:时区设置传入值,例:-5:00 (纽约非夏令时)。

/* \fn OPERATE_RET tuya_ipc_set_service_time(IN TIME_T new_time_utc) \brief set time of tuya SDK \return OPERATE_RET */ OPERATE_RET tuya_ipc_set_service_time(IN TIME_T new_time_utc); /* \Function: uni_set_time_zone \Input: time_zone->"+/-hh:mm" \Output: none \ Return: none */ OPERATE_RET uni_set_time_zone(IN CONST CHAR_T *time_zone)

关闭AP预览

日志上报后台开发

门铃功能开发

本章节主要介绍门铃产品特性功能的开发,包含:低功耗休眠功能、门铃触发功能。若所开发产品不是门铃,可忽略本章节。

设备进入休眠状态

设备进入唤醒状态

低功耗设备功能启动优化

OTA功能开发

OTA作为设备升级与维护的最重要途径之一,将在本章节进行具体介绍。当有固件需要升级时,SDK将通过回调的形式告知设备,进行OTA操作。

OTA开发流程

OTA自定义进度上报开发

云存储功能开发

SDK库文件已集成云存储功能,在购买云存储服务后,SDK将ringbuffer中的音视频信息发送至涂鸦 IoT 保存,保存时间根据所购买的云存储服务而定。

开发流程

Echo show 与 chromecast 功能

Echo show 与 chromecast 功能是将摄像机采集到的音视频数据显示在亚马逊或谷歌的智能设备上。本章节将介绍具体开发流程。此类功能的开发需要您自行搭建测试环境。

设备解绑与复位

本章节主要简述设备通过App解绑与按复位键,这两种复位方式,开发中的流程与区别。

设备解绑开发流程

设备复位开发流程

AI检测功能开发

AI人形检测目的在于过滤视频中图像的变化,只有发现图像有人在移动时,才触发移动侦测报警功能。

AI检测开发流程(云端AI)

AI 检测开发流程(本地AI)

本地AI功能旨在为已具备AI识别算法的设备提供AI数据传输,标记,同步等与 App 交互的功能。

AI 检测开发流程

相关文档