//------------------------------------------------------------------------------ // Application task example -- // (C) Piero Giubilato 2008-2010, Berkeley Lab -- //------------------------------------------------------------------------------ //______________________________________________________________________________ // {Trace} // [File name] "task_Demo.h" // [Author] "Piero Giubilato" // [Version] "1.2" // [Modified by] "Piero Giubilato" // [Last revision] "06 Jun 2009" // [Language] "C++" // [Compiler] "Visual C++ 8.x 9.x" // [Member of] "Cool SEAL" // [Project] "SEAL" // [Description] "Application task example" // [Key documentation] // "Visual C++ Reference Help" // {Trace} //______________________________________________________________________________ // Overloading check #ifndef task_Demo_H #define task_Demo_H // Standard components #include // Root components #include // Application components // Data #include "data_Burst.h" #include "geom_Frame.h" // GUI #include "gui_Form.h" #include "gui_Panel.h" #include "gui_Check.h" #include "gui_Led.h" #include "gui_Button.h" #include "gui_Combo.h" #include "gui_CoolButton.h" #include "gui_Numeric.h" #include "gui_Menu.h" #include "gui_Map.h" //______________________________________________________________________________ class task_Demo: public task_Object { private: // DATA objects std::vector detector_List;// Detector description data_Burst* burst_Raw; // Raw data container data_Frame* frame_Image; // Image data_Frame* frame_Pedestal; // Pedestals data_Frame* frame_Noise; // Noise // GUI objects std::vector btn_Acq; // Acquisition buttons std::vector chk_Acq; // Acquisition buttons std::vector led_Acq; // Acquisition leds std::vector btn_Comm; // Communication buttons std::vector lbl_Desk; // Generic label std::vector pnl_Desk; // Generic panels std::vector cmb_Det; // Detector options combos std::vector btn_Det; // Detector buttons std::vector cmb_Acq; // Acquisition options combos std::vector num_Acq; // Acquisition options numerics std::vector num_Reg; // Registers options numerics std::vector btn_Reg; // Registers options numerics std::vector chk_Adc; // Channel selectors std::vector cmb_TEAM; // Acquisition options combos gui_Menu* mnu_Test; // Test menu gui_Map* map_Signal; // Signal Map gui_Map* map_Reference; // Reference Map // Setup/Cleanup functions void detector_Setup(UInt_t col_Count = 16, UInt_t row_Count = 16); void data_Setup(geom_Frame* detector, UInt_t fr_Count = 1); void fpga_Setup(data_Burst* burst); void gui_Setup(); void delete_All(); // Data acquisition/analysis void data_Preset(); enum kAcq {ka_Std, ka_Ped, ka_PedSub}; void data_Acquire(UInt_t acq_Mode = 0); void data_Pedestal(); void team_Setup(); // Acquisition flags UInt_t old_Det; // Old selected detector UInt_t old_Col; // Old col number UInt_t old_Row; // Old row number // GUI objects calback target functions (can be either public or private) void btn_acq_Evn(const int arg); // Handles acquisition buttons void btn_comm_Evn(const int arg); // Handles comm buttons void btn_reg_Evn(const int arg); // Handles btn_Reg[i] press void cmb_acq_Evn(const int arg); // Handles cmb_Acq[i] changes void cmb_det_Evn(const int arg); // Handles cmb_Det changes void btn_det_Evn(const int arg); // Handles btn_Det changes // Special private memebers task_Demo(const task_Demo&) {} const task_Demo& operator=(const task_Demo&) {return *this;} public: // Special members task_Demo(); ~task_Demo(); // Run! UInt_t run(); // Static handler (Callback can handle static target function as well) static void static_Evn(const int arg); }; // Overloading check #endif