Go to the source code of this file.
Defines | |
#define | SERVER_CACHE_SIZE 100000 |
Functions | |
INT | source_scan (INT fmt, EQUIPMENT_INFO *eq_info) |
INT | eb_begin_of_run (INT, char *, char *) |
INT | eb_end_of_run (INT, char *) |
INT | eb_user (INT, BOOL mismatch, EBUILDER_CHANNEL *, EVENT_HEADER *, void *, INT *) |
#define EQUIPMENT_COMMON_STR "\Event ID = WORD : 0\n\Trigger mask = WORD : 0\n\Buffer = STRING : [32] SYSTEM\n\Type = INT : 0\n\Source = INT : 0\n\Format = STRING : [8] FIXED\n\Enabled = BOOL : 0\n\Read on = INT : 0\n\Period = INT : 0\n\Event limit = DOUBLE : 0\n\Num subevents = DWORD : 0\n\Log history = INT : 0\n\Frontend host = STRING : [32] \n\Frontend name = STRING : [32] \n\Frontend file name = STRING : [256] \n\" |
#define EQUIPMENT_STATISTICS_STR "\Events sent = DOUBLE : 0\n\Events per sec. = DOUBLE : 0\n\kBytes per sec. = DOUBLE : 0\n\" |
INT close_buffers | ( | void | ) |
Hook to the event builder task at completion of event collection after receiving the Stop transition.
rn | run number | |
error | error string to be passed back to the system. |
Definition at line 120 of file ebuser.c.
Referenced by close_buffers().
INT eb_user | ( | INT | nfrag, | |
BOOL | mismatch, | |||
EBUILDER_CHANNEL * | ebch, | |||
EVENT_HEADER * | pheader, | |||
void * | pevent, | |||
INT * | dest_size | |||
) |
Hook to the event builder task after the reception of all fragments of the same serial number. The destination event has already the final EVENT_HEADER setup with the data size set to 0. It is than possible to add private data at this point using the proper bank calls.
The ebch[] array structure points to nfragment channel structure with the following content:
typedef struct { char name[32]; // Fragment name (Buffer name). DWORD serial; // Serial fragment number. char *pfragment; // Pointer to fragment (EVENT_HEADER *) ... } EBUILDER_CHANNEL;
The correct code for including your own MIDAS bank is shown below where TID_xxx is one of the valid Bank type starting with TID_ for midas format or xxx_BKTYPE for Ybos data format. bank_name is a 4 character descriptor. pdata has to be declared accordingly with the bank type. Refers to the ebuser.c source code for further description.
It is not possible to mix within the same destination event different event format!
// Event is empty, fill it with BANK_HEADER // If you need to add your own bank at this stage bk_init(pevent); bk_create(pevent, bank_name, TID_xxxx, &pdata); *pdata++ = ...; *dest_size = bk_size(pevent) + sizeof(EVENT_HEADER); pheader->data_size = bk_size(pevent);
For YBOS format, use the following example.
ybk_init(pevent); ybk_create(pevent, "EBBK", I4_BKTYPE, &pdata); *pdata++ = 0x12345678; *pdata++ = 0x87654321; *dest_size = ybk_close(pevent, pdata); *dest_size *= 4; pheader->data_size = *dest_size;
nfrag | Number of fragment. | |
mismatch | Midas Serial number mismatch flag. | |
ebch | Structure to all the fragments. | |
pheader | Destination pointer to the header. | |
pevent | Destination pointer to the bank header. | |
dest_size | Destination event size in bytes. |
void free_event_buffer | ( | INT | nfrag | ) |
Definition at line 680 of file mevb.c.
Referenced by main(), source_booking(), and source_unbooking().
INT handFlush | ( | void | ) |
INT source_scan | ( | INT | fmt, | |
EQUIPMENT_INFO * | eq_info | |||
) |
Scan all the fragment source once per call.
fmt | Fragment format type | |
eq_info | Equipement pointer |
Definition at line 881 of file mevb.c.
Referenced by scan_fragment().
INT source_unbooking | ( | void | ) |
Referenced by eb_yfragment_add(), and source_scan().
BOOL abort_requested = FALSE |
char bars[] = "|\\-/" |
Definition at line 48 of file mevb.c.
Referenced by scan_fragment(), and v1729_TimeCalibrationRun().
char buffer_name[NAME_LENGTH] |
char* dest_event |
EBUILDER_CHANNEL ebch[MAX_CHANNELS] |
Definition at line 30 of file mevb.c.
Referenced by free_event_buffer(), handFlush(), load_fragment(), main(), scan_fragment(), source_booking(), source_scan(), and source_unbooking().
EBUILDER_SETTINGS ebset |
Definition at line 29 of file mevb.c.
Referenced by eb_user(), handFlush(), main(), source_booking(), source_scan(), and tr_start().
Definition at line 36 of file frontend.c.
char* frontend_file_name |
char* frontend_name |
HNDLE hEqKey |
HNDLE hKey |
Definition at line 44 of file mevb.c.
Referenced by analyzer_init(), cm_connect_client(), cm_delete_client_info(), cm_disconnect_experiment(), cm_get_client_info(), cm_msg_log(), cm_msg_log1(), cm_msg_retrieve(), cm_set_client_info(), cm_set_watchdog_params(), device_driver(), logger_root(), main(), register_equipment(), and tr_start().
HNDLE hSubkey |
Definition at line 44 of file mevb.c.
Referenced by cm_connect_client(), cm_exist(), cm_set_client_info(), cm_shutdown(), cm_transition(), and load_fragment().
int i_bar |
Definition at line 49 of file mevb.c.
Referenced by scan_fragment(), and v1729_TimeCalibrationRun().
INT(*) meb_fragment_add(char *, char *, INT *) |
char mevb_svn_revision[] = "$Id: mevb.c 3659 2007-04-03 14:30:48Z ritt@PSI.CH $" |
Definition at line 42 of file mevb.c.
Referenced by handFlush(), load_fragment(), scan_fragment(), source_booking(), source_scan(), source_unbooking(), and tr_start().
BOOL stop_requested = TRUE |