// 8041RW_demoDlg.cpp : implementation file // #include "stdafx.h" #include "8041RW_demo.h" #include "8041RW_demoDlg.h" #include "pacsdk.h" #ifdef _DEBUG #define new DEBUG_NEW #endif // CMy8041RW_demoDlg dialog CMy8041RW_demoDlg::CMy8041RW_demoDlg(CWnd* pParent /*=NULL*/) : CDialog(CMy8041RW_demoDlg::IDD, pParent) { m_hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME); } void CMy8041RW_demoDlg::DoDataExchange(CDataExchange* pDX) { CDialog::DoDataExchange(pDX); //DDX_Control(pDX, IDC_BUTTON1, btnWriteDO); DDX_Control(pDX, IDC_COMBO1, cmbSlot); DDX_Control(pDX, IDC_CHECK1, chkEnable); } BEGIN_MESSAGE_MAP(CMy8041RW_demoDlg, CDialog) #if defined(_DEVICE_RESOLUTION_AWARE) && !defined(WIN32_PLATFORM_WFSP) ON_WM_SIZE() #endif //}}AFX_MSG_MAP ON_BN_CLICKED(IDC_WRITEDO, &CMy8041RW_demoDlg::OnBnClickedWritedo) ON_BN_CLICKED(IDC_CLEAR, &CMy8041RW_demoDlg::OnBnClickedClear) ON_BN_CLICKED(IDC_READDO, &CMy8041RW_demoDlg::OnBnClickedReaddo) ON_BN_CLICKED(IDC_SETPOWER, &CMy8041RW_demoDlg::OnBnClickedSetpower) ON_BN_CLICKED(IDC_REFRESH, &CMy8041RW_demoDlg::OnBnClickedRefresh) ON_BN_CLICKED(IDC_SETSAFE, &CMy8041RW_demoDlg::OnBnClickedSetsafe) END_MESSAGE_MAP() // CMy8041RW_demoDlg message handlers BOOL CMy8041RW_demoDlg::OnInitDialog() { CDialog::OnInitDialog(); // Set the icon for this dialog. The framework does this automatically // when the application's main window is not a dialog SetIcon(m_hIcon, TRUE); // Set big icon SetIcon(m_hIcon, FALSE); // Set small icon // TODO: Add extra initialization here return TRUE; // return TRUE unless you set the focus to a control } #if defined(_DEVICE_RESOLUTION_AWARE) && !defined(WIN32_PLATFORM_WFSP) void CMy8041RW_demoDlg::OnSize(UINT /*nType*/, int /*cx*/, int /*cy*/) { if (AfxIsDRAEnabled()) { DRA::RelayoutDialog( AfxGetResourceHandle(), this->m_hWnd, DRA::GetDisplayMode() != DRA::Portrait ? MAKEINTRESOURCE(IDD_MY8041RW_DEMO_DIALOG_WIDE) : MAKEINTRESOURCE(IDD_MY8041RW_DEMO_DIALOG)); } } #endif void CMy8041RW_demoDlg::OnBnClickedWritedo() { // TODO: Add your control notification handler code here HANDLE hPort; TCHAR data[100]={0}; char cdata[100]={0}; DWORD dwSlot=0; DWORD dwDOTtoalCh=0; DWORD dwDOValue=0; //Get slot where the module is GetDlgItemTextW(IDC_COMBO1,data,100); dwSlot = _wtoi(data); //Get total channels of DO GetDlgItemTextW(IDC_EDIT1,data,100); dwDOTtoalCh = _wtoi(data); //Set DO data GetDlgItemTextW(IDC_EDIT2,data,100); wcstombs(cdata,data,sizeof(cdata)); sscanf(cdata,"%lx",&dwDOValue); hPort = uart_Open(""); pac_WriteDO(hPort,dwSlot,dwDOTtoalCh,dwDOValue); uart_Close(hPort); } void CMy8041RW_demoDlg::OnBnClickedClear() { // TODO: Add your control notification handler code here HANDLE hPort; TCHAR data[100]={0}; DWORD dwSlot=0; DWORD dwDOTtoalCh=0; //Get slot where the module is GetDlgItemTextW(IDC_COMBO1,data,100); dwSlot = _wtoi(data); //Get total channels of DO GetDlgItemTextW(IDC_EDIT1,data,100); dwDOTtoalCh = _wtoi(data); //Clear DO hPort = uart_Open(""); pac_WriteDO(hPort,dwSlot,dwDOTtoalCh,0); uart_Close(hPort); } void CMy8041RW_demoDlg::OnBnClickedReaddo() { // TODO: Add your control notification handler code here HANDLE hPort; TCHAR data[100]={0}; char cdata[100]={0}; DWORD dwSlot=0; DWORD dwDOTtoalCh=0; DWORD dwDOValue=0; //Get slot where the module is GetDlgItemTextW(IDC_COMBO1,data,100); dwSlot = _wtoi(data); //Get total channels of DO GetDlgItemTextW(IDC_EDIT1,data,100); dwDOTtoalCh = _wtoi(data); //Read DO hPort = uart_Open(""); pac_ReadDO(hPort,dwSlot,dwDOTtoalCh,&dwDOValue); uart_Close(hPort); wsprintf(data,L"%x",dwDOValue); SetDlgItemText(IDC_EDIT3,data); } void CMy8041RW_demoDlg::OnBnClickedSetpower() { // TODO: Add your control notification handler code here HANDLE hPort; TCHAR data[100]={0}; char cdata[100]={0}; DWORD dwSlot=0; DWORD dwDOTtoalCh=0; DWORD dwDOValue=0; //Get slot where the module is GetDlgItemTextW(IDC_COMBO1,data,100); dwSlot = _wtoi(data); //Get total channels of DO GetDlgItemTextW(IDC_EDIT1,data,100); dwDOTtoalCh = _wtoi(data); //Get DO value GetDlgItemTextW(IDC_EDIT2,data,100); wcstombs(cdata,data,sizeof(cdata)); sscanf(cdata,"%lx",&dwDOValue); //pac_WriteModulePowerOnValue(iDO_Slot,dwDOData); pac_WriteModulePowerOnValueDO(hPort,dwSlot,32,dwDOValue); MessageBox(data,L"test",NULL); if(IDYES==MessageBox(TEXT("Power on value will show after reboot.\nDo you want to reboot now?"),TEXT("Note"),MB_YESNO|MB_ICONQUESTION)) pac_Reboot(); } void CMy8041RW_demoDlg::OnBnClickedRefresh() { // TODO: Add your control notification handler code here HANDLE hPort; TCHAR data[100]={0}; DWORD dwSlot=0; DWORD dwDOTtoalCh=0; DWORD dwDOValue=0; //Get slot where the module is GetDlgItemTextW(IDC_COMBO1,data,100); dwSlot = _wtoi(data); //Refresh module pac_RefreshModuleWDT(hPort,dwSlot); } void CMy8041RW_demoDlg::OnBnClickedSetsafe() { // TODO: Add your control notification handler code here HANDLE hPort; TCHAR data[100]={0}; char cdata[100]={0}; DWORD dwSlot=0; DWORD dwDOTtoalCh=0; DWORD dwDOValue=0; DWORD dwTimeOut=0; DWORD dwOverwite=0; //Get slot where the module is GetDlgItemTextW(IDC_COMBO1,data,100); dwSlot = _wtoi(data); //Set DO data GetDlgItemTextW(IDC_EDIT2,data,100); wcstombs(cdata,data,sizeof(cdata)); sscanf(cdata,"%lx",&dwDOValue); pac_WriteModuleSafeValueDO(hPort,dwSlot,32, dwDOValue); if (chkEnable.GetCheck())//enable WTD overwrite after WTD start dwOverwite = 1; //get the WTD overwrite time GetDlgItemTextW(IDC_EDIT4,data,100); dwTimeOut = _wtoi(data); pac_SetModuleWDTConfig(hPort,dwSlot, 1, dwTimeOut, dwOverwite); }