T5_3.13.8版本,请问t5支持app跟设备直接传输文件吗?

Wi-Fi 设备、蜂窝设备、WuKongAI、开发板、TuyaOS 移植等


Post Reply
chen12
Posts: 82

T5_3.13.8目前支持app跟设备直接传输文件吗,比如app直接传输图片等内容给设备,有相关的接口吗

fangweng
Posts: 24

Re: T5_3.13.8版本,请问t5支持app跟设备直接传输文件吗?

T5_3.13.8版本,请问t5支持app跟设备直接传输文件吗?


结论:支持。T5 的 TuyaOS 基线里 svc_lan 组件自带「局域网文件传输」(tuya_lan_file),App 与设备在同一局域网时可以直接传图片等大文件,业务侧接口是 tuya_lan_file_set_cfg();跨网/远程场景则只能走「云端中转 + DP 下发 URL」的自建方案。

原理(出处:components/svc_lan/README_CN.md §13)

  • DP 通道只适合几 KB 的结构化数据,图片走 DP 太贵,所以拆成两层通道
  • 控制通道:复用核心 LAN 的 TCP 6668,命令封装在 FRM_TYPE_LAN_FILE=0x26
  • 数据通道:HTTPS(设备默认端口 7443)做 chunked PUT/GET,默认 4 KB 分块,支持断点/限速
  • App→设备:App 发 LFC_PRINT_APP_PIC(6) / LFC_AI_TRAIN(8),设备向 App 侧 HTTPS 服务发起 GET 把文件拉回本地存储(相框、打印机、AI 训练数据都走这套)
  • 设备→AppLFC_GET_MEDIA_DATA(3) 等,设备读文件后分块 PUT 给 App

业务侧只需注册回调,收命令、报能力即可:

Code: Select all

STATIC OPERATE_RET my_lan_file_cb(LAN_FILE_TRANS_REQ_T *req,
                                  LAN_FILE_TRANS_RESP_T **resp)
{
    switch (req->cmd) {
    case LFC_QUERY_ABILITY:  /* 报能力:分块大小/格式等 */
    case LFC_PRINT_APP_PIC:  /* App 下发图片,框架自动 GET 拉取 */
    default:
        break;
    }
    return OPRT_OK;
}

/* 在 tuya_svc_lan_init 之后调用 */
tuya_lan_file_set_cfg(my_lan_file_cb);

各路径对比

路径方向适用场景
tuya_lan_file(0x26 + HTTPS)双向同一局域网,图片/媒体等大文件
string/raw 型 DPApp→设备小数据(几 KB 内)
云端中转:App 上传→DP 下发 URL→设备 HTTP 下载App→设备远程/跨网,需自建

两点注意:一是 LAN 文件传输要 App 端协议配合(涂鸦相框/打印机类面板已支持,自建面板需 App 侧对接);二是 3.13.8 里若裁剪过 svc_lan,先在 SDK include 里确认 tuya_lan_file_set_cfg 是否存在,没有的话点卡片上的「🔍 查代码」我可以帮你全量确认。


以上内容由 AI 自动分析生成,如有疑问请回复补充。

Post Reply