昇腾社区首页
中文
注册

dcmi_set_power_state接口原型

函数原型

int dcmi_set_power_state(int card_id, int device_id, struct dcmi_power_state_info_stru power_info)

功能说明

设置系统模式。

参数说明

参数名称

输入/输出

类型

描述

card_id

输入

int

指定NPU管理单元的ID,当前实际支持的ID通过dcmi_get_card_list接口获取。

device_id

输入

int

指定设备编号,通过dcmi_get_device_id_in_card接口获取。取值范围如下:

NPU芯片:[0, device_id_max-1]。

type

输入

struct dcmi_power_state_info_stru

设置系统状态参数。

typedef enum {

DCMI_POWER_STATE_SUSPEND, //暂停

DCMI_POWER_STATE_POWEROFF, //下电

DCMI_POWER_STATE_RESET, //复位

DCMI_POWER_STATE_MAX,

} DCMI_POWER_STATE;

typedef enum {

DCMI_POWER_RESUME_MODE_BUTTON, //电源恢复模式按钮

DCMI_POWER_RESUME_MODE_TIME, //系统按时间恢复

DCMI_POWER_RESUME_MODE_MAX,

} DCMI_LP_RESUME_MODE;

#define DCMI_POWER_INFO_RESERVE_LEN 8

struct dcmi_power_state_info_stru {

DCMI_POWER_STATE type;//休眠唤醒状态

DCMI_LP_RESUME_MODE mode;//休眠唤醒模式

unsigned int value;

unsigned int reserve[DCMI_POWER_INFO_RESERVE_LEN];//保留

};

说明:
  • type的值当前仅支持DCMI_POWER_STATE_SUSPEND。
  • 默认使能button唤醒。
  • 当mode为DCMI_POWER_RESUME_MODE_TIME时,value的取值区间为[200ms,604800000ms]。

返回值

类型

描述

int

处理结果:

  • 成功:返回0。
  • 失败:返回码请参见返回码

异常处理

无。

约束说明

命令执行后设备立即进入休眠状态,休眠时间结束后自动唤醒。

表1 部署场景

Linux物理机

Linux物理机容器

root用户

运行用户组(非root用户)

root用户

Y

N

N

调用示例

...
    int ret;
    int card_id = 0;
    int device_id = 0;
    struct dcmi_power_state_info_stru power_info = {0};

    power_info.type = DCMI_POWER_STATE_SUSPEND;
    power_info.mode = DCMI_POWER_RESUME_MODE_TIME;
    power_info.value = 300;// 300ms

    ret = dcmi_set_power_state(card_id, device_id, power_info);
    if (ret) {
        // todo
    }
    // todo
...