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 ABCDModule getModuleConfig(const std::string module);
00034 RodConfig getRodConfig(unsigned int partition, unsigned int crate, unsigned int rod);
00035 BOCChannelConfig getBOCConfig(unsigned int partition, unsigned int crate, unsigned int rod,
00036 unsigned int channel);
00037 TimConfig getTimConfig(unsigned int partition, unsigned int crate);
00038 char *getFibreMappings(unsigned int partition, unsigned int crate, unsigned int rod);
00039 void setFibreMapping(unsigned int partition, unsigned int crate, unsigned int rod,
00040 unsigned int channel, unsigned int tx, unsigned int rx0, unsigned int rx1);
00041 void printModuleConfig(const ABCDModule &conf);
00042 MURType getMURType(unsigned int MUR);
00043 void translateToROD(unsigned int MUR, unsigned int module,
00044 unsigned int &partition, unsigned int &crate,
00045 unsigned int &rod, unsigned int &channel);
00046 void translateToRROD(unsigned int MUR, unsigned int module,
00047 unsigned int &partition, unsigned int &crate,
00048 unsigned int &rod, unsigned int &channel);
00049 void translateToSN(unsigned int MUR, unsigned int module,
00050 std::string &sn);
00051 void translateToBarrel(unsigned int MUR, unsigned int module,
00052 unsigned int &barrel, unsigned int &row, int &number);
00053 void translateToEndcap(unsigned int MUR, unsigned int module,
00054 unsigned int &disk, unsigned int &ring, unsigned int &number);
00055 void translateToPowerSupply(unsigned int MUR, unsigned int module,
00056 unsigned int &partition,
00057 unsigned int &crate, unsigned int &channel);
00058 void translateFromROD(unsigned int partition, unsigned int crate,
00059 unsigned int rod, unsigned int channel,
00060 unsigned int &MUR, unsigned int &module);
00061 void translateFromRROD(unsigned int partition, unsigned int crate,
00062 unsigned int rod, unsigned int channel,
00063 unsigned int &MUR, unsigned int &module);
00064 void translateFromSN(const std::string sn,
00065 unsigned int &MUR, unsigned int &module);
00066 void translateFromBarrel(unsigned int barrel, unsigned int row, int number,
00067 unsigned int &MUR, unsigned int &module);
00068 void translateFromEndcap(unsigned int disk, unsigned int ring, unsigned int number,
00069 unsigned int &MUR, unsigned int &module);
00070 void translateFromPowerSupply(unsigned int partition,
00071 unsigned int crate, unsigned int channel,
00072 unsigned int &MUR, unsigned int &module);
00073 void configureModuleFromStructure(const std::string module, const ABCDModule conf);
00074 void configureModuleFromFile(const std::string filename);
00075 void configureROD(unsigned int partition, unsigned int crate, unsigned int rod, RodConfig conf);
00076 void configureTIM(unsigned int partition, unsigned int crate, TimConfig conf);
00077 void clearAll();
00078 void namePartition(int partition, const std::string name);
00079 void configureBOCChannel(int MUR, int position, const BOCChannelConfig &conf);
00080 void mapModuleMUR(int MUR, int order, int RMUR, int rorder, std::string number);
00081 void mapRODMUR(int partition, int crate, int rod, int order, int number);
00082 void mapBarrelMUR(int MUR, int barrel, int row, int position);
00083 void swapMURNames(int MUR1, int MUR2);
00084 void mapEndcapMUR(int MUR, int disk, int quadrant, int position);
00085 void mapPowerChannel(int MUR, int number, unsigned int partition, unsigned int crate, unsigned int channel);
00086 void modifyPowerParam(int MUR, int number, std::string name, float value);
00087 void modifyDefaultPowerParam(std::string name, float value);
00088 float getPowerParam(int MUR, int number, std::string name);
00089 void loadConfiguration(const std::string &filename);
00090 void saveConfiguration(const std::string filename = "");
00091 void saveModuleConfiguration(const std::string modsn, const std::string filename);
00092 std::string getModuleConfigurationString(const std::string modsn, const ABCDModule config);
00093 void writePowerSupplyConfiguration(std::string filename);
00094 };
00095
00096 }