Exemplo n.º 1
0
inline BOOL StorFactory::StopHdfsRecord(s32 nIndex)
{
    CameraParam pParam;
    StorFactoryCameraChangeData change;
    if (nIndex <=0 || nIndex >= STOR_FACTORY_CAMERA_ID_MAX)
    {
        return FALSE;
    }
    GetCameraParamById(pParam, nIndex);
    if (pParam.m_Conf.data.conf.HdfsRecording == 0)
    {
        return TRUE;
    }

    Lock();
    pParam.m_Conf.data.conf.HdfsRecording = 0;
    m_CameraParamMap[nIndex] = pParam;
    m_Conf.UpdateCameraData(nIndex, pParam.m_Conf);
    if (m_CameraMap[nIndex] != NULL)
    {
        m_CameraMap[nIndex]->SetHdfsRecord(FALSE);
        m_CameraMap[nIndex]->StopHdfsRecord();
    }
    UnLock();
    change.id = nIndex;
    change.type = STOR_FACTORY_CAMERA_RECORDING_OFF;
    CallCameraChange(change);
    return TRUE;
}
Exemplo n.º 2
0
inline BOOL StorFactory::DelCamera(s32 nIndex)
{
    StorFactoryCameraChangeData change;
    VDC_DEBUG( "%s DelCamera %d\n",__FUNCTION__, nIndex);
    if (nIndex <=0 || nIndex >= STOR_FACTORY_CAMERA_ID_MAX)
    {
        return FALSE;
    }
    change.id = nIndex;
    change.type = STOR_FACTORY_CAMERA_DEL;
    CallCameraChange(change);

    Lock();
    VDC_DEBUG( "%s Cleanup Begin\n",__FUNCTION__);
    m_CameraMap[nIndex]->Cleanup();
    VDC_DEBUG( "%s Cleanup End\n",__FUNCTION__);
    delete m_CameraMap[nIndex];
    m_CameraMap[nIndex] = NULL;
    m_CameraParamMap.erase(nIndex);
    m_CameraOnlineMap.erase(nIndex);
    int size1 = m_CameraMap.size();
    m_CameraMap.erase(nIndex);
    int size2 = m_CameraMap.size();
    m_Conf.DelCamera(nIndex);
    UnLock();
    ReleaseCameraID(nIndex);
	
    return TRUE;
}
Exemplo n.º 3
0
inline BOOL Factory::DelCamera(astring nIndex)
{
#if 0
    FactoryCameraChangeData change;

    change.id = nIndex;
    change.type = FACTORY_CAMERA_DEL;
    CallCameraChange(change);

    Lock();
    VDC_DEBUG( "%s Cleanup Begin\n",__FUNCTION__);
    m_CameraMap[nIndex]->Cleanup();
    VDC_DEBUG( "%s Cleanup End\n",__FUNCTION__);
    delete m_CameraMap[nIndex];
    m_CameraMap[nIndex] = NULL;
    m_CameraParamMap.erase(nIndex);
    m_CameraOnlineMap.erase(nIndex);
    int size1 = m_CameraMap.size();
    m_CameraMap.erase(nIndex);
    int size2 = m_CameraMap.size();
    m_Conf.DelCamera(nIndex);
    UnLock();
    ReleaseCameraID(nIndex);
#endif	
    return TRUE;
}
Exemplo n.º 4
0
inline astring Factory::AddCamera(CameraParam & pParam)
{
#if 0
	//s32 nId = GetCameraID();
	astring nId = "sdfsdf";//TODO
	FactoryCameraChangeData change;
	Camera *pCamera = NULL;
	CameraParam pParam2;

	Lock();
	//pParam.m_Conf.data.conf.nId = nId;

	m_CameraMap[nId] = new Camera(*m_pVdb, *m_pVHdfsdb, pParam);
	pCamera = m_CameraMap[nId]; 

	m_CameraParamMap[nId] = pParam;
	m_CameraOnlineMap[nId] = 0;
	m_Conf.AddCamera(pParam.m_Conf, nId);

	UnLock();
	change.id = nId;
	change.type = FACTORY_CAMERA_ADD;
	CallCameraChange(change);

#endif
    	return "adf";
}
Exemplo n.º 5
0
inline BOOL Factory::StopHdfsRecord(astring nIndex)
{
#if 0
    CameraParam pParam;
    FactoryCameraChangeData change;

    GetCameraParamById(pParam, nIndex);
    if (pParam.m_Conf.data.conf.HdfsRecording == 0)
    {
        return TRUE;
    }

    Lock();
    pParam.m_Conf.data.conf.HdfsRecording = 0;
    m_CameraParamMap[nIndex] = pParam;
    m_Conf.UpdateCameraData(nIndex, pParam.m_Conf);
    if (m_CameraMap[nIndex] != NULL)
    {
        m_CameraMap[nIndex]->SetHdfsRecord(FALSE);
        m_CameraMap[nIndex]->StopHdfsRecord();
    }
    UnLock();
    change.id = nIndex;
    change.type = FACTORY_CAMERA_RECORDING_OFF;
    CallCameraChange(change);
#endif
    return TRUE;
}
Exemplo n.º 6
0
inline BOOL StorFactory::UpdateCameraGroup(s32 nIndex, s32 nGroup)
{
    CameraParam pParam;
    StorFactoryCameraChangeData change;
    if (nIndex <=0 || nIndex >= STOR_FACTORY_CAMERA_ID_MAX)
    {
        return FALSE;
    }
    GetCameraParamById(pParam, nIndex);
    if (pParam.m_Conf.data.conf.GroupId == nGroup)
    {
        return TRUE;
    }

    Lock();
    pParam.m_Conf.data.conf.GroupId = nGroup;
    m_CameraParamMap[nIndex] = pParam;
    m_Conf.UpdateCameraData(nIndex, pParam.m_Conf);
    UnLock();
    change.id = nIndex;
    change.type = STOR_FACTORY_CAMERA_GROUP_CHANGE;
    CallCameraChange(change);
    return TRUE;
}
Exemplo n.º 7
0
inline void StorFactory::run()
{
	while(1)
	{
		ve_sleep(1000 * 90);
	}
#if 0

	CameraParamMap paramMap;
	/* Create the thread to update the Disk status */
	while (1)
	{
		paramMap.clear();
		{
			/* Got all the camera param */
			Lock();
			CameraMap::iterator it = m_CameraMap.begin(); 
			for(; it!=m_CameraMap.end(); ++it)
			{	
				s32 nIndex = (*it).first;
				CameraParam pParam;
				Camera *pCamera = m_CameraMap[nIndex];
				if (pCamera == NULL)
				{
					continue;//TODO
				}
				pCamera->GetCameraParam(pParam);
				paramMap[nIndex] = pParam;
			}
			UnLock();
		}
		{
			/* Loop all the cameraparam */
			CameraParamMap::iterator it = paramMap.begin(); 
			for(; it!=paramMap.end(); ++it)
			{	
				/* Loop to check the camera and update the url */
				s32 nIndex = (*it).first;
				(*it).second.m_wipOnline = (*it).second.CheckOnline();
				if ((*it).second.m_OnlineUrl == FALSE)
				{
					(*it).second.m_wipOnlineUrl = (*it).second.UpdateUrl();
			
					if ((*it).second.m_wipOnlineUrl == FALSE)
					{
						(*it).second.m_wipOnline = FALSE;
					}
					
				}
			}
		}
		{
			/* Loop all the cameraparam result and set to camera */
			CameraParamMap::iterator it = paramMap.begin(); 
			for(; it!=paramMap.end(); ++it)
			{	
				/* Loop to check the camera and update the url */
				s32 nIndex = (*it).first;
				Lock();
				CameraMap::iterator it1 = m_CameraMap.find(nIndex), 
							ite1 = m_CameraMap.end();

				if (it1 == ite1) 
				{
					/* the id may be delete */
					UnLock();
					continue;
				}

				CameraStatus bCheck = m_CameraMap[nIndex]->CheckCamera(
					(*it).second.m_strUrl, (*it).second.m_strUrlSubStream, 
					(*it).second.m_bHasSubStream, 
					(*it).second.m_wipOnline, (*it).second.m_wipOnlineUrl);
				
				StorFactoryCameraChangeData change;
				change.id = nIndex;
				switch (bCheck)
				{
					case DEV_OFF2ON:
					{
						change.type = STOR_FACTORY_CAMERA_ONLINE;
						m_CameraOnlineMap[nIndex] = 1;
						UnLock(); 
						CallCameraChange(change);
						Lock();
						break;
					}
					case DEV_ON2OFF:
					{
						change.type = STOR_FACTORY_CAMERA_OFFLINE;
						m_CameraOnlineMap[nIndex] = 0;
						UnLock(); 
						CallCameraChange(change);
						Lock();
						break;
					}
					default:
					{

						break;
					}
				}
				UnLock();
			}
		}
		ve_sleep(1000 * 90);
	}
#endif
	
}
Exemplo n.º 8
0
inline s32 StorFactory::AddCamera(CameraParam & pParam)
{
	s32 nId = GetCameraID();
	StorFactoryCameraChangeData change;
	Camera *pCamera = NULL;
	CameraParam pParam2;

	Lock();
	pParam.m_Conf.data.conf.nId = nId;
	if (pParam.m_Conf.data.conf.nType == VSC_CAMERA_CAM)
	{
		m_CameraMap[nId] = new Camera(*m_pVdb, *m_pVHdfsdb, pParam);
		pCamera = m_CameraMap[nId]; 
	}else
	{
		m_CameraMap[nId] = NULL;
		UnLock();
		return -1;
	}
	m_CameraParamMap[nId] = pParam;
	m_CameraOnlineMap[nId] = 0;
	m_Conf.AddCamera(pParam.m_Conf, nId);

	UnLock();
	change.id = nId;
	change.type = STOR_FACTORY_CAMERA_ADD;
	CallCameraChange(change);
#if 0
	/* Try to online the camera and lock */
	Lock();
	pCamera->GetCameraParam(pParam2);
	UnLock();

	pParam2.m_wipOnline = pParam2.CheckOnline();
	if (pParam2.m_OnlineUrl == FALSE)
	{
		pParam2.m_wipOnlineUrl = pParam2.UpdateUrl();
	}

	/* Try to make the camera online */
	Lock();
	CameraStatus bCheck = pCamera->CheckCamera(pParam2.m_strUrl, 
			pParam2.m_strUrlSubStream, pParam2.m_bHasSubStream, 
			pParam2.m_wipOnline, pParam2.m_wipOnlineUrl);

	StorFactoryCameraChangeData change2;
	change2.id = nId;
	
	if (bCheck == DEV_OFF2ON)
	{
		change.type = STOR_FACTORY_CAMERA_ONLINE;
		m_CameraOnlineMap[nId] = 1;
		UnLock(); 
		CallCameraChange(change);
		Lock();
	}
	UnLock();
#endif
	
    	return nId;
}