00001 #include "Configuration.h"
00002 #include "ScanMap.h"
00003 #include "Sct/Env.h"
00004 #include "Sct/IoExceptions.h"
00005 #include "Sct/OmniMarshalling.h"
00006 #include "Sct_SctApi/SctApiServer.h"
00007 #include "Sct/SctNames.h"
00008
00009 using namespace Sct;
00010
00011 namespace SctTest {
00012
00013 Configuration::Configuration() : IPCNamedObject<POA_SctTestApi::Configuration>(SctNames::getPartition(), SctTestApi::Configuration::instanceName){
00014 try {
00015 handy_setDataFile("${SCT_DAQ_ROOT}/installed/config/TestConfig/ModuleData.txt");
00016 } catch (Sct::FileException& fe) {
00017 fe.sendToMrs(MRS_INFORMATION);
00018 }
00019 handy_setFastTimes();
00020
00021 }
00022
00023 Configuration& Configuration::instance() {
00024 static Configuration configuration;
00025 return configuration;
00026 }
00027
00028 void Configuration::handy_setDataFile(string file) {
00029 string temp = Env::substituteVariables(file);
00030 ScanMap::instance().initialize(temp);
00031 dataFile = temp;
00032 }
00033
00034 string Configuration::handy_getDataFile() const {
00035 return dataFile;
00036 }
00037
00038 void Configuration::handy_setFastTimes() {
00039 handy_setScanTime(5);
00040 handy_setReadoutTime(1);
00041 handy_setMultiDspEfficiency(1);
00042 }
00043
00044 void Configuration::handy_setRealisticTimes() {
00045 handy_setScanTime(30);
00046 handy_setReadoutTime(1);
00047 handy_setMultiDspEfficiency(0.9);
00048 }
00049
00050 void Configuration::handy_setScanTime(unsigned int time) {
00051 scanTime = time;
00052 }
00053
00054 unsigned int Configuration::handy_getScanTime() const {
00055 return scanTime;
00056 }
00057
00058 void Configuration::handy_setMultiDspEfficiency(double efficiency) {
00059 dspEfficiency = efficiency;
00060 }
00061
00062 double Configuration::handy_getMultiDspEfficiency() const {
00063 return dspEfficiency;
00064 }
00065
00066 void Configuration::handy_setReadoutTime(unsigned int time) {
00067 readoutTime = time;
00068 }
00069
00070 unsigned int Configuration::handy_getReadoutTime() const {
00071 return readoutTime;
00072 }
00073
00074
00075 void Configuration::setDataFile (const char * file) {
00076 try {
00077 handy_setDataFile(file);
00078 } catch (Sct::FileException& e) {
00079
00080 throw SctTestApi::NoSuchFileException();
00081 }
00082 }
00083
00084 char * Configuration::getDataFile () {
00085 return copyStringToCorba(handy_getDataFile());
00086 }
00087
00088 void Configuration::setFastTimes () {
00089 handy_setFastTimes();
00090 }
00091
00092 void Configuration::setRealisticTimes () {
00093 handy_setRealisticTimes();
00094 }
00095
00096 void Configuration::setScanTime (CORBA::Long time) {
00097 handy_setScanTime(time);
00098 }
00099
00100 CORBA::Long Configuration::getScanTime () {
00101 return handy_getScanTime();
00102 }
00103
00104 void Configuration::setMultiDspEfficiency (CORBA::Double efficiency) {
00105 handy_setMultiDspEfficiency(efficiency);
00106 }
00107
00108 CORBA::Double Configuration::getMultiDspEfficiency () {
00109 return handy_getMultiDspEfficiency();
00110 }
00111
00112 void Configuration::setReadoutTime (CORBA::Long time) {
00113 handy_setReadoutTime(time);
00114 }
00115
00116 CORBA::Long Configuration::getReadoutTime () {
00117 return handy_getReadoutTime();
00118 }
00119
00120 }