1 |
kusanagi |
1.1 |
/**************************************************************************** |
2 |
|
|
* F i l e D a t a |
3 |
|
|
* $Id: MH_ModeHandler_INFN.c,v 1.34 2005/03/21 13:46:49 faber Exp $ |
4 |
|
|
* $Revision: 1.34 $ |
5 |
|
|
* $Date: 2005/03/21 13:46:49 $ |
6 |
|
|
* $RCSfile: MH_ModeHandler_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: faber $ |
12 |
|
|
* : |
13 |
|
|
**************************************************************************** |
14 |
|
|
* U p d a t i n g |
15 |
|
|
* |
16 |
|
|
* $Log: MH_ModeHandler_INFN.c,v $ |
17 |
|
|
* Revision 1.34 2005/03/21 13:46:49 faber |
18 |
|
|
* TRIG_II software introeduces as emtpy commands. |
19 |
|
|
* DNLK_TIM started at start downlink in order to be sure end of download. |
20 |
|
|
* |
21 |
|
|
* Revision 1.33 2005/03/06 14:54:46 sebastiani |
22 |
|
|
* version running on 06 03 2005 |
23 |
|
|
* |
24 |
|
|
* Revision 1.32 2005/02/21 08:58:29 sebastiani |
25 |
|
|
* all log comments completed |
26 |
|
|
* |
27 |
|
|
* Revision 1.31 2004/12/02 10:43:38 sebastiani |
28 |
|
|
* fix AC |
29 |
|
|
* fix CAL |
30 |
|
|
* fix HK BUFTYPE |
31 |
|
|
* |
32 |
|
|
* Revision 1.30 2004/11/19 15:14:52 sebastiani |
33 |
|
|
* PRH_EXTERN_{VAR,ARR,TABLE} removed and put them on the autogenerated parameter heeader file |
34 |
|
|
* |
35 |
|
|
* Revision 1.29 2004/11/05 16:43:07 sebastiani |
36 |
|
|
* *** empty log message *** |
37 |
|
|
* |
38 |
|
|
* Revision 1.28 2004/11/05 09:36:35 sebastiani |
39 |
|
|
* first version of the PM state machine. tried but not deeply tested |
40 |
|
|
* |
41 |
|
|
* Revision 1.27 2004/09/17 15:01:00 faber |
42 |
|
|
* LU_INFN_LOG flags fixing |
43 |
|
|
* |
44 |
|
|
* Revision 1.26 2004/08/26 16:54:34 sebastiani |
45 |
|
|
* version work fine |
46 |
|
|
* |
47 |
|
|
* Revision 1.25 2004/07/27 10:13:48 faber |
48 |
|
|
* LU_ALARM macro introduced, |
49 |
|
|
* LU_XXXX bit field "logtype" redefined. |
50 |
|
|
* HistoryArea 5 now log a 32 bit word as "info1" |
51 |
|
|
* and logging is reformatted. |
52 |
|
|
* |
53 |
|
|
* Revision 1.24 2004/07/01 14:47:44 sebastiani |
54 |
|
|
* add crc_c |
55 |
|
|
* |
56 |
|
|
* Revision 1.23 2004/06/22 08:57:01 sebastiani |
57 |
|
|
* *** empty log message *** |
58 |
|
|
* |
59 |
|
|
* Revision 1.22 2004/06/15 08:24:37 sebastiani |
60 |
|
|
* *** empty log message *** |
61 |
|
|
* |
62 |
|
|
* Revision 1.21 2004/06/08 14:02:43 alfarano |
63 |
|
|
* eeprom functions |
64 |
|
|
* |
65 |
|
|
* Revision 1.20 2004/06/01 16:41:19 sebastiani |
66 |
|
|
* EventReceive ANY |
67 |
|
|
* |
68 |
|
|
* Revision 1.19 2004/05/20 16:03:52 faber |
69 |
|
|
* ACQ flow dev continuing |
70 |
|
|
* |
71 |
|
|
* Revision 1.18 2004/05/04 17:20:51 sebastiani |
72 |
|
|
* new GOM TEST mode introduced. Entry point in TS_RM_Test(c1,c2) |
73 |
|
|
* |
74 |
|
|
* Revision 1.17 2004/01/12 17:51:28 tassa |
75 |
|
|
* manca solo la parte di invio e ricezione sulla/dalla IDAQ |
76 |
|
|
* |
77 |
|
|
* Revision 1.16 2003/12/15 10:57:16 sebastiani |
78 |
|
|
* last changes for the acceptance of TM tests in Rome of 9-12/Dec/2003 |
79 |
|
|
* |
80 |
|
|
* Revision 1.15 2003/12/06 08:32:38 faber |
81 |
|
|
* startup procedure tuned. TMTC sampling storing at startup |
82 |
|
|
* |
83 |
|
|
* Revision 1.14 2003/12/03 14:36:51 faber |
84 |
|
|
* more action definition about mcmd (setmode/purge_trd). |
85 |
|
|
* SSt word better defined |
86 |
|
|
* |
87 |
|
|
* Revision 1.13 2003/12/01 15:44:09 faber |
88 |
|
|
* Donwlink duration field is a 16 bit word, not 32 (only HSB) |
89 |
|
|
* |
90 |
|
|
* Revision 1.12 2003/11/19 15:48:37 faber |
91 |
|
|
* *** empty log message *** |
92 |
|
|
* |
93 |
|
|
* Revision 1.11 2003/10/17 10:01:55 sebastiani |
94 |
|
|
* MC_piSetState introduced in all cases of MH_SetGOM |
95 |
|
|
* |
96 |
|
|
* Revision 1.10 2003/09/25 09:47:20 faber |
97 |
|
|
* donwlink time/duration *= --> /= |
98 |
|
|
* |
99 |
|
|
* Revision 1.9 2003/09/24 14:52:59 carota |
100 |
|
|
* bug fix again (like before) |
101 |
|
|
* |
102 |
|
|
* Revision 1.8 2003/09/24 14:06:43 faber |
103 |
|
|
* fix: 2 words mcmcd scanning skippend |
104 |
|
|
* |
105 |
|
|
* Revision 1.7 2003/09/22 09:59:35 faber |
106 |
|
|
* new select mode definitions |
107 |
|
|
* |
108 |
|
|
* Revision 1.6 2003/09/19 15:57:35 faber |
109 |
|
|
* Large development update INFN software |
110 |
|
|
* |
111 |
|
|
* Revision 1.5 2003/09/12 10:57:41 faber |
112 |
|
|
* development in proress (Working schedule module) |
113 |
|
|
* |
114 |
|
|
* Revision 1.4 2003/09/10 16:15:52 faber |
115 |
|
|
* PRH_EXTERN_VAR(XX_LOGMASK) removed (not needed any more) |
116 |
|
|
* |
117 |
|
|
* Revision 1.3 2003/09/10 11:55:07 faber |
118 |
|
|
* LU_MASK introduced. Log mask for module is now an unique array (PRH_ARR_LOG_MASK) indexed by __FILEID__ |
119 |
|
|
* |
120 |
|
|
* Revision 1.2 2003/09/10 10:32:37 faber |
121 |
|
|
* Large implementation of PamManager/RunManager Pam Sowfare. (compiled,never run) |
122 |
|
|
* |
123 |
|
|
* Revision 1.1.1.1 2003/08/04 09:40:22 sebastiani |
124 |
|
|
* Imported sources laben rel. 19.06.2003 integrated with pam2 |
125 |
|
|
* |
126 |
|
|
* Revision 1.4 2003/07/17 11:15:52 sebastiani |
127 |
|
|
* idaq manager |
128 |
|
|
* new print for logging in minicom |
129 |
|
|
* |
130 |
|
|
* Revision 1.3 2003/07/03 12:39:29 sebastiani |
131 |
|
|
* *** empty log message *** |
132 |
|
|
* |
133 |
|
|
* Revision 1.2 2003/06/18 16:53:19 sebastiani |
134 |
|
|
* Pam/Run Manager development update. ExpSeq sequence is receiven from the RunManager (simulator mode) |
135 |
|
|
* |
136 |
|
|
* Revision 1.1 2003/06/12 15:17:21 sebastiani |
137 |
|
|
* first ModeHandler update |
138 |
|
|
* |
139 |
|
|
* |
140 |
|
|
*****************************************************************************/ |
141 |
|
|
|
142 |
|
|
|
143 |
|
|
/*============================= Include File ================================*/ |
144 |
|
|
|
145 |
|
|
#include <src/INFN/LU_SourceFileID_INFN.h> |
146 |
|
|
#define __FILEID__ _MH_ModeHandler_INFN__c |
147 |
|
|
|
148 |
|
|
|
149 |
|
|
#ifdef TEST_I |
150 |
|
|
// #include <src/INFN/TS_Test_INFN.h> |
151 |
|
|
#endif // TEST_I |
152 |
|
|
|
153 |
|
|
#include <src/INFN/LU_LogUtility_INFN.h> |
154 |
|
|
#include <src/INFN/PRH_ParamHandler_INFN_auto.h> |
155 |
|
|
LU_DECL_MASK(); |
156 |
|
|
|
157 |
|
|
#include <src/INFN/PM_PamManager_INFN.h> |
158 |
|
|
#include <src/INFN/RM_RunManager_INFN.h> |
159 |
|
|
|
160 |
|
|
#include <src/BasicSW/RTEMSInterface/OS_rtems_p.h> |
161 |
|
|
#include <src/INFN/MH_ModeHandler_INFN.h> |
162 |
|
|
#include <src/INFN/SMH_SelectModeHandler_INFN.h> |
163 |
|
|
|
164 |
|
|
#include <src/ModeManager/ModeCoordinator/MC_ModeCoordinator_p.h> |
165 |
|
|
#include <src/HKManager/HistoryArea/HA_HistoryArea_p.h> |
166 |
|
|
#include <src/FileManager/MMSUManager/FT_MMSUManager_p.h> |
167 |
|
|
#include <src/FileManager/MMSUManager/FT_MMSUManager_int.h> |
168 |
|
|
#include <src/INFN/WS_WorkingSchedule_INFN.h> |
169 |
|
|
|
170 |
|
|
/*============================ Global define ================================*/ |
171 |
|
|
|
172 |
|
|
|
173 |
|
|
/*============================== global types ==============================*/ |
174 |
|
|
|
175 |
|
|
|
176 |
|
|
|
177 |
|
|
/*****************************************************************************/ |
178 |
|
|
/*=========================== Structure define ==============================*/ |
179 |
|
|
|
180 |
|
|
|
181 |
|
|
/*****************************************************************************/ |
182 |
|
|
/*============================ Enumerate define =============================*/ |
183 |
|
|
|
184 |
|
|
/*****************************************************************************/ |
185 |
|
|
|
186 |
|
|
/*=== Mode Handler O P E R A T I O N E N V I R O N M ==*/ |
187 |
|
|
|
188 |
|
|
/*****************************************************************************/ |
189 |
|
|
|
190 |
|
|
/* the General Operation Mode of Pamela. What pamela is doing */ |
191 |
|
|
static MH_GOM MH_GOM_Mode,MH_Saved_GOM_Mode; |
192 |
|
|
static RM_OPCODES MH_LastIgnoredOpDuringDownload; |
193 |
|
|
static UINT32 MH_test_c1,MH_test_c2,MH_test_c3; |
194 |
|
|
static UINT32 MH_SubMode; |
195 |
|
|
|
196 |
|
|
/* annouce donwload infos: (B1 MCMD) */ |
197 |
|
|
static TI_TIME MH_DownlinkStart; |
198 |
|
|
static TI_TIME MH_DownlinkDuration; |
199 |
|
|
static BOOL MH_DownlinkInfo=FALSE; |
200 |
|
|
static BOOL MH_DownloadIsInProgress_flag=FALSE; |
201 |
|
|
|
202 |
|
|
|
203 |
|
|
UINT32 MH_GetSubMode() { |
204 |
|
|
return MH_SubMode; |
205 |
|
|
} |
206 |
|
|
|
207 |
|
|
status_code MH_Init() { |
208 |
|
|
MH_SubMode = 0; |
209 |
|
|
MH_Saved_GOM_Mode=MH_GOM_NULL; |
210 |
|
|
MH_GOM_Mode=MH_GOM_NULL; |
211 |
|
|
MH_test_c1=0; |
212 |
|
|
MH_test_c2=0; |
213 |
|
|
MH_test_c3=0; |
214 |
|
|
MH_DownlinkInfo = FALSE; |
215 |
|
|
return SUCCESSFUL; |
216 |
|
|
} |
217 |
|
|
|
218 |
|
|
MH_GOM MH_GetGOM() { |
219 |
|
|
MH_GOM m; |
220 |
|
|
UINT32 level; |
221 |
|
|
OS_PROTECTED_INT(level,m=MH_GOM_Mode); |
222 |
|
|
return m; |
223 |
|
|
} |
224 |
|
|
|
225 |
|
|
MH_GOM MH_GetSavedGOM() { |
226 |
|
|
MH_GOM m; |
227 |
|
|
UINT32 level; |
228 |
|
|
OS_PROTECTED_INT(level,m=MH_Saved_GOM_Mode); |
229 |
|
|
return m; |
230 |
|
|
} |
231 |
|
|
|
232 |
|
|
/* |
233 |
|
|
MH_GetDownlinkInfo. |
234 |
|
|
|
235 |
|
|
the function return the downlink start time and duration. |
236 |
|
|
times are in 1/8 of seconds. |
237 |
|
|
if DownlinkInfo is not available (B1 not called) it returns |
238 |
|
|
an error. |
239 |
|
|
the function also automatically clear the DownlinkInfo, so |
240 |
|
|
another successfull call of the function must wait for another |
241 |
|
|
downlink info to come. |
242 |
|
|
*/ |
243 |
|
|
status_code MH_GetDownlinkInfo(TI_TIME* start,TI_TIME* duration) { |
244 |
|
|
status_code status; |
245 |
|
|
if(MH_DownlinkInfo) { |
246 |
|
|
/* return infos: */ |
247 |
|
|
*start = MH_DownlinkStart; |
248 |
|
|
*duration = MH_DownlinkDuration; |
249 |
|
|
/* clean information flag */ |
250 |
|
|
MH_DownlinkInfo=FALSE; |
251 |
|
|
status=SUCCESSFUL; |
252 |
|
|
}else |
253 |
|
|
status=MH_INFN_NODOWNLINKINFO; |
254 |
|
|
return status; |
255 |
|
|
} |
256 |
|
|
|
257 |
|
|
status_code MH_SetModeFromMCMD(BYTE Mode,MA_HEADER_MCMD *headerMcmd) { |
258 |
|
|
status_code status=CM_RC_SUCCESSFUL; |
259 |
|
|
static MsgTsk ActiveMsg; |
260 |
|
|
unsigned int code; |
261 |
|
|
unsigned int timetagFlag; |
262 |
|
|
unsigned short* pMcmdInfo; |
263 |
|
|
unsigned int CurrentState; |
264 |
|
|
|
265 |
|
|
|
266 |
|
|
MsgTsk SndMsg; |
267 |
|
|
|
268 |
|
|
|
269 |
|
|
|
270 |
|
|
//MC_piSetState(MC_ACTIVE_STATE); |
271 |
|
|
// Delete MCMD from partition |
272 |
|
|
|
273 |
|
|
|
274 |
|
|
switch(Mode) |
275 |
|
|
{ |
276 |
|
|
case SMH_SUBMODEA0: |
277 |
|
|
// MH_SetGOM(MH_GOM_MAINTENANCE); |
278 |
|
|
PM_SetGom(PM_STOP_AND_WAIT,SCM_NO_ACTION); |
279 |
|
|
MH_SubMode = Mode; |
280 |
|
|
break; |
281 |
|
|
case SMH_SUBMODEB1: |
282 |
|
|
MH_PrepareDownlink(headerMcmd); |
283 |
|
|
MH_SubMode = Mode; |
284 |
|
|
break; |
285 |
|
|
case SMH_SUBMODEB2: |
286 |
|
|
WS_SetFavouriteWorkingSchedule(WS_3); |
287 |
|
|
MH_SubMode = Mode; |
288 |
|
|
break; |
289 |
|
|
case SMH_SUBMODEB3: |
290 |
|
|
WS_SetFavouriteWorkingSchedule(WS_0); |
291 |
|
|
MH_SubMode = Mode; |
292 |
|
|
break; |
293 |
|
|
case SMH_SUBMODEB41: |
294 |
|
|
WS_SetFavouriteWorkingSchedule(WS_1); |
295 |
|
|
MH_SubMode = Mode; |
296 |
|
|
break; |
297 |
|
|
case SMH_SUBMODEB42: |
298 |
|
|
WS_SetFavouriteWorkingSchedule(WS_2); |
299 |
|
|
MH_SubMode = Mode; |
300 |
|
|
break; |
301 |
|
|
default : |
302 |
|
|
/*@LOG unrecognized SUBMODE in SetModeFromMCMD - Mode */ |
303 |
|
|
LU_INFN_LOG(LU_INTERNAL|LU_HA,LU_MASK(__FILEID__),__FILEID__,__LINE__,Mode); |
304 |
|
|
break; |
305 |
|
|
} |
306 |
|
|
/*@LOG Trace: SubMode */ |
307 |
|
|
LU_INFN_LOG(LU_NORMAL_TRACE|LU_HA,LU_MASK(__FILEID__),__FILEID__,__LINE__,Mode); |
308 |
|
|
return (status); |
309 |
|
|
|
310 |
|
|
} |
311 |
|
|
|
312 |
|
|
status_code MH_PrepareDownlink(MA_HEADER_MCMD* headerMcmd) { |
313 |
|
|
UINT16 start_l,start_h,duration_l,duration_h; |
314 |
|
|
UINT16 *usp; |
315 |
|
|
MC_STATE CurrentState; |
316 |
|
|
/* prepare DOWNLINK */ |
317 |
|
|
MC_piGetState(&CurrentState); |
318 |
|
|
/* get information from the MCMD: */ |
319 |
|
|
usp = SMH_GETPTR_BODYAREA(headerMcmd->PtrMCMD); |
320 |
|
|
/* skip select mode info: SUBMODE & LEN */ |
321 |
|
|
usp+=2; |
322 |
|
|
/* get the start time info: */ |
323 |
|
|
start_h = *usp; |
324 |
|
|
usp++; |
325 |
|
|
start_l = *usp; |
326 |
|
|
usp++; |
327 |
|
|
/* get the duration info: */ |
328 |
|
|
duration_h = *usp; |
329 |
|
|
usp++; |
330 |
|
|
duration_l = *usp; |
331 |
|
|
/* TBD: stop acq here */ |
332 |
|
|
MH_DownlinkStart = |
333 |
|
|
(unsigned int)start_h << 16 | |
334 |
|
|
(unsigned int)start_l; |
335 |
|
|
/* |
336 |
|
|
MH_DownlinkDuration = |
337 |
|
|
(unsigned int)duration_h << 16 | |
338 |
|
|
(unsigned int)duration_l; |
339 |
|
|
*/ |
340 |
|
|
MH_DownlinkDuration = |
341 |
|
|
(unsigned int)duration_h; |
342 |
|
|
|
343 |
|
|
/* because we have times in units of 0.125 seconds in the MCMDs, |
344 |
|
|
we multiply the value by 8 |
345 |
|
|
*/ |
346 |
|
|
|
347 |
|
|
MH_DownlinkInfo=TRUE; |
348 |
|
|
|
349 |
|
|
MH_DownlinkStart /= 8; |
350 |
|
|
MH_DownlinkDuration /= 8; |
351 |
|
|
/*@LOG Downlink Start */ |
352 |
|
|
LU_INFN_LOG(LU_NORMAL_TRACE|LU_HA,LU_MASK(__FILEID__),__FILEID__,__LINE__,MH_DownlinkStart); |
353 |
|
|
/*@LOG Downlink Dowlink Duration */ |
354 |
|
|
LU_INFN_LOG(LU_NORMAL_TRACE|LU_HA,LU_MASK(__FILEID__),__FILEID__,__LINE__,MH_DownlinkDuration); |
355 |
|
|
|
356 |
|
|
MH_SetGOM(MH_GOM_DOWNLOAD); |
357 |
|
|
} |
358 |
|
|
|
359 |
|
|
status_code MH_SetTestParam(UINT32 c1,UINT32 c2,UINT32 c3) { |
360 |
|
|
MH_test_c1=c1; |
361 |
|
|
MH_test_c2=c2; |
362 |
|
|
MH_test_c3=c3; |
363 |
|
|
} |
364 |
|
|
|
365 |
|
|
void MH_SetLastIgnoredOpDuringDownload(RM_OPCODES m) { |
366 |
|
|
UINT32 level; |
367 |
|
|
OS_PROTECTED_INT(level,MH_LastIgnoredOpDuringDownload=m); |
368 |
|
|
} |
369 |
|
|
|
370 |
|
|
|
371 |
|
|
MH_GOM MH_GetLastIgnoredOpDuringDownload() { |
372 |
|
|
|
373 |
|
|
static MH_GOM MH_RMOPCODES_2_GOM [RM_OP_MAX] = { |
374 |
|
|
/* RM_OP_NULL -> */ MH_GOM_MAINTENANCE , |
375 |
|
|
/* RM_OP_IDLE -> */ MH_GOM_MAINTENANCE , |
376 |
|
|
/* RM_OP_INITIALIZATION -> */ MH_GOM_INITIALIZATION , |
377 |
|
|
/* RM_OP_CALIBRATION -> */ MH_GOM_CALIBRATION, |
378 |
|
|
/* RM_OP_ACQUISITION -> */ MH_GOM_ACQUISITION, |
379 |
|
|
/* RM_OP_FLUSH_HB -> */ MH_GOM_FLUSH_HB, // not sure here! |
380 |
|
|
/* RM_OP_FORCE_IDAQCMD -> */ MH_GOM_FORCE_IDAQCMD, |
381 |
|
|
/* RM_OP_TEST -> */ MH_GOM_TEST, |
382 |
|
|
/* RM_OP_SINT -> */ MH_GOM_NULL |
383 |
|
|
}; |
384 |
|
|
|
385 |
|
|
UINT32 level; |
386 |
|
|
RM_OPCODES m; |
387 |
|
|
OS_PROTECTED_INT(level,m=MH_LastIgnoredOpDuringDownload); |
388 |
|
|
return MH_RMOPCODES_2_GOM[m]; |
389 |
|
|
} |
390 |
|
|
|
391 |
|
|
void MH_EndOfDownload() { |
392 |
|
|
UINT32 level; |
393 |
|
|
OS_PROTECTED_INT(level,MH_DownloadIsInProgress_flag=FALSE); |
394 |
|
|
} |
395 |
|
|
|
396 |
|
|
BOOL MH_DownloadIsInProgress() { |
397 |
|
|
UINT32 level; |
398 |
|
|
BOOL b; |
399 |
|
|
OS_PROTECTED_INT(level,b=MH_DownloadIsInProgress_flag); |
400 |
|
|
return b; |
401 |
|
|
} |
402 |
|
|
|
403 |
|
|
status_code MH_SetGOM(MH_GOM newmode) { |
404 |
|
|
rtems_event_set unused; |
405 |
|
|
status_code status; |
406 |
|
|
PM_INFN_STATUS s; |
407 |
|
|
UINT32 level; |
408 |
|
|
/* stop the run manager: */ |
409 |
|
|
status = PM_StopRunManager(); |
410 |
|
|
if(status == SUCCESSFUL) { |
411 |
|
|
switch(newmode) { |
412 |
|
|
case MH_GOM_INITIALIZATION: |
413 |
|
|
MH_Saved_GOM_Mode = MH_GOM_Mode; |
414 |
|
|
RM_SendCodeRunManager(RM_OP_INITIALIZATION); |
415 |
|
|
break; |
416 |
|
|
case MH_GOM_CALIBRATION: |
417 |
|
|
MH_Saved_GOM_Mode = MH_GOM_Mode; |
418 |
|
|
RM_SendCodeRunManager(RM_OP_CALIBRATION); |
419 |
|
|
break; |
420 |
|
|
case MH_GOM_ACQUISITION: |
421 |
|
|
MH_Saved_GOM_Mode = MH_GOM_Mode; |
422 |
|
|
RM_SendCodeRunManager(RM_OP_ACQUISITION); |
423 |
|
|
break; |
424 |
|
|
case MH_GOM_DOWNLOAD: |
425 |
|
|
|
426 |
|
|
{ |
427 |
|
|
RM_OPCODES rmopcode=RM_OP_NULL; |
428 |
|
|
OS_PROTECTED_INT(level,MH_DownloadIsInProgress_flag=TRUE); |
429 |
|
|
switch(MH_GOM_Mode) { |
430 |
|
|
case MH_GOM_INITIALIZATION: |
431 |
|
|
rmopcode=RM_OP_INITIALIZATION; |
432 |
|
|
break; |
433 |
|
|
case MH_GOM_CALIBRATION: |
434 |
|
|
rmopcode=RM_OP_CALIBRATION ; |
435 |
|
|
break; |
436 |
|
|
case MH_GOM_ACQUISITION: |
437 |
|
|
rmopcode=RM_OP_ACQUISITION; |
438 |
|
|
break; |
439 |
|
|
} |
440 |
|
|
if(rmopcode!=RM_OP_NULL) |
441 |
|
|
RM_SendCodeRunManager(rmopcode); |
442 |
|
|
|
443 |
|
|
/* this is to be sure a stop downlink will occur in case no download MCMD arrive. Timeout one minute */ |
444 |
|
|
status = OS_piStartTimer_INFN(DNLK_TIM,PRH_VAR_MH_END_OF_DOWNLOAD_TIMEOUT, |
445 |
|
|
FT_ifStopDownLink_CallBack, NULL); |
446 |
|
|
} |
447 |
|
|
|
448 |
|
|
// OS_PROTECTED_INT(level,MH_DownloadIsInProgress_flag=TRUE); |
449 |
|
|
// RM_SendCodeRunManager(MH_GOM_Mode); /* make the RM remember what is doing */ |
450 |
|
|
break; |
451 |
|
|
case MH_GOM_MAINTENANCE: |
452 |
|
|
MH_Saved_GOM_Mode = MH_GOM_Mode; |
453 |
|
|
break; |
454 |
|
|
case MH_GOM_FLUSH_HB: |
455 |
|
|
RM_SendCodeRunManager(RM_OP_FLUSH_HB); /* */ |
456 |
|
|
break; |
457 |
|
|
case MH_GOM_FORCE_IDAQCMD: |
458 |
|
|
RM_SendCodeRunManager(RM_OP_FORCE_IDAQCMD); |
459 |
|
|
break; |
460 |
|
|
case MH_GOM_TEST: |
461 |
|
|
RM_SendTest(MH_test_c1,MH_test_c2,MH_test_c3); |
462 |
|
|
break; |
463 |
|
|
default: |
464 |
|
|
/*@LOG MH_SetGOM: unrecognized newmode - newmode */ |
465 |
|
|
LU_INFN_LOG(LU_INTERNAL|LU_HA,LU_MASK(__FILEID__),__FILEID__,__LINE__,newmode); |
466 |
|
|
MH_GOM_Mode=MH_GOM_MAINTENANCE; |
467 |
|
|
break; |
468 |
|
|
} |
469 |
|
|
MH_GOM_Mode = newmode; |
470 |
|
|
}else { |
471 |
|
|
/*@LOG MH_SetGOM: error in stopping run manager - status */ |
472 |
|
|
LU_INFN_LOG(LU_FATAL|LU_HA,LU_MASK(__FILEID__),__FILEID__,__LINE__,status); |
473 |
|
|
} |
474 |
|
|
|
475 |
|
|
} |
476 |
|
|
|
477 |
|
|
|
478 |
|
|
|