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
00020
00021 namespace SctTest {
00022
00023 class HighLevelApi : public IPCNamedObject<POA_SctTestApi::HighLevelApi> {
00024 public:
00025 static HighLevelApi& instance();
00026
00027
00028
00033 void handy_setModuleSerial(const string & serial);
00034 string handy_getModuleSerial() const;
00035
00040 void handy_setDataFile(const string & file);
00041 string handy_getDataFile() const;
00042
00047 void handy_setXmlSummaryFile(const string & file);
00048 string handy_getXmlSummaryFile() const;
00049
00050
00051 virtual void setDataFile (const char * file);
00052 virtual char * getDataFile ();
00053 virtual void setXmlSummaryFile (const char * file);
00054 virtual char * getXmlSummaryFile ();
00055 virtual void setModuleSerial (const char * serial);
00056 virtual char * getModuleSerial ();
00057 virtual void fullBypass();
00058 virtual void timeWalk();
00059 virtual void strobeDelay();
00060 virtual void threePointGain();
00061 virtual void responseCurve();
00062 virtual void noiseOccupancy();
00063 virtual void trim();
00064 virtual void pipeline();
00065 virtual void shutdown() {};
00066
00067 private:
00068 HighLevelApi();
00069
00074 void getConfig(string serial);
00075 void addAndGetConfig(string serial);
00076 void publishTest(TestData& t) const;
00077 string getFileName(const TestInfo& info, unsigned int scanNumber) const;
00078 void doTest(const TestInfo& info, TestData& data, const SctData::ConfigurationVariable& var) const;
00079 void publishScan(const TestInfo& info, unsigned int scanNumber, const SctData::ConfigurationVariable& scan_variable, const SctData::ModuleConfiguration& config) const;
00080
00081 string serial;
00082 string xmlFile;
00083 ModuleData data;
00084 boost::shared_ptr<SctData::ModuleConfiguration> config;
00085 };
00086 }
00087
00088 #endif //SCTTEST_HIGHLEVELAPI_H