Ejemplo n.º 1
0
AdvXDecoderApp::AdvXDecoderApp() : m_dirClient( m_ioService )
 {
	m_bDirEnabled= false;
	m_dirConnCookie = 0;
	m_xmlHttpClient.SetCallback( this );
	//m_xmlHttpClient.SetUrl();
	m_dirClient.SetCallback( this );
	m_ioService.addTimerHandle( this );
	m_ioService.addThreadHandle( this );
	m_streamManager.setEncAgent( this );
	m_dwFreeRqstTransNum = 0;
	m_beatCount = 0;
	//m_pWatchDogMsg = NULL;

	mt_reqCnt1 = 0;
	mt_reqCnt2 = 0;
	mt_respCnt1 = 0;
	mt_respCnt2 = 0;

    m_bAutoRestart = false;

	if (!CIntelAnalyCard::buildconfig())
	{
		mydebug("Build xml config failed!\n");
	}
	else 
	{
		mydebug("Init xml config successful!\n");
	}

	g_saveImageDirectory = "C:\\advRtsp\\";
}
Ejemplo n.º 2
0
void N_VLinearSum_NrnThread(realtype a, N_Vector x, realtype b, N_Vector y, N_Vector z)
{
  apass bpass xpass ypass zpass
  nrn_multithread_job(vlinearsum);
mydebug("vlinearsum\n");
/*pr(z);*/
}
Ejemplo n.º 3
0
bool DirClient::RequestOpenDevice( const DEVICE_PATH& path, unsigned long transNum )
{
	mydebug("DirClient::RequestOpenDevice Start ... \n");

	if( !m_hDirSock.isValid() )
		return false;
	if( !m_pAppRegistMsg ) return false;
	DIR_MSG_TERMINAL_START_DEVICE_REQ msg;
	msg.MsgHeader.ProtocolVersion = IDVR_MSG_VERSION;
	msg.MsgHeader.TransactionNumber = 0;
	msg.MsgHeader.Msg = DIR_MSG_TYPE_TERMINAL_START_DEVICE_REQ;
	msg.MsgHeader.Length = sizeof( DIR_MSG_TERMINAL_START_DEVICE_REQ );
	msg.TransNum = transNum;
	msg.DeviceGuid = path.gDeviceId;
	msg.DeviceDirGuid = path.gDirId;
	msg.DeviceGatewayGuid = path.gGatewayId;
	msg.DeviceIVSGuid = path.gIVSId;
	msg.DeviceEntityType = path.wEntityType;
	msg.DeviceUnitType = path.wDeviceUnitType;
	msg.DeviceID = path.dwDeviceNum;
	msg.TerminalGuid = m_pAppRegistMsg->ClientGuid;
	msg.TerminalType = m_pAppRegistMsg->AppType;
	msg.TerminalNetType = 0;
	msg.TerminalIP = m_pAppRegistMsg->ClientIP;
	msg.TerminalPort = 0;
	return m_hDirSock.send( (const char*)&msg, msg.MsgHeader.Length ) == msg.MsgHeader.Length;
}
Ejemplo n.º 4
0
void N_VScale_NrnThread(realtype c, N_Vector x, N_Vector z)
{
  cpass xpass zpass
  nrn_multithread_job(vscale);
mydebug("vscale\n");
/*pr(z);*/
}
Ejemplo n.º 5
0
void AdvXDecoderApp::OnRegistComplete( void* pContext )
{
	mydebug("AdvXDecoderApp::OnRegistComplete() Start ... \n");

	assert((unsigned long)pContext == m_dirConnCookie );
	//m_decoderSet.clear();
	RegistXDecoder();
#if 1
	ADDR_PAIR addr;
	for( int i=0; i<(int)m_decoderSet.size(); i++ )
	{
		mydebug("Every channel softDecoder this->OnStartDeviceRequest() Start ... \n");
		this->OnStartDeviceRequest( m_decoderSet[i].getGuid(), addr );
	}
#endif
}
Ejemplo n.º 6
0
void AdvXDecoderApp::OnOpenDeviceRespond( const GUID& devId, const STREAM_ADDR& strmAddr, int result, unsigned long transNum )
{
	mydebug("AdvXDecoderApp::OnOpenDeviceRespond Start ... \n");

	if( BaseConfig::getTraceEnabled() )
	{
		OutputDebugString( "Receive Open Device Response!\n" );
	}
	mt_respCnt2++;
	RequestOpenDeviceContext* pInterContext = NULL;
	ContextMap::iterator iter = m_openDevContextMap.find( transNum );
	if( iter != m_openDevContextMap.end() )
	{
		pInterContext = (RequestOpenDeviceContext*)(*iter).second;
		m_openDevContextMap.erase( iter );
	}
	if( pInterContext )
	{
		pInterContext->m_devPath.addrStrm.addrGrp = strmAddr.addrGrp;
		IEncRequester* pRequester = (IEncRequester*)pInterContext->m_pContext;
		if( pRequester )
		{
			if( BaseConfig::getTraceEnabled() )
			{
				OutputDebugString( result==1?"Request Open Device OK!\n":"Request Open Device Failed!\n"  );
			}
			pRequester->onStartResult( pInterContext->m_strmId, result==1?ER_S_OK:ER_E_FAIL, pInterContext->m_devPath, transNum );
			pRequester->Release();
		}
		delete pInterContext;
	}
}
Ejemplo n.º 7
0
void DirClient::OnSocketConnect( TcpSocketHandle& hSocket, int nResult )
{
	if( nResult != 0 ) //Failed
	{
		mydebug("OnSocketConnect connect directory ... FAILED!%d\n",GetLastError());

		Disconnect();
		void* pContext = hSocket.getContext();
		if( m_pCallback )
			m_pCallback->OnConnectError( pContext );
		return;
	}

	mydebug("OnSocketConnect connect directory ... OK!\n");

	DoRegistApp( true );
}
Ejemplo n.º 8
0
void AdvXDecoderApp::OnStartDeviceRequest( const GUID& devId, const ADDR_PAIR& addr )
{
	RequestInst reqInst(devId, MATRIX_INFO);
	RequestSet::iterator iter = std::find( m_rqstSet.begin(), m_rqstSet.end(), reqInst );
	if( iter == m_rqstSet.end() )
		m_rqstSet.push_back( reqInst );

	mydebug("m_xmlHttpClient.GetMatrixInfo( devId ) Start ... \n");

	m_xmlHttpClient.GetMatrixInfo( devId );
}
Ejemplo n.º 9
0
void DirClient::OnReceiveOpenDeviceResp( void* pPacket )
{
	PDIR_MSG_TERMINAL_START_DEVICE_RESP pMsg = (PDIR_MSG_TERMINAL_START_DEVICE_RESP)pPacket;
	STREAM_ADDR strmAddr;
	strmAddr.addrIVS.dwIP = pMsg->sIP;
	strmAddr.addrIVS.wPort = pMsg->sPort;
	strmAddr.addrGrp.dwIP = pMsg->mIP;
	strmAddr.addrGrp.wPort = pMsg->mPort;
	mydebug("DirClient::OnReceiveOpenDeviceResp Start (DevID:%s,result %d) ... \n",
		CAdvGeneralHelp::GUIDToString(pMsg->DeviceGuid).c_str(),pMsg->Result);
	if( m_pCallback )
		m_pCallback->OnOpenDeviceRespond( pMsg->DeviceGuid, strmAddr, pMsg->Result, pMsg->TransNum );
}
Ejemplo n.º 10
0
void AdvXDecoderApp::OnGetMatrixInfo( const GUID& decId, const MatrixItemSet& matrixInfo, void* pContext )
{
	mydebug("AdvXDecoderApp::OnGetMatrixInfo() Start ... \n");

	RequestInst reqInst(decId, MATRIX_INFO);
	RequestSet::iterator iter = std::find( m_rqstSet.begin(), m_rqstSet.end(), reqInst );
	if( iter != m_rqstSet.end() )
	{
		m_rqstSet.erase( iter );
		DecoderSet::iterator dec_iter = std::find( m_decoderSet.begin(), m_decoderSet.end(), decId );
		if( dec_iter != m_decoderSet.end() )
			(*dec_iter)->setMatrixInfo( matrixInfo );
	}
}
Ejemplo n.º 11
0
static icalcomponent *get_server_objects(ECalBackend3e *cb, const char *query)
{
    GError *local_err = NULL;
    char *servercal;
    icalcomponent *ical;

    if (!e_cal_backend_3e_open_connection(cb, &local_err))
    {
        g_warning("Sync failed. Can't open connection to the 3e server. (%s)", local_err->message);
        g_error_free(local_err);
        return NULL;
    }

    servercal = ESClient_queryObjects(cb->priv->conn, cb->priv->calspec, query, &local_err);
    if (local_err)
    {
        g_clear_error(&local_err);
    }

    e_cal_backend_3e_close_connection(cb);

    if (servercal == NULL)
    {
        return NULL;
    }

    ical = icalcomponent_new_from_string(servercal);

mydebug("===========\n%s\n==========\n\n", servercal);

    g_free (servercal);

    if (ical == NULL)
    {
        return NULL;
    }

    return ical;
}
Ejemplo n.º 12
0
bool DirClient::DoRegistApp( bool bReg )
{
	if( m_pAppRegistMsg==NULL )
	{
		assert( bReg );
		m_pAppRegistMsg = new DIR_MSG_APP_REGIST_REQ;
		m_pAppRegistMsg->MsgHeader.ProtocolVersion = IDVR_MSG_VERSION;
		m_pAppRegistMsg->MsgHeader.TransactionNumber = 0;
		m_pAppRegistMsg->MsgHeader.Msg = DIR_MSG_TYPE_APP_REGIST_REQ;
		m_pAppRegistMsg->MsgHeader.Length = sizeof( DIR_MSG_APP_REGIST_REQ );
		m_pAppRegistMsg->AppType = IDVR_APP_INTEL_ANALY_SITE;
	}
	void* pContext = m_hDirSock.getContext();
	if( bReg )
	{
		static bool s_bInited = false;
		if( m_pCallback )
		{
			m_pCallback->OnConnect( m_pAppRegistMsg->ClientGuid, m_pAppRegistMsg->ClientIP, pContext );
		}
		else if( !s_bInited )
		{
			CoCreateGuid( &m_pAppRegistMsg->ClientGuid );
			m_pAppRegistMsg->ClientIP = ::GetLocalIP();
		}
		s_bInited = true;
	}
	m_hDirSock.send( (const char*)m_pAppRegistMsg, m_pAppRegistMsg->MsgHeader.Length );

	mydebug("DoRegistApp send RegisteMsg ... OK!\n");

	if( m_pCallback && bReg )
		m_pCallback->OnRegistComplete( pContext );

	return true;
}
Ejemplo n.º 13
0
void N_VConst_NrnThread(realtype c, N_Vector z)
{
  cpass zpass
  nrn_multithread_job(vconst);
mydebug("vconst\n");
}
Ejemplo n.º 14
0
void N_VCompare_NrnThread(realtype c, N_Vector x, N_Vector z)
{
  cpass xpass zpass
  nrn_multithread_job(vcompare);
mydebug("vcompare\n");
}
Ejemplo n.º 15
0
void N_VAddConst_NrnThread(N_Vector x, realtype b, N_Vector z)
{
  bpass xpass zpass
  nrn_multithread_job(vaddconst);
mydebug("vaddconst\n");
}
Ejemplo n.º 16
0
void N_VInv_NrnThread(N_Vector x, N_Vector z)
{
  xpass zpass
  nrn_multithread_job(vinv);
mydebug("vinv\n");
}
Ejemplo n.º 17
0
void N_VAbs_NrnThread(N_Vector x, N_Vector z)
{
  xpass zpass
  nrn_multithread_job(vabs);
mydebug("vabs\n");
}
Ejemplo n.º 18
0
void N_VDiv_NrnThread(N_Vector x, N_Vector y, N_Vector z)
{
  xpass ypass zpass
  nrn_multithread_job(vdiv);
mydebug("vdiv\n");
}
Ejemplo n.º 19
0
void N_VProd_NrnThread(N_Vector x, N_Vector y, N_Vector z)
{
  xpass ypass zpass
  nrn_multithread_job(vprod);
mydebug("vprod\n");
}
Ejemplo n.º 20
0
bool AdvXDecoderApp::RegistXDecoder()
{
	mydebug("AdvXDecoderApp::RegistXDecoder() Start ...\n");
	
	int nOutCount = BaseConfig::getNoCardTest()?8:CIntelAnalyCard::GetChannelCount();
	int nVideoCnt = nOutCount;//Decoder700xConfig::getVideoCount();
	int nAudioCnt = 0;//Decoder700xConfig::getAudioCount();
	//if( nVideoCnt==Decoder700xConfig::NO_CHANNEL_LIMITE || nVideoCnt>nOutCount )
	//	nVideoCnt = nOutCount;
	
	int nEntityCnt = 1+nVideoCnt+nAudioCnt;
	int len = sizeof(UnitEntity)*(nEntityCnt) + sizeof(UnitConfig) + sizeof(VideoDecoderConfig)*nVideoCnt + sizeof(AudioDecoderConfig)*nAudioCnt;
	char* pBuf = new char[ len ];
	UnitEntity* pEntity = (UnitEntity*)pBuf;
	pEntity->Guid = Decoder700xConfig::getUnitGuid();
	pEntity->State = IDVR_ENTITY_ACTIVE;
	pEntity->Type = IDVR_ENTITY_UNIT;
	int n=sizeof(UnitEntity);
	UnitConfig* pUnitConfig = (UnitConfig*)(pEntity+1);
	pUnitConfig->bWithAudio = true;
	strcpy( pUnitConfig->FirmwareVersion, Decoder700xConfig::getFirmwareVersion().c_str() );
	pUnitConfig->FirmwareVersionSize = 64;
	pUnitConfig->Gateway = 0;
	pUnitConfig->IPAdress = ::GetLocalIP();
	pUnitConfig->MulticastIP = 0;
	strcpy( pUnitConfig->ProductName, Decoder700xConfig::getProductName().c_str() );
	pUnitConfig->ProductNameSize = 64;
	pUnitConfig->SubnetMask = 0;
	pUnitConfig->UnitCategory = IDVR_UNIT_CATEGORY_VRU;
	strcpy( pUnitConfig->UnitName, Decoder700xConfig::getUnitName().c_str() );
	pUnitConfig->UnitNameSize = 64;
	pUnitConfig->VsipPort = 0;
	pEntity = (UnitEntity*)(pUnitConfig+1);
	//ULONG _iType[3] = {0x1004,0x1004,0x1005};
	//ULONG _iChan[3] = {1,2,1};
	//nVideoCnt = (nVideoCnt > 3)?3:nVideoCnt;
	GUID _idTemp = Decoder700xConfig::getUnitGuid();
	for( int i=0; i<nVideoCnt; i++ )
	{
		const Decoder700xVideoConfig& cfg = Decoder700xConfig::getVideoCfg(i,_idTemp,CIntelAnalyCard::m_infoCard.vtChannels[i].iIndex,
			1004);
		pEntity->Guid = cfg.m_guid;
		pEntity->State = IDVR_ENTITY_ACTIVE;
		pEntity->Type = IDVR_ENTITY_VIDEODECODER;
		VideoDecoderConfig* pVideoDecoderConfig = (VideoDecoderConfig*)(pEntity+1);
		pVideoDecoderConfig->AnalogFormat = cfg.m_analogFormat;
		pEntity = (UnitEntity*)(pVideoDecoderConfig+1);
		DecoderSet::iterator iter = std::find( m_decoderSet.begin(), m_decoderSet.end(), cfg.m_guid );
		if( iter == m_decoderSet.end() )
		{
			//DecoderProxy* pDecoder = new SoftDecoder( i );

			//每个解码卡通道创建一个softDecoder对象,softDecoder是DecoderProxy的子类
			SoftDecoder* pDecoder = new SoftDecoder( i );
			
			mydebug("new SoftDecoder( %d ) Start ... \n",i);
			pDecoder->m_guidAssociateEnc = cfg.m_guid;

			pDecoder->Start();     //只能调用一次

			pDecoder->init();
			

			mydebug("*** Associate Encoder Manager and Decoder *** ... \n",i);
			
			pDecoder->setProvider( &m_streamManager );
			m_decoderSet.push_back( DecoderProxyHolder( pDecoder, cfg.m_guid ) );
		}
		else{
			mydebug("SoftDecoder init ... \n");
			(*iter)->init();
		}
	}

	mydebug("m_dirClient.RegistDevice() Start ... \n");

	int _iDevType = ADV_MAKE_DEVICE_ID(ADV_VENDOR_MDIP,ADV_INTEL_ANALYSE,AV_NONE);
	bool bRes = m_dirClient.RegistDevice( _iDevType, nEntityCnt, pBuf, len );
	delete []pBuf;
	return bRes;
}