configipc.h

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 /*   static Configuration *m_config; */
00019 
00020 /*   xmlDocPtr document; */
00021 /*   xmlXPathContextPtr xpathContext; */
00022 
00023 /*   Log log; */
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

Generated on Mon Feb 6 14:01:18 2006 for SCT DAQ/DCS Software - C++ by  doxygen 1.4.6