Exemple #1
0
int Demo_AlarmFortify()
{
	//ÉèÖñ¨¾¯»Øµ÷º¯Êý
	NET_DVR_SetDVRMessageCallBack_V30(MessageCallback, NULL);
  
	//ÆôÓò¼·À
	LONG lHandle;
	lHandle = NET_DVR_SetupAlarmChan_V30(lUserID);
	if (lHandle < 0)
	{
		printf("NET_DVR_SetupAlarmChan_V30 error, %d\n", NET_DVR_GetLastError());
		NET_DVR_Logout(lUserID);
		NET_DVR_Cleanup(); 
		return HPR_ERROR;
	}
  
	sleep(5000);
	//³·Ïú²¼·ÀÉÏ´«Í¨µÀ
	if (!NET_DVR_CloseAlarmChan_V30(lHandle))
	{
		printf("NET_DVR_CloseAlarmChan_V30 error, %d\n", NET_DVR_GetLastError());
		NET_DVR_Logout(lUserID);
		NET_DVR_Cleanup(); 
		return HPR_ERROR;
	}
	saveFlag = 0;
	//×¢ÏúÉ豸
	NET_DVR_Logout(lUserID);
	//ÊÍ·ÅSDK×ÊÔ´
	NET_DVR_Cleanup();
	return HPR_OK;
}
Exemple #2
0
bool CHaikangSDK::PtzStartPlay(char *sip,int nPort,int channel,char *user,char *psw,HWND hWnd)
{
	//---------------------------------------
	// 注册设备
	NET_DVR_DEVICEINFO_V30 struDeviceInfo;
	m_ptzLoginHandle = NET_DVR_Login_V30(sip, nPort, user, psw, &struDeviceInfo);
	if (m_ptzLoginHandle < 0)
	{
		return false;
	}

	//---------------------------------------
	//启动预览并设置回调数据流
	NET_DVR_CLIENTINFO ClientInfo = {0};
	//需要SDK解码时句柄设为有效值,仅取流不解码时可设为空
	ClientInfo.hPlayWnd = hWnd;
	ClientInfo.lChannel = channel;		//预览通道号
	//主码流
	ClientInfo.lLinkMode = 0;
	ClientInfo.sMultiCastIP = NULL;	//多播地址,需要多播预览时配置
	BOOL bPreviewBlock = false;

	m_ptzRealHandle = NET_DVR_RealPlay_V30(m_ptzLoginHandle, &ClientInfo, NULL, this, 0);
	if (m_ptzRealHandle < 0)
	{
		NET_DVR_Logout(m_ptzLoginHandle);
		m_ptzLoginHandle = -1;
		return false;
	}
	return true;
}
Exemple #3
0
void HikNetHelper::logout() {
    if(_isLogin == true) {
        NET_DVR_Logout(_hikNetUserId);
        _hikNetUserId = -1;
        _isLogin = false;
    }
}
Exemple #4
0
_XBool _XHIKCamera::init(_XCameraData &data)
{
	if(m_isInited) return XTrue;
	m_cameraWidth = data.w;
	m_cameraHeight = data.h;
	//width = &m_cameraWidth;
	//height = & m_cameraHeight;
	m_buffSize = m_cameraWidth * m_cameraHeight * 3;

	m_cameraTexWidth = m_cameraWidth;
	m_cameraTexHeight = m_cameraHeight;
	//初始化摄像头并连接设备
	NET_DVR_Init();	//初始化
	m_lUserID = NET_DVR_Login_V30(data.ipAddress,data.port,data.userName,data.pwd,&m_structDeviceInfo);
	if(m_lUserID < 0)	
	{//连接设备失败
		printf("Login error, %d\n", NET_DVR_GetLastError());
		NET_DVR_Cleanup();
		return XFalse;
	}
	//下面开始连接回调函数并分配内存空间
	m_dataRGB = createArrayMem<unsigned char>(m_buffSize);	//分配内存空间
	if(m_dataRGB == NULL) return XFalse;
	memset(m_dataRGB,0,m_buffSize);
	m_dataRGBOut = createArrayMem<unsigned char>(m_buffSize);
	if(m_dataRGBOut == NULL) return XFalse;

	haveNewFrame = &m_haveNewFrame;
	pOutRGB = m_dataRGB;

	NET_DVR_SetExceptionCallBack_V30(0,NULL,g_ExceptionCallBack,NULL);

	NET_DVR_CLIENTINFO ClientInfo = {0};
	ClientInfo.hPlayWnd = NULL;         //需要SDK解码时句柄设为有效值,仅取流不解码时可设为空
	ClientInfo.lChannel = 0;			//预览通道号
	ClientInfo.lLinkMode = 0;			//最高位(31)为0表示主码流,为1表示子码流0~30位表示连接方式:0-TCP方式;1-UDP方式;2-多播方式;3-RTP方式;
	ClientInfo.sMultiCastIP = NULL;		//多播地址,需要多播预览时配置

	//BOOL bPreviewBlock = XFalse;			//请求码流过程是否阻塞,0:否,1:是
	m_lRealPlayHandle = NET_DVR_RealPlay_V30(m_lUserID,&ClientInfo,NULL,NULL,XFalse);
	if(m_lRealPlayHandle < 0)
	{
		printf("NET_DVR_RealPlay_V30 error\n");
		NET_DVR_Logout(m_lUserID);
		NET_DVR_Cleanup();
		return XFalse;
	}

	if(!NET_DVR_SetRealDataCallBack(m_lRealPlayHandle,g_RealDataCallBack_V30,0))
	{
		printf("NET_DVR_SetRealDataCallBack error\n");
	}

	m_cameraTex.createTexture(m_cameraWidth,m_cameraHeight,COLOR_RGB);	//不允许进行2的n次方扩展,这回造成不兼容
	m_cameraSprite.init(m_cameraWidth,m_cameraHeight,0);

	m_haveNewFrame = XFalse;
	m_isInited = XTrue;
	return XTrue;
}
Exemple #5
0
BOOL CPlayer::HKDVRLogout()
{
	if(m_hkDVRUserID >= 0)
	{
		m_hkLogout = NET_DVR_Logout(m_hkDVRUserID);
	}
	 
	return m_hkLogout;
}
void DeviceHK::disconnect(const relustCB& cb) {
	m_mapChannels.clear();
	if (m_i64LoginId >= 0) {
		NET_DVR_Logout(m_i64LoginId);
		m_i64LoginId = -1;
		Device::onDisconnected(true);
	}

}
void CSingleCamDlg::OnBnClickedBtnLogin()//登录
{
	if (isLogin) //如果已经登录,就需要执行注销
	{
		NET_DVR_Logout(lUserID1);
		NET_DVR_Logout(lUserID2);
		isLogin = FALSE;
		GetDlgItem(IDC_BTN_Login)->SetWindowTextA("登录"); 
		GetDlgItem(IDC_BTN_PlayCam)->EnableWindow(FALSE);  //播放按钮 失效
		GetDlgItem(IDC_BTN_SavePicture)->EnableWindow(FALSE);  // 抓图按钮失效
		GetDlgItem(IDC_BTN_SavePicture2)->EnableWindow(FALSE);  // 抓图按钮失效
		GetDlgItem(IDC_BTN_SaveRealData)->EnableWindow(FALSE);  // 抓图按钮失效
	} 
	else
	{
		char DeviceIP[16] = {0};
		char DeviceIP2[16] = {0};
		DWORD dwDeviceIP = 0;
		m_ctrlDeviceIP1.GetAddress(dwDeviceIP);
		CString csTemp = IPToStr(dwDeviceIP);
		sprintf_s(DeviceIP, "%s", csTemp.GetBuffer(0));

		m_ctrlDeviceIP2.GetAddress(dwDeviceIP);
		csTemp = IPToStr(dwDeviceIP);
		sprintf_s(DeviceIP2, "%s", csTemp.GetBuffer(0));

		NET_DVR_DEVICEINFO_V30 struDeviceInfo, struDeviceInfo2;
		lUserID1 = NET_DVR_Login_V30(DeviceIP, 8000, "admin", "12345", &struDeviceInfo);
		lUserID2 = NET_DVR_Login_V30(DeviceIP2, 8000, "admin", "12345", &struDeviceInfo2);
		if (lUserID1 < 0 || lUserID2 < 0) //登录失败时,其他几个按钮都需要disable
		{
			AfxMessageBox("登录失败!");
			isLogin = FALSE;
		} 
		else
		{
			isLogin = TRUE;
			GetDlgItem(IDC_BTN_Login)->SetWindowTextA("注销");  //登录成功, 变成注销
			GetDlgItem(IDC_BTN_PlayCam)->EnableWindow(TRUE);  //播放按钮 有效
		}
	}
}
Exemple #8
0
int record()
{
	//---------------------------------------
	//启动预览并设置回调数据流
	//LONG lRealPlayHandle;
	NET_DVR_CLIENTINFO ClientInfo = {0};
	ClientInfo.hPlayWnd = 0;         //需要SDK解码时句柄设为有效值,仅取流不解码时可设为空
	ClientInfo.lChannel     = 1;       //预览通道号
	ClientInfo.lLinkMode    = 0;       //最高位(31)为0表示主码流,为1表示子码流0~30位表示连接方式:0-TCP方式;1-UDP方式;2-多播方式;3-RTP方式;
	ClientInfo.sMultiCastIP = NULL;   //多播地址,需要多播预览时配置
  
	BOOL bPreviewBlock = false;       //请求码流过程是否阻塞,0:否,1:是
	//lRealPlayHandle = NET_DVR_RealPlay_V30(lUserID, &ClientInfo, NULL, NULL, 0);
	if (lRealPlayHandle < 0)
	{
		printf("NET_DVR_RealPlay_V30 error:%d\n",NET_DVR_GetLastError());
		NET_DVR_Logout(lUserID);
		NET_DVR_Cleanup();
		return 1;
	}
  
	printf("Start save...\n");
	int iRet,fd;	
	fd = open(fileName,O_RDWR|O_CREAT|O_TRUNC|O_APPEND,S_IRWXU|S_IRGRP|S_IROTH);//先调用open创建之后,不许要root权限即可录制,避免文加大小为0
	close(fd);
	iRet = NET_DVR_SaveRealData(lRealPlayHandle,fileName);
    if(!iRet)
    {
		printf("pyd1---NET_DVR_SaveRealData error:%s\n",NET_DVR_GetLastError());
        NET_DVR_StopSaveRealData(lRealPlayHandle);
        NET_DVR_Logout(lUserID);
        NET_DVR_Cleanup();  
        return HPR_ERROR;
	}
	printf("saving...\n");
	sleep(10);
	
	printf("save data success!\n");
	return HPR_OK;
}
Exemple #9
0
bool CHaikangSDK::StartPlay(int screenNo,char *name,char *sip,int nPort,int channel,
							char *user,char *psw,HWND hWnd,int subtype,int Direction)
{
	if(m_LoginHandle[screenNo] != -1)
	{
		StopPlay(screenNo);
	}
	//---------------------------------------
	// 注册设备
	m_direction[screenNo]=Direction;
	NET_DVR_DEVICEINFO_V30 struDeviceInfo;
	m_LoginHandle[screenNo] = NET_DVR_Login_V30(sip, nPort, user, psw, &struDeviceInfo);
	if (m_LoginHandle[screenNo] < 0)
	{
		DlgMain->ShowCameraMessage(name,"Login error!",FALSE);
		printf("Login error, %d\n", NET_DVR_GetLastError());
		//NET_DVR_Cleanup();
		return false;
	}

	//---------------------------------------
	//设置异常消息回调函数
	NET_DVR_SetExceptionCallBack_V30(0, NULL,g_ExceptionCallBack, NULL);

	//---------------------------------------
	//启动预览并设置回调数据流
	NET_DVR_CLIENTINFO ClientInfo = {0};
	//需要SDK解码时句柄设为有效值,仅取流不解码时可设为空
	ClientInfo.hPlayWnd = NULL;
	ClientInfo.lChannel = channel;		//预览通道号
	//最高位(31)为0表示主码流,为1表示子码流0~30位表示连接方式:0-TCP方式;1-UDP方式;2-多播方式;3-RTP方式;
	if(subtype == 0)
		ClientInfo.lLinkMode = 0;
	else
		ClientInfo.lLinkMode = 0x80000000;
	ClientInfo.sMultiCastIP = NULL;	//多播地址,需要多播预览时配置
  
	BOOL bPreviewBlock = false;       //请求码流过程是否阻塞,0:否,1:是
	m_RealHandle[screenNo] = NET_DVR_RealPlay_V30(m_LoginHandle[screenNo], &ClientInfo, g_RealDataCallBack_V30, this, 0);
	if (m_RealHandle[screenNo] < 0)
	{
		DlgMain->ShowCameraMessage(name,"Play error!",FALSE);
		printf("NET_DVR_RealPlay_V30 error\n");
		NET_DVR_Logout(m_LoginHandle[screenNo]);
	//	NET_DVR_Cleanup();
		m_LoginHandle[screenNo] = -1;
		return false;
	}

	DlgMain->ShowCameraMessage(name,"连接成功",FALSE);
	return true;
}
Exemple #10
0
void _XHIKCamera::release()
{
	if(!m_isInited) return;
	PlayM4_Stop(lPort);
	PlayM4_CloseFile(lPort);
	NET_DVR_Logout(m_lUserID);
	NET_DVR_Cleanup();

	XDELETE_ARRAY(m_dataRGB);
	XDELETE_ARRAY(m_dataRGBOut);
	//下面需要删除资源
	m_isInited = XFalse;
}
Exemple #11
0
void MainWindow::on_pushButton_clicked()
{
    qDebug("button clicked");
    // 注册设备
    NET_DVR_DEVICEINFO_V30 struDeviceInfo;
    lUserID = NET_DVR_Login_V30("192.168.13.20", 8000, "admin", "1qaz2wsx", &struDeviceInfo);
    if (lUserID < 0)
    {
         qDebug("Login error, %d\n", NET_DVR_GetLastError());
         NET_DVR_Cleanup();
         return;
    }

    //---------------------------------------
    //设置异常消息回调函数
    NET_DVR_SetExceptionCallBack_V30(0, NULL,g_ExceptionCallBack, NULL);

    //---------------------------------------
    //启动预览并设置回调数据流
    //HWND hWnd = (HWND)ui->frame->winId();     //获取窗口句柄
    movie.hWnd = (HWND)ui->frame->winId();     //获取窗口句柄
    qDebug("hWnd:%d", movie.hWnd);
    NET_DVR_PREVIEWINFO struPlayInfo = {0};
    //struPlayInfo.hPlayWnd = hWnd;         //需要SDK解码时句柄设为有效值,仅取流不解码时可设为空
    struPlayInfo.lChannel     = 1;       //预览通道号
    struPlayInfo.dwStreamType = 0;       //0-主码流,1-子码流,2-码流3,3-码流4,以此类推
    struPlayInfo.dwLinkMode   = 0;       //0- TCP方式,1- UDP方式,2- 多播方式,3- RTP方式,4-RTP/RTSP,5-RSTP/HTTP

    lRealPlayHandle = NET_DVR_RealPlay_V40(lUserID, &struPlayInfo, PsDataCallBack, &movie);
    if (lRealPlayHandle < 0)
    {
        DWORD error = NET_DVR_GetLastError();
        qDebug("NET_DVR_RealPlay_V40 error, %d\n" , error);
        NET_DVR_Logout(lUserID);
        NET_DVR_Cleanup();
        return;
    }

    qDebug("NET_DVR_RealPlay_V40 ok!");
    //QThread::sleep(10000);
    ////---------------------------------------
    ////关闭预览
    //NET_DVR_StopRealPlay(lRealPlayHandle);
    ////注销用户
    //NET_DVR_Logout(lUserID);
    ////释放SDK资源
    //NET_DVR_Cleanup();

    return;
}
Exemple #12
0
MainWindow::~MainWindow()
{
    // 停止解码
    PlayM4_Stop(lPort);

    //关闭流,回收源数据缓冲
    PlayM4_CloseStream(lPort);

    //释放播放库端口号
    PlayM4_FreePort(lPort);

    NET_DVR_StopRealPlay(lRealPlayHandle);
    //注销用户
    NET_DVR_Logout(lUserID);
    //释放SDK资源
    NET_DVR_Cleanup();
    delete ui;
}
Exemple #13
0
int FYCameraLogin::LogOutDev()
{
	return NET_DVR_Logout(m_lUserID);
}
Exemple #14
0
void * HK_Store_Thread(void * para){

    /*info to login HK camera*/
    char HK_userName[] = "admin";
    char HK_password[] = "12345";
    int stopResult = 0;

    LONG lUserID = 0;

    LONG streamHandle = 0;
    //unsigned int NVR_recordHandle = 0;

    NET_DVR_DEVICEINFO_V30 struDeviceInfo;
    NET_DVR_CLIENTINFO ClientInfo = {0};
    //ClientInfo.hPlayWnd = NULL;
    ClientInfo.lChannel = 1;
    ClientInfo.lLinkMode = 0;
    ClientInfo.sMultiCastIP = NULL;


    RecordParas *t_para = (RecordParas *)para;
    HKcameraArgs hkargs;

    //hkargs.NVR_LoginID = t_para->NVR_LoginID;//nvr server loginID
    strcpy(hkargs.NAR_cameraID, t_para->cameraID);//the VolID in nvr server
    hkargs.block_flag = 0;
    hkargs.NAR_recordHandle = 0;
    hkargs.HK_streamHandle = &streamHandle;

    while(1){
    	//-----------Init
    	NET_DVR_Init();
        hkargs.block_flag = 0;

    	//------------Set Connecttime and ReconnectTime
    	NET_DVR_SetConnectTime(2000,1);
    	NET_DVR_SetReconnect(10000,TRUE);

    	//-------------HKLogin
    	lUserID = NET_DVR_Login_V30(t_para->cameraIP, t_para->cameraPort, HK_userName, HK_password, &struDeviceInfo);
    	if(lUserID < 0){
    	    syslog(LOG_ERR,"connect HK IPC %s failed! errorCode: %d\n", t_para->cameraIP, NET_DVR_GetLastError());
    	    NET_DVR_Cleanup();//clear all the info
            continue;
    	}
        syslog(LOG_ERR,"connect HK IPC %s sucess!\n", t_para->cameraIP);

	//set exception callback function
    	NET_DVR_SetExceptionCallBack_V30(0, NULL, HK_RP_Exp_Callback, &hkargs);

	//get data stream and store
   	streamHandle = NET_DVR_RealPlay_V30(lUserID, &ClientInfo, HK_Store_CallBack, &hkargs, 0);
        if(streamHandle < 0){
            NET_DVR_Logout(lUserID);//get wrong handle ,logout
            NET_DVR_Cleanup();
            continue;
    	}
    	while(!hkargs.block_flag){ 
    	}
        stopResult = NET_DVR_StopRealPlay(streamHandle);
        syslog(LOG_INFO,"(InHKTransdata) stoped real play ? result:%d\n", stopResult);
        NET_DVR_Logout_V30(lUserID);
        syslog(LOG_INFO,"(InHKTransdata) HKcamera Logout(loginID was %d)\n",lUserID);
        NET_DVR_Cleanup();
        if(hkargs.block_flag == 1){
			break;
		}
    }
	return NULL;
}
Exemple #15
0
int saveData()
{
	 long lRealPlayHandle;
    NET_DVR_CLIENTINFO ClientInfo = {0};
#if (defined(_WIN32) || defined(_WIN_WCE)) || defined(__APPLE__)
    ClientInfo.hPlayWnd     = NULL;
#elif defined(__linux__)
   ClientInfo.hPlayWnd     = 0;
#endif

    ClientInfo.lChannel     = 1;  //channel NO.
    //ClientInfo.lLinkMode    = 0x40000000; //Record when breaking network.
    ClientInfo.lLinkMode    = 0;
    ClientInfo.sMultiCastIP = NULL;

	printf("Start realplay...\n");
    //getchar();
    //lRealPlayHandle = NET_DVR_RealPlay_V30(lUserID, &ClientInfo, g_RealDataCallBack_V30, NULL, 0);
    lRealPlayHandle = NET_DVR_RealPlay_V30(lUserID, &ClientInfo,NULL,NULL,0);
    if (lRealPlayHandle < 0)
    {
        printf("pyd1---NET_DVR_RealPlay_V30 error\n");
        return HPR_ERROR;
    }

    //Set rtsp callback function of getting stream.
    //NET_DVR_SetStandardDataCallBack(lRealPlayHandle, g_StdDataCallBack, 0);
    
    printf("Start save data...\n");
    time_t nowtime;
	struct tm *timeinfo;

	time(&nowtime);
	timeinfo = localtime(&nowtime);
	sprintf(fileName,"%d%02d%02d-%02d-%02d-%02d.mp4",1900+timeinfo->tm_year,1+timeinfo->tm_mon,timeinfo->tm_mday,timeinfo->tm_hour,timeinfo->tm_min,timeinfo->tm_sec);
	
    int iRet,fd;
	fd = open(fileName,O_RDWR|O_CREAT|O_TRUNC|O_APPEND,S_IRWXU|S_IRGRP|S_IROTH);
    close(fd);
	iRet = NET_DVR_SaveRealData(lRealPlayHandle,fileName);
    if(!iRet)
    {
		printf("pyd1---NET_DVR_SaveRealData error:%s\n",NET_DVR_GetLastError());
        NET_DVR_StopSaveRealData(lRealPlayHandle);
        NET_DVR_Logout(lUserID);
        NET_DVR_Cleanup();  
        return 1;
	}
	//getchar();
/*
#ifdef _WIN32
    Sleep(5000);  //millisecond
#elif  defined(__linux__) ||defined(__APPLE__)
    sleep(30);    //second
#endif
*/
	while(saveFlag)
		wait(NULL);
	printf("save data success!\n");
    //stop		
    NET_DVR_StopSaveRealData(lRealPlayHandle);
    //NET_DVR_StopRealPlay(lRealPlayHandle);
	//NET_DVR_Logout(lUserID);
	//NET_DVR_Logout_V30(lUserID);
	//cleanup
	//NET_DVR_Cleanup();
   
    return HPR_OK;
}