| 设备网络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);
}
}
}
//......