设备网络SDK开发使用手册 |
热度图数据查询结果结构体。
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;
查找的时候会有空间热度图(即图片信息),第一次调用接口先获取结构体(NET_DVR_HEATMAP_INFO)信息,再判断字段dwHeatMapPicLen是否大于0(即是否存在图片信息),若存在图片数据,根据dwHeatMapPicLen的值申请内存(pBuffer),然后再次调用NET_DVR_GetNextRemoteConfig接口获取图片数据(接口内的末尾参数lpOutBuff为申请的图片内存的长度)。
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); } } } //......