#include "stdafx.h" #include "HCstruct.h" #include "HCNetSDK.h" extern IP_INFO selipinfo[MAXNUMBER]; extern IP_INFO allipinfo[MAXIPNUMBER][MAXCHANNUM]; extern SERVER_INFO serverinfo[MAXIPNUMBER]; extern int iSurveillanceNumber; extern CLIENTPARAM ClientParam; extern char cWorkDir[256]; //////////////////////////////////////////////////////////////////// void ReadSurveillanceConfig() { int i, j; char buf[256]; DWORD dtemp; CStdioFile myFile; CString csFilename; csFilename.Format("%s\\ChannelCfg.dat", cWorkDir); if(myFile.Open(csFilename, CFile::modeRead) == FALSE) { myFile.Open(csFilename, CFile::modeCreate); return; } iSurveillanceNumber=0; while(myFile.ReadString(buf,256)) { if(buf[1]==0x53) { myFile.ReadString(buf,256);//数组下标 i=atoi(buf); myFile.ReadString(buf,256); serverinfo[i].m_csServerAdminName.Format("%s",buf);//用户名 serverinfo[i].m_csServerAdminName.Format("%s",serverinfo[i].m_csServerAdminName.Left(serverinfo[i].m_csServerAdminName.GetLength()-2)); myFile.ReadString(buf,256); serverinfo[i].m_csServerAdminPasswd.Format("%s",buf);//密码 serverinfo[i].m_csServerAdminPasswd.Format("%s",serverinfo[i].m_csServerAdminPasswd.Left(serverinfo[i].m_csServerAdminPasswd.GetLength()-2)); myFile.ReadString(buf,256); serverinfo[i].m_iServerChannelNumber=atoi(buf);//通道数 myFile.ReadString(buf,256); serverinfo[i].m_csServerIP.Format("%s",buf);//ip地址 serverinfo[i].m_csServerIP.Format("%s",serverinfo[i].m_csServerIP.Left(serverinfo[i].m_csServerIP.GetLength()-2)); myFile.ReadString(buf,256); dtemp = atoi(buf) << 16; myFile.ReadString(buf,256); dtemp += atoi(buf); serverinfo[i].m_dwServerIPvalue=dtemp; myFile.ReadString(buf,256); serverinfo[i].m_csServerMultiIP.Format("%s",buf);//多播组地址 serverinfo[i].m_csServerMultiIP.Format("%s",serverinfo[i].m_csServerMultiIP.Left(serverinfo[i].m_csServerMultiIP.GetLength()-2)); myFile.ReadString(buf,256); dtemp = atoi(buf) << 16; myFile.ReadString(buf,256); dtemp += atoi(buf); serverinfo[i].m_dwServerMultiIPvalue=dtemp; myFile.ReadString(buf,256); serverinfo[i].m_csServerName.Format("%s",buf);//服务器名称 serverinfo[i].m_csServerName.Format("%s",serverinfo[i].m_csServerName.Left(serverinfo[i].m_csServerName.GetLength()-2)); myFile.ReadString(buf,256); serverinfo[i].m_wServerPort = atoi(buf); //端口号 myFile.ReadString(buf,256); serverinfo[i].m_dwDevSoftVersion = atoi(buf); //设备软件版本 } else { myFile.ReadString(buf,256);//数组下标 i=atoi(buf); myFile.ReadString(buf,256);//数组下标 j=atoi(buf); myFile.ReadString(buf,256); allipinfo[i][j].m_bChoosed=atoi(buf); myFile.ReadString(buf,256); allipinfo[i][j].m_dwAddress=atoi(buf);//解码器地址 myFile.ReadString(buf,256); allipinfo[i][j].m_dwAlarmlevel=atoi(buf);//报警级别 myFile.ReadString(buf,256); allipinfo[i][j].m_iChannel=atoi(buf);//通道号 myFile.ReadString(buf,256); allipinfo[i][j].m_csIP.Format("%s",buf);//ip地址 allipinfo[i][j].m_csIP.Format("%s",allipinfo[i][j].m_csIP.Left(allipinfo[i][j].m_csIP.GetLength()-2)); myFile.ReadString(buf,256); dtemp = atoi(buf) << 16; myFile.ReadString(buf,256); dtemp += atoi(buf); allipinfo[i][j].m_dwIPvalue=dtemp; myFile.ReadString(buf,256); allipinfo[i][j].m_wJMQtype=atoi(buf);//解码器类型 myFile.ReadString(buf,256); allipinfo[i][j].m_csMultiIP.Format("%s",buf);//多播组地址 allipinfo[i][j].m_csMultiIP.Format("%s",allipinfo[i][j].m_csMultiIP.Left(allipinfo[i][j].m_csMultiIP.GetLength()-2)); myFile.ReadString(buf,256); dtemp = atoi(buf) << 16; myFile.ReadString(buf,256); dtemp += atoi(buf); allipinfo[i][j].m_dwMultiIPvalue=dtemp; myFile.ReadString(buf,256); allipinfo[i][j].m_csChanName.Format("%s",buf);//通道名称 allipinfo[i][j].m_csChanName.Format("%s",allipinfo[i][j].m_csChanName.Left(allipinfo[i][j].m_csChanName.GetLength()-2)); myFile.ReadString(buf,256); allipinfo[i][j].m_dwProtocol=atoi(buf);//协议 myFile.ReadString(buf,256); allipinfo[i][j].m_csPassword.Format("%s",buf);//通道密码 allipinfo[i][j].m_csPassword.Format("%s",allipinfo[i][j].m_csPassword.Left(allipinfo[i][j].m_csPassword.GetLength()-2)); myFile.ReadString(buf,256); allipinfo[i][j].m_csUser.Format("%s",buf);//通道用户 allipinfo[i][j].m_csUser.Format("%s",allipinfo[i][j].m_csUser.Left(allipinfo[i][j].m_csUser.GetLength()-2)); myFile.ReadString(buf,256); allipinfo[i][j].m_wServerport = atoi(buf);//端口号 myFile.ReadString(buf, 256); allipinfo[i][j].m_iSequence = atoi(buf); /* if( (allipinfo[i][j].m_bChoosed) && (allipinfo[i][j].m_iSequence != -1) ) { memcpy(&selipinfo[allipinfo[i][j].m_iSequence],&allipinfo[i][j],sizeof(IP_INFO)); selipinfo[iSurveillanceNumber].m_iServerNum=i; selipinfo[iSurveillanceNumber].m_iChannelNum=j; iSurveillanceNumber++; }*/ } } myFile.Close(); } void WriteSurveillanceConfig() { int i, j; char buf[256]; DWORD dtemp; CStdioFile myFile; CString csFilename; csFilename.Format("%s\\ChannelCfg.dat", cWorkDir); if(myFile.Open(csFilename, CFile::modeCreate|CFile::modeWrite) == FALSE) { return; } for(i = 0; i < MAXIPNUMBER; i++) { if (serverinfo[i].m_iServerChannelNumber != -1) { sprintf(buf,"$S\r\n"); myFile.WriteString(buf); sprintf(buf,"%d\r\n",i); myFile.WriteString(buf); sprintf(buf,"%s\r\n",serverinfo[i].m_csServerAdminName); //用户名 myFile.WriteString(buf); sprintf(buf,"%s\r\n",serverinfo[i].m_csServerAdminPasswd); //密码 myFile.WriteString(buf); sprintf(buf,"%d\r\n",serverinfo[i].m_iServerChannelNumber); //通道数 myFile.WriteString(buf); sprintf(buf,"%s\r\n",serverinfo[i].m_csServerIP); //ip地址 myFile.WriteString(buf); dtemp=serverinfo[i].m_dwServerIPvalue; sprintf(buf,"%d\r\n",((dtemp >> 16) & 0xffff)); myFile.WriteString(buf); sprintf(buf,"%d\r\n",(dtemp& 0xffff)); myFile.WriteString(buf); sprintf(buf,"%s\r\n",serverinfo[i].m_csServerMultiIP); //多播地址 myFile.WriteString(buf); dtemp=serverinfo[i].m_dwServerMultiIPvalue; sprintf(buf,"%d\r\n",((dtemp >> 16) & 0xffff)); myFile.WriteString(buf); sprintf(buf,"%d\r\n",(dtemp& 0xffff)); myFile.WriteString(buf); sprintf(buf,"%s\r\n",serverinfo[i].m_csServerName); //服务器名称 myFile.WriteString(buf); sprintf(buf,"%d\r\n",serverinfo[i].m_wServerPort); //端口号 myFile.WriteString(buf); sprintf(buf,"%d\r\n",serverinfo[i].m_dwDevSoftVersion); //设备软件版本 myFile.WriteString(buf); for(j=0; j< MAXCHANNUM; j++) { if(allipinfo[i][j].m_iChannel != -1) { sprintf(buf,"$C\r\n"); myFile.WriteString(buf); sprintf(buf,"%d\r\n",i); myFile.WriteString(buf); sprintf(buf,"%d\r\n",j); myFile.WriteString(buf); sprintf(buf,"%d\r\n",allipinfo[i][j].m_bChoosed); //选中监控标志 myFile.WriteString(buf); sprintf(buf,"%d\r\n",allipinfo[i][j].m_dwAddress); //解码器地址 myFile.WriteString(buf); sprintf(buf,"%d\r\n",allipinfo[i][j].m_dwAlarmlevel); //报警级别 myFile.WriteString(buf); sprintf(buf,"%d\r\n",allipinfo[i][j].m_iChannel); //通道号 myFile.WriteString(buf); sprintf(buf,"%s\r\n",allipinfo[i][j].m_csIP); //ip地址 myFile.WriteString(buf); dtemp=allipinfo[i][j].m_dwIPvalue; sprintf(buf,"%d\r\n",((dtemp >> 16) & 0xffff)); myFile.WriteString(buf); sprintf(buf,"%d\r\n",(dtemp& 0xffff)); myFile.WriteString(buf); sprintf(buf,"%d\r\n",allipinfo[i][j].m_wJMQtype); //解码器类型 myFile.WriteString(buf); sprintf(buf,"%s\r\n",allipinfo[i][j].m_csMultiIP); //多播组地址 myFile.WriteString(buf); dtemp=allipinfo[i][j].m_dwMultiIPvalue; sprintf(buf,"%d\r\n",((dtemp >> 16) & 0xffff)); myFile.WriteString(buf); sprintf(buf,"%d\r\n",(dtemp& 0xffff)); myFile.WriteString(buf); sprintf(buf,"%s\r\n",allipinfo[i][j].m_csChanName); //监控点名称 myFile.WriteString(buf); sprintf(buf,"%d\r\n",allipinfo[i][j].m_dwProtocol); //协议 myFile.WriteString(buf); sprintf(buf,"%s\r\n",allipinfo[i][j].m_csPassword); //通道密码 myFile.WriteString(buf); sprintf(buf,"%s\r\n",allipinfo[i][j].m_csUser); //通道用户 myFile.WriteString(buf); sprintf(buf,"%d\r\n",allipinfo[i][j].m_wServerport); //端口号 myFile.WriteString(buf); sprintf(buf,"%d\r\n",allipinfo[i][j].m_iSequence); //播放顺序 myFile.WriteString(buf); } } } } myFile.Close(); } void ReadClientConfig() { int iTemp, iDay = 0, i, j; char buf[256]; CStdioFile myFile; CString csFilename; csFilename.Format("%s\\ClientCfg.dat", cWorkDir); if(myFile.Open(csFilename, CFile::modeRead) == FALSE) { myFile.Open(csFilename, CFile::modeCreate); return; } if(!myFile.ReadString(buf,256)) { myFile.Close(); return; } iTemp = atoi(buf); if(iTemp < 5) ClientParam.m_iCycleTime = 5; //循环播放时间 else ClientParam.m_iCycleTime = iTemp; myFile.ReadString(buf,256); iTemp = atoi(buf); if(iTemp == 1) ClientParam.m_bCyclePlay = TRUE; //是否循环播放 else ClientParam.m_bCyclePlay = FALSE; myFile.ReadString(buf,256); iTemp = atoi(buf); if(iTemp == 1) ClientParam.m_bUseCard = TRUE; //是否使用解码卡 else ClientParam.m_bUseCard = FALSE; myFile.ReadString(buf,256); iTemp = atoi(buf); if(iTemp == 1) ClientParam.m_bNTSC = TRUE; //解码卡视频制式 else ClientParam.m_bNTSC = FALSE; myFile.ReadString(buf,256); iTemp = atoi(buf); if (iTemp > 60) ClientParam.m_iRecordFileInterval = 60; //录像文件打包时间 else ClientParam.m_iRecordFileInterval = iTemp; myFile.ReadString(buf,256); iTemp = atoi(buf); if(iTemp == 1) ClientParam.m_bAutoRecord = TRUE; //是否自动录像 else ClientParam.m_bAutoRecord = FALSE; myFile.ReadString(buf,256); iTemp = atoi(buf); if(iTemp == 1) ClientParam.m_bCycleRecord = TRUE; //是否循环录像 else ClientParam.m_bCycleRecord = FALSE; myFile.ReadString(buf, 256); ClientParam.m_iStartRecordDriver = atoi(buf); //起始盘符 myFile.ReadString(buf, 256); ClientParam.m_iEndRecordDriver = atoi(buf); //终止盘符 myFile.ReadString(buf,256); ClientParam.m_csDownLoadPath.Format("%s", buf); //远程文件下载路径 ClientParam.m_csDownLoadPath.Format("%s", ClientParam.m_csDownLoadPath.Left(ClientParam.m_csDownLoadPath.GetLength() - 2)); myFile.ReadString(buf,256); ClientParam.m_csPictureSavePath.Format("%s", buf); //抓图文件保存路径 ClientParam.m_csPictureSavePath.Format("%s", ClientParam.m_csPictureSavePath.Left(ClientParam.m_csPictureSavePath.GetLength() - 2)); myFile.ReadString(buf,256); ClientParam.m_csLogSavePath.Format("%s", buf); //日志文件保存路径 ClientParam.m_csLogSavePath.Format("%s", ClientParam.m_csLogSavePath.Left(ClientParam.m_csLogSavePath.GetLength() - 2)); myFile.ReadString(buf,256); iTemp = atoi(buf); if(iTemp == 1) ClientParam.m_bCheckServerTime = TRUE; //是否启动硬盘录像机校时 else ClientParam.m_bCheckServerTime = FALSE; long lTemp; myFile.ReadString(buf,256); lTemp = atol(buf); if(lTemp < 0) ClientParam.m_iCheckServerTime = 0; //硬盘录像机校时时间 else ClientParam.m_iCheckServerTime = lTemp; while(myFile.ReadString(buf, 256)) { ClientParam.m_ClientRecordTime[iDay][0].m_iStartTime = atoi(buf); myFile.ReadString(buf, 256); ClientParam.m_ClientRecordTime[iDay][0].m_iStopTime = atoi(buf); myFile.ReadString(buf, 256); ClientParam.m_ClientRecordTime[iDay][1].m_iStartTime = atoi(buf); myFile.ReadString(buf, 256); ClientParam.m_ClientRecordTime[iDay][1].m_iStopTime = atoi(buf); myFile.ReadString(buf, 256); ClientParam.m_ClientRecordTime[iDay][2].m_iStartTime = atoi(buf); myFile.ReadString(buf, 256); ClientParam.m_ClientRecordTime[iDay][2].m_iStopTime = atoi(buf); myFile.ReadString(buf, 256); ClientParam.m_ClientRecordTime[iDay][3].m_iStartTime = atoi(buf); myFile.ReadString(buf, 256); ClientParam.m_ClientRecordTime[iDay][3].m_iStopTime = atoi(buf); iDay++; } for(i = 0; i < 7; i++) { for(j = 0; j < 4; j++) { ClientParam.m_ClientRecordTime[i][j].m_iStartHour = ClientParam.m_ClientRecordTime[i][j].m_iStartTime / 100; ClientParam.m_ClientRecordTime[i][j].m_iStartMinute = ClientParam.m_ClientRecordTime[i][j].m_iStartTime % 100; ClientParam.m_ClientRecordTime[i][j].m_iStopHour = ClientParam.m_ClientRecordTime[i][j].m_iStopTime / 100; ClientParam.m_ClientRecordTime[i][j].m_iStopMinute = ClientParam.m_ClientRecordTime[i][j].m_iStopTime % 100; } } myFile.Close(); } void WriteClientConfig() { int i, j; char buf[256]; CStdioFile myFile; CString csFilename; csFilename.Format("%s\\ClientCfg.dat", cWorkDir); if (myFile.Open(csFilename, CFile::modeCreate|CFile::modeWrite) == FALSE) { return; } sprintf(buf,"%d\r\n",ClientParam.m_iCycleTime); myFile.WriteString(buf); if(ClientParam.m_bCyclePlay) sprintf(buf,"1\r\n"); else sprintf(buf,"0\r\n"); myFile.WriteString(buf); if(ClientParam.m_bUseCard) sprintf(buf,"1\r\n"); else sprintf(buf,"0\r\n"); myFile.WriteString(buf); if(ClientParam.m_bNTSC) sprintf(buf,"1\r\n"); else sprintf(buf,"0\r\n"); myFile.WriteString(buf); sprintf(buf, "%d\r\n", ClientParam.m_iRecordFileInterval); myFile.WriteString(buf); if(ClientParam.m_bAutoRecord) sprintf(buf,"1\r\n"); else sprintf(buf,"0\r\n"); myFile.WriteString(buf); if(ClientParam.m_bCycleRecord) sprintf(buf,"1\r\n"); else sprintf(buf,"0\r\n"); myFile.WriteString(buf); sprintf(buf, "%d\r\n", ClientParam.m_iStartRecordDriver); myFile.WriteString(buf); sprintf(buf, "%d\r\n", ClientParam.m_iEndRecordDriver); myFile.WriteString(buf); sprintf(buf, "%s\r\n", ClientParam.m_csDownLoadPath); myFile.WriteString(buf); sprintf(buf, "%s\r\n", ClientParam.m_csPictureSavePath); myFile.WriteString(buf); sprintf(buf, "%s\r\n", ClientParam.m_csLogSavePath); myFile.WriteString(buf); if(ClientParam.m_bCheckServerTime) sprintf(buf,"1\r\n"); else sprintf(buf,"0\r\n"); myFile.WriteString(buf); sprintf(buf,"%ld\r\n",ClientParam.m_iCheckServerTime); myFile.WriteString(buf); for(i = 0; i < 7; i++) { for(j = 0; j < 4; j++) { sprintf(buf, "%d\r\n", ClientParam.m_ClientRecordTime[i][j].m_iStartTime); myFile.WriteString(buf); sprintf(buf, "%d\r\n", ClientParam.m_ClientRecordTime[i][j].m_iStopTime); myFile.WriteString(buf); } } myFile.Close(); }