/[PAMELA software]/quicklook/dataToXML/Data/compilationInfo/src/INFN/TRG_Trigger_INFN.c
ViewVC logotype

Contents of /quicklook/dataToXML/Data/compilationInfo/src/INFN/TRG_Trigger_INFN.c

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1.1.1.1 - (show annotations) (download) (vendor branch)
Tue Apr 25 09:00:20 2006 UTC (19 years, 2 months ago) by kusanagi
Branch: MAIN
CVS Tags: dataToXML1_02/01, dataToXML1_02/00, dataToXML1_03/00, dataToXML1_03/01, dataToXML1_00/00, firstRelease, dataToXML1_01/00, dataToXML1_03_02, HEAD
Changes since 1.1: +0 -0 lines
File MIME type: text/plain
These program extract in an XML format the info contained into the ROOT files generated by YODA from the PAMELA data. To visualize the XML files in a more human readable format a collection of XSL files are given in the Data subfolder.

1 /****************************************************************************
2 * F i l e D a t a
3 * $Id: TRG_Trigger_INFN.c,v 1.27 2005/03/06 14:54:46 sebastiani Exp $
4 * $Revision: 1.27 $
5 * $Date: 2005/03/06 14:54:46 $
6 * $RCSfile: TRG_Trigger_INFN.c,v $
7 *
8 ****************************************************************************
9 * S W D e v e l o p m e n t E n v i r o n m e n t
10 *
11 * $Author: sebastiani $
12 * :
13 ****************************************************************************
14 * U p d a t i n g
15
16 * $Log: TRG_Trigger_INFN.c,v $
17 * Revision 1.27 2005/03/06 14:54:46 sebastiani
18 * version running on 06 03 2005
19 *
20 * Revision 1.26 2005/02/22 18:09:25 sebastiani
21 * various bugfixes
22 *
23 * Revision 1.25 2005/01/10 14:02:13 faber
24 * TRG,AC_1,AC_2,TOF Error Handler reviewed
25 *
26 * Revision 1.24 2004/11/19 15:41:50 sebastiani
27 * *** empty log message ***
28 *
29 * Revision 1.23 2004/11/19 15:14:52 sebastiani
30 * PRH_EXTERN_{VAR,ARR,TABLE} removed and put them on the autogenerated parameter heeader file
31 *
32 * Revision 1.22 2004/10/18 15:09:24 faber
33 * *** empty log message ***
34 *
35 * Revision 1.21 2004/09/17 15:52:00 faber
36 * fix command queue Cmd2Fe/Fe2Daq right invocation for Test funcion inf TOF and TRG
37 *
38 * Revision 1.20 2004/09/17 15:01:00 faber
39 * LU_INFN_LOG flags fixing
40 *
41 * Revision 1.19 2004/09/13 14:16:53 faber
42 * ErrorHandler for TOF/TRG + Test function TOF/TRG
43 *
44 * Revision 1.18 2004/09/09 14:52:55 sebastiani
45 * using PreparePage to send cmd to idaq/FE
46 * added some test
47 * added trigger param
48 * added/tested Force Send KHB_to_FE
49 * added/tested Send Cmd to IDAQ/FE
50 *
51 * Revision 1.17 2004/09/09 11:24:10 faber
52 * *** empty log message ***
53 *
54 * Revision 1.16 2004/08/27 13:30:39 alfarano
55 * cvs header
56 *
57 * Revision 1.1 2003/10/03 16:12:26 faber
58 * *** empty log message ***
59 *
60 *
61 *****************************************************************************/
62
63 /*============================= Include File ================================*/
64
65
66 #include <src/INFN/LU_SourceFileID_INFN.h>
67 #define __FILEID__ _TRG_Trigger_INFN__c
68 #include <src/INFN/PRH_ParamHandler_INFN.h>
69 #include <src/INFN/LU_LogUtility_INFN.h>
70 #include <src/INFN/PRH_ParamHandler_INFN_auto.h>
71 LU_DECL_MASK();
72 #include <src/INFN/DAQ_IDAQ_INFN.h>
73 #include <src/INFN/CM_Common_INFN.h>
74 #include <src/INFN/CH_CommandHandler_INFN.h>
75 #include <src/INFN/TRG_Trigger_INFN.h>
76 #include <src/INFN/KHB_Driver_INFN.h>
77 #include <src/INFN/HK_Manager_INFN.h>
78 #include <src/INFN/HB_HKBuffer_INFN.h>
79 #include <src/INFN/ALM_Alarm_INFN.h>
80 #include <src/INFN/MH_ModeHandler_INFN.h>
81
82 /*============================ Global define ================================*/
83
84
85 #define TRG_TB_SET_TRIGGER_CONF_BASE_ID CH_TB_SET_TRIGGER_CONF_01
86 #define TRG_TB_SET_BUSY_CONTROL_BASE_ID CH_TB_SET_BUSY_CONTROL_0
87
88
89 DAQ_DECLBUF(TRG_TempPif0,TRG_MAXTEMPBUFFER);
90
91
92 static DAQ_CMD_BUF TB_SET_ALARM_MASK;
93
94 static DAQ_CMD_BUF TB_SET_PMT_MASK;
95
96 static DAQ_CMD_BUF TB_SET_S4_CAL_MASK;
97 static DAQ_CMD_BUF TB_SET_BUSY_MASK_IDAQ_HOT;
98 static DAQ_CMD_BUF TB_SET_BUSY_MASK_IDAQ_COLD;
99
100 static int TB_STATUS;
101
102
103
104
105 status_code Init_ParamBuffers()
106 {
107 DAQ_INIT_BUF_FROM_PARAMBUF(TB_SET_ALARM_MASK);
108 DAQ_INIT_BUF_FROM_PARAMBUF(TB_SET_PMT_MASK);
109 DAQ_INIT_BUF_FROM_PARAMBUF(TB_SET_S4_CAL_MASK);
110 DAQ_INIT_BUF_FROM_PARAMBUF(TB_SET_BUSY_MASK_IDAQ_HOT);
111 DAQ_INIT_BUF_FROM_PARAMBUF(TB_SET_BUSY_MASK_IDAQ_COLD);
112 }
113
114 status_code TRG_Init_ETOATO()
115 {
116 int i;
117 status_code status;
118 CH_PARAMBUF_SET_ATO_ETO(TB_SET_ALARM_MASK,0,1);
119
120
121 CH_SetAtoEto(CH_TB_READ_ALARM_MASK,1,2);
122 CH_SetAtoEto(CH_TB_READ_ALARM,1,2);
123
124 CH_PARAMBUF_SET_ATO_ETO(TB_SET_PMT_MASK,0,1);
125
126 CH_SetAtoEto(CH_TB_READ_PMT_MASK,1,2);
127
128 CH_PARAMBUF_SET_ATO_ETO(TB_SET_S4_CAL_MASK,0,1);
129
130 CH_SetAtoEto(CH_TB_READ_S4_CAL_MASK,1,2);
131 CH_PARAMBUF_SET_ATO_ETO(TB_SET_BUSY_MASK_IDAQ_HOT,0,1);
132 CH_PARAMBUF_SET_ATO_ETO(TB_SET_BUSY_MASK_IDAQ_COLD,0,1);
133
134 CH_SetAtoEto(CH_TB_READ_BUSY_MASK,1,2);
135
136 for (i=0; i < 31; i++)
137 CH_SetAtoEto(TRG_TB_SET_TRIGGER_CONF_BASE_ID+i,0,1);
138
139 CH_SetAtoEto(CH_TB_READ_TRIGGER_CONF,1,2);
140 CH_SetAtoEto(CH_TB_READ_PATTERN_TRIGGER,1,2);
141 CH_SetAtoEto(CH_TB_GIVE_ME_TRIGGER,0,1);
142 CH_SetAtoEto(CH_TB_OPEN_CALIB_GATE,0,1);
143 CH_SetAtoEto(CH_TB_CLOSE_CALIB_GATE,0,1);
144 CH_SetAtoEto(CH_TB_READ_PATTERN_BUSY,1,2);
145
146 for (i=0; i < 8; i++)
147 CH_SetAtoEto(TRG_TB_SET_BUSY_CONTROL_BASE_ID+i,0,1);
148
149 CH_SetAtoEto(CH_TB_START_ACQ,0,1);
150 CH_SetAtoEto(CH_TB_STOP_ACQ,0,1);
151 CH_SetAtoEto(CH_TB_READ_PMT_COUNT1,1,3);
152 CH_SetAtoEto(CH_TB_READ_PMT_COUNT2,1,3);
153 CH_SetAtoEto(CH_TB_READ_S4_CAL_COUNT,1,2);
154 CH_SetAtoEto(CH_TB_READ_D_L_TIME,1,2);
155 CH_SetAtoEto(CH_TB_READ_EVENT_COUNT,1,2);
156 CH_SetAtoEto(CH_TB_READ_PMT_PLANE,1,2);
157 CH_SetAtoEto(CH_TB_READ_TRIGGER_RATE,1,2);
158 CH_SetAtoEto(CH_DUMMY_COMMAND,0,1);
159 }
160
161 status_code TRG_Init()
162 {
163 DAQ_BUFFER_INIT(TRG_TempPif0);
164 Init_ParamBuffers();
165 TRG_Init_ETOATO();
166
167 return CM_RC_SUCCESSFUL;
168 }
169
170 status_code TRG_Initialization()
171 {
172 status_code status;
173 DAQ_CMD_BUF* auto_buf;
174 CM_HOT_COLD hc;
175 DAQ_FE fe_tb = DAQ_SELECT_TRIG(PRH_VAR_TB_LINK);
176 volatile static BOOL do_tb_set_pmt_mask=TRUE;
177
178 TB_STATUS = 1;
179 #warning perche' e' commentato questo ?
180 // DAQ_ResetPIF(DAQ_DEFAULT_ETO_TICS,DAQ_DEFAULT_DTO_TICS,SM_DAQSETUP,HB_PKTTYPE_TRG_INIT);
181
182 DAQ_Format_CMD_Empty(&TRG_TempPif0);
183
184 DAQ_Format_Cmd2Fe(&TRG_TempPif0,&TB_SET_ALARM_MASK,fe_tb);
185
186 CH_GetBuf(CH_DUMMY_COMMAND,&auto_buf );
187 DAQ_Format_Cmd2Fe(&TRG_TempPif0,auto_buf,DAQ_FE_SPARE);
188
189 if(do_tb_set_pmt_mask)
190 DAQ_Format_Cmd2Fe(&TRG_TempPif0,&TB_SET_PMT_MASK,fe_tb);
191
192 DAQ_Format_Cmd2Fe(&TRG_TempPif0,auto_buf,DAQ_FE_SPARE);
193 DAQ_Format_Cmd2Fe(&TRG_TempPif0,&TB_SET_S4_CAL_MASK,fe_tb);
194 DAQ_Format_Cmd2Fe(&TRG_TempPif0,auto_buf,DAQ_FE_SPARE);
195
196 status=HK_KHB_GetHotCold(&hc);
197 LU_EXIT_IFERROR(status);
198
199 if(hc == CM_HOT) {
200 DAQ_Format_Cmd2Fe(&TRG_TempPif0,&TB_SET_BUSY_MASK_IDAQ_HOT,fe_tb);
201 }else{
202 DAQ_Format_Cmd2Fe(&TRG_TempPif0,&TB_SET_BUSY_MASK_IDAQ_COLD,fe_tb);
203 }
204
205 DAQ_Format_Cmd2Fe(&TRG_TempPif0,auto_buf,DAQ_FE_SPARE);
206
207 status = DAQ_StoreCmdQueue2PIF(SM_CALEXP0,&TRG_TempPif0);
208 // if (status) loginternal
209 LU_EXIT_IFERROR(status);
210
211 status = DAQ_SendCmdQueue2CMDIF(SM_CALEXP0);
212 LU_EXIT_IFERROR(status);
213
214 TB_STATUS = 0;
215
216 return status;
217 }
218
219 status_code TRG_Test()
220 {
221 status_code status;
222 CM_HOT_COLD hc;
223 DAQ_CMD_BUF* auto_buf, *dummy_cmd;
224 DAQ_FE fe_tb = DAQ_SELECT_TRIG(PRH_VAR_TB_LINK);
225
226 CH_GetBuf(CH_DUMMY_COMMAND,&dummy_cmd);
227
228 // HK_UpdateKHBMaskRegister(KHB_MASK_ALL,KHB_PRESET);
229 DAQ_Format_CMD_Empty(&TRG_TempPif0);
230
231 DAQ_Format_Cmd2Fe(&TRG_TempPif0,&TB_SET_ALARM_MASK,fe_tb);
232
233 DAQ_Format_Cmd2Fe(&TRG_TempPif0,dummy_cmd,DAQ_FE_SPARE);
234
235 CH_GetBuf(CH_TB_READ_ALARM_MASK,&auto_buf );
236 DAQ_Format_Fe2Daq(&TRG_TempPif0,auto_buf,fe_tb);
237
238
239 DAQ_Format_Fe2Daq(&TRG_TempPif0,&TB_SET_PMT_MASK,fe_tb);
240
241 DAQ_Format_Cmd2Fe(&TRG_TempPif0,dummy_cmd,DAQ_FE_SPARE);
242
243 CH_GetBuf(CH_TB_READ_PMT_MASK,&auto_buf);
244 DAQ_Format_Fe2Daq(&TRG_TempPif0,auto_buf,fe_tb);
245
246 DAQ_Format_Fe2Daq(&TRG_TempPif0,&TB_SET_S4_CAL_MASK,fe_tb);
247
248 DAQ_Format_Cmd2Fe(&TRG_TempPif0,dummy_cmd,DAQ_FE_SPARE);
249
250 CH_GetBuf(CH_TB_READ_S4_CAL_MASK,&auto_buf );
251 DAQ_Format_Fe2Daq(&TRG_TempPif0,auto_buf,fe_tb);
252
253 HK_KHB_GetHotCold(&hc);
254 LU_EXIT_IFERROR(status);
255
256 if(hc == CM_HOT) {
257 DAQ_Format_Cmd2Fe(&TRG_TempPif0,&TB_SET_BUSY_MASK_IDAQ_HOT,fe_tb);
258 }else{
259 DAQ_Format_Cmd2Fe(&TRG_TempPif0,&TB_SET_BUSY_MASK_IDAQ_COLD,fe_tb);
260 }
261
262 DAQ_Format_Cmd2Fe(&TRG_TempPif0,dummy_cmd,DAQ_FE_SPARE);
263
264 CH_GetBuf(CH_TB_READ_BUSY_MASK,&auto_buf );
265 DAQ_Format_Fe2Daq(&TRG_TempPif0,auto_buf,fe_tb);
266
267 DAQ_StoreCmdQueue2PIF(SM_CALEXP0,&TRG_TempPif0);
268 status = DAQ_SendCmd2PIFWaitDAQReply(SM_CALEXP0,DAQ_STORE_MM,NULL,DAQ_NO_STORE_RAM);
269
270 return status;
271 }
272
273 status_code TRG_StartTrigger()
274 {
275 }
276
277 status_code TRG_Error_Handler()
278 {
279 status_code status = CM_RC_SUCCESSFUL;
280 DAQ_CMD_BUF* auto_buf;
281 DAQ_FE fe_tb = DAQ_SELECT_TRIG(PRH_VAR_TB_LINK);
282 UINT16 khb_sr;
283
284 DAQ_Format_CMD_Empty(&TRG_TempPif0);
285
286 CH_GetBuf(CH_TB_READ_ALARM,&auto_buf);
287 DAQ_Format_Fe2Daq(&TRG_TempPif0,auto_buf,fe_tb);
288
289 DAQ_StoreCmdQueue2PIF(SM_CALEXP3,&TRG_TempPif0);
290
291 status = DAQ_SendCmd2PIFWaitDAQReply(SM_CALEXP3,DAQ_STORE_MM,&TRG_TempPif0,DAQ_STORE_RAM);
292 if(status != CM_RC_SUCCESSFUL || TRG_TempPif0.len < SM_PKTHEADER_LEN+3) {
293 status=CM_RC_DO_RESET_IF_ALM;
294 }else{
295
296 if( ((TRG_TempPif0.buf[SM_PKTHEADER_LEN] & 0xFF) != 0) ||
297 ((TRG_TempPif0.buf[SM_PKTHEADER_LEN+1] & 0xFC) != 0)
298 ) {
299 status=HK_ReadKHBStatusRegister(&khb_sr);
300 if((khb_sr & (KHB_STS_ALARM_IDAQ | KHB_STS_ALARM_TRG))
301 || status!=CM_RC_SUCCESSFUL)
302 return CM_RC_DO_POWER_OFF_ON;
303 if( PRH_VAR_GOM_DURING_ALARM == MH_GOM_INITIALIZATION ||
304 PRH_VAR_GOM_DURING_ALARM == MH_GOM_ACQUISITION ) {
305 return CM_RC_DO_RESET_IF_ALM;
306 }
307 }
308 }
309
310 return status;
311 }

  ViewVC Help
Powered by ViewVC 1.1.23