23#include "TMidasOnline.h"
33TMidasOnline::TMidasOnline()
44TMidasOnline::~TMidasOnline()
57int TMidasOnline::connect(
const char*hostname,
const char*
exptname,
const char*
progname)
81 printf(
"TMidasOnline::connect: Connecting to experiment \"%s\" on host \"%s\"\n", fExptname.c_str(), fHostname.c_str());
90 printf(
"Error: experiment \"%s\" not defined.\n", fExptname.c_str());
107int TMidasOnline::disconnect()
111 printf(
"TMidasOnline::disconnect: Disconnecting from experiment \"%s\" on host \"%s\"\n", fExptname.c_str(), fHostname.c_str());
119void TMidasOnline::registerTransitions()
135bool TMidasOnline::checkTransitions()
175bool TMidasOnline::poll(
int mdelay)
201 printf(
"eventCallback: buffer %d, request %d, pheader %p (event_id: %d, trigger mask: 0x%x, serial: %d, time: %d, size: %d), pevent %p\n",
214 TMidasOnline::instance()->fEventHandler(pheader,pevent,pheader->
data_size);
233 printf(
"TMidasOnline::eventRequest: Cannot find data buffer \"%s\", bm_open_buffer() error %d\n",
bufferName,
status);
244 printf(
"Event request: buffer \"%s\" (%d), event id 0x%x, trigger mask 0x%x, sample %d, request id: %d\n",
bufferName,r->fBufferHandle,r->fEventId,r->fTriggerMask,r->fSamplingType,r->fRequestId);
249 return r->fRequestId;
252void TMidasOnline::deleteEventRequest(
int requestId)
260 r->fBufferHandle = -1;
292int TMidasOnline::odbReadAny(
const char*
name,
int index,
int tid,
void*
value)
305 cm_msg(
MERROR,
"TMidasOnline",
"Cannot read \'%s\'[%d] of type %d from odb, db_get_data_index() status %d",
name,
index, tid,
status);
318 cm_msg (
MERROR,
"TMidasOnline",
"Cannot create \'%s\' of type %d, db_create_key() status %d",
name, tid,
status);
332 cm_msg(
MERROR,
"TMidasOnline",
"Cannot write \'%s\'[%d] of type %d to odb, db_set_data_index() status %d",
name,
index, tid,
status);
static void eventCallback(HNDLE buffer_handle, HNDLE request_id, EVENT_HEADER *pheader, void *pevent)
INT transition(INT run_number, char *error)
INT bm_open_buffer(const char *buffer_name, INT buffer_size, INT *buffer_handle)
INT bm_delete_request(INT request_id)
INT bm_request_event(HNDLE buffer_handle, short int event_id, short int trigger_mask, INT sampling_type, HNDLE *request_id, EVENT_HANDLER *func)
INT bm_set_cache_size(INT buffer_handle, size_t read_size, size_t write_size)
INT cm_register_transition(INT transition, INT(*func)(INT, char *), INT sequence_number)
INT cm_yield(INT millisec)
INT cm_get_experiment_database(HNDLE *hDB, HNDLE *hKeyClient)
INT cm_connect_experiment1(const char *host_name, const char *default_exp_name, const char *client_name, void(*func)(char *), INT odb_size, DWORD watchdog_timeout)
INT cm_disconnect_experiment(void)
INT cm_get_environment(char *host_name, int host_name_size, char *exp_name, int exp_name_size)
INT cm_set_watchdog_params(BOOL call_watchdog, DWORD timeout)
INT cm_msg(INT message_type, const char *filename, INT line, const char *routine, const char *format,...)
INT db_get_data_index(HNDLE hDB, HNDLE hKey, void *data, INT *buf_size, INT idx, DWORD type)
INT db_create_key(HNDLE hDB, HNDLE hKey, const char *key_name, DWORD type)
INT db_set_data_index(HNDLE hDB, HNDLE hKey, const void *data, INT data_size, INT idx, DWORD type)
INT db_find_key(HNDLE hDB, HNDLE hKey, const char *key_name, HNDLE *subhKey)
int cm_query_transition(int *transition, int *run_number, int *trans_time)
TH1X EXPRT * h1_book(const char *name, const char *title, int bins, double min, double max)