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

Contents 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 - (show 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 /*****************************************************************************/
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