⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 sampledlg.cpp

📁 TM8000硬盘录像机客户端编程文档和Demo源代码
💻 CPP
📖 第 1 页 / 共 5 页
字号:
		m_NetTree.Expand(hTreeRoot, TVE_EXPAND) ;
	}
	if(ENGLISH)
	{	
		str =_T("realtime image");//English 
	}
	else
	{
		str =_T("实时图像");//Chinese
	}
	if(cur->hRealTimeImageNodeTree!=NULL) //已登录
		return TRUE;
	cur->hRealTimeImageNodeTree=m_NetTree.InsertItem(str,0,0,cur->hNodeTree);
	m_NetTree.Expand(cur->hNodeTree, TVE_EXPAND) ;
	nPortNum = (unsigned char)ch ;
	if (nPortNum <= PORTNUM)
	{
		cur->nChannelCount=nPortNum;
		for (i=0;i<nPortNum;i++)
		{
			if(ENGLISH)
			{	
				str.Format("%s%02d",_T("port"),i+1) ;//English 
			}
			else
			{
				str.Format("%s%02d",_T("通道"),i+1) ;//Chinese
			}			
			cur->hRealTimeImagePort[i]=m_NetTree.InsertItem(str, 0, 0, cur->hRealTimeImageNodeTree) ;
		}
	}
	m_NetTree.Expand(cur->hRealTimeImageNodeTree, TVE_EXPAND) ;
			
		
	if(ENGLISH)
	{	
		str =_T("record") ;//English 
	}
	else
	{
		str =_T("录像") ;//Chinese
	}	
	cur->hRecordNodeTree = m_NetTree.InsertItem(str, 0, 0, cur->hNodeTree) ;
	
	m_NetTree.SetItemImage(cur->hNodeTree, 1, 1) ;
	UpdateData(FALSE) ;
	m_nCurDVRType = DVRHardWareType;
	SetTimer(111,10,NULL);
	return TRUE ;
}

BOOL CSAMPLEDlg::NetSetRealImage(unsigned long nIpAddr,unsigned short nServPort, char* sPort,BOOL IsOpen)
{
	int               i ;
	CString           str ;
	char			  RealPort[10];
	TM8100_NET_NODE   *cur;
	memset(RealPort,0,10);
	memcpy(RealPort,sPort,4);
	cur = pNetNodeHead ;
	while(cur!=NULL)
	{
		if (cur->ipAddr == nIpAddr&&cur->nServPort==nServPort)
		{
			break;
		}
		cur = cur->next ;
	}
	if(cur==NULL) //没找到
	{
		return FALSE;
	}
	for (i=0;i<cur->nChannelCount;i++)
	{
		str.Format("P_%02d",i+1) ;
		if(str==RealPort)
		{
			if(IsOpen)
				m_NetTree.SetItemImage(cur->hRealTimeImagePort[i],1,1);
			else
				m_NetTree.SetItemImage(cur->hRealTimeImagePort[i],0,0);

		}
	}
	return TRUE ;
}

void CSAMPLEDlg::AddNetNode(unsigned long nIpAddr,unsigned short nServPort,char *Buf)
{
	int               i, len ;
	BOOL              bExist ;
	char			  pNameBuf[25] ;
	CString           str ;
	HTREEITEM         hNetNode ;
	TM8100_NET_NODE   *cur, *pre ;
	
	bExist = FALSE ;
	cur = pNetNodeHead ;
	while (cur!=NULL)
	{
		if (cur->ipAddr == nIpAddr&&cur->nServPort==nServPort)
		{
			bExist = TRUE ;
			if(Buf[6]==-1)
			{
				memset(pNameBuf,0,25) ;
			}
			else
			{
				memcpy(pNameBuf,Buf,24) ;
				pNameBuf[24]=NULL ;
			}
			str.Format("%s(%s)",inet_ntoa(*(struct in_addr*)&nIpAddr),pNameBuf) ;
			if(cur->hNodeTree)
			{
				m_NetTree.SetItemText(cur->hNodeTree,str);
			}
			break ;
		}
		cur = cur->next ;
	}
	
	if(Buf[6]==-1)
	{
		memset(pNameBuf,0,25) ;
	}
	else
	{
		memcpy(pNameBuf,Buf,24) ;
		pNameBuf[24]=NULL ;
	}
	if (!bExist)
	{
		str.Format("%s(%s)",inet_ntoa(*(struct in_addr*)&nIpAddr),pNameBuf) ;
		hNetNode = m_NetTree.InsertItem(str, 0, 0, hTreeRoot) ;
		if (hNetNode)
		{
			cur = new TM8100_NET_NODE ;
			cur->hNodeTree = hNetNode ;
			cur->ipAddr = nIpAddr ;
			cur->nServPort=nServPort;
			cur->nChannelCount=0;
			cur->next = NULL ;
			cur->hRealTimeImageNodeTree = NULL ;
			for (i=0;i<PORTNUM;i++)
				cur->hRealTimeImagePort[i] = NULL ;
			cur->pRecDateHead = NULL ;
			cur->nRealMulticast = 0 ;
			len = strlen(Buf) ;
			if (len < 30)
			{
				memcpy(cur->sNodeName, Buf, len) ;
                cur->sNodeName[len]=NULL;
			}
			else 
			{
				memcpy(cur->sNodeName, Buf, 28);
                cur->sNodeName[29]=NULL;
				
			}
			if (pNetNodeHead)
			{
				pre = pNetNodeHead ;
				while (pre->next!=NULL)
				{
					pre = pre->next ;
				}
				pre->next = cur ;
			}
			else
			{
				pNetNodeHead = cur ;
			}
		}
		m_NetTree.SetItemImage(hTreeRoot,1,1);
		m_NetTree.Expand(hTreeRoot, TVE_EXPAND) ;
	}	
}
//---------------------------------------------------------------------
//---------------------------------------------------------------------
void CSAMPLEDlg::OnButton1() 
{
	// TODO: Add your control notification handler code here
	Con_CheckNetDVR();//此处只管发送命令,收到网络上DVR反馈的信息后,
	//会以消息的形式送回来
	
}

