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

Contents of /quicklook/dataToXML/Data/compilationInfo/src/INFN/SMH_SelectModeHandler_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: SMH_SelectModeHandler_INFN.c,v 1.44 2005/03/23 10:24:56 sebastiani Exp $
4 * $Revision: 1.44 $
5 * $Date: 2005/03/23 10:24:56 $
6 * $RCSfile: SMH_SelectModeHandler_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: SMH_SelectModeHandler_INFN.c,v $
17 * Revision 1.44 2005/03/23 10:24:56 sebastiani
18 * SMH_GroundMode() completed implementation
19 *
20 * Revision 1.43 2005/03/20 18:26:44 sebastiani
21 * *** empty log message ***
22 *
23 * Revision 1.42 2005/03/13 18:14:58 sebastiani
24 * log comment fixed
25 *
26 * Revision 1.41 2005/03/06 14:54:46 sebastiani
27 * version running on 06 03 2005
28 *
29 * Revision 1.40 2005/02/22 18:09:25 sebastiani
30 * various bugfixes
31 *
32 * Revision 1.39 2005/02/21 08:58:29 sebastiani
33 * all log comments completed
34 *
35 * Revision 1.38 2005/02/19 10:19:39 sebastiani
36 * ALM_S4_CALIB_00_HARD,ALM_S4_CALIB_00_SOFT,ALM_S4_128TRIGGER_0 added
37 *
38 * Revision 1.37 2004/12/02 10:43:38 sebastiani
39 * fix AC
40 * fix CAL
41 * fix HK BUFTYPE
42 *
43 * Revision 1.36 2004/10/18 14:11:37 faber
44 * *** empty log message ***
45 *
46 * Revision 1.35 2004/09/28 15:36:25 sebastiani
47 * interrupt manager fix
48 *
49 * Revision 1.34 2004/09/22 09:55:23 sebastiani
50 * Fix Cal error handler bug
51 * fixed fecmd
52 * fix Alarmlog
53 * fix ND cmd to 3
54 *
55 * Revision 1.33 2004/09/17 15:01:00 faber
56 * LU_INFN_LOG flags fixing
57 *
58 * Revision 1.32 2004/09/09 14:52:55 sebastiani
59 * using PreparePage to send cmd to idaq/FE
60 * added some test
61 * added trigger param
62 * added/tested Force Send KHB_to_FE
63 * added/tested Send Cmd to IDAQ/FE
64 *
65 * Revision 1.31 2004/08/26 16:54:34 sebastiani
66 * version work fine
67 *
68 * Revision 1.30 2004/08/05 16:19:07 sebastiani
69 * fix close run
70 * add cal handler error
71 * fix tmtc
72 * ok protocol betwen pm-rm-scm
73 *
74 * Revision 1.29 2004/08/04 13:25:21 sebastiani
75 * first fix allarm procedure
76 *
77 * Revision 1.28 2004/08/02 15:49:47 alfarano
78 * alarm handling , scm & pm communication rewrite
79 *
80 * Revision 1.27 2004/08/02 09:28:29 faber
81 * Stamp management into SMH_SetParam
82 * TS_PamManger TM_RMTest moved respectively into PM and RM as PM_MCMDTest and
83 * RM_MCMDTEst. TS_Test_INFN.c will be deleted soon.
84 *
85 * Revision 1.26 2004/06/01 16:41:19 sebastiani
86 * EventReceive ANY
87 *
88 * Revision 1.25 2004/05/12 14:46:14 faber
89 * *** empty log message ***
90 *
91 * Revision 1.24 2004/04/23 14:16:58 tassa
92 * - change for donwloading procedures vrl handling
93 * - fix little bug in error case in DoRun
94 * - add ForceBreakPoint selectmode
95 *
96 * Revision 1.23 2004/03/11 14:53:05 faber
97 * HK_SendFEComemand renamed HK_KHB_Cmd2FE
98 *
99 * Revision 1.22 2004/03/08 15:49:09 alfarano
100 * improved handling functions for FE
101 *
102 * Revision 1.21 2004/03/03 11:25:59 tassa
103 * send idaqmcmd tested
104 *
105 * Revision 1.20 2004/03/01 17:46:45 tassa
106 * Non testato:
107 * TMTC sample e STORE in SCM
108 * send FECMD bloccante
109 * aggiunto MCMD to send FECMD
110 *
111 * Revision 1.19 2004/02/26 11:27:30 faber
112 * PARAMGEN for array/tab/direct idaq command introduced. first implementation. never tested
113 *
114 * Revision 1.18 2004/02/17 12:34:51 faber
115 * USERDATA2BUF USERDATA2{ARR,TAB} introduced with CRC.
116 * Never tested.
117 * Some adjustment in Logging in SHM module
118 *
119 * Revision 1.17 2004/01/22 10:10:25 faber
120 * *** empty log message ***
121 *
122 * Revision 1.16 2004/01/12 17:51:28 tassa
123 * manca solo la parte di invio e ricezione sulla/dalla IDAQ
124 *
125 * Revision 1.15 2004/01/09 17:29:34 tassa
126 * add the force command queue procedure
127 *
128 * Revision 1.14 2003/12/03 14:36:51 faber
129 * more action definition about mcmd (setmode/purge_trd).
130 * SSt word better defined
131 *
132 * Revision 1.13 2003/12/02 11:05:33 faber
133 * first CCA info for IPMs
134 * first technologica model's SELECT MODE management
135 *
136 * Revision 1.12 2003/12/01 15:44:09 faber
137 * Donwlink duration field is a 16 bit word, not 32 (only HSB)
138 *
139 * Revision 1.11 2003/11/28 14:42:48 faber
140 * *** empty log message ***
141 *
142 * Revision 1.10 2003/10/21 13:17:44 sebastiani
143 * more sofisticated tests (via test_debug SOM)
144 *
145 * Revision 1.9 2003/10/17 09:55:08 sebastiani
146 * SMH_TEST_DEBUG introduced as submode
147 *
148 * Revision 1.8 2003/09/22 09:59:35 faber
149 * new select mode definitions
150 *
151 * Revision 1.7 2003/09/12 10:57:41 faber
152 * development in proress (Working schedule module)
153 *
154 * Revision 1.6 2003/09/10 16:15:52 faber
155 * PRH_EXTERN_VAR(XX_LOGMASK) removed (not needed any more)
156 *
157 * Revision 1.5 2003/09/10 11:55:07 faber
158 * LU_MASK introduced. Log mask for module is now an unique array (PRH_ARR_LOG_MASK) indexed by __FILEID__
159 *
160 * Revision 1.4 2003/09/10 10:32:37 faber
161 * Large implementation of PamManager/RunManager Pam Sowfare. (compiled,never run)
162 *
163 * Revision 1.3 2003/08/22 07:57:09 sebastiani
164 * *** empty log message ***
165 *
166 * Revision 1.2 2003/08/07 08:44:40 wizard
167 * *** empty log message ***
168 *
169 * Revision 1.1.1.1 2003/08/04 09:40:22 sebastiani
170 * Imported sources laben rel. 19.06.2003 integrated with pam2
171 *
172 * Revision 1.7 2003/07/18 13:35:10 sebastiani
173 * PRH_ParamHandler_INFN_int.c sobstitues PRH_ParamHandler_INFN_*.*
174 * introduced DAQTEST directive
175 *
176 * Revision 1.6 2003/07/17 11:15:52 sebastiani
177 * idaq manager
178 * new print for logging in minicom
179 *
180 * Revision 1.5 2003/07/03 12:39:29 sebastiani
181 * *** empty log message ***
182 *
183 * Revision 1.4 2003/06/20 13:42:29 sebastiani
184 * Pam/Run manager first prototype release
185 *
186 * Revision 1.3 2003/06/18 16:53:20 sebastiani
187 * Pam/Run Manager development update. ExpSeq sequence is receiven from the RunManager (simulator mode)
188 *
189 * Revision 1.2 2003/06/12 15:32:31 sebastiani
190 * first chenge mode code. FAMILY/TYPE support for the mode (4MSB/4LSB)
191 *
192 * Revision 1.1 2003/06/09 16:41:12 sebastiani
193 * First selectmode MCMD handler scheleton.
194 *
195 * Revision 1.1 2003/06/05 10:31:12 wizard
196 * added PamMnager (empty skeleton),and other main dirs on INFN
197 *
198 *
199 *****************************************************************************/
200
201
202 /*============================= Include File ================================*/
203
204 #include <src/INFN/LU_SourceFileID_INFN.h>
205 #define __FILEID__ _SMH_SelectModeHandler_INFN__c
206 #include <src/INFN/PRH_ParamHandler_INFN.h>
207 #include <src/INFN/LU_LogUtility_INFN.h>
208 #include <src/INFN/PRH_ParamHandler_INFN_auto.h>
209 LU_DECL_MASK();
210
211
212 #include <src/INFN/SMH_SelectModeHandler_INFN.h>
213 #include <src/INFN/MH_ModeHandler_INFN.h>
214 #include <src/INFN/PM_PamManager_INFN.h>
215 #include <src/INFN/RM_RunManager_INFN.h>
216 #include <src/BasicSW/RTEMSInterface/OS_rtems_p.h>
217 #include <src/INFN/HK_Manager_INFN.h>
218 #include <src/ModeManager/ModeCoordinator/MC_ModeCoordinator_p.h>
219
220 #ifdef TEST_I
221 //#include <src/INFN/TS_Test_INFN.h>
222 #endif
223
224 /*============================ Global define ================================*/
225
226
227 #define SMH_EXP_SEQ_OFFSET (OFFSET_HEADER+2)
228
229 /*============================== global types ==============================*/
230
231
232 /*****************************************************************************/
233 /*=========================== Structure define ==============================*/
234
235
236 /*****************************************************************************/
237 /*============================ Enumerate define =============================*/
238
239
240 /*****************************************************************************/
241
242
243 status_code SMH_Init() {
244 return SUCCESSFUL;
245 }
246
247 status_code SMH_Send_IDAQCMD(MA_HEADER_MCMD *headerMcmd) {
248 status_code s;
249 BYTE buf_no,tmp;
250 HB_BUF bufid;
251 UINT16 crc;
252 volatile BYTE *CurPtr;
253 if(headerMcmd->Length != SMH_SELECTMODEBODY_OFFSET + 3)
254 return CM_RC_BAD_MCMD_LEN;
255 CurPtr = (BYTE*)SMH_GETPTR_SELECTMODEBODY(headerMcmd->PtrMCMD);
256
257 CM_READ_BE_UINT8(CurPtr,buf_no);
258 CM_READ_BE_UINT16(CurPtr,crc,tmp);
259 /*@LOG Send IDAQ Command - buf_no */
260 LU_INFN_LOG(LU_DEBUG_TRACE,LU_MASK(__FILEID__),__FILEID__,__LINE__,buf_no);
261 /*@LOG Send IDAQ Command - crc */
262 LU_INFN_LOG(LU_DEBUG_TRACE,LU_MASK(__FILEID__),__FILEID__,__LINE__,crc);
263 if(buf_no >= HB_USERDATA_NO)
264 return CM_RC_INVALID_BUFFER_ID;
265 bufid=(HB_BUF)(buf_no+HB_USERDATA0);
266 s=RM_Set_ForceIdaqCmd(bufid,crc);
267 if(s==CM_RC_SUCCESSFUL)
268 MH_SetGOM(MH_GOM_FORCE_IDAQCMD);
269 return s;
270 }
271
272 status_code SMH_Send_FECMD(MA_HEADER_MCMD *headerMcmd) {
273 status_code s;
274 BYTE buf_no,eto,ato,tmp,fe;
275 HB_BUF bufid;
276 UINT16 crc;
277 volatile BYTE *CurPtr;
278 if(headerMcmd->Length != SMH_SELECTMODEBODY_OFFSET + 4)
279 return CM_RC_BAD_MCMD_LEN;
280 CurPtr = (BYTE*)SMH_GETPTR_SELECTMODEBODY(headerMcmd->PtrMCMD);
281
282 CM_READ_BE_UINT8(CurPtr,buf_no);
283 CM_READ_BE_UINT16(CurPtr,crc,tmp);
284 CM_READ_BE_UINT8(CurPtr,fe);
285 CM_READ_BE_UINT8(CurPtr,eto);
286 CM_READ_BE_UINT8(CurPtr,ato);
287
288 /*@LOG Send_FECMD: buf_no */
289 LU_INFN_LOG(LU_DEBUG_TRACE,LU_MASK(__FILEID__),__FILEID__,__LINE__,buf_no);
290 /*@LOG Send_FECMD: crc */
291 LU_INFN_LOG(LU_DEBUG_TRACE,LU_MASK(__FILEID__),__FILEID__,__LINE__,crc);
292 /*@LOG Send_FECMD: fe */
293 LU_INFN_LOG(LU_DEBUG_TRACE,LU_MASK(__FILEID__),__FILEID__,__LINE__,fe);
294 /*@LOG Send_FECMD: eto */
295 LU_INFN_LOG(LU_DEBUG_TRACE,LU_MASK(__FILEID__),__FILEID__,__LINE__,eto);
296 /*@LOG Send_FECMD: ato */
297 LU_INFN_LOG(LU_DEBUG_TRACE,LU_MASK(__FILEID__),__FILEID__,__LINE__,ato);
298
299 if(buf_no >= HB_USERDATA_NO)
300 return CM_RC_INVALID_BUFFER_ID;
301 bufid=(HB_BUF)(buf_no+HB_USERDATA0);
302 s=RM_Set_ForceFeCmd(bufid,crc,eto,ato,(DAQ_FE)fe);
303 if(s==CM_RC_SUCCESSFUL)
304 MH_SetGOM(MH_GOM_FORCE_IDAQCMD);
305 return s;
306 }
307
308
309 status_code SMH_Send_TC(MA_HEADER_MCMD *headerMcmd) {
310 status_code s;
311 BYTE tmp;
312 HB_BUF bufid;
313 UINT16 tc;
314 volatile BYTE *CurPtr;
315 if(headerMcmd->Length != SMH_SELECTMODEBODY_OFFSET + 2 /* words */ + 1 /* crc */ )
316 return CM_RC_BAD_MCMD_LEN;
317 CurPtr = (BYTE*)SMH_GETPTR_SELECTMODEBODY(headerMcmd->PtrMCMD);
318
319 CM_READ_BE_UINT16(CurPtr,tc,tmp);
320 /*@LOG Send_TC: tc */
321 LU_INFN_LOG(LU_DEBUG_TRACE,LU_MASK(__FILEID__),__FILEID__,__LINE__,tc);
322
323 if(tc>=TM_MAX_TELECOMMAND)
324 /*@LOG Error TC id: out of range */
325 LU_INFN_LOG(LU_DEBUG_TRACE,LU_MASK(__FILEID__),__FILEID__,__LINE__,tc);
326
327 s=HK_SendTC(tc,TM_HL_DUMMYVALUE);
328 if(s!=CM_RC_SUCCESSFUL) {
329 /*@LOG Error sending TC - status */
330 LU_INFN_LOG(LU_DEBUG_TRACE,LU_MASK(__FILEID__),__FILEID__,__LINE__,s);
331
332 }
333 return s;
334 }
335
336
337 /*
338 SMH_Send_KHBFECMD
339 */
340
341 status_code SMH_Send_KHBFECMD(MA_HEADER_MCMD *headerMcmd) {
342 BYTE link;
343 BYTE comlen;
344 BYTE expected;
345 UINT16 combuf[16];
346 UINT16 outbuf[16];
347 UINT32 timeout;
348 UINT16 value;
349 BYTE *CurPtr;
350 BYTE tmp;
351 status_code status;
352 UINT32 i;
353
354 CurPtr = (BYTE*)SMH_GETPTR_SELECTMODEBODY(headerMcmd->PtrMCMD);
355
356 CM_READ_BE_UINT16(CurPtr,link,tmp);
357 CM_READ_BE_UINT16(CurPtr,expected,tmp);
358 CM_READ_BE_UINT16(CurPtr,timeout,tmp);
359 CM_READ_BE_UINT16(CurPtr,comlen,tmp);
360
361 for(i=0;i<comlen;i++){
362 CM_READ_BE_UINT16(CurPtr,value,tmp);
363 combuf[i]=value;
364 }
365 status = HK_KHB_Cmd2FE(link,comlen,expected,combuf,outbuf,timeout);
366 // aggiungere eventuale scrittura in MM o altri risorse di log...
367 if(status == CM_RC_SUCCESSFUL) {
368 /*@LOG Send_KHBFECMD: expected */
369 LU_INFN_LOG(LU_DEBUG_TRACE,LU_MASK(__FILEID__),__FILEID__,__LINE__,expected);
370 for(i=0;i<expected;i++){
371 /*@LOG Send_KHBFECMD: outbuf[i] */
372 LU_INFN_LOG(LU_DEBUG_TRACE,LU_MASK(__FILEID__),__FILEID__,__LINE__,outbuf[i]);
373 }
374 }
375 return (status);
376 }
377
378
379 status_code SMH_GroundMode(BOOL calibrate) {
380 status_code status;
381 PRH_VAR_PULSER_ACTION=2;
382 PRH_VAR_TRIGGER_MODE_A=11;
383 PRH_VAR_TRIGGER_MODE_B=11;
384 PRH_VAR_AUTO_RM_MODE=1;
385 PRH_VAR_AUTO_SCM_MODE=1;
386 if(calibrate)
387 PM_ActionForTheAscendingNode();
388 status=PWR_SendTC(TM_PULSER_025);
389 /*@LOG SMH_GroundMode: Set Pulser 0.25 - status */
390 LU_INFN_LOG (LU_CRITICAL|LU_HA, LU_MASK(__FILEID__), __FILEID__, __LINE__,status);
391 PM_SendCommand(PM_FORCE_RUNNING);
392 }
393
394 status_code SMH_MCMDSelectMode(MA_HEADER_MCMD* headerMcmd) {
395 status_code status=SUCCESSFUL;
396 unsigned int code;
397 unsigned short *test,test_code,test_value1,test_value2,test_value3,test_value4;
398 unsigned short* pMcmdInfo;
399 unsigned int mode;
400 unsigned int fam,type;
401 MsgTsk SndMsg;
402 mode = SMH_GetMCMDMode(headerMcmd);
403
404 switch(fam=SMH_INFN_SELECTMODE_GET_FAMILY(mode)){
405 case SMH_FAMILY_SUBMODE:
406 status=MH_SetModeFromMCMD(mode,headerMcmd);
407 if(status != CM_RC_SUCCESSFUL)
408 /*@LOG SMH_FAMILY_SUBMODE error - status */
409 LU_INFN_LOG(LU_CRITICAL|LU_HA,LU_MASK(__FILEID__),__FILEID__,__LINE__,status);
410 break;
411 case SMH_FAMILY_SETPARAM:
412 status=PRH_SetParam(mode,headerMcmd);
413 if(status != CM_RC_SUCCESSFUL)
414 /*@LOG SMH_FAMILY_SETPARAM error - status */
415 LU_INFN_LOG(LU_CRITICAL|LU_HA,LU_MASK(__FILEID__),__FILEID__,__LINE__,status);
416 break;
417 case SMH_FAMILY_IDAQCMD:
418 switch(type=SMH_INFN_SELECTMODE_GET_TYPE(mode)) {
419 case SMH_IDAQCMD_FROM_USERDATA:
420 status=SMH_Send_IDAQCMD(headerMcmd);
421 if(status != CM_RC_SUCCESSFUL)
422 /*@LOG SMH_IDAQCMD_FROM_USERDATA error - status */
423 LU_INFN_LOG(LU_DEBUG_TRACE,LU_MASK(__FILEID__),__FILEID__,__LINE__,status);
424 break;
425 case SMH_FECMD_FROM_USERDATA:
426 status=SMH_Send_FECMD(headerMcmd);
427 if(status != CM_RC_SUCCESSFUL)
428 /*@LOG SMH_FECMD_FROM_USERDATA: error - status */
429 LU_INFN_LOG(LU_DEBUG_TRACE|LU_HA,LU_MASK(__FILEID__),__FILEID__,__LINE__,status);
430 break;
431 default:
432 /*@LOG unrecognized submode of FAMILY_IDAQMCD in select mode mcmd: - type */
433 LU_INFN_LOG(LU_WARNING|LU_HA,LU_MASK(__FILEID__),__FILEID__,__LINE__,type);
434 break;
435 }
436 break;
437 case SMH_FAMILY_KHBFECMD:
438 status=SMH_Send_KHBFECMD(headerMcmd);
439 if(status != CM_RC_SUCCESSFUL)
440 /*@LOG SMH_FAMILY_KHBFECMD: - status */
441 LU_INFN_LOG(LU_CRITICAL|LU_HA,LU_MASK(__FILEID__),__FILEID__,__LINE__,status);
442 break;
443 case SMH_FAMILY_SENDTC:
444 switch(type=SMH_INFN_SELECTMODE_GET_TYPE(mode)) {
445 case SMH_SEND_TC:
446 status=SMH_Send_TC(headerMcmd);
447 if(status != CM_RC_SUCCESSFUL)
448 /*@LOG SMH_SEND_TC error - status */
449 LU_INFN_LOG(LU_DEBUG_TRACE,LU_MASK(__FILEID__),__FILEID__,__LINE__,status);
450 break;
451 default:
452 /*@LOG unrecognized submode of FAMILY_SENDTC in select mode mcmd: - type */
453 LU_INFN_LOG(LU_WARNING|LU_HA,LU_MASK(__FILEID__),__FILEID__,__LINE__,type);
454 break;
455 }
456
457 break;
458 case SMH_FAMILY_START:
459 switch(type=SMH_INFN_SELECTMODE_GET_TYPE(mode)) {
460 case SMH_START_NORMAL_MODE:
461 // PM_SetGom(PM_CPU_START_UP,SCM_NO_ACTION);
462 OS_piCancelTimer_INFN(PM_FORCERUNNING_TIM);
463 PM_SendCommand(PM_FORCE_RUNNING);
464 break;
465 case SMH_START_CPU_START_UP :
466 PM_SetGom(PM_CPU_START_UP,SCM_POWER_ON);
467 /*@LOG SMH_START_CPU_START_UP received - type */
468 LU_INFN_LOG(LU_NORMAL_TRACE|LU_HA,LU_MASK(__FILEID__),__FILEID__,__LINE__,type);
469 break;
470 default:
471 LU_INFN_LOG(LU_INTERNAL|LU_HA,LU_MASK(__FILEID__),__FILEID__,__LINE__,type);
472 break;
473 }
474 break;
475 case SMH_FAMILY_SHUTDOWN:
476 switch(type=SMH_INFN_SELECTMODE_GET_TYPE(mode)) {
477 case SMH_SHUTDOWN_PREPARE:
478 /* TBD: */
479 status=SMH_PrepareShutDown();
480 /*@LOG SMH_SHUTDOWN_PREPARE : - status */
481 LU_INFN_LOG(LU_CRITICAL|LU_HA,LU_MASK(__FILEID__),__FILEID__,__LINE__,status);
482 break;
483 case SMH_SHUTDOWN_DO:
484 status=SMH_DoShutDown();
485 /*@LOG SMH_SHUTDOWN_DO : - status */
486 LU_INFN_LOG(LU_CRITICAL|LU_HA,LU_MASK(__FILEID__),__FILEID__,__LINE__,status);
487 break;
488 default:
489 LU_INFN_LOG(LU_INTERNAL|LU_HA,LU_MASK(__FILEID__),__FILEID__,__LINE__,type);
490 break;
491 }
492 break;
493 case SMH_FAMILY_TEST:
494 switch(type=SMH_INFN_SELECTMODE_GET_TYPE(mode)) {
495 case SMH_TEST_LOGSTATUS:
496 PM_LogStatus();
497 break;
498 case SMH_TEST_BREAKPOINT:
499 #ifdef TEST_I
500 LU_INFN_LOG(LU_DEBUG_TRACE,LU_MASK(__FILEID__),__FILEID__,__LINE__,type);
501 PM_FORCE_BREAKPOINT();
502 #endif
503 break;
504 case SMH_TEST_COMPLEX_HARDWARE:
505
506 break;
507 case SMH_TEST_DEBUG:
508 #ifdef DEBUG
509 test = SMH_GETPTR_BODYAREA(headerMcmd->PtrMCMD);
510 test += 2;
511 test_code = *test;
512 test++;
513 test_value1 = *test;
514 test++;
515 test_value2 = *test;
516 test++;
517 test_value3 = *test;
518 test++;
519 test_value4 = *test;
520 PM_MCMDTest(test_code,test_value1,test_value2,test_value3,test_value4);
521 #endif // DEBUG
522 break;
523 default:
524 LU_INFN_LOG(LU_INTERNAL|LU_HA,LU_MASK(__FILEID__),__FILEID__,__LINE__,type);
525 break;
526 }
527 break;
528
529 #define SMH_AUTO_MODE(v) (PRH_VAR_AUTO_RM_MODE=(v3); PRH_VAR_AUTO_SCM_MODE=(v))
530
531 case SMH_FAMILY_TECHNOLOGICAL:
532 OS_piCancelTimer_INFN(PM_FORCERUNNING_TIM);
533 switch(type=SMH_INFN_SELECTMODE_GET_TYPE(mode)) {
534 case SMH_TM_START_NO_TRD_PURGE:
535 /* force POWER_ON to return Stop&Wait */
536 PRH_VAR_PWR_VOLTAGE_N_ATTEMPT=0;
537 break;
538 case SMH_TM_START_TRD_PRUGE:
539
540 break;
541 case SMH_TM_PREPARE_P_AND_D:
542
543 break;
544 case SMH_TM_NOMINAL_ACQ:
545 case SMH_TM_SPARE_ELECTRONIC:
546 SMH_GroundMode(TRUE);
547 break;
548 case SMH_TM_PREPARE_CALIBRATE:
549 SMH_GroundMode(FALSE);
550 break;
551 case SMH_TM_NOMINAL_ACQ_AFTER_DOWNLINK:
552 case SMH_TM_NOMINAL_ACQ_AFTER_EXE_MEM_CONF:
553 case SMH_TM_NOMINAL_ACQ_AFTER_CALIBRATE:
554 break;
555 case SMH_TM_NOMINAL_ACQ_AFTER_BITE:
556 case SMH_TM_IMITATING_MODE_PAM_MEM_1:
557 case SMH_TM_IMITATING_MODE_PAM_MEM_2:
558 break;
559 case SMH_TM_PREPARE_BITE:
560 case SMH_TM_PRE_BITE:
561 case SMH_TM_PREPARE_BITE_JOIN_OPS:
562 case SMH_TM_PREPARE_MEM_CONF:
563 break;
564 default:
565 LU_INFN_LOG(LU_WARNING|LU_HA,LU_MASK(__FILEID__),__FILEID__,__LINE__,type);
566 break;
567 }
568 break;
569 default:
570 LU_INFN_LOG(LU_WARNING|LU_HA,LU_MASK(__FILEID__),__FILEID__,__LINE__,fam);
571 break;
572 }
573
574 PM_RemoveMCMDInPartition(headerMcmd->PtrMCMD);
575 return (status);
576 }
577
578 //BYTE SMH_GetMCMDMode(MA_HEADER_MCMD* headerMcmd){
579 BYTE SMH_GetMCMDMode(MA_HEADER_MCMD* headerMcmd){
580 BYTE b;
581 b = (BYTE)*(((unsigned short*)headerMcmd->PtrMCMD)+OFFSET_HEADER);
582 return b;
583 }
584
585 status_code SMH_PrepareShutDown() {
586 status_code s;
587
588 s = PRH_var_write2eeprom(PRH_EEPROM_CURRENT,PRH_VAR_DOWNLOAD_HEADER_IDX);
589 if (s)
590 /*@LOG Error updating DOWNLOAD_HEADER at end of download - status */
591 LU_INFN_LOG(LU_INTERNAL|LU_HA,LU_MASK(__FILEID__),__FILEID__,__LINE__,s);
592
593 s=MH_SetGOM(MH_GOM_MAINTENANCE);
594 return s;
595 /* TBD: write params 2 eeprom */
596 }
597
598 status_code SMH_DoShutDown() {
599 status_code s;
600
601
602 s=PRH_WriteEEPROMBootinfo(PRH_BOOTINFO_SHUTDOWN);
603 if(s!=CM_RC_SUCCESSFUL)
604 /*@LOG Do Shutdown : error writing EEPROM info - status */
605 LU_INFN_LOG(LU_FATAL|LU_HA,LU_MASK(__FILEID__),__FILEID__,__LINE__,s);
606
607 PM_SetGom(PM_STOP_AND_WAIT,SCM_POWEROFFSHUTDOWN);
608 }

  ViewVC Help
Powered by ViewVC 1.1.23