更新时间:2024-12-03 09:21:45下载pdf
本文介绍激光扫地机 Demo 如何编译、如何运行程序以及验证基础功能。
在 Visual Studio Code 的 Tuya Wind IDE 上,以 TuyaOS SDK 开发模式,获取基于 X86_64
开发平台的类型开发包。更多信息,参考 获取开发资料。
software/TuyaOS
目录结构及顶层文件简介如下:
名称 | 说明 |
---|---|
apps | 应用代码。 |
build | 编译配置目录,存放编译配置文件,您无需关注。 |
include | 头文件。 |
libs | 库文件。 |
Makefile | Makefile 文件。 |
output | 编译产物输出目录。 |
scripts | 编译框架,您无需关注。 |
vendor | 开发环境,开发环境是执行编译时在线下载到本地的。 |
build_app.sh | 编译脚本。 |
将您在 涂鸦开发者平台 上创建的激光扫地机产品的 PID、UUID 和 KEY 填入到如下内容中:
您填入的 UUID 不能与其它设备重复,保证唯一性。
/*******pid uuid authkey 此处仅供测试使用************/
CHAR_T s_ty_pid[64]= "PID 值"; //设备 PID,需要使用设备自身的 PID。
CHAR_T s_ty_uuid[64]="UUID 值";//设置 UUID,按照授权信息填写。注意 UUID 是与设备绑定的,具有唯一性。
CHAR_T s_ty_authkey[64]="KEY 值";//设置 Authkey,按照授权信息填写。注意 Authkey 是与 UUID 一一对应。
/*******pid uuid authkey 此处仅供测试使用************/
创建一个可以断电保存的存储路径,用来保存设备配网激活等相关参数,实现方式如下:
#define TY_APP_STORAGE_PATH "/tmp/" //测试使用虚拟存储路径
#define TY_SDK_ONLINE_LOG_PATH "/tmp/" //测试使用虚拟存储路径
/*准备文件系统读写存储路径,真实的设备需要填写设备本地分配的路径*/
TY_INIT_PARAMS_S init_param = {0};
init_param.init_db = TRUE;
strcpy(init_param.sys_env, TARGET_PLATFORM);
strcpy(init_param.log_seq_path, TY_SDK_ONLINE_LOG_PATH); //SDK 在线日志保存的路径
TUYA_CALL_ERR_LOG(tuya_iot_init_params(TY_APP_STORAGE_PATH, &init_param));//SDK DATA_BASE 文件存储路径
在 Tuya Wind IDE 界面上选择 software/TuyaOS/apps/
下的 Demo 目录,单击鼠标右键,选择菜单 Build Project 一键编译。
输入版本号(格式为 X.X.X
,其中 X
是任意数字)后,按回车键,即开始编译。
在 software/TuyaOS/
目录下输入:
./build_app.sh $1 $2 $3 $4
其中,
$1
:应用工程路径,例如 apps/tuyaos_demo_robot/
$2
:生成的应用工程名,例如 tuyaos_demo_robot
$3
:版本号,三段式格式 XX.XX.XX
,例如 1.0.0
$4
:用户指令 (可选),例如 clean
在 software/TuyaOS/
目录下命令行输入 make
,选择要编译的应用程序。
启动命令推荐:
./output/x86_64_tuyaos_demo_robot/firmware/tuyaos_demo_robot -m 0 -t AYGFnn3je2Fi7I -r ./apps/tuyaos_demo_robot
m
:对应模式。Demo 运行请选择 AP 配网,对应的值为 0
。
/* Tuya SDK definition of Wi-Fi start mode */
typedef BYTE_T GW_WF_START_MODE;
#define WF_START_AP_ONLY 0 // only have ap-cfg mode
#define WF_START_SMART_ONLY 1 // only have smart-cfg mode
#define WF_START_AP_FIRST 2 // have both ap-cfg and smart-cfg. default is ap-cfg mode
#define WF_START_SMART_FIRST 3 // have both ap-cfg and smart-cfg. default is smart-cfg mode
#define WF_START_SMART_AP_CONCURRENT 4 // ap-cfg and smart-cfg is concurrent
t
:传入指定 Token。
{"s":"N234","p":"12345678","t":"AYAq3v9OLa4FN9"}
其中 t
对应的内容是 Token。
Token 的有效期为 10 分钟,且配网成功后就会失效。再次配网时,需要重新获取 Token。
您填入的 Token 只是 Demo 测试用,实际产品开发时,您无需传入 Token 值。
r
:源文件目录。
需上报的地图、路径等数据所在目录。Demo 已经实现,您无需修改。
本章节主要验证 Demo 的基础功能。在此之前,需要关注如下函数。这些函数注册到 TuyaOS SDK 里,进行状态或者数据的接收。
函数 | 说明 |
---|---|
ty_sdk_net_status_change_cb | Wi-Fi 状态回调函数 |
tuya_sweeper_event_cb | 实时地图及路径传输的状态回调函数 |
ty_cmd_handle_dp_cmd_objs | Obj DP 交互功能 |
ty_cmd_handle_dp_raw_objs | Raw DP 交互功能 |
ty_user_upgrade_inform_cb | OTA 升级调用的回调函数 |
ty_dev_upgrade_pre_check_cb | OTA 升级前检查回调函数 |
ty_sdk_app_reset_cb | App 移除回调函数 |
设备配网及云端接入成功之后,手机 App 上显示图标如下:
您可以根据 ty_sdk_net_status_change_cb
函数回调的状态判断是否接入云端,日志交互的打印如下:
进入面板之后,开始实时地图及路径传输,首页界面如下:
实时地图及路径数据上报,是需要在 tuya_sweeper_event_cb
回调里获取到下载事件,并进行异步上报,实时地图及路径上报的日志如下:
Obj DP 交互验证,在手机端单击开始清扫的按钮,首页界面如下:
Obj DP 交互使用 ty_cmd_handle_dp_cmd_objs
回调函数,手机 App 下发的 DP 需要得到设备端正确的回复,手机 App 才会相对应的显示。日志打印如下:
Raw DP 交互验证,在手机端单击指哪扫哪清扫,首页界面如下:
Raw DP 交互使用 ty_cmd_handle_dp_raw_objs
回调函数,Raw 数据格式使用 涂鸦激光扫地机协议(字节格式)及相关逻辑说明,您可以找您的涂鸦项目经理获取。日志打印如下:
设备 OTA 升级,参考 固件管理,填写固件信息。之后,App 会提示有可升级固件及更新如下:
OTA 升级使用 ty_user_upgrade_inform_cb
回调来接收数据,日志打印如下:
设备移除功能,您可以长按 App 上的扫地机图标,出现界面如下:
移除设备调用的是 ty_sdk_app_reset_cb
接口,设备移除成功后,日志打印如下:
历史数据上报功能,需要您在程序运行的终端中输入 oss_map
指令,子命令选择 6
清扫记录上报,界面显示如下:
其它相关的历史数据上报功能,参考 Demo 的注释进行验证。清扫记录日志打印如下:
语音文件下载功能,需要您在程序运行的终端中输入 download_demo
指令,相关日志打印如下:
音视频功能测试,需要开发者的产品 PID 带有音视频能力,可参考音视频能力开启该功能。设备上线后,开发者进入面板点击视频入口,可预览视频。
其他功能,请参考 Demo 上的注释开发者自行验证。
该内容对您有帮助吗?
是意见反馈该内容对您有帮助吗?
是意见反馈