设备网络SDK开发使用手册

NET_DVR_HEATMAP_INFO

热度图数据查询结果结构体。

struct{ 
  DWORD              dwSize; 
  NET_DVR_TIME_EX    struStartTime; 
  NET_DVR_TIME_EX    struEndTime; 
  DWORD              dwHeatMapPicLen; 
  BYTE               *pBuffer; 
  DWORD              dwTimeHeatMapValue; 
  DWORD              dwHeatMapMaxValue; 
  DWORD              dwHeatMapMinValue; 
  BYTE               byRes[116]; 
}NET_DVR_HEATMAP_INFO, *LPNET_DVR_HEATMAP_INFO;

Members

dwSize
结构体大小
struStartTime
开始时间
struEndTime
结束时间
dwHeatMapPicLen
空间热度图片长度(当含有图片的时候,该字段为非0;没有图片的时候,该字段为0)
pBuffer
热度图片数据信息
dwTimeHeatMapValue
时间热度值,取值范围:0~255
dwHeatMapMaxValue
检测区域最高热度点人员活动时间(空间热度图时有效),单位:秒(s)
dwHeatMapMinValue
检测区域最低热度点人员活动时间(空间热度图时有效),单位:秒(s)
byRes
保留

Remarks

查找的时候会有空间热度图(即图片信息),第一次调用接口先获取结构体(NET_DVR_HEATMAP_INFO)信息,再判断字段dwHeatMapPicLen是否大于0(即是否存在图片信息),若存在图片数据,根据dwHeatMapPicLen的值申请内存(pBuffer),然后再次调用NET_DVR_GetNextRemoteConfig接口获取图片数据(接口内的末尾参数lpOutBuff为申请的图片内存的长度)。

See Also

NET_DVR_GetNextRemoteConfig

Example

iRet = NET_DVR_GetNextRemoteConfig(pThis->m_lHandle, &pThis->m_pStruHeatMapInfo[pThis->m_iStruCount], sizeof(NET_DVR_HEATMAP_INFO)); 
if (iRet == NET_SDK_GET_NEXT_STATUS_SUCCESS)
{
     int iBuffLen = pThis->m_pStruHeatMapInfo[pThis->m_iStruCount].dwHeatMapPicLen;
     sBuffAll = new char[iBuffLen + sizeof(NET_DVR_HEATMAP_INFO)];
     memset(sBuffAll, 0, sizeof(*sBuffAll));  
     memcpy(sBuffAll, &pThis->m_pStruHeatMapInfo[pThis->m_iStruCount], sizeof(NET_DVR_HEATMAP_INFO));         
     if (pThis->m_pStruHeatMapInfo[pThis->m_iStruCount].dwHeatMapPicLen > 0)
     {       
          sBuff = new char[pThis->m_pStruHeatMapInfo[pThis->m_iStruCount].dwHeatMapPicLen];
          memset(sBuff, 0, sizeof(*sBuff));
          iRet = NET_DVR_GetNextRemoteConfig(pThis->m_lHandle, sBuff, iBuffLen); 
          if (NULL != sBuff)
          {
                memcpy(sBuffAll + sizeof(NET_DVR_HEATMAP_INFO), sBuff, iBuffLen);    
          }
      }
}
//......