00001 #include <ipc/object.h>
00002
00003 #include "sctConf/configuration.h"
00004 #include "sctConf.hh"
00005
00006 namespace SctConfiguration {
00007
00008 class ConfigIPC : public Configuration {
00009 ConfigIPC(const ConfigIPC &);
00010 ConfigIPC &operator=(const ConfigIPC &);
00011
00012
00013
00014
00015
00016
00017
00018
00019 IPCObjectVar<sctConf_T_Configuration> handle;
00020 public:
00021 ConfigIPC();
00022 ~ConfigIPC();
00023
00024 std::list<unsigned int> listPartitions();
00025 std::list<unsigned int> listCratesInPartition(unsigned int partition);
00026 std::list<unsigned int> listRodsInCrate(unsigned int partition, unsigned int crate);
00027 std::list<unsigned int> listMURSInRod(unsigned int partition, unsigned int crate, unsigned int rod);
00028 std::list<std::string> listModulesInMUR(unsigned int partition, unsigned int MUR);
00029 std::list<std::string> listRModulesInMUR(unsigned int partition, unsigned int MUR);
00030 std::list<std::string> listAllModules();
00031 std::list<std::string> listUnusedModules();
00032
00033 bool isDummyCrate(unsigned int partition, unsigned int crate);
00034
00035 ABCDModule getModuleConfig(const std::string module);
00036 RodConfig getRodConfig(unsigned int partition, unsigned int crate, unsigned int rod);
00037 BOCChannelConfig getBOCConfig(unsigned int partition, unsigned int crate, unsigned int rod,
00038 unsigned int channel);
00039 BOCGlobalConfig getBOCGlobalConfig(unsigned int partition, unsigned int crate, unsigned int rod);
00040 TimConfig getTimConfig(unsigned int partition, unsigned int crate);
00041 char *getFibreMappings(unsigned int partition, unsigned int crate, unsigned int rod);
00042 void setFibreMapping(unsigned int partition, unsigned int crate, unsigned int rod,
00043 unsigned int channel, unsigned int tx, unsigned int rx0, unsigned int rx1);
00044 void printModuleConfig(const ABCDModule &conf);
00045 MURType getMURType(unsigned int MUR);
00046 void translateToROD(unsigned int MUR, unsigned int module,
00047 unsigned int &partition, unsigned int &crate,
00048 unsigned int &rod, unsigned int &channel);
00049 void translateToRROD(unsigned int MUR, unsigned int module,
00050 unsigned int &partition, unsigned int &crate,
00051 unsigned int &rod, unsigned int &channel);
00052 void translateToSN(unsigned int MUR, unsigned int module,
00053 std::string &sn);
00054 void translateToBarrel(unsigned int MUR, unsigned int module,
00055 unsigned int &barrel, unsigned int &row, int &number);
00056 void translateToEndcap(unsigned int MUR, unsigned int module,
00057 unsigned int &disk, unsigned int &ring, unsigned int &number);
00058 void translateToPowerSupply(unsigned int MUR, unsigned int module,
00059 unsigned int &partition,
00060 unsigned int &crate, unsigned int &channel);
00061 void translateFromROD(unsigned int partition, unsigned int crate,
00062 unsigned int rod, unsigned int channel,
00063 unsigned int &MUR, unsigned int &module);
00064 void translateFromRROD(unsigned int partition, unsigned int crate,
00065 unsigned int rod, unsigned int channel,
00066 unsigned int &MUR, unsigned int &module);
00067 void translateFromSN(const std::string sn,
00068 unsigned int &MUR, unsigned int &module);
00069 void translateFromBarrel(unsigned int barrel, unsigned int row, int number,
00070 unsigned int &MUR, unsigned int &module);
00071 void translateFromEndcap(unsigned int disk, unsigned int ring, unsigned int number,
00072 unsigned int &MUR, unsigned int &module);
00073 void translateFromPowerSupply(unsigned int partition,
00074 unsigned int crate, unsigned int channel,
00075 unsigned int &MUR, unsigned int &module);
00076 void configureModuleFromStructure(const std::string module, const ABCDModule conf);
00077 void configureModuleFromFile(const std::string filename);
00078 void configureROD(unsigned int partition, unsigned int crate, unsigned int rod, RodConfig conf);
00079 void configureTIM(unsigned int partition, unsigned int crate, TimConfig conf);
00080 void configureBOC(unsigned int partition, unsigned int crate, unsigned int rod, const BOCGlobalConfig &conf);
00081 void clearAll();
00082 void namePartition(int partition, const std::string name);
00083 void configureBOCChannel(int MUR, int position, const BOCChannelConfig &conf);
00084 void mapModuleMUR(int MUR, int order, int RMUR, int rorder, std::string number);
00085 void mapRODMUR(int partition, int crate, int rod, int order, int number);
00086 void mapBarrelMUR(int MUR, int barrel, int row, int position);
00087 void swapMURNames(int MUR1, int MUR2);
00088 void mapEndcapMUR(int MUR, int disk, int quadrant, int position);
00089 void mapPowerChannel(int MUR, int number, unsigned int partition, unsigned int crate, unsigned int channel);
00090 void modifyPowerParam(int MUR, int number, std::string name, float value);
00091 void modifyDefaultPowerParam(std::string name, float value);
00092 float getPowerParam(int MUR, int number, std::string name);
00093 void loadConfiguration(const std::string &filename);
00094 void saveConfiguration(const std::string filename = "");
00095 void saveModuleConfiguration(const std::string modsn, const std::string filename);
00096 std::string getModuleConfigurationString(const std::string modsn, const ABCDModule config);
00097 void writePowerSupplyConfiguration(std::string filename);
00098 };
00099
00100 }