SetSurveillance.cpp 41 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012
  1. // SetSurveillance.cpp : implementation file
  2. //
  3. #include "stdafx.h"
  4. #include "StoneU_HC_OCX.h"
  5. #include "SetSurveillance.h"
  6. #include "AddSvrInfo.h"
  7. #include "RemoteParamsCfg.h"
  8. #include "ServerInfo.h"
  9. #include "ChannelInfo.h"
  10. #include "WorkState.h"
  11. #include "RemoteKey.h"
  12. #include "RemoteLog.h"
  13. #include "RemoteUpgrade.h"
  14. #include "FormatDisk.h"
  15. #include "MyOutput.h"
  16. #include "Global.h"
  17. #include "mdlProject.h"
  18. #ifdef _DEBUG
  19. #define new DEBUG_NEW
  20. #undef THIS_FILE
  21. static char THIS_FILE[] = __FILE__;
  22. #endif
  23. DWORD g_dwSwitch = 0;
  24. extern void WriteSurveillanceConfig();
  25. /////////////////////////////////////////////////////////////////////////////
  26. // CSetSurveillance dialog
  27. CSetSurveillance::CSetSurveillance(CWnd* pParent /*=NULL*/)
  28. : CDialog(CSetSurveillance::IDD, pParent)
  29. {
  30. //{{AFX_DATA_INIT(CSetSurveillance)
  31. //}}AFX_DATA_INIT
  32. }
  33. void CSetSurveillance::DoDataExchange(CDataExchange* pDX)
  34. {
  35. CDialog::DoDataExchange(pDX);
  36. //{{AFX_DATA_MAP(CSetSurveillance)
  37. DDX_Control(pDX, IDC_TREE2, m_treesel);
  38. DDX_Control(pDX, IDC_TREE1, m_treeall);
  39. //}}AFX_DATA_MAP
  40. }
  41. BEGIN_MESSAGE_MAP(CSetSurveillance, CDialog)
  42. //{{AFX_MSG_MAP(CSetSurveillance)
  43. ON_BN_CLICKED(IDC_BUTTONCHOOSE, OnButtonchoose)
  44. ON_BN_CLICKED(IDC_BUTTONDOWN, OnButtondown)
  45. ON_BN_CLICKED(IDC_BUTTONUNCHOOSE, OnButtonunchoose)
  46. ON_BN_CLICKED(IDC_BUTTONUP, OnButtonup)
  47. ON_BN_CLICKED(IDC_LOGIN, OnLogin)
  48. ON_BN_CLICKED(IDC_LOGOUT, OnLogout)
  49. ON_BN_CLICKED(IDC_SERVERCFG, OnServercfg)
  50. ON_NOTIFY(NM_DBLCLK, IDC_TREE2, OnDblclkTree2)
  51. ON_NOTIFY(NM_DBLCLK, IDC_TREE1, OnDblclkTree1)
  52. ON_BN_CLICKED(IDC_SERVERSTATE, OnServerstate)
  53. ON_BN_CLICKED(IDSETREMOTEOK, OnSetremoteok)
  54. ON_BN_CLICKED(IDC_KEYCLICK, OnKeyclick)
  55. ON_BN_CLICKED(IDC_REMOTELOG, OnRemotelog)
  56. ON_NOTIFY(TVN_DELETEITEM, IDC_TREE1, OnDeleteitemTree1)
  57. ON_NOTIFY(TVN_DELETEITEM, IDC_TREE2, OnDeleteitemTree2)
  58. ON_BN_CLICKED(IDC_CHECKTIME, OnChecktime)
  59. ON_BN_CLICKED(IDC_REBOOT, OnReboot)
  60. ON_BN_CLICKED(IDC_REMOTEUPGRADE, OnRemoteupgrade)
  61. ON_BN_CLICKED(IDC_FORMATDISK, OnFormatdisk)
  62. ON_NOTIFY(NM_RCLICK, IDC_TREE1, OnRclickTree1)
  63. //}}AFX_MSG_MAP
  64. END_MESSAGE_MAP()
  65. /////////////////////////////////////////////////////////////////////////////
  66. // CSetSurveillance message handlers
  67. BOOL CSetSurveillance::OnInitDialog()
  68. {
  69. CDialog::OnInitDialog();
  70. // TODO: Add extra initialization here
  71. CRect rc(0, 0, 0, 0);
  72. GetParent()->GetClientRect(&rc);
  73. ((CTabCtrl*)GetParent())->AdjustRect(FALSE, &rc);
  74. MoveWindow(&rc);
  75. // ReadSurveillanceConfig(); //by zxy 2004/05/20
  76. F_IniTreeall();
  77. m_bSaveflag = FALSE;
  78. return TRUE; // return TRUE unless you set the focus to a control
  79. // EXCEPTION: OCX Property Pages should return FALSE
  80. }
  81. void CSetSurveillance::OnButtonchoose()
  82. {
  83. // TODO: Add your control notification handler code here
  84. HTREEITEM node1,node2,node3;
  85. int i,j,iNum;
  86. CString sTemp;
  87. node1=m_treeall.GetSelectedItem();
  88. if (node1==NULL)
  89. return;
  90. node2=m_treeall.GetParentItem(node1);
  91. if(node2==NULL)
  92. {
  93. node2=m_treeall.GetChildItem(node1);
  94. while (node2!=NULL)
  95. {
  96. i=m_treeall.GetItemData(node1);
  97. j=m_treeall.GetItemData(node2);
  98. iNum=i*100+j;
  99. sTemp.Format("%s(%s)",g_pNewclientDlg->m_Serverinfo[i].m_csServerName,g_pNewclientDlg->m_Allipinfo[i][j].m_csChanName);
  100. node3=m_treesel.InsertItem(sTemp,1,1,TVI_ROOT);
  101. m_treesel.SetItemData(node3,iNum);
  102. g_pNewclientDlg->m_Allipinfo[i][j].m_bChoosed = TRUE;
  103. node3=node2;
  104. node2=m_treeall.GetNextSiblingItem(node2);
  105. m_treeall.DeleteItem(node3);
  106. if (g_pNewclientDlg->m_nSurveillanceNumber >= MAXNUMBER)
  107. {
  108. MessageBox("最多可添加512路,路数达到最大!", "温馨提示", MB_ICONINFORMATION);
  109. return;
  110. }
  111. g_pNewclientDlg->m_Allipinfo[i][j].m_iSequence = g_pNewclientDlg->m_nSurveillanceNumber; //该监控点的顺序
  112. g_pNewclientDlg->m_Selipinfo[g_pNewclientDlg->m_nSurveillanceNumber].m_bChoosed = g_pNewclientDlg->m_Allipinfo[i][j].m_bChoosed;
  113. g_pNewclientDlg->m_Selipinfo[g_pNewclientDlg->m_nSurveillanceNumber].m_csChanName = g_pNewclientDlg->m_Allipinfo[i][j].m_csChanName;
  114. g_pNewclientDlg->m_Selipinfo[g_pNewclientDlg->m_nSurveillanceNumber].m_csIP = g_pNewclientDlg->m_Allipinfo[i][j].m_csIP;
  115. g_pNewclientDlg->m_Selipinfo[g_pNewclientDlg->m_nSurveillanceNumber].m_csMultiIP = g_pNewclientDlg->m_Allipinfo[i][j].m_csMultiIP;
  116. g_pNewclientDlg->m_Selipinfo[g_pNewclientDlg->m_nSurveillanceNumber].m_csPassword = g_pNewclientDlg->m_Allipinfo[i][j].m_csPassword;
  117. g_pNewclientDlg->m_Selipinfo[g_pNewclientDlg->m_nSurveillanceNumber].m_csUser = g_pNewclientDlg->m_Allipinfo[i][j].m_csUser;
  118. g_pNewclientDlg->m_Selipinfo[g_pNewclientDlg->m_nSurveillanceNumber].m_dwAddress = g_pNewclientDlg->m_Allipinfo[i][j].m_dwAddress;
  119. g_pNewclientDlg->m_Selipinfo[g_pNewclientDlg->m_nSurveillanceNumber].m_dwAlarmlevel = g_pNewclientDlg->m_Allipinfo[i][j].m_dwAlarmlevel;
  120. g_pNewclientDlg->m_Selipinfo[g_pNewclientDlg->m_nSurveillanceNumber].m_dwIPvalue = g_pNewclientDlg->m_Allipinfo[i][j].m_dwIPvalue;
  121. g_pNewclientDlg->m_Selipinfo[g_pNewclientDlg->m_nSurveillanceNumber].m_dwMultiIPvalue = g_pNewclientDlg->m_Allipinfo[i][j].m_dwMultiIPvalue;
  122. g_pNewclientDlg->m_Selipinfo[g_pNewclientDlg->m_nSurveillanceNumber].m_dwProtocol = g_pNewclientDlg->m_Allipinfo[i][j].m_dwProtocol;
  123. g_pNewclientDlg->m_Selipinfo[g_pNewclientDlg->m_nSurveillanceNumber].m_iChannel = g_pNewclientDlg->m_Allipinfo[i][j].m_iChannel;
  124. g_pNewclientDlg->m_Selipinfo[g_pNewclientDlg->m_nSurveillanceNumber].m_iSequence = g_pNewclientDlg->m_Allipinfo[i][j].m_iSequence;
  125. g_pNewclientDlg->m_Selipinfo[g_pNewclientDlg->m_nSurveillanceNumber].m_lServerID = g_pNewclientDlg->m_Allipinfo[i][j].m_lServerID;
  126. g_pNewclientDlg->m_Selipinfo[g_pNewclientDlg->m_nSurveillanceNumber].m_wJMQtype = g_pNewclientDlg->m_Allipinfo[i][j].m_wJMQtype;
  127. g_pNewclientDlg->m_Selipinfo[g_pNewclientDlg->m_nSurveillanceNumber].m_wServerport = g_pNewclientDlg->m_Allipinfo[i][j].m_wServerport;
  128. g_pNewclientDlg->m_Selipinfo[g_pNewclientDlg->m_nSurveillanceNumber].m_iServerNum = i;
  129. g_pNewclientDlg->m_Selipinfo[g_pNewclientDlg->m_nSurveillanceNumber].m_iChannelNum = j;
  130. g_pNewclientDlg->m_nSurveillanceNumber++;
  131. }
  132. }
  133. else
  134. {
  135. i=m_treeall.GetItemData(node2);
  136. j=m_treeall.GetItemData(node1);
  137. iNum=i*100+j;
  138. sTemp.Format("%s(%s)",g_pNewclientDlg->m_Serverinfo[i].m_csServerName,g_pNewclientDlg->m_Allipinfo[i][j].m_csChanName);
  139. node3=m_treesel.InsertItem(sTemp,1,1,TVI_ROOT);
  140. m_treesel.SetItemData(node3,iNum);
  141. g_pNewclientDlg->m_Allipinfo[i][j].m_bChoosed = TRUE;
  142. m_treeall.DeleteItem(node1);
  143. if (g_pNewclientDlg->m_nSurveillanceNumber >= MAXNUMBER)
  144. {
  145. MessageBox("最多可添加512路,路数达到最大!", "温馨提示", MB_ICONINFORMATION);
  146. return;
  147. }
  148. g_pNewclientDlg->m_Allipinfo[i][j].m_iSequence = g_pNewclientDlg->m_nSurveillanceNumber; //该监控点的顺序
  149. g_pNewclientDlg->m_Selipinfo[g_pNewclientDlg->m_nSurveillanceNumber].m_bChoosed = g_pNewclientDlg->m_Allipinfo[i][j].m_bChoosed;
  150. g_pNewclientDlg->m_Selipinfo[g_pNewclientDlg->m_nSurveillanceNumber].m_csChanName = g_pNewclientDlg->m_Allipinfo[i][j].m_csChanName;
  151. g_pNewclientDlg->m_Selipinfo[g_pNewclientDlg->m_nSurveillanceNumber].m_csIP = g_pNewclientDlg->m_Allipinfo[i][j].m_csIP;
  152. g_pNewclientDlg->m_Selipinfo[g_pNewclientDlg->m_nSurveillanceNumber].m_csMultiIP = g_pNewclientDlg->m_Allipinfo[i][j].m_csMultiIP;
  153. g_pNewclientDlg->m_Selipinfo[g_pNewclientDlg->m_nSurveillanceNumber].m_csPassword = g_pNewclientDlg->m_Allipinfo[i][j].m_csPassword;
  154. g_pNewclientDlg->m_Selipinfo[g_pNewclientDlg->m_nSurveillanceNumber].m_csUser = g_pNewclientDlg->m_Allipinfo[i][j].m_csUser;
  155. g_pNewclientDlg->m_Selipinfo[g_pNewclientDlg->m_nSurveillanceNumber].m_dwAddress = g_pNewclientDlg->m_Allipinfo[i][j].m_dwAddress;
  156. g_pNewclientDlg->m_Selipinfo[g_pNewclientDlg->m_nSurveillanceNumber].m_dwAlarmlevel = g_pNewclientDlg->m_Allipinfo[i][j].m_dwAlarmlevel;
  157. g_pNewclientDlg->m_Selipinfo[g_pNewclientDlg->m_nSurveillanceNumber].m_dwIPvalue = g_pNewclientDlg->m_Allipinfo[i][j].m_dwIPvalue;
  158. g_pNewclientDlg->m_Selipinfo[g_pNewclientDlg->m_nSurveillanceNumber].m_dwMultiIPvalue = g_pNewclientDlg->m_Allipinfo[i][j].m_dwMultiIPvalue;
  159. g_pNewclientDlg->m_Selipinfo[g_pNewclientDlg->m_nSurveillanceNumber].m_dwProtocol = g_pNewclientDlg->m_Allipinfo[i][j].m_dwProtocol;
  160. g_pNewclientDlg->m_Selipinfo[g_pNewclientDlg->m_nSurveillanceNumber].m_iChannel = g_pNewclientDlg->m_Allipinfo[i][j].m_iChannel;
  161. g_pNewclientDlg->m_Selipinfo[g_pNewclientDlg->m_nSurveillanceNumber].m_iSequence = g_pNewclientDlg->m_Allipinfo[i][j].m_iSequence;
  162. g_pNewclientDlg->m_Selipinfo[g_pNewclientDlg->m_nSurveillanceNumber].m_lServerID = g_pNewclientDlg->m_Allipinfo[i][j].m_lServerID;
  163. g_pNewclientDlg->m_Selipinfo[g_pNewclientDlg->m_nSurveillanceNumber].m_wJMQtype = g_pNewclientDlg->m_Allipinfo[i][j].m_wJMQtype;
  164. g_pNewclientDlg->m_Selipinfo[g_pNewclientDlg->m_nSurveillanceNumber].m_wServerport = g_pNewclientDlg->m_Allipinfo[i][j].m_wServerport;
  165. g_pNewclientDlg->m_Selipinfo[g_pNewclientDlg->m_nSurveillanceNumber].m_iServerNum = i;
  166. g_pNewclientDlg->m_Selipinfo[g_pNewclientDlg->m_nSurveillanceNumber].m_iChannelNum = j;
  167. g_pNewclientDlg->m_nSurveillanceNumber++;
  168. }
  169. }
  170. void CSetSurveillance::OnButtondown()
  171. {
  172. // TODO: Add your control notification handler code here
  173. HTREEITEM node1,node2;
  174. int num1, num2;
  175. CString sTemp;
  176. node1=m_treesel.GetSelectedItem();
  177. if(node1==NULL)
  178. {
  179. return;
  180. }
  181. node2=m_treesel.GetNextSiblingItem(node1);
  182. if(node2==NULL)
  183. {
  184. return;
  185. }
  186. num1 = m_treesel.GetItemData(node1);
  187. num2 = m_treesel.GetItemData(node2);
  188. m_treesel.SetItemData(node1,num2);
  189. m_treesel.SetItemData(node2,num1);
  190. sTemp.Format("%s",m_treesel.GetItemText(node1));
  191. m_treesel.SetItemText(node1,m_treesel.GetItemText(node2));
  192. m_treesel.SetItemText(node2,sTemp);
  193. m_treesel.SelectItem(node2);
  194. Exchange(num1, num2);
  195. }
  196. void CSetSurveillance::OnButtonunchoose()
  197. {
  198. // TODO: Add your control notification handler code here
  199. HTREEITEM node1,node2,node3;
  200. int i,j,iNum, iTemp;
  201. node1=m_treesel.GetSelectedItem();
  202. if(node1==NULL)
  203. return;
  204. iNum=m_treesel.GetItemData(node1);
  205. j=iNum % 100;
  206. i=(iNum-j)/100;
  207. iTemp = g_pNewclientDlg->m_Allipinfo[i][j].m_iSequence;
  208. if(iTemp < MAXVIEWNUM)
  209. {
  210. if(g_pNewclientDlg->m_MyOutput[iTemp].m_iPlayhandle != -1)
  211. {
  212. MessageBox("请先停止网络预览,然后再从播放列表中移开!", "温馨提示", MB_ICONINFORMATION);
  213. return;
  214. }
  215. }
  216. node2=m_treeall.GetRootItem();
  217. while(node2!=NULL)
  218. {
  219. iTemp=m_treeall.GetItemData(node2);
  220. if(iTemp==i)
  221. {
  222. node3=m_treeall.InsertItem(g_pNewclientDlg->m_Allipinfo[i][j].m_csChanName,1,1,node2);
  223. m_treeall.SetItemData(node3,j);
  224. m_treeall.Expand(node2,TVE_EXPAND);
  225. break;
  226. }
  227. node2=m_treeall.GetNextSiblingItem(node2);
  228. }
  229. g_pNewclientDlg->m_Allipinfo[i][j].m_bChoosed = FALSE;
  230. g_pNewclientDlg->m_Allipinfo[i][j].m_iSequence = -1;
  231. m_treesel.DeleteItem(node1);
  232. g_pNewclientDlg->m_nSurveillanceNumber--;
  233. int n;
  234. for(n=iTemp; n<g_pNewclientDlg->m_nSurveillanceNumber-1; n++)
  235. {
  236. g_pNewclientDlg->m_Selipinfo[n].m_bChoosed = g_pNewclientDlg->m_Selipinfo[n+1].m_bChoosed;
  237. g_pNewclientDlg->m_Selipinfo[n].m_csChanName = g_pNewclientDlg->m_Selipinfo[n+1].m_csChanName;
  238. g_pNewclientDlg->m_Selipinfo[n].m_csIP = g_pNewclientDlg->m_Selipinfo[n+1].m_csIP;
  239. g_pNewclientDlg->m_Selipinfo[n].m_csMultiIP = g_pNewclientDlg->m_Selipinfo[n+1].m_csMultiIP;
  240. g_pNewclientDlg->m_Selipinfo[n].m_csPassword = g_pNewclientDlg->m_Selipinfo[n+1].m_csPassword;
  241. g_pNewclientDlg->m_Selipinfo[n].m_csUser = g_pNewclientDlg->m_Selipinfo[n+1].m_csUser;
  242. g_pNewclientDlg->m_Selipinfo[n].m_dwAddress = g_pNewclientDlg->m_Selipinfo[n+1].m_dwAddress;
  243. g_pNewclientDlg->m_Selipinfo[n].m_dwAlarmlevel = g_pNewclientDlg->m_Selipinfo[n+1].m_dwAlarmlevel;
  244. g_pNewclientDlg->m_Selipinfo[n].m_dwIPvalue = g_pNewclientDlg->m_Selipinfo[n+1].m_dwIPvalue;
  245. g_pNewclientDlg->m_Selipinfo[n].m_dwMultiIPvalue = g_pNewclientDlg->m_Selipinfo[n+1].m_dwMultiIPvalue;
  246. g_pNewclientDlg->m_Selipinfo[n].m_dwProtocol = g_pNewclientDlg->m_Selipinfo[n+1].m_dwProtocol;
  247. g_pNewclientDlg->m_Selipinfo[n].m_iChannel = g_pNewclientDlg->m_Selipinfo[n+1].m_iChannel;
  248. g_pNewclientDlg->m_Selipinfo[n].m_iSequence = g_pNewclientDlg->m_Selipinfo[n+1].m_iSequence;
  249. g_pNewclientDlg->m_Selipinfo[n].m_lServerID = g_pNewclientDlg->m_Selipinfo[n+1].m_lServerID;
  250. g_pNewclientDlg->m_Selipinfo[n].m_wJMQtype = g_pNewclientDlg->m_Selipinfo[n+1].m_wJMQtype;
  251. g_pNewclientDlg->m_Selipinfo[n].m_wServerport = g_pNewclientDlg->m_Selipinfo[n+1].m_wServerport;
  252. g_pNewclientDlg->m_Selipinfo[n].m_iServerNum = g_pNewclientDlg->m_Selipinfo[n+1].m_iServerNum;
  253. g_pNewclientDlg->m_Selipinfo[n].m_iChannelNum = g_pNewclientDlg->m_Selipinfo[n+1].m_iChannelNum;
  254. g_pNewclientDlg->m_Allipinfo[g_pNewclientDlg->m_Selipinfo[n].m_iServerNum][g_pNewclientDlg->m_Selipinfo[n].m_iChannelNum].m_iSequence = n;
  255. }
  256. g_pNewclientDlg->m_Selipinfo[n].m_bChoosed = FALSE;
  257. g_pNewclientDlg->m_Selipinfo[n].m_iChannel = -1;
  258. g_pNewclientDlg->m_Selipinfo[n].m_iSequence = -1;
  259. g_pNewclientDlg->m_Selipinfo[n].m_lServerID = -1;
  260. g_pNewclientDlg->m_Selipinfo[n].m_iServerNum = -1;
  261. g_pNewclientDlg->m_Selipinfo[n].m_iChannelNum = -1;
  262. }
  263. void CSetSurveillance::OnButtonup()
  264. {
  265. // TODO: Add your control notification handler code here
  266. HTREEITEM node1,node2;
  267. int num1, num2;;
  268. CString sTemp;
  269. node1=m_treesel.GetSelectedItem();
  270. if(node1==NULL)
  271. {
  272. return;
  273. }
  274. node2=m_treesel.GetPrevSiblingItem(node1);
  275. if(node2==NULL)
  276. {
  277. return;
  278. }
  279. num1 = m_treesel.GetItemData(node1);
  280. num2 = m_treesel.GetItemData(node2);
  281. m_treesel.SetItemData(node1,num2);
  282. m_treesel.SetItemData(node2,num1);
  283. sTemp.Format("%s",m_treesel.GetItemText(node1));
  284. m_treesel.SetItemText(node1,m_treesel.GetItemText(node2));
  285. m_treesel.SetItemText(node2,sTemp);
  286. m_treesel.SelectItem(node2);
  287. Exchange(num1, num2);
  288. }
  289. void CSetSurveillance::Exchange(int num1, int num2)
  290. {
  291. int i,j,k,n;
  292. int iSequence1,iSequence2;
  293. IP_INFO Temp;
  294. j = num1 % 100;
  295. i = (num1-j)/100;
  296. iSequence1 = g_pNewclientDlg->m_Allipinfo[i][j].m_iSequence;
  297. n = num2 % 100;
  298. k = (num2-n)/100;
  299. iSequence2 = g_pNewclientDlg->m_Allipinfo[k][n].m_iSequence;
  300. g_pNewclientDlg->m_Allipinfo[k][n].m_iSequence = iSequence1;
  301. g_pNewclientDlg->m_Allipinfo[i][j].m_iSequence = iSequence2;
  302. Temp.m_bChoosed = g_pNewclientDlg->m_Selipinfo[iSequence1].m_bChoosed;
  303. Temp.m_csChanName = g_pNewclientDlg->m_Selipinfo[iSequence1].m_csChanName;
  304. Temp.m_csIP = g_pNewclientDlg->m_Selipinfo[iSequence1].m_csIP;
  305. Temp.m_csMultiIP = g_pNewclientDlg->m_Selipinfo[iSequence1].m_csMultiIP;
  306. Temp.m_csPassword = g_pNewclientDlg->m_Selipinfo[iSequence1].m_csPassword;
  307. Temp.m_csUser = g_pNewclientDlg->m_Selipinfo[iSequence1].m_csUser;
  308. Temp.m_dwAddress = g_pNewclientDlg->m_Selipinfo[iSequence1].m_dwAddress;
  309. Temp.m_dwAlarmlevel = g_pNewclientDlg->m_Selipinfo[iSequence1].m_dwAlarmlevel;
  310. Temp.m_dwIPvalue = g_pNewclientDlg->m_Selipinfo[iSequence1].m_dwIPvalue;
  311. Temp.m_dwMultiIPvalue = g_pNewclientDlg->m_Selipinfo[iSequence1].m_dwMultiIPvalue;
  312. Temp.m_dwProtocol = g_pNewclientDlg->m_Selipinfo[iSequence1].m_dwProtocol;
  313. Temp.m_iChannel = g_pNewclientDlg->m_Selipinfo[iSequence1].m_iChannel;
  314. Temp.m_iSequence = g_pNewclientDlg->m_Selipinfo[iSequence1].m_iSequence;
  315. Temp.m_lServerID = g_pNewclientDlg->m_Selipinfo[iSequence1].m_lServerID;
  316. Temp.m_wJMQtype = g_pNewclientDlg->m_Selipinfo[iSequence1].m_wJMQtype;
  317. Temp.m_wServerport = g_pNewclientDlg->m_Selipinfo[iSequence1].m_wServerport;
  318. Temp.m_iServerNum = i;
  319. Temp.m_iChannelNum = j;
  320. ////
  321. if(iSequence2 == -1)
  322. {
  323. iSequence2 = -1;
  324. }
  325. g_pNewclientDlg->m_Selipinfo[iSequence1].m_bChoosed = g_pNewclientDlg->m_Selipinfo[iSequence2].m_bChoosed;
  326. g_pNewclientDlg->m_Selipinfo[iSequence1].m_csChanName = g_pNewclientDlg->m_Selipinfo[iSequence2].m_csChanName;
  327. g_pNewclientDlg->m_Selipinfo[iSequence1].m_csIP = g_pNewclientDlg->m_Selipinfo[iSequence2].m_csIP;
  328. g_pNewclientDlg->m_Selipinfo[iSequence1].m_csMultiIP = g_pNewclientDlg->m_Selipinfo[iSequence2].m_csMultiIP;
  329. g_pNewclientDlg->m_Selipinfo[iSequence1].m_csPassword = g_pNewclientDlg->m_Selipinfo[iSequence2].m_csPassword;
  330. g_pNewclientDlg->m_Selipinfo[iSequence1].m_csUser = g_pNewclientDlg->m_Selipinfo[iSequence2].m_csUser;
  331. g_pNewclientDlg->m_Selipinfo[iSequence1].m_dwAddress = g_pNewclientDlg->m_Selipinfo[iSequence2].m_dwAddress;
  332. g_pNewclientDlg->m_Selipinfo[iSequence1].m_dwAlarmlevel = g_pNewclientDlg->m_Selipinfo[iSequence2].m_dwAlarmlevel;
  333. g_pNewclientDlg->m_Selipinfo[iSequence1].m_dwIPvalue = g_pNewclientDlg->m_Selipinfo[iSequence2].m_dwIPvalue;
  334. g_pNewclientDlg->m_Selipinfo[iSequence1].m_dwMultiIPvalue = g_pNewclientDlg->m_Selipinfo[iSequence2].m_dwMultiIPvalue;
  335. g_pNewclientDlg->m_Selipinfo[iSequence1].m_dwProtocol = g_pNewclientDlg->m_Selipinfo[iSequence2].m_dwProtocol;
  336. g_pNewclientDlg->m_Selipinfo[iSequence1].m_iChannel = g_pNewclientDlg->m_Selipinfo[iSequence2].m_iChannel;
  337. g_pNewclientDlg->m_Selipinfo[iSequence1].m_iSequence = g_pNewclientDlg->m_Selipinfo[iSequence2].m_iSequence;
  338. g_pNewclientDlg->m_Selipinfo[iSequence1].m_lServerID = g_pNewclientDlg->m_Selipinfo[iSequence2].m_lServerID;
  339. g_pNewclientDlg->m_Selipinfo[iSequence1].m_wJMQtype = g_pNewclientDlg->m_Selipinfo[iSequence2].m_wJMQtype;
  340. g_pNewclientDlg->m_Selipinfo[iSequence1].m_wServerport = g_pNewclientDlg->m_Selipinfo[iSequence2].m_wServerport;
  341. g_pNewclientDlg->m_Selipinfo[iSequence1].m_iServerNum = k;
  342. g_pNewclientDlg->m_Selipinfo[iSequence1].m_iChannelNum = n;
  343. g_pNewclientDlg->m_Selipinfo[iSequence2].m_bChoosed = Temp.m_bChoosed;
  344. g_pNewclientDlg->m_Selipinfo[iSequence2].m_csChanName = Temp.m_csChanName;
  345. g_pNewclientDlg->m_Selipinfo[iSequence2].m_csIP = Temp.m_csIP;
  346. g_pNewclientDlg->m_Selipinfo[iSequence2].m_csMultiIP = Temp.m_csMultiIP;
  347. g_pNewclientDlg->m_Selipinfo[iSequence2].m_csPassword = Temp.m_csPassword;
  348. g_pNewclientDlg->m_Selipinfo[iSequence2].m_csUser = Temp.m_csUser;
  349. g_pNewclientDlg->m_Selipinfo[iSequence2].m_dwAddress = Temp.m_dwAddress;
  350. g_pNewclientDlg->m_Selipinfo[iSequence2].m_dwAlarmlevel = Temp.m_dwAlarmlevel;
  351. g_pNewclientDlg->m_Selipinfo[iSequence2].m_dwIPvalue = Temp.m_dwIPvalue;
  352. g_pNewclientDlg->m_Selipinfo[iSequence2].m_dwMultiIPvalue = Temp.m_dwMultiIPvalue;
  353. g_pNewclientDlg->m_Selipinfo[iSequence2].m_dwProtocol = Temp.m_dwProtocol;
  354. g_pNewclientDlg->m_Selipinfo[iSequence2].m_iChannel = Temp.m_iChannel;
  355. g_pNewclientDlg->m_Selipinfo[iSequence2].m_iSequence = Temp.m_iSequence;
  356. g_pNewclientDlg->m_Selipinfo[iSequence2].m_lServerID = Temp.m_lServerID;
  357. g_pNewclientDlg->m_Selipinfo[iSequence2].m_wJMQtype = Temp.m_wJMQtype;
  358. g_pNewclientDlg->m_Selipinfo[iSequence2].m_wServerport = Temp.m_wServerport;
  359. g_pNewclientDlg->m_Selipinfo[iSequence2].m_iServerNum = i;
  360. g_pNewclientDlg->m_Selipinfo[iSequence2].m_iChannelNum = j;
  361. }
  362. void CSetSurveillance::OnLogin()
  363. {
  364. // TODO: Add your control notification handler code here
  365. int i;
  366. for(i = 0; i < MAXIPNUMBER; i++)
  367. {
  368. if(g_pNewclientDlg->m_Serverinfo[i].m_iServerChannelNumber == -1)
  369. {
  370. CAddSvrInfo AddSvrInfoDlg;
  371. AddSvrInfoDlg.m_iServerNum = i;
  372. AddSvrInfoDlg.DoModal();
  373. if(AddSvrInfoDlg.m_bChanged)
  374. {
  375. TRACE("changed the g_pNewclientDlg->m_Serverinfo[%d].", i);
  376. F_IniTreeall();
  377. }
  378. return;
  379. }
  380. }
  381. MessageBox("超过最大服务器数,请先删除再添加!", "温馨提示", MB_ICONINFORMATION);
  382. }
  383. void CSetSurveillance::OnLogout()
  384. {
  385. // TODO: Add your control notification handler code here
  386. HTREEITEM node1, node2;
  387. int i, isel, j, k, iNum;
  388. node1 = m_treeall.GetSelectedItem();
  389. if(node1 == NULL)
  390. {
  391. MessageBox("请选择DVR!", "温馨提示", MB_ICONINFORMATION);
  392. return;
  393. }
  394. node2 = m_treeall.GetParentItem(node1);
  395. if(node2 == NULL)
  396. {
  397. if(IDOK != MessageBox("确实要删除该视频服务器吗?","警告!",MB_OKCANCEL|MB_ICONWARNING))
  398. return;
  399. isel = m_treeall.GetItemData(node1);
  400. if(!NET_DVR_Logout(g_pNewclientDlg->m_Serverinfo[isel].m_lServerID))
  401. {
  402. CString sTemp;
  403. sTemp.Format("ERROR: %s NET_DVR_Logout = %d",g_pNewclientDlg->m_Serverinfo[isel].m_csServerIP, NET_DVR_GetLastError());
  404. TRACE(sTemp);
  405. }
  406. g_pNewclientDlg->m_Serverinfo[isel].m_lServerID = -1;
  407. TRACE("delete server[%d]", isel);
  408. for(i = isel; i < MAXIPNUMBER - 1; i++)
  409. {
  410. j = i + 1;
  411. if(g_pNewclientDlg->m_Serverinfo[j].m_iServerChannelNumber == -1)
  412. break; //g_pNewclientDlg->m_Serverinfo[j]开始都是空的;
  413. else
  414. {
  415. g_pNewclientDlg->m_Serverinfo[i].m_lStartChannel = g_pNewclientDlg->m_Serverinfo[j].m_lStartChannel;
  416. g_pNewclientDlg->m_Serverinfo[i].m_csSerialNumber = g_pNewclientDlg->m_Serverinfo[j].m_csSerialNumber; //序列号
  417. g_pNewclientDlg->m_Serverinfo[i].m_dwAlarmInNum = g_pNewclientDlg->m_Serverinfo[j].m_dwAlarmInNum; //报警输入个数
  418. g_pNewclientDlg->m_Serverinfo[i].m_dwAlarmOutNum = g_pNewclientDlg->m_Serverinfo[j].m_dwAlarmOutNum; //报警输出个数
  419. g_pNewclientDlg->m_Serverinfo[i].m_dwDiskNum = g_pNewclientDlg->m_Serverinfo[j].m_dwDiskNum; //硬盘个数
  420. g_pNewclientDlg->m_Serverinfo[i].m_csServerAdminName = g_pNewclientDlg->m_Serverinfo[j].m_csServerAdminName;
  421. g_pNewclientDlg->m_Serverinfo[i].m_csServerAdminPasswd = g_pNewclientDlg->m_Serverinfo[j].m_csServerAdminPasswd;
  422. g_pNewclientDlg->m_Serverinfo[i].m_csServerIP = g_pNewclientDlg->m_Serverinfo[j].m_csServerIP;
  423. g_pNewclientDlg->m_Serverinfo[i].m_csServerMultiIP = g_pNewclientDlg->m_Serverinfo[j].m_csServerMultiIP;
  424. g_pNewclientDlg->m_Serverinfo[i].m_dwServerMultiIPvalue = g_pNewclientDlg->m_Serverinfo[j].m_dwServerMultiIPvalue;
  425. g_pNewclientDlg->m_Serverinfo[i].m_csServerName = g_pNewclientDlg->m_Serverinfo[j].m_csServerName;
  426. g_pNewclientDlg->m_Serverinfo[i].m_dwServerIPvalue = g_pNewclientDlg->m_Serverinfo[j].m_dwServerIPvalue;
  427. g_pNewclientDlg->m_Serverinfo[i].m_iServerChannelNumber = g_pNewclientDlg->m_Serverinfo[j].m_iServerChannelNumber;
  428. g_pNewclientDlg->m_Serverinfo[i].m_wServerPort = g_pNewclientDlg->m_Serverinfo[j].m_wServerPort;
  429. g_pNewclientDlg->m_Serverinfo[i].m_wServerType = g_pNewclientDlg->m_Serverinfo[j].m_wServerType;
  430. g_pNewclientDlg->m_Serverinfo[i].m_lServerID = g_pNewclientDlg->m_Serverinfo[j].m_lServerID;
  431. for(k = 0; k < MAXCHANNUM; k++)
  432. {
  433. g_pNewclientDlg->m_Allipinfo[i][k].m_iServerNum = i;
  434. g_pNewclientDlg->m_Allipinfo[i][k].m_iChannelNum = k;
  435. g_pNewclientDlg->m_Allipinfo[i][k].m_iSequence = g_pNewclientDlg->m_Allipinfo[j][k].m_iSequence;
  436. g_pNewclientDlg->m_Allipinfo[i][k].m_bChoosed = g_pNewclientDlg->m_Allipinfo[j][k].m_bChoosed;
  437. g_pNewclientDlg->m_Allipinfo[i][k].m_csIP = g_pNewclientDlg->m_Allipinfo[j][k].m_csIP;
  438. g_pNewclientDlg->m_Allipinfo[i][k].m_csMultiIP = g_pNewclientDlg->m_Allipinfo[j][k].m_csMultiIP;
  439. g_pNewclientDlg->m_Allipinfo[i][k].m_csChanName = g_pNewclientDlg->m_Allipinfo[j][k].m_csChanName;
  440. g_pNewclientDlg->m_Allipinfo[i][k].m_csPassword = g_pNewclientDlg->m_Allipinfo[j][k].m_csPassword;
  441. g_pNewclientDlg->m_Allipinfo[i][k].m_csUser = g_pNewclientDlg->m_Allipinfo[j][k].m_csUser;
  442. g_pNewclientDlg->m_Allipinfo[i][k].m_dwAddress = g_pNewclientDlg->m_Allipinfo[j][k].m_dwAddress;
  443. g_pNewclientDlg->m_Allipinfo[i][k].m_dwAlarmlevel = g_pNewclientDlg->m_Allipinfo[j][k].m_dwAlarmlevel;
  444. g_pNewclientDlg->m_Allipinfo[i][k].m_dwIPvalue = g_pNewclientDlg->m_Allipinfo[j][k].m_dwIPvalue;
  445. g_pNewclientDlg->m_Allipinfo[i][k].m_dwMultiIPvalue = g_pNewclientDlg->m_Allipinfo[j][k].m_dwMultiIPvalue;
  446. g_pNewclientDlg->m_Allipinfo[i][k].m_dwProtocol = g_pNewclientDlg->m_Allipinfo[j][k].m_dwProtocol;
  447. g_pNewclientDlg->m_Allipinfo[i][k].m_iChannel = g_pNewclientDlg->m_Allipinfo[j][k].m_iChannel;
  448. g_pNewclientDlg->m_Allipinfo[i][k].m_wJMQtype = g_pNewclientDlg->m_Allipinfo[j][k].m_wJMQtype;
  449. g_pNewclientDlg->m_Allipinfo[i][k].m_wServerport = g_pNewclientDlg->m_Allipinfo[j][k].m_wServerport;
  450. g_pNewclientDlg->m_Allipinfo[i][k].m_lServerID = g_pNewclientDlg->m_Allipinfo[j][k].m_lServerID;
  451. }
  452. }
  453. }
  454. g_pNewclientDlg->m_Serverinfo[i].m_csServerAdminName.Format(_T(""));
  455. g_pNewclientDlg->m_Serverinfo[i].m_iServerChannelNumber = -1;
  456. g_pNewclientDlg->m_Serverinfo[i].m_wServerPort = 8000;
  457. g_pNewclientDlg->m_Serverinfo[i].m_csServerName.Format(_T(""));
  458. for(k = 0; k < MAXCHANNUM; k++)
  459. {
  460. g_pNewclientDlg->m_Allipinfo[i][k].m_bChoosed = FALSE;
  461. g_pNewclientDlg->m_Allipinfo[i][k].m_iChannel = -1;
  462. g_pNewclientDlg->m_Allipinfo[i][k].m_iServerNum = -1;
  463. g_pNewclientDlg->m_Allipinfo[i][k].m_iChannelNum = -1;
  464. }
  465. F_IniTreeall();
  466. node1 = m_treesel.GetRootItem();
  467. g_pNewclientDlg->m_nSurveillanceNumber = 0;
  468. while(node1 != NULL)
  469. {
  470. iNum = m_treesel.GetItemData(node1);
  471. j = iNum % 100;
  472. i = (iNum - j) / 100;
  473. g_pNewclientDlg->m_Selipinfo[g_pNewclientDlg->m_nSurveillanceNumber].m_bChoosed = g_pNewclientDlg->m_Allipinfo[i][j].m_bChoosed;
  474. g_pNewclientDlg->m_Selipinfo[g_pNewclientDlg->m_nSurveillanceNumber].m_csChanName = g_pNewclientDlg->m_Allipinfo[i][j].m_csChanName;
  475. g_pNewclientDlg->m_Selipinfo[g_pNewclientDlg->m_nSurveillanceNumber].m_csIP = g_pNewclientDlg->m_Allipinfo[i][j].m_csIP;
  476. g_pNewclientDlg->m_Selipinfo[g_pNewclientDlg->m_nSurveillanceNumber].m_csMultiIP = g_pNewclientDlg->m_Allipinfo[i][j].m_csMultiIP;
  477. g_pNewclientDlg->m_Selipinfo[g_pNewclientDlg->m_nSurveillanceNumber].m_csPassword = g_pNewclientDlg->m_Allipinfo[i][j].m_csPassword;
  478. g_pNewclientDlg->m_Selipinfo[g_pNewclientDlg->m_nSurveillanceNumber].m_csUser = g_pNewclientDlg->m_Allipinfo[i][j].m_csUser;
  479. g_pNewclientDlg->m_Selipinfo[g_pNewclientDlg->m_nSurveillanceNumber].m_dwAddress = g_pNewclientDlg->m_Allipinfo[i][j].m_dwAddress;
  480. g_pNewclientDlg->m_Selipinfo[g_pNewclientDlg->m_nSurveillanceNumber].m_dwAlarmlevel = g_pNewclientDlg->m_Allipinfo[i][j].m_dwAlarmlevel;
  481. g_pNewclientDlg->m_Selipinfo[g_pNewclientDlg->m_nSurveillanceNumber].m_dwIPvalue = g_pNewclientDlg->m_Allipinfo[i][j].m_dwIPvalue;
  482. g_pNewclientDlg->m_Selipinfo[g_pNewclientDlg->m_nSurveillanceNumber].m_dwMultiIPvalue = g_pNewclientDlg->m_Allipinfo[i][j].m_dwMultiIPvalue;
  483. g_pNewclientDlg->m_Selipinfo[g_pNewclientDlg->m_nSurveillanceNumber].m_dwProtocol = g_pNewclientDlg->m_Allipinfo[i][j].m_dwProtocol;
  484. g_pNewclientDlg->m_Selipinfo[g_pNewclientDlg->m_nSurveillanceNumber].m_iChannel = g_pNewclientDlg->m_Allipinfo[i][j].m_iChannel;
  485. g_pNewclientDlg->m_Selipinfo[g_pNewclientDlg->m_nSurveillanceNumber].m_iSequence = g_pNewclientDlg->m_Allipinfo[i][j].m_iSequence;
  486. g_pNewclientDlg->m_Selipinfo[g_pNewclientDlg->m_nSurveillanceNumber].m_lServerID = g_pNewclientDlg->m_Allipinfo[i][j].m_lServerID;
  487. g_pNewclientDlg->m_Selipinfo[g_pNewclientDlg->m_nSurveillanceNumber].m_wJMQtype = g_pNewclientDlg->m_Allipinfo[i][j].m_wJMQtype;
  488. g_pNewclientDlg->m_Selipinfo[g_pNewclientDlg->m_nSurveillanceNumber].m_wServerport = g_pNewclientDlg->m_Allipinfo[i][j].m_wServerport;
  489. g_pNewclientDlg->m_Selipinfo[g_pNewclientDlg->m_nSurveillanceNumber].m_iServerNum = i;
  490. g_pNewclientDlg->m_Selipinfo[g_pNewclientDlg->m_nSurveillanceNumber].m_iChannelNum = j;
  491. g_pNewclientDlg->m_Allipinfo[i][j].m_iSequence = g_pNewclientDlg->m_nSurveillanceNumber; //该监控点的顺序
  492. g_pNewclientDlg->m_nSurveillanceNumber++;
  493. if (g_pNewclientDlg->m_nSurveillanceNumber >= MAXNUMBER)
  494. {
  495. MessageBox("最多可添加512路,路数达到最大!", "温馨提示", MB_ICONINFORMATION);
  496. return;
  497. }
  498. node1 = m_treesel.GetNextSiblingItem(node1);
  499. }
  500. }
  501. }
  502. void CSetSurveillance::OnServercfg()
  503. {
  504. // TODO: Add your control notification handler code here
  505. HTREEITEM hSel, hParent;
  506. int i;
  507. CRemoteParamsCfg RemoteParamsCfgDlg;
  508. for (i=0;i<MAXIPNUMBER;i++)
  509. {
  510. if(g_pNewclientDlg->m_Serverinfo[i].m_csServerName.IsEmpty())
  511. break;
  512. RemoteParamsCfgDlg.m_dvrName += (g_pNewclientDlg->m_Serverinfo[i].m_csServerName + "!@#$%^");
  513. }
  514. RemoteParamsCfgDlg.m_dvrSelect = -1;
  515. hSel=m_treeall.GetSelectedItem();
  516. if(hSel==NULL)
  517. {
  518. MessageBox("请选择DVR!", "温馨提示", MB_ICONINFORMATION);;
  519. return;
  520. // RemoteParamsCfgDlg.m_dvrSelect = -1;
  521. // RemoteParamsCfgDlg.DoModal();
  522. }
  523. else
  524. {
  525. hParent = m_treeall.GetParentItem(hSel);
  526. if(hParent == NULL)
  527. {
  528. i = m_treeall.GetItemData(hSel);
  529. RemoteParamsCfgDlg.m_ip = g_pNewclientDlg->m_Serverinfo[i].m_csServerIP;
  530. RemoteParamsCfgDlg.m_Username = g_pNewclientDlg->m_Serverinfo[i].m_csServerAdminName;
  531. RemoteParamsCfgDlg.m_Password = g_pNewclientDlg->m_Serverinfo[i].m_csServerAdminPasswd;
  532. RemoteParamsCfgDlg.m_iServerport = g_pNewclientDlg->m_Serverinfo[i].m_wServerPort;
  533. RemoteParamsCfgDlg.m_lServerID = g_pNewclientDlg->m_Serverinfo[i].m_lServerID;
  534. RemoteParamsCfgDlg.m_iChannelnumber = g_pNewclientDlg->m_Serverinfo[i].m_iServerChannelNumber;
  535. RemoteParamsCfgDlg.m_iServertype = g_pNewclientDlg->m_Serverinfo[i].m_wServerType;
  536. RemoteParamsCfgDlg.m_lStartChannel = g_pNewclientDlg->m_Serverinfo[i].m_lStartChannel;
  537. RemoteParamsCfgDlg.m_dwAlarmInNum = g_pNewclientDlg->m_Serverinfo[i].m_dwAlarmInNum;
  538. RemoteParamsCfgDlg.m_dwAlarmOutNum = g_pNewclientDlg->m_Serverinfo[i].m_dwAlarmOutNum;
  539. RemoteParamsCfgDlg.m_dwDiskNum = g_pNewclientDlg->m_Serverinfo[i].m_dwDiskNum;
  540. if(strcmp(g_pNewclientDlg->m_Serverinfo[i].m_csServerAdminName, "admin")==0)
  541. {
  542. RemoteParamsCfgDlg.m_bSuperUser = TRUE;
  543. }
  544. else
  545. {
  546. RemoteParamsCfgDlg.m_bSuperUser = FALSE;
  547. }
  548. RemoteParamsCfgDlg.m_dvrSelect = i;
  549. RemoteParamsCfgDlg.m_iServer = i;
  550. RemoteParamsCfgDlg.DoModal();
  551. }
  552. }
  553. }
  554. void CSetSurveillance::OnDblclkTree2(NMHDR* pNMHDR, LRESULT* pResult)
  555. {
  556. // TODO: Add your control notification handler code here
  557. HTREEITEM node1;
  558. CString sTemp;
  559. int i,j,iNum;
  560. node1=m_treesel.GetSelectedItem();
  561. if (node1==NULL)
  562. {
  563. return;
  564. }
  565. iNum=m_treesel.GetItemData(node1);
  566. CChannelInfo ChannelInfoDlg;
  567. j=iNum % 100;
  568. i=(iNum-j)/100;
  569. ChannelInfoDlg.m_iServerNum=i;
  570. ChannelInfoDlg.m_iChannelNum=j;
  571. ChannelInfoDlg.DoModal();
  572. sTemp.Format("%s(%s)",g_pNewclientDlg->m_Serverinfo[i].m_csServerName,g_pNewclientDlg->m_Allipinfo[i][j].m_csChanName);
  573. m_treesel.SetItemText(node1,sTemp);
  574. *pResult = 0;
  575. }
  576. void CSetSurveillance::OnDblclkTree1(NMHDR* pNMHDR, LRESULT* pResult)
  577. {
  578. // TODO: Add your control notification handler code here
  579. HTREEITEM node1,node2;
  580. int i,j;
  581. CString sTemp;
  582. node1=m_treeall.GetSelectedItem();
  583. if(node1==NULL)
  584. {
  585. return;
  586. }
  587. node2=m_treeall.GetParentItem(node1);
  588. if(node2==NULL)
  589. {
  590. i=m_treeall.GetItemData(node1);
  591. CServerInfo ServerInfoDlg;
  592. ServerInfoDlg.m_iServerNum=i;
  593. ServerInfoDlg.DoModal();
  594. }
  595. else
  596. {
  597. i=m_treeall.GetItemData(node2);
  598. j=m_treeall.GetItemData(node1);
  599. CChannelInfo ChannelInfoDlg;
  600. ChannelInfoDlg.m_iServerNum = i;
  601. ChannelInfoDlg.m_iChannelNum = j;
  602. ChannelInfoDlg.DoModal();
  603. m_treeall.SetItemText(node1,g_pNewclientDlg->m_Allipinfo[i][j].m_csChanName);
  604. }
  605. *pResult = 0;
  606. }
  607. void CSetSurveillance::F_IniTreeall()
  608. {
  609. HTREEITEM node1,node2;
  610. int i,j,k,iNum;
  611. CString sTemp;
  612. int iChannelIndex[MAXNUMBER];
  613. for(i = 0; i < MAXNUMBER; i++)
  614. iChannelIndex[i] = -1;
  615. m_treeall.DeleteAllItems();
  616. m_treesel.DeleteAllItems();
  617. for(i = 0; i < MAXIPNUMBER; i++)
  618. {
  619. if(g_pNewclientDlg->m_Serverinfo[i].m_iServerChannelNumber >= 0)
  620. {
  621. sTemp.Format("%s", g_pNewclientDlg->m_Serverinfo[i].m_csServerName);
  622. node1=m_treeall.InsertItem(sTemp,0,0,TVI_ROOT);
  623. m_treeall.SetItemData(node1,i);
  624. for(j = 0; j < MAXCHANNUM; j++)
  625. {
  626. if(g_pNewclientDlg->m_Allipinfo[i][j].m_iChannel >= 0)
  627. {
  628. if(!g_pNewclientDlg->m_Allipinfo[i][j].m_bChoosed)
  629. {
  630. sTemp.Format("%s", g_pNewclientDlg->m_Allipinfo[i][j].m_csChanName);
  631. node2=m_treeall.InsertItem(sTemp,1,1,node1);
  632. m_treeall.SetItemData(node2,j);
  633. }
  634. else
  635. {
  636. iChannelIndex[g_pNewclientDlg->m_Allipinfo[i][j].m_iSequence] = i*100 + j;
  637. }
  638. }
  639. }
  640. }
  641. }
  642. for(k = 0; k < MAXNUMBER; k++)
  643. {
  644. if(iChannelIndex[k] >= 0)
  645. {
  646. j = iChannelIndex[k] % 100;
  647. i = (iChannelIndex[k] - j) / 100;
  648. iNum = i * 100 + j;
  649. sTemp.Format("%s(%s)",g_pNewclientDlg->m_Serverinfo[i].m_csServerName, g_pNewclientDlg->m_Allipinfo[i][j].m_csChanName);
  650. node2 = m_treesel.InsertItem(sTemp,1,1,TVI_ROOT);
  651. m_treesel.SetItemData(node2, iNum);
  652. }
  653. }
  654. }
  655. void CSetSurveillance::F_Save()
  656. {
  657. HTREEITEM node1;
  658. int i, j, iNum;
  659. node1 = m_treesel.GetRootItem();
  660. g_pNewclientDlg->m_nSurveillanceNumber = 0;
  661. while(node1 != NULL)
  662. {
  663. iNum = m_treesel.GetItemData(node1);
  664. j = iNum % 100;
  665. i = (iNum - j) / 100;
  666. g_pNewclientDlg->m_Selipinfo[g_pNewclientDlg->m_nSurveillanceNumber].m_bChoosed = g_pNewclientDlg->m_Allipinfo[i][j].m_bChoosed;
  667. g_pNewclientDlg->m_Selipinfo[g_pNewclientDlg->m_nSurveillanceNumber].m_csChanName = g_pNewclientDlg->m_Allipinfo[i][j].m_csChanName;
  668. g_pNewclientDlg->m_Selipinfo[g_pNewclientDlg->m_nSurveillanceNumber].m_csIP = g_pNewclientDlg->m_Allipinfo[i][j].m_csIP;
  669. g_pNewclientDlg->m_Selipinfo[g_pNewclientDlg->m_nSurveillanceNumber].m_csMultiIP = g_pNewclientDlg->m_Allipinfo[i][j].m_csMultiIP;
  670. g_pNewclientDlg->m_Selipinfo[g_pNewclientDlg->m_nSurveillanceNumber].m_csPassword = g_pNewclientDlg->m_Allipinfo[i][j].m_csPassword;
  671. g_pNewclientDlg->m_Selipinfo[g_pNewclientDlg->m_nSurveillanceNumber].m_csUser = g_pNewclientDlg->m_Allipinfo[i][j].m_csUser;
  672. g_pNewclientDlg->m_Selipinfo[g_pNewclientDlg->m_nSurveillanceNumber].m_dwAddress = g_pNewclientDlg->m_Allipinfo[i][j].m_dwAddress;
  673. g_pNewclientDlg->m_Selipinfo[g_pNewclientDlg->m_nSurveillanceNumber].m_dwAlarmlevel = g_pNewclientDlg->m_Allipinfo[i][j].m_dwAlarmlevel;
  674. g_pNewclientDlg->m_Selipinfo[g_pNewclientDlg->m_nSurveillanceNumber].m_dwIPvalue = g_pNewclientDlg->m_Allipinfo[i][j].m_dwIPvalue;
  675. g_pNewclientDlg->m_Selipinfo[g_pNewclientDlg->m_nSurveillanceNumber].m_dwMultiIPvalue = g_pNewclientDlg->m_Allipinfo[i][j].m_dwMultiIPvalue;
  676. g_pNewclientDlg->m_Selipinfo[g_pNewclientDlg->m_nSurveillanceNumber].m_dwProtocol = g_pNewclientDlg->m_Allipinfo[i][j].m_dwProtocol;
  677. g_pNewclientDlg->m_Selipinfo[g_pNewclientDlg->m_nSurveillanceNumber].m_iChannel = g_pNewclientDlg->m_Allipinfo[i][j].m_iChannel;
  678. g_pNewclientDlg->m_Selipinfo[g_pNewclientDlg->m_nSurveillanceNumber].m_iSequence = g_pNewclientDlg->m_Allipinfo[i][j].m_iSequence;
  679. g_pNewclientDlg->m_Selipinfo[g_pNewclientDlg->m_nSurveillanceNumber].m_lServerID = g_pNewclientDlg->m_Allipinfo[i][j].m_lServerID;
  680. g_pNewclientDlg->m_Selipinfo[g_pNewclientDlg->m_nSurveillanceNumber].m_wJMQtype = g_pNewclientDlg->m_Allipinfo[i][j].m_wJMQtype;
  681. g_pNewclientDlg->m_Selipinfo[g_pNewclientDlg->m_nSurveillanceNumber].m_wServerport = g_pNewclientDlg->m_Allipinfo[i][j].m_wServerport;
  682. g_pNewclientDlg->m_Selipinfo[g_pNewclientDlg->m_nSurveillanceNumber].m_iServerNum = i;
  683. g_pNewclientDlg->m_Selipinfo[g_pNewclientDlg->m_nSurveillanceNumber].m_iChannelNum = j;
  684. g_pNewclientDlg->m_Allipinfo[i][j].m_iSequence = g_pNewclientDlg->m_nSurveillanceNumber; //该监控点的顺序
  685. g_pNewclientDlg->m_nSurveillanceNumber++;
  686. if (g_pNewclientDlg->m_nSurveillanceNumber >= MAXNUMBER)
  687. {
  688. MessageBox("最多可添加512路,路数达到最大!", "温馨提示", MB_ICONINFORMATION);
  689. return;
  690. }
  691. node1 = m_treesel.GetNextSiblingItem(node1);
  692. }
  693. WriteSurveillanceConfig();
  694. }
  695. void CSetSurveillance::OnServerstate()
  696. {
  697. // TODO: Add your control notification handler code here
  698. CWorkState dlg;
  699. HTREEITEM hSel, hParent;
  700. int i;
  701. hSel=m_treeall.GetSelectedItem();
  702. if(hSel==NULL)
  703. {
  704. MessageBox("请选择DVR!", "温馨提示", MB_ICONINFORMATION);
  705. return;
  706. }
  707. hParent = m_treeall.GetParentItem(hSel);
  708. if(hParent == NULL)
  709. {
  710. i = m_treeall.GetItemData(hSel);
  711. dlg.m_csServerName = g_pNewclientDlg->m_Serverinfo[i].m_csServerName;
  712. dlg.m_lServerID = g_pNewclientDlg->m_Serverinfo[i].m_lServerID;
  713. dlg.m_dwDiskNum = g_pNewclientDlg->m_Serverinfo[i].m_dwDiskNum;
  714. dlg.m_iChannelnumber = g_pNewclientDlg->m_Serverinfo[i].m_iServerChannelNumber;
  715. dlg.DoModal();
  716. }
  717. }
  718. void CSetSurveillance::OnSetremoteok()
  719. {
  720. // TODO: Add your control notification handler code here
  721. F_Save();
  722. m_bSaveflag = TRUE;
  723. }
  724. void CSetSurveillance::OnCancel()
  725. {
  726. // TODO: Add extra cleanup here
  727. // CDialog::OnCancel();
  728. }
  729. void CSetSurveillance::OnKeyclick()
  730. {
  731. // TODO: Add your control notification handler code here
  732. HTREEITEM hSel, hParent;
  733. int i;
  734. CRemoteKey Dlg;
  735. UpdateData(TRUE);
  736. hSel=m_treeall.GetSelectedItem();
  737. if(hSel==NULL)
  738. {
  739. MessageBox("请选择DVR!", "温馨提示", MB_ICONINFORMATION);
  740. return;
  741. }
  742. hParent = m_treeall.GetParentItem(hSel);
  743. if(hParent == NULL)
  744. {
  745. i = m_treeall.GetItemData(hSel);
  746. Dlg.m_lServerID = g_pNewclientDlg->m_Serverinfo[i].m_lServerID;
  747. Dlg.DoModal();
  748. }
  749. }
  750. void CSetSurveillance::OnRemotelog()
  751. {
  752. // TODO: Add your control notification handler code here
  753. CRemoteLog Dlg;
  754. Dlg.DoModal();
  755. }
  756. void CSetSurveillance::OnDeleteitemTree1(NMHDR* pNMHDR, LRESULT* pResult)
  757. {
  758. NM_TREEVIEW* pNMTreeView = (NM_TREEVIEW*)pNMHDR;
  759. // TODO: Add your control notification handler code here
  760. *pResult = 0;
  761. }
  762. void CSetSurveillance::OnDeleteitemTree2(NMHDR* pNMHDR, LRESULT* pResult)
  763. {
  764. NM_TREEVIEW* pNMTreeView = (NM_TREEVIEW*)pNMHDR;
  765. // TODO: Add your control notification handler code here
  766. *pResult = 0;
  767. }
  768. void CSetSurveillance::OnChecktime()
  769. {
  770. // TODO: Add your control notification handler code here
  771. HTREEITEM hSel, hParent;
  772. int i;
  773. hSel=m_treeall.GetSelectedItem();
  774. if(hSel==NULL)
  775. {
  776. MessageBox("请选择DVR!", "温馨提示", MB_ICONINFORMATION);
  777. return;
  778. }
  779. hParent = m_treeall.GetParentItem(hSel);
  780. if(hParent == NULL)
  781. {
  782. i = m_treeall.GetItemData(hSel);
  783. //在此调用此函数重置时区,以修正时区调整之后由于程序只在初始化时获取时区而造成不能随之调整的问题
  784. _tzset();
  785. CTime time1 = CTime::GetCurrentTime();
  786. NET_DVR_TIME CurTime;
  787. CurTime.dwYear = time1.GetYear();
  788. CurTime.dwMonth = time1.GetMonth();
  789. CurTime.dwDay = time1.GetDay();
  790. CurTime.dwHour = time1.GetHour();
  791. CurTime.dwMinute = time1.GetMinute();
  792. CurTime.dwSecond = time1.GetSecond();
  793. if(NET_DVR_SetDVRConfig(g_pNewclientDlg->m_Serverinfo[i].m_lServerID, NET_DVR_SET_TIMECFG,0,&CurTime, sizeof(NET_DVR_TIME)))
  794. {
  795. MessageBox("校时成功!", "温馨提示", MB_ICONINFORMATION);
  796. }
  797. else
  798. {
  799. MessageBox("校时失败!", "温馨提示", MB_ICONINFORMATION);
  800. }
  801. }
  802. }
  803. void CSetSurveillance::OnReboot()
  804. {
  805. // TODO: Add your control notification handler code here
  806. HTREEITEM hSel, hParent;
  807. int i;
  808. hSel=m_treeall.GetSelectedItem();
  809. if(hSel==NULL)
  810. {
  811. MessageBox("请选择DVR!", "温馨提示", MB_ICONINFORMATION);
  812. return;
  813. }
  814. hParent = m_treeall.GetParentItem(hSel);
  815. if(hParent == NULL)
  816. {
  817. i = m_treeall.GetItemData(hSel);
  818. if(NET_DVR_RebootDVR(g_pNewclientDlg->m_Serverinfo[i].m_lServerID))
  819. {
  820. MessageBox("服务器正在重启!", "温馨提示", MB_ICONINFORMATION);
  821. }
  822. else
  823. {
  824. MessageBox("重启服务器失败!", "温馨提示", MB_ICONINFORMATION);
  825. }
  826. }
  827. }
  828. void CSetSurveillance::OnRemoteupgrade()
  829. {
  830. // TODO: Add your control notification handler code here
  831. CRemoteUpgrade UpgradeDlg;
  832. HTREEITEM hSel, hParent;
  833. int i;
  834. hSel=m_treeall.GetSelectedItem();
  835. if(hSel==NULL)
  836. {
  837. MessageBox("请选择DVR!", "温馨提示", MB_ICONINFORMATION);
  838. return;
  839. }
  840. hParent = m_treeall.GetParentItem(hSel);
  841. if(hParent == NULL)
  842. {
  843. i = m_treeall.GetItemData(hSel);
  844. UpgradeDlg.m_lServerID = g_pNewclientDlg->m_Serverinfo[i].m_lServerID;
  845. UpgradeDlg.DoModal();
  846. }
  847. }
  848. void CSetSurveillance::OnFormatdisk()
  849. {
  850. // TODO: Add your control notification handler code here
  851. CFormatDisk FormatDiskDlg;
  852. HTREEITEM hSel, hParent;
  853. int i;
  854. hSel=m_treeall.GetSelectedItem();
  855. if(hSel==NULL)
  856. {
  857. MessageBox("请选择DVR!", "温馨提示", MB_ICONINFORMATION);
  858. return;
  859. }
  860. hParent = m_treeall.GetParentItem(hSel);
  861. if(hParent == NULL)
  862. {
  863. i = m_treeall.GetItemData(hSel);
  864. FormatDiskDlg.m_lServerID = g_pNewclientDlg->m_Serverinfo[i].m_lServerID;
  865. FormatDiskDlg.m_dwDiskNum = g_pNewclientDlg->m_Serverinfo[i].m_dwDiskNum;
  866. FormatDiskDlg.DoModal();
  867. }
  868. }
  869. void CSetSurveillance::OnRclickTree1(NMHDR* pNMHDR, LRESULT* pResult)
  870. {
  871. // TODO: Add your control notification handler code here
  872. HTREEITEM select = m_treeall.GetSelectedItem();
  873. if(select == NULL)
  874. return;
  875. HMENU h_Menu;
  876. h_Menu = ::CreatePopupMenu();
  877. MENUITEMINFO mi;
  878. mi.cbSize = sizeof(MENUITEMINFO);
  879. mi.fMask = MIIM_DATA | MIIM_TYPE | MIIM_ID;
  880. mi.fType = MFT_STRING;
  881. mi.wID = IDC_MENU_SERVERCFG;
  882. mi.dwTypeData = TEXT("配置服务器");
  883. mi.cch = sizeof(TEXT("配置服务器"));
  884. ::InsertMenuItem(h_Menu,0,FALSE,&mi);
  885. int i;
  886. CRemoteParamsCfg RemoteParamsCfgDlg;
  887. for (i=0;i<MAXIPNUMBER;i++)
  888. {
  889. if(g_pNewclientDlg->m_Serverinfo[i].m_csServerName.IsEmpty())
  890. break;
  891. RemoteParamsCfgDlg.m_dvrName += (g_pNewclientDlg->m_Serverinfo[i].m_csServerName + "!@#$%^");
  892. }
  893. HTREEITEM parent = m_treeall.GetParentItem(select);
  894. if (parent == NULL)
  895. {
  896. i = m_treeall.GetItemData(select);
  897. POINT pos;
  898. ::GetCursorPos(&pos);
  899. int index = ::TrackPopupMenu(h_Menu,TPM_LEFTALIGN | TPM_TOPALIGN | TPM_RETURNCMD ,pos.x,pos.y,0,this->m_hWnd,NULL);
  900. switch(index)
  901. {
  902. case IDC_MENU_SERVERCFG:
  903. RemoteParamsCfgDlg.m_ip = g_pNewclientDlg->m_Serverinfo[i].m_csServerIP;
  904. RemoteParamsCfgDlg.m_Username = g_pNewclientDlg->m_Serverinfo[i].m_csServerAdminName;
  905. RemoteParamsCfgDlg.m_Password = g_pNewclientDlg->m_Serverinfo[i].m_csServerAdminPasswd;
  906. RemoteParamsCfgDlg.m_iServerport = g_pNewclientDlg->m_Serverinfo[i].m_wServerPort;
  907. RemoteParamsCfgDlg.m_lServerID = g_pNewclientDlg->m_Serverinfo[i].m_lServerID;
  908. RemoteParamsCfgDlg.m_iChannelnumber = g_pNewclientDlg->m_Serverinfo[i].m_iServerChannelNumber;
  909. RemoteParamsCfgDlg.m_iServertype = g_pNewclientDlg->m_Serverinfo[i].m_wServerType;
  910. RemoteParamsCfgDlg.m_lStartChannel = g_pNewclientDlg->m_Serverinfo[i].m_lStartChannel;
  911. RemoteParamsCfgDlg.m_dwAlarmInNum = g_pNewclientDlg->m_Serverinfo[i].m_dwAlarmInNum;
  912. RemoteParamsCfgDlg.m_dwAlarmOutNum = g_pNewclientDlg->m_Serverinfo[i].m_dwAlarmOutNum;
  913. RemoteParamsCfgDlg.m_dwDiskNum = g_pNewclientDlg->m_Serverinfo[i].m_dwDiskNum;
  914. if(strcmp(g_pNewclientDlg->m_Serverinfo[i].m_csServerAdminName, "admin")==0)
  915. {
  916. RemoteParamsCfgDlg.m_bSuperUser = TRUE;
  917. }
  918. else
  919. {
  920. RemoteParamsCfgDlg.m_bSuperUser = FALSE;
  921. }
  922. RemoteParamsCfgDlg.m_dvrSelect = i;
  923. RemoteParamsCfgDlg.m_iServer = i;
  924. RemoteParamsCfgDlg.DoModal();
  925. break;
  926. default:
  927. break;
  928. }
  929. }
  930. ::DestroyMenu(h_Menu);
  931. *pResult = 0;
  932. }