// // Created by makoeppe on 5/28/20. // #include #include #include #include #include "midas.h" #include "odbxx.h" #include "msystem.h" #include "mcstd.h" #include "experim.h" #include "switching_constants.h" #include "link_constants.h" #include #include #include "mudaq_device.h" #include "mfe.h" using namespace std; /*-- Globals -------------------------------------------------------*/ /* The frontend name (client name) as seen by other MIDAS clients */ const char *frontend_name = "ODB API test Frontend"; /* The frontend file name, don't change it */ const char *frontend_file_name = __FILE__; /* frontend_loop is called periodically if this variable is TRUE */ BOOL frontend_call_loop = FALSE; /* a frontend status page is displayed with this frequency in ms */ INT display_period = 0; /* maximum event size produced by this frontend */ INT max_event_size = 10000; /* maximum event size for fragmented events (EQ_FRAGMENTED) */ INT max_event_size_frag = 5 * 1024 * 1024; /* buffer size to hold events */ INT event_buffer_size = 32 * max_event_size; /*-- Function declarations -----------------------------------------*/ INT frontend_init(); INT frontend_exit(); INT begin_of_run(INT run_number, char *error); INT end_of_run(INT run_number, char *error); INT pause_run(INT run_number, char *error); INT resume_run(INT run_number, char *error); INT frontend_loop(); INT read_stream_event(char *pevent, INT off); INT read_stream_thread(void *param); INT poll_event(INT source, INT count, BOOL test); INT interrupt_configure(INT cmd, INT source, POINTER_T adr); /*-- Equipment list ------------------------------------------------*/ EQUIPMENT equipment[] = { {"Test", /* equipment name */ {1, 0, /* event ID, trigger mask */ "SYSTEM", /* event buffer */ EQ_USER, /* equipment type */ 0, /* event source crate 0, all stations */ "MIDAS", /* format */ TRUE, /* enabled */ RO_RUNNING, /* read only when running */ 100, /* poll for 100ms */ 0, /* stop run after this event limit */ 0, /* number of sub events */ 0, /* don't log history */ "", "", "",}, NULL, /* readout routine */ }, {""} }; /*-- Frontend Init -------------------------------------------------*/ INT frontend_init() { midas::odb stream_settings = { {"Test_odb_api", { {"Divider", 1000}, // int {"Enable", false}, // bool }}, }; stream_settings.connect("/Equipment/Test/Settings", true); midas::odb datagen("/Equipment/Test/Settings/Test_odb_api"); std::cout << "Datagenerator Enable is " << datagen["Enable"] << std::endl; return SUCCESS; } /*-- Frontend Exit -------------------------------------------------*/ INT frontend_exit() { return SUCCESS; } /*-- Begin of Run --------------------------------------------------*/ INT begin_of_run(INT run_number, char *error) { return SUCCESS; } /*-- End of Run ----------------------------------------------------*/ INT end_of_run(INT run_number, char *error) { return SUCCESS; } /*-- Pause Run -----------------------------------------------------*/ INT pause_run(INT run_number, char *error) { return SUCCESS; } /*-- Resume Run ----------------------------------------------------*/ INT resume_run(INT run_number, char *error) { return SUCCESS; } /*-- Frontend Loop -------------------------------------------------*/ INT frontend_loop() { return SUCCESS; } /*-- Trigger event routines ----------------------------------------*/ INT poll_event(INT source, INT count, BOOL test) { return 0; } /*-- Interrupt configuration ---------------------------------------*/ INT interrupt_configure(INT cmd, INT source, POINTER_T adr) { return SUCCESS; } /*-- Event readout -------------------------------------------------*/ INT read_stream_event(char *pevent, INT off) { return 0; } INT update_equipment_status(int status, int cur_status, EQUIPMENT *eq) { return DB_SUCCESS; } /*-- Event readout -------------------------------------------------*/ INT read_stream_thread(void *param) { return 0; }