// 7k_ao_poweron_safeDlg.cpp : implementation file // #include "stdafx.h" #include "7k_ao_poweron_safe.h" #include "7k_ao_poweron_safeDlg.h" #include "PACSDK.h" #ifdef _DEBUG #define new DEBUG_NEW #endif // CMy7k_ao_poweron_safeDlg dialog CMy7k_ao_poweron_safeDlg::CMy7k_ao_poweron_safeDlg(CWnd* pParent /*=NULL*/) : CDialog(CMy7k_ao_poweron_safeDlg::IDD, pParent) { m_hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME); } void CMy7k_ao_poweron_safeDlg::DoDataExchange(CDataExchange* pDX) { CDialog::DoDataExchange(pDX); } BEGIN_MESSAGE_MAP(CMy7k_ao_poweron_safeDlg, CDialog) #if defined(_DEVICE_RESOLUTION_AWARE) && !defined(WIN32_PLATFORM_WFSP) ON_WM_SIZE() #endif //}}AFX_MSG_MAP ON_BN_CLICKED(IDC_BUTTON1, &CMy7k_ao_poweron_safeDlg::OnBnClickedButton1) ON_BN_CLICKED(IDC_BUTTON2, &CMy7k_ao_poweron_safeDlg::OnBnClickedButton2) ON_BN_CLICKED(IDC_BUTTON3, &CMy7k_ao_poweron_safeDlg::OnBnClickedButton3) ON_BN_CLICKED(IDC_BUTTON4, &CMy7k_ao_poweron_safeDlg::OnBnClickedButton4) ON_BN_CLICKED(IDC_BUTTON5, &CMy7k_ao_poweron_safeDlg::OnBnClickedButton5) ON_BN_CLICKED(IDC_BUTTON6, &CMy7k_ao_poweron_safeDlg::OnBnClickedButton6) ON_BN_CLICKED(IDC_BUTTON9, &CMy7k_ao_poweron_safeDlg::OnBnClickedButton9) ON_BN_CLICKED(IDC_BUTTON8, &CMy7k_ao_poweron_safeDlg::OnBnClickedButton8) ON_BN_CLICKED(IDC_BUTTON7, &CMy7k_ao_poweron_safeDlg::OnBnClickedButton7) ON_BN_CLICKED(IDC_BUTTON10, &CMy7k_ao_poweron_safeDlg::OnBnClickedButton10) ON_BN_CLICKED(IDC_BUTTON11, &CMy7k_ao_poweron_safeDlg::OnBnClickedButton11) ON_BN_CLICKED(IDC_BUTTON12, &CMy7k_ao_poweron_safeDlg::OnBnClickedButton12) ON_BN_CLICKED(IDC_BUTTON13, &CMy7k_ao_poweron_safeDlg::OnBnClickedButton13) END_MESSAGE_MAP() // CMy7k_ao_poweron_safeDlg message handlers BOOL CMy7k_ao_poweron_safeDlg::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 SetDlgItemText(IDC_COMBO1, L"COM3:"); SetDlgItemText(IDC_EDIT1, L"01"); SetDlgItemText(IDC_EDIT2, L"9600"); SetDlgItemText(IDC_EDIT3, L"1"); return TRUE; // return TRUE unless you set the focus to a control } #if defined(_DEVICE_RESOLUTION_AWARE) && !defined(WIN32_PLATFORM_WFSP) void CMy7k_ao_poweron_safeDlg::OnSize(UINT /*nType*/, int /*cx*/, int /*cy*/) { if(AfxIsDRAEnabled()) { DRA::RelayoutDialog( AfxGetResourceHandle(), this->m_hWnd, DRA::GetDisplayMode() != DRA::Portrait ? MAKEINTRESOURCE(IDD_MY7k_ao_poweron_safe_DIALOG_WIDE) : MAKEINTRESOURCE(IDD_MY7k_ao_poweron_safe_DIALOG)); } } #endif HANDLE hPort; void CMy7k_ao_poweron_safeDlg::OnBnClickedButton1() { // TODO: Add your control notification handler code here TCHAR OpenPort[10]; TCHAR temp[20]; char port[20]; //get user set com port and buad rate GetDlgItemText(IDC_COMBO1, OpenPort, 10); GetDlgItemText(IDC_EDIT2, temp, 20); int BuadRate = _wtoi(temp); //uart_Open parameter format is COMx,buadrate , for ex will set COM3 port and baud rate 9600 to uart_Open, //parameter is "COM3,9600" sprintf(port, "%ls,%d", OpenPort, BuadRate); hPort = uart_Open(port); if(hPort == INVALID_HANDLE_VALUE) { ::MessageBox(NULL, L"Open Port Error", L"7k_ao_poweron_safe", MB_OK); } else { GetDlgItem(IDC_BUTTON1)->EnableWindow(FALSE); GetDlgItem(IDC_BUTTON2)->EnableWindow(TRUE); GetDlgItem(IDC_BUTTON3)->EnableWindow(TRUE); } } void CMy7k_ao_poweron_safeDlg::OnBnClickedButton2() { // TODO: Add your control notification handler code here //close com port if(!uart_Close(hPort)) { ::MessageBox(NULL, L"Close Port Error", L"7k_ao_poweron_safe", MB_OK); } else { GetDlgItem(IDC_BUTTON1)->EnableWindow(TRUE); GetDlgItem(IDC_BUTTON2)->EnableWindow(FALSE); GetDlgItem(IDC_BUTTON3)->EnableWindow(FALSE); } } void CMy7k_ao_poweron_safeDlg::OnBnClickedButton3() { // TODO: Add your control notification handler code here TCHAR temp[20]; DWORD DIValue = 0; float fValue = 0.0; CString strTemp; char ctemp[20]; //get user set address GetDlgItemText(IDC_EDIT1, temp, 20); int address = _wtoi(temp); //get user set total channel GetDlgItemText(IDC_EDIT3, temp, 20); int TotalChannel = _wtoi(temp); //get user write channel GetDlgItemText(IDC_EDIT4, temp, 20); int WriteChannel = _wtoi(temp); //get user write AO data GetDlgItemText(IDC_EDIT5, strTemp); for(int i = 0; i < sizeof(strTemp); i++) { ctemp[i] = strTemp[i]; } fValue = (float)atof(ctemp); //use pac_WriteAO functio to write data BOOL iret = pac_WriteAO(hPort, PAC_REMOTE_IO(address), WriteChannel, TotalChannel, fValue); if(!iret) { ::MessageBox(NULL, L"Write AO error", L"7k_ao_poweron_safe", MB_OK); } } void CMy7k_ao_poweron_safeDlg::OnBnClickedButton4() { // TODO: Add your control notification handler code here TCHAR temp[20]; CString strTemp; float fValue = 0.0; //get user set address GetDlgItemText(IDC_EDIT1, temp, 20); int address = _wtoi(temp); //get user set total channel GetDlgItemText(IDC_EDIT3, temp, 20); int TotalChannel = _wtoi(temp); //get user set write channel GetDlgItemText(IDC_EDIT4, temp, 20); int WriteChannel = _wtoi(temp); //use pac_ReadAO function BOOL iret = pac_ReadAO(hPort, PAC_REMOTE_IO(address), WriteChannel, TotalChannel, &fValue); if(!iret) { ::MessageBox(NULL, L"Read AO error", L"7k_ao_poweron_safe", MB_OK); } else { wsprintf(temp, L"Read AO: %.4f", fValue); SetDlgItemText(IDC_EDIT6, temp); } } void CMy7k_ao_poweron_safeDlg::OnBnClickedButton5() { // TODO: 北兜矪瞶盽Α祘Α絏 TCHAR temp[20]; float fValue = 0.0; //get user set address GetDlgItemText(IDC_EDIT1, temp, 20); int address = _wtoi(temp); //get user set total channel GetDlgItemText(IDC_EDIT3, temp, 20); int TotalChannel = _wtoi(temp); //get user will write channel GetDlgItemText(IDC_EDIT4, temp, 20); int WriteChannel = _wtoi(temp); //use pac_WriteAO function to write data BOOL iret = pac_WriteAO(hPort, PAC_REMOTE_IO(address), WriteChannel, TotalChannel, fValue); if(!iret) { ::MessageBox(NULL, L"Clear AO error", L"7k_ao_poweron_safe", MB_OK); } } void CMy7k_ao_poweron_safeDlg::OnBnClickedButton6() { // TODO: 北兜矪瞶盽Α祘Α絏 TCHAR temp[20]; CString strTemp; float fValue = 0.0; //get user set address GetDlgItemText(IDC_EDIT1, temp, 20); int address = _wtoi(temp); //get user set WTD Timeout GetDlgItemText(IDC_EDIT7, temp, 20); int WTDTimeout = _wtoi(temp); //use pac_SetModuleWDTConfig function BOOL iret = pac_SetModuleWDTConfig(hPort, PAC_REMOTE_IO(address), 1, WTDTimeout, 0); if(!iret) { ::MessageBox(NULL, L"Config WDT error", L"7k_ao_poweron_safe", MB_OK); } } void CMy7k_ao_poweron_safeDlg::OnBnClickedButton9() { // TODO: 北兜矪瞶盽Α祘Α絏 TCHAR temp[20]; //get user set address GetDlgItemText(IDC_EDIT1, temp, 20); int address = _wtoi(temp); short ebStatus; ulong WTDTimeout; int WTDOverwrite; //use pac_GetModuleWDTConfig function BOOL iret = pac_GetModuleWDTConfig(hPort, PAC_REMOTE_IO(address), &ebStatus, &WTDTimeout, &WTDOverwrite); if(!iret) { ::MessageBox(NULL, L"Get Module WDT Config error", L"7k_ao_poweron_safe", MB_OK); } else { wsprintf(temp, L"%u", WTDTimeout); SetDlgItemText(IDC_EDIT7, temp); } } void CMy7k_ao_poweron_safeDlg::OnBnClickedButton8() { // TODO: 北兜矪瞶盽Α祘Α絏 TCHAR temp[20]; CString strTemp; float fValue = 0.0; //get user set address GetDlgItemText(IDC_EDIT1, temp, 20); int address = _wtoi(temp); //use pac_SetModuleWDTConfig function BOOL iret = pac_ResetModuleWDT(hPort, PAC_REMOTE_IO(address)); if(!iret) { ::MessageBox(NULL, L"Reset Module WDT error", L"7k_ao_poweron_safe", MB_OK); } } void CMy7k_ao_poweron_safeDlg::OnBnClickedButton7() { // TODO: 北兜矪瞶盽Α祘Α絏 TCHAR temp[20]; CString strTemp; float fValue = 0.0; //get user set address GetDlgItemText(IDC_EDIT1, temp, 20); int address = _wtoi(temp); //use pac_SetModuleWDTConfig function BOOL iret = pac_RefreshModuleWDT(hPort, PAC_REMOTE_IO(address)); if(!iret) { ::MessageBox(NULL, L"Refresh Module WDT error", L"7k_ao_poweron_safe", MB_OK); } } void CMy7k_ao_poweron_safeDlg::OnBnClickedButton10() { // TODO: 北兜矪瞶盽Α祘Α絏 TCHAR temp[20]; CString strTemp; float fValue = 0.0; //get user set address GetDlgItemText(IDC_EDIT1, temp, 20); int address = _wtoi(temp); //get user set total channel GetDlgItemText(IDC_EDIT3, temp, 20); int TotalChannel = _wtoi(temp); //get user set write channel GetDlgItemText(IDC_EDIT4, temp, 20); int Channel = _wtoi(temp); //use pac_ReadAO function BOOL iret = pac_ReadModulePowerOnValueAO(hPort, PAC_REMOTE_IO(address), Channel, TotalChannel, &fValue); if(!iret) { ::MessageBox(NULL, L"Read PowerOn ValueAO error", L"7k_ao_poweron_safe", MB_OK); } else { wsprintf(temp, L"Read PowerOn ValueAO: %.4f", fValue); SetDlgItemText(IDC_EDIT6, temp); } } void CMy7k_ao_poweron_safeDlg::OnBnClickedButton11() { // TODO: 北兜矪瞶盽Α祘Α絏 TCHAR temp[20]; CString strTemp; char ctemp[20]; float fValue = 0.0; //get user set address GetDlgItemText(IDC_EDIT1, temp, 20); int address = _wtoi(temp); //get user set total channel GetDlgItemText(IDC_EDIT3, temp, 20); int TotalChannel = _wtoi(temp); //get user set write channel GetDlgItemText(IDC_EDIT4, temp, 20); int WriteChannel = _wtoi(temp); //get user set write data GetDlgItemText(IDC_EDIT5, strTemp); for(int i = 0; i < sizeof(strTemp); i++) { ctemp[i] = strTemp[i]; } fValue = (float)atof(ctemp); //use pac_WriteAO functio to write AO data BOOL iret = pac_WriteModulePowerOnValueAO(hPort, PAC_REMOTE_IO(address), WriteChannel, TotalChannel, fValue); if(!iret) { ::MessageBox(NULL, L"Write PowerOn ValueAO error", L"7k_ao_poweron_safe", MB_OK); } } void CMy7k_ao_poweron_safeDlg::OnBnClickedButton12() { // TODO: 北兜矪瞶盽Α祘Α絏 TCHAR temp[20]; CString strTemp; float fValue = 0.0; //get user set address GetDlgItemText(IDC_EDIT1, temp, 20); int address = _wtoi(temp); //get user set total channel GetDlgItemText(IDC_EDIT3, temp, 20); int TotalChannel = _wtoi(temp); //get user set write channel GetDlgItemText(IDC_EDIT4, temp, 20); int Channel = _wtoi(temp); //use pac_ReadAO function BOOL iret = pac_ReadModuleSafeValueAO(hPort, PAC_REMOTE_IO(address), Channel, TotalChannel, &fValue); if(!iret) { ::MessageBox(NULL, L"Read Safe ValueAO error", L"7k_ao_poweron_safe", MB_OK); } else { wsprintf(temp, L"Read Safe ValueAO: %.4f", fValue); SetDlgItemText(IDC_EDIT6, temp); } } void CMy7k_ao_poweron_safeDlg::OnBnClickedButton13() { // TODO: 北兜矪瞶盽Α祘Α絏 TCHAR temp[20]; CString strTemp; char ctemp[20]; float fValue = 0.0; //get user set address GetDlgItemText(IDC_EDIT1, temp, 20); int address = _wtoi(temp); //get user set total channel GetDlgItemText(IDC_EDIT3, temp, 20); int TotalChannel = _wtoi(temp); //get user set write channel GetDlgItemText(IDC_EDIT4, temp, 20); int WriteChannel = _wtoi(temp); //get user set write data GetDlgItemText(IDC_EDIT5, strTemp); for(int i = 0; i < sizeof(strTemp); i++) { ctemp[i] = strTemp[i]; } fValue = (float)atof(ctemp); //use pac_WriteAO functio to write AO data BOOL iret = pac_WriteModuleSafeValueAO(hPort, PAC_REMOTE_IO(address), WriteChannel, TotalChannel, fValue); if(!iret) { ::MessageBox(NULL, L"Write Safe ValueAO error", L"7k_ao_poweron_safe", MB_OK); } }