下载
中文
注册

dcmi_get_device_sensor_info接口原型

函数原型

int dcmi_get_device_sensor_info(int card_id, int device_id, enum dcmi_manager_sensor_id sensor_id, union dcmi_sensor_info *sensor_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]。

sensor_id

输入

enum dcmi_manager_sensor_id

enum dcmi_manager_sensor_id {

DCMI_CLUSTER_TEMP_ID = 0,

DCMI_PERI_TEMP_ID = 1,

DCMI_AICORE0_TEMP_ID,

DCMI_AICORE1_TEMP_ID,

DCMI_AICORE_LIMIT_ID,

DCMI_AICORE_TOTAL_PER_ID,

DCMI_AICORE_ELIM_PER_ID,

DCMI_AICORE_BASE_FREQ_ID,

DCMI_NPU_DDR_FREQ_ID,

DCMI_THERMAL_THRESHOLD_ID,

DCMI_NTC_TEMP_ID,

DCMI_SOC_TEMP_ID,

DCMI_FP_TEMP_ID,

DCMI_N_DIE_TEMP_ID,

DCMI_HBM_TEMP_ID,

DCMI_SENSOR_INVALID_ID = 255

};

指定传感器索引,具体如下值:

0:DCMI_CLUSTER_TEMP_ID,表示CLUSTER温度;返回值对应输出联合体中的uchar成员;

1:DCMI_PERI_TEMP_ID,表示PERI温度;返回值对应输出联合体中的uchar成员;

2:DCMI_AICORE0_TEMP_ID,表示AICORE0温度;返回值对应输出联合体中的uchar成员;

3:DCMI_AICORE1_TEMP_ID,表示AICORE1温度;返回值对应输出联合体中的uchar成员;

4:DCMI_AICORE_LIMIT_ID,AICORE限核状态返回结果是0,不限核返回结果是1;返回值对应输出联合体中的uchar成员;

5:DCMI_AICORE_TOTAL_PER_ID,表示AICORE脉冲总周期;返回值对应输出联合体中的uchar成员;

6:DCMI_AICORE_ELIM_PER_ID,表示AICORE可消除周期;返回值对应输出联合体中的uchar成员;

7:DCMI_AICORE_BASE_FREQ_ID,表示AICORE基准频率MHz;返回值对应输出联合体中的ushort成员;

8:DCMI_NPU_DDR_FREQ_ID,表示DDR频率单位MHz;返回值对应输出联合体中的ushort成员;

9:DCMI_THERMAL_THRESHOLD_ID,返回值对应输出联合体中的temp[2]成员;temp[0]为温饱限频温度,temp[1]为系统复位温度;

10:DCMI_NTC_TEMP_ID,返回值对应输出联合体中的ntc_tmp[4]成员;ntc_tmp[0] ntc_tmp[1] ntc_tmp[2] ntc_tmp[3]分别对应四个热敏电阻温度。

11:DCMI_SOC_TEMP_ID,表示SOC最高温;返回值对应输出联合体中的uchar成员;

12:DCMI_FP_TEMP_ID,表示光模块最高温度;返回值对应输出联合体中的signed int iint成员;

13:DCMI_N_DIE_TEMP_ID,表示N_DIE温度;返回值对应输出联合体中的signed int iint成员;

14:DCMI_HBM_TEMP_ID,表示片上内存最高温度;返回值对应输出联合体中的signed int iint成员。

该场景支持0、1、2、7、8、11。

sensor_info

输出

union dcmi_sensor_info *

返回传感器结构体信息:

union dcmi_sensor_info {

unsigned char uchar;

unsigned short ushort;

unsigned int uint;

signed int iint;

signed char temp[DCMI_SENSOR_TEMP_LEN];

signed int ntc_tmp[DCMI_SENSOR_NTC_TEMP_LEN];

unsigned int data[DCMI_SENSOR_DATA_MAX_LEN];

};

返回值

类型

描述

int

处理结果:

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

异常处理

无。

约束说明

表1 部署场景

Linux物理机

Linux物理机容器

root用户

运行用户组(非root用户)

root用户

Y

Y

Y

调用示例

… 
int ret = 0;
int card_id = 0;
int device_id = 0;
enum dcmi_manager_sensor_id sensor_id = DCMI_CLUSTER_TEMP_ID;
union dcmi_sensor_info sensor_info = {0};
ret = dcmi_get_device_sensor_info(card_id, device_id, sensor_id, &sensor_info);
if (ret != 0){
    //todo:记录日志
    return ret;
}
…