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

Contents of /quicklook/dataToXML/Data/compilationInfo/src/INFN/PRH_ParamHandler_INFN.c

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1.1.1.1 - (show annotations) (download) (vendor branch)
Tue Apr 25 09:00:20 2006 UTC (19 years, 2 months ago) by kusanagi
Branch: MAIN
CVS Tags: dataToXML1_02/01, dataToXML1_02/00, dataToXML1_03/00, dataToXML1_03/01, dataToXML1_00/00, firstRelease, dataToXML1_01/00, dataToXML1_03_02, HEAD
Changes since 1.1: +0 -0 lines
File MIME type: text/plain
These program extract in an XML format the info contained into the ROOT files generated by YODA from the PAMELA data. To visualize the XML files in a more human readable format a collection of XSL files are given in the Data subfolder.

1 /****************************************************************************
2 * F i l e D a t a
3 * $Id: PRH_ParamHandler_INFN.c,v 1.34 2005/03/20 18:23:41 sebastiani Exp $
4 * $Revision: 1.34 $
5 * $Date: 2005/03/20 18:23:41 $
6 * $RCSfile: PRH_ParamHandler_INFN.c,v $
7 *
8 ****************************************************************************
9 * S W D e v e l o p m e n t E n v i r o n m e n t
10 *
11 * $Author: sebastiani $
12 * :
13 ****************************************************************************
14 * U p d a t i n g
15 *
16 * $Log: PRH_ParamHandler_INFN.c,v $
17 * Revision 1.34 2005/03/20 18:23:41 sebastiani
18 * WS_2_ReadWS2Tables introeduced in PRH_Init
19 *
20 * Revision 1.33 2005/03/06 14:54:46 sebastiani
21 * version running on 06 03 2005
22 *
23 * Revision 1.32 2005/02/21 08:58:29 sebastiani
24 * all log comments completed
25 *
26 * Revision 1.31 2005/02/19 10:19:38 sebastiani
27 * ALM_S4_CALIB_00_HARD,ALM_S4_CALIB_00_SOFT,ALM_S4_128TRIGGER_0 added
28 *
29 * Revision 1.30 2005/01/26 18:46:48 sebastiani
30 * new bug fixes for WS
31 *
32 * Revision 1.29 2004/09/28 15:36:25 sebastiani
33 * interrupt manager fix
34 *
35 * Revision 1.28 2004/09/17 15:01:00 faber
36 * LU_INFN_LOG flags fixing
37 *
38 * Revision 1.27 2004/09/14 15:07:08 faber
39 * New development for TimeSync, managed by interrupt. coding completed but never tested.
40 *
41 * Revision 1.26 2004/08/02 09:28:29 faber
42 * Stamp management into SMH_SetParam
43 * TS_PamManger TM_RMTest moved respectively into PM and RM as PM_MCMDTest and
44 * RM_MCMDTEst. TS_Test_INFN.c will be deleted soon.
45 *
46 * Revision 1.25 2004/07/20 08:58:00 faber
47 * simulator mode for EEPROM procedures
48 *
49 * Revision 1.24 2004/07/12 09:51:49 faber
50 * external_data dir added with all commands inside. tgz creation rules remove.
51 * AUTO mode introduced:
52 *
53 * Revision 1.23 2004/07/02 15:36:50 faber
54 * *** empty log message ***
55 *
56 * Revision 1.22 2004/06/30 07:26:52 sebastiani
57 * TOF fixing,WS fixing
58 *
59 * Revision 1.21 2004/06/22 09:34:52 faber
60 * *** empty log message ***
61 *
62 * Revision 1.20 2004/06/16 09:35:13 faber
63 * *** empty log message ***
64 *
65 * Revision 1.19 2004/06/15 08:20:11 sebastiani
66 * gen_params.pl
67 *
68 * Revision 1.18 2004/06/09 11:23:22 alfarano
69 * EEPROM Formatting/Checking/Reading/writing functions. not tested
70 *
71 * Revision 1.17 2004/06/08 14:02:43 alfarano
72 * eeprom functions
73 *
74 * Revision 1.16 2004/06/03 08:19:23 faber
75 * compilation check about PARAM_ID == 0
76 *
77 * Revision 1.15 2004/05/28 10:26:11 alfarano
78 * PARAM_ID introduced in order to check if param.pl has changed. Safe eeprom read assured.
79 *
80 * Revision 1.14 2004/05/13 10:47:17 faber
81 * hid the HB_Store funcion in favour of wrapped funcions
82 *
83 * Revision 1.13 2004/05/12 14:46:14 faber
84 * *** empty log message ***
85 *
86 * Revision 1.12 2004/03/03 11:25:59 tassa
87 * send idaqmcmd tested
88 *
89 * Revision 1.11 2004/02/26 11:27:30 faber
90 * PARAMGEN for array/tab/direct idaq command introduced. first implementation. never tested
91 *
92 * Revision 1.10 2004/02/17 12:34:51 faber
93 * USERDATA2BUF USERDATA2{ARR,TAB} introduced with CRC.
94 * Never tested.
95 * Some adjustment in Logging in SHM module
96 *
97 * Revision 1.9 2004/02/10 16:48:28 faber
98 * *** empty log message ***
99 *
100 * Revision 1.8 2004/01/22 10:10:25 faber
101 * *** empty log message ***
102 *
103 * Revision 1.7 2003/10/17 10:09:27 sebastiani
104 * PRH_ENABLE_EEPROM_SAVE introduced, scan of the select mode bugfix
105 *
106 * Revision 1.6 2003/09/24 14:20:28 carota
107 * fix: SMH_GETPTR_BODYAREA call
108 *
109 * Revision 1.5 2003/09/24 14:08:46 faber
110 * fix: CurPtr+=2 after SHM_GETPTR_BODYAREA in PRH_SetParam
111 *
112 * Revision 1.4 2003/09/22 09:59:35 faber
113 * new select mode definitions
114 *
115 * Revision 1.3 2003/09/19 15:57:35 faber
116 * Large development update INFN software
117 *
118 * Revision 1.2 2003/09/12 10:57:41 faber
119 * development in proress (Working schedule module)
120 *
121 * Revision 1.1.1.1 2003/08/04 09:40:22 sebastiani
122 * Imported sources laben rel. 19.06.2003 integrated with pam2
123 *
124 * Revision 1.1 2003/07/18 13:35:10 sebastiani
125 * PRH_ParamHandler_INFN_int.c sobstitues PRH_ParamHandler_INFN_*.*
126 * introduced DAQTEST directive
127 *
128 *
129 *****************************************************************************/
130
131
132 /*============================= Include File ================================*/
133
134 #include <src/INFN/LU_SourceFileID_INFN.h>
135 #define __FILEID__ _PRH_ParamHandler_INFN__c
136 #include <src/INFN/LU_LogUtility_INFN.h>
137 #include <src/INFN/PRH_ParamHandler_INFN_auto.h>
138 LU_DECL_MASK();
139
140
141 #include <src/MCMDManager/MCMDArea/MA_MCMDArea_p.h>
142 #include <src/BasicSW/RTEMSInterface/OS_rtems_p.h>
143
144 #include <src/INFN/SMH_SelectModeHandler_INFN.h>
145
146 #include <src/INFN/PRH_ParamHandler_INFN.h>
147 #include <src/INFN/PRH_ParamHandler_INFN_auto.h>
148 #include <src/INFN/PRH_ParamHandler_INFN_autopri.h>
149 #include <src/INFN/MH_ModeHandler_INFN.h>
150 #include <src/INFN/PM_PamManager_INFN.h>
151 #include <src/INFN/HB_HKBuffer_INFN.h>
152 #include <src/INFN/PRH_Stamp.h>
153 #include <src/BasicSW/PatchDumpManager/PD_PatchDumpManager_int.h>
154 #include <src/INFN/WS_WorkingSchedule_INFN.h>
155
156 #define PRH_IS_STAMP_OK (PRH_CurrentStamp == PRH_STAMP)
157 static UINT32 PRH_CurrentStamp;
158
159 /*============================ Global define ================================*/
160
161
162
163 /*============================== global types ==============================*/
164
165
166
167 /*****************************************************************************/
168 /*=========================== Structure define ==============================*/
169
170
171 /*****************************************************************************/
172 /*============================ Enumerate define =============================*/
173
174 /*****************************************************************************/
175
176 /*****************************************************************************/
177
178 /*=== Param Handler I N T E R N A L ==*/
179
180 // special check for the Array param size of LOG_MASK
181
182 #if PRH_ARR_N_LOG_MASK < LU_FILEID_N
183 #error "PRH_ARR_N_LOG_MASK > LU_FILEID_N !!! - check the size of LOG_MASK in param.pl"
184 #endif
185
186
187 /*****************************************************************************/
188
189
190 status_code PRH_Init() {
191 status_code status=SUCCESSFUL;
192 #ifndef SIMULATOR
193 PRH_CurrentStamp = *(UINT32*)PRH_EEPROM_STAMP;
194 #endif SIMULATOR
195 PRH_int_init_internal_structure();
196 #ifndef PRH_DEFAULT_MODE
197 status = PRH_ReadCurrentParam();
198 if(status != CM_RC_SUCCESSFUL){
199 /*@LOG PRH_Init: error reading CurrentParam */
200 LU_INFN_LOG(LU_WARNING|LU_HA,LU_MASK(__FILEID__),__FILEID__,__LINE__,status);
201 status = PRH_ReadDefaultParam();
202 if(status != CM_RC_SUCCESSFUL){
203 /*@LOG PRH_Init: error reading DefaultParam */
204 LU_INFN_LOG(LU_WARNING|LU_HA,LU_MASK(__FILEID__),__FILEID__,__LINE__,status);
205 }
206
207 }
208 #endif
209
210 status=WS_2_ReadWS2Tables();
211 if(status != CM_RC_SUCCESSFUL){
212 /*@LOG PRH_Init: error reading WS2 Tables */
213 LU_INFN_LOG(LU_WARNING|LU_HA,LU_MASK(__FILEID__),__FILEID__,__LINE__,status);
214 WS_ZeroTableWS2();
215 }
216
217 return status;
218 }
219
220 status_code PRH_WriteAll2EEPROM(PRH_EEPROM_REGION region) {
221 unsigned int i;
222 BOOL old;
223 status_code s=CM_RC_SUCCESSFUL;
224 #ifndef SIMULATOR
225 /* TBD: some check for wrong writing here */
226 if (!PRH_IS_STAMP_OK)
227 {
228 /*@LOG WriteAll2EEPROM: Stamp is not ok */
229 LU_INFN_LOG(LU_WARNING|LU_HA,LU_MASK(__FILEID__),__FILEID__,__LINE__,0);
230 return(CM_RC_BAD_EEPROM);
231 }
232
233 /* disable automatic log to avoid looging of params not stored in eeprom */
234 old = PRH_int_get_automatic_log();
235
236 PRH_int_set_automatic_log(FALSE);
237 /* write variables into eeprom: */
238 s = CM_RC_SUCCESSFUL;
239 for(i=0;i<PRH_VAR_MAX && s == CM_RC_SUCCESSFUL; i++)
240 {
241 s= PRH_int_var_write2eeprom(region,i);
242 if(s==CM_RC_VAR_NOT_IN_EEPROM)
243 s=CM_RC_SUCCESSFUL;
244 }
245 /*@LOG var eeprom write result - status*/
246 LU_INFN_LOG(LU_NORMAL_TRACE|LU_HA,LU_MASK(__FILEID__),__FILEID__,__LINE__,s);
247 /* write arrays into eeprom: */
248 for(i=0;i<PRH_ARR_MAX && s == CM_RC_SUCCESSFUL;i++)
249 {
250 s=PRH_int_arr_write2eeprom(region,i);
251 if(s==CM_RC_ARR_NOT_IN_EEPROM)
252 s=CM_RC_SUCCESSFUL;
253 }
254 /*@LOG arr eeprom write result - status*/
255 LU_INFN_LOG(LU_NORMAL_TRACE|LU_HA,LU_MASK(__FILEID__),__FILEID__,__LINE__,s);
256 /* wrtie tables into eeprom: */
257 for(i=0;i<PRH_TAB_MAX && s == CM_RC_SUCCESSFUL;i++)
258 {
259 s=PRH_int_tab_write2eeprom(region,i);
260 if(s==CM_RC_TAB_NOT_IN_EEPROM)
261 s=CM_RC_SUCCESSFUL;
262 }
263 /*@LOG tab eeprom write result - status*/
264 LU_INFN_LOG(LU_NORMAL_TRACE|LU_HA,LU_MASK(__FILEID__),__FILEID__,__LINE__,s);
265 /* set the old log mode for the PRH module: */
266 PRH_int_set_automatic_log(old);
267 if(s)
268 /*@LOG eeprom write error - status*/
269 LU_INFN_LOG(LU_NORMAL_TRACE|LU_HA,LU_MASK(__FILEID__),__FILEID__,__LINE__,s);
270 #endif // SIMULATOR
271 return s;
272 }
273
274 status_code PRH_WriteEEPROMStamp(UINT32 stamp) {
275 #ifdef SIMULATOR
276 return CM_RC_SUCCESSFUL;
277 #else
278 return PRH_int_write_eeprom_and_check((void*)PRH_EEPROM_STAMP,(void*)&stamp,1);
279 #endif
280 }
281
282 status_code PRH_WriteEEPROMBootinfo(UINT32 bootinfo) {
283 #ifdef SIMULATOR
284 return CM_RC_SUCCESSFUL;
285 #else
286 UINT32 eeprom_value;
287 status_code s;
288 s=PRH_ReadEEPROMBootinfo(&eeprom_value);
289 if(s != CM_RC_SUCCESSFUL)
290 return s;
291 if(eeprom_value != bootinfo)
292 return(PRH_IS_STAMP_OK ?
293 PRH_int_write_eeprom_and_check((void*)PRH_EEPROM_BOOTINFO,(void*)&bootinfo,1)
294 : CM_RC_BAD_EEPROM);
295 else
296 return CM_RC_SUCCESSFUL;
297 #endif
298 }
299
300 status_code PRH_ReadEEPROMBootinfo(UINT32 *bootinfo) {
301 #ifndef SIMULATOR
302 if(PRH_IS_STAMP_OK)
303 *bootinfo = *(UINT32*)PRH_EEPROM_BOOTINFO;
304 else
305 return CM_RC_BAD_EEPROM;
306 #endif
307 return CM_RC_SUCCESSFUL;
308 }
309
310
311 status_code PRH_FormatEEPROM()
312 {
313 #ifndef SIMULATOR
314 #ifdef PRH_DEFAULT_MODE
315 status_code s;
316 if( (s = PRH_WriteEEPROMStamp(0)) != CM_RC_SUCCESSFUL )
317 return s;
318
319 PRH_CurrentStamp = PRH_STAMP; // Force check to be OK
320
321 if( (s = PRH_WriteEEPROMBootinfo(PRH_BOOTINFO_FORMAT)) != CM_RC_SUCCESSFUL)
322 return s;
323
324 if( (s = PRH_WriteAll2EEPROM(PRH_EEPROM_CURRENT)) != CM_RC_SUCCESSFUL)
325 return s;
326
327 if( (s = PRH_WriteAll2EEPROM(PRH_EEPROM_DEFAULT)) != CM_RC_SUCCESSFUL)
328 return s;
329
330 //WS_ZeroTableWS2();
331 if( (s = WS_2_WriteWS2Tables()) != CM_RC_SUCCESSFUL)
332 return s;
333
334 if( (s = PRH_WriteEEPROMStamp(PRH_STAMP)) != CM_RC_SUCCESSFUL)
335 return s;
336
337 #endif
338 #endif
339 return CM_RC_SUCCESSFUL;
340 }
341
342 status_code PRH_ReadCurrentParam()
343 {
344 #ifdef SIMULATOR
345 return CM_RC_SUCCESSFUL;
346 #else
347 return(PRH_ReadAllFromEEPROM(PRH_EEPROM_CURRENT));
348 #endif
349 }
350
351 status_code PRH_WriteCurrentParam()
352 {
353 #ifdef SIMULATOR
354 return CM_RC_SUCCESSFUL;
355 #else
356 return(PRH_WriteAll2EEPROM(PRH_EEPROM_CURRENT));
357 #endif
358 }
359
360 status_code PRH_ReadDefaultParam()
361 {
362 #ifdef SIMULATOR
363 return CM_RC_SUCCESSFUL;
364 #else
365 return(PRH_ReadAllFromEEPROM(PRH_EEPROM_DEFAULT));
366 #endif
367 }
368
369
370 status_code PRH_ReadWS2Tables(void *ws2table) {
371 if(PRH_IS_STAMP_OK)
372 #ifndef SIMULATOR
373 memcpy(ws2table,(void*)PRH_EEPROM_WS2TABLE,WS_2_TABLES_SIZE);
374 #endif
375 else
376 return CM_RC_BAD_EEPROM;
377 return CM_RC_SUCCESSFUL;
378 }
379
380 status_code PRH_WriteWS2Tables(void *ws2table) {
381 #ifdef SIMULATOR
382 return CM_RC_SUCCESSFUL;
383 #else
384 return PRH_int_write_eeprom_and_check((void*)PRH_EEPROM_WS2TABLE,ws2table,WS_2_TABLES_DWORDS);
385 #endif
386 }
387
388
389 status_code PRH_ReadAllFromEEPROM(PRH_EEPROM_REGION region) {
390 #ifdef SIMULATOR
391 return CM_RC_SUCCESSFUL;
392 #else
393 unsigned int i;
394 status_code s;
395 BOOL old;
396
397 if (!PRH_IS_STAMP_OK)
398 {
399 /*@LOG Stamp is not ok */
400 LU_INFN_LOG(LU_WARNING|LU_HA,LU_MASK(__FILEID__),__FILEID__,__LINE__,0);
401 return(CM_RC_BAD_EEPROM);
402 }
403
404 /* disable automatic log to avoid looging of params not stored in eeprom */
405 old = PRH_int_get_automatic_log();
406 PRH_int_set_automatic_log(FALSE);
407
408
409 /* read variables from eeprom: */
410 s = CM_RC_SUCCESSFUL;
411
412 for(i=0;i<PRH_VAR_MAX &&(s == CM_RC_SUCCESSFUL || s == CM_RC_VAR_NOT_IN_EEPROM);i++)
413 s = PRH_int_var_read_eeprom(region,i);
414
415 /* read arrays from eeprom: */
416 for(i=0;i<PRH_ARR_MAX && (s == CM_RC_SUCCESSFUL || s == CM_RC_ARR_NOT_IN_EEPROM);i++)
417 s = PRH_int_arr_read_eeprom(region,i);
418
419 /* read tables from eeprom: */
420 for(i=0;i<PRH_TAB_MAX && (s == CM_RC_SUCCESSFUL || s == CM_RC_TAB_NOT_IN_EEPROM);i++)
421 s = PRH_int_tab_read_eeprom(region,i);
422
423 /* set the old log mode for the PRH module: */
424 PRH_int_set_automatic_log(old);
425 return s;
426 #endif // SIMULATOR
427
428 }
429
430 status_code PRH_SetParam(BYTE mode, MA_HEADER_MCMD *headerMcmd) {
431 BYTE *CurPtr;
432 BYTE id,nvar,narr,ntab,i,idx,buf_no,type,tmp;
433 UINT16 h,l,c,r;
434 UINT16 woffset,wlen,len,crc;
435 UINT32 size,stamp;
436 PRH_VAR_TYPE varvalue;
437 HB_BUF bufid;
438 status_code s;
439 unsigned char offset;
440 BOOL old;
441 status_code err=SUCCESSFUL;
442 static unsigned int changed_var[256];
443 static unsigned int changed_arr[256];
444 static unsigned int changed_tab[256];
445 err = SUCCESSFUL;
446
447 CurPtr = (BYTE*) SMH_GETPTR_SELECTMODEBODY(headerMcmd->PtrMCMD);
448
449 CM_READ_BE_UINT32(CurPtr,stamp,tmp);
450
451 if(stamp != PRH_STAMP) {
452 /*@LOG SetParam: Stamp is not ok - expected stamp */
453 LU_INFN_LOG(LU_DEBUG_TRACE,LU_MASK(__FILEID__),__FILEID__,__LINE__,PRH_STAMP);
454 /*@LOG SetParam: Stamp is not ok - macrocommand stamp */
455 LU_INFN_LOG(LU_WARNING|LU_HA,LU_MASK(__FILEID__),__FILEID__,__LINE__,stamp);
456 return CM_RC_STAMP_ERROR;
457 }
458
459 old=PRH_int_get_automatic_log();
460 PRH_int_set_automatic_log(FALSE);
461 type=SMH_INFN_SELECTMODE_GET_TYPE(mode);
462 switch (type) {
463 case SMH_SETPARAM_GEN:
464 {
465
466 CM_READ_BE_UINT8(CurPtr,nvar);
467
468 // handler var
469 for(i=0;i<nvar && err==SUCCESSFUL;i++) {
470 CM_READ_BE_UINT8(CurPtr,id);
471 CM_READ_BE_UINT32(CurPtr,varvalue,tmp);
472 err=PRH_int_set_var(id,varvalue);
473 /*@LOG SMH_SETPARAM_GEN: id */
474 LU_INFN_LOG(LU_DEBUG_TRACE|LU_HA,LU_MASK(__FILEID__),__FILEID__,__LINE__,id);
475 /*@LOG SMH_SETPARAM_GEN: varvalue */
476 LU_INFN_LOG(LU_DEBUG_TRACE|LU_HA,LU_MASK(__FILEID__),__FILEID__,__LINE__,varvalue);
477 changed_var[i]=id;
478 }
479
480 //handler array
481 if(err==SUCCESSFUL)
482 CM_READ_BE_UINT8(CurPtr,narr);
483 for(i=0;i<narr && err==SUCCESSFUL;i++){
484 CM_READ_BE_UINT8(CurPtr,id);
485 #warning this have to be changed: idx should be 16 bit,but also gen_mcmds.pl must be changed!
486 CM_READ_BE_UINT8(CurPtr,idx);
487 CM_READ_BE_UINT32(CurPtr,varvalue,tmp);
488 err=PRH_int_set_arr(id,idx,varvalue);
489 /*@LOG SMH_SETPARAM_GEN: id */
490 LU_INFN_LOG(LU_DEBUG_TRACE|LU_HA,LU_MASK(__FILEID__),__FILEID__,__LINE__,id);
491 /*@LOG SMH_SETPARAM_GEN: idx */
492 LU_INFN_LOG(LU_DEBUG_TRACE|LU_HA,LU_MASK(__FILEID__),__FILEID__,__LINE__,idx);
493 /*@LOG SMH_SETPARAM_GEN: varvalue */
494 LU_INFN_LOG(LU_DEBUG_TRACE|LU_HA,LU_MASK(__FILEID__),__FILEID__,__LINE__,varvalue);
495 changed_arr[i]=id;
496 }
497
498 //handler table
499 if(err==SUCCESSFUL)
500 CM_READ_BE_UINT8(CurPtr,ntab);
501 for(i=0;i<ntab && err==SUCCESSFUL;i++){
502 CM_READ_BE_UINT8(CurPtr,id);
503 CM_READ_BE_UINT8(CurPtr,r);
504 CM_READ_BE_UINT8(CurPtr,c);
505 CM_READ_BE_UINT32(CurPtr,varvalue,tmp);
506 err=PRH_int_set_tab(id,r,c,varvalue);
507 /*@LOG SMH_SETPARAM_GEN: id */
508 LU_INFN_LOG(LU_DEBUG_TRACE|LU_HA,LU_MASK(__FILEID__),__FILEID__,__LINE__,id);
509 /*@LOG SMH_SETPARAM_GEN: r */
510 LU_INFN_LOG(LU_DEBUG_TRACE|LU_HA,LU_MASK(__FILEID__),__FILEID__,__LINE__,r);
511 /*@LOG SMH_SETPARAM_GEN: c */
512 LU_INFN_LOG(LU_DEBUG_TRACE|LU_HA,LU_MASK(__FILEID__),__FILEID__,__LINE__,c);
513 /*@LOG SMH_SETPARAM_GEN: varvalue */
514 LU_INFN_LOG(LU_DEBUG_TRACE|LU_HA,LU_MASK(__FILEID__),__FILEID__,__LINE__,varvalue);
515 changed_tab[i]=id;
516 }
517 }
518 break;
519 case SMH_SETPARAM_ARRAY_RAW:
520 break;
521 case SMH_SETPARAM_TABLE_RAW:
522 break;
523 case SMH_SETPARAM_LOADUSERDATA:
524 case SMH_SETPARAM_APPENDUSERDATA:
525 CM_READ_BE_UINT8(CurPtr,buf_no);
526 CM_READ_BE_UINT16(CurPtr,len,tmp);
527 /*@LOG SMH_SETPARAM_LOADUSERDATA/SMH_SETPARAM_APPENDUSERDATA: buf_no */
528 LU_INFN_LOG(LU_DEBUG_TRACE,LU_MASK(__FILEID__),__FILEID__,__LINE__,buf_no);
529 /*@LOG SMH_SETPARAM_LOADUSERDATA/SMH_SETPARAM_APPENDUSERDATA: len */
530 LU_INFN_LOG(LU_DEBUG_TRACE,LU_MASK(__FILEID__),__FILEID__,__LINE__,len);
531 if(len > headerMcmd->Length*2 - 9*2 - 1) {
532 /*@LOG SMH_SETPARAM_LOADUSERDATA/SMH_SETPARAM_APPENDUSERDATA: length error ! */
533 LU_INFN_LOG(LU_CRITICAL|LU_HA,LU_MASK(__FILEID__),__FILEID__,__LINE__,0);
534 s=CM_RC_MCMD_FORMAT_ERROR;
535 }else{
536 if(buf_no >= HB_USERDATA_NO)
537 /*@LOG SMH_SETPARAM_LOADUSERDATA/SMH_SETPARAM_APPENDUSERDATA: buf_no error - buf_no */
538 LU_INFN_LOG(LU_CRITICAL|LU_HA,LU_MASK(__FILEID__),__FILEID__,__LINE__,buf_no);
539 else {
540 bufid=HB_USERDATA0+buf_no;
541 if(type == SMH_SETPARAM_LOADUSERDATA) {
542 s=HB_InitBuf(bufid);
543 if(s!=CM_RC_SUCCESSFUL)
544 /*@LOG SMH_SETPARAM_LOADUSERDATA: error init buffer - status */
545 LU_INFN_LOG(LU_CRITICAL|LU_HA,LU_MASK(__FILEID__),__FILEID__,__LINE__,s);
546 }
547
548 // s=HB_Store(bufid,len,CurPtr,0);
549 s=HB_StoreUserData(buf_no,len,CurPtr);
550 if(s!=CM_RC_SUCCESSFUL)
551 /*@LOG SMH_SETPARAM_LOADUSERDATA/SMH_SETPARAM_APPENDUSERDATA: StoreUserData error - status */
552 LU_INFN_LOG(LU_CRITICAL|LU_HA,LU_MASK(__FILEID__),__FILEID__,__LINE__,s);
553 }
554 }
555 break;
556 case SMH_SETPARAM_USERDATA2ARR:
557 case SMH_SETPARAM_USERDATA2TAB:
558 CM_READ_BE_UINT8(CurPtr,buf_no);
559 if(buf_no >= HB_USERDATA_NO)
560 /*@LOG SMH_SETPARAM_USERDATA2ARR/SMH_SETPARAM_USERDATA2TAB: buf_no error - buf_no */
561 LU_INFN_LOG(LU_CRITICAL|LU_HA,LU_MASK(__FILEID__),__FILEID__,__LINE__,buf_no);
562 else {
563 CM_READ_BE_UINT16(CurPtr,crc,tmp);
564 CM_READ_BE_UINT8(CurPtr,id);
565 /*@LOG SMH_SETPARAM_USERDATA2ARR/SMH_SETPARAM_USERDATA2TAB - buf_no */
566 LU_INFN_LOG(LU_DEBUG_TRACE|LU_HA,LU_MASK(__FILEID__),__FILEID__,__LINE__,buf_no);
567 /*@LOG SMH_SETPARAM_USERDATA2ARR/SMH_SETPARAM_USERDATA2TAB - id */
568 LU_INFN_LOG(LU_DEBUG_TRACE|LU_HA,LU_MASK(__FILEID__),__FILEID__,__LINE__,id);
569
570 bufid=HB_USERDATA0+buf_no;
571 switch(type) {
572 case SMH_SETPARAM_USERDATA2ARR:
573 s=HB_Userdata2Arr(bufid,id,crc);
574 if(s == CM_RC_SUCCESSFUL)
575 /*@LOG SMH_SETPARAM_USERDATA2ARR: - status */
576 LU_INFN_LOG(LU_CRITICAL|LU_HA,LU_MASK(__FILEID__),__FILEID__,__LINE__,s);
577 break;
578 case SMH_SETPARAM_USERDATA2TAB:
579 s=HB_Userdata2Tab(bufid,id,crc);
580 if(s == CM_RC_SUCCESSFUL)
581 /*@LOG SMH_SETPARAM_USERDATA2TAB: - status */
582 LU_INFN_LOG(LU_CRITICAL|LU_HA,LU_MASK(__FILEID__),__FILEID__,__LINE__,buf_no);
583 break;
584 default:
585 /*@LOG SMH_SETPARAM_USERDATA2ARR/SMH_SETPARAM_USERDATA2TAB type error - type */
586 LU_INFN_LOG(LU_INTERNAL|LU_HA,LU_MASK(__FILEID__),__FILEID__,__LINE__,type);
587 s=CM_RC_INTERNAL_ERR;
588 }
589 }
590 break;
591 case SMH_SETPARAM_READ_DEFAULT_PARAM :
592 err=PRH_ReadDefaultParam();
593 /*@LOG SMH_SETPARAM_READ_DEFAULT_PARAM - status */
594 LU_INFN_LOG(LU_NORMAL_TRACE|LU_HA,LU_MASK(__FILEID__),__FILEID__,__LINE__,err);
595 break;
596 case SMH_SETPARAM_SAVE2EEPROM:
597 err=PRH_WriteCurrentParam();
598 /*@LOG SMH_SETPARAM_SAVE2EEPROM - status */
599 LU_INFN_LOG(LU_NORMAL_TRACE|LU_HA,LU_MASK(__FILEID__),__FILEID__,__LINE__,err);
600 break;
601 case SMH_SETPARAM_LOADWS2TABLE:
602 err=WS_2_SetTable(headerMcmd);
603 /*@LOG SMH_SETPARAM_LOADWS2TABLE - status */
604 LU_INFN_LOG(LU_NORMAL_TRACE|LU_HA,LU_MASK(__FILEID__),__FILEID__,__LINE__,err);
605 break;
606 case SMH_SETPARAM_SAVEWS2TABLES:
607 /* Write On EEPROM */
608 err=WS_2_WriteWS2Tables();
609 /*@LOG SMH_SETPARAM_LOADWS2TABLE - status */
610 LU_INFN_LOG(LU_NORMAL_TRACE|LU_HA,LU_MASK(__FILEID__),__FILEID__,__LINE__,err);
611 break;
612 case SMH_SETPARAM_SETLOGMASKALL:
613 /* set the log mask for all modules to a specified value */
614 CM_READ_BE_UINT16(CurPtr,c,tmp);
615 /*@LOG SMH_SETPARAM_SETLOGMASKALL - mask value */
616 LU_INFN_LOG(LU_DEBUG_TRACE,LU_MASK(__FILEID__),__FILEID__,__LINE__,c);
617 LU_SetLogMaskAll(c);
618 default:
619 break;
620 }
621 PRH_int_set_automatic_log(old);
622 if(err != SUCCESSFUL) {
623 /*@LOG tis SetParam family SUBMODE have been failed */
624 LU_INFN_LOG(LU_CRITICAL|LU_HA,LU_MASK(__FILEID__),__FILEID__,__LINE__,type);
625 /*@LOG this error occurs during SetParam family SUBMODE */
626 LU_INFN_LOG(LU_CRITICAL|LU_HA,LU_MASK(__FILEID__),__FILEID__,__LINE__,err);
627 }
628 return err;
629 }
630
631
632 status_code PRH_var_write2eeprom(PRH_EEPROM_REGION region,unsigned int id) {
633 #ifdef SIMULATOR
634 return CM_RC_SUCCESSFUL;
635 #else
636 return (PRH_IS_STAMP_OK ? PRH_int_var_write2eeprom(region,id) : CM_RC_BAD_EEPROM);
637 #endif
638 }
639 status_code PRH_var_read_eeprom(PRH_EEPROM_REGION region,unsigned int id) {
640 #ifdef SIMULATOR
641 return CM_RC_SUCCESSFUL;
642 #else
643 return(PRH_IS_STAMP_OK ? PRH_int_var_read_eeprom(region,id): CM_RC_BAD_EEPROM);
644 #endif
645 }
646 status_code PRH_arr_write2eeprom(PRH_EEPROM_REGION region,unsigned int id) {
647 #ifdef SIMULATOR
648 return CM_RC_SUCCESSFUL;
649 #else
650 return(PRH_IS_STAMP_OK ? PRH_int_arr_write2eeprom(region,id): CM_RC_BAD_EEPROM);
651 #endif
652 }
653 status_code PRH_arr_read_eeprom(PRH_EEPROM_REGION region,unsigned int id) {
654 #ifdef SIMULATOR
655 return CM_RC_SUCCESSFUL;
656 #else
657 return(PRH_IS_STAMP_OK ?PRH_int_arr_read_eeprom(region,id): CM_RC_BAD_EEPROM);
658 #endif
659 }
660 status_code PRH_tab_write2eeprom(PRH_EEPROM_REGION region,unsigned int id) {
661 #ifdef SIMULATOR
662 return CM_RC_SUCCESSFUL;
663 #else
664 return(PRH_IS_STAMP_OK ?PRH_int_tab_write2eeprom(region,id): CM_RC_BAD_EEPROM);
665 #endif
666 }
667 status_code PRH_tab_read_eeprom(PRH_EEPROM_REGION region,unsigned int id) {
668 #ifdef SIMULATOR
669 return CM_RC_SUCCESSFUL;
670 #else
671 return(PRH_IS_STAMP_OK ?PRH_tab_read_eeprom(region,id): CM_RC_BAD_EEPROM);
672 #endif
673 }
674
675 extern UINT32 PRH_var_dump_len;
676 extern UINT32 PRH_arr_dump_len;
677 extern UINT32 PRH_tab_dump_len;
678
679 UINT32 PRH_get_var_dump_len() {
680 return PRH_var_dump_len;
681 }
682 UINT32 PRH_get_arr_dump_len() {
683 return PRH_arr_dump_len;
684 }
685 UINT32 PRH_get_tab_dump_len() {
686 return PRH_tab_dump_len;
687 }
688
689 /*
690 status_code PRH_var_dump_for_mm(DAQ_CMD_BUF *b) {
691 int i;
692 BOOL mm;
693 PRH_VAR_TYPE var;
694 for(i=0;i<PRH_VAR_MAX;i++) {
695 PRH_int_var_is_in_mm(i,&mm);
696 if(mm) {
697 PRH_int_get_var(i,&var);
698 if(DAQ_SPACE_LEFT(*b) < PRH_SIZEOF_VAR)
699 return CM_RC_NO_SPACE_LEFT;
700 DAQ_WRITE_BE_UINT32((*b),var);
701 }
702 }
703 return CM_RC_SUCCESSFUL;
704 }
705
706 status_code PRH_arr_dump_for_mm(DAQ_CMD_BUF *b) {
707 int i;
708 BOOL mm;
709 PRH_VAR_TYPE *arr;
710 for(i=0;i<PRH_ARR_MAX;i++) {
711 PRH_int_arr_is_in_mm(i,&mm);
712 if(mm) {
713 PRH_int_get_arr_ptr(i,&arr);
714 if(DAQ_SPACE_LEFT(*b) <= PRH_SIZEOF_ARR(i))
715 return CM_RC_NO_SPACE_LEFT;
716 DAQ_WRITE_BE_UINT32((*b),var);
717 }
718 }
719 return CM_RC_SUCCESSFUL;
720 }
721
722 status_code PRH_tab_dump_for_mm(DAQ_CMD_BUF *b) {
723 }
724 */

  ViewVC Help
Powered by ViewVC 1.1.23