StepmotorDlg.cpp

// PSensorDlg.cpp : implementation file

//

 

#include "stdafx.h"

#include "PSensor.h"

#include "PSensorDlg.h"

#include "nidaqex.h"

 

#ifdef _DEBUG

#define new DEBUG_NEW

#undef THIS_FILE

static char THIS_FILE[] = __FILE__;

#endif

 

/////////////////////////////////////////////////////////////////////////////

// CAboutDlg dialog used for App About

 

class CAboutDlg : public CDialog

{

public:

       CAboutDlg();

 

// Dialog Data

       //{{AFX_DATA(CAboutDlg)

       enum { IDD = IDD_ABOUTBOX };

       //}}AFX_DATA

 

       // ClassWizard generated virtual function overrides

       //{{AFX_VIRTUAL(CAboutDlg)

       protected:

       virtual void DoDataExchange(CDataExchange* pDX);    // DDX/DDV support

       //}}AFX_VIRTUAL

 

// Implementation

protected:

       //{{AFX_MSG(CAboutDlg)

       //}}AFX_MSG

       DECLARE_MESSAGE_MAP()

};

 

CAboutDlg::CAboutDlg() : CDialog(CAboutDlg::IDD)

{

       //{{AFX_DATA_INIT(CAboutDlg)

       //}}AFX_DATA_INIT

}

 

void CAboutDlg::DoDataExchange(CDataExchange* pDX)

{

       CDialog::DoDataExchange(pDX);

       //{{AFX_DATA_MAP(CAboutDlg)

       //}}AFX_DATA_MAP

}

 

BEGIN_MESSAGE_MAP(CAboutDlg, CDialog)

       //{{AFX_MSG_MAP(CAboutDlg)

              // No message handlers

       //}}AFX_MSG_MAP

END_MESSAGE_MAP()

 

/////////////////////////////////////////////////////////////////////////////

// CPSensorDlg dialog

 

CPSensorDlg::CPSensorDlg(CWnd* pParent /*=NULL*/)

       : CDialog(CPSensorDlg::IDD, pParent)

{

       //{{AFX_DATA_INIT(CPSensorDlg)

              // NOTE: the ClassWizard will add member initialization here

       //}}AFX_DATA_INIT

       // Note that LoadIcon does not require a subsequent DestroyIcon in Win32

       m_hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME);

}

 

void CPSensorDlg::DoDataExchange(CDataExchange* pDX)

{

       CDialog::DoDataExchange(pDX);

       //{{AFX_DATA_MAP(CPSensorDlg)

       DDX_Control(pDX, IDC_CWBOOLEAN1, m_photo);

       DDX_Control(pDX, IDC_CWNUMEDIT1, m_count);

       //}}AFX_DATA_MAP

}

 

BEGIN_MESSAGE_MAP(CPSensorDlg, CDialog)

       //{{AFX_MSG_MAP(CPSensorDlg)

       ON_WM_SYSCOMMAND()

       ON_WM_PAINT()

       ON_WM_QUERYDRAGICON()

       ON_WM_TIMER()

       ON_BN_CLICKED(IDC_BUTTON1, OnButton1)

       //}}AFX_MSG_MAP

END_MESSAGE_MAP()

 

/////////////////////////////////////////////////////////////////////////////

// CPSensorDlg message handlers

 

BOOL CPSensorDlg::OnInitDialog()

{

       CDialog::OnInitDialog();

 

       // Add "About..." menu item to system menu.

 

       // IDM_ABOUTBOX must be in the system command range.

       ASSERT((IDM_ABOUTBOX & 0xFFF0) == IDM_ABOUTBOX);

       ASSERT(IDM_ABOUTBOX < 0xF000);

 

       CMenu* pSysMenu = GetSystemMenu(FALSE);

       if (pSysMenu != NULL)

       {

              CString strAboutMenu;

              strAboutMenu.LoadString(IDS_ABOUTBOX);

              if (!strAboutMenu.IsEmpty())

              {

                    pSysMenu->AppendMenu(MF_SEPARATOR);

                    pSysMenu->AppendMenu(MF_STRING, IDM_ABOUTBOX, strAboutMenu);

              }

       }

 

       // 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

       DIG_Line_Config(1, 0, 0, 0); //DIG_Line_Config(iDevice, iPort, iLine, iDir);

       SetTimer(1,100,NULL);              // 0.1초마다 타이머가 동작한다.

       m_count.Value=0;

       preCount=0;

       return TRUE;  // return TRUE  unless you set the focus to a control

}

 

void CPSensorDlg::OnSysCommand(UINT nID, LPARAM lParam)

{

       if ((nID & 0xFFF0) == IDM_ABOUTBOX)

       {

              CAboutDlg dlgAbout;

              dlgAbout.DoModal();

       }

       else

       {

              CDialog::OnSysCommand(nID, lParam);

       }

}

 

// If you add a minimize button to your dialog, you will need the code below

//  to draw the icon.  For MFC applications using the document/view model,

//  this is automatically done for you by the framework.

 

void CPSensorDlg::OnPaint()

{

       if (IsIconic())

       {

              CPaintDC dc(this); // device context for painting

 

              SendMessage(WM_ICONERASEBKGND, (WPARAM) dc.GetSafeHdc(), 0);

 

              // Center icon in client rectangle

              int cxIcon = GetSystemMetrics(SM_CXICON);

              int cyIcon = GetSystemMetrics(SM_CYICON);

              CRect rect;

              GetClientRect(&rect);

              int x = (rect.Width() - cxIcon + 1) / 2;

              int y = (rect.Height() - cyIcon + 1) / 2;

 

              // Draw the icon

              dc.DrawIcon(x, y, m_hIcon);

       }

       else

       {

              CDialog::OnPaint();

       }

}

 

// The system calls this to obtain the cursor to display while the user drags

//  the minimized window.

HCURSOR CPSensorDlg::OnQueryDragIcon()

{

       return (HCURSOR) m_hIcon;

}

 

void CPSensorDlg::OnTimer(UINT nIDEvent)

{

       // TODO: Add your message handler code here and/or call default

       i16 iState = 0;

 

       UpdateData(TRUE);

       DIG_In_Line(1, 0, 0, &iState);

       m_photo.Value = iState;

       if(m_photo.Value==1 && preCount==0) // 새로 센서에 접근할 때만 카운트

              m_count.Value=m_count.Value+1;

       preCount=m_photo.Value;

       UpdateData(FALSE);

       CDialog::OnTimer(nIDEvent);

}

 

void CPSensorDlg::OnButton1()

{

       // TODO: Add your control notification handler code here

       m_count.Value = 0;

}