Example #1
0
void CConfigAlarm::GetConfig()
{
	if (!m_pDev || m_bInited)
	{
		return;
	}
	
	DWORD retlen = 0;
	BOOL bRet = CLIENT_GetDevConfig(m_pDev->LoginID, RV_DEV_ALARMCFG, 0,
								&m_almCFG, sizeof(DHDEV_ALARM_SCHEDULE), &retlen, CONFIG_WAITTIME);
	if (!bRet || retlen != sizeof(DHDEV_ALARM_SCHEDULE))
	{
		((CNetSDKDemoDlg*)AfxGetMainWnd())->LastError();
		return;
	}
	else
	{
		m_bInited = TRUE;
	}
	
	m_alarmInDlg.SetAlarmInCFG(m_almCFG.struLocalAlmIn);
	m_blindDlg.SetBlindCFG(m_almCFG.struBlind);
//	m_diskDlg.SetAlarmInCFG(m_almCFG.struAlarmIn);
	m_motionDlg.SetMotionCFG(m_almCFG.struMotion);
	m_vlostDlg.SetVlostCFG(m_almCFG.struVideoLost);

	m_alarmBoard.SetCurSel(0);
	m_alarmInDlg.ShowWindow(SW_SHOW);
	m_blindDlg.ShowWindow(SW_HIDE);
	m_diskDlg.ShowWindow(SW_HIDE);
	m_motionDlg.ShowWindow(SW_HIDE);
	m_vlostDlg.ShowWindow(SW_HIDE);
}
Example #2
0
void CConfigRecord::GetConfig()
{
	if (!m_pDev || m_bInited)
	{
		return;
	}
	
	BOOL bRet = FALSE;
	DWORD retlen = 0;
	bRet = CLIENT_GetDevConfig(m_pDev->LoginID, DH_DEV_RECORDCFG, -1/*all channel*/,
		&m_recCFG, 16*sizeof(DHDEV_RECORD_CFG), &retlen, CONFIG_WAITTIME);
	if (!bRet || retlen != m_pDev->Info.byChanNum*sizeof(DHDEV_RECORD_CFG))
	{
		((CNetSDKDemoDlg*)AfxGetMainWnd())->LastError();
		return;
	}
	else
	{
		m_bInited = TRUE;
	}
	
	//show config information
	if (m_channelsel.GetCount() > 0)
	{
		m_channelsel.SetCurSel(0);
		OnSelchangeComboChanno();
	}
}
Example #3
0
void CSerialConfig::OnRestore232() 
{
CString sTemp;
	char cTemp[100];
	bGet232Serial = FALSE;

	if(!CLIENT_GetDevConfig(m_Device->LoginID, DEV_GET_RS232CFG, 0, &rs232cfg, sizeof(NET_DEV_RS232CFG), &dwReturned, CONFIG_WAITTIME))
	{
		AfxMessageBox(ConvertString("232error"));
	}
	else
	{
		m_baud232sel.SetCurSel(rs232cfg.dwBaudRate);
		m_databit232sel.SetCurSel(rs232cfg.byDataBit);
		m_stopbit232sel.SetCurSel(rs232cfg.byStopBit);
		m_checkbit232sel.SetCurSel(rs232cfg.byParity);
		m_flow232sel.SetCurSel(rs232cfg.byFlowcontrol);
		m_operatemodesel.SetCurSel(rs232cfg.dwWorkMode);
		if(rs232cfg.dwWorkMode == 0)
		{
			m_PPPmodesel.SetCurSel(rs232cfg.struPPPConfig.byPPPMode);
			m_dbmodesel.SetCurSel(rs232cfg.struPPPConfig.byRedialMode);
			m_bDialBack = rs232cfg.struPPPConfig.byRedial;
			m_bEncrypt = rs232cfg.struPPPConfig.byDataEncrypt;
			ZeroMemory(cTemp, 100);
			memcpy(cTemp, rs232cfg.struPPPConfig.sUsername, NAME_LEN);
			m_username.Format("%s", cTemp);
			ZeroMemory(cTemp, 100);
			memcpy(cTemp, rs232cfg.struPPPConfig.sPassword, PASSWD_LEN);
			m_userpsw.Format("%s", cTemp);
			ZeroMemory(cTemp, 100);
			memcpy(cTemp, rs232cfg.struPPPConfig.sPassword, PASSWD_LEN);
			m_verifypsw.Format("%s", cTemp);

			m_remoteIP = rs232cfg.struPPPConfig.sRemoteIP;
			m_localIP = rs232cfg.struPPPConfig.sLocalIP;
			m_IPmask = rs232cfg.struPPPConfig.sLocalIPMask;
			
			ZeroMemory(cTemp, 100);
			memcpy(cTemp, rs232cfg.struPPPConfig.sTelephoneNumber, PHONENUMBER_LEN);
			m_phoneNo.Format("%s", cTemp);
		}
		else if(rs232cfg.dwWorkMode == 1)
		{
			SwitchMode(FALSE);
		}
		else if(rs232cfg.dwWorkMode == 2)
		{
			SwitchMode(FALSE);
		}
		bGet232Serial = TRUE;
		GetDlgItem(IDC_APPLY232)->EnableWindow(TRUE);
	}
	UpdateData(FALSE);
}
Example #4
0
void CSerialConfig::OnRestore485() 
{
	CString sTemp;
//	char cTemp[100];
	m_nChanSel = 0;
	m_nCopyChanNum = -1;
	m_copychlsel.ResetContent();
	m_chlnosel.ResetContent();	
	sTemp.Format(_T(ConvertString(NAME_SERIALCFG_ALLCHANNEL)));
	m_copychlsel.AddString(sTemp);
	
	for(int i=0; i < m_Device->Info.byChanNum; i++)
	{
		bGet485Serial[i] = FALSE;
		bSetSerial485[i] = FALSE;
		sTemp.Format("%d", (i+1));
		sTemp = ConvertString(NAME_SERIALCFG_CHANNEL) + sTemp;
		m_chlnosel.AddString(sTemp);
		m_copychlsel.AddString(sTemp);
		m_nChanNum = i;
	
		if(!CLIENT_GetDevConfig(m_Device->LoginID, DEV_GET_DECODERCFG, m_nChanNum,&decodercfg[i], sizeof(NET_DEV_DECODERCFG), &dwReturned, CONFIG_WAITTIME))
		{		
			AfxMessageBox(ConvertString("485 error"));	
		}
		else
		{
			bGet485Serial[i] = TRUE;
		}

	}
	if(bGet485Serial[m_nChanSel])
	{
		m_nChanNum = m_nChanSel;
		m_baud485sel.SetCurSel(decodercfg[m_nChanSel].dwBaudRate);
		m_databit485sel.SetCurSel(decodercfg[m_nChanSel].byDataBit);
		m_stopbit485sel.SetCurSel(decodercfg[m_nChanSel].byStopBit);
		m_checkbit485sel.SetCurSel(decodercfg[m_nChanSel].byParity);
		m_flow485sel.SetCurSel(decodercfg[m_nChanSel].byFlowcontrol);
		m_decodetypesel.SetCurSel(decodercfg[m_nChanSel].wDecoderType);
		m_decodeAddress = (BYTE)decodercfg[m_nChanSel].wDecoderAddress;
		GetDlgItem(IDC_APPLY232)->EnableWindow(TRUE);
		GetDlgItem(IDC_COPYOK)->EnableWindow(TRUE);
		GetDlgItem(IDC_APPLY485)->EnableWindow(TRUE);	
	}	
	
	m_chlnosel.SetCurSel(m_nChanSel);
	m_copychlsel.SetCurSel(m_nChanSel);
	UpdateData(FALSE);
}
Example #5
0
void CTourCfg::OnQuery() 
{
	int nRet = 0;
	DWORD dwRetLen = 0;
	
	nRet = CLIENT_GetDevConfig(m_hCurLoginID, DH_DEV_DECODER_TOUR_CFG, m_nDecChannel, &m_stuTourCfgInfo, sizeof(DHDEV_DECODER_TOUR_CFG), &dwRetLen, 2000);
	if (nRet && dwRetLen == sizeof(DHDEV_DECODER_TOUR_CFG))
	{
		ShowChannelInfo();	
	}
	else
	{
		MessageBox(ConvertString("Failed to query!"), ConvertString("Prompt"));
	}
}
Example #6
0
void CPannelDecoder::OnBntTourCfg() 
{
	CNVDSDKDemoDlg *pParentDlg = (CNVDSDKDemoDlg*)this->GetParent();
	
	HTREEITEM selectNode = pParentDlg->m_decoderTree.GetSelectedItem();
	if (selectNode != NULL)
	{
		HTREEITEM parentNode = selectNode;
		DWORD nData = pParentDlg->m_decoderTree.GetItemData(selectNode);
		if (nData <= 16 && nData >= 0)
		{
			parentNode = pParentDlg->m_decoderTree.GetParentItem(selectNode);
		}
		
		DECODER_INFO *pSelectDecoder = (DECODER_INFO *)pParentDlg->m_decoderTree.GetItemData(parentNode);
		if (pSelectDecoder != NULL)
		{
			int nRet = 0;
			DWORD dwRetLen = 0;
			DEV_ENCODER_CFG stuDecInfo = {0};
			int nTourNum = 0;
			
			nRet = CLIENT_GetDevConfig(pSelectDecoder->lLoginID, DH_DEV_ENCODER_CFG, -1, &stuDecInfo, sizeof(DEV_ENCODER_CFG), &dwRetLen, 2000);
			if (nRet && dwRetLen == sizeof(DEV_ENCODER_CFG))
			{
				nTourNum = stuDecInfo.bDecodeTour;
			}
				
			CTourCfg dlg;
			
			dlg.SetDlgParam(pSelectDecoder->lLoginID, nTourNum, pParentDlg->m_screenPannel.m_nCurMonitorID*4+pParentDlg->m_screenPannel.m_nCurWndID);
			int nResponse = dlg.DoModal();
			if (IDOK == nResponse)
			{
				
			}
		}
	}
	else
	{
		MessageBox(ConvertString("Select NVD first!"), ConvertString("Prompt"));
	}
	
	
}
Example #7
0
BOOL CVideoOutDlg::OnInitDialog() 
{
	CDialog::OnInitDialog();

	g_SetWndStaticText(this);
	
	// TODO: Add extra initialization here

	while(m_ctlResolution.GetCount() > 0)
	{
		m_ctlResolution.DeleteString(0);
	}


	BOOL bRet = FALSE;
	DWORD retlen = 0;
	memset(&m_stVideoOut, 0, sizeof(DEV_VIDEOOUT_INFO));
	if (m_hCurLoginID != 0)
	{
		bRet = CLIENT_GetDevConfig(m_hCurLoginID, DH_DEV_VIDEOOUT_CFG, 0, &m_stVideoOut, sizeof(DEV_VIDEOOUT_INFO), &retlen, 1000);
		if (!bRet || retlen != sizeof(DEV_VIDEOOUT_INFO)) 
		{
			MessageBox(ConvertString("Fail to get configuration"), ConvertString("Prompt"));
			return 0;
		}

		char *rsName[20] = {"D1", "HD1", "BCIF", "CIF", "QCIF", "VGA", "QVGA", "SVCD","QQVGA", "SVGA", "XVGA",
							"WXGA", "SXGA", "WSXGA", "UXGA", "WUXGA", "LTF", "720P", "1080P", "1.3M"};
		int rsIdx = 0;
		for (int i = 0; i < 20; i++)
		{
			if (m_stVideoOut.dwImageSizeMask & (0x01<<i))
			{
				m_ctlResolution.InsertString(rsIdx, ConvertString(rsName[i]));
				rsIdx++;
			}
		}
		BYTE byrsIdx = 0;
		GetMaskedIndex(&byrsIdx, m_stVideoOut.nImageSize, m_stVideoOut.dwImageSizeMask);		
		m_ctlResolution.SetCurSel(byrsIdx);
	}
		
	return TRUE;  // return TRUE unless you set the focus to a control
	              // EXCEPTION: OCX Property Pages should return FALSE
}
Example #8
0
BOOL CAutoMaintenance::OnInitDialog() 
{
	CDialog::OnInitDialog();
	
	if (m_dev != NULL)
	{
		DWORD ret = 0;
		BOOL b = CLIENT_GetDevConfig(m_dev->LoginID, DH_DEV_AUTOMTCFG, 0, &m_atC, sizeof(DHDEV_AUTOMT_CFG), &ret, CONFIG_WAITTIME);
		if (!b || ret != sizeof(DHDEV_AUTOMT_CFG))
		{
			MessageBox(ConvertString("get auto maintenance info failed!"));
		}
		else
		{
			m_autoday.SetCurSel(m_atC.byAutoRebootDay);
			m_autotime.SetCurSel(m_atC.byAutoRebootTime);
			m_autodel.SetCurSel(m_atC.byAutoDeleteFilesTime);
		}
	}
	
	return TRUE;  // return TRUE unless you set the focus to a control
	              // EXCEPTION: OCX Property Pages should return FALSE
}
Example #9
0
/*----------------------------------
函数功能:获取码流分辨率
调用参数:
返回参数:
函数说明:连接NVR后,获取单个摄像头码流分辨率
-----------------------------------*/
_EXT_C_DEVCAM_API BOOL CAM_GetSize(CommonParam *commonParam,long channel){
	if (commonParam == NULL){
		return FALSE;
	}
	if(commonParam->deviceType == NET_IPC_SERIAL){
		return TRUE;
	}
	if(commonParam->cameraParam[channel].playHwnd == NULL){
		commonParam->cameraParam[channel].playHwnd = CreateWindow("EDIT",NULL,WS_OVERLAPPEDWINDOW,CW_USEDEFAULT,CW_USEDEFAULT, CW_USEDEFAULT,CW_USEDEFAULT,NULL,NULL,NULL,NULL);
	}
	NET_DEVICEINFO	      deviceInfo = {0};
	int				      error;
	DHDEV_CHANNEL_CFG	  channelConfig = {0};
	LDWORD			      bytesReturned;
	commonParam->cameraParam[channel].loginID = CLIENT_Login(commonParam->cameraParam[channel].deviceIP,commonParam->cameraParam[channel].devicePort,commonParam->cameraParam[channel].userName,commonParam->cameraParam[channel].passWord,&deviceInfo,&error);
	if(error != 0){
		return FALSE;
	}
	CLIENT_GetDevConfig(commonParam->cameraParam[channel].loginID,DH_DEV_CHANNELCFG,0,&channelConfig,sizeof(channelConfig),&bytesReturned);
	GetSize(channelConfig.stMainVideoEncOpt->byImageSize,commonParam->cameraParam[channel].frameWidth,commonParam->cameraParam[channel].frameHeight);
	CLIENT_Logout(commonParam->cameraParam[channel].loginID);

	return TRUE;
}
Example #10
0
BOOL CSerialConfig::OnInitDialog() 
{
	CDialog::OnInitDialog();
	g_SetWndStaticText(this);

	CRect rc(0, 0, 0, 0);
	GetParent()->GetClientRect(&rc);
	((CTabCtrl*)GetParent())->AdjustRect(FALSE, &rc);
	MoveWindow(&rc);

	//初始化界面
	m_checkbit232sel.InsertString(0, ConvertString(MSG_SERIALCFG_NONE));
	m_checkbit232sel.InsertString(1, ConvertString(MSG_SERIALCFG_ODD));
	m_checkbit232sel.InsertString(2, ConvertString(MSG_SERIALCFG_EVEN));
	
	m_flow232sel.InsertString(0, MSG_SERIALCFG_NOCTRL);
	m_flow232sel.InsertString(1, MSG_SERIALCFG_SCTRL);
	m_flow232sel.InsertString(2, MSG_SERIALCFG_HCTRL);

	m_operatemodesel.InsertString(0, MSG_SERIALCFG_PPPOE);
	m_operatemodesel.InsertString(1, MSG_SERIALCFG_CONSOLE);
	m_operatemodesel.InsertString(2, MSG_SERIALCFG_TRANSPARENT);

	m_PPPmodesel.InsertString(0, MSG_SERIALCFG_ACTIVE);	
	m_PPPmodesel.InsertString(1, MSG_SERIALCFG_PASSIVE);
	
	m_dbmodesel.InsertString(0, MSG_SERIALCFG_SPECIFIED);
	m_dbmodesel.InsertString(1, MSG_SERIALCFG_DEFAULT);

	m_checkbit485sel.InsertString(0, MSG_SERIALCFG_NONE);
	m_checkbit485sel.InsertString(1, MSG_SERIALCFG_ODD);
	m_checkbit485sel.InsertString(2, MSG_SERIALCFG_EVEN);

	m_flow485sel.InsertString(0, MSG_SERIALCFG_NOCTRL);
	m_flow485sel.InsertString(1, MSG_SERIALCFG_SCTRL);
	m_flow485sel.InsertString(2, MSG_SERIALCFG_HCTRL);


	CString sTemp;
	char cTemp[100];
	m_nChanSel = 0;
	m_nCopyChanNum = -1;
	m_copychlsel.ResetContent();
	m_chlnosel.ResetContent();	
	sTemp.Format(ConvertString(_T(NAME_SERIALCFG_ALLCHANNEL)));
	m_copychlsel.AddString(sTemp);
	
	bSetSerial232 = FALSE;
	bGet232Serial = FALSE;
	
	for(int i=0; i < m_Device->Info.byChanNum; i++)
	{
		bGet485Serial[i] = FALSE;
		bSetSerial485[i] = FALSE;
		sTemp.Format("%d", (i+1));
		sTemp = ConvertString(NAME_SERIALCFG_CHANNEL) + sTemp;
		m_chlnosel.AddString(sTemp);
		m_copychlsel.AddString(sTemp);
		m_nChanNum = i;
		//if(m_bConnectServer)
		//{
			if(!CLIENT_GetDevConfig(m_Device->LoginID, DEV_GET_DECODERCFG, m_nChanNum,&decodercfg[i], sizeof(NET_DEV_DECODERCFG), &dwReturned, CONFIG_WAITTIME))
			{		
			//	sTemp.Format("获取通道%d 485串口参数失败!: DEV_GET_DECODERCFG = %d \n", m_nChanNum, NET_DVR_GetLastError());
				AfxMessageBox(ConvertString("485 error"));	
			}
			else
			{
				bGet485Serial[i] = TRUE;
			}
	//	}	
	}
	if(bGet485Serial[m_nChanSel])
	{
		m_nChanNum = m_nChanSel;
		m_baud485sel.SetCurSel(GetBaudRateSel(decodercfg[m_nChanSel].dwBaudRate));
		m_databit485sel.SetCurSel(GetDatabitSel(decodercfg[m_nChanSel].byDataBit));
		m_stopbit485sel.SetCurSel(decodercfg[m_nChanSel].byStopBit);
		m_checkbit485sel.SetCurSel(decodercfg[m_nChanSel].byParity);
		m_flow485sel.SetCurSel(decodercfg[m_nChanSel].byFlowcontrol);
		m_decodetypesel.SetCurSel(decodercfg[m_nChanSel].wDecoderType);
		m_decodeAddress = (BYTE)decodercfg[m_nChanSel].wDecoderAddress;
		GetDlgItem(IDC_APPLY232)->EnableWindow(TRUE);
		GetDlgItem(IDC_COPYOK)->EnableWindow(TRUE);
		GetDlgItem(IDC_APPLY485)->EnableWindow(TRUE);	
	}	
//	if(m_bConnectServer)
//	{
		if(!CLIENT_GetDevConfig(m_Device->LoginID, DEV_GET_RS232CFG, 0, &rs232cfg, sizeof(NET_DEV_RS232CFG), &dwReturned, CONFIG_WAITTIME))
		{
			//sTemp.Format("获取232串口参数失败!: NET_DVR_GET_RS232CFG = %d \n", NET_DVR_GetLastError());
			AfxMessageBox(ConvertString("232error"));
		}
		else
		{
			m_baud232sel.SetCurSel(GetBaudRateSel(rs232cfg.dwBaudRate));
			m_databit232sel.SetCurSel(GetDatabitSel(rs232cfg.byDataBit));
			m_stopbit232sel.SetCurSel(rs232cfg.byStopBit);
			m_checkbit232sel.SetCurSel(rs232cfg.byParity);
			m_flow232sel.SetCurSel(rs232cfg.byFlowcontrol);
			m_operatemodesel.SetCurSel(rs232cfg.dwWorkMode);
			if(rs232cfg.dwWorkMode == 0)
			{
				m_PPPmodesel.SetCurSel(rs232cfg.struPPPConfig.byPPPMode);
				m_dbmodesel.SetCurSel(rs232cfg.struPPPConfig.byRedialMode);
				m_bDialBack = rs232cfg.struPPPConfig.byRedial;
				m_bEncrypt = rs232cfg.struPPPConfig.byDataEncrypt;
				ZeroMemory(cTemp, 100);
				memcpy(cTemp, rs232cfg.struPPPConfig.sUsername, NAME_LEN);
				m_username.Format("%s", cTemp);
				ZeroMemory(cTemp, 100);
				memcpy(cTemp, rs232cfg.struPPPConfig.sPassword, PASSWD_LEN);
				m_userpsw.Format("%s", cTemp);
				ZeroMemory(cTemp, 100);
				memcpy(cTemp, rs232cfg.struPPPConfig.sPassword, PASSWD_LEN);
				m_verifypsw.Format("%s", cTemp);

				m_remoteIP = rs232cfg.struPPPConfig.sRemoteIP;
				m_localIP = rs232cfg.struPPPConfig.sLocalIP;
				m_IPmask = rs232cfg.struPPPConfig.sLocalIPMask;
				
				ZeroMemory(cTemp, 100);
				memcpy(cTemp, rs232cfg.struPPPConfig.sTelephoneNumber, PHONENUMBER_LEN);
				m_phoneNo.Format("%s", cTemp);
			}
			else if(rs232cfg.dwWorkMode == 1)
			{
				SwitchMode(FALSE);
			}
			else if(rs232cfg.dwWorkMode == 2)
			{
				SwitchMode(FALSE);
			}
			bGet232Serial = TRUE;
			GetDlgItem(IDC_APPLY232)->EnableWindow(TRUE);
		}
//	}
		
	m_chlnosel.SetCurSel(m_nChanSel);
	m_copychlsel.SetCurSel(m_nChanSel);
//	pSerialCFG = this;
	UpdateData(FALSE);
	
	return TRUE;  // return TRUE unless you set the focus to a control
	              // EXCEPTION: OCX Property Pages should return FALSE
}
Example #11
0
BOOL CUserConfig::OnInitDialog() 
{
	CDialog::OnInitDialog();
	g_SetWndStaticText(this);
	
	CRect rc(0, 0, 0, 0);
	GetParent()->GetClientRect(&rc);
	((CTabCtrl*)GetParent())->AdjustRect(FALSE, &rc);
	MoveWindow(&rc);
	
	CString csUserName;
	DWORD dwReturned;
	bSetUserParams = FALSE;
	char cTemp[100];

//	if(m_bConnectServer)
//	{
		if(!CLIENT_GetDevConfig(m_Device->LoginID, DEV_GET_USERCFG , 0,&m_user, sizeof(NET_DEV_USER), &dwReturned, CONFIG_WAITTIME))
		{
		//	CString sTemp;
		//	sTemp.Format("ERROR: NET_DVR_GET_USERCFG = %d \n", NET_DVR_GetLastError());
			AfxMessageBox(ConvertString("usercfg error"));	
		}
		else
		{
			if(m_bSuperUser)
			{
				m_usernum = 0;
				m_usersel.SetCurSel(m_usernum);
			}
			else
			{
				for(int i=0; i<MAX_USERNUM; i++)
				{
					ZeroMemory(cTemp, 100);
					memcpy(cTemp, m_user.struUser[i].sUserName, MAX_NAMELEN);
					csUserName.Format("%s", cTemp);
					if(strcmp(csUserName, m_Device->UserNanme) == 0)
					{
						break;
					}
				}
				m_usernum = i;
				m_usersel.SetCurSel(m_usernum);
			}
			ZeroMemory(cTemp, 100);
			memcpy(cTemp, m_user.struUser[m_usernum].sUserName, MAX_NAMELEN);
			m_username.Format("%s", cTemp);
			ZeroMemory(cTemp, 100);
			memcpy(cTemp, m_user.struUser[m_usernum].sPassword, PASSWD_LEN);
			m_userpsw.Format("%s", cTemp);
			ZeroMemory(cTemp, 100);
			memcpy(cTemp, m_user.struUser[m_usernum].sPassword, PASSWD_LEN);
			m_userpsw2.Format("%s", cTemp);
			m_userip.Format("%s",m_user.struUser[m_usernum].sUserIP);
			m_mac1.Format("%02x",m_user.struUser[m_usernum].byMACAddr[0]);
			m_mac2.Format("%02x",m_user.struUser[m_usernum].byMACAddr[1]);
			m_mac3.Format("%02x",m_user.struUser[m_usernum].byMACAddr[2]);
			m_mac4.Format("%02x",m_user.struUser[m_usernum].byMACAddr[3]);
			m_mac5.Format("%02x",m_user.struUser[m_usernum].byMACAddr[4]);
			m_mac6.Format("%02x",m_user.struUser[m_usernum].byMACAddr[5]);		
			m_bLright_ptz = m_user.struUser[m_usernum].dwLocalRight[0];
			m_bLright_rec = m_user.struUser[m_usernum].dwLocalRight[1];
			m_bLright_playback = m_user.struUser[m_usernum].dwLocalRight[2];
			m_bLright_cfg = m_user.struUser[m_usernum].dwLocalRight[3];
			m_bLright_log = m_user.struUser[m_usernum].dwLocalRight[4];
			m_bLright_more = m_user.struUser[m_usernum].dwLocalRight[5];
			m_bRright_ptz = m_user.struUser[m_usernum].dwRemoteRight[0];
			m_bRright_rec = m_user.struUser[m_usernum].dwRemoteRight[1];
			m_bRright_playback = m_user.struUser[m_usernum].dwRemoteRight[2];
			m_bRright_cfg = m_user.struUser[m_usernum].dwRemoteRight[3];
			m_bRright_log = m_user.struUser[m_usernum].dwRemoteRight[4];
			m_bRright_more = m_user.struUser[m_usernum].dwRemoteRight[5];
			m_bRright_talk = m_user.struUser[m_usernum].dwRemoteRight[6];
			m_bRright_monitor = m_user.struUser[m_usernum].dwRemoteRight[7];
			m_bRright_alarm = m_user.struUser[m_usernum].dwRemoteRight[8];
			m_bRright_localop = m_user.struUser[m_usernum].dwRemoteRight[9];
			m_bRright_serial = m_user.struUser[m_usernum].dwRemoteRight[10];
			GetDlgItem(IDC_USERSEL)->EnableWindow(FALSE);
			GetDlgItem(IDC_USERIP)->EnableWindow(FALSE);
			GetDlgItem(IDC_MAC1)->EnableWindow(FALSE);
			GetDlgItem(IDC_MAC2)->EnableWindow(FALSE);
			GetDlgItem(IDC_MAC3)->EnableWindow(FALSE);
			GetDlgItem(IDC_MAC4)->EnableWindow(FALSE);
			GetDlgItem(IDC_MAC5)->EnableWindow(FALSE);
			GetDlgItem(IDC_MAC6)->EnableWindow(FALSE);
			GetDlgItem(IDC_USERNAME)->EnableWindow(FALSE);
			GetDlgItem(IDC_USERPSW)->EnableWindow(FALSE);
			GetDlgItem(IDC_USERPSW2)->EnableWindow(FALSE);			
			GetDlgItem(IDC_LRIGHT_PTZ)->EnableWindow(FALSE);
			GetDlgItem(IDC_LRIGHT_REC)->EnableWindow(FALSE);	
			GetDlgItem(IDC_LRIGHT_PLAYBACK)->EnableWindow(FALSE);
			GetDlgItem(IDC_LRIGHT_CFG)->EnableWindow(FALSE);	
			GetDlgItem(IDC_LRIGHT_LOG)->EnableWindow(FALSE);
			GetDlgItem(IDC_LRIGHT_MORE)->EnableWindow(FALSE);	
			GetDlgItem(IDC_RRIGHT_PTZ)->EnableWindow(FALSE);	
			GetDlgItem(IDC_RRIGHT_REC)->EnableWindow(FALSE);
			GetDlgItem(IDC_RRIGHT_PLAYBACK)->EnableWindow(FALSE);	
			GetDlgItem(IDC_RRIGHT_CFG)->EnableWindow(FALSE);
			GetDlgItem(IDC_RRIGHT_LOG)->EnableWindow(FALSE);
			GetDlgItem(IDC_RRIGHT_MORE)->EnableWindow(FALSE);	
			GetDlgItem(IDC_RRIGHT_TALK)->EnableWindow(FALSE);
			GetDlgItem(IDC_RRIGHT_MONITOR)->EnableWindow(FALSE);	
			GetDlgItem(IDC_RRIGHT_ALARM)->EnableWindow(FALSE);
			GetDlgItem(IDC_RRIGHT_LOCALOP)->EnableWindow(FALSE);
			GetDlgItem(IDC_RRIGHT_SERIAL)->EnableWindow(FALSE);
			
			if(m_bSuperUser)
			{
				GetDlgItem(IDC_USERSEL)->EnableWindow(FALSE);
				GetDlgItem(IDC_USERIP)->EnableWindow(FALSE);
				GetDlgItem(IDC_MAC1)->EnableWindow(FALSE);
				GetDlgItem(IDC_MAC2)->EnableWindow(FALSE);
				GetDlgItem(IDC_MAC3)->EnableWindow(FALSE);
				GetDlgItem(IDC_MAC4)->EnableWindow(FALSE);
				GetDlgItem(IDC_MAC5)->EnableWindow(FALSE);
				GetDlgItem(IDC_MAC6)->EnableWindow(FALSE);
				GetDlgItem(IDC_USERNAME)->EnableWindow(FALSE);
				GetDlgItem(IDC_USERPSW)->EnableWindow(FALSE);
				GetDlgItem(IDC_USERPSW2)->EnableWindow(FALSE);	
			}		
			GetDlgItem(IDC_USERCFG_APPLY)->EnableWindow(TRUE);
		}
//	}
	
	GetDlgItem(IDC_USERNAME)->EnableWindow(FALSE);
	UpdateData(FALSE);
	
	return TRUE;  // return TRUE unless you set the focus to a control
	              // EXCEPTION: OCX Property Pages should return FALSE
}
Example #12
0
void CConfigChannel::GetConfig()
{
	if (!m_pDev || m_bInited)
	{
		return;
	}
	
	while(m_resolutionsel.GetCount() > 0)
	{
		m_resolutionsel.DeleteString(0);
	}
	
	while(m_encodetypesel.GetCount() > 0)
	{
		m_encodetypesel.DeleteString(0);
	}

	BOOL bRet = FALSE;
	DWORD retlen = 0;
	bRet = CLIENT_GetDevConfig(m_pDev->LoginID, DEV_DEVICECFG, 0,
								&m_sysCFG, sizeof(DEV_SYSTEM_ATTR_CFG), &retlen, CONFIG_WAITTIME);
	if (!bRet || retlen != sizeof(DEV_SYSTEM_ATTR_CFG)) 
	{
		((CNetSDKDemoDlg*)AfxGetMainWnd())->LastError();
		return;
	}

	bRet = CLIENT_GetDevConfig(m_pDev->LoginID, DEV_CHANNELCFG, -1/*all channel*/,
								&m_chnCFG, 16*sizeof(DEV_CHANNEL_CFG), &retlen, CONFIG_WAITTIME);
	if (!bRet || retlen != m_pDev->Info.byChanNum*sizeof(DEV_CHANNEL_CFG))
	{
		((CNetSDKDemoDlg*)AfxGetMainWnd())->LastError();
		return;
	}
	else
	{
		m_bInited = TRUE;
	}

	//compute resolution and encode type name list
	char *rsName[8] = {"D1", "HD1", "BCIF", "CIF", "QCIF", "VGA", "QVGA", "SVCD"};
	char *ecName[8] = {"DIVX_MPEG4", "MS_MPEG4", "MPEG2", "MPEG1", "H263", "MJPG", "FCC_MPEG4", "H264"};

	BYTE rsIdx = 0;
	for (int mi = 0; mi < 8; mi++)
	{
		if (m_sysCFG.stDspEncodeCap.dwImageSizeMask & (0x01<<mi))
		{
			m_resolutionsel.InsertString(rsIdx, rsName[mi]);
			rsIdx++;
		}
	}

	BYTE ecIdx = 0;
	for (int ei = 0; ei < 8; ei++)
	{
		if (m_sysCFG.stDspEncodeCap.dwEncodeModeMask & (0x01<<ei))
		{
			m_encodetypesel.InsertString(ecIdx, ecName[ei]);
			ecIdx++;
		}
	}

	//show config information
	if (m_channelsel.GetCount() > 0)
	{
		m_channelsel.SetCurSel(0);
		OnSelchangeComboChanno();
	}
}
Example #13
0
void CConfigNetwork::GetConfig()
{
	if (!m_pDev || m_bInited)
	{
		return;
	}
	
	while (m_ethernetsel.GetCount() > 0)
	{
		m_ethernetsel.DeleteString(0);
	}

	BOOL bRet = FALSE;
	DWORD retlen = 0;
	bRet = CLIENT_GetDevConfig(m_pDev->LoginID, DH_DEV_DEVICECFG, 0,
								&m_sysCFG, sizeof(DHDEV_SYSTEM_ATTR_CFG), &retlen, CONFIG_WAITTIME*4);
	if (!bRet || retlen != sizeof(DHDEV_SYSTEM_ATTR_CFG)) 
	{
		((CNetSDKDemoDlg*)AfxGetMainWnd())->LastError();
		return;
	}
	CString strEth;
	for (int i = 0; i < m_sysCFG.byNetIONum; i++)
	{
		strEth.Format(ConvertString("Ethernet %d"), i+1);
		m_ethernetsel.InsertString(i, strEth);
	}

	bRet = CLIENT_GetDevConfig(m_pDev->LoginID, DH_DEV_NETCFG, 0,
								&m_netCFG, sizeof(DHDEV_NET_CFG), &retlen, CONFIG_WAITTIME*4);
	if (!bRet || retlen != sizeof(DHDEV_NET_CFG))
	{
		((CNetSDKDemoDlg*)AfxGetMainWnd())->LastError();
		return;
	}
	else
	{
		m_bInited = TRUE;
	}

	//show config information
	SetDlgItemText(IDC_EDIT_DEVNAME, m_netCFG.sDevName);
	SetDlgItemInt(IDC_EDIT_MAXTCP, m_netCFG.wTcpMaxConnectNum);
	SetDlgItemInt(IDC_EDIT_TCPPORT, m_netCFG.wTcpPort);
	SetDlgItemInt(IDC_EDIT_UDPPORT, m_netCFG.wUdpPort);
	SetDlgItemInt(IDC_EDIT_HTTPPORT, m_netCFG.wHttpPort);
	SetDlgItemInt(IDC_EDIT_HTTPSPORT, m_netCFG.wHttpsPort);
	SetDlgItemInt(IDC_EDIT_SSLPORT, m_netCFG.wSslPort);
	SetDlgItemInt(IDC_EDIT_MAXTCP, m_netCFG.wTcpMaxConnectNum);
	SetDlgItemInt(IDC_EDIT_MAXTCP, m_netCFG.wTcpMaxConnectNum);
	
	//ethernet config
	if (m_ethernetsel.GetCount() > 0)
	{
		m_ethernetsel.SetCurSel(0);
		OnSelchangeComboEthernet();
	}

	//remote config
	if (m_remotehostsel.GetCount() > 0)
	{
		m_remotehostsel.SetCurSel(0);
		OnSelchangeComboRemotehost();
	}

	//mail config
	SetDlgItemText(IDC_EDIT_MAILUSERNAME, m_netCFG.struMail.sUserName);
	SetDlgItemText(IDC_EDIT_MAILUSERPSW, m_netCFG.struMail.sUserPsw);
	SetDlgItemText(IDC_EDIT_MAILIP, m_netCFG.struMail.sMailIPAddr);
	SetDlgItemInt(IDC_EDIT_MAILPORT, m_netCFG.struMail.wMailPort);
	SetDlgItemText(IDC_EDIT_MAILDESADDR, m_netCFG.struMail.sDestAddr);
	SetDlgItemText(IDC_EDIT_MAILCCADDR, m_netCFG.struMail.sCcAddr);
	SetDlgItemText(IDC_EDIT_MAILBCCADDR, m_netCFG.struMail.sBccAddr);
	SetDlgItemText(IDC_EDIT_MAILSUBJECT, m_netCFG.struMail.sSubject);
	
	//Begin: Add by li_deming(11517) 2008-1-30
	//DDNS config
	bRet = FALSE;
	bRet = CLIENT_GetDevConfig(m_pDev->LoginID, DH_DEV_MULTI_DDNS, 0,
								&m_ddnsCFG, sizeof(DHDEV_MULTI_DDNS_CFG), &retlen, CONFIG_WAITTIME*4);
	selIndexOld=-1;	
	if(bRet == TRUE)
	{
		CString strItem="";
		m_ctlDDNSIDList.Clear();
		for(int i=0; i<m_ddnsCFG.dwDdnsServerNum;i++)
		{
			strItem="";
			strItem.Format(ConvertString("DDNS %d"),i);
			m_ctlDDNSIDList.InsertString( i,  strItem);				
		}
		UpdateData(FALSE);
		m_ctlDDNSIDList.SetCurSel(0);
		OnSelchangeComboDdnsid();
	}
	else
	{
		AfxMessageBox(ConvertString("Get Dev Multi DDNS Info Fail!"));
	}
	
	//End:li_deming(11517)
}
Example #14
0
/*----------------------------------
函数功能:
调用参数:BASE_PARAM的指针:
调用成功,返回TRUE;调用失败,返回FALSE。其它需要返回的参数,置于结构:BASE_PARAM中。
函数说明:
-----------------------------------*/
_EXT_C_DEVCAM_API BOOL CAM_Init(CommonParam *commonParam){
	if (commonParam == NULL){
		commonParam->devError = InitError;
		return FALSE;
	}

	CLIENT_SetAutoReconnect(AutoConnectFunc,0);

	NET_DEVICEINFO	      deviceInfo = {0};
	int				      error;
	DHDEV_CHANNEL_CFG	  channelConfig = {0};
	DHDEV_SYSTEM_ATTR_CFG systemAttr = {0};
	LDWORD			      bytesReturned;

	commonParam->loginID=CLIENT_Login(commonParam->deviceIP,commonParam->devicePort,commonParam->userName,commonParam->passWord,&deviceInfo,&error);

	if(error != 0){
		commonParam->devError = InitError;
		return FALSE;
	}

	if(!CLIENT_GetDevConfig(commonParam->loginID, DH_DEV_DEVICECFG,-1,&systemAttr,sizeof(systemAttr),&bytesReturned)){
		commonParam->devError = InitError;
		return FALSE;
	}

	if(systemAttr.byDevType == NET_NVR_SERIAL){
		commonParam->deviceType = NET_NVR_SERIAL;
		DEV_ENCODER_CFG_EX encoderConfigEx = {0};
		if(!CLIENT_GetDevConfig(commonParam->loginID, DH_DEV_ENCODER_CFG, -1, &encoderConfigEx,sizeof(encoderConfigEx),&bytesReturned)){
			commonParam->devError = InitError;
			return FALSE;
		}

		commonParam->totalChannels = encoderConfigEx.nChannels;
		commonParam->onlineCameras = new int[encoderConfigEx.nChannels];
		commonParam->cameraParam = new struct tagCommonParam[encoderConfigEx.nChannels];
		for(int i=0;i<encoderConfigEx.nChannels;i++){
			commonParam->onlineCameras[i] = encoderConfigEx.stuDevInfo[i].bDevChnEnable;
			if(encoderConfigEx.stuDevInfo[i].byManuFactory == 22){
				commonParam->onlineCameras[i] = 0;
			}
		}
		
		for(int i = 0;i < encoderConfigEx.nChannels;i++){
			commonParam->cameraParam[i].deviceType = NET_IPC_SERIAL;
			strcpy(commonParam->cameraParam[i].deviceIP,encoderConfigEx.stuDevInfo[i].szDevIp);
			strcpy(commonParam->cameraParam[i].userName,encoderConfigEx.stuDevInfo[i].szDevUser);
			strcpy(commonParam->cameraParam[i].passWord,encoderConfigEx.stuDevInfo[i].szDevPwd);
			commonParam->cameraParam[i].devicePort = encoderConfigEx.stuDevInfo[i].wDevPort;
			commonParam->cameraParam[i].channelNo = encoderConfigEx.stuDevInfo[i].byDecoderID;
		}
	}else if(systemAttr.byDevType == NET_IPC_SERIAL){
		if(commonParam->playHwnd == NULL){
			commonParam->playHwnd = CreateWindow("EDIT",NULL,WS_OVERLAPPEDWINDOW,CW_USEDEFAULT,CW_USEDEFAULT, CW_USEDEFAULT,CW_USEDEFAULT,NULL,NULL,NULL,NULL);
		}
		char *channelName = new char[16*32];
		int channelCount ;
		if(!CLIENT_QueryChannelName(commonParam->loginID,channelName,16*32,&channelCount)){
			commonParam->devError = InitError;
			return FALSE;
		}
		strcpy(commonParam->deviceName,channelName);
		delete []channelName;
		channelName = NULL;
		commonParam->deviceType = NET_IPC_SERIAL;
		CLIENT_GetDevConfig(commonParam->loginID,DH_DEV_CHANNELCFG,0,&channelConfig,sizeof(channelConfig),&bytesReturned);
		GetSize(channelConfig.stMainVideoEncOpt->byImageSize,commonParam->frameWidth,commonParam->frameHeight);
	}else{
		commonParam->devError = InitError;
		return FALSE;
	}

	return TRUE;
}
Example #15
0
void CClientDlg::OnBtnLogin() 
{
	// TODO: Add your control notification handler code here
	UpdateData(TRUE);

	CString strIp = "";
	CString strUser = "";
	CString strPwd = "";
	int nPort = 0;
	int nError = 0;
	NET_DEVICEINFO deviceInfo = {0};

	GetDlgItemText(IDC_IPADDRESS_IP, strIp);
	GetDlgItemText(IDC_EDIT_USER, strUser);
	GetDlgItemText(IDC_EDIT_PWD, strPwd);
	nPort = GetDlgItemInt(IDC_EDIT_PORT);

	LONG lLoginHandle = CLIENT_Login((LPSTR)(LPCSTR)strIp, nPort, (LPSTR)(LPCSTR)strUser, (LPSTR)(LPCSTR)strPwd, &deviceInfo, &nError);
	if (lLoginHandle != 0)
	{
		m_lLoginHandle = lLoginHandle;

		GetDlgItem(IDC_BTN_LOGIN)->EnableWindow(FALSE);
		GetDlgItem(IDC_BTN_LOGOUT)->EnableWindow(TRUE);
		GetDlgItem(IDC_BTN_STARTTALK)->EnableWindow(TRUE);

		m_ctlEncodeType.ResetContent();
		//Search the audio talk encode formats then device supported 
		int retlen = 0;
		BOOL bSuccess = CLIENT_QueryDevState(m_lLoginHandle, DH_DEVSTATE_TALK_ECTYPE, (char*)&m_lstTalkEncode, sizeof(DHDEV_TALKFORMAT_LIST), &retlen, DEMO_SDK_WAITTIME);
		if (bSuccess && retlen == sizeof(DHDEV_TALKFORMAT_LIST))
		{
			int nIndex = 0;
			CString str;
			for (int i = 0; i < m_lstTalkEncode.nSupportNum; i++)
			{
				switch(m_lstTalkEncode.type[i].encodeType)
				{
				case DH_TALK_DEFAULT:
				case DH_TALK_PCM:
					str = ConvertString("PCM");
					break;
				case DH_TALK_G711a:
					str = ConvertString("G711a");
					break;
				case DH_TALK_AMR:
					str = ConvertString("AMR");
					break;
				case DH_TALK_G711u:
					str = ConvertString("G711u");
					break;
				case DH_TALK_G726:
					str = ConvertString("G726");
					break;
				case DH_TALK_AAC:
					str = ConvertString("AAC");
					break;
				case  DH_TALK_MP3:
					str = ConvertString("MP3");
					break;
				default:
					str = ConvertString("Unknow");
					break;
				}
                if (0 != str.Compare("Unknow"))
                {
                    CString s;
                    s.Format("_%d%s_%d%s", m_lstTalkEncode.type[i].nAudioBit, ConvertString("Bit"), m_lstTalkEncode.type[i].dwSampleRate, ConvertString("SampleRate"));
                    str += s;
                }
				nIndex = m_ctlEncodeType.AddString(str);
				m_ctlEncodeType.SetItemData(nIndex, i);
			}
			
			if (m_ctlEncodeType.GetCount() > 0)
			{
				m_ctlEncodeType.SetCurSel(0);
			}
		}

		DWORD dwRetBytes = 0;
		DHDEV_SYSTEM_ATTR_CFG stuAttr = { sizeof(DHDEV_SYSTEM_ATTR_CFG) };
		if (!CLIENT_GetDevConfig(lLoginHandle, DH_DEV_DEVICECFG, -1, &stuAttr, stuAttr.dwSize, &dwRetBytes, DEMO_SDK_WAITTIME))
		{
			MessageBox(ConvertString("Get device info failed!"), ConvertString("Prompt"));
		}
        m_ctlSpeakerChl.EnableWindow(bSuccess);
        GetDlgItem(IDC_CHECK_SPEAK)->EnableWindow(bSuccess);

		for(int i=0; i<stuAttr.byTalkOutChanNum; i++)
		{
			char szTmp[MAX_PATH] = {0};
			sprintf(szTmp,"speaker_%d", i);
			int nIndex = m_ctlSpeakerChl.AddString(szTmp);
			m_ctlSpeakerChl.SetItemData(nIndex, i);
			m_ctlSpeakerChl.SetCurSel(0);
		}
	}
	else
	{
		m_lLoginHandle = 0;
		ShowLoginErrorReason(nError);
	}
}
Example #16
0
static int 
dah_get_device_config(struct service *srv, int parm_id, void *parm)
{
    int user_id, ret = FALSE, err = 0;

    JDevCap *dev_cap;

    dah_service_t *dah_srv;
    dah_config_t  *dah_cfg;
    dah_new_config_t *dah_new_cfg;
    dah_query_t *query;

    NMP_ASSERT(srv && parm);

    dah_srv = (dah_service_t*)srv;
    user_id = dah_get_user_id(&dah_srv->parm);

    if (DAH_LOGOUT == user_id)
    {
        show_debug("Proxy device logout!!!!!!!!!!!!!!\n");
        return -1;
    }

    switch (parm_id)
    {
        case GET_DEVICE_CONFIG:
            goto GET_CFG;
        case GET_SERIAL_CONFIG:
            goto GET_CFG;
        case GET_DEVICE_TIME:
            goto GET_CFG;
        case GET_NTP_CONFIG:
            goto GET_CFG;
        case GET_NETWORK_CONFIG:
            goto GET_CFG;
        case GET_PPPOE_CONFIG:
            goto GET_CFG;
        case GET_FTP_CONFIG:
            goto GET_CFG;
        case GET_SMTP_CONFIG:
            goto GET_CFG;
        case GET_DDNS_CONFIG:
            goto GET_CFG;
        case GET_UPNP_CONFIG:
            goto GET_CFG;
        case GET_DISK_LIST:
            goto GET_DEV_STATE;
        case GET_ENCODE_CONFIG:
            goto GET_CFG;
        case GET_DISPLAY_CONFIG:
            goto GET_CFG;
        case GET_OSD_CONFIG:
            goto GET_CFG;
        case GET_PTZ_CONFIG:
            goto GET_NEW_CFG;
        case GET_RECORD_CONFIG:
            goto GET_CFG;
        case GET_HIDE_CONFIG:
            goto GET_CFG;
        case GET_MOTION_CONFIG:
            goto GET_CFG;
        case GET_VIDEO_LOST_CONFIG:
            goto GET_CFG;
        case GET_HIDE_ALARM_CONFIG:
            goto GET_CFG;
        case GET_IO_ALARM_CONFIG:
            goto GET_CFG;

        case GET_STORE_LOG:
            query = (dah_query_t*)parm;

            printf("user_id : %d\n", user_id);
            printf("channel  : %d\n", query->channel);
            printf("file_type: %d\n", query->file_type);
            if (CLIENT_QueryRecordFile((LLONG)user_id, 
                    query->channel,
                    query->file_type, 
                    &query->start, 
                    &query->end, 
                    query->card_id, 
                    (NET_RECORDFILE_INFO*)query->buffer, 
                    query->buf_size, 
                    &query->filecount,
                    query->waittime, FALSE))
            {
                show_info("count: %d<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<\n", query->filecount);
                ret = TRUE;
            }
            else
            {
                ret = FALSE;
                show_debug("ERROR: 0x%x<-------------------------------\n", 
                    CLIENT_GetLastError());
            }
            show_debug("CLIENT_QueryRecordFile: %s<-----------------\n", 
                (ret == TRUE) ? "Success" : "Failure");
            break;

        case GET_CRUISE_CONFIG:
            /*cruise = (dah_cruise_t*)parm;
            show_debug("crz_no: %d<--------------------\n", cruise->crz_no);
            ret = NET_DVR_GetPTZCruise(user_id, 
                    (LONG)cruise->channel, 
                    (LONG)cruise->crz_no, 
                    (NET_DVR_CRUISE_RET*)cruise->input);
            show_debug("NET_DVR_GetDVRConfig: %s<-------------------------------\n", 
                (ret == TRUE) ? "Success" : "Failure");
            if (FALSE == ret)
                show_debug("ERROR: 0x%x<-------------------------------\n", CLIENT_GetLastError());*/
            break;

        case GET_CAPABILITY_SET:
            dev_cap = (JDevCap*)parm;
            dev_cap->cap0 = DEV_CAP_VIDEO_IN | DEV_CAP_AUDIO | DEV_CAP_IRIS | DEV_CAP_PTZ | 
                DEV_CAP_ALARM_IN | DEV_CAP_ALARM_OUT | DEV_CAP_STORAGE | DEV_CAP_WEB | DEV_CAP_PLATFORM | 
                DEV_CAP_INTELLIGENT_ANALYSIS | DEV_CAP_UPDATE | DEV_CAP_VIDEO_OUT;// | DEV_CAP_IR;
            dev_cap->ftp_enable = 1;
            dev_cap->upnp_enable = 0;
            dev_cap->chn_cap.size = sizeof(JChnCap);
            dev_cap->chn_cap.encode = VIDEO_ENCODE_H264_E | VIDEO_ENCODE_MJPEG_E | 
                VIDEO_ENCODE_JPEG_E | VIDEO_ENCODE_MPEG4_E;
            dev_cap->chn_cap.supp_mask = 1;
            dev_cap->chn_cap.mask_count = 4;
            dev_cap->chn_cap.supp_hide_alarm = 1;
            dev_cap->chn_cap.hide_alarm_count = 1;
            dev_cap->chn_cap.supp_move_alarm = 1;
            dev_cap->chn_cap.move_alarm_count = 1;
            dev_cap->chn_cap.supp_video_lost_alarm = 1;
            dev_cap->chn_cap.osd_count = 1;
            dev_cap->chn_cap.stream_count = 2;
            dev_cap->chn_cap.stream_supp_resolution[0] = CAP_VIDEO_QCIF | CAP_VIDEO_CIF | CAP_VIDEO_HD1 | 
                CAP_VIDEO_D1 | CAP_VIDEO_QQVGA | CAP_VIDEO_QVGA | CAP_VIDEO_VGA | CAP_VIDEO_SVGA | 
                CAP_VIDEO_UXGA | CAP_VIDEO_720P | CAP_VIDEO_960 | CAP_VIDEO_1080P;
            dev_cap->chn_cap.stream_supp_resolution[1] = CAP_VIDEO_QCIF | CAP_VIDEO_CIF | CAP_VIDEO_HD1 | 
                CAP_VIDEO_D1 | CAP_VIDEO_QQVGA | CAP_VIDEO_QVGA | CAP_VIDEO_VGA | CAP_VIDEO_SVGA | 
                CAP_VIDEO_UXGA | CAP_VIDEO_720P | CAP_VIDEO_960 | CAP_VIDEO_1080P;
            dev_cap->chn_cap.stream_supp_resolution[2] = CAP_VIDEO_QCIF | CAP_VIDEO_CIF | CAP_VIDEO_HD1 | 
                CAP_VIDEO_D1 | CAP_VIDEO_QQVGA | CAP_VIDEO_QVGA | CAP_VIDEO_VGA | CAP_VIDEO_SVGA | 
                CAP_VIDEO_UXGA | CAP_VIDEO_720P | CAP_VIDEO_960 | CAP_VIDEO_1080P;
            dev_cap->chn_cap.stream_supp_resolution[3] = CAP_VIDEO_QCIF | CAP_VIDEO_CIF | CAP_VIDEO_HD1 | 
                CAP_VIDEO_D1 | CAP_VIDEO_QQVGA | CAP_VIDEO_QVGA | CAP_VIDEO_VGA | CAP_VIDEO_SVGA | 
                CAP_VIDEO_UXGA | CAP_VIDEO_720P | CAP_VIDEO_960 | CAP_VIDEO_1080P;
            dev_cap->chn_cap.stream_max_frate_rate[0] = 25;
            dev_cap->chn_cap.img_cap = IMA_BRIGHTNESS | IMA_CONTRAST | IMA_SATURATION | IMA_HUE | IMA_SHARPNESS;
            ret = TRUE;
            break;

        default:
            ret = FALSE;
            show_warn("parm_id Invalid!!!!!\n");
            break;
    }

    if (TRUE == ret)
        return 0;
    else
        return -1;

GET_CFG:
    dah_cfg = (dah_config_t*)parm;
    ret = CLIENT_GetDevConfig((LLONG)user_id, 
            (DWORD  ) dah_cfg->command, 
            (LONG   ) dah_cfg->channel, 
            (LPVOID ) dah_cfg->buffer, 
            (DWORD  ) dah_cfg->b_size, 
            (LPDWORD)&dah_cfg->returns, 
            (int    ) dah_cfg->waittime);
    show_debug("CLIENT_GetDevConfig: %s<-------------------------------\n", 
        (ret == TRUE) ? "Success" : "Failure");
    if (TRUE == ret)
        return 0;
    else
    {
        show_debug("ERROR: 0x%x<-------------------------------\n", CLIENT_GetLastError());
        return -1;
    }

GET_NEW_CFG:
    dah_new_cfg = (dah_new_config_t*)parm;
    ret = CLIENT_GetNewDevConfig((LLONG)user_id, 
            dah_new_cfg->command, 
            dah_new_cfg->channel, 
            dah_new_cfg->out_json, 
            DEF_OUT_JSON_SIZE, &err, 
            dah_new_cfg->waittime);

    show_debug("CLIENT_GetNewDevConfig: %s<-------------------------------\n", 
        (ret == TRUE) ? "Success" : "Failure");

    if (TRUE == ret)
    {
        CLIENT_ParseData(
            dah_new_cfg->command, 
            dah_new_cfg->out_json, 
            dah_new_cfg->buffer, 
            dah_new_cfg->b_size, NULL);
        return 0;
    }
    else
    {
        show_debug("ERROR: 0x%x, err: 0x%x<-------------------------------\n", 
            CLIENT_GetLastError(), err);
        return -1;
    }

GET_DEV_STATE:
    dah_cfg = (dah_config_t*)parm;
    ret = CLIENT_QueryDevState(user_id, 
            (DWORD) dah_cfg->command, 
            (char*) dah_cfg->buffer, 
            (DWORD) dah_cfg->b_size, 
            (int* )&dah_cfg->returns, 
            (int  ) dah_cfg->waittime);

    show_debug("CLIENT_QueryDevState: %s<-------------------------------\n", 
        (ret == TRUE) ? "Success" : "Failure");

    if (TRUE == ret)
        return 0;
    else
    {
        show_debug("ERROR: 0x%x, err: %d<-------------------------------\n", 
            CLIENT_GetLastError(), err);
        return -1;
    }
}