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