00001 #ifndef IPC_IDL
00002 #include "ipc/ipc.idl"
00003 #define IPC_IDL
00004 #endif
00005
00006 module sctConf {
00007 struct SlaveConfig {
00008 string ipramFile;
00009 string idramFile;
00010 string extFile;
00011 };
00012
00013 typedef sequence <SlaveConfig> SlaveList;
00014
00015 struct RodConfig {
00016 unsigned long baseAddress;
00017
00018 unsigned long resetLevel;
00019 SlaveList slaves;
00020
00021 short validMask;
00022
00023 octet triggerTypeTTC;
00024 octet triggerTypeTIM;
00025 octet offsetBCID;
00026 };
00027
00028 struct TimConfig {
00029 unsigned long baseAddress;
00030
00031 unsigned long triggerType;
00032 float trigFrequency;
00033 float resetFrequency;
00034
00035 short validMask;
00036
00037 octet triggerTypeTTC;
00038 octet triggerTypeTIM;
00039 octet offsetBCID;
00040 unsigned short triggerEnablesInternal;
00041 unsigned short triggerEnablesTTC;
00042 };
00043
00044
00045
00046
00047
00048
00049
00050 struct BOCChannelConfig {
00051 short current;
00052 short delay;
00053 short markSpace;
00054
00055 short threshold0;
00056 short delay0;
00057
00058 short threshold1;
00059 short delay1;
00060 };
00061
00062 struct BOCGlobalConfig {
00068 short validMask;
00069
00070 short clockControl;
00071 short rxDataMode;
00072 short rxDacClear;
00073 short txDacClear;
00074 short vernierFinePhase;
00075 short vernierClockPhase0;
00076 short vernierClockPhase1;
00077 short bpmClockPhase;
00078 short bregClockPhase;
00079 };
00080
00081
00082
00083
00084
00085
00086
00087
00088
00089 struct ABCDConfig {
00090 unsigned long bitField;
00091 };
00092
00093
00094 typedef octet UnusedArray8_3[3];
00095 typedef unsigned long UnusedArray32_3[3];
00096 typedef float RcParam[3];
00097 struct ABCDCaldata{
00098 octet rc_function;
00099 UnusedArray8_3 unused0;
00100 RcParam rc_params;
00101 float c_factor;
00102 UnusedArray32_3 unused1;
00103 };
00104
00105 typedef unsigned long MaskArray[4];
00106 struct ABCDBasic {
00107 ABCDConfig config;
00108 octet vthr;
00109 octet vcal;
00110 octet delay;
00111 octet preamp;
00112 octet shaper;
00113 UnusedArray8_3 unused;
00114 MaskArray mask;
00115 };
00116
00117 typedef octet TrimArray[128];
00118 struct ABCDChip{
00119 octet active;
00120 octet address;
00121 octet normalMasks;
00122 octet target;
00123 ABCDBasic basic;
00124 ABCDCaldata caldata;
00125 TrimArray trim;
00126 };
00127
00128 typedef ABCDChip ChipArray[12];
00129 typedef octet RxArray[2];
00130 typedef octet UnusedArray8_2[2];
00131 typedef unsigned long UnusedArray32_7[7];
00132 typedef octet SerialNumberArray[16];
00133
00134 struct ABCDModule{
00135 ChipArray chip;
00136 octet present;
00137 octet active;
00138 octet select;
00139 octet groupId;
00140 unsigned long bocConfig;
00141 octet pTTC;
00142 octet rTTC;
00143 RxArray rx;
00144 octet normalMasks;
00145 octet moduleNumber;
00146 UnusedArray8_2 unused1;
00147 SerialNumberArray serialNumber;
00148 unsigned long mid;
00149 UnusedArray32_7 unused2;
00150 };
00151
00152
00153
00154
00155
00156
00157
00158 exception ConfigurationException {
00159 string detail;
00160 };
00161
00162 typedef sequence <unsigned long> PartitionList;
00163 typedef sequence <unsigned long> CrateList;
00164 typedef sequence <unsigned long> RodList;
00165 typedef sequence <unsigned long> MURList;
00166 typedef sequence <string> ModuleList;
00167 typedef sequence <string> NameList;
00168 typedef sequence <octet> CharBlock;
00169
00170 enum MURType {BARREL, ENDCAP, UNMAPPED, UNKNOWN};
00171
00172 interface Configuration : ipc::servant {
00173
00174 const string instanceName = "SCTConfigurationServer";
00175
00176
00177
00178
00179
00180 PartitionList listPartitions()
00181 raises(ConfigurationException);
00182 CrateList listCratesInPartition(in unsigned long partition)
00183 raises(ConfigurationException);
00184 boolean isDummyCrate(in unsigned long partition, in unsigned long crate);
00185 RodList listRodsInCrate(in unsigned long partition, in unsigned long crate)
00186 raises(ConfigurationException);
00187 MURList listMURSInRod(in unsigned long partition, in unsigned long crate, in unsigned long rod)
00188 raises(ConfigurationException);
00189 ModuleList listModulesInMUR(in unsigned long partition, in unsigned long MUR)
00190 raises(ConfigurationException);
00191 ModuleList listRModulesInMUR(in unsigned long partition, in unsigned long MUR)
00192 raises(ConfigurationException);
00193
00194 ModuleList listAllModules()
00195 raises(ConfigurationException);
00196
00197 ModuleList listUnusedModules()
00198 raises(ConfigurationException);
00199
00200 ABCDModule getModuleConfig(in string mod)
00201 raises(ConfigurationException);
00202
00203 unsigned short getModuleGroup(in string mod)
00204 raises(ConfigurationException);
00205 void setModuleGroup(in string mod, in short group)
00206 raises(ConfigurationException);
00207
00208 unsigned long getModuleErrorMask(in unsigned long partition, in unsigned long crate, in unsigned long rod,
00209 in unsigned long channel, in unsigned short link)
00210 raises(ConfigurationException);
00211 void setModuleErrorMask(in unsigned long partition, in unsigned long crate, in unsigned long rod,
00212 in unsigned long channel, in unsigned short link, in unsigned long mask)
00213 raises(ConfigurationException);
00214 void setDefaultModuleErrorMask(in unsigned long mask)
00215 raises(ConfigurationException);
00216
00217 RodConfig getRodConfig(in unsigned long partition, in unsigned long crate, in unsigned long rod)
00218 raises(ConfigurationException);
00219 SlaveConfig getDefaultSlaveConfig(in octet type)
00220 raises(ConfigurationException);
00221 TimConfig getTimConfig(in unsigned long partition, in unsigned long crate)
00222 raises(ConfigurationException);
00223
00224
00225 CharBlock getFibreMappings(in unsigned long partition, in unsigned long crate, in unsigned long rod)
00226 raises(ConfigurationException);
00227 void setFibreMapping(in unsigned long partition, in unsigned long crate, in unsigned long rod,
00228 in unsigned long channel, in unsigned long tx, in unsigned long rx0, in unsigned long rx1)
00229 raises(ConfigurationException);
00230
00231 BOCChannelConfig getBOCConfig(in unsigned long partition, in unsigned long crate, in unsigned long rod,
00232 in unsigned long channel)
00233 raises(ConfigurationException);
00234
00235 BOCGlobalConfig getBOCGlobalConfig(in unsigned long partition, in unsigned long crate, in unsigned long rod)
00236 raises(ConfigurationException);
00237
00238 string printModuleConfig(in ABCDModule conf)
00239 raises(ConfigurationException);
00240
00241 MURType getMURType(in unsigned long MUR)
00242 raises(ConfigurationException);
00243
00244 unsigned long getFreeMurId()
00245 raises(ConfigurationException);
00246
00247 void translateToROD(in unsigned long MUR, in unsigned long mod,
00248 out unsigned long partition, out unsigned long crate,
00249 out unsigned long rod, out unsigned long channel)
00250 raises(ConfigurationException);
00251
00252 void translateToRROD(in unsigned long MUR, in unsigned long mod,
00253 out unsigned long partition, out unsigned long crate,
00254 out unsigned long rod, out unsigned long channel)
00255 raises(ConfigurationException);
00256
00257 void translateToSN(in unsigned long MUR, in unsigned long mod,
00258 out string sn)
00259 raises(ConfigurationException);
00260
00261 void translateToRMUR(in unsigned long RMUR, in unsigned long rmod,
00262 out unsigned long MUR, out unsigned long mod)
00263 raises(ConfigurationException);
00264
00265 void translateToBarrel(in unsigned long MUR, in unsigned long mod,
00266 out unsigned long barrel, out unsigned long row, out long number)
00267 raises(ConfigurationException);
00268
00269 void translateToEndcap(in unsigned long MUR, in unsigned long mod,
00270 out long disk, out unsigned long ring, out unsigned long number)
00271 raises(ConfigurationException);
00272
00273 void translateToPowerSupply(in unsigned long MUR, in unsigned long mod,
00274 out unsigned long partition,
00275 out unsigned long crate, out unsigned long channel)
00276 raises(ConfigurationException);
00277
00278 void translateFromROD(in unsigned long partition, in unsigned long crate,
00279 in unsigned long rod, in unsigned long channel,
00280 out unsigned long MUR, out unsigned long mod)
00281 raises(ConfigurationException);
00282
00283 void translateFromRROD(in unsigned long partition, in unsigned long crate,
00284 in unsigned long rod, in unsigned long channel,
00285 out unsigned long MUR, out unsigned long mod)
00286 raises(ConfigurationException);
00287
00288 void translateFromSN(in string sn,
00289 out unsigned long MUR, out unsigned long mod)
00290 raises(ConfigurationException);
00291
00292 void translateFromRMUR(in unsigned long MUR, in unsigned long mod,
00293 out unsigned long RMUR, out unsigned long rmod)
00294 raises(ConfigurationException);
00295
00296 void translateFromBarrel(in unsigned long barrel, in unsigned long row, in long number,
00297 out unsigned long MUR, out unsigned long mod)
00298 raises(ConfigurationException);
00299
00300 void translateFromEndcap(in long disk, in unsigned long ring, in unsigned long number,
00301 out unsigned long MUR, out unsigned long mod)
00302 raises(ConfigurationException);
00303
00304 void translateFromPowerSupply(in unsigned long partition,
00305 in unsigned long crate, in unsigned long channel,
00306 out unsigned long MUR, out unsigned long mod)
00307 raises(ConfigurationException);
00308
00310
00311
00312
00313
00314
00315
00316
00317 void configureModuleFromStructure(in string number, in ABCDModule mConf)
00318 raises(ConfigurationException);
00319
00320 void configureModuleFromFile(in string filename)
00321 raises(ConfigurationException);
00322
00323 void configureROD(in unsigned long partition, in unsigned long crate, in unsigned long rod, in RodConfig conf)
00324 raises(ConfigurationException);
00325
00326 void configureTIM(in unsigned long partition, in unsigned long crate, in TimConfig conf)
00327 raises(ConfigurationException);
00328
00329 void configureBOC(in unsigned long partition, in unsigned long crate, in unsigned long rod, in BOCGlobalConfig conf)
00330 raises(ConfigurationException);
00331
00332 void clearAll()
00333 raises(ConfigurationException);
00334
00335 void namePartition(in unsigned long partition, in string name)
00336 raises(ConfigurationException);
00337
00338 void mapRODMUR(in unsigned long partition, in unsigned long crate, in unsigned long rod, in unsigned long order,
00339 in unsigned long number)
00340 raises(ConfigurationException);
00341
00342 void unmapRODMUR(in unsigned long MUR)
00343 raises(ConfigurationException);
00344
00345 void mapBarrelMUR(in unsigned long MUR, in unsigned long barrel, in unsigned long row, in long position)
00346 raises(ConfigurationException);
00347
00348 void unmapBarrelMUR(in unsigned long MUR)
00349 raises(ConfigurationException);
00350
00351 void mapEndcapMUR(in unsigned long MUR, in long disk, in unsigned long quadrant, in unsigned long position)
00352 raises(ConfigurationException);
00353
00354 void unmapEndcapMUR(in unsigned long MUR)
00355 raises(ConfigurationException);
00356
00357 void mapPowerChannel(in unsigned long MUR, in unsigned long number,
00358 in unsigned long partition, in unsigned long crate, in unsigned long channel)
00359 raises(ConfigurationException);
00360
00361 void unmapPowerChannel(in unsigned long MUR, in unsigned long number)
00362 raises(ConfigurationException);
00363
00364 void mapModuleMUR(in unsigned long MUR, in unsigned long order,
00365 in unsigned long RMUR, in unsigned long rorder,
00366 in string sn)
00367 raises(ConfigurationException);
00368
00369 void unmapModuleMUR(in unsigned long MUR, in unsigned long order)
00370 raises(ConfigurationException);
00371
00372 void getMapMURROD(in unsigned long MUR,
00373 out unsigned long partition, out unsigned long crate, out unsigned long rod, out unsigned long order)
00374 raises(ConfigurationException);
00375
00376 void getMapRODMUR(in unsigned long partition, in unsigned long crate, in unsigned long rod, in unsigned long order,
00377 out unsigned long MUR)
00378 raises(ConfigurationException);
00379
00380 MURType getMapMURPhysical(in unsigned long MUR,
00381 out unsigned long plane, out unsigned long section, out unsigned long position)
00382 raises(ConfigurationException);
00383
00384 void swapMURNames(in unsigned long MUR1, in unsigned long MUR2)
00385 raises(ConfigurationException);
00386
00387 void modifyDefaultPowerParam(in string state, in string name, in string type, in float value)
00388 raises(ConfigurationException);
00389
00390 void modifyHVCardParam(in unsigned long crate, in unsigned long card,
00391 in string name, in string type, in float value)
00392 raises(ConfigurationException);
00393
00394 void modifyLVCardParam(in unsigned long crate, in unsigned long card,
00395 in string name, in string type, in float value)
00396 raises(ConfigurationException);
00397
00398 void modifyPowerParam(in unsigned long MUR, in unsigned long number,
00399 in string state, in string name, in string type, in float value)
00400 raises(ConfigurationException);
00401
00402 void modifyPowerParamCC(in unsigned long crate, in unsigned long channel,
00403 in string state, in string name, in string type, in float value)
00404 raises(ConfigurationException);
00405
00406 float getDefaultPowerParam(in string state, in string name, in string type)
00407 raises(ConfigurationException);
00408
00409 float getHVCardParam(in unsigned long crate, in unsigned long card, in string name, in string type)
00410 raises(ConfigurationException);
00411
00418 float getLVCardParam(in unsigned long crate, in unsigned long card, in string name, in string type)
00419 raises(ConfigurationException);
00420
00428 float getPowerParam(in unsigned long MUR, in unsigned long number, in string state, in string name, in string type)
00429 raises(ConfigurationException);
00430
00438 float getPowerParamCC(in unsigned long crate, in unsigned long channel, in string state, in string name, in string type)
00439 raises(ConfigurationException);
00440
00441 NameList listDefaultPowerParams()
00442 raises(ConfigurationException);
00443
00444 NameList listDCSChannelParams()
00445 raises(ConfigurationException);
00446
00447 NameList listDCSCardParams()
00448 raises(ConfigurationException);
00449
00450 NameList listDCSCrateParams()
00451 raises(ConfigurationException);
00452
00453 void configureBOCChannel(in unsigned long MUR, in unsigned long position, in BOCChannelConfig conf)
00454 raises(ConfigurationException);
00455
00456 void useMRSForMessages(in boolean valid)
00457 raises(ConfigurationException);
00458
00459 void useISForChanges(in boolean valid)
00460 raises(ConfigurationException);
00461
00462 void loadConfiguration(in string filename)
00463 raises(ConfigurationException);
00464
00465 string getConfigurationFileName()
00466 raises(ConfigurationException);
00467
00468 void saveConfiguration(in string filename)
00469 raises(ConfigurationException);
00470
00471 void saveModuleConfiguration(in string sn, in string filename)
00472 raises(ConfigurationException);
00473
00474 string getModuleConfigurationString(in string modsn, in ABCDModule config)
00475 raises(ConfigurationException);
00476
00477 void writePowerSupplyConfiguration(in string directory)
00478 raises(ConfigurationException);
00479
00480 };
00481
00482 typedef sequence <unsigned long> RunNumberList;
00483
00484 interface ConfigurationArchive : ipc::servant {
00485 const string instanceName = "Configuration_Archive_Server";
00486
00491 Configuration getOldRunConfiguration(in unsigned long runNumber, in boolean start);
00492
00496 RunNumberList listConfigurationRuns();
00497 };
00498 };