SetSurveillance.cpp 32 KB

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