void CSAMPLEDlg::OnButton2() 
{
	// TODO: Add your control notification handler code here
	TRANSSERV_INFO TransServerInfo;
	char UserName[20];
	char Password[20];
	unsigned long NetAddr,TransIp;//,len;
	UpdateData(TRUE) ;//ddddddd
    memset(Password,0,20);
	strcpy(Password,m_Passwd);//DVR 默认密码是888,实际使用可设置
	memset(UserName,0,20);
	strcpy(UserName,m_User);
    NetAddr=inet_addr(m_IP);
	if(m_UseTrans)
	{
		m_cIpServer.GetAddress(TransIp);
		TransIp=htonl(TransIp);
		TransServerInfo.nTransServerIp=TransIp;
		TransServerInfo.nTransServerPort=m_ServerPort;
		strcpy(TransServerInfo.UserName,m_User);
		strcpy(TransServerInfo.Password,m_ServerPasswd);

		Con_LoginDVR(NetAddr,m_ServPort,Password,&TransServerInfo);
	}
	else
		Con_LoginDVR(NetAddr,m_ServPort,Password);
}

void CSAMPLEDlg::OnButton3() 
{
	// TODO: Add your control notification handler code here
	unsigned long  NetAddr;
	UpdateData(TRUE) ;
    NetAddr=inet_addr(m_IP);
	ShowWindow(SW_HIDE);
    Con_CheckRecordDate(NetAddr,m_ServPort);
	
}

void CSAMPLEDlg::OnButton4() 
{
	// TODO: Add your control notification handler code here
	unsigned long  NetAddr;
    char Buf[5];
	UpdateData(TRUE) ;
    NetAddr=inet_addr(m_IP);
	memset(Buf,0,5) ;
   	Buf[0] =m_year;
	Buf[1] =m_month;
	Buf[2] =m_date;
    Con_CheckPortRecordFile(NetAddr,m_ServPort,m_portno,Buf);
	
}

void CSAMPLEDlg::OnButton6() 
{
	// TODO: Add your control notification handler code here
	unsigned long  NetAddr;
	UpdateData(TRUE) ;
    NetAddr=inet_addr(m_IP);
	Con_ImageDisplay(NetAddr,m_ServPort,1,(BYTE)m_imageno);
	
}

void CSAMPLEDlg::OnButton7() 
{
	// TODO: Add your control notification handler code here
	unsigned long  NetAddr;
	UpdateData(TRUE) ;
    NetAddr=inet_addr(m_IP);
	Con_ImageDisplay(NetAddr,m_ServPort,4,0);
	
}

void CSAMPLEDlg::OnButton8() 
{
	// TODO: Add your control notification handler code here
	unsigned long  NetAddr;
	UpdateData(TRUE) ;
    NetAddr=inet_addr(m_IP);
	Con_ImageDisplay(NetAddr,m_ServPort,9,0);
	
}

void CSAMPLEDlg::OnButton9() 
{
	// TODO: Add your control notification handler code here
	unsigned long  NetAddr;
	UpdateData(TRUE) ;
    NetAddr=inet_addr(m_IP);
	Con_AudioMonitor(NetAddr,m_ServPort,1);
	
}

