RemoteServerConfig.cpp 15 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536
  1. // RemoteServerConfig.cpp : implementation file
  2. //
  3. #include "stdafx.h"
  4. #include "newclient.h"
  5. #include "RemoteServerConfig.h"
  6. #include "RemoteNetConfig.h"
  7. #include "RemoteParamsCfg.h"
  8. #include "RemoteDDNSEx.h"
  9. #ifdef _DEBUG
  10. #define new DEBUG_NEW
  11. #undef THIS_FILE
  12. static char THIS_FILE[] = __FILE__;
  13. #endif
  14. extern SERVER_INFO serverinfo[MAXIPNUMBER];
  15. extern CRemoteParamsCfg *m_pRemoteParam;
  16. CRemoteNetConfig *m_pRemoteNetCfgDlg = NULL;
  17. /////////////////////////////////////////////////////////////////////////////
  18. // CRemoteServerConfig dialog
  19. BOOL checkIPStr(CString ip)
  20. { //检查IP地址输入的正确性
  21. char str[20];
  22. strcpy(str,ip);
  23. char a;
  24. int dot=0;
  25. int a3,a2,a1,a0,i = 0;
  26. a3 = a2 = a1 = a0 = -1;
  27. if(strlen(str)==0)
  28. return TRUE;
  29. while(a=str[i++])
  30. {
  31. if((a==' ')||(a=='.')||((a>='0')&&(a<='9')))
  32. {
  33. if(a=='.')
  34. dot++;
  35. }
  36. else
  37. return FALSE;
  38. }
  39. if(dot!=3)
  40. return FALSE;
  41. else
  42. {
  43. sscanf(str,"%d.%d.%d.%d",&a3,&a2,&a1,&a0);
  44. if( (a0>255)||(a1>255)||(a2>255)||(a3>255))
  45. return FALSE;
  46. if( (a0 < 0) || (a1 < 0) || (a2 < 0) || (a3 < 0) )
  47. return FALSE;
  48. }
  49. return TRUE;
  50. }
  51. CRemoteServerConfig::CRemoteServerConfig(CWnd* pParent /*=NULL*/)
  52. : CDialog(CRemoteServerConfig::IDD, pParent)
  53. {
  54. //{{AFX_DATA_INIT(CRemoteServerConfig)
  55. m_AlarmInNum = 0;
  56. m_AlarmOutNum = 0;
  57. m_ChanNum = 0;
  58. m_DNSIP = _T("");
  59. m_GateWay = _T("");
  60. m_ServerIP = _T("");
  61. m_IPMask = _T("");
  62. m_MultiIP = _T("");
  63. m_ServerName = _T("");
  64. m_NFSDir = _T("");
  65. m_NFSIP = _T("");
  66. m_ServerPort = 0;
  67. m_ServerSerial = _T("");
  68. m_YKQID = 0;
  69. m_HardNum = 0;
  70. m_ManageHostIP = _T("");
  71. m_ManageHostPort = 0;
  72. m_PPPoEName = _T("");
  73. m_PPPoEpsw = _T("");
  74. m_QMBVersion = 0;
  75. m_MacAddr = _T("");
  76. m_csHardVersion = _T("");
  77. m_csSoftVersion = _T("");
  78. m_csDspVersion = _T("");
  79. m_PPPoEIP = _T("");
  80. m_HttpPort = 0;
  81. m_FirstDNS = _T("");
  82. m_SecondDNS = _T("");
  83. //}}AFX_DATA_INIT
  84. }
  85. void CRemoteServerConfig::DoDataExchange(CDataExchange* pDX)
  86. {
  87. CDialog::DoDataExchange(pDX);
  88. //{{AFX_DATA_MAP(CRemoteServerConfig)
  89. DDX_Control(pDX, IDC_COMBOUSEZOOM, m_UseZoom);
  90. DDX_Control(pDX, IDC_SERVERTYPE, m_ServerTypeCtrl);
  91. DDX_Control(pDX, IDC_RECYCLERECORD, m_RecycleRecord);
  92. DDX_Control(pDX, IDC_COMBOPPPOE, m_ComPPPoE);
  93. DDX_Control(pDX, IDC_COMBONETFACE, m_NetFace);
  94. DDX_Text(pDX, IDC_ALARMINNUM, m_AlarmInNum);
  95. DDX_Text(pDX, IDC_ALARMOUTNUM, m_AlarmOutNum);
  96. DDX_Text(pDX, IDC_EDITCHANNUM, m_ChanNum);
  97. DDX_Text(pDX, IDC_EDITDNSIP, m_DNSIP);
  98. DDX_Text(pDX, IDC_EDITGATEWAY, m_GateWay);
  99. DDX_Text(pDX, IDC_EDITIP, m_ServerIP);
  100. DDX_Text(pDX, IDC_EDITIPMASK, m_IPMask);
  101. DDX_Text(pDX, IDC_EDITMULTIIP, m_MultiIP);
  102. DDX_Text(pDX, IDC_EDITNAME, m_ServerName);
  103. DDX_Text(pDX, IDC_EDITNFSDIR, m_NFSDir);
  104. DDX_Text(pDX, IDC_EDITNFSIP, m_NFSIP);
  105. DDX_Text(pDX, IDC_EDITPORT, m_ServerPort);
  106. DDX_Text(pDX, IDC_EDITSERIAL, m_ServerSerial);
  107. DDX_Text(pDX, IDC_EDITYKQID, m_YKQID);
  108. DDX_Text(pDX, IDC_HDNUM, m_HardNum);
  109. DDX_Text(pDX, IDC_MANAGEHOSTIP, m_ManageHostIP);
  110. DDX_Text(pDX, IDC_MANAGEHOSTPORT, m_ManageHostPort);
  111. DDX_Text(pDX, IDC_PPPoENAME, m_PPPoEName);
  112. DDX_Text(pDX, IDC_PPPoEPSW, m_PPPoEpsw);
  113. DDX_Text(pDX, IDC_QMBVERSION, m_QMBVersion);
  114. DDX_Text(pDX, IDC_EDITMACIP, m_MacAddr);
  115. DDX_Text(pDX, IDC_HWVERSION, m_csHardVersion);
  116. DDX_Text(pDX, IDC_SWVERSION, m_csSoftVersion);
  117. DDX_Text(pDX, IDC_DSPVERSION, m_csDspVersion);
  118. DDX_Text(pDX, IDC_PPPOEIP, m_PPPoEIP);
  119. DDX_Text(pDX, IDC_EDITPORT2, m_HttpPort);
  120. DDX_Text(pDX, IDC_EDITDNSIP2, m_FirstDNS);
  121. DDX_Text(pDX, IDC_EDITDNSIP3, m_SecondDNS);
  122. //}}AFX_DATA_MAP
  123. }
  124. BEGIN_MESSAGE_MAP(CRemoteServerConfig, CDialog)
  125. //{{AFX_MSG_MAP(CRemoteServerConfig)
  126. ON_BN_CLICKED(IDSVROK, OnSvrok)
  127. ON_BN_CLICKED(IDEXIT, OnExit)
  128. ON_BN_CLICKED(IDC_EMAILCFG, OnEmailcfg)
  129. ON_BN_CLICKED(IDC_DDNSEXCFG, OnDdnsexcfg)
  130. //}}AFX_MSG_MAP
  131. END_MESSAGE_MAP()
  132. /////////////////////////////////////////////////////////////////////////////
  133. // CRemoteServerConfig message handlers
  134. BOOL CRemoteServerConfig::CheckPara()
  135. {
  136. char cTemp[200];
  137. if(!NET_DVR_GetDVRConfig(m_lServerID, NET_DVR_GET_NETCFG, 0,&m_netcfg, sizeof(NET_DVR_NETCFG), &dwReturned))
  138. {
  139. CString sTemp;
  140. sTemp.Format("获取服务器配置信息失败: NET_DVR_GET_NETCFG = %d \n", NET_DVR_GetLastError());
  141. AfxMessageBox(sTemp);
  142. // return FALSE;
  143. }
  144. if(!NET_DVR_GetDVRConfig(m_lServerID, NET_DVR_GET_DEVICECFG, 0,&m_devicecfg, sizeof(NET_DVR_DEVICECFG), &dwReturned))
  145. { CString sTemp;
  146. int iErr = NET_DVR_GetLastError();
  147. if (iErr == NET_DVR_USERNOTEXIST)
  148. {
  149. m_bConnectServer = FALSE;
  150. sTemp.Format("该用户不存在!!!!!!!!!!!");
  151. AfxMessageBox(sTemp);
  152. return FALSE;
  153. }
  154. else if(iErr == NET_DVR_NETWORK_FAIL_CONNECT)
  155. {
  156. m_bConnectServer = FALSE;
  157. sTemp.Format("服务器连接不上,请检查网络!!!!!");
  158. AfxMessageBox(sTemp);
  159. return FALSE;
  160. }
  161. sTemp.Format("获取服务器配置信息失败: NET_DVR_GET_DEVICECFG = %d \n", NET_DVR_GetLastError());
  162. AfxMessageBox(sTemp);
  163. // return FALSE;
  164. }
  165. /*
  166. if(m_devicecfg.byDVRType == 2)
  167. {
  168. if (!NET_DVR_GetATMPortCFG(m_lServerID, &m_wATMPort))
  169. {
  170. CString sTemp;
  171. sTemp.Format("获取ATM端口失败: NET_DVR_GetLastError = %d \n", NET_DVR_GetLastError());
  172. AfxMessageBox(sTemp);
  173. return FALSE;
  174. }
  175. }*/
  176. if (!NET_DVR_GetScaleCFG(m_lServerID, &m_dwUseZoom))
  177. {
  178. CString sTemp;
  179. sTemp.Format("获取是否缩放失败: NET_DVR_GetLastError = %d \n", NET_DVR_GetLastError());
  180. //AfxMessageBox(sTemp);
  181. //return FALSE;
  182. }
  183. m_UseZoom.SetCurSel(m_dwUseZoom);
  184. ZeroMemory(cTemp, 200);
  185. memcpy(cTemp, m_devicecfg.sDVRName, NAME_LEN);
  186. m_ServerName.Format("%s", cTemp);
  187. m_YKQID = m_devicecfg.dwDVRID;
  188. ZeroMemory(cTemp, 200);
  189. memcpy(cTemp, m_devicecfg.sSerialNumber, SERIALNO_LEN);
  190. m_ServerSerial.Format("%s", cTemp);
  191. m_csSoftVersion.Format("V%d.%d build %02d%02d%02d", (m_devicecfg.dwSoftwareVersion>>16)&0xFFFF, m_devicecfg.dwSoftwareVersion&0xFFFF, (m_devicecfg.dwSoftwareBuildDate>>16)&0xFFFF, (m_devicecfg.dwSoftwareBuildDate>>8)&0xFF,m_devicecfg.dwSoftwareBuildDate&0xFF);
  192. m_csHardVersion.Format("0x%x", m_devicecfg.dwHardwareVersion);
  193. m_QMBVersion = m_devicecfg.dwPanelVersion;
  194. m_csDspVersion.Format("V%d.%d build %02d%02d%02d", (m_devicecfg.dwDSPSoftwareVersion>>16)&0xFFFF, m_devicecfg.dwDSPSoftwareVersion&0xFFFF, (m_devicecfg.dwDSPSoftwareBuildDate>>16)&0xFFFF-2000, (m_devicecfg.dwDSPSoftwareBuildDate>>8)&0xFF,m_devicecfg.dwDSPSoftwareBuildDate&0xFF);
  195. m_AlarmInNum = m_devicecfg.byAlarmInPortNum;
  196. m_AlarmOutNum = m_devicecfg.byAlarmOutPortNum;
  197. m_ChanNum = m_devicecfg.byChanNum;
  198. //2008-03-15 因为有IP部分3个特殊的类型编号,不得不做这样的处理
  199. if (m_devicecfg.byDVRType == 30)
  200. {
  201. m_ServerTypeCtrl.SetCurSel(m_ServerTypeCtrl.FindString(-1, "IPCAM"));
  202. }
  203. else if (m_devicecfg.byDVRType == 40)
  204. {
  205. m_ServerTypeCtrl.SetCurSel(m_ServerTypeCtrl.FindString(-1, "IPDOME"));
  206. }
  207. else if (m_devicecfg.byDVRType == 50)
  208. {
  209. m_ServerTypeCtrl.SetCurSel(m_ServerTypeCtrl.FindString(-1, "IPMOD"));
  210. }
  211. else
  212. {
  213. m_ServerTypeCtrl.SetCurSel(m_devicecfg.byDVRType-1);
  214. }
  215. m_DNSIP.Format("%s", m_netcfg.sIPServerIP);
  216. m_GateWay = m_netcfg.sGatewayIP;
  217. m_ServerIP = m_netcfg.struEtherNet[0].sDVRIP;
  218. m_IPMask = m_netcfg.struEtherNet[0].sDVRIPMask;
  219. m_MacAddr.Format("%02x:%02x:%02x:%02x:%02x:%02x", m_netcfg.struEtherNet[0].byMACAddr[0],m_netcfg.struEtherNet[0].byMACAddr[1],m_netcfg.struEtherNet[0].byMACAddr[2],m_netcfg.struEtherNet[0].byMACAddr[3],m_netcfg.struEtherNet[0].byMACAddr[4],m_netcfg.struEtherNet[0].byMACAddr[5]);
  220. m_MultiIP = m_netcfg.sMultiCastIP;
  221. ZeroMemory(cTemp, 200);
  222. memcpy(cTemp, m_netcfg.sNFSDirectory, PATHNAME_LEN);
  223. m_NFSDir.Format("%s", cTemp);
  224. m_NFSIP = m_netcfg.sNFSIP;
  225. m_ServerPort = m_netcfg.struEtherNet[0].wDVRPort;
  226. m_HardNum = m_devicecfg.byDiskNum;
  227. m_ManageHostIP = m_netcfg.sManageHostIP;
  228. m_ManageHostPort = m_netcfg.wManageHostPort;
  229. ZeroMemory(cTemp, 200);
  230. memcpy(cTemp, m_netcfg.sPPPoEUser, NAME_LEN);
  231. m_PPPoEName.Format("%s", cTemp);
  232. ZeroMemory(cTemp, 200);
  233. memcpy(cTemp, m_netcfg.sPPPoEPassword, PASSWD_LEN);
  234. m_PPPoEpsw.Format("%s", cTemp);
  235. m_RecycleRecord.SetCurSel(m_devicecfg.dwRecycleRecord);
  236. m_NetFace.SetCurSel(m_netcfg.struEtherNet[0].dwNetInterface-1);
  237. m_ComPPPoE.SetCurSel(m_netcfg.dwPPPOE);
  238. m_PPPoEIP = m_netcfg.sPPPoEIP;
  239. m_HttpPort = m_netcfg.wHttpPort;
  240. NET_DVR_VIDEOOUT m_VideoOut;
  241. DWORD dwReturned;
  242. if (!NET_DVR_GetDVRConfig(m_lServerID, NET_DVR_GET_VIDEOOUTCFG, 0,&m_VideoOut, sizeof(NET_DVR_VIDEOOUT), &dwReturned))
  243. {
  244. CString sTemp;
  245. sTemp.Format("ERROR: NET_DVR_GET_VIDEOOUTCFG = %d \n", NET_DVR_GetLastError());
  246. TRACE(sTemp);
  247. // return FALSE;
  248. }
  249. else
  250. {
  251. m_VideoOut.struVOOut[0].wScreenSaveTime = 4;
  252. /* if (!NET_DVR_SetDVRConfig(m_lServerID,NET_DVR_SET_VIDEOOUTCFG, 0, &m_VideoOut, sizeof(NET_DVR_VIDEOOUT)))
  253. {
  254. CString sTemp;
  255. sTemp.Format("%d : ERROR: NET_DVR_SET_VIDEOOUTCFG = %d \n", m_nChanNum, NET_DVR_GetLastError());
  256. TRACE(sTemp);
  257. return FALSE;
  258. }
  259. */
  260. }
  261. NET_DVR_PREVIEWCFG m_temp;
  262. if (!NET_DVR_GetDVRConfig(m_lServerID,NET_DVR_GET_PREVIEWCFG, 0,&m_temp, sizeof(NET_DVR_PREVIEWCFG), &dwReturned))
  263. {
  264. CString sTemp;
  265. sTemp.Format("ERROR: NET_DVR_GET_PREVIEWCFG = %d \n", NET_DVR_GetLastError());
  266. TRACE(sTemp);
  267. // return FALSE;
  268. }
  269. else
  270. {
  271. m_temp.byPreviewNumber = 1;
  272. /* if (!NET_DVR_SetDVRConfig(m_lServerID,NET_DVR_SET_PREVIEWCFG, m_nChanNum, &m_temp, sizeof(NET_DVR_PREVIEWCFG)))
  273. {
  274. CString sTemp;
  275. sTemp.Format("%d : ERROR: NET_DVR_SET_PREVIEWCFG = %d \n", m_nChanNum, NET_DVR_GetLastError());
  276. TRACE(sTemp);
  277. return FALSE;
  278. }
  279. */
  280. }
  281. if (!NET_DVR_GetDVRConfig(m_lServerID,NET_DVR_GET_PREVIEWCFG_AUX, 0,&m_temp, sizeof(NET_DVR_PREVIEWCFG), &dwReturned))
  282. {
  283. CString sTemp;
  284. sTemp.Format("ERROR: NET_DVR_GET_PREVIEWCFG_AUX = %d \n", NET_DVR_GetLastError());
  285. TRACE(sTemp);
  286. // return FALSE;
  287. }
  288. else
  289. {
  290. //m_temp.byPreviewNumber = 2;
  291. //m_temp.byEnableAudio =1;
  292. //m_temp.wSwitchTime = 3;
  293. /*
  294. if (!NET_DVR_SetDVRConfig(m_lServerID,NET_DVR_SET_PREVIEWCFG_AUX, 0, &m_temp, sizeof(NET_DVR_PREVIEWCFG)))
  295. {
  296. CString sTemp;
  297. sTemp.Format("ERROR: NET_DVR_SET_PREVIEWCFG = %d \n", NET_DVR_GetLastError());
  298. TRACE(sTemp);
  299. //return FALSE;
  300. }
  301. */
  302. }
  303. NET_DVR_AUXOUTCFG m_auxout;
  304. if (!NET_DVR_GetDVRConfig(m_lServerID,NET_DVR_GET_AUXOUTCFG, 0,&m_auxout, sizeof(NET_DVR_AUXOUTCFG), &dwReturned))
  305. {
  306. CString sTemp;
  307. sTemp.Format("ERROR: NET_DVR_GET_AUXOUTCFG = %d \n", NET_DVR_GetLastError());
  308. TRACE(sTemp);
  309. // return FALSE;
  310. }
  311. else
  312. {
  313. m_auxout.dwAlarmChanSwitchTime = 5;
  314. m_auxout.dwAlarmOutChan = 1;
  315. /* if (!NET_DVR_SetDVRConfig(m_lServerID,NET_DVR_SET_AUXOUTCFG, 0, &m_auxout, sizeof(NET_DVR_AUXOUTCFG)))
  316. {
  317. CString sTemp;
  318. sTemp.Format("%d : ERROR: NET_DVR_SET_AUXOUTCFG = %d \n", m_nChanNum, NET_DVR_GetLastError());
  319. TRACE(sTemp);
  320. return FALSE;
  321. }
  322. */
  323. }
  324. if (m_iServertype == DEC_MAT)
  325. {
  326. if (!NET_DVR_GetDVRConfig(m_lServerID,NET_DVR_GET_NETCFG_OTHER, 0,&m_NetCFGOther, sizeof(NET_DVR_NETCFG_OTHER), &dwReturned))
  327. {
  328. CString sTemp;
  329. sTemp.Format("ERROR: NET_DVR_GET_NETCFG_OTHER = %d \n", NET_DVR_GetLastError());
  330. TRACE(sTemp);
  331. // return FALSE;
  332. }
  333. else
  334. {
  335. m_FirstDNS = m_NetCFGOther.sFirstDNSIP;
  336. m_SecondDNS = m_NetCFGOther.sSecondDNSIP;
  337. }
  338. }
  339. UpdateData(FALSE);
  340. return TRUE;
  341. }
  342. BOOL CRemoteServerConfig::OnInitDialog()
  343. {
  344. CDialog::OnInitDialog();
  345. // TODO: Add extra initialization here
  346. CRect rc(0, 0, 0, 0);
  347. GetParent()->GetClientRect(&rc);
  348. ((CTabCtrl*)GetParent())->AdjustRect(FALSE, &rc);
  349. MoveWindow(&rc);
  350. bSetServerParams = FALSE;
  351. m_bConnectServer = TRUE;
  352. if (serverinfo[m_iServer].m_dwDevSoftVersion < 0x20001)
  353. {
  354. GetDlgItem(IDC_EMAILCFG)->ShowWindow(SW_HIDE);
  355. }
  356. if (m_iServertype == DEC_MAT)
  357. {
  358. GetDlgItem(IDC_DECMAT1)->ShowWindow(SW_SHOW);
  359. GetDlgItem(IDC_DECMAT2)->ShowWindow(SW_SHOW);
  360. GetDlgItem(IDC_DECMAT3)->ShowWindow(SW_SHOW);
  361. GetDlgItem(IDC_DECMAT4)->ShowWindow(SW_SHOW);
  362. }
  363. if (m_iServertype == DEC || m_iServertype == ENC_DEC || m_iServertype == DEC_MAT)
  364. {
  365. GetDlgItem(IDC_EMAILCFG)->ShowWindow(SW_HIDE);
  366. GetDlgItem(IDC_DDNSEXCFG)->ShowWindow(SW_HIDE);
  367. }
  368. if(m_pRemoteParam->m_dvrSelect != -1)
  369. {
  370. CheckPara();
  371. }
  372. return TRUE; // return TRUE unless you set the focus to a control
  373. // EXCEPTION: OCX Property Pages should return FALSE
  374. }
  375. void CRemoteServerConfig::OnSvrok()
  376. {
  377. if(m_pRemoteParam->m_dvrSelect == -1)
  378. return;
  379. // TODO: Add your control notification handler code here
  380. UpdateData(TRUE);
  381. if(m_ServerPort <= 0)
  382. {
  383. AfxMessageBox("非法的服务器端口号!");
  384. return;
  385. }
  386. if( (m_ServerIP == "0.0.0.0") || (m_ServerIP == "") || !checkIPStr(m_ServerIP))
  387. {
  388. AfxMessageBox("非法的服务器IP地址!");
  389. return;
  390. }
  391. if(!checkIPStr(m_IPMask))
  392. {
  393. AfxMessageBox("非法的掩码地址!");
  394. return;
  395. }
  396. if(!checkIPStr(m_DNSIP))
  397. {
  398. AfxMessageBox("非法的DNS地址!");
  399. return;
  400. }
  401. if(!checkIPStr(m_MultiIP))
  402. {
  403. AfxMessageBox("非法的多播IP地址!");
  404. return;
  405. }
  406. if(!checkIPStr(m_GateWay))
  407. {
  408. AfxMessageBox("非法的网关IP地址!");
  409. return;
  410. }
  411. if(!checkIPStr(m_NFSIP))
  412. {
  413. AfxMessageBox("非法的NAS服务器地址!");
  414. return;
  415. }
  416. if(!checkIPStr(m_ManageHostIP))
  417. {
  418. AfxMessageBox("非法的管理主机IP地址!");
  419. return;
  420. }
  421. if(!checkIPStr(m_PPPoEIP))
  422. {
  423. AfxMessageBox("非法的解析服务器地址!");
  424. return;
  425. }
  426. m_devicecfg.dwDVRID = m_YKQID;
  427. memcpy(m_devicecfg.sDVRName, m_ServerName, NAME_LEN);
  428. memcpy(m_netcfg.struEtherNet[0].sDVRIP, m_ServerIP, 16);
  429. memcpy(m_netcfg.struEtherNet[0].sDVRIPMask, m_IPMask, 16);
  430. memcpy(m_netcfg.sIPServerIP, m_DNSIP, 16);
  431. memcpy(m_netcfg.sMultiCastIP, m_MultiIP,16);
  432. memcpy(m_netcfg.sGatewayIP, m_GateWay,16);
  433. m_netcfg.struEtherNet[0].wDVRPort = m_ServerPort;
  434. memcpy(m_netcfg.sNFSDirectory, m_NFSDir,PATHNAME_LEN);
  435. memcpy(m_netcfg.sNFSIP, m_NFSIP,16);
  436. memcpy(m_netcfg.sManageHostIP, m_ManageHostIP,16);
  437. m_netcfg.wManageHostPort = m_ManageHostPort;
  438. memcpy(m_netcfg.sPPPoEUser, m_PPPoEName, NAME_LEN);
  439. memcpy(m_netcfg.sPPPoEPassword, m_PPPoEpsw, PASSWD_LEN);
  440. memcpy(m_netcfg.sPPPoEIP, m_PPPoEIP, 16);
  441. m_netcfg.struEtherNet[0].dwNetInterface = m_NetFace.GetCurSel()+1;
  442. m_devicecfg.dwRecycleRecord = m_RecycleRecord.GetCurSel();
  443. m_netcfg.dwPPPOE = m_ComPPPoE.GetCurSel();
  444. m_netcfg.wHttpPort = m_HttpPort;
  445. m_dwUseZoom = m_UseZoom.GetCurSel();
  446. bSetServerParams = TRUE;
  447. if (m_iServertype == DEC_MAT)
  448. {
  449. memcpy(m_NetCFGOther.sFirstDNSIP, m_FirstDNS,16);
  450. memcpy(m_NetCFGOther.sSecondDNSIP, m_SecondDNS,16);
  451. if (!NET_DVR_SetDVRConfig(m_lServerID,NET_DVR_SET_NETCFG_OTHER, 0,&m_NetCFGOther, sizeof(NET_DVR_NETCFG_OTHER)))
  452. {
  453. CString sTemp;
  454. sTemp.Format("ERROR: NET_DVR_SET_NETCFG_OTHER = %d \n", NET_DVR_GetLastError());
  455. TRACE(sTemp);
  456. AfxMessageBox(sTemp);
  457. }
  458. }
  459. }
  460. void CRemoteServerConfig::OnExit()
  461. {
  462. // TODO: Add your control notification handler code here
  463. bSetServerParams = FALSE;
  464. }
  465. void CRemoteServerConfig::OnCancel()
  466. {
  467. // TODO: Add extra cleanup here
  468. // CDialog::OnCancel();
  469. }
  470. void CRemoteServerConfig::OnEmailcfg()
  471. {
  472. // TODO: Add your control notification handler code here
  473. if(m_pRemoteParam->m_dvrSelect == -1)
  474. {
  475. AfxMessageBox("请先选择DVR...");
  476. return;
  477. }
  478. m_pRemoteNetCfgDlg = new CRemoteNetConfig;
  479. m_pRemoteNetCfgDlg->m_lServerID = m_lServerID;
  480. if(m_pRemoteNetCfgDlg->DoModal() == IDCANCEL)
  481. {
  482. delete m_pRemoteNetCfgDlg;
  483. m_pRemoteNetCfgDlg = NULL;
  484. TRACE("delete...\n");
  485. }
  486. }
  487. void CRemoteServerConfig::OnDdnsexcfg()
  488. {
  489. // TODO: Add your control notification handler code here
  490. CRemoteDDNSEx RDE(m_lServerID);
  491. RDE.DoModal();
  492. }