Go to the documentation of this file.00001
00002 #ifndef KMLFACTORIES_H
00003 #define KMLFACTORIES_H
00004
00005 #include "common/exception.h"
00006
00007 #include "KNI/kmlBase.h"
00008 #include "KNI/kmlMotBase.h"
00009 #include "KNI/kmlSctBase.h"
00010
00011
00012 #include <cstdlib>
00013
00014 #include <string>
00015 #include <fstream>
00016
00021
00025 class ConfigFileStateException : public Exception {
00026 public:
00027 ConfigFileStateException() throw ():
00028 Exception("ConfigFile is not open or other failure", -41) {}
00029 };
00030
00034 class ConfigFileSectionNotFoundException : public Exception {
00035 public:
00036 ConfigFileSectionNotFoundException(const std::string & attribute) throw ():
00037 Exception("Could not find section '" + attribute + "' in configfile", -42) {}
00038 };
00039
00043 class ConfigFileSubsectionNotFoundException : public Exception {
00044 public:
00045 ConfigFileSubsectionNotFoundException(const std::string & attribute) throw ():
00046 Exception("Could not find subsection '" + attribute + "' in configfile", -43) {}
00047 };
00048
00052 class ConfigFileEntryNotFoundException : public Exception {
00053 public:
00054 ConfigFileEntryNotFoundException(const std::string & attribute) throw ():
00055 Exception("Could not find entry '" + attribute + "' in configfile", -44) {}
00056 };
00057
00061 class ConfigFileSyntaxErrorException : public Exception {
00062 public:
00063 ConfigFileSyntaxErrorException(const std::string & line) throw ():
00064 Exception("Syntax error in this line: '" + line + "'", -45) {}
00065 };
00066
00070
00071
00072 namespace KNI {
00073
00078 class DLLDIR kmlFactory {
00079 private:
00080 std::ifstream _configfile;
00081 void _readEntry(char* dest, int destsz, const char* section, const char* subsection, const char* entry);
00082 public:
00083
00084 kmlFactory();
00085
00086 bool openFile(const char* filepath) {
00087 _configfile.open(filepath);
00088 return _configfile.fail() ? false : true;
00089 }
00090 #ifdef _UNICODE
00091 bool openFile(const wchar_t* filepath) {
00092 _configfile.open(filepath);
00093 return _configfile.fail() ? false : true;
00094 }
00095 #endif
00096
00097 TKatGNL getGNL();
00098 TKatMOT getMOT();
00099 TKatSCT getSCT();
00100 TKatEFF getEFF();
00101 TMotDesc* getMotDesc(short count);
00102 TSctDesc* getSctDesc(short count);
00103
00104 TMotCLB getMotCLB(short number);
00105 TMotSCP getMotSCP(short number);
00106 TMotDYL getMotDYL(short number);
00107
00110 int getType();
00113 int getKinematics();
00114
00115 TMotInit getMotInit(short number);
00116
00117 void getGripperParameters(bool& isPresent, int& openEncoders, int& closeEncoders);
00118 };
00119
00120
00121
00122 }
00123
00124 #endif