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 |
} |