SettingPrtDlg.cpp
上传用户:asikq0571
上传日期:2014-07-12
资源大小:528k
文件大小:4k
源码类别:

Internet/IE编程

开发平台:

Visual C++

  1. // SettingPrtDlg.cpp : implementation file
  2. //
  3. #include "stdafx.h"
  4. #include "Peugeot.h"
  5. #include "SettingPrtDlg.h"
  6. #include "MainFrm.h"
  7. #include "PeugeotDoc.h"
  8. #ifdef _DEBUG
  9. #define new DEBUG_NEW
  10. #undef THIS_FILE
  11. static char THIS_FILE[] = __FILE__;
  12. #endif
  13. /////////////////////////////////////////////////////////////////////////////
  14. // CSettingPrtDlg dialog
  15. CSettingPrtDlg::CSettingPrtDlg(CWnd* pParent /*=NULL*/)
  16. : CDialog(CSettingPrtDlg::IDD, pParent)
  17. {
  18. //{{AFX_DATA_INIT(CSettingPrtDlg)
  19. m_PrtType = -1;
  20. m_ModbusAddr = 0;
  21. m_ModbusYCSize = 0;
  22. m_ModbusYCFunc = 0;
  23. m_ModbusCallInt = 0;
  24. m_ModbusYXFunc = 0;
  25. m_YCAddr = 0;
  26. m_YCNum = 0;
  27. m_YMAddr = 0;
  28. m_YMNum = 0;
  29. m_YXAddr = 0;
  30. m_YXNum = 0;
  31. m_IEC101Addr = 0;
  32. m_IEC101CauseLen = 0;
  33. m_IEC101ASDULen = 0;
  34. m_IEC101MsgLen = 0;
  35. //}}AFX_DATA_INIT
  36. }
  37. void CSettingPrtDlg::DoDataExchange(CDataExchange* pDX)
  38. {
  39. CDialog::DoDataExchange(pDX);
  40. //{{AFX_DATA_MAP(CSettingPrtDlg)
  41. DDX_Radio(pDX, IDC_PRTTYPE, m_PrtType);
  42. DDX_Text(pDX, IDC_MBS_ADDR, m_ModbusAddr);
  43. DDV_MinMaxInt(pDX, m_ModbusAddr, 0, 255);
  44. DDX_Text(pDX, IDC_MBS_YCSIZE, m_ModbusYCSize);
  45. DDV_MinMaxInt(pDX, m_ModbusYCSize, 1, 9);
  46. DDX_Text(pDX, IDC_MBS_YCFUNC, m_ModbusYCFunc);
  47. DDV_MinMaxInt(pDX, m_ModbusYCFunc, 1, 255);
  48. DDX_Text(pDX, IDC_MBS_CallInt, m_ModbusCallInt);
  49. DDV_MinMaxInt(pDX, m_ModbusCallInt, 0, 65535);
  50. DDX_Text(pDX, IDC_MBS_YXFUNC, m_ModbusYXFunc);
  51. DDV_MinMaxInt(pDX, m_ModbusYXFunc, 1, 255);
  52. DDX_Text(pDX, IDC_YCADDR, m_YCAddr);
  53. DDV_MinMaxInt(pDX, m_YCAddr, 0, 65535);
  54. DDX_Text(pDX, IDC_YCNUM, m_YCNum);
  55. DDV_MinMaxInt(pDX, m_YCNum, 0, 1024);
  56. DDX_Text(pDX, IDC_YMADDR, m_YMAddr);
  57. DDV_MinMaxInt(pDX, m_YMAddr, 0, 65535);
  58. DDX_Text(pDX, IDC_YMNUM, m_YMNum);
  59. DDV_MinMaxInt(pDX, m_YMNum, 0, 1024);
  60. DDX_Text(pDX, IDC_YXADDR, m_YXAddr);
  61. DDV_MinMaxInt(pDX, m_YXAddr, 0, 65535);
  62. DDX_Text(pDX, IDC_YXNUM, m_YXNum);
  63. DDV_MinMaxInt(pDX, m_YXNum, 0, 1024);
  64. DDX_Text(pDX, IDC_101_ADDR, m_IEC101Addr);
  65. DDV_MinMaxInt(pDX, m_IEC101Addr, 1, 255);
  66. DDX_Text(pDX, IDC_101_CAUSELEN, m_IEC101CauseLen);
  67. DDV_MinMaxInt(pDX, m_IEC101CauseLen, 1, 2);
  68. DDX_Text(pDX, IDC_101_ASDUADDRLEN, m_IEC101ASDULen);
  69. DDV_MinMaxInt(pDX, m_IEC101ASDULen, 1, 2);
  70. DDX_Text(pDX, IDC_101_MSGADDRLEN, m_IEC101MsgLen);
  71. DDV_MinMaxInt(pDX, m_IEC101MsgLen, 1, 3);
  72. //}}AFX_DATA_MAP
  73. }
  74. BEGIN_MESSAGE_MAP(CSettingPrtDlg, CDialog)
  75. //{{AFX_MSG_MAP(CSettingPrtDlg)
  76. ON_BN_CLICKED(IDC_CMMPORT, OnCmmPort)
  77. //}}AFX_MSG_MAP
  78. END_MESSAGE_MAP()
  79. /////////////////////////////////////////////////////////////////////////////
  80. // CSettingPrtDlg message handlers
  81. BOOL CSettingPrtDlg::OnInitDialog() 
  82. {
  83. CMainFrame* pMainFrame;
  84.     pMainFrame = (CMainFrame*)AfxGetApp()->m_pMainWnd; //框架窗口指针
  85. CPeugeotDoc* pDoc;
  86. pDoc = (CPeugeotDoc*) pMainFrame->GetActiveDocument(); //文档指针
  87.     if (pDoc->m_PrtType == pDoc->Blank)
  88. m_PrtType = pDoc->IEC101_S;
  89. else
  90.     m_PrtType = pDoc->m_PrtType;      //通讯规约
  91.     
  92. //信息量地址,数量
  93. m_YXAddr = pDoc->m_YXAddr;       
  94. m_YCAddr = pDoc->m_YCAddr;
  95. m_YMAddr = pDoc->m_YMAddr;
  96. m_YXNum  = pDoc->m_YXNum;
  97.     m_YCNum  = pDoc->m_YCNum;
  98. m_YMNum  = pDoc->m_YMNum;
  99. //MODBUS规约参数
  100. m_ModbusAddr    = pDoc->m_PrtModbus.m_Addr;
  101.     m_ModbusCallInt = pDoc->m_PrtModbus.m_CallIntv;
  102. m_ModbusYXFunc  = pDoc->m_PrtModbus.m_YXFunc;
  103.     m_ModbusYCFunc  = pDoc->m_PrtModbus.m_YCFunc;
  104.     m_ModbusYCSize  = pDoc->m_PrtModbus.m_YCSize;
  105. //IEC101规约参数
  106. m_IEC101Addr     = pDoc->m_PrtIEC101.m_Addr;
  107. m_IEC101CauseLen = pDoc->m_PrtIEC101.m_CauseOfTranLen;
  108. m_IEC101ASDULen  = pDoc->m_PrtIEC101.m_CommAddrLen;
  109. m_IEC101MsgLen   = pDoc->m_PrtIEC101.m_MsgAddrLen;
  110. CDialog::OnInitDialog();
  111. return TRUE;  // return TRUE unless you set the focus to a control
  112.               // EXCEPTION: OCX Property Pages should return FALSE
  113. }
  114. void CSettingPrtDlg::OnCmmPort() 
  115. {
  116. CMainFrame* pMainFrame = (CMainFrame*)AfxGetApp()->m_pMainWnd; //框架窗口指针
  117. pMainFrame->SetCmmPort();
  118. }