本地重置

更新时间:2024-04-17 06:14:55下载pdf

本文介绍蓝牙子设备的本地重置功能。

概念介绍

通过设备本地的按键或者指令触发设备恢复到出厂状态,删除配网相关信息。本地重置后,设备恢复到未配网状态。

数据结构

tuya_ble_reset_type_t

typedef enum {
    RESET_TYPE_UNBIND,
    RESET_TYPE_FACTORY_RESET,
} tuya_ble_reset_type_t;
  • RESET_TYPE_UNBIND:本地解绑。

  • RESET_TYPE_FACTORY_RESET:本地恢复出厂设置。

tuya_ble_unbind_reset_response_data_t

typedef struct {
    tuya_ble_reset_type_t type;
    UINT8_T status;     //0-succeed,1-failed.
} tuya_ble_unbind_reset_response_data_t;
  • type:详见 tuya_ble_reset_type_t

  • status0 表示成功,1 表示失败。

接口说明

本地解绑

接口说明

设备恢复到未配网状态后,再次配网,云端信息保留。

tuya_ble_status_t tuya_ble_device_unbind(VOID_T);

本地恢复出厂设置

接口说明

设备恢复到未配网状态后,再次配网,云端信息清空。

tuya_ble_status_t tuya_ble_device_factory_reset(VOID_T);

触发事件

case TUYA_BLE_CB_EVT_UNBIND_RESET_RESPONSE: {
    if (event->reset_response_data.type == RESET_TYPE_UNBIND) {
        if (event->reset_response_data.status == 0) {
            // 本地解绑触发的事件
        }
    } else if (event->reset_response_data.type == RESET_TYPE_FACTORY_RESET) {
        if (event->reset_response_data.status == 0) {
            // 本地恢复出厂设置触发的事件
        }
    }
} break;

使用方法

通信流程

本地重置

代码开发

TUYA_WEAK_ATTRIBUTE OPERATE_RET test_group_system(UINT8_T cmd, UINT8_T *cmd_data, UINT32_T cmd_data_len, UINT8_T *p_rsp_data)
{
    TEST_GROUP_VARIABLE

    switch (cmd) {
        …………

        case TEST_CID_FACTORY_RESET: {
            if (cmd_data[0] == 0) {
                ret = tuya_ble_device_unbind();
            } else if (cmd_data[0] == 1) {
                ret = tuya_ble_device_factory_reset();
            } else {
                ret = OPRT_NOT_SUPPORTED;
            }
            TEST_RSP
        } break;

        …………

        default: {
        } break;
    }

    return idx;
}

VOID_T tal_sdk_test_ble_protocol_callback(tuya_ble_cb_evt_param_t* event)
{
#if (TUYA_BLE_FEATURE_IOT_CHANNEL_ENABLE != 0) && (TUYA_BLE_FEATURE_SCENE_ENABLE != 0)
    UINT8_T *rsp_buf = NULL;
    UINT16_T rsp_buf_len = 0;
#endif

    switch (event->evt) {
        …………

        case TUYA_BLE_CB_EVT_UNBIND_RESET_RESPONSE: {
            if (event->reset_response_data.type == RESET_TYPE_UNBIND) {
                if (event->reset_response_data.status == 0) {
                    tal_sdk_test_unbind_mode_rsp(3);
                }
            } else if (event->reset_response_data.type == RESET_TYPE_FACTORY_RESET) {
                if (event->reset_response_data.status == 0) {
                    tal_sdk_test_unbind_mode_rsp(4);
                }
            }
        } break;

        …………

        default: {
        } break;
    }
}

功能测试

前置条件

  • 您已经下载了智能生活 App。
  • 确认您的设备已完成配网。

操作步骤

通过上位机(模拟实际产品)和手机 App 进行数据交互。

本地解绑

本地重置

本地恢复出厂设置

本地重置

上位机使用的相关问题,请访问 Logic 上位机使用指南

支持与帮助

如果在开发过程遇到问题,您可以登录 TuyaOS 开发者论坛 TuyaOS-蓝牙设备开发 版块进行沟通咨询。

咨询前,建议首先查阅 官方资料 或参考已有帖子,并认真阅读 发帖规范