SetAlarm.cpp 6.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288
  1. // SetAlarm.cpp : implementation file
  2. //
  3. #include "stdafx.h"
  4. #include "StoneU_HC_OCX.h"
  5. #include "SetAlarm.h"
  6. #ifdef _DEBUG
  7. #define new DEBUG_NEW
  8. #undef THIS_FILE
  9. static char THIS_FILE[] = __FILE__;
  10. #endif
  11. /////////////////////////////////////////////////////////////////////////////
  12. // CSetAlarm dialog
  13. extern SERVER_INFO serverinfo[MAXIPNUMBER];
  14. extern IP_INFO allipinfo[MAXIPNUMBER][MAXCHANNUM];
  15. extern CLIENTPARAM ClientParam;
  16. CSetAlarm::CSetAlarm(CWnd* pParent /*=NULL*/)
  17. : CDialog(CSetAlarm::IDD, pParent)
  18. {
  19. //{{AFX_DATA_INIT(CSetAlarm)
  20. // NOTE: the ClassWizard will add member initialization here
  21. //}}AFX_DATA_INIT
  22. }
  23. void CSetAlarm::DoDataExchange(CDataExchange* pDX)
  24. {
  25. CDialog::DoDataExchange(pDX);
  26. //{{AFX_DATA_MAP(CSetAlarm)
  27. DDX_Control(pDX, IDC_TREEALARM, m_tree);
  28. //}}AFX_DATA_MAP
  29. }
  30. BEGIN_MESSAGE_MAP(CSetAlarm, CDialog)
  31. //{{AFX_MSG_MAP(CSetAlarm)
  32. ON_BN_CLICKED(IDC_SELALL, OnSelall)
  33. ON_BN_CLICKED(IDC_NOALL, OnNoall)
  34. ON_NOTIFY(NM_CLICK, IDC_TREEALARM, OnClickTreealarm)
  35. ON_NOTIFY(NM_DBLCLK, IDC_TREEALARM, OnDblclkTreealarm)
  36. ON_NOTIFY(TVN_SELCHANGED, IDC_TREEALARM, OnSelchangedTreealarm)
  37. ON_NOTIFY(TVN_SELCHANGING, IDC_TREEALARM, OnSelchangingTreealarm)
  38. ON_BN_CLICKED(IDC_EXIT, OnExit)
  39. ON_BN_CLICKED(IDCSETALARMOK, OnCsetalarmok)
  40. ON_BN_CLICKED(ID_CANCEL, OnCancel)
  41. //}}AFX_MSG_MAP
  42. END_MESSAGE_MAP()
  43. /////////////////////////////////////////////////////////////////////////////
  44. // CSetAlarm message handlers
  45. BOOL CSetAlarm::OnInitDialog()
  46. {
  47. CDialog::OnInitDialog();
  48. CBitmap bmp[2];
  49. // TODO: Add extra initialization here
  50. m_bOK = FALSE;
  51. m_imagelist.Create(16,16,TRUE,1,1);
  52. bmp[0].LoadBitmap(IDB_UCHK);
  53. m_imagelist.Add(&bmp[0],RGB(0,0,0));
  54. bmp[1].LoadBitmap(IDB_CHK);
  55. m_imagelist.Add(&bmp[1],RGB(0,0,0));
  56. m_tree.SetImageList(&m_imagelist,TVSIL_NORMAL);
  57. for(int i = 0; i < MAXIPNUMBER; i++)
  58. {
  59. if(serverinfo[i].m_iServerChannelNumber >= 0)
  60. {
  61. F_AddNode(i);
  62. }
  63. }
  64. F_CheckNode();
  65. return TRUE; // return TRUE unless you set the focus to a control
  66. // EXCEPTION: OCX Property Pages should return FALSE
  67. }
  68. void CSetAlarm::OnSelall()
  69. {
  70. // TODO: Add your control notification handler code here
  71. HTREEITEM node1;
  72. node1=m_tree.GetRootItem();
  73. while (node1!=NULL)
  74. {
  75. m_tree.SetItemImage(node1,1,1);
  76. node1=m_tree.GetNextSiblingItem(node1);
  77. }
  78. }
  79. void CSetAlarm::OnNoall()
  80. {
  81. // TODO: Add your control notification handler code here
  82. HTREEITEM node1;
  83. node1=m_tree.GetRootItem();
  84. while (node1!=NULL)
  85. {
  86. m_tree.SetItemImage(node1,0,0);
  87. node1=m_tree.GetNextSiblingItem(node1);
  88. }
  89. }
  90. void CSetAlarm::F_AddNode(int ipnum)
  91. {
  92. HTREEITEM node1;
  93. CString sTemp;
  94. node1=m_tree.GetRootItem();
  95. while (node1!=NULL)
  96. {
  97. sTemp=m_tree.GetItemText(node1);
  98. sTemp=sTemp.Left(sTemp.Find("("));
  99. if (serverinfo[ipnum].m_csServerIP == sTemp)
  100. {
  101. return;
  102. }
  103. node1=m_tree.GetNextSiblingItem(node1);
  104. }
  105. sTemp.Format("%s(%s)----对应报警灯%d",serverinfo[ipnum].m_csServerName,serverinfo[ipnum].m_csServerIP, ipnum+1);
  106. node1=m_tree.InsertItem(_T(sTemp),0,0,TVI_ROOT);
  107. m_tree.SetItemData(node1,ipnum);
  108. m_tree.Expand(node1,TVE_EXPAND);
  109. }
  110. void CSetAlarm::F_CheckNode()
  111. {
  112. HTREEITEM node1;
  113. int i;
  114. node1=m_tree.GetRootItem();
  115. while (node1!=NULL)
  116. {
  117. i = m_tree.GetItemData(node1);
  118. if(ClientParam.m_iAlarmHandle[i] != -1)
  119. m_tree.SetItemImage(node1,1,1);
  120. node1=m_tree.GetNextSiblingItem(node1);
  121. }
  122. }
  123. void CSetAlarm::OnClickTreealarm(NMHDR* pNMHDR, LRESULT* pResult)
  124. {
  125. // TODO: Add your control notification handler code here
  126. HTREEITEM node1;
  127. int imageindex,selectindex;
  128. node1=m_tree.GetSelectedItem();
  129. if (node1==m_nSelItem)
  130. {
  131. *pResult = 0;
  132. return;
  133. }
  134. m_tree.GetItemImage(node1,imageindex,selectindex);
  135. if (imageindex==1)
  136. {
  137. m_tree.SetItemImage(node1,0,0);
  138. }else
  139. {
  140. m_tree.SetItemImage(node1,1,1);
  141. }
  142. *pResult = 0;
  143. }
  144. void CSetAlarm::OnDblclkTreealarm(NMHDR* pNMHDR, LRESULT* pResult)
  145. {
  146. // TODO: Add your control notification handler code here
  147. HTREEITEM node1;
  148. int imageindex,selectindex;
  149. node1=m_tree.GetSelectedItem();
  150. m_tree.GetItemImage(node1,imageindex,selectindex);
  151. if (imageindex==1)
  152. {
  153. m_tree.SetItemImage(node1,0,0);
  154. }else
  155. {
  156. m_tree.SetItemImage(node1,1,1);
  157. }
  158. *pResult = 0;
  159. }
  160. void CSetAlarm::OnSelchangedTreealarm(NMHDR* pNMHDR, LRESULT* pResult)
  161. {
  162. NM_TREEVIEW* pNMTreeView = (NM_TREEVIEW*)pNMHDR;
  163. // TODO: Add your control notification handler code here
  164. HTREEITEM node1;
  165. int imageindex,selectindex;
  166. node1=m_tree.GetSelectedItem();
  167. if (node1==m_nSelItem)
  168. {
  169. *pResult = 0;
  170. return;
  171. }
  172. m_tree.GetItemImage(node1,imageindex,selectindex);
  173. if (imageindex==1)
  174. {
  175. m_tree.SetItemImage(node1,0,0);
  176. }else
  177. {
  178. m_tree.SetItemImage(node1,1,1);
  179. }
  180. *pResult = 0;
  181. }
  182. void CSetAlarm::OnSelchangingTreealarm(NMHDR* pNMHDR, LRESULT* pResult)
  183. {
  184. NM_TREEVIEW* pNMTreeView = (NM_TREEVIEW*)pNMHDR;
  185. // TODO: Add your control notification handler code here
  186. int imageindex,selectindex;
  187. m_nSelItem=m_tree.GetSelectedItem();
  188. m_tree.GetItemImage(m_nSelItem,imageindex,selectindex);
  189. if (imageindex==1)
  190. {
  191. m_tree.SetItemImage(m_nSelItem,0,0);
  192. }else
  193. {
  194. m_tree.SetItemImage(m_nSelItem,1,1);
  195. }
  196. *pResult = 0;
  197. }
  198. void CSetAlarm::OnExit()
  199. {
  200. // TODO: Add your control notification handler code here
  201. CDialog::OnCancel();
  202. }
  203. void CSetAlarm::OnCsetalarmok()
  204. {
  205. // TODO: Add your control notification handler code here
  206. HTREEITEM node1;
  207. int imageindex,selectindex;
  208. int ipnum;
  209. CString sTemp;
  210. node1=m_tree.GetRootItem();
  211. while(node1!=NULL)
  212. {
  213. m_tree.GetItemImage(node1,imageindex,selectindex);
  214. ipnum=m_tree.GetItemData(node1);
  215. if(imageindex==1)
  216. {
  217. if(ClientParam.m_iAlarmHandle[ipnum] == -1)
  218. {
  219. ClientParam.m_iAlarmHandle[ipnum] = NET_DVR_SetupAlarmChan(serverinfo[ipnum].m_lServerID);
  220. if(ClientParam.m_iAlarmHandle[ipnum] == -1)
  221. {
  222. m_tree.SetItemImage(node1,0,0);
  223. sTemp.Format("%s报警设防失败 lasterror = %d!",serverinfo[ipnum].m_csServerName, NET_DVR_GetLastError());
  224. MessageBox(sTemp, "温馨提示", MB_ICONINFORMATION);
  225. }
  226. }
  227. }
  228. else
  229. {
  230. if(ClientParam.m_iAlarmHandle[ipnum] >= 0)
  231. {
  232. if(NET_DVR_CloseAlarmChan(ClientParam.m_iAlarmHandle[ipnum]))
  233. {
  234. ClientParam.m_iAlarmHandle[ipnum] = -1;
  235. }
  236. else
  237. {
  238. m_tree.SetItemImage(node1,1,1);
  239. sTemp.Format("%s报警撤防失败! lasterror = %d ",serverinfo[ipnum].m_csServerName, NET_DVR_GetLastError());
  240. MessageBox(sTemp, "温馨提示", MB_ICONINFORMATION);
  241. }
  242. }
  243. }
  244. node1=m_tree.GetNextSiblingItem(node1);
  245. }
  246. m_bOK = TRUE;
  247. MessageBox("布防撤防完成!", "温馨提示", MB_ICONINFORMATION);
  248. }
  249. void CSetAlarm::OnCancel()
  250. {
  251. // TODO: Add your control notification handler code here
  252. }