局域网控制

更新时间:2023-12-19 08:36:58下载pdf

局域网(Local Area Network,LAN)是指由两个或两个以上相连的计算机组成。家庭网络就是一个小型的局域网,包含电脑、手机、智能设备等,他们共同连接到路由器上。本文所说的局域网是指手机和 Wi-Fi 设备连在同一个 Wi-Fi 无线网络下。

功能描述

局域网控制主要有以下重要步骤:

  • 发现设备

    1. 首先设备在连接上路由器之后,设备作为一个客户端会通过 UDP 以一定时间间隔广播设备信息。
    2. 当 App 连接上路由器并打开目标设备的控制界面时,App 作为一个服务器端会监听广播信息。
    3. 如果 App 发现收到广播包中的设备信息,和当前控制界面的目标设备信息一致,即代表了 App 发现了目标设备。
  • 完成连接

    1. App 在局域网中发现了目标设备后,向设备发起 TCP 连接。
    2. 设备监听到 App 的连接请求后,会接收连接请求。
    3. 局域网内单个设备同时连接的 App 数量有限(一般默认是 3 个),当数量达到限制后,设备会停止发送 UDP 广播包。
  • 数据交互

    1. 如果 App 需要下发 DP 控制指令会优先通过局域网发送。
    2. 当设备状态发生改变时,会通过局域网发送当前的 DP 状态。

交互流程

App设备连上路由进入目标设备控制界面监听 UDP 广播包信息定时发送 UDP 广播包监听 TCP 连接收到目标设备的广播包发起 TCP 连接完成局域网连接停止 UDP 广播包opt[连接数量达-到限制]下发控制发送 TCP 数据返回 ACK设备状态发生改变发送 TCP 数据返回 ACK更新显示的设备状态App设备

开发指导

运行环境

由于每个模组上的资源不一样,并不会打开所有功能,您需要检查 tuya_iot_config.h 确认如下宏定义是否定义:

#define ENABLE_TUYA_LAN 1

使用方法

已经激活的设备连上路由后,框架会自动管理局域网相关流程。如果没有什么特殊需求,您无需关心局域网控制的处理流程。

API 说明

关闭局域网

框架默认是开启局域网功能的。如果您不想要局域网这个功能,可以通过调用该接口手动关闭局域网。

/**
 * @brief Disable LAN service
 *
 * @return OPRT_OK on success. Others on error, please refer to tuya_error_code.h
 */
OPERATE_RET tuya_svc_lan_disable(VOID);

打开局域网

您调用接口关闭局域网后,还是可以调用接口再度打开局域网。

/**
 * @brief Enable LAN service
 *
 * @return OPRT_OK on success. Others on error, please refer to tuya_error_code.h
 */
OPERATE_RET tuya_svc_lan_enable(VOID);

常见问题

多长时间未操作设备,局域网连接会断开?

默认 30 秒未操作设备,局域网的 Socket 会断开。

设备最多支持多少个客户端连接?

默认最多连接 3 个客户端。