void CSAMPLEDlg::OnButton10() 
{
	// TODO: Add your control notification handler code here
	unsigned long  NetAddr;
	UpdateData(TRUE) ;
    NetAddr=inet_addr(m_IP);
	Con_AudioMonitor(NetAddr,m_ServPort,2);
	
}

void CSAMPLEDlg::OnButton11() 
{
	int i;
	ALARM_LIST *pAlarmLst;
	// TODO: Add your control notification handler code here
	for(i=0;i<m_AlarmList.GetCount();i++)
	{
		pAlarmLst=(ALARM_LIST *)m_AlarmList.GetItemDataPtr(i);
		if(pAlarmLst!=NULL)
		{
			Con_ClearRemoteProbAlarm(pAlarmLst->nIpAddr,pAlarmLst->nServPort);
			delete pAlarmLst;
		}
	}
	m_AlarmList.ResetContent();
}

void CSAMPLEDlg::OnButton12() 
{
	Con_SetSock5TcpCallBack(Sock5TcpConnect);
}

void CSAMPLEDlg::OnButton5() 
{
 	// TODO: Add your control notification handler code here
 	char            Buf[10];
 	unsigned long  NetAddr;
 	UpdateData(TRUE) ;
	NetAddr=inet_addr(m_IP);
 	Buf[0] =m_year;
	Buf[1] =m_month;
	Buf[2] =m_date;
	Buf[3] =m_hour;
	Buf[4] =m_minute;
	Buf[5] = '\0' ;
	Con_SetPlayPara(NetAddr,m_ServPort,m_portno,Buf);
}

void CSAMPLEDlg::OnButton13() 
{
	// TODO: Add your control notification handler code here
	unsigned long  NetAddr;
	UpdateData(TRUE) ;
    NetAddr=inet_addr(m_IP);
	Con_Play_Pause(NetAddr,m_ServPort);
	
}

void CSAMPLEDlg::OnButton17() 
{
	// TODO: Add your control notification handler code here
	unsigned long  NetAddr;
	UpdateData(TRUE) ;
    NetAddr=inet_addr(m_IP);
	Con_Stop(NetAddr,m_ServPort);
	
}

void CSAMPLEDlg::OnButton14() 
{
	// TODO: Add your control notification handler code here
	unsigned long  NetAddr;
	UpdateData(TRUE) ;
    NetAddr=inet_addr(m_IP);
	Con_Fast(NetAddr,m_ServPort);
	
}

void CSAMPLEDlg::OnButton15() 
{
	// TODO: Add your control notification handler code here
	unsigned long  NetAddr;
	UpdateData(TRUE) ;
    NetAddr=inet_addr(m_IP);
	Con_Back(NetAddr,m_ServPort);
	
}

void CSAMPLEDlg::OnButton16() 
{
	// TODO: Add your control notification handler code here
	unsigned long  NetAddr;
	UpdateData(TRUE) ;
    NetAddr=inet_addr(m_IP);
	Con_Frame(NetAddr,m_ServPort);
	
}

void CSAMPLEDlg::OnButton18() 
{
	// TODO: Add your control notification handler code here
	unsigned long  NetAddr;
	UpdateData(TRUE) ;
    NetAddr=inet_addr(m_IP);
	Con_DisMenu(NetAddr,m_ServPort);
}

void CSAMPLEDlg::OnButton19() 
{
	// TODO: Add your control notification handler code here
	unsigned long  NetAddr;
    char Buf[20];
	memset(Buf,0,20);
	strcpy(Buf,"C:");
	Con_SetBackupDir(Buf);//设置备份文件路径
	//也可不设采用默认的路径
	UpdateData(TRUE) ;
    NetAddr=inet_addr(m_IP);
	Buf[0] =m_year;
	Buf[1] =m_month;
	Buf[2] =m_date;
	Buf[3] =m_hour;//起始小时
	Buf[4] =m_minute;//起始分钟
	Buf[5] = m_endhour;//终止小时
	Buf[6] = m_endminute;//终止分钟
	Con_BackupRecordFile(NetAddr,m_ServPort,m_portno,Buf,false,NULL);
	// 由用户自己写数据
	//m_pBackFile = fopen("c:\\back.str","wb");
	//Con_BackupRecordFile(NetAddr,m_ServPort,m_portno,Buf,true,m_pBackFile);
}

void CSAMPLEDlg::OnClose() 
{
	// TODO: Add your message handler code here and/or call default
	int t1=0;
	t1=Con_ExitSys();
	CDialog::OnClose();
}

