当前位置:   article > 正文

ali_linkkit连云三大接口_ali-linkkit

ali-linkkit

文件.\src\sdk-impl\impl_linkkit.c

IOT_Linkkit_Open()创建设备id

int IOT_Linkkit_Open(iotx_linkkit_dev_type_t dev_type, iotx_linkkit_dev_meta_info_t *meta_info)

  • 输入:设备类型(主设备或从设备)、设备四元组信息,
  • 一般是创建主设备,创建成功返回IOTX_DM_LOCAL_NODE_DEVID(0)。
int IOT_Linkkit_Open(iotx_linkkit_dev_type_t dev_type, iotx_linkkit_dev_meta_info_t *meta_info)
{
    int res = 0;
    if (dev_type < 0 || dev_type >= IOTX_LINKKIT_DEV_TYPE_MAX || meta_info == NULL) {
        sdk_err("Invalid Parameter");
        return FAIL_RETURN;
    }
    switch (dev_type) {
        case IOTX_LINKKIT_DEV_TYPE_MASTER: {
            res = _iotx_linkkit_master_open(meta_info);
            if (res == SUCCESS_RETURN) {
                res = IOTX_DM_LOCAL_NODE_DEVID;
                IOT_RegisterCallback(ITE_REDIRECT, user_redirect_event_handler);
            }
        }
        break;
        case IOTX_LINKKIT_DEV_TYPE_SLAVE: {
#ifdef DEVICE_MODEL_GATEWAY
            res = _iotx_linkkit_slave_open(meta_info);
#else
            res = FAIL_RETURN;
#endif
        }
        break;
        default: {
            sdk_err("Unknown Device Type");
            res = FAIL_RETURN;
        }
        break;
    }
    return res;
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
//进一步调用关系:
static int _iotx_linkkit_master_open(iotx_linkkit_dev_meta_info_t *meta_info)
//包含ALCS、SHADOW、OTA、MESSAGE_CACHE、IPC、设备管理(dm_mgr_init())等初始化工作。
int iotx_dm_open(void)
{
	dm_msg_init();	//消息初始化
	dm_mgr_init();	//插入设备列表
	dm_client_open();	//采用COAP或MQTT连云,目前采用MQTT
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9

IOT_Linkkit_Connect(int devid)

  • 输入:设备类型(主设备或从设备)、设备四元组信息,
  • 一般是创建主设备,创建成功返回IOTX_DM_LOCAL_NODE_DEVID(0)。
int IOT_Linkkit_Connect(int devid)
{
	bk_printf("====%s(), devid=%d\n",__func__,devid);
    int res = 0;
    iotx_linkkit_ctx_t *ctx = _iotx_linkkit_get_ctx();

    if (devid < 0) {
        sdk_err("Invalid Parameter");
        return FAIL_RETURN;
    }
    if (ctx->is_opened == 0) {

        return FAIL_RETURN;
    }
    _iotx_linkkit_mutex_lock();
    if (devid == IOTX_DM_LOCAL_NODE_DEVID) {
        res = _iotx_linkkit_master_connect();
		bk_printf("====%s(),_iotx_linkkit_master_connect ret=%d\n",__func__,res);
    } else {
#ifdef DEVICE_MODEL_GATEWAY
        res = _iotx_linkkit_subdev_connect(devid, iotx_dm_subdev_connect, NULL, 0);
#else
        res = FAIL_RETURN;
#endif
    }
    _iotx_linkkit_mutex_unlock();
    return res;
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
static int _iotx_linkkit_master_connect(void)
{
    int res = 0;
    iotx_linkkit_ctx_t *ctx = _iotx_linkkit_get_ctx();
    iotx_dm_init_params_t dm_init_params;

    if (ctx->is_connected) {
        return FAIL_RETURN;
    }
    ctx->is_connected = 1;
    memset(&dm_init_params, 0, sizeof(iotx_dm_init_params_t));
    dm_init_params.event_callback = _iotx_linkkit_event_callback;

    res = iotx_dm_subscribe(IOTX_DM_LOCAL_NODE_DEVID);
    if (res != SUCCESS_RETURN) {
        sdk_err("DM Subscribe Failed");
        ctx->is_connected = 0;
        return FAIL_RETURN;
    }

    res = iotx_dm_connect(&dm_init_params);
    if (res != SUCCESS_RETURN) {
        sdk_err("DM Start Failed");		//show err
        ctx->is_connected = 0;
        return FAIL_RETURN;
    }

    //Let user event handle at last
    iotx_dm_event_types_t type = IOTX_DM_EVENT_INITIALIZED;
    _iotx_linkkit_event_callback(type, "{\"devid\":0}");

    return SUCCESS_RETURN;
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/很楠不爱3/article/detail/391348
推荐阅读
相关标签
  

闽ICP备14008679号