00001 #include <ipc/object.h>
00002 #include <ipc/server.h>
00003
00004 #include "sctConf.hh"
00005
00006 #include "sctConf/configXMLImpl.h"
00007
00008 class ConfigServer : public IPCObject, public virtual sctConf_T_Configuration {
00010 ConfigurationXMLImpl config;
00011
00012 public:
00013
00014 ConfigServer(const char* oid, IPCServer* server);
00015 virtual ~ConfigServer();
00016
00017
00018
00019 virtual sctConf_T_PartitionList listPartitions (sctConfStatus *_status);
00020 virtual sctConf_T_CrateList listCratesInPartition (sctConfStatus *_status, ilu_Cardinal partition);
00021 virtual ilu_Boolean isDummyCrate (sctConfStatus *_status, ilu_Cardinal partition, ilu_Cardinal crate);
00022 virtual sctConf_T_RodList listRodsInCrate (sctConfStatus *_status, ilu_Cardinal partition, ilu_Cardinal crate);
00023 virtual sctConf_T_MURList listMURSInRod (sctConfStatus *_status, ilu_Cardinal partition, ilu_Cardinal crate, ilu_Cardinal rod);
00024 virtual sctConf_T_ModuleList listModulesInMUR (sctConfStatus *_status, ilu_Cardinal partition, ilu_Cardinal MUR);
00025 virtual sctConf_T_ModuleList listRModulesInMUR (sctConfStatus *_status, ilu_Cardinal partition, ilu_Cardinal MUR);
00026 virtual sctConf_T_ModuleList listAllModules (sctConfStatus *_status);
00027 virtual sctConf_T_ModuleList listUnusedModules (sctConfStatus *_status);
00028 virtual sctConf_T_ABCDModule* getModuleConfig (sctConfStatus *_status, ilu_T_CString mod);
00029 virtual sctConf_T_RodConfig * getRodConfig (sctConfStatus *_status, ilu_Cardinal partition, ilu_Cardinal crate, ilu_Cardinal rod);
00030 virtual sctConf_T_TimConfig * getTimConfig (sctConfStatus *_status, ilu_Cardinal partition, ilu_Cardinal crate);
00031 virtual sctConf_T_CharBlock getFibreMappings (sctConfStatus *_status, ilu_Cardinal partition, ilu_Cardinal crate, ilu_Cardinal rod);
00032 virtual void setFibreMapping (sctConfStatus *_status, ilu_Cardinal partition, ilu_Cardinal crate, ilu_Cardinal rod, ilu_Cardinal channel, ilu_Cardinal tx, ilu_Cardinal rx0, ilu_Cardinal rx1);
00033 virtual sctConf_T_BOCChannelConfig * getBOCConfig (sctConfStatus *_status, ilu_Cardinal partition, ilu_Cardinal crate, ilu_Cardinal rod, ilu_Cardinal channel);
00034 virtual sctConf_T_BOCGlobalConfig * getBOCGlobalConfig (sctConfStatus *_status, ilu_Cardinal partition, ilu_Cardinal crate, ilu_Cardinal rod);
00035 virtual void printModuleConfig (sctConfStatus *_status, sctConf_T_ABCDModule* conf);
00036 virtual sctConf_T_MURType getMURType (sctConfStatus *_status, ilu_Cardinal MUR);
00037 virtual void translateToROD (sctConfStatus *_status, ilu_Cardinal MUR, ilu_Cardinal mod, ilu_Cardinal * partition, ilu_Cardinal * crate, ilu_Cardinal * rod, ilu_Cardinal * channel);
00038 virtual void translateToRROD (sctConfStatus *_status, ilu_Cardinal MUR, ilu_Cardinal mod, ilu_Cardinal * partition, ilu_Cardinal * crate, ilu_Cardinal * rod, ilu_Cardinal * channel);
00039 virtual void translateToSN (sctConfStatus *_status, ilu_Cardinal MUR, ilu_Cardinal mod, ilu_T_CString * sn);
00040 virtual void translateToBarrel (sctConfStatus *_status, ilu_Cardinal MUR, ilu_Cardinal mod, ilu_Cardinal * barrel, ilu_Cardinal * row, ilu_Integer * number);
00041 virtual void translateToEndcap (sctConfStatus *_status, ilu_Cardinal MUR, ilu_Cardinal mod, ilu_Cardinal * disk, ilu_Cardinal * ring, ilu_Cardinal * number);
00042 virtual void translateToPowerSupply (sctConfStatus *_status, ilu_Cardinal MUR, ilu_Cardinal mod, ilu_Cardinal * partition, ilu_Cardinal * crate, ilu_Cardinal * channel);
00043 virtual void translateFromROD (sctConfStatus *_status, ilu_Cardinal partition, ilu_Cardinal crate, ilu_Cardinal rod, ilu_Cardinal channel, ilu_Cardinal * MUR, ilu_Cardinal * mod);
00044 virtual void translateFromRROD (sctConfStatus *_status, ilu_Cardinal partition, ilu_Cardinal crate, ilu_Cardinal rod, ilu_Cardinal channel, ilu_Cardinal * MUR, ilu_Cardinal * mod);
00045 virtual void translateFromSN (sctConfStatus *_status, ilu_T_CString sn, ilu_Cardinal * MUR, ilu_Cardinal * mod);
00046 virtual void translateFromBarrel (sctConfStatus *_status, ilu_Cardinal barrel, ilu_Cardinal row, ilu_Integer number, ilu_Cardinal * MUR, ilu_Cardinal * mod);
00047 virtual void translateFromEndcap (sctConfStatus *_status, ilu_Cardinal disk, ilu_Cardinal ring, ilu_Cardinal number, ilu_Cardinal * MUR, ilu_Cardinal * mod);
00048 virtual void translateFromPowerSupply (sctConfStatus *_status, ilu_Cardinal partition, ilu_Cardinal crate, ilu_Cardinal channel, ilu_Cardinal * MUR, ilu_Cardinal * mod);
00049 virtual void configureModuleFromStructure (sctConfStatus *_status, ilu_T_CString number, sctConf_T_ABCDModule* mConf);
00050 virtual void configureModuleFromFile (sctConfStatus *_status, ilu_T_CString filename);
00051 virtual void configureROD (sctConfStatus *_status, ilu_Cardinal partition, ilu_Cardinal crate, ilu_Cardinal rod, sctConf_T_RodConfig * conf);
00052 virtual void configureTIM (sctConfStatus *_status, ilu_Cardinal partition, ilu_Cardinal crate, sctConf_T_TimConfig * conf);
00053 virtual void configureBOC (sctConfStatus *_status, ilu_Cardinal partition, ilu_Cardinal crate, ilu_Cardinal rod, sctConf_T_BOCGlobalConfig * conf);
00054 virtual void clearAll (sctConfStatus *_status);
00055 virtual void namePartition (sctConfStatus *_status, ilu_Cardinal partition, ilu_T_CString name);
00056 virtual void mapRODMUR (sctConfStatus *_status, ilu_Cardinal partition, ilu_Cardinal crate, ilu_Cardinal rod, ilu_Cardinal order, ilu_Cardinal number);
00057 virtual void mapBarrelMUR (sctConfStatus *_status, ilu_Cardinal MUR, ilu_Cardinal barrel, ilu_Cardinal row, ilu_Cardinal position);
00058 virtual void mapEndcapMUR (sctConfStatus *_status, ilu_Cardinal MUR, ilu_Cardinal disk, ilu_Cardinal quadrant, ilu_Cardinal position);
00059 virtual void mapPowerChannel (sctConfStatus *_status, ilu_Cardinal MUR, ilu_Cardinal number, ilu_Cardinal partition, ilu_Cardinal crate, ilu_Cardinal channel);
00060 virtual void mapModuleMUR (sctConfStatus *_status, ilu_Cardinal MUR, ilu_Cardinal order, ilu_Cardinal RMUR, ilu_Cardinal rorder, ilu_T_CString sn);
00061 virtual void swapMURNames (sctConfStatus *_status, ilu_Cardinal MUR1, ilu_Cardinal MUR2);
00062 virtual void modifyPowerParam (sctConfStatus *_status, ilu_Cardinal MUR, ilu_Cardinal number, ilu_T_CString name, ilu_ShortReal value);
00063 virtual void modifyDefaultPowerParam (sctConfStatus *_status, ilu_T_CString name, ilu_ShortReal value);
00064 virtual ilu_ShortReal getPowerParam (sctConfStatus *_status, ilu_Cardinal MUR, ilu_Cardinal number, ilu_T_CString name);
00065 virtual void configureBOCChannel (sctConfStatus *_status, ilu_Cardinal MUR, ilu_Cardinal position, sctConf_T_BOCChannelConfig * conf);
00066 virtual void loadConfiguration (sctConfStatus *_status, ilu_T_CString filename);
00067 virtual void saveConfiguration (sctConfStatus *_status, ilu_T_CString filename);
00068 virtual void saveModuleConfiguration (sctConfStatus *_status, ilu_T_CString sn, ilu_T_CString filename);
00069 virtual ilu_T_CString getModuleConfigurationString (sctConfStatus *_status, ilu_T_CString modsn, sctConf_T_ABCDModule* config);
00070 virtual void writePowerSupplyConfiguration (sctConfStatus *_status, ilu_T_CString directory);
00071 };