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 |
处理结果:
|
异常处理
无。
约束说明
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; } …