37#include "vme/v1190B.h"
164 pdata[0] = (
value&0x000000FF)>>0;
165 pdata[1] = (
value&0x0000FF00)>>8;
166 pdata[2] = (
value&0x00FF0000)>>16;
167 pdata[3] = (
value&0xFF000000)>>24;
225 for (
int j=0;
j<16;
j++)
298 static bool gInsideEndRun =
false;
302 printf(
"breaking recursive end_of_run()\n");
306 gInsideEndRun =
true;
312 gInsideEndRun =
false;
408 v792_EvtCntRead(
gVme,
base, &counter);
419 for (
i=0;
i<wcount;
i++)
421 uint32_t w =
data[
i];
422 if (((w>>24)&0x7) != 0)
continue;
423 int chan = (w>>16)&0x1F;
424 int val = (w&0x1FFF);
443 const int kDataSize = 10000;
457 printf(
"reading TDC got %d words\n",
count);
459 printf(
"reading TDC got %d words\n",
count);
463 int code = 0x1F&(
data[
i]>>27);
472 int edge = 0x1&(
data[
i]>>26);
473 int chan = 0x3F&(
data[
i]>>19);
474 int time = 0x3FFFF&
data[
i];
476 printf(
"tdc %3d: 0x%08x, code 0x%02x, edge %d, chan %2d, time %6d\n",
484 if ((chan==0) && (time0==0))
486 if ((chan==1) && (time0!=0) && (time1==0) && (time>time0))
488 if ((chan==2) && (time0!=0) && (time2==0) && (time>time0))
496 printf(
"tdc %3d: 0x%08x, code 0x%02x\n",
i,
data[
i],code);
504 printf(
"time %8d %8d %8d, diff %8d\n",time0,time1,time2,time1-time2);
508 int xdata = time1-time2;
511 else if (xdata > 10000)
516 printf(
"count %d, time %8d %8d %8d, diff %8d\n",
count,time0,time1,time2,xdata);
530int read_vf48(
int base,
char* pevent)
BOOL frontend_call_loop
frontend_loop is called periodically if this variable is TRUE
INT max_event_size
maximum event size produced by this frontend
INT frontend_exit()
Frontend exit.
INT read_event(char *pevent, INT off)
INT frontend_init()
Frontend initialization.
int read_v792(int base, const char *bname, char *pevent, int nchan)
INT event_buffer_size
buffer size to hold events
INT max_event_size_frag
maximum event size for fragmented events (EQ_FRAGMENTED)
INT interrupt_configure(INT cmd, INT source, PTYPE adr)
int mvme_read16(int addr)
void encodeU32(char *pdata, uint32_t value)
uint32_t odbReadUint32(const char *name, int index, uint32_t defaultValue=0)
int mvme_read32(int addr)
INT poll_event(INT source, INT count, BOOL test)
Polling routine for events.
EQUIPMENT equipment[]
Main structure for midas equipment.
INT display_period
a frontend status page is displayed with this frequency in ms
char * frontend_name
The frontend name (client name) as seen by other MIDAS clients.
char * frontend_file_name
The frontend file name, don't change it.
int read_tdc(int base, char *pevent)
INT begin_of_run(INT run_number, char *error)
Begin of Run.
INT frontend_loop()
Frontend loop.
INT end_of_run(INT run_number, char *error)
End of Run.
INT bk_close(void *event, void *pdata)
void bk_init32(void *event)
void bk_create(void *event, const char *name, WORD type, void **pdata)
INT bk_size(const void *event)
#define CMD_INTERRUPT_ATTACH
#define CMD_INTERRUPT_DISABLE
#define CMD_INTERRUPT_ENABLE
#define CMD_INTERRUPT_DETACH
INT cm_msg(INT message_type, const char *filename, INT line, const char *routine, const char *format,...)
int EXPRT mvme_open(MVME_INTERFACE **vme, int idx)
unsigned int EXPRT mvme_read_value(MVME_INTERFACE *vme, mvme_addr_t vme_addr)
int EXPRT mvme_set_dmode(MVME_INTERFACE *vme, int dmode)
int EXPRT mvme_close(MVME_INTERFACE *vme)
int EXPRT mvme_set_am(MVME_INTERFACE *vme, int am)
INT db_get_data_index(HNDLE hDB, HNDLE hKey, void *data, INT *buf_size, INT idx, DWORD type)
static te_expr * base(state *s)