Low-Energy Muon (LEM) Experiment  0.5.1
lemvac_scfe.c
Go to the documentation of this file.
1 /********************************************************************\
2 
3  Name: lemvac_scfe.c
4  Created by: Andreas Suter
5 
6  Contents: Midas frontend to readout the LEM vacuum control unit
7 
8 \********************************************************************/
9 
10 #include <stdio.h>
11 #include "midas.h"
12 #include "class/multi.h"
13 #include "device/nulldev.h"
14 #include "lemvac.h"
15 #include "sps_tcpip.h"
16 #include "null.h"
17 
18 //-- Globals -------------------------------------------------------
19 
21 char *frontend_name = "LEMVAC_SC";
23 char *frontend_file_name = __FILE__;
24 
26 BOOL frontend_call_loop = TRUE;
27 
29 INT display_period = 1000;
30 
32 INT max_event_size = 10000;
33 
35 INT max_event_size_frag = 5*1024*1024;
36 
38 INT event_buffer_size = 10*10000;
39 
40 //-- Equipment list ------------------------------------------------
41 
43 #ifdef DUMMY_SCFE
44 DEVICE_DRIVER lemvac_driver[] = {
45  { "LEMVAC in", lemvac_in, LEMVAC_IN_VARS, null, DF_INPUT },
46  { "LEMVAC out", lemvac_out, LEMVAC_OUT_VARS, null, DF_OUTPUT },
47  { "" }
48 };
49 #else
50 DEVICE_DRIVER lemvac_driver[] = {
51  { "LEMVAC in", lemvac_in, LEMVAC_IN_VARS, sps_tcpip, DF_INPUT },
52  { "LEMVAC out", lemvac_out, LEMVAC_OUT_VARS, sps_tcpip, DF_OUTPUT },
53  { "" }
54 };
55 #endif
56 
58 EQUIPMENT equipment[] = {
59 
60  { "LEMVAC", // equipment name
61  {78, 0, // event ID, trigger mask
62  "SYSTEM", // event buffer
63  EQ_SLOW, // equipment type
64  0, // event source
65  "FIXED", // format
66  TRUE, // enabled
67  RO_RUNNING |
68  RO_TRANSITIONS, // read when running and on transitions
69  30000, // read every 30 sec
70  0, // stop run after this event limit
71  0, // number of sub events
72  1, // log history every event
73  "", "", "",},
74  cd_multi_read, // readout routine
75  cd_multi, // class driver main routine
76  lemvac_driver, // device driver list
77  NULL, // init string
78  },
79 
80  { "" }
81 };
82 
83 
84 
85 //-- Dummy routines ------------------------------------------------
86 
87 INT poll_event(INT source[], INT count, BOOL test) {return 1;};
88 INT interrupt_configure(INT cmd, INT source[], PTYPE adr) {return 1;};
89 
90 //-- Frontend Init -------------------------------------------------
95 {
96  // de-register run-transition notifications
97  cm_deregister_transition(TR_START);
98  cm_deregister_transition(TR_STOP);
99  cm_deregister_transition(TR_PAUSE);
100  cm_deregister_transition(TR_RESUME);
101 
102  return CM_SUCCESS;
103 }
104 
105 //-- Frontend Exit -------------------------------------------------
111 {
112  return CM_SUCCESS;
113 }
114 
115 //-- Frontend Loop -------------------------------------------------
120 {
121  return CM_SUCCESS;
122 }
123 
124 //-- Begin of Run --------------------------------------------------
129 INT begin_of_run(INT run_number, char *error)
130 {
131  return CM_SUCCESS;
132 }
133 
134 //-- End of Run ----------------------------------------------------
139 INT end_of_run(INT run_number, char *error)
140 {
141  return CM_SUCCESS;
142 }
143 
144 //-- Pause Run -----------------------------------------------------
149 INT pause_run(INT run_number, char *error)
150 {
151  return CM_SUCCESS;
152 }
153 
154 //-- Resume Run ----------------------------------------------------
159 INT resume_run(INT run_number, char *error)
160 {
161  return CM_SUCCESS;
162 }
163 
164 //------------------------------------------------------------------
INT interrupt_configure(INT cmd, INT source, PTYPE adr)
Definition: vme_fe.c:2119
char * frontend_name
experiment specific ODB structures
Definition: vme_fe.c:159
EQUIPMENT equipment[]
Definition: vme_fe.c:326
INT max_event_size_frag
maximum event size for fragmented events (EQ_FRAGMENTED)
Definition: vme_fe.c:174
INT end_of_run(INT run_number, char *error)
Definition: vme_fe.c:858
INT frontend_init()
Definition: vme_fe.c:416
INT frontend_loop()
Definition: vme_fe.c:949
#define LEMVAC_OUT_VARS
number of variables in the set list
Definition: lemvac.h:11
BOOL frontend_call_loop
frontend_loop is called periodically if this variable is TRUE
Definition: vme_fe.c:165
INT lemvac_out(INT cmd,...)
Definition: lemvac.c:1444
INT max_event_size
maximum event size produced by this frontend
Definition: vme_fe.c:171
INT pause_run(INT run_number, char *error)
Definition: vme_fe.c:886
INT frontend_exit()
Definition: vme_fe.c:557
INT event_buffer_size
buffer size to hold events
Definition: vme_fe.c:177
char * frontend_file_name
The frontend file name, don&#39;t change it.
Definition: vme_fe.c:162
INT poll_event(INT source, INT count, BOOL test)
Definition: vme_fe.c:2102
float lemvac_in[27]
holds the lemvac input variables
Definition: hv_fug_scfe.c:94
#define LEMVAC_IN_VARS
number of variables in the get list
Definition: lemvac.h:10
INT begin_of_run(INT run_number, char *error)
Definition: vme_fe.c:589
DEVICE_DRIVER lemvac_driver[]
device driver list
Definition: lemvac_scfe.c:50
INT display_period
a frontend status page is displayed with this frequency in ms
Definition: vme_fe.c:168
INT resume_run(INT run_number, char *error)
Definition: vme_fe.c:893