00001 #ifndef SCTCONFIPC_CONFIGIPC_H
00002 #define SCTCONFIPC_CONFIGIPC_H
00003
00004 #include <ipc/object.h>
00005
00006 #include "sctConf/configuration.h"
00007 #include "configuration.hh"
00008
00009 namespace SctConfiguration {
00010
00011 class ConfigIPC : public virtual Configuration {
00012 ConfigIPC(const ConfigIPC &);
00013 ConfigIPC &operator=(const ConfigIPC &);
00014
00015 protected:
00016 ConfigurationException convertException(sctConf::ConfigurationException& e);
00017
00018
00019
00020
00021
00022
00023
00024
00025 sctConf::Configuration_var handle;
00026 public:
00027 ConfigIPC(sctConf::Configuration_ptr handle);
00028 ConfigIPC();
00029 ~ConfigIPC();
00030
00031 std::list<unsigned int> listPartitions();
00032 std::list<unsigned int> listCratesInPartition(unsigned int partition);
00033 std::list<unsigned int> listRodsInCrate(unsigned int partition, unsigned int crate);
00034 std::list<unsigned int> listMURSInRod(unsigned int partition, unsigned int crate, unsigned int rod);
00035 std::list<std::string> listModulesInMUR(unsigned int partition, unsigned int MUR);
00036 std::list<std::string> listRModulesInMUR(unsigned int partition, unsigned int MUR);
00037 std::list<std::string> listAllModules();
00038 std::list<std::string> listUnusedModules();
00039
00040 bool isDummyCrate(unsigned int partition, unsigned int crate);
00041
00042 ABCDModule getModuleConfig(const std::string module);
00043 short getModuleGroup(const std::string module);
00044 void setModuleGroup(const std::string module, short group);
00045
00046 unsigned int getModuleErrorMask(unsigned int partition, unsigned int crate, unsigned int rod, unsigned int channel, unsigned int link);
00047 void setModuleErrorMask(unsigned int partition, unsigned int crate, unsigned int rod, unsigned int channel, unsigned int link, unsigned int mask);
00048 void setDefaultModuleErrorMask(unsigned int mask);
00049
00050 RodConfig getRodConfig(unsigned int partition, unsigned int crate, unsigned int rod);
00051 SlaveConfig getDefaultSlaveConfig(char type);
00052 BOCChannelConfig getBOCConfig(unsigned int partition, unsigned int crate, unsigned int rod,
00053 unsigned int channel);
00054 BOCGlobalConfig getBOCGlobalConfig(unsigned int partition, unsigned int crate, unsigned int rod);
00055 TimConfig getTimConfig(unsigned int partition, unsigned int crate);
00056 unsigned char *getFibreMappings(unsigned int partition, unsigned int crate, unsigned int rod);
00057 void setFibreMapping(unsigned int partition, unsigned int crate, unsigned int rod,
00058 unsigned int channel, unsigned int tx, unsigned int rx0, unsigned int rx1);
00059 std::string printModuleConfig(const ABCDModule &conf);
00060 MURType getMURType(unsigned int MUR);
00061 unsigned int getFreeMurId();
00062 void translateToROD(unsigned int MUR, unsigned int module,
00063 unsigned int &partition, unsigned int &crate,
00064 unsigned int &rod, unsigned int &channel);
00065 void translateToRROD(unsigned int MUR, unsigned int module,
00066 unsigned int &partition, unsigned int &crate,
00067 unsigned int &rod, unsigned int &channel);
00068 void translateToSN(unsigned int MUR, unsigned int module,
00069 std::string &sn);
00070 void translateToRMUR (unsigned int, unsigned int, unsigned int &, unsigned int &);
00071 void translateToBarrel(unsigned int MUR, unsigned int module,
00072 unsigned int &barrel, unsigned int &row, int &number);
00073 void translateToEndcap(unsigned int MUR, unsigned int module,
00074 int &disk, unsigned int &ring, unsigned int &number);
00075 void translateToPowerSupply(unsigned int MUR, unsigned int module,
00076 unsigned int &partition,
00077 unsigned int &crate, unsigned int &channel);
00078 void translateFromROD(unsigned int partition, unsigned int crate,
00079 unsigned int rod, unsigned int channel,
00080 unsigned int &MUR, unsigned int &module);
00081 void translateFromRROD(unsigned int partition, unsigned int crate,
00082 unsigned int rod, unsigned int channel,
00083 unsigned int &MUR, unsigned int &module);
00084 void translateFromSN(const std::string sn,
00085 unsigned int &MUR, unsigned int &module);
00086 void translateFromRMUR (unsigned int RMUR, unsigned int rmodule, unsigned int &MUR, unsigned int &module);
00087 void translateFromBarrel(unsigned int barrel, unsigned int row, int number,
00088 unsigned int &MUR, unsigned int &module);
00089 void translateFromEndcap(int disk, unsigned int ring, unsigned int number,
00090 unsigned int &MUR, unsigned int &module);
00091 void translateFromPowerSupply(unsigned int partition,
00092 unsigned int crate, unsigned int channel,
00093 unsigned int &MUR, unsigned int &module);
00094 void configureModuleFromStructure(const std::string module, const ABCDModule conf);
00095 void configureModuleFromFile(const std::string filename);
00096 void configureROD(unsigned int partition, unsigned int crate, unsigned int rod, RodConfig conf);
00097 void configureTIM(unsigned int partition, unsigned int crate, TimConfig conf);
00098 void configureBOC(unsigned int partition, unsigned int crate, unsigned int rod, const BOCGlobalConfig &conf);
00099 void clearAll();
00100 void namePartition(unsigned int partition, const std::string name);
00101 void configureBOCChannel(unsigned int MUR, unsigned int position, const BOCChannelConfig &conf);
00102 void mapModuleMUR(unsigned int MUR, unsigned int order, unsigned int RMUR, unsigned int rorder, std::string number);
00103 void unmapModuleMUR(unsigned int MUR, unsigned int order);
00104 void mapRODMUR(unsigned int partition, unsigned int crate, unsigned int rod, unsigned int order, unsigned int number);
00105 void unmapRODMUR(unsigned int MUR);
00106 void mapBarrelMUR(unsigned int MUR, unsigned int barrel, unsigned int row, int position);
00107 void unmapBarrelMUR(unsigned int MUR);
00108 void getMapMURROD(unsigned int number, unsigned int &partition, unsigned int &crate, unsigned int &rod, unsigned int &order);
00109 void getMapRODMUR(unsigned int partition, unsigned int crate, unsigned int rod, unsigned int order, unsigned int &number);
00110 void getMapMURPhysical (unsigned int, SctConfiguration::MURType &, int &, int &, int &);
00111 void swapMURNames(unsigned int MUR1, unsigned int MUR2);
00112 void mapEndcapMUR(unsigned int MUR, int disk, unsigned int quadrant, unsigned int position);
00113 void unmapEndcapMUR(unsigned int MUR);
00114 void mapPowerChannel(unsigned int MUR, unsigned int number, unsigned int partition, unsigned int crate, unsigned int channel);
00115 void unmapPowerChannel(unsigned int MUR, unsigned int order);
00116
00117 void modifyDefaultPowerParam(std::string state, std::string name, std::string type, float value);
00118 void modifyHVCardParam(unsigned int crate, unsigned int card,
00119 std::string name, std::string type, float value);
00120 void modifyLVCardParam(unsigned int crate, unsigned int card,
00121 std::string name, std::string type, float value);
00122 void modifyPowerParam(unsigned int MUR, unsigned int number,
00123 std::string state, std::string name, std::string type, float value);
00124 void modifyPowerParamCC(unsigned int crate, unsigned int channel,
00125 std::string state, std::string name, std::string type, float value);
00126
00127 float getDefaultPowerParam(std::string state, std::string name, std::string type);
00128 float getHVCardParam(unsigned int crate, unsigned int card,
00129 std::string name, std::string type);
00130 float getLVCardParam(unsigned int crate, unsigned int card,
00131 std::string name, std::string type);
00132 float getPowerParam(unsigned int MUR, unsigned int number,
00133 std::string state, std::string name, std::string type);
00134 float getPowerParamCC(unsigned int crate, unsigned int channel,
00135 std::string state, std::string name, std::string type);
00136
00137 std::list<std::string> listDefaultPowerParams();
00138 std::list<std::string> listDCSChannelParams();
00139 std::list<std::string> listDCSCardParams();
00140 std::list<std::string> listDCSCrateParams();
00141 void useMRSForMessages(const bool valid);
00142 void useISForChanges(const bool valid);
00143 void loadConfiguration(const std::string &filename);
00144 std::string getConfigurationFileName();
00145 void saveConfiguration(const std::string filename = "");
00146 void saveModuleConfiguration(const std::string modsn, const std::string filename);
00147 std::string getModuleConfigurationString(const std::string modsn, const ABCDModule config);
00148 void writePowerSupplyConfiguration(std::string filename);
00149 };
00150
00151 }
00152 #endif //SCTCONFIPC_CONFIGIPC_H