下载
中文
注册

带内复位调用示例

#include <stdio.h>
#include "dcmi_interface_api.h"
#define MAX_CARD_NUMBER (16)
#define NPU_OK (0)
int main()
{
    int ret;
    int card_count = 0;
    int device_count = 0;
    int card_id;
    int card_id_list[8] = {0};
    int device_id;
    enum dcmi_reset_channel inband_channel = INBAND_CHANNEL;

    ret = dcmi_init();
    if (ret != NPU_OK) {
        printf("Failed to init dcmi.\n");
        return ret;
    }
    ret = dcmi_get_card_num_list(&card_count, card_id_list, MAX_CARD_NUMBER);
    if (ret != NPU_OK)
    {
        printf("Failed to get card number,ret is %d\n",ret);
        return ret;
    }
    for (card_id = 0; card_id < card_count; card_id++)
    {
        ret = dcmi_get_device_num_in_card(card_id_list[card_id], &device_count);
        if(ret != NPU_OK) {
           printf("dcmi_get_device_num_in_card failed! card_id is %d ,ret: %d\n", card_id_list[card_id], ret);
            return ret;
        }
        for (device_id = 0; device_id <= device_count; device_id++)
        {
            // 复位
            ret = dcmi_set_device_reset(card_id_list[card_id], device_id, inband_channel);
            if(ret != NPU_OK) {
                if (device_id == device_count) {
                    if (ret == -8255) {
                        printf("dcmi_set_device_reset fail! card_id is %d , device_id is %d, channel_type: %d, ret: %d\n", card_id_list[card_id], device_id, inband_channel, ret);
                    } else {
                        printf("dcmi_set_device_reset fail! card_id is %d , device_id is %d, channel_type: %d, ret: %d\n", card_id_list[card_id], device_id, inband_channel, ret);
                    }
                } else {
                    printf("dcmi_set_device_reset fail! card_id is %d , device_id is %d, channel_type: %d, ret: %d\n", card_id_list[card_id], device_id, inband_channel, ret);
                }
            } else {
                printf("dcmi_set_device_reset successful! card_id is %d, device_id:%d, channel_type: %d\n", card_id_list[card_id], device_id, inband_channel);
            }
        }
    }
    return 0;
}