// Setup.cpp : implementation file // #include "stdafx.h" #include "daq.h" #include "Setup.h" #ifdef _DEBUG #define new DEBUG_NEW #undef THIS_FILE static char THIS_FILE[] = __FILE__; #endif ///////////////////////////////////////////////////////////////////////////// // Setup property page IMPLEMENT_DYNCREATE(Setup, CPropertyPage) Setup::Setup() : CPropertyPage(Setup::IDD) { //{{AFX_DATA_INIT(Setup) m_plane_name = _T(""); m_plane_l0 = _T("None"); m_dspNr = 0; m_linkNr = 0; m_plane_l1 = _T("None"); m_plane_l2 = _T("None"); m_plane_l3 = _T("None"); m_autop_dir = _T(""); m_cb_dir = _T(""); m_data_dir = _T(""); m_detFile_dir = _T(""); //}}AFX_DATA_INIT _daq = _daq->Instance (); _config = _daq->readoutConfig (); _daqEnv = _daq->daqEnv (); // ---> read directory names if ( _daqEnv != 0 ) { _daqEnv->getDir (DataDir, m_data_dir); _daqEnv->getDir (CtrlBlkDir, m_cb_dir); _daqEnv->getDir (DetDir, m_detFile_dir); _daqEnv->getDir (AutoPilotDir, m_autop_dir); } else { m_data_dir = _T("error"); m_detFile_dir = _T("error"); m_cb_dir = _T("error"); } // ---> get planes connected to the readout <--- DetPlane *detPlane; for ( int i = 0; i < 4; i++ ) { detPlane = _config->get_detPlane (i, 0); if ( detPlane != 0 ) { switch ( i ) { case 0 : detPlane->name (m_plane_l0); break; case 1 : detPlane->name (m_plane_l1); break; case 2 : detPlane->name (m_plane_l2); break; case 3 : detPlane->name (m_plane_l3); break; } } } } Setup::~Setup() { } void Setup::DoDataExchange(CDataExchange* pDX) { CPropertyPage::DoDataExchange(pDX); //{{AFX_DATA_MAP(Setup) DDX_Text(pDX, IDC_SU_DETPL_NAME, m_plane_name); DDX_Text(pDX, IDC_SU_LINK0, m_plane_l0); DDX_Text(pDX, IDC_SU_DSP_NR, m_dspNr); DDX_CBIndex(pDX, IDC_SU_LINKNR, m_linkNr); DDX_Text(pDX, IDC_SU_LINK1, m_plane_l1); DDX_Text(pDX, IDC_SU_LINK2, m_plane_l2); DDX_Text(pDX, IDC_SU_LINK3, m_plane_l3); DDX_Text(pDX, IDC_SU_AUTOP, m_autop_dir); DDX_Text(pDX, IDC_SU_CBDIR, m_cb_dir); DDX_Text(pDX, IDC_SU_DATADIR, m_data_dir); DDX_Text(pDX, IDC_SU_DFDIR, m_detFile_dir); //}}AFX_DATA_MAP } BEGIN_MESSAGE_MAP(Setup, CPropertyPage) //{{AFX_MSG_MAP(Setup) ON_BN_CLICKED(IDC_SU_ADD_DETPL, OnSuAddDetpl) ON_BN_CLICKED(IDC_SU_ADD_DSP, OnSuAddDsp) ON_BN_CLICKED(IDC_SU_REM_DETPL, OnSuRemDetpl) ON_BN_CLICKED(IDC_SU_READDIR, OnSuReaddir) ON_BN_CLICKED(IDC_SU_SETDIR, OnSuSetdir) ON_BN_CLICKED(IDC_SU_SAVE, OnSuSave) //}}AFX_MSG_MAP END_MESSAGE_MAP() ///////////////////////////////////////////////////////////////////////////// // Setup message handlers // ====================================================== // add detector plane // ====================================================== void Setup::OnSuAddDetpl() { UpdateData (TRUE); DetPlane *detPlane; _config->add_detPlane (m_linkNr, m_dspNr); if ( !( detPlane = _config->get_detPlane (m_linkNr, m_dspNr) ) ) m_plane_name = _T("error"); else detPlane->init ((char *) (LPCTSTR) m_plane_name); switch (m_linkNr ) { case 0 : m_plane_l0 = m_plane_name; break; case 1 : m_plane_l1 = m_plane_name; break; case 2 : m_plane_l2 = m_plane_name; break; case 3 : m_plane_l3 = m_plane_name; break; } UpdateData (FALSE); } void Setup::OnSuRemDetpl() { UpdateData (TRUE); _config->remove_detPlane (m_linkNr, m_dspNr); switch (m_linkNr ) { case 0 : m_plane_l0 = _T("None"); break; case 1 : m_plane_l1 = _T("None"); break; case 2 : m_plane_l2 = _T("None"); break; case 3 : m_plane_l3 = _T("None"); break; } UpdateData (FALSE); } void Setup::OnSuAddDsp() { UpdateData (TRUE); _config->add_dspCard (m_dspNr); UpdateData (FALSE); } void Setup::OnSuReaddir() { UpdateData (TRUE); _daqEnv->getDir (DataDir, m_data_dir); _daqEnv->getDir (CtrlBlkDir, m_cb_dir); _daqEnv->getDir (DetDir, m_detFile_dir); _daqEnv->getDir (AutoPilotDir, m_autop_dir); UpdateData (FALSE); } void Setup::OnSuSetdir() { UpdateData (TRUE); _daqEnv->setDir (DataDir, (char *) (LPCTSTR) m_data_dir); _daqEnv->setDir (CtrlBlkDir, (char *) (LPCTSTR) m_cb_dir); _daqEnv->setDir (DetDir, (char *) (LPCTSTR) m_detFile_dir); _daqEnv->setDir (AutoPilotDir, (char *) (LPCTSTR) m_autop_dir); UpdateData (FALSE); } void Setup::OnSuSave() { }