void CSAMPLEDlg::OnButton28() 
{
	// TODO: Add your control notification handler code here
	unsigned long  NetAddr;
	UpdateData(TRUE) ;
    NetAddr=inet_addr(m_IP);	
	//if(m_LoginParam.IPAddress>0)
	if (pNetRemoteCtlDlg->m_nDVRType > 0) 
	{
            Con_pDVRPara =NULL;
			int i=pNetRemoteCtlDlg->m_TabSheet.GetCurSel();
			CDialog *pTempDlg = pNetRemoteCtlDlg->m_TabSheet.m_pPages[i];
			if(pTempDlg==&(pNetRemoteCtlDlg->RecSetDlg))
				pNetRemoteCtlDlg->RecSetDlg.Refresh();
			if(pTempDlg==&(pNetRemoteCtlDlg->VideoParaDlg))
				pNetRemoteCtlDlg->VideoParaDlg.Refresh();
			if(pTempDlg==&(pNetRemoteCtlDlg->SchRecDlg))
				pNetRemoteCtlDlg->SchRecDlg.Refresh();
			if(pTempDlg==&(pNetRemoteCtlDlg->MAlarmDlg))
				pNetRemoteCtlDlg->MAlarmDlg.Refresh();
			if(pTempDlg==&(pNetRemoteCtlDlg->MRegionDlg))
				pNetRemoteCtlDlg->MRegionDlg.Refresh();
			if(pTempDlg==&(pNetRemoteCtlDlg->PAlarmDlg))
				pNetRemoteCtlDlg->PAlarmDlg.Refresh();
			if(pTempDlg==&(pNetRemoteCtlDlg->ElseDlg))
				pNetRemoteCtlDlg->ElseDlg.Refresh();
			if(pTempDlg==&(pNetRemoteCtlDlg->RecDlg))
				pNetRemoteCtlDlg->RecDlg.Refresh();
			if(pTempDlg==&(pNetRemoteCtlDlg->NetAddrDlg))
				pNetRemoteCtlDlg->NetAddrDlg.Refresh();
			pNetRemoteCtlDlg->ShowWindow(SW_SHOW);
	}
	else
	{
		if (Con_pDVRPara != NULL)
		{
			pNetRemoteCtlDlg->ShowWindow(SW_SHOW);		
		}
	}
}

void CSAMPLEDlg::OnButton29() 
{
	// TODO: Add your control notification handler code here
	unsigned long  NetAddr;
	UpdateData(TRUE) ;
    NetAddr=inet_addr(m_IP);
	
	CString str = "";
	GetDlgItemText(IDC_BUTTON29,str);
	if (str == "上")
	{
		Con_PanUp(NetAddr,m_ServPort,m_portno);			
		SetDlgItemText(IDC_BUTTON29,"|上");
	}
	else
	{
		Con_PanStop(NetAddr,m_ServPort,m_portno);
		SetDlgItemText(IDC_BUTTON29,"上");		
	}	
}

void CSAMPLEDlg::OnButton34() 
{
	// TODO: Add your control notification handler code here
	unsigned long  NetAddr;
	UpdateData(TRUE) ;
    NetAddr=inet_addr(m_IP);
	Con_Iris_P(NetAddr,m_ServPort,m_portno);
}

void CSAMPLEDlg::OnButton35() 
{
	// TODO: Add your control notification handler code here
	unsigned long  NetAddr;
	UpdateData(TRUE) ;
    NetAddr=inet_addr(m_IP);
	Con_Iris_N(NetAddr,m_ServPort,m_portno);
	
}

void CSAMPLEDlg::OnButton40() 
{
	// TODO: Add your control notification handler code here
	unsigned long  NetAddr;
	UpdateData(TRUE) ;
    NetAddr=inet_addr(m_IP);
	Con_OpenLight(NetAddr,m_ServPort,m_portno);
	
}

void CSAMPLEDlg::OnButton41() 
{
	// TODO: Add your control notification handler code here
	unsigned long  NetAddr;
	UpdateData(TRUE) ;
    NetAddr=inet_addr(m_IP);
	Con_CloseLight(NetAddr,m_ServPort,m_portno);
	
}

void  CSAMPLEDlg::FindAllDiskDriver()
{
	unsigned long     i , nDrv ;
	char              c , str[20] ;
	
	nDrv = GetLogicalDrives() ;
	nDriverMask = 0 ;
	c = 'C' ;
	for (i=2;i<30;i++)
	{
		if (nDrv & (1<<i))
		{
			memset(str, 0, 20) ;
			sprintf(str, "%c:", c) ;
			UINT   j ;
			j = GetDriveType(str) ;
			if (j != DRIVE_REMOVABLE && j != DRIVE_CDROM)
				nDriverMask |= (1<<i) ;
			
		}
		c++ ;
	}
}

void CSAMPLEDlg::O

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -