/[PAMELA software]/quicklook/dataToXML/Data/compilationInfo/src/TestUtility/Test/TS_Test_p.c
ViewVC logotype

Annotation of /quicklook/dataToXML/Data/compilationInfo/src/TestUtility/Test/TS_Test_p.c

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1.1.1.1 - (hide annotations) (download) (vendor branch)
Tue Apr 25 09:00:21 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 kusanagi 1.1 /*****************************************************************************/
2     /* Module : TestUtility */
3     /* C.I. No. : */
4     /* Revision : */
5     /* Date : */
6     /* Belonging to : */
7     /* : */
8     /* File Name : TS_Test_p.c */
9     /* Program Type : */
10     /* Sub-modules : */
11     /* */
12     /*****************************************************************************/
13     /* S W D e v e l o p m e n t E n v i r o n m e n t */
14     /* */
15     /* Host system : */
16     /* SW Compiler : */
17     /* Author */
18     /* : */
19     /*****************************************************************************/
20     /* U p d a t i n g */
21     /* */
22     /* Revision : */
23     /* */
24     /* */
25     /*****************************************************************************/
26    
27    
28     /*============================= Include File ================================*/
29    
30     #include <src/INFN/LU_SourceFileID_INFN.h>
31     #define __FILEID__ _TS_Test_INFN__c
32     #include <src/INFN/PRH_ParamHandler_INFN_auto.h>
33     #include <src/INFN/PRH_ParamHandler_INFN.h>
34     #include <src/INFN/LU_LogUtility_INFN.h>
35    
36     LU_DECL_MASK();
37    
38    
39     #include <src/TestUtility/Test/TS_Test_p.h>
40     #include <src/ModeManager/ModeCoordinator/MC_ModeCoordinator_p.h>
41     #include <src/FileManager/MMSUManager/FT_MMSUManager_p.h>
42     #include <src/FileManager/FileSystem/FS_FileSystem_p.h>
43     #include <src/MCMDManager/MCMDDispatcher/MD_MCMDDispatcher_p.h>
44     #include <src/MCMDManager/MCMDArea/MA_MCMDArea_p.h>
45     #include <src/TM_TCManager/TMTCManager/TM_TMTCManager_p.h>
46     #include <src/SRAMManager/SRAMPageManager/SM_SRAMPageManager_p.h>
47     #include <src/SRAMManager/SRAMPageManager/SM_SRAMPageManager_op.h>
48     #include <src/HKManager/HistoryArea/HA_HistoryArea_p.h>
49    
50    
51     #include <src/INFN/LU_SourceFileID_INFN.h>
52     /*==================================== define ===============================*/
53    
54     #define DISABLE 0
55     #define ENABLE 1
56     #define LENGTH_OUT_CMDS 0x0100
57    
58     #define BITE_FILLER 0x0204
59    
60     #define HA_EVENT_00 0
61     #define HA_EVENT_01 1
62     #define HA_EVENT_02 2
63     #define HA_EVENT_03 3
64     #define HA_EVENT_04 4
65     #define HA_EVENT_05 5
66     #define HA_EVENT_06 6
67     #define HA_EVENT_07 7
68     #define HA_EVENT_08 8
69     #define HA_EVENT_09 9
70     #define HA_EVENT_10 10
71     #define HA_EVENT_11 11
72     #define HA_EVENT_12 12
73     #define HA_EVENT_13 13
74     #define HA_EVENT_14 14
75     #define HA_EVENT_15 15
76    
77     typedef unsigned char UBYTE;
78     typedef unsigned short int UWORD;
79     typedef unsigned long int UDWORD;
80    
81     static unsigned int teststate;
82     static unsigned int pkts;
83     MA_HEADER_MCMD McMd;
84     static MsgTsk MaintMsg;
85     static MsgTsk ActiveMsg;
86     static MsgTsk TestMsg;
87     static MsgTsk CalMsg;
88     static MsgTsk ExpMsg;
89    
90     /*================================ Prototype ================================*/
91    
92    
93     void TS_TmTc(void);
94    
95     /*============================== Local Variables ============================*/
96    
97     static unsigned int TmValue[85];
98     static unsigned int val;
99     static unsigned int sensore;
100    
101     /* array for test the memory load output */
102     static TM_TC_ML TmMemoryLoad[16];
103    
104     /*****************************************************************************/
105    
106     /*============= S W _ T E S T I N T E R N A L F U N C T I O N ===========*/
107    
108     /*****************************************************************************/
109     /* prototype
110     *
111     *
112     * Description
113     *
114     *
115     * Input parameters:
116     *
117     *
118     *
119     * Output parameters: rtems_status_code
120     *
121     */
122     /*****************************************************************************/
123    
124     status_code TS_piTestInit (void)
125     {
126     status_code status;
127     unsigned int OldPriority;
128     unsigned int transiz;
129     unsigned char* pRc;
130    
131     status =SUCCESSFUL;
132     status |=OS_piTaskReady(TS_TASK,TS_tkTest);
133     status |=OS_piTaskPriority(TS_TASK,20,&OldPriority);
134     return (status);
135     }
136    
137    
138     /*****************************************************************************/
139     /* TS_tkTest
140     *
141     *
142     * Input parameters: NONE
143     *
144     * Output parameters: NONE
145     *
146     */
147     /*****************************************************************************/
148    
149     task TS_tkTest (task_argument unused)
150     {
151     status_code status;
152     unsigned int MsgSize;
153     unsigned int counter;
154     unsigned int level;
155     unsigned int i;
156     unsigned int length;
157     MsgTsk RxMsg;
158     MsgTsk SndMsg;
159    
160    
161     volatile unsigned short confStatRegVal[100];
162     unsigned char buf[100];
163    
164    
165     SD_DAQ_WRESULT pageInfo;
166     unsigned int loop;
167     unsigned int pageCounter;
168     unsigned int tst_value;
169    
170     counter =1;
171    
172     /*
173     SndMsg.Code =TS_TM_TC;
174     SndMsg.LlInfo =0;
175     status =TS_piSndMsgTest (&SndMsg);
176     */
177    
178     length = 16;
179     for (i=0; i<length; i++)
180     {
181     TmMemoryLoad[i].Code = 0x19; /* or 0x1a for ML 2 */
182     TmMemoryLoad[i].Value = (i*0x1234)&0xFFFF;
183     }
184    
185     val = 1;
186     sensore = TM_CC_DIAG_ACQ_1;
187     while( FOREVER )
188     {
189     // Check mailbox queue
190     RxMsg.Code =NULL_MSG_TS;
191     if ((status =OS_piMsgQueueReceive (TS_MAILBOX,(void*)&RxMsg,
192     &MsgSize,WAIT, NO_TIMEOUT)) == SUCCESSFUL)
193     {
194     switch (RxMsg.Code)
195     {
196     case TS_TM_TC:
197     while( counter )
198     {
199     TS_TmTc();
200     counter--;
201     }
202     break;
203    
204     case TS_GO_SELECT_MODE:
205     {
206     unsigned int timetagFlag;
207     unsigned int Mode;
208     unsigned int CurrentState;
209     unsigned int cnt;
210     unsigned char pippo2[LENGTH_OUT_CMDS];
211     MA_HEADER_MCMD* PtrMcmd;
212    
213     PtrMcmd = (MA_HEADER_MCMD*)RxMsg.Info;
214     /* Delete MCMD from partition */
215     Mode =(unsigned int)*(((unsigned short*)PtrMcmd->PtrMCMD)+OFFSET_HEADER);
216     Mode &= 0xFF;
217     timetagFlag =( *(((unsigned short*)PtrMcmd->PtrMCMD)+1)&TIMETAG_MASK ) ?
218     TIMETAG_MCMD : IMMEDIATE_MCMD;
219     MA_piDelBufferMCMD(PtrMcmd->PtrMCMD,timetagFlag);
220     HA_piLogHistoryEntry2 (PtrMcmd->Type,status);
221    
222     pippo2[0x00]=0xFA;
223     pippo2[0x01]=0xFE;
224     pippo2[0x02]=0xDE;
225     pippo2[0x03]=0x1A;
226     pippo2[0x04]='O';
227     pippo2[0x05]='B';
228     pippo2[0x06]='T';
229     pippo2[0x07]='_';
230     pippo2[0x08]='C';
231     pippo2[0x09]='N';
232     pippo2[0x0A]='T';
233     pippo2[0x0B]=0x1E;
234     /* fill the body of the command data */
235     for (cnt = 0x0C; cnt < LENGTH_OUT_CMDS; pippo2[cnt++]=0xAA);
236     /* copy the data in the calibration page 2 (es) */
237     PM_pi_CopyToSRAM (SM_CALEXP2, pippo2, sizeof(pippo2));
238     /* select the calibration page 2 */
239     PM_pi_UseCalibrationPage (SM_CALEXP2);
240    
241     switch(Mode)
242     {
243     case 1 : //MM_INFN_SUBMODEA0
244     MC_piGetState(&CurrentState);
245     if(CurrentState != MC_MAINTENANCE_STATE)
246     MC_piSetState(MC_MAINTENANCE_STATE);
247     break;
248     case 2 : // MM_INFN_SUBMODEA1
249     MC_piGetState(&CurrentState);
250     if(CurrentState != MC_MAINTENANCE_STATE)
251     MC_piSetState(MC_MAINTENANCE_STATE);
252     break;
253     case 3 : // MM_INFN_SUBMODEA2:
254     MC_piGetState(&CurrentState);
255     if(CurrentState != MC_MAINTENANCE_STATE)
256     MC_piSetState(MC_MAINTENANCE_STATE);
257     break;
258     case 4 : // MM_INFN_SUBMODEB1:
259     MC_piGetState(&CurrentState);
260     if(CurrentState != MC_ACTIVE_STATE)
261     {
262     MC_piSetState(MC_ACTIVE_STATE);
263     }
264     FT_piChangeAcqMode(SM_EXP64/*it was SM_EXPERIMENT*/);
265     PM_pi_SetExpPktCpyFlag(FALSE);
266     break;
267     case 5 : // MM_INFN_SUBMODEB2:
268     MC_piGetState(&CurrentState);
269     if(CurrentState != MC_ACTIVE_STATE)
270     {
271     MC_piSetState(MC_ACTIVE_STATE);
272     }
273     FT_piChangeAcqMode(SM_EXP64);
274     PM_pi_SetExpPktCpyFlag(FALSE);
275     break;
276     case 6 : // MM_INFN_SUBMODEB3:
277     MC_piGetState(&CurrentState);
278     if(CurrentState != MC_ACTIVE_STATE)
279     {
280     MC_piSetState(MC_ACTIVE_STATE);
281     }
282     FT_piChangeAcqMode(SM_DAQSETUP);
283     break;
284     case 7 : // MM_INFN_SUBMODEB4:
285     MC_piGetState(&CurrentState);
286     if(CurrentState != MC_ACTIVE_STATE)
287     {
288     MC_piSetState(MC_ACTIVE_STATE);
289     FT_piChangeAcqMode(SM_DAQSETUP);
290     }
291     break;
292     case 8 : // TEST low level transfers (LABEN test mode)
293     TS_try(TS_TEST_SRAM);
294     break;
295     case 9 : // TEST Memory Module ON (LABEN test mode)
296     TS_try(TS_MEM_TEST);
297     break;
298     case 10 : // set acquisition freq in erc32 Memory to 1/10 (LABEN test mode)
299     MC_piGetState(&CurrentState);
300     if(CurrentState != MC_ACTIVE_STATE)
301     {
302     MC_piSetState(MC_ACTIVE_STATE);
303     }
304     FT_piChangeAcqMode(SM_EXP64/*it was SM_EXPERIMENT*/);
305     PM_pi_SetExpPktCpyFlag(FALSE);
306     break;
307     case 11 : // write data via PCMCIA (LABEN test mode)
308     TS_try(TS_WRITE_FILE);
309     break;
310     default :
311     break;
312     }
313     }
314     break;
315    
316     case TS_MEM_TEST:
317     {
318     FT_piModuleTest();
319     } break;
320     case TS_TEST_SRAM:
321     {
322     unsigned int patternIndex;
323     unsigned int patternIndexVerify;
324     unsigned int errors;
325     unsigned int pattern[TS_MAX_FIX_PATTERN] = {0x00000000,0x00000055,0x000000AA,0x000000FF};
326     unsigned int address;
327     unsigned int pageAddress;
328     unsigned int SRAMAddress;
329     unsigned int value;
330     unsigned int pageDim;
331     unsigned int lengthSRAM = 0x40000; /* 256kB */
332     unsigned int page;
333     unsigned int modAddress;
334     unsigned int cnt;
335     unsigned int repeat;
336     unsigned int timeOutCMD;
337     TI_TIME obt;
338     unsigned int numCharPrinted = 0;
339     static unsigned int bufTest[TS_ERROR_BUFFER_DIM];
340    
341    
342     /* packet counter for header */
343     cnt = 0;
344     /* number of errors find */
345     errors = 0;
346     /* current pattern index used for write pages */
347     patternIndex = 0;
348     /* current pattern index used for read pages */
349     patternIndexVerify = TS_MAX_PATTERN;
350    
351     for (repeat = 0; repeat < TS_NUM_OF_CYCLE; repeat++)
352     {
353     /* write 256Kb of SRAM with a fixed page size */
354     /* increase the page dimension */
355     for (pageDim = 0x0400; pageDim <= lengthSRAM; pageDim <<= 1 )
356     {
357     /* write a collection of pages */
358     for (page = 0; page < (lengthSRAM/pageDim); page++)
359     {
360     SD_piSetSRAMRWAddress(page*pageDim);
361    
362     /* Retrive OBT */
363     TI_piGetTimeInfo_ms(&obt);
364     /* write header */
365     SD_piWriteSRAM(PAM_HRD1);
366     SD_piWriteSRAM(PAM_HRD2);
367     SD_piWriteSRAM(PAM_HRD3);
368     SD_piWriteSRAM(PAM_HRD4);
369     /* Write the OBT */
370     SD_piWriteSRAM((BYTE)((obt>>24) & 0x000000FF));
371     SD_piWriteSRAM((BYTE)((obt>>16) & 0x000000FF));
372     SD_piWriteSRAM((BYTE)((obt>>8 ) & 0x000000FF));
373     SD_piWriteSRAM((BYTE)( obt & 0x000000FF));
374    
375     /* Write the packet counter */
376     SD_piWriteSRAM((BYTE)((cnt>>16) & 0x000000FF));
377     SD_piWriteSRAM((BYTE)((cnt>>8 ) & 0x000000FF));
378     SD_piWriteSRAM((BYTE)( cnt++ & 0x000000FF));
379     /* write packet id #2 */
380     SD_piWriteSRAM(PAM_HRD_PHY_EVENT);
381    
382     for (pageAddress = TS_PKT_HEADER_LENGTH; pageAddress < pageDim; pageAddress++)
383     {
384     /* write patterns in SRAM: 00, 55, AA, FF, Addresses */
385     if (patternIndex < TS_MAX_FIX_PATTERN)
386     SD_piWriteSRAM(pattern[patternIndex]);
387     else
388     SD_piWriteSRAM(pageAddress * 3);
389     }
390    
391     patternIndex++;
392     if (patternIndex >= TS_MAX_PATTERN)
393     patternIndex = 0;
394    
395     } /* for (page = 0;... */
396    
397     /* read SRAM */
398    
399     /* save the data in SRAM in to memory module */
400     FT_piSavePage(0, lengthSRAM -1, FS_HK);
401    
402     /* wait until the buffer on CMD I/F is empty */
403     timeOutCMD = 0;
404     while ((SD_piGetCMDCounterLeft() != 0) && (timeOutCMD < TS_TIMEOUT_CMD_LOOP))
405     {
406     OS_piTaskSuspend(1);
407     timeOutCMD++;
408     }
409    
410     /* send out the data in SRAM throgh CMD I/F */
411     FT_piSavePage(0, lengthSRAM -1, FS_CMD);
412    
413     for (SRAMAddress = 0; SRAMAddress < lengthSRAM; SRAMAddress++)
414     {
415    
416     /* evaluate the address into virtual page */
417     pageAddress = SRAMAddress % pageDim;
418     if (pageAddress == 0)
419     {
420     SD_piSetSRAMRWAddress(SRAMAddress);
421     patternIndexVerify++;
422     if (patternIndexVerify >= TS_MAX_PATTERN)
423     patternIndexVerify = 0;
424     }
425    
426     /* read a value from SRAM */
427     value = SD_piReadSRAM();
428    
429     /* skip the header check and verify the packet data */
430     if ((pageAddress >= TS_PKT_HEADER_LENGTH) &&
431     (numCharPrinted + TS_NEXT_REPORT_LENGTH < TS_ERROR_BUFFER_DIM))
432     {
433     if (patternIndexVerify < TS_MAX_FIX_PATTERN)
434     {
435     /* check fixed pattern */
436     if ((pattern[patternIndexVerify] & 0x000000FF) != value)
437     {
438     errors++;
439     address = SD_piGetSRAMRWAddress();
440     bufTest[numCharPrinted++] = address -1;
441     bufTest[numCharPrinted++] = value;
442     }
443     }
444     else
445     {
446     /* check variable pattern */
447     if (((SRAMAddress * 3) & 0x000000FF) != value)
448     {
449     errors++;
450     address = SD_piGetSRAMRWAddress();
451     bufTest[numCharPrinted++] = address -1;
452     bufTest[numCharPrinted++] = value;
453     }
454     }
455     }
456     }
457    
458     OS_piTaskSuspend(TS_TE_TIME_FOR_ACQUIRE_CMD);
459     sprintf(buf," Page number: %d - Wait for acquiring data", cnt);
460     TS_piWriteOnUART(buf);
461     } /* "for" that increase the page dimension */
462     } /* "for" that repeat the test n times for store 11.25 MB*/
463     TS_piWriteOnUART("Test Ended");
464     } break;
465    
466     case TS_WRITE_FILE:
467     {
468     static unsigned char data[TS_DATA_LENGTH];
469     unsigned int arrayIndex;
470     TI_TIME obt;
471    
472     data[0x00] = PAM_HRD1;
473     data[0x01] = PAM_HRD2;
474     data[0x02] = PAM_HRD3;
475     data[0x03] = PAM_HRD4;
476    
477     /* Retrive OBT */
478     TI_piGetTimeInfo_ms(&obt);
479    
480     /* Write the OBT */
481     data[0x04] = ((obt>>24) & 0x000000FF);
482     data[0x05] = ((obt>>16) & 0x000000FF);
483     data[0x06] = ((obt>>8 ) & 0x000000FF);
484     data[0x07] = ( obt & 0x000000FF);
485    
486     /* Write a fun counter */
487     data[0x08] = 'E';
488     data[0x09] = 'R';
489     data[0x0a] = 'C';
490    
491     data[0x0B] = PAM_HRD_PHY_EVENT;
492    
493     /* write a simple data body */
494     for (arrayIndex = TS_PKT_HEADER_LENGTH;
495     arrayIndex < TS_DATA_LENGTH;
496     data[arrayIndex++] = 0xAA);
497    
498     /* write the packet */
499     PM_pi_StorePacket (TS_DATA_LENGTH, (void*)data, FS_HK);
500    
501     }break;
502    
503     case 1010:
504     {
505     MsgTsk SndMsg;
506     TI_TIME Time_begin, Time_end;
507     int loop, delay, cmd;
508     void* p;
509     volatile unsigned short *pIR, *pCS;
510     unsigned int index;
511     unsigned short Format,
512     * pFormat;
513    
514     sprintf(buf,"Starting case 10 ");
515     puts(buf);
516    
517     status = TI_piGetTimeInfo_ms (&Time_begin);
518     sprintf(buf,"Time_begin=%ld", Time_begin);
519     puts(buf);
520     SndMsg.Code =TM_CYCLIC_ACQUISITION;
521     SndMsg.LlInfo =0;
522     //TM_piSndMsgTMTCManager (&SndMsg);
523     status = TI_piGetTimeInfo_ms (&Time_end);
524     sprintf(buf,"Time_end=%ld", Time_end);
525     puts(buf);
526    
527     sprintf(buf,"end case 10: \n");
528     puts(buf);
529     break;
530     }
531    
532     default:
533     break;
534     } // switch
535     } // if
536     } // while
537     }
538    
539     /*****************************************************************************/
540     /* TS_piSndMsgTest
541     *
542     *
543     * Input parameters: NONE
544     *
545     * Output parameters: NONE
546     *
547     */
548     /*****************************************************************************/
549    
550     status_code TS_piSndMsgTest (MsgTsk* SndMsg)
551     {
552     status_code status;
553    
554     status =OS_piMsgQueueSend(TS_MAILBOX,(void*)SndMsg,sizeof(MsgTsk));
555     return (status);
556     }
557    
558    
559    
560    
561     /*****************************************************************************/
562     /* TS_piPutLog
563     *
564     *
565     * Input parameters: NONE
566     *
567     * Output parameters: NONE
568     *
569     */
570     /*****************************************************************************/
571     status_code TS_piPutLog (MsgTsk* msg) {
572     UBYTE EntryType;
573     static unsigned char buf[100],str[100],str2[100];
574     unsigned int entry;
575     unsigned char code;
576     unsigned int time;
577     unsigned int rep1,rep2,rep3,line,fileid;
578    
579     #if 0
580     // console_outbyte_polled(0,msg->LlInfo*sizeof(UWORD));
581     //console_outbyte_polled(1,msg->LlInfo*sizeof(UWORD));
582     for(entry=0;entry<msg->LlInfo*sizeof(UWORD);entry++) {
583     console_outbyte_polled(0,msg->Info[entry]);
584     //console_outbyte_polled(1,msg->Info[entry]);
585     }
586     #endif
587    
588     /* ignore all the rest: */
589     //return SUCCESSFUL;
590    
591     EntryType = msg->Info[0] >> 4;
592    
593     entry =EntryType;
594     code =msg->Info[1];
595     time =(((UWORD*)(msg->Info))[1] << 16) + ((UWORD*)(msg->Info))[2];
596     rep1 =0;
597     rep2 =0;
598     rep3 =0;
599    
600     switch( EntryType ) {
601     case HA_EVENT_04:
602     sprintf(str,"");
603     break;
604     case HA_EVENT_00:
605     case HA_EVENT_01:
606     case HA_EVENT_02:
607     case HA_EVENT_03:
608     case HA_EVENT_06:
609     rep1 = ((UWORD*)(msg->Info))[3];
610     sprintf(str,"R1: %10d 0x%x",rep1,rep1);
611     break;
612    
613     case HA_EVENT_10:
614     rep1 = ((UWORD*)(msg->Info))[3];
615     rep2 = ((UWORD*)(msg->Info))[4];
616     sprintf(str,"R1: %10d %x - R2: %10d 0x%x ",rep1,rep1,rep2,rep2);
617     break;
618    
619     case HA_EVENT_05:
620     line = ((UWORD*)(msg->Info))[3];
621     rep2 = ((UWORD*)(msg->Info))[4];
622     rep1 = ((UWORD*)(msg->Info))[5];
623     rep3 = rep1 | (rep2<<16);
624     LU_GetSourceInfo(str2,code,line);
625     sprintf(str,"INFN: Info1: %9u 0x%08x [%s]",rep3,rep3,str2);
626     break;
627     case HA_EVENT_07:
628     case HA_EVENT_11:
629     rep1 = ((UWORD*)(msg->Info))[3];
630     rep2 = ((UWORD*)(msg->Info))[4];
631     rep3 = ((UWORD*)(msg->Info))[5];
632     sprintf(str,"R1: %10d 0x%x - R2: %10d 0x%x - R3: %10d %x ",rep1,rep1,rep2,rep2,rep3,rep3);
633     break;
634     default:
635     break;
636     }
637    
638     sprintf(buf,"%2d OBT: %5ld Code: %3d - %s",entry,time,code,str);
639    
640     TS_piWriteOnUART(buf);
641     return (SUCCESSFUL);
642    
643     }
644    
645    
646    
647    
648     /*****************************************************************************/
649    
650     /*============= S W _ T E S T I N T E R N A L F U N C T I O N ===========*/
651    
652     /*****************************************************************************/
653    
654     void TS_TmTc(void)
655     {
656     status_code status;
657     unsigned int value;
658    
659     /* Analogic parameters */
660     status =TM_piGetTMValue (TM_DEA_ANA_1 , TM_CURRENT_VAL, &TmValue[0x00]);
661     status =TM_piGetTMValue (TM_DEA_ANA_2 , TM_CURRENT_VAL, &TmValue[0x01]);
662     status =TM_piGetTMValue (TM_DEA_ANA_3 , TM_CURRENT_VAL, &TmValue[0x02]);
663     status =TM_piGetTMValue (TM_DEA_ANA_4 , TM_CURRENT_VAL, &TmValue[0x03]);
664     status =TM_piGetTMValue (TM_DEA_ANA_5 , TM_CURRENT_VAL, &TmValue[0x04]);
665     status =TM_piGetTMValue (TM_DEA_ANA_6 , TM_CURRENT_VAL, &TmValue[0x05]);
666     status =TM_piGetTMValue (TM_DEA_ANA_7 , TM_CURRENT_VAL, &TmValue[0x06]);
667     status =TM_piGetTMValue (TM_DEA_ANA_8 , TM_CURRENT_VAL, &TmValue[0x07]);
668     status =TM_piGetTMValue (TM_DEA_ANA_9 , TM_CURRENT_VAL, &TmValue[0x08]);
669     status =TM_piGetTMValue (TM_DEA_ANA_10 , TM_CURRENT_VAL, &TmValue[0x09]);
670     status =TM_piGetTMValue (TM_DEA_ANA_11 , TM_CURRENT_VAL, &TmValue[0x0A]);
671     status =TM_piGetTMValue (TM_DEA_ANA_12 , TM_CURRENT_VAL, &TmValue[0x0B]);
672     status =TM_piGetTMValue (TM_DEA_ANA_13 , TM_CURRENT_VAL, &TmValue[0x0C]);
673     status =TM_piGetTMValue (TM_DEA_ANA_14 , TM_CURRENT_VAL, &TmValue[0x0D]);
674     status =TM_piGetTMValue (TM_DEA_ANA_15 , TM_CURRENT_VAL, &TmValue[0x0E]);
675     status =TM_piGetTMValue (TM_DEA_ANA_16 , TM_CURRENT_VAL, &TmValue[0x0F]);
676    
677     status =TM_piGetTMValue (TM_TH_ANA_1 , TM_CURRENT_VAL, &TmValue[0x10]);
678     status =TM_piGetTMValue (TM_TH_ANA_2 , TM_CURRENT_VAL, &TmValue[0x11]);
679     status =TM_piGetTMValue (TM_TH_ANA_3 , TM_CURRENT_VAL, &TmValue[0x12]);
680     status =TM_piGetTMValue (TM_TH_ANA_4 , TM_CURRENT_VAL, &TmValue[0x13]);
681     status =TM_piGetTMValue (TM_TH_ANA_5 , TM_CURRENT_VAL, &TmValue[0x14]);
682     status =TM_piGetTMValue (TM_TH_ANA_6 , TM_CURRENT_VAL, &TmValue[0x15]);
683     status =TM_piGetTMValue (TM_TH_ANA_7 , TM_CURRENT_VAL, &TmValue[0x16]);
684     status =TM_piGetTMValue (TM_TH_ANA_8 , TM_CURRENT_VAL, &TmValue[0x17]);
685     status =TM_piGetTMValue (TM_TH_ANA_9 , TM_CURRENT_VAL, &TmValue[0x18]);
686     status =TM_piGetTMValue (TM_TH_ANA_10 , TM_CURRENT_VAL, &TmValue[0x19]);
687     status =TM_piGetTMValue (TM_TH_ANA_11 , TM_CURRENT_VAL, &TmValue[0x1A]);
688     status =TM_piGetTMValue (TM_TH_ANA_12 , TM_CURRENT_VAL, &TmValue[0x1B]);
689     status =TM_piGetTMValue (TM_TH_ANA_13 , TM_CURRENT_VAL, &TmValue[0x1C]);
690     status =TM_piGetTMValue (TM_TH_ANA_14 , TM_CURRENT_VAL, &TmValue[0x1D]);
691     status =TM_piGetTMValue (TM_TH_ANA_15 , TM_CURRENT_VAL, &TmValue[0x1E]);
692     status =TM_piGetTMValue (TM_TH_ANA_16 , TM_CURRENT_VAL, &TmValue[0x1F]);
693    
694     status =TM_piGetTMValue (TM_BIL_DIAG_ACQ_1 , TM_CURRENT_VAL, &TmValue[0x20]);
695     status =TM_piGetTMValue (TM_BIL_DIAG_ACQ_2 , TM_CURRENT_VAL, &TmValue[0x21]);
696     status =TM_piGetTMValue (TM_BIL_DIAG_ACQ_3 , TM_CURRENT_VAL, &TmValue[0x22]);
697     status =TM_piGetTMValue (TM_BIL_DIAG_ACQ_4 , TM_CURRENT_VAL, &TmValue[0x23]);
698     status =TM_piGetTMValue (TM_BIL_DIAG_ACQ_5 , TM_CURRENT_VAL, &TmValue[0x24]);
699     status =TM_piGetTMValue (TM_BIL_DIAG_ACQ_6 , TM_CURRENT_VAL, &TmValue[0x25]);
700     status =TM_piGetTMValue (TM_BIL_DIAG_ACQ_7 , TM_CURRENT_VAL, &TmValue[0x26]);
701     status =TM_piGetTMValue (TM_BIL_DIAG_ACQ_8 , TM_CURRENT_VAL, &TmValue[0x27]);
702    
703     status =TM_piGetTMValue (TM_CC_DIAG_ACQ_1 , TM_CURRENT_VAL, &TmValue[0x28]);
704     status =TM_piGetTMValue (TM_CC_DIAG_ACQ_2 , TM_CURRENT_VAL, &TmValue[0x29]);
705     status =TM_piGetTMValue (TM_CC_DIAG_ACQ_3 , TM_CURRENT_VAL, &TmValue[0x2A]);
706     status =TM_piGetTMValue (TM_CC_DIAG_ACQ_4 , TM_CURRENT_VAL, &TmValue[0x2B]);
707     status =TM_piGetTMValue (TM_CC_DIAG_ACQ_5 , TM_CURRENT_VAL, &TmValue[0x2C]);
708     status =TM_piGetTMValue (TM_CC_DIAG_ACQ_6 , TM_CURRENT_VAL, &TmValue[0x2D]);
709     status =TM_piGetTMValue (TM_CC_DIAG_ACQ_7 , TM_CURRENT_VAL, &TmValue[0x2E]);
710     status =TM_piGetTMValue (TM_CC_DIAG_ACQ_8 , TM_CURRENT_VAL, &TmValue[0x2F]);
711     status =TM_piGetTMValue (TM_CC_DIAG_ACQ_9 , TM_CURRENT_VAL, &TmValue[0x30]);
712     status =TM_piGetTMValue (TM_CC_DIAG_ACQ_10 , TM_CURRENT_VAL, &TmValue[0x31]);
713     status =TM_piGetTMValue (TM_CC_DIAG_ACQ_11 , TM_CURRENT_VAL, &TmValue[0x32]);
714     status =TM_piGetTMValue (TM_CC_DIAG_ACQ_12 , TM_CURRENT_VAL, &TmValue[0x33]);
715     status =TM_piGetTMValue (TM_CC_DIAG_ACQ_13 , TM_CURRENT_VAL, &TmValue[0x34]);
716     status =TM_piGetTMValue (TM_CC_DIAG_ACQ_14 , TM_CURRENT_VAL, &TmValue[0x35]);
717     status =TM_piGetTMValue (TM_CC_DIAG_ACQ_15 , TM_CURRENT_VAL, &TmValue[0x36]);
718     status =TM_piGetTMValue (TM_CC_DIAG_ACQ_16 , TM_CURRENT_VAL, &TmValue[0x37]);
719     status =TM_piGetTMValue (TM_CC_DIAG_ACQ_17 , TM_CURRENT_VAL, &TmValue[0x38]);
720     status =TM_piGetTMValue (TM_CC_DIAG_ACQ_18 , TM_CURRENT_VAL, &TmValue[0x39]);
721     status =TM_piGetTMValue (TM_CC_DIAG_ACQ_19 , TM_CURRENT_VAL, &TmValue[0x3a]);
722     status =TM_piGetTMValue (TM_CC_DIAG_ACQ_20 , TM_CURRENT_VAL, &TmValue[0x3b]);
723     status =TM_piGetTMValue (TM_CC_DIAG_ACQ_21 , TM_CURRENT_VAL, &TmValue[0x3c]);
724     status =TM_piGetTMValue (TM_CC_DIAG_ACQ_22 , TM_CURRENT_VAL, &TmValue[0x3d]);
725     status =TM_piGetTMValue (TM_CC_DIAG_ACQ_23 , TM_CURRENT_VAL, &TmValue[0x3e]);
726     status =TM_piGetTMValue (TM_CC_DIAG_ACQ_24 , TM_CURRENT_VAL, &TmValue[0x3f]);
727     status =TM_piGetTMValue (TM_CC_DIAG_ACQ_25 , TM_CURRENT_VAL, &TmValue[0x40]);
728     status =TM_piGetTMValue (TM_CC_DIAG_ACQ_26 , TM_CURRENT_VAL, &TmValue[0x41]);
729     status =TM_piGetTMValue (TM_CC_DIAG_ACQ_27 , TM_CURRENT_VAL, &TmValue[0x42]);
730     status =TM_piGetTMValue (TM_CC_DIAG_ACQ_28 , TM_CURRENT_VAL, &TmValue[0x43]);
731     status =TM_piGetTMValue (TM_CC_DIAG_ACQ_29 , TM_CURRENT_VAL, &TmValue[0x44]);
732     status =TM_piGetTMValue (TM_CC_DIAG_ACQ_30 , TM_CURRENT_VAL, &TmValue[0x45]);
733     status =TM_piGetTMValue (TM_CC_DIAG_ACQ_31 , TM_CURRENT_VAL, &TmValue[0x46]);
734     status =TM_piGetTMValue (TM_CC_DIAG_ACQ_32 , TM_CURRENT_VAL, &TmValue[0x47]);
735    
736     status =TM_piGetTMValue (TM_DBL_ACQ_3 , TM_CURRENT_VAL, &TmValue[0x48]);
737     status =TM_piGetTMValue (TM_DBL_ACQ_4 , TM_CURRENT_VAL, &TmValue[0x49]);
738     status =TM_piGetTMValue (TM_DBL_ACQ_7 , TM_CURRENT_VAL, &TmValue[0x4a]);
739     status =TM_piGetTMValue (TM_DBL_ACQ_8 , TM_CURRENT_VAL, &TmValue[0x4b]);
740     status =TM_piGetTMValue (TM_DS_16_ACQ_1 , TM_CURRENT_VAL, &TmValue[0x4c]);
741     status =TM_piGetTMValue (TM_DS_16_ACQ_2 , TM_CURRENT_VAL, &TmValue[0x4d]);
742    
743     /* Start cyclic telemetry acquisition */
744     // TM_piStartAutomaticTMSeq();
745    
746    
747     }
748    
749    
750     status_code Sys_test (void)
751     {
752     BYTE *cmds;
753     BYTE sw;
754     BYTE pktbuffer[10];
755     MsgTsk sndMsg;
756     UINT16 mcmdw[12];
757     int mcmdttag_direct;
758    
759     cmds = (BYTE*)0x21f0048;
760     sw = *cmds;
761    
762     switch(sw)
763     {
764     // Experiment acquisition (2 pkts)
765     case 1:{
766     teststate = 0x0001;
767     *cmds = 0x00;
768     pkts = 10;
769     MC_piSetState(MC_ACTIVE_STATE);
770     FT_piChangeAcqMode(SM_EXP64/*it was SM_EXPERIMENT*/);
771     PM_pi_SetExpPktCpyFlag(TRUE);
772     } break;
773     // INFN Pachet storage
774     case 2:{
775     teststate = 0x0100;
776     *cmds = 0x00;
777     MC_piSetState(MC_ACTIVE_STATE);
778     } break;
779     // Bite
780     case 3:{
781     teststate = 0x1000;
782     *cmds = 0x00;
783     MC_piSetState(MC_MAINTENANCE_STATE);
784     } break;
785     // Raw Downlink MCMD (4 sectors)
786     case 4:{
787     teststate = 0x3000;
788     *cmds = 0x00;
789     MC_piSetState(MC_ACTIVE_STATE);
790     } break;
791     // Downlink RPB-EOT simulation (4 sectors)
792     case 5:{
793     teststate = 0x4000;
794     *cmds = 0x00;
795     } break;
796     // File1 Downlink MCMD (4 sectors)
797     case 6:{
798     teststate = 0x5000;
799     *cmds = 0x00;
800     MC_piSetState(MC_ACTIVE_STATE);
801     } break;
802     }
803    
804     switch(teststate){
805     case 1:{
806     ERC32_Force_interrupt(ERC32_INTERRUPT_EXTERNAL_5);
807     teststate = 0x02;
808     } break;
809     case 2:{
810     ERC32_Force_interrupt(ERC32_INTERRUPT_EXTERNAL_1);
811     teststate = 0x03;
812     } break;
813     case 3:{
814     ERC32_Force_interrupt(ERC32_INTERRUPT_EXTERNAL_5);
815     teststate = 0x04;
816     } break;
817     case 4:{
818     ERC32_Force_interrupt(ERC32_INTERRUPT_EXTERNAL_1);
819     teststate = 0x05;
820     } break;
821     case 5:{
822     ERC32_Force_interrupt(ERC32_INTERRUPT_EXTERNAL_4);
823     teststate = 0x06;
824     } break;
825     case 6:{
826     ERC32_Force_interrupt(ERC32_INTERRUPT_EXTERNAL_4);
827     teststate = 0x00;
828     } break;
829     case 0x0100:{
830     PM_pi_StorePacket(10, &pktbuffer[0],FS_CMD);
831     teststate = 0x0200;
832     } break;
833     case 0x0200:{
834     PM_pi_StorePacket(10, &pktbuffer[0],FS_CMD);
835     teststate = 0x0300;
836     } break;
837     case 0x0300:{
838     ERC32_Force_interrupt(ERC32_INTERRUPT_EXTERNAL_4);
839     teststate = 0x0000;
840     } break;
841     case 0x1000:{
842     mcmdw[0] = 0x1122;
843     mcmdw[1] = 0x3344;
844     mcmdw[2] = 0x5566;
845     mcmdw[3] = 0x7788;
846     mcmdw[4] = 0x99BB;
847     mcmdw[5] = 0xAA55;
848     McMd.TimeTag = 0;
849     McMd.Type = BITE;
850     McMd.Length = 2;
851     mcmdttag_direct = IMMEDIATE_MCMD;
852     sndMsg.Code = MD_MCMD_EXEC;
853     MA_piGetBufferMCMD(&McMd.PtrMCMD, mcmdttag_direct);
854     memcpy((unsigned short int*)McMd.PtrMCMD, &mcmdw[0], sizeof(McMd));
855     *(MA_HEADER_MCMD*)sndMsg.Info = McMd;
856     sndMsg.LlInfo = sizeof(MA_HEADER_MCMD);
857     MD_piSndMsgMCMDDispatcher(&sndMsg);
858     teststate = 0x2000;
859     } break;
860     case 0x2000:{
861     ERC32_Force_interrupt(ERC32_INTERRUPT_EXTERNAL_1);
862     teststate = 0x0000;
863     } break;
864     case 0x3000:{
865     mcmdw[0] = 0x1122;
866     mcmdw[1] = 0x3344;
867     mcmdw[2] = 0x5566;
868     mcmdw[3] = 0x7788;
869     mcmdw[4] = 0x99BB;
870     mcmdw[5] = 0x004a;
871     McMd.TimeTag = 0;
872     McMd.Type = DOWN_LINK;
873     McMd.Length = 2;
874     mcmdttag_direct = IMMEDIATE_MCMD;
875     sndMsg.Code = MD_MCMD_EXEC;
876     MA_piGetBufferMCMD(&McMd.PtrMCMD, mcmdttag_direct);
877     memcpy((unsigned short int*)McMd.PtrMCMD, &mcmdw[0], sizeof(McMd));
878     *(MA_HEADER_MCMD*)sndMsg.Info = McMd;
879     sndMsg.LlInfo = sizeof(MA_HEADER_MCMD);
880     MD_piSndMsgMCMDDispatcher(&sndMsg);
881     pkts = 4;
882     teststate = 0x0000;
883     } break;
884     case 0x4000:{
885     if(pkts)
886     {
887     ERC32_Force_interrupt(ERC32_INTERRUPT_EXTERNAL_3);
888     }
889     else
890     {
891     teststate = 0x0000;
892     }
893     pkts--;
894     } break;
895     case 0x5000:{
896     mcmdw[0] = 0x1122;
897     mcmdw[1] = 0x3344;
898     mcmdw[2] = 0x5566;
899     mcmdw[3] = 0x7788;
900     mcmdw[4] = 0x99BB;
901     mcmdw[5] = 0x0002;
902     McMd.TimeTag = 0;
903     McMd.Type = DOWN_LINK;
904     McMd.Length = 2;
905     mcmdttag_direct = IMMEDIATE_MCMD;
906     sndMsg.Code = MD_MCMD_EXEC;
907     MA_piGetBufferMCMD(&McMd.PtrMCMD, mcmdttag_direct);
908     memcpy((unsigned short int*)McMd.PtrMCMD, &mcmdw[0], sizeof(McMd));
909     *(MA_HEADER_MCMD*)sndMsg.Info = McMd;
910     sndMsg.LlInfo = sizeof(MA_HEADER_MCMD);
911     MD_piSndMsgMCMDDispatcher(&sndMsg);
912     pkts = 5;
913     teststate = 0x0000;
914     } break;
915     }
916     }
917    
918    
919     void TS_piTMTCTest(void)
920     {
921     UINT32 Value;
922     UINT32 loop;
923    
924     TM_piGetTMValue(TM_TH_ANA_1, TM_CURRENT_VAL, &Value);
925     for(loop=0; loop<500; loop++);
926     TM_piGetTMValue(TM_TH_ANA_2, TM_CURRENT_VAL, &Value);
927     for(loop=0; loop<1000; loop++);
928     TM_piSendTC(TM_HL_CMD_1, 0);
929     }
930    
931     void TS_piTCTest(void)
932     {
933     UINT32 Value;
934     UINT32 loop;
935    
936     for (loop=0; loop< 10; loop++)
937     {
938     TM_piSendTC(TM_HL_CMD_1, 0);
939     OS_piTaskSuspend(100);
940     }
941     }
942    
943     void TS_piMCMDForward(MA_HEADER_MCMD* pMcmdExec)
944     {
945     UINT16* pMcmdInfo;
946     UINT32 timetagFlag;
947     UINT32 mode;
948     UINT32 type;
949    
950     pMcmdInfo =(UINT16* )pMcmdExec->PtrMCMD;
951     type = (UINT32)(*(pMcmdInfo+1) & 0x00ff);
952     mode = (UINT32)(*(pMcmdInfo+OFFSET_HEADER));
953     /* Delete MCMD from partition */
954     timetagFlag =(*(pMcmdInfo+1)&TIMETAG_MASK) ? TIMETAG_MCMD : IMMEDIATE_MCMD;
955     MA_piDelBufferMCMD(pMcmdExec->PtrMCMD,timetagFlag);
956     /*============= Entry 2 Log in History Area ==========*/
957     // HA_piLogHistoryEntry2 (pMcmdExec->Type,0x00);
958     LU_INFN_LOG(LU_DEBUG_TRACE,LU_MASK(__FILEID__),__FILEID__,__LINE__,pMcmdExec->Type);
959     if(type = ID_SELECT_MODE)
960     {
961     if(mode)
962     TS_piSndMsgTest (&ActiveMsg);
963     else
964     TS_piSndMsgTest (&MaintMsg);
965     }
966     }
967    
968     void TS_try(TS_MSG_TSK msg)
969     {
970     MsgTsk SndMsg;
971    
972     SndMsg.Code = msg;
973     SndMsg.LlInfo = 0;
974     TS_piSndMsgTest (&SndMsg);
975    
976     }
977    
978    
979     void TS_piWriteOnUART(unsigned char *string)
980     {
981     unsigned char *s;
982    
983     for ( s = string ; *s ; s++ )
984     console_outbyte_polled( 0, *s );
985    
986     console_outbyte_polled( 0, '\r' );
987     console_outbyte_polled( 0, '\n' );
988     }

  ViewVC Help
Powered by ViewVC 1.1.23