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

Annotation of /quicklook/dataToXML/Data/compilationInfo/src/INFN/SMH_SelectModeHandler_INFN.c

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1.1 - (hide annotations) (download)
Tue Apr 25 09:00:20 2006 UTC (19 years, 2 months ago) by kusanagi
Branch point for: MAIN
File MIME type: text/plain
Initial revision

1 kusanagi 1.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