设备分享

更新时间:2024-02-20 01:52:54下载pdf

Matter 分享功能是指不同厂家的 App 开启分享后,其他厂家的 App 可以通过该 App 产生的二维码或者配对码进行再次配网,允许多个 App 同时使用同一个设备。

TuyaOS Matter Over Thread SDK 已经集成分享功能。

分享流程

App 1App 2:支持 Matter 能力的涂鸦智能 App、Apple Home、Google Home、Alexa Home 等。
设备:Matter 设备。

App 1设备App 2开启允许配网窗口开启成功,展示二维码或者手动配对码扫描二维码或者输入配对码建立 PASE 安全会话通道获取设备证书信息校验设备是否认证 Matter 设备配置网络信息通过 CASE 建立安全会话通道获取设备信息配网成功App 1设备App 2

API 说明

网络状态回调接口

VOID_T network_change_callback(MATTER_EVT_E event, PVOID_T parg)
{
    switch(event)
    {
        case MATTER_EVT_POWER_ON:
        if(tal_matter_status_get() == MATTER_ST_POWER_ON_CONNECTED)
        {
            TUYA_LOG("### MATTER_ST_POWER_ON_CONNECTED ### ");
            ty_led_action_on(NET_LED_INDEX);
        }else if(tal_matter_status_get() == MATTER_ST_POWER_ON_UNCONNECTED)
        {
            TUYA_LOG("### MATTER_ST_POWER_ON_UNCONNECTED ### ");
            ty_led_action_off(NET_LED_INDEX);
        }
        break;
        case MATTER_EVT_COMMISSION_START:
            if(tal_matter_status_get() == MATTER_ST_CONNECTED)
            {
                TUYA_LOG("### Sharing device  MATTER_EVT_COMMISSION_START ### ");
            }
            else
            {
                TUYA_LOG("### MATTER_EVT_COMMISSION_START ### ");
            }
            ty_led_action_blink(NET_LED_INDEX, 1000, 1000, 0xffff, LED_OFF);
        break;
        case MATTER_EVT_COMMISSION_OK:
            if(tal_matter_status_get() == MATTER_ST_CONNECTED)
            {
                TUYA_LOG("### Sharing device MATTER_EVT_COMMISSION_OK ### ");
            }
            else
            {
                TUYA_LOG("### MATTER_EVT_COMMISSION_OK ### ");
            }
            ty_led_action_on(NET_LED_INDEX);
        break;
        case MATTER_EVT_COMMISSION_FAILED:
            if(tal_matter_status_get() == MATTER_ST_CONNECTED)
            {
                TUYA_LOG("### Sharing device MATTER_EVT_COMMISSION_FAILED ### ");
            }
            else
            {
                TUYA_LOG("### MATTER_EVT_COMMISSION_FAILED ### ");
            }
            ty_led_action_off(NET_LED_INDEX);
        break; 
        case MATTER_EVT_RESET_FACTORY_NEW:
            TUYA_LOG("### MATTER_EVT_RESET_FACTORY_NEW ### ");
            ty_led_action_blink(NET_LED_INDEX, 250, 250, 0xffff, LED_OFF);
        break;  
        case MATTER_EVT_REMOVE_FABRIC:
            TUYA_LOG("### MATTER_EVT_REMOVE_FABRIC %d ### ",tal_get_fabric_num());
        break;  
        default:
        break;     
    }
}

可以通过状态 MATTER_EVT_COMMISSION_STARTMATTER_EVT_COMMISSION_OKMATTER_EVT_COMMISSION_FAILED 中调用 MATTER_STATUS_E tal_matter_status_get(VOID_T) 函数,如果返回值为 MATTER_ST_CONNECTED,说明设备在正在分享。

  • MATTER_EVT_COMMISSION_START:开启分享
  • MATTER_EVT_COMMISSION_OK:分享成功
  • MATTER_EVT_COMMISSION_FAILED:分享失败

详情可以参考 Matter 网络相关函数

支持与帮助

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