// FlagDlg.cpp : implementation file // #include "stdafx.h" #include "daq.h" #include "FlagDlg.h" #ifdef _DEBUG #define new DEBUG_NEW #undef THIS_FILE static char THIS_FILE[] = __FILE__; #endif ///////////////////////////////////////////////////////////////////////////// // CFlagDlg dialog CFlagDlg::CFlagDlg(DspCard* dsp, CWnd* pParent /*=NULL*/) : CDialog(CFlagDlg::IDD, pParent) { _dsp = dsp; if ( _dsp->setFlag (6, 1) == 1 ) m_verbose = TRUE; else m_verbose = FALSE; //{{AFX_DATA_INIT(CFlagDlg) m_mode = 0; m_flag_val = _dsp->getFlag (5); //}}AFX_DATA_INIT } void CFlagDlg::DoDataExchange(CDataExchange* pDX) { CDialog::DoDataExchange(pDX); //{{AFX_DATA_MAP(CFlagDlg) DDX_CBIndex(pDX, IDC_FLAG_MODE, m_mode); DDX_Text(pDX, IDC_FLAG_VALUE, m_flag_val); DDX_Check(pDX, IDC_FLAG_VERB, m_verbose); //}}AFX_DATA_MAP } BEGIN_MESSAGE_MAP(CFlagDlg, CDialog) //{{AFX_MSG_MAP(CFlagDlg) ON_BN_CLICKED(IDC_FLAG_ABORT, OnFlagAbort) ON_BN_CLICKED(IDC_FLAG_SET, OnFlagSet) ON_BN_CLICKED(IDC_FLAG_VERB, OnFlagVerb) ON_CBN_SELCHANGE(IDC_FLAG_MODE, OnSelchangeFlagMode) //}}AFX_MSG_MAP END_MESSAGE_MAP() ///////////////////////////////////////////////////////////////////////////// // CFlagDlg message handlers // ===================================================== // flag abort // ===================================================== void CFlagDlg::OnFlagAbort() { UpdateData (TRUE); _dsp->setFlag (5, 1); Sleep ( 100 ); _dsp->setFlag (5, 0); m_flag_val = _dsp->getFlag (5); m_mode = 0; UpdateData (TRUE); } // ===================================================== // set flag // ===================================================== void CFlagDlg::OnFlagSet() { UpdateData (TRUE); switch (m_mode ) { case 0: _dsp->setFlag (5, m_flag_val); m_flag_val = -1; break; case 1: _dsp->setFlag (4, m_flag_val); break; case 2 : _dsp->setFlag (6, m_flag_val); break; case 3 : _dsp->setFlag (1, m_flag_val); break; case 4 : _dsp->setFlag (0, m_flag_val); break; default : m_flag_val = -1; } UpdateData (FALSE); } // ===================================================== // read flag // ===================================================== void CFlagDlg::OnSelchangeFlagMode() { UpdateData (TRUE); switch (m_mode ) { case 0: m_flag_val = _dsp->getFlag (5); break; case 1: m_flag_val = _dsp->getFlag (4); break; case 2 : m_flag_val = _dsp->getFlag (6); break; case 3 : m_flag_val = _dsp->getFlag (1); break; case 4 : m_flag_val = _dsp->getFlag (0); break; default : m_flag_val = -1; } UpdateData (FALSE); } // ===================================================== // verbose flag // ===================================================== void CFlagDlg::OnFlagVerb() { UpdateData (TRUE); if ( m_verbose == TRUE ) _dsp->verbFlagOn (); else _dsp->verbFlagOff (); UpdateData (FALSE); }