00001 #ifndef SCTTEST_HIGHLEVELAPI_H
00002 #define SCTTEST_HIGHLEVELAPI_H
00003
00004 #include <string>
00005 #include <memory>
00006 #include <ipc/object.h>
00007 #include <boost/shared_ptr.hpp>
00008 #include "ModuleData.h"
00009 #include "SctTestApi.hh"
00010
00011 using std::string;
00012
00013 namespace SctData {
00014 class ModuleConfiguration;
00015 class ConfigurationVariable;
00016 }
00017 class TestData;
00018
00019 extern std::auto_ptr<IPCServer> ipcServer;
00020
00021 namespace SctTest {
00022
00023 class HighLevelApi : public IPCObject, public virtual SctTestApi_T_HighLevelApi {
00024 public:
00025 static HighLevelApi& instance();
00026
00031 void setModuleSerial(string serial);
00032 string getModuleSerial() const;
00033
00038 void setDataFile(string file);
00039 string getDataFile() const;
00040
00045 void setXmlSummaryFile(string file);
00046 string getXmlSummaryFile() const;
00047
00048
00049 virtual void setDataFile (SctTestApiStatus *_status, ilu_T_CString file);
00050 virtual ilu_T_CString getDataFile (SctTestApiStatus *_status);
00051 virtual void setXmlSummaryFile (SctTestApiStatus *_status, ilu_T_CString file);
00052 virtual ilu_T_CString getXmlSummaryFile (SctTestApiStatus *_status);
00053 virtual void setModuleSerial (SctTestApiStatus *_status, ilu_T_CString serial);
00054 virtual ilu_T_CString getModuleSerial (SctTestApiStatus *_status);
00055 virtual void fullBypass(SctTestApiStatus *_status);
00056 virtual void timeWalk(SctTestApiStatus *_status);
00057 virtual void strobeDelay(SctTestApiStatus *_status);
00058 virtual void threePointGain(SctTestApiStatus *_status);
00059 virtual void responseCurve(SctTestApiStatus *_status);
00060 virtual void noiseOccupancy(SctTestApiStatus *_status);
00061 virtual void trim(SctTestApiStatus *_status);
00062 virtual void pipeline(SctTestApiStatus *_status);
00063
00064 private:
00065 HighLevelApi();
00066
00071 void getConfig(string serial);
00072 void addAndGetConfig(string serial);
00073 void publishTest(TestData& t) const;
00074 string getFileName(const TestInfo& info, unsigned int scanNumber) const;
00075 void doTest(const TestInfo& info, TestData& data, const SctData::ConfigurationVariable& var) const;
00076 void publishScan(const TestInfo& info, unsigned int scanNumber, const SctData::ConfigurationVariable& scan_variable, const SctData::ModuleConfiguration& config) const;
00077
00078 string serial;
00079 string xmlFile;
00080 ModuleData data;
00081 boost::shared_ptr<SctData::ModuleConfiguration> config;
00082 };
00083 }
00084
00085 #endif //SCTTEST_HIGHLEVELAPI_H