00001 #ifndef _RTS_SYSTEMS_H_
00002 #define _RTS_SYSTEMS_H_
00003
00004 #include <stdio.h>
00005 #include <sys/types.h>
00006 #include <string.h>
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029 #define TRG_TPC_BIT 0
00030
00031 #define TRG_SVT_BIT 1
00032
00033 #define TRG_BSMD_BIT 2
00034
00035 #define TRG_FTPC_BIT 3
00036
00037 #define TRG_TOF_BIT 4
00038
00039 #define TRG_SSD_BIT 5 // used to be RICH
00040
00041 #define TRG_BTOW_BIT 6
00042 #define TRG_EMC_BIT TRG_BTOW_BIT // use "BTOW"
00043
00044 #define TRG_FPD_BIT 7
00045
00046 #define TRG_ETOW_BIT 8
00047 #define TRG_EEC_BIT TRG_ETOW_BIT // use "ETOW"
00048
00049 #define TRG_ESMD_BIT 9
00050
00051 #define TRG_PMD_BIT 10
00052
00053
00054
00055 #define TRG_CTB_BIT 14 // does not have a LIVE bit
00056
00057 #define TRG_BBC_BIT 15 // does not have a LIVE bit
00058
00059
00060
00061
00062
00063
00064
00065
00066
00067
00068
00069
00070
00071
00072
00073 #define TCD_ESMD 6 //0x10,
00074 #define TCD_BBC 7 //0x11, trigger-only
00075 #define TCD_ETOW 8 //0x12,
00076 #define TCD_MTD_QT 9 //0x13, trigger-only
00077 #define TCD_FGT 10 //0x14, Aug 26, 2009: was FPD's before
00078 #define TCD_TOF 11 //0x15,
00079 #define TCD_PP 12 //0x16
00080 #define TCD_MTD 13 //0x17
00081 #define TCD_TPX 14 //0x18
00082 #define TCD_BSMD 15 //0x19
00083 #define TCD_CTB 16 //0x1A, trigger-only
00084 #define TCD_BTOW 17 //0x1B
00085 #define TCD_FTPC 18 //0x1C; gone in Sep '11
00086 #define TCD_PMD 19 //0x1D; gone in Sep '11
00087 #define TCD_GMT 20 //0x1E; WAS: empty, Nov, 2008
00088 #define TCD_VPD 21 //0x1F trigger-only
00089
00090
00091
00092
00093 #define FTP_GRP 0
00094 #define SST_GRP 0 // same as old FTPC
00095
00096 #define PP_GRP 1
00097 #define ETOW_GRP 2
00098 #define BTOW_GRP 3
00099 #define BSMD_GRP 4
00100 #define TOF_GRP 5
00101 #define ESMD_GRP 6
00102 #define TPX_GRP 7
00103
00104 #define PMD_GRP 8
00105 #define PXL_GRP 8 // same as old PMD
00106
00107 #define FGT_GRP 9
00108 #define IST_GRP 10
00109 #define RPII_GRP 11
00110 #define GMT_GRP 14
00111 #define MTD_GRP 15
00112
00113
00114
00115
00116
00117
00118
00119
00120
00121
00122
00123
00124
00125
00126
00127
00128
00129
00130
00131
00132
00133
00134
00135
00136
00137
00138
00139
00140
00141
00142
00143
00144
00145
00146
00147
00148
00149
00150
00151
00152
00153
00154
00155
00156
00157
00158
00159
00160
00161
00162
00163
00164
00165
00166 #define LOCALHOST_NODE 0
00167 #define MY_NODE 0
00168 #define ERROR_NODE 0xFFFF
00169
00170
00171
00172
00173
00174
00175
00176 #define TPC_SYSTEM 0
00177 #define TPC_ID TPC_SYSTEM
00178
00179 #define SVT_SYSTEM 1
00180 #define SVT_ID SVT_SYSTEM
00181
00182 #define TOF_SYSTEM 2
00183 #define TOF_ID TOF_SYSTEM
00184
00185
00186 #define BTOW_SYSTEM 3
00187 #define BTOW_ID BTOW_SYSTEM
00188
00189
00190
00191 #define FPD_SYSTEM 4
00192 #define FPD_ID FPD_SYSTEM
00193
00194 #define FTP_SYSTEM 5
00195 #define FTP_ID FTP_SYSTEM
00196
00197
00198 #define EXT_SYSTEM 6
00199 #define EXT_ID EXT_SYSTEM
00200
00201
00202 #define RIC_SYSTEM 7
00203 #define RIC_ID RIC_SYSTEM
00204
00205 #define TRG_SYSTEM 8
00206 #define TRG_ID TRG_SYSTEM
00207
00208 #define L3_SYSTEM 9
00209 #define L3_ID L3_SYSTEM
00210
00211 #define SC_SYSTEM 10
00212 #define SC_ID SC_SYSTEM
00213
00214
00215 #define EXT2_SYSTEM 11
00216 #define EXT2_ID EXT2_SYSTEM
00217
00218 #define PMD_SYSTEM 12
00219 #define PMD_ID PMD_SYSTEM
00220
00221 #define SSD_SYSTEM 13
00222 #define SSD_ID SSD_SYSTEM
00223
00224
00225 #define ETOW_SYSTEM 14
00226 #define ETOW_ID ETOW_SYSTEM
00227
00228 #define DAQ_SYSTEM 15
00229 #define DAQ_ID DAQ_SYSTEM
00230 #define RTS_SYSTEM DAQ_SYSTEM
00231
00232
00233 #define FGT_SYSTEM 16
00234 #define FGT_ID FGT_SYSTEM
00235
00236 #define PP_SYSTEM 17
00237 #define PP_ID PP_SYSTEM
00238
00239 #define BSMD_SYSTEM 18
00240 #define BSMD_ID BSMD_SYSTEM
00241
00242 #define ESMD_SYSTEM 19
00243 #define ESMD_ID ESMD_SYSTEM
00244
00245 #define TPX_SYSTEM 20
00246 #define TPX_ID TPX_SYSTEM
00247
00248 #define PXL_SYSTEM 21
00249 #define PXL_ID PXL_SYSTEM
00250
00251 #define MTD_SYSTEM 22
00252 #define MTD_ID MTD_SYSTEM
00253
00254 #define IST_SYSTEM 23
00255 #define IST_ID IST_SYSTEM
00256
00257 #define SST_SYSTEM 24
00258 #define SST_ID SST_SYSTEM
00259
00260 #define RPII_SYSTEM 25
00261 #define RPII_ID RPII_SYSTEM
00262
00263 #define GMT_SYSTEM 26
00264 #define GMT_ID GMT_SYSTEM
00265
00266
00267 #define RTS_NUM_SYSTEMS 27
00268
00269 #define PP_SEQE_INSTANCE 1
00270 #define PP_SEQW_INSTANCE 2
00271 #define PP_TRG_INSTANCE 3
00272 #define PP_TEST_INSTANCE 4
00273
00274
00275
00276
00277
00278 #define TRG_L1_SUBSYS 1
00279 #define TRG_L2_SUBSYS 2
00280
00281 #define GL3_SUBSYS 1
00282 #define SL3_SUBSYS 2
00283
00284 #define EVB_SUBSYS 1
00285 #define GB_SUBSYS 2
00286 #define EVBL_SUBSYS 3
00287
00288
00289
00290
00291
00292 #ifndef RTS_PROJECT_PP
00293 #define DAQMAN_INSTANCE 1
00294 #endif
00295
00296 #define BB_INSTANCE 2
00297
00298 #ifndef RTS_PROJECT_PP
00299 #define EVP_INSTANCE 3
00300 #endif
00301
00302
00303 #define BDB_INSTANCE 4 // we'll keep the BDB controller's node_id the same...
00304
00305
00306
00307
00308
00309 #define RC_CLIENT_INSTANCE 14
00310 #define CLIENT_INSTANCE 15
00311
00312
00313 #ifdef RTS_PROJECT_PP
00314 #define DAQMAN_INSTANCE BB_INSTANCE
00315 #define EVP_INSTANCE BB_INSTANCE
00316 #endif
00317
00318 #define TRG_INSTANCE 1
00319 #define TRG_L1_INSTANCE 2
00320 #define TRG_L2_INSTANCE 3
00321 #define TRG_TCD_INSTANCE 4
00322 #define TRG_RCC_INSTANCE 5
00323 #define TRG_CTB_INSTANCE 6
00324 #define TRG_MIX_INSTANCE 6
00325
00326 #define TRG_SCALER48_INSTANCE 7
00327
00328 #define TRG_BC1_INSTANCE 9
00329 #define TRG_BCE_INSTANCE 10
00330 #define TRG_BCW_INSTANCE 11
00331 #define TRG_SCALER_INSTANCE 12
00332 #define TRG_BBC_INSTANCE 13
00333
00334 #define TRG_FMS_INSTANCE 15
00335 #define TRG_L0_INSTANCE 16 // Tonko. Feb25,03
00336 #define TRG_QT1_INSTANCE 17
00337 #define TRG_QT2_INSTANCE 18
00338 #define TRG_QT3_INSTANCE 19
00339 #define TRG_QT4_INSTANCE 20
00340 #define TRG_BBQ_INSTANCE 21
00341 #define TRG_MXQ_INSTANCE 22
00342 #define TRG_FEQ_INSTANCE 23
00343
00344 #define L3EVP_INSTANCE 1
00345 #define L3DISP_INSTANCE 2
00346
00347
00348
00349
00350
00351
00352
00353
00354
00355
00356
00357
00358
00359 #define EVBL_NODES(x) ((DAQ_SYSTEM<<12) | (EVBL_SUBSYS<<8) | (x))
00360 #define EVBX_NODES(x) ((DAQ_SYSTEM<<12) | (EVB_SUBSYS<<8) | (x))
00361 #define EVBX_NODE_COUNT 6 // in a run epoch, used by monitoring and RICH scalers!
00362
00363 #define GB_NODES(x) ((DAQ_SYSTEM<<12) | (GB_SUBSYS<<8 ) | (x))
00364 #define GB_NODE GB_NODES(1)
00365
00366
00367 #define BB_NODE ((DAQ_SYSTEM<<12) | BB_INSTANCE)
00368
00369 #ifdef RTS_PROJECT_PP
00370
00371 #define DAQMAN_NODE BB_NODE
00372 #define EVP_NODE BB_NODE
00373 #define BB2_NODE BB_NODE
00374
00375 #else
00376
00377 #define DAQMAN_NODE ((DAQ_SYSTEM<<12) | DAQMAN_INSTANCE)
00378 #define EVP_NODE ((DAQ_SYSTEM<<12) | EVP_INSTANCE)
00379 #define BB2_NODE ((DAQ_SYSTEM<<12) | BB2_INSTANCE)
00380
00381 #endif
00382
00383
00384 #define RC_NODE DAQMAN_NODE
00385 #define LOG_NODE DAQMAN_NODE
00386 #define MON_NODE DAQMAN_NODE
00387
00388
00389 #define RC_CLIENT_NODE ((DAQ_SYSTEM<<12) | RC_CLIENT_INSTANCE)
00390 #define CLIENT_NODE ((DAQ_SYSTEM<<12) | CLIENT_INSTANCE)
00391
00392
00393
00394
00395
00396
00397
00398
00399
00400 #define BDB_NODE ((DAQ_SYSTEM<<12) | BDB_INSTANCE) // old GB...
00401
00402
00403 #define RIC01_NODE ((RIC_SYSTEM<<12) | 1)
00404 #define RIC02_NODE ((RIC_SYSTEM<<12) | 2)
00405 #define RIC_NODE RIC01_NODE
00406
00407 #define TOF01_NODE ((TOF_SYSTEM<<12) | 1) // DAQ end
00408 #define TOF02_NODE ((TOF_SYSTEM<<12) | 2) // Platform
00409 #define TOF03_NODE ((TOF_SYSTEM<<12) | 3) // new, test node
00410 #define TOF_NODE TOF01_NODE
00411 #define TOF_NODES ((TOF_SYSTEM<<12) | (x)) // shorthand
00412
00413 #define FPD01_NODE ((FPD_SYSTEM<<12) | 1)
00414 #define FPD02_NODE ((FPD_SYSTEM<<12) | 2)
00415 #define FPD_NODE FPD01_NODE
00416
00417 #define FPD_DEST_HOST "gb.daq.bnl.local"
00418 #define FPD_PORT 5211
00419
00420
00421 #define TPC_NODES(x) ((TPC_SYSTEM<<12) | (x))
00422
00423 #define FTP_NODES(x) ((FTP_SYSTEM<<12) | (x))
00424
00425 #define SVT_NODES(x) ((SVT_SYSTEM<<12) | (x))
00426
00427
00428
00429
00430 #define BTOW_NODE ((BTOW_SYSTEM<<12) | 1)
00431
00432 #define BSMD_NODE ((EXT_SYSTEM<<12)|(BSMD_SYSTEM<<4)|1)
00433 #define BSMD_NODES(x) ((EXT_SYSTEM<<12)|(BSMD_SYSTEM<<4) | (x))
00434
00435 #define BPRE_NODE ((BTOW_SYSTEM<<12) | 2)
00436
00437
00438 #define PMD01_NODE ((EXT_SYSTEM<<12)|(PMD_SYSTEM<<4) | 1)
00439 #define PMD02_NODE ((EXT_SYSTEM<<12)|(PMD_SYSTEM<<4) | 2)
00440 #define PMD03_NODE ((EXT_SYSTEM<<12)|(PMD_SYSTEM<<4) | 3)
00441 #define PMD_NODES(x) ((EXT_SYSTEM<<12)|(PMD_SYSTEM<<4) | (x))
00442
00443 #define PMD_NODE PMD03_NODE
00444
00445 #define PMD_DEST_HOST "gb.daq.bnl.local"
00446 #define PMD_PORT_1 5201
00447 #define PMD_PORT_2 5202 // becomes 5202 soon!
00448
00449 #define SSD01_NODE ((EXT_SYSTEM<<12)|(SSD_SYSTEM<<4) | 1)
00450 #define SSD_NODE SSD01_NODE
00451
00452
00453 #define FGT01_NODE ((EXT_SYSTEM<<12)|(FGT_SYSTEM<<4) | 1)
00454 #define FGT_NODE FGT01_NODE
00455
00456
00457
00458
00459 #define ETOW_NODE ((EXT_SYSTEM<<12)|(ETOW_SYSTEM<<4)|1)
00460 #define ESMD_NODE ((EXT_SYSTEM<<12)|(ESMD_SYSTEM<<4)|1)
00461
00462
00463
00464 #define L3_NODES(x) ((L3_SYSTEM<<12) | (SL3_SUBSYS<<8) | (x))
00465 #define SL3_NODES(x) ((L3_SYSTEM<<12) | (SL3_SUBSYS<<8) | (x))
00466 #define GL3_NODES(x) ((L3_SYSTEM<<12) | (GL3_SUBSYS<<8) | (x))
00467 #define GL3_NODE GL3_NODES(1)
00468 #define GL3_NODE_COUNT 10 // maximum count of nodes per run epoch
00469
00470 #define L3EVP_NODE ((L3_SYSTEM<<12) | 1)
00471 #define L3DISP_NODE ((L3_SYSTEM<<12) | 2)
00472
00473
00474
00475 #define TRG_NODE ((TRG_SYSTEM<<12) | TRG_INSTANCE)
00476 #define TRG_L1_NODE ((TRG_SYSTEM<<12) | TRG_L1_INSTANCE)
00477
00478 #define TRG_L2_NODE ((TRG_SYSTEM<<12) | (TRG_L2_SUBSYS<<8) | (1))
00479 #define TRG_TCD_NODE ((TRG_SYSTEM<<12) | TRG_TCD_INSTANCE)
00480 #define TRG_RCC_NODE ((TRG_SYSTEM<<12) | TRG_RCC_INSTANCE)
00481 #define TRG_CTB_NODE ((TRG_SYSTEM<<12) | TRG_CTB_INSTANCE)
00482 #define TRG_MIX_NODE ((TRG_SYSTEM<<12) | TRG_MIX_INSTANCE)
00483 #define TRG_L1_NODES(x) ((TRG_SYSTEM<<12) | (TRG_L1_SUBSYS<<8) | (x))
00484 #define TRG_L2_NODES(x) ((TRG_SYSTEM<<12) | (TRG_L2_SUBSYS<<8) | (x))
00485
00486 #define TRG_BC1_NODE ((TRG_SYSTEM<<12) | TRG_BC1_INSTANCE)
00487 #define TRG_BCE_NODE ((TRG_SYSTEM<<12) | TRG_BCE_INSTANCE)
00488 #define TRG_BCW_NODE ((TRG_SYSTEM<<12) | TRG_BCW_INSTANCE)
00489 #define TRG_SCALER_NODE ((TRG_SYSTEM<<12) | TRG_SCALER_INSTANCE)
00490 #define TRG_BBC_NODE ((TRG_SYSTEM<<12) | TRG_BBC_INSTANCE)
00491
00492 #define TRG_FMS_NODE ((TRG_SYSTEM<<12) | TRG_FMS_INSTANCE)
00493 #define TRG_L0_NODE ((TRG_SYSTEM<<12) | TRG_L0_INSTANCE) // Tonko, Feb25,03
00494 #define TRG_QT1_NODE ((TRG_SYSTEM<<12) | TRG_QT1_INSTANCE)
00495 #define TRG_QT2_NODE ((TRG_SYSTEM<<12) | TRG_QT2_INSTANCE)
00496 #define TRG_QT3_NODE ((TRG_SYSTEM<<12) | TRG_QT3_INSTANCE)
00497 #define TRG_QT4_NODE ((TRG_SYSTEM<<12) | TRG_QT4_INSTANCE)
00498 #define TRG_BBQ_NODE ((TRG_SYSTEM<<12) | TRG_BBQ_INSTANCE)
00499 #define TRG_MXQ_NODE ((TRG_SYSTEM<<12) | TRG_MXQ_INSTANCE)
00500 #define TRG_FEQ_NODE ((TRG_SYSTEM<<12) | TRG_FEQ_INSTANCE)
00501
00502 #define TRG_SCALER48_NODE ((TRG_SYSTEM<<12) | TRG_SCALER48_INSTANCE)
00503
00504
00505 #define TDI_NODE ((TRG_SYSTEM<<12) | TRG_TDI_INSTANCE)
00506
00507 #define L201_NODE TRG_L2_NODES(1)
00508
00509
00510 #define SC_NODE ((SC_SYSTEM<<12) | 1)
00511
00512
00513 #define PP_SEQE_NODE ((EXT_SYSTEM<<12) | ((PP_SYSTEM)<<4) | PP_SEQE_INSTANCE)
00514
00515
00516 #define PP_SEQ1_NODE PP_SEQE_NODE
00517
00518 #define PP_SEQW_NODE ((EXT_SYSTEM<<12) | ((PP_SYSTEM)<<4) | PP_SEQW_INSTANCE)
00519
00520 #define PP_SEQ2_NODE PP_SEQW_NODE
00521
00522 #define PP_TRG_NODE ((EXT_SYSTEM<<12) | ((PP_SYSTEM)<<4) | PP_TRG_INSTANCE)
00523 #define PP_TEST_NODE ((EXT_SYSTEM<<12) | ((PP_SYSTEM)<<4) | PP_TEST_INSTANCE)
00524
00525
00526 #define PP_NODES(x) ((EXT_SYSTEM<<12) | ((PP_SYSTEM)<<4) | (x))
00527
00528 #define TPX_NODES(x) ((EXT2_SYSTEM<<12) | (TPX_SYSTEM<<7) | (x))
00529 #define MTD_NODES(x) ((EXT2_SYSTEM<<12) | (MTD_SYSTEM<<7) | (x))
00530
00531 #define PXL_NODES(x) ((EXT2_SYSTEM<<12) | (PXL_SYSTEM<<7) | (x))
00532 #define IST_NODES(x) ((EXT2_SYSTEM<<12) | (IST_SYSTEM<<7) | (x))
00533 #define SST_NODES(x) ((EXT2_SYSTEM<<12) | (SST_SYSTEM<<7) | (x))
00534 #define RPII_NODES(x) ((EXT2_SYSTEM<<12) | (RPII_SYSTEM<<7) | (x))
00535
00536 #define GMT_NODES(x) ((EXT2_SYSTEM<<12) | (GMT_SYSTEM<<7) | (x))
00537
00538 extern inline const char *rts2name(int rts_id)
00539 {
00540 switch(rts_id) {
00541 case TPC_SYSTEM :
00542 return "TPC" ;
00543 case SVT_SYSTEM :
00544 return "SVT" ;
00545 case TOF_SYSTEM :
00546 return "TOF" ;
00547 case BTOW_SYSTEM :
00548 return "BTOW" ;
00549 case FPD_SYSTEM :
00550 return "FPD" ;
00551 case FTP_SYSTEM :
00552 return "FTP" ;
00553 case PMD_SYSTEM :
00554 return "PMD" ;
00555 case SSD_SYSTEM :
00556 return "SSD" ;
00557 case ETOW_SYSTEM :
00558 return "ETOW" ;
00559 case FGT_SYSTEM :
00560 return "FGT" ;
00561 case BSMD_SYSTEM :
00562 return "BSMD" ;
00563 case ESMD_SYSTEM :
00564 return "ESMD" ;
00565 case DAQ_SYSTEM :
00566 return "DAQ" ;
00567 case TRG_SYSTEM :
00568 return "TRG" ;
00569 case L3_SYSTEM :
00570 return "L3" ;
00571 case SC_SYSTEM :
00572 return "SC" ;
00573 case TPX_SYSTEM :
00574 return "TPX" ;
00575 case PXL_SYSTEM :
00576 return "PXL" ;
00577 case PP_SYSTEM :
00578 return "PP2PP" ;
00579 case RIC_SYSTEM :
00580 return "RICH" ;
00581 case MTD_SYSTEM :
00582 return "MTD" ;
00583 case IST_SYSTEM :
00584 return "IST" ;
00585 case SST_SYSTEM :
00586 return "SST" ;
00587 case RPII_SYSTEM :
00588 return "RPII" ;
00589 case GMT_SYSTEM :
00590 return "GMT" ;
00591 default :
00592 return (const char *)NULL ;
00593 }
00594 } ;
00595
00596 #ifndef __vxworks
00597 extern inline int name2rts(const char *name)
00598 {
00599 for(int rts_id=0;rts_id<32;rts_id++) {
00600 const char *r_name = rts2name(rts_id) ;
00601 if(r_name && name && (strncasecmp(name,r_name,strlen(r_name))==0)) return rts_id ;
00602 }
00603
00604 return -1 ;
00605 }
00606 #endif
00607
00608
00609
00610
00611 extern inline int rts2det(int ix)
00612 {
00613 switch(ix) {
00614 case RIC_ID :
00615 case TPC_ID :
00616 case SVT_ID :
00617 case TOF_ID :
00618 case BTOW_ID :
00619 case FPD_ID :
00620 case FTP_ID :
00621 case PMD_ID :
00622 case SSD_ID :
00623 case ETOW_ID :
00624 case BSMD_ID :
00625 case ESMD_ID :
00626 case TPX_ID :
00627 case PXL_ID :
00628 case PP_ID :
00629 case FGT_ID :
00630 case MTD_ID :
00631 case IST_ID :
00632 case SST_ID :
00633 case RPII_ID :
00634 case GMT_ID :
00635 return ix ;
00636 default :
00637 return -1 ;
00638 }
00639
00640 }
00641
00642 extern inline int rts2tcd(int rts)
00643 {
00644 static const int map[32] = {
00645 -1,
00646 -1,
00647 TCD_TOF,
00648 TCD_BTOW,
00649 -1,
00650 TCD_FTPC,
00651 -1,
00652 -1,
00653 -1,
00654 -1,
00655 -1,
00656 -1,
00657 TCD_PMD,
00658 -1,
00659 TCD_ETOW,
00660 -1,
00661 TCD_FGT,
00662 TCD_PP,
00663 TCD_BSMD,
00664 TCD_ESMD,
00665 TCD_TPX,
00666 -1,
00667 TCD_MTD,
00668 -1,
00669 -1,
00670 -1,
00671 TCD_GMT
00672 -1,
00673 -1,
00674 -1,
00675 -1,
00676 -1,
00677 } ;
00678
00679 return map[rts] ;
00680
00681 }
00682
00683 extern inline int tcd2rts(int tcd)
00684 {
00685 static int map[32] = {
00686 -1,
00687 -1,
00688 -1,
00689 -1,
00690 -1,
00691 -1,
00692 ESMD_SYSTEM,
00693 -1,
00694 ETOW_SYSTEM,
00695 -1,
00696 FGT_SYSTEM,
00697 TOF_SYSTEM,
00698 PP_SYSTEM,
00699 MTD_SYSTEM,
00700 TPX_SYSTEM,
00701 BSMD_SYSTEM,
00702 -1,
00703 BTOW_SYSTEM,
00704 FTP_SYSTEM,
00705 PMD_SYSTEM,
00706 GMT_SYSTEM,
00707 -1,
00708 -1,
00709 -1,
00710 -1,
00711 -1,
00712 -1
00713 -1,
00714 -1,
00715 -1,
00716 -1,
00717 -1,
00718 -1
00719 };
00720
00721
00722 return map[tcd] ;
00723 } ;
00724
00725
00726
00727 #define LEGACY_DETS (1<<FTP_ID)
00728 #define DAQ1000_DETS ((1<<TPX_ID) | (1<<TOF_ID) | (1<<PXL_ID) | (1<<PMD_ID) | (1<<ESMD_ID) | (1<<PP_ID) | (1<<FGT_ID) | \
00729 (1<<L3_ID) | (1 << BSMD_ID) | (1 << MTD_ID) | (1<<IST_ID) | (1<<SST_ID) | (1<<RPII_ID) | (1<<GMT_ID) | (1<<BTOW_ID) | (1<<ETOW_ID))
00730
00731
00732 extern inline u_int grp2rts_mask(int grp)
00733 {
00734 u_int ret ;
00735
00736 ret = 0 ;
00737
00738 if(grp & (1<<FTP_GRP)) {
00739 ret |= (1<<FTP_SYSTEM) ;
00740 }
00741 if(grp & (1 << PP_GRP)) {
00742 ret |= (1 << PP_SYSTEM);
00743 }
00744 if(grp & (1 << ETOW_GRP)) {
00745 ret |= (1 << ETOW_SYSTEM) ;
00746 }
00747 if(grp & (1 << BTOW_GRP)) {
00748 ret |= (1 << BTOW_SYSTEM) ;
00749 }
00750 if(grp & (1 << BSMD_GRP)) {
00751 ret |= (1 << BSMD_SYSTEM) ;
00752 }
00753 if(grp & (1 << TOF_GRP)) {
00754 ret |= (1 << TOF_SYSTEM) ;
00755 }
00756 if(grp & (1 << ESMD_GRP)) {
00757 ret |= (1 << ESMD_SYSTEM) ;
00758 }
00759 if(grp & (1 << TPX_GRP)) {
00760 ret |= (1 << TPX_SYSTEM);
00761 }
00762 if(grp & (1 << PMD_GRP)) {
00763 ret |= (1 << PMD_SYSTEM);
00764 }
00765 if(grp & (1 << FGT_GRP)) {
00766 ret |= (1 << FGT_SYSTEM);
00767 }
00768 if(grp & (1 << MTD_GRP)) {
00769 ret |= (1 << MTD_SYSTEM);
00770 }
00771 if(grp & (1 << GMT_GRP)) {
00772 ret |= (1 << GMT_SYSTEM);
00773 }
00774
00775 return ret ;
00776 }
00777
00778
00779 extern inline int rts2grp(int rts)
00780 {
00781 switch(rts)
00782 {
00783
00784 case FTP_ID:
00785 return FTP_GRP;
00786 case PP_ID:
00787 return PP_GRP;
00788 case ETOW_ID:
00789 return ETOW_GRP;
00790 case ESMD_ID:
00791 return ESMD_GRP;
00792 case BTOW_ID:
00793 return BTOW_GRP;
00794 case BSMD_ID:
00795 return BSMD_GRP;
00796 case TOF_ID:
00797 return TOF_GRP;
00798 case TPX_ID:
00799 return TPX_GRP;
00800 case PMD_ID:
00801 return PMD_GRP;
00802 case FGT_ID:
00803 return FGT_GRP;
00804 case MTD_ID:
00805 return MTD_GRP;
00806 case GMT_ID :
00807 return GMT_GRP;
00808
00809 case SST_ID :
00810 return SST_GRP;
00811 case PXL_ID :
00812 return PXL_GRP;
00813 case IST_ID :
00814 return IST_GRP ;
00815 case RPII_ID :
00816 return RPII_GRP ;
00817 default:
00818 return 31 ;
00819 }
00820 }
00821
00822
00823
00824
00825
00826
00827
00828
00829 extern inline int GET_NODE(int sys, int subsys, int inst)
00830 {
00831 int node ;
00832
00833 if((sys <= 10) || (sys==15)) {
00834 node = (sys<<12) | (subsys<<8) | (inst);
00835 }
00836 else if (sys < 20) {
00837 node = (EXT_SYSTEM << 12) | (sys<<4) | (inst);
00838 }
00839 else {
00840 node = (EXT2_SYSTEM << 12) | (sys<<7) | (inst);
00841 }
00842
00843 return node ;
00844 } ;
00845
00846 extern inline int GET_SYSTEM(unsigned short node)
00847 {
00848 int id;
00849 id = (node & 0xf000) >> 12;
00850
00851 if(id == EXT_SYSTEM) return (node & 0x03f0) >> 4;
00852 if(id == EXT2_SYSTEM) return (node & 0x0f80) >> 7;
00853 return id;
00854 }
00855
00856 extern inline int GET_INSTANCE(unsigned short node)
00857 {
00858 int id;
00859
00860 id = (node & 0xf000) >> 12;
00861 if(id == EXT_SYSTEM) return node & 0xf;
00862 if(id == EXT2_SYSTEM) return node & 0x7f;
00863 return node & 0xff;
00864 }
00865
00866 extern inline int GET_SUBSYSTEM(unsigned short node)
00867 {
00868 int id = (node & 0xf000) >> 12;
00869
00870 if(id == EXT_SYSTEM) return 0;
00871 if(id == EXT2_SYSTEM) return 0;
00872 return (node & 0x0300) >> 8;
00873 }
00874
00875 #define GET_NODE_PRE_APR2002(sys,subsys,inst) ((sys<<12) | (subsys<<8) | (inst))
00876 #define GET_SYSTEM_PRE_APR2002(x) (((x) >> 12) & 0xf)
00877 #define GET_INSTANCE_PRE_APR2002(x) ((x) & 0xff)
00878 #define GET_SUBSYSTEM_PRE_APR2002(x) (((x) >> 8) & 0x3)
00879
00880 #define GET_ROUTE(x) (((x) >> 10) & 0x3)
00881
00882 #endif
00883
00884
00885