RemoteSerialConfig.cpp 17 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547
  1. // RemoteSerialConfig.cpp : implementation file
  2. //
  3. #include "stdafx.h"
  4. #include "StoneU_HC_OCX.h"
  5. #include "RemoteSerialConfig.h"
  6. #include "RemoteParamsCfg.h"
  7. #ifdef _DEBUG
  8. #define new DEBUG_NEW
  9. #undef THIS_FILE
  10. static char THIS_FILE[] = __FILE__;
  11. #endif
  12. CRemoteSerialConfig *pSerialCFG;
  13. extern CRemoteParamsCfg *m_pRemoteParam;
  14. /////////////////////////////////////////////////////////////////////////////
  15. // CRemoteSerialConfig dialog
  16. void CALLBACK fSerialDataCallBack(LONG lSerialHandle,char *pRecvDataBuffer,DWORD dwBufSize,DWORD dwUser)
  17. {
  18. char pRecv[1024];
  19. CString csTemp;
  20. sprintf(pRecv, pRecvDataBuffer, dwBufSize);
  21. csTemp.Format("%s", pRecv);
  22. TRACE("232 csTemp = %s", csTemp);
  23. }
  24. CRemoteSerialConfig::CRemoteSerialConfig(CWnd* pParent /*=NULL*/)
  25. : CDialog(CRemoteSerialConfig::IDD, pParent)
  26. {
  27. //{{AFX_DATA_INIT(CRemoteSerialConfig)
  28. m_decodeaddr = 0;
  29. m_IpMask = _T("");
  30. m_LocalIp = _T("");
  31. m_Psw = _T("");
  32. m_RemoteIp = _T("");
  33. m_Telephone = _T("");
  34. m_UserName = _T("");
  35. m_bSjjm = FALSE;
  36. m_bHuibo = FALSE;
  37. m_VerifyPSW = _T("");
  38. //}}AFX_DATA_INIT
  39. }
  40. void CRemoteSerialConfig::DoDataExchange(CDataExchange* pDX)
  41. {
  42. CDialog::DoDataExchange(pDX);
  43. //{{AFX_DATA_MAP(CRemoteSerialConfig)
  44. DDX_Control(pDX, IDC_HBMODE, m_HBModeCtrl);
  45. DDX_Control(pDX, IDC_PPPMODE, m_PPPModeCtrl);
  46. DDX_Control(pDX, IDC_COPY485CFG, m_copy485cfgctrl);
  47. DDX_Control(pDX, IDC_STOPBIT232, m_stopbit232);
  48. DDX_Control(pDX, IDC_STOPBIT485, m_stopbit485);
  49. DDX_Control(pDX, IDC_OPERATEMODE, m_operatemode);
  50. DDX_Control(pDX, IDC_FLOW485, m_flow485);
  51. DDX_Control(pDX, IDC_FLOW232, m_flow232);
  52. DDX_Control(pDX, IDC_DATABIT485, m_databit485);
  53. DDX_Control(pDX, IDC_DATABIT232, m_databit232);
  54. DDX_Control(pDX, IDC_COMBODECODETYPE, m_decodetypectrl);
  55. DDX_Control(pDX, IDC_COMBOCHANNEL, m_channelctrl);
  56. DDX_Control(pDX, IDC_CHECKBIT485, m_checkbit485);
  57. DDX_Control(pDX, IDC_CHECKBIT232, m_checkbit232);
  58. DDX_Control(pDX, IDC_BAUD485, m_baud485);
  59. DDX_Control(pDX, IDC_BAUD232, m_baud232);
  60. DDX_Text(pDX, IDC_EDITDECODEADDRESS, m_decodeaddr);
  61. DDX_Text(pDX, IDC_EDITIPMASK, m_IpMask);
  62. DDX_Text(pDX, IDC_EDITLOCALIP, m_LocalIp);
  63. DDX_Text(pDX, IDC_EDITPSW, m_Psw);
  64. DDX_Text(pDX, IDC_EDITREMOTEIP, m_RemoteIp);
  65. DDX_Text(pDX, IDC_EDITTELEPHONE, m_Telephone);
  66. DDX_Text(pDX, IDC_EDITUSERNAME, m_UserName);
  67. DDX_Check(pDX, IDC_SJJM, m_bSjjm);
  68. DDX_Check(pDX, IDC_HUIBO, m_bHuibo);
  69. DDX_Text(pDX, IDC_EDITVERIFYPSW, m_VerifyPSW);
  70. //}}AFX_DATA_MAP
  71. }
  72. BEGIN_MESSAGE_MAP(CRemoteSerialConfig, CDialog)
  73. //{{AFX_MSG_MAP(CRemoteSerialConfig)
  74. ON_BN_CLICKED(IDC_485OK, On485ok)
  75. ON_BN_CLICKED(IDC_BUT485COPY, OnBut485copy)
  76. ON_CBN_SELCHANGE(IDC_COMBOCHANNEL, OnSelchangeCombochannel)
  77. ON_BN_CLICKED(IDSERIALOK, OnSerialok)
  78. ON_BN_CLICKED(IDEXIT, OnExit)
  79. ON_CBN_SELCHANGE(IDC_OPERATEMODE, OnSelchangeOperatemode)
  80. ON_WM_TIMER()
  81. //cHn delete ON_BN_CLICKED(IDC_BUTTON3, OnButton1)
  82. //cHn delete ON_BN_CLICKED(IDC_BUTTON4, OnButton2)
  83. //}}AFX_MSG_MAP
  84. END_MESSAGE_MAP()
  85. /////////////////////////////////////////////////////////////////////////////
  86. // CRemoteSerialConfig message handlers
  87. BOOL CRemoteSerialConfig::CheckPara()
  88. {
  89. CString sTemp;
  90. char cTemp[100];
  91. m_nChanSel = 0;
  92. m_lSerial = -1;
  93. m_nCopyChanNum = -1;
  94. m_copy485cfgctrl.ResetContent();
  95. m_channelctrl.ResetContent();
  96. sTemp.Format(_T("全部通道"));
  97. m_copy485cfgctrl.AddString(sTemp);
  98. bSetSerialParams = FALSE;
  99. bGet232Serial = FALSE;
  100. TRACE("\nm_iChannelnumber = %d\n", m_iChannelnumber);
  101. for(int i=0; i<m_iChannelnumber; i++)
  102. {
  103. bGet485Serial[i] = FALSE;
  104. sTemp.Format("通道%d", (m_lStartChannel+i));
  105. m_channelctrl.AddString(sTemp);
  106. m_copy485cfgctrl.AddString(sTemp);
  107. m_nChanNum = i+m_lStartChannel;
  108. if(m_bConnectServer)
  109. {
  110. if(!NET_DVR_GetDVRConfig(m_lServerID, NET_DVR_GET_DECODERCFG, m_nChanNum, &decodercfg[i], sizeof(NET_DVR_DECODERCFG), &dwReturned))
  111. {
  112. sTemp.Format("获取通道%d 485串口参数失败!: NET_DVR_GET_DECODERCFG = %d \n", m_nChanNum, NET_DVR_GetLastError());
  113. MessageBox(sTemp, "温馨提示", MB_ICONINFORMATION);
  114. }
  115. else
  116. {
  117. bGet485Serial[i] = TRUE;
  118. }
  119. }
  120. }
  121. if(bGet485Serial[m_nChanSel])
  122. {
  123. m_nChanNum = m_nChanSel+m_lStartChannel;
  124. m_baud485.SetCurSel(decodercfg[m_nChanSel].dwBaudRate);
  125. m_databit485.SetCurSel(decodercfg[m_nChanSel].byDataBit);
  126. m_stopbit485.SetCurSel(decodercfg[m_nChanSel].byStopBit);
  127. m_checkbit485.SetCurSel(decodercfg[m_nChanSel].byParity);
  128. m_flow485.SetCurSel(decodercfg[m_nChanSel].byFlowcontrol);
  129. m_decodetypectrl.SetCurSel(decodercfg[m_nChanSel].wDecoderType);
  130. m_decodeaddr = (BYTE)decodercfg[m_nChanSel].wDecoderAddress;
  131. GetDlgItem(IDSERIALOK)->EnableWindow(TRUE);
  132. GetDlgItem(IDC_BUT485COPY)->EnableWindow(TRUE);
  133. GetDlgItem(IDC_485OK)->EnableWindow(TRUE);
  134. }
  135. if(m_bConnectServer)
  136. {
  137. if(!NET_DVR_GetDVRConfig(m_lServerID, NET_DVR_GET_RS232CFG, 0, &rs232cfg, sizeof(NET_DVR_RS232CFG), &dwReturned))
  138. {
  139. sTemp.Format("获取232串口参数失败!: NET_DVR_GET_RS232CFG = %d \n", NET_DVR_GetLastError());
  140. MessageBox(sTemp, "温馨提示", MB_ICONINFORMATION);
  141. }
  142. else
  143. {
  144. m_baud232.SetCurSel(rs232cfg.dwBaudRate);
  145. m_databit232.SetCurSel(rs232cfg.byDataBit);
  146. m_stopbit232.SetCurSel(rs232cfg.byStopBit);
  147. m_checkbit232.SetCurSel(rs232cfg.byParity);
  148. m_flow232.SetCurSel(rs232cfg.byFlowcontrol);
  149. m_operatemode.SetCurSel(rs232cfg.dwWorkMode);
  150. if(rs232cfg.dwWorkMode == 0)
  151. {
  152. /* GetDlgItem(IDC_BUTTONSTART)->EnableWindow(FALSE);
  153. GetDlgItem(IDC_BUTTONSTOP)->EnableWindow(FALSE);
  154. GetDlgItem(IDC_BUTTONSEND)->EnableWindow(FALSE);
  155. GetDlgItem(IDC_EDITSEND)->EnableWindow(FALSE);
  156. */ m_PPPModeCtrl.SetCurSel(rs232cfg.struPPPConfig.byPPPMode);
  157. m_HBModeCtrl.SetCurSel(rs232cfg.struPPPConfig.byRedialMode);
  158. m_bHuibo = rs232cfg.struPPPConfig.byRedial;
  159. m_bSjjm = rs232cfg.struPPPConfig.byDataEncrypt;
  160. ZeroMemory(cTemp, 100);
  161. memcpy(cTemp, rs232cfg.struPPPConfig.sUsername, NAME_LEN);
  162. m_UserName.Format("%s", cTemp);
  163. ZeroMemory(cTemp, 100);
  164. memcpy(cTemp, rs232cfg.struPPPConfig.sPassword, PASSWD_LEN);
  165. m_Psw.Format("%s", cTemp);
  166. ZeroMemory(cTemp, 100);
  167. memcpy(cTemp, rs232cfg.struPPPConfig.sPassword, PASSWD_LEN);
  168. m_VerifyPSW.Format("%s", cTemp);
  169. m_RemoteIp = rs232cfg.struPPPConfig.sRemoteIP;
  170. m_LocalIp = rs232cfg.struPPPConfig.sLocalIP;
  171. m_IpMask = rs232cfg.struPPPConfig.sLocalIPMask;
  172. ZeroMemory(cTemp, 100);
  173. memcpy(cTemp, rs232cfg.struPPPConfig.sTelephoneNumber, PHONENUMBER_LEN);
  174. m_Telephone.Format("%s", cTemp);
  175. }
  176. else if(rs232cfg.dwWorkMode == 1)
  177. {
  178. /* GetDlgItem(IDC_BUTTONSTART)->EnableWindow(FALSE);
  179. GetDlgItem(IDC_BUTTONSTOP)->EnableWindow(FALSE);
  180. GetDlgItem(IDC_BUTTONSEND)->EnableWindow(FALSE);
  181. GetDlgItem(IDC_EDITSEND)->EnableWindow(FALSE);
  182. */ GetDlgItem(IDC_PPPMODE)->EnableWindow(FALSE);
  183. GetDlgItem(IDC_HBMODE)->EnableWindow(FALSE);
  184. GetDlgItem(IDC_EDITUSERNAME)->EnableWindow(FALSE);
  185. GetDlgItem(IDC_EDITPSW)->EnableWindow(FALSE);
  186. GetDlgItem(IDC_EDITVERIFYPSW)->EnableWindow(FALSE);
  187. GetDlgItem(IDC_EDITREMOTEIP)->EnableWindow(FALSE);
  188. GetDlgItem(IDC_EDITLOCALIP)->EnableWindow(FALSE);
  189. GetDlgItem(IDC_EDITIPMASK)->EnableWindow(FALSE);
  190. GetDlgItem(IDC_EDITTELEPHONE)->EnableWindow(FALSE);
  191. GetDlgItem(IDC_SJJM)->EnableWindow(FALSE);
  192. GetDlgItem(IDC_HUIBO)->EnableWindow(FALSE);
  193. }
  194. else if(rs232cfg.dwWorkMode == 2)
  195. {
  196. GetDlgItem(IDC_PPPMODE)->EnableWindow(FALSE);
  197. GetDlgItem(IDC_HBMODE)->EnableWindow(FALSE);
  198. GetDlgItem(IDC_EDITUSERNAME)->EnableWindow(FALSE);
  199. GetDlgItem(IDC_EDITPSW)->EnableWindow(FALSE);
  200. GetDlgItem(IDC_EDITVERIFYPSW)->EnableWindow(FALSE);
  201. GetDlgItem(IDC_EDITREMOTEIP)->EnableWindow(FALSE);
  202. GetDlgItem(IDC_EDITLOCALIP)->EnableWindow(FALSE);
  203. GetDlgItem(IDC_EDITIPMASK)->EnableWindow(FALSE);
  204. GetDlgItem(IDC_EDITTELEPHONE)->EnableWindow(FALSE);
  205. GetDlgItem(IDC_SJJM)->EnableWindow(FALSE);
  206. GetDlgItem(IDC_HUIBO)->EnableWindow(FALSE);
  207. }
  208. bGet232Serial = TRUE;
  209. GetDlgItem(IDSERIALOK)->EnableWindow(TRUE);
  210. }
  211. }
  212. m_channelctrl.SetCurSel(m_nChanSel);
  213. m_copy485cfgctrl.SetCurSel(m_nChanSel);
  214. pSerialCFG = this;
  215. UpdateData(FALSE);
  216. return TRUE;
  217. }
  218. BOOL CRemoteSerialConfig::OnInitDialog()
  219. {
  220. CDialog::OnInitDialog();
  221. // TODO: Add extra initialization here
  222. CRect rc(0, 0, 0, 0);
  223. GetParent()->GetClientRect(&rc);
  224. ((CTabCtrl*)GetParent())->AdjustRect(FALSE, &rc);
  225. MoveWindow(&rc);
  226. if(m_pRemoteParam->m_dvrSelect != -1)
  227. CheckPara();
  228. return TRUE; // return TRUE unless you set the focus to a control
  229. // EXCEPTION: OCX Property Pages should return FALSE
  230. }
  231. void CRemoteSerialConfig::On485ok()
  232. {
  233. if(m_pRemoteParam->m_dvrSelect == -1)
  234. return;
  235. // TODO: Add your control notification handler code here
  236. UpdateData(TRUE);
  237. m_nChanSel = m_channelctrl.GetCurSel();
  238. if(bGet485Serial[m_nChanSel])
  239. {
  240. decodercfg[m_nChanSel].dwBaudRate = m_baud485.GetCurSel();
  241. decodercfg[m_nChanSel].byDataBit = m_databit485.GetCurSel();
  242. decodercfg[m_nChanSel].byStopBit = m_stopbit485.GetCurSel();
  243. decodercfg[m_nChanSel].byParity = m_checkbit485.GetCurSel();
  244. decodercfg[m_nChanSel].byFlowcontrol = m_flow485.GetCurSel();
  245. decodercfg[m_nChanSel].wDecoderType = m_decodetypectrl.GetCurSel();
  246. decodercfg[m_nChanSel].wDecoderAddress = m_decodeaddr;
  247. TRACE("m_nChanSel = %d m_decodeaddr = %d", m_nChanSel, m_decodeaddr);
  248. bSetSerialParams = TRUE;
  249. }
  250. }
  251. void CRemoteSerialConfig::OnBut485copy()
  252. {
  253. // TODO: Add your control notification handler code here
  254. UpdateData(TRUE);
  255. m_nCopyChanNum = m_copy485cfgctrl.GetCurSel() - 1;
  256. if(m_nCopyChanNum == m_nChanSel)
  257. return;
  258. if(m_nCopyChanNum == -1)
  259. {
  260. for(int i=0; i<m_iChannelnumber; i++)
  261. {
  262. if(i == m_nChanSel)
  263. continue;
  264. if(bGet485Serial[i])
  265. {
  266. decodercfg[i].dwBaudRate = m_baud485.GetCurSel();
  267. decodercfg[i].byDataBit = m_databit485.GetCurSel();
  268. decodercfg[i].byStopBit = m_stopbit485.GetCurSel();
  269. decodercfg[i].byParity = m_checkbit485.GetCurSel();
  270. decodercfg[i].byFlowcontrol = m_flow485.GetCurSel();
  271. decodercfg[i].wDecoderType = m_decodetypectrl.GetCurSel();
  272. decodercfg[i].wDecoderAddress = m_decodeaddr;
  273. }
  274. }
  275. }
  276. else
  277. {
  278. if(bGet485Serial[m_nChanSel])
  279. {
  280. decodercfg[m_nChanSel].dwBaudRate = m_baud485.GetCurSel();
  281. decodercfg[m_nChanSel].byDataBit = m_databit485.GetCurSel();
  282. decodercfg[m_nChanSel].byStopBit = m_stopbit485.GetCurSel();
  283. decodercfg[m_nChanSel].byParity = m_checkbit485.GetCurSel();
  284. decodercfg[m_nChanSel].byFlowcontrol = m_flow485.GetCurSel();
  285. decodercfg[m_nChanSel].wDecoderType = m_decodetypectrl.GetCurSel();
  286. decodercfg[m_nChanSel].wDecoderAddress = m_decodeaddr;
  287. }
  288. }
  289. bSetSerialParams = TRUE;
  290. }
  291. void CRemoteSerialConfig::OnSelchangeCombochannel()
  292. {
  293. // TODO: Add your control notification handler code here
  294. m_nChanSel = m_channelctrl.GetCurSel();
  295. m_nChanNum = m_nChanSel+m_lStartChannel;
  296. /* if(!NET_DVR_GetDVRConfig(m_lServerID, NET_DVR_GET_DECODERCFG, m_nChanNum,&decodercfg[m_nChanSel], sizeof(NET_DVR_DECODERCFG), &dwReturned))
  297. {
  298. CString sTemp;
  299. sTemp.Format("获取通道%d 485串口参数失败!: NET_DVR_GET_DECODERCFG = %d \n", m_nChanNum, NET_DVR_GetLastError());
  300. }
  301. else
  302. {
  303. */ m_baud485.SetCurSel(decodercfg[m_nChanSel].dwBaudRate);
  304. m_databit485.SetCurSel(decodercfg[m_nChanSel].byDataBit);
  305. m_stopbit485.SetCurSel(decodercfg[m_nChanSel].byStopBit);
  306. m_checkbit485.SetCurSel(decodercfg[m_nChanSel].byParity);
  307. m_flow485.SetCurSel(decodercfg[m_nChanSel].byFlowcontrol);
  308. m_decodetypectrl.SetCurSel(decodercfg[m_nChanSel].wDecoderType);
  309. m_decodeaddr = (BYTE)decodercfg[m_nChanSel].wDecoderAddress;
  310. GetDlgItem(IDSERIALOK)->EnableWindow(TRUE);
  311. //bGet485Serial[m_nChanSel] = TRUE;
  312. // }
  313. UpdateData(FALSE);
  314. }
  315. void CRemoteSerialConfig::OnSerialok()
  316. {
  317. if(m_pRemoteParam->m_dvrSelect == -1)
  318. return;
  319. // TODO: Add your control notification handler code here
  320. UpdateData(TRUE);
  321. if(bGet232Serial)
  322. {
  323. rs232cfg.dwBaudRate = m_baud232.GetCurSel();
  324. rs232cfg.byDataBit = m_databit232.GetCurSel();
  325. rs232cfg.byStopBit = m_stopbit232.GetCurSel();
  326. rs232cfg.byParity = m_checkbit232.GetCurSel();
  327. rs232cfg.byFlowcontrol = m_flow232.GetCurSel();
  328. rs232cfg.dwWorkMode = m_operatemode.GetCurSel();
  329. int OperateSel = 0;
  330. OperateSel = m_operatemode.GetCurSel();
  331. if(OperateSel == 0)
  332. {
  333. if(m_VerifyPSW != m_Psw)
  334. {
  335. MessageBox("密码校验不正确!", "温馨提示", MB_ICONINFORMATION);
  336. return ;
  337. }
  338. rs232cfg.struPPPConfig.byPPPMode = m_PPPModeCtrl.GetCurSel();
  339. rs232cfg.struPPPConfig.byRedialMode = m_HBModeCtrl.GetCurSel();
  340. rs232cfg.struPPPConfig.byRedial = (BYTE)m_bHuibo;
  341. rs232cfg.struPPPConfig.byDataEncrypt = (BYTE)m_bSjjm;
  342. memcpy(rs232cfg.struPPPConfig.sUsername,m_UserName,NAME_LEN);
  343. memcpy(rs232cfg.struPPPConfig.sPassword, m_Psw, PASSWD_LEN);
  344. memcpy(rs232cfg.struPPPConfig.sRemoteIP, m_RemoteIp, 16);
  345. memcpy(rs232cfg.struPPPConfig.sLocalIP, m_LocalIp, 16);
  346. memcpy(rs232cfg.struPPPConfig.sLocalIPMask, m_IpMask, 16);
  347. memcpy(rs232cfg.struPPPConfig.sTelephoneNumber, m_Telephone, PHONENUMBER_LEN);
  348. }
  349. }
  350. bSetSerialParams = TRUE;
  351. }
  352. void CRemoteSerialConfig::OnExit()
  353. {
  354. // TODO: Add your control notification handler code here
  355. bSetSerialParams = FALSE;
  356. }
  357. void CRemoteSerialConfig::OnCancel()
  358. {
  359. // TODO: Add extra cleanup here
  360. // CDialog::OnCancel();
  361. }
  362. void CRemoteSerialConfig::OnSelchangeOperatemode()
  363. {
  364. // TODO: Add your control notification handler code here
  365. char cTemp[100];
  366. UpdateData(TRUE);
  367. int OperateSel = 0;
  368. OperateSel = m_operatemode.GetCurSel();
  369. if(OperateSel == 0)
  370. {
  371. /* GetDlgItem(IDC_BUTTONSTART)->EnableWindow(FALSE);
  372. GetDlgItem(IDC_BUTTONSTOP)->EnableWindow(FALSE);
  373. GetDlgItem(IDC_BUTTONSEND)->EnableWindow(FALSE);
  374. GetDlgItem(IDC_EDITSEND)->EnableWindow(FALSE);
  375. */ GetDlgItem(IDC_PPPMODE)->EnableWindow(TRUE);
  376. GetDlgItem(IDC_HBMODE)->EnableWindow(TRUE);
  377. GetDlgItem(IDC_EDITUSERNAME)->EnableWindow(TRUE);
  378. GetDlgItem(IDC_EDITPSW)->EnableWindow(TRUE);
  379. GetDlgItem(IDC_EDITVERIFYPSW)->EnableWindow(TRUE);
  380. GetDlgItem(IDC_EDITREMOTEIP)->EnableWindow(TRUE);
  381. GetDlgItem(IDC_EDITLOCALIP)->EnableWindow(TRUE);
  382. GetDlgItem(IDC_EDITIPMASK)->EnableWindow(TRUE);
  383. GetDlgItem(IDC_EDITTELEPHONE)->EnableWindow(TRUE);
  384. GetDlgItem(IDC_SJJM)->EnableWindow(TRUE);
  385. GetDlgItem(IDC_HUIBO)->EnableWindow(TRUE);
  386. m_PPPModeCtrl.SetCurSel(rs232cfg.struPPPConfig.byPPPMode);
  387. m_HBModeCtrl.SetCurSel(rs232cfg.struPPPConfig.byRedialMode);
  388. m_bHuibo = rs232cfg.struPPPConfig.byRedial;
  389. m_bSjjm = rs232cfg.struPPPConfig.byDataEncrypt;
  390. ZeroMemory(cTemp, 100);
  391. memcpy(cTemp, rs232cfg.struPPPConfig.sUsername, NAME_LEN);
  392. m_UserName.Format("%s", cTemp);
  393. ZeroMemory(cTemp, 100);
  394. memcpy(cTemp, rs232cfg.struPPPConfig.sPassword, PASSWD_LEN);
  395. m_Psw.Format("%s", cTemp);
  396. ZeroMemory(cTemp, 100);
  397. memcpy(cTemp, rs232cfg.struPPPConfig.sPassword, PASSWD_LEN);
  398. m_VerifyPSW.Format("%s", cTemp);
  399. m_RemoteIp = rs232cfg.struPPPConfig.sRemoteIP;
  400. m_LocalIp = rs232cfg.struPPPConfig.sLocalIP;
  401. m_IpMask = rs232cfg.struPPPConfig.sLocalIPMask;
  402. ZeroMemory(cTemp, 100);
  403. memcpy(cTemp, rs232cfg.struPPPConfig.sTelephoneNumber, PHONENUMBER_LEN);
  404. m_Telephone.Format("%s", cTemp);
  405. }
  406. else if(OperateSel == 1)
  407. {
  408. /* GetDlgItem(IDC_BUTTONSTART)->EnableWindow(FALSE);
  409. GetDlgItem(IDC_BUTTONSTOP)->EnableWindow(FALSE);
  410. GetDlgItem(IDC_BUTTONSEND)->EnableWindow(FALSE);
  411. GetDlgItem(IDC_EDITSEND)->EnableWindow(FALSE);
  412. */ GetDlgItem(IDC_PPPMODE)->EnableWindow(FALSE);
  413. GetDlgItem(IDC_HBMODE)->EnableWindow(FALSE);
  414. GetDlgItem(IDC_EDITUSERNAME)->EnableWindow(FALSE);
  415. GetDlgItem(IDC_EDITPSW)->EnableWindow(FALSE);
  416. GetDlgItem(IDC_EDITVERIFYPSW)->EnableWindow(FALSE);
  417. GetDlgItem(IDC_EDITREMOTEIP)->EnableWindow(FALSE);
  418. GetDlgItem(IDC_EDITLOCALIP)->EnableWindow(FALSE);
  419. GetDlgItem(IDC_EDITIPMASK)->EnableWindow(FALSE);
  420. GetDlgItem(IDC_EDITTELEPHONE)->EnableWindow(FALSE);
  421. GetDlgItem(IDC_SJJM)->EnableWindow(FALSE);
  422. GetDlgItem(IDC_HUIBO)->EnableWindow(FALSE);
  423. }
  424. else if(OperateSel == 2)
  425. {
  426. /* GetDlgItem(IDC_BUTTONSTART)->EnableWindow(TRUE);
  427. GetDlgItem(IDC_BUTTONSTOP)->EnableWindow(TRUE);
  428. GetDlgItem(IDC_BUTTONSEND)->EnableWindow(TRUE);
  429. GetDlgItem(IDC_EDITSEND)->EnableWindow(TRUE);
  430. */ GetDlgItem(IDC_PPPMODE)->EnableWindow(FALSE);
  431. GetDlgItem(IDC_HBMODE)->EnableWindow(FALSE);
  432. GetDlgItem(IDC_EDITUSERNAME)->EnableWindow(FALSE);
  433. GetDlgItem(IDC_EDITPSW)->EnableWindow(FALSE);
  434. GetDlgItem(IDC_EDITVERIFYPSW)->EnableWindow(FALSE);
  435. GetDlgItem(IDC_EDITREMOTEIP)->EnableWindow(FALSE);
  436. GetDlgItem(IDC_EDITLOCALIP)->EnableWindow(FALSE);
  437. GetDlgItem(IDC_EDITIPMASK)->EnableWindow(FALSE);
  438. GetDlgItem(IDC_EDITTELEPHONE)->EnableWindow(FALSE);
  439. GetDlgItem(IDC_SJJM)->EnableWindow(FALSE);
  440. GetDlgItem(IDC_HUIBO)->EnableWindow(FALSE);
  441. }
  442. }
  443. void CRemoteSerialConfig::OnButton1()
  444. {
  445. // TODO: Add your control notification handler code here
  446. if(m_lSerial >= 0)
  447. {
  448. NET_DVR_SerialStop(m_lSerial);
  449. m_lSerial = -1;
  450. }
  451. //1-232 2-485
  452. m_lSerial = NET_DVR_SerialStart(m_lServerID, 1, fSerialDataCallBack, 0);
  453. if(m_lSerial < 0)
  454. {
  455. MessageBox("建立透明通道失败!", "温馨提示", MB_ICONINFORMATION);
  456. }
  457. else
  458. {
  459. SetTimer(SERIAL_TIMER,1000,NULL);
  460. }
  461. }
  462. void CRemoteSerialConfig::OnButton2()
  463. {
  464. // TODO: Add your control notification handler code here
  465. if(m_lSerial >= 0)
  466. {
  467. KillTimer(SERIAL_TIMER);
  468. Sleep(500);
  469. NET_DVR_SerialStop(m_lSerial);
  470. m_lSerial = -1;
  471. }
  472. TRACE("OnButtonstop!");
  473. }
  474. int val = 0;
  475. void CRemoteSerialConfig::OnTimer(UINT nIDEvent)
  476. {
  477. // TODO: Add your message handler code here and/or call default
  478. if(nIDEvent == SERIAL_TIMER)
  479. {
  480. char buf[10];
  481. char *pTemp = buf;
  482. val++;
  483. if(val >= 1000)
  484. val = 1;
  485. sprintf(pTemp, "%4d", val);
  486. if(m_lSerial >= 0)
  487. {
  488. NET_DVR_SerialSend(m_lSerial, 1, pTemp, sizeof(pTemp));
  489. }
  490. }
  491. CDialog::OnTimer(nIDEvent);
  492. }