Initial commit

This commit is contained in:
2017-09-19 08:27:10 +02:00
commit 3b2e49f7b7
138 changed files with 199299 additions and 0 deletions

115
include/deviceCollection.h Normal file
View File

@@ -0,0 +1,115 @@
///
/// \file deviceCollection.h
/// \author Jan Chrin, PSI
/// \date Release: February 2015
/// \version CAFE 1.0.0
///
#ifndef DEVICECOLLECTION_H
#define DEVICECOLLECTION_H
#include <iostream>
#include <vector>
#include <string>
#include <cstring>
#include <helper.h>
class collectionMember {
public:
collectionMember():deviceName(""),devicePosition(0){};
virtual ~collectionMember(){};
std::string deviceName;
float devicePosition;
};
class deviceCollection {
friend class Connect;
friend class CAFE;
//if HAVE_LIBQTXML
friend class loadCollectionXMLParser;
//endif
private:
std::string name;
std::string description;
std::vector<collectionMember> cMembers;
std::vector<std::string> attributes;
Helper helper;
public:
deviceCollection():description("collection of devices"){};
virtual ~deviceCollection(){};
std::string getName() const {return name;};
std::string getDescription() const {return description;};
std::vector<collectionMember> getCMembers() const {return cMembers;};
std::vector<std::string> getAttributes() const {return attributes;};
std::vector<float> getPositions() {
std::vector<float> posV; posV.clear(); posV.reserve(cMembers.size());
for (size_t i=0; i<cMembers.size(); ++i) {
posV.push_back(cMembers[i].devicePosition);
};
return posV;
};
float getPosition(const char * c) {
char _c[PVNAME_SIZE];
helper.removeLeadingAndTrailingSpaces(c, _c);
for (size_t i=0; i<cMembers.size(); ++i) {
if(strcmp(cMembers[i].deviceName.c_str(),_c)==0) {
return cMembers[i].devicePosition;
}
}
std::cout << "INPUT: " << _c << " NOT FOUND IN COLLECTION: " << name << std::endl;
std::cout << "HENCE RETURNING -1 FOR POSITION " << std::endl;
return -1;
}
std::vector<std::string> getMembers() {
std::vector<std::string> memberV; memberV.clear(); memberV.reserve(cMembers.size());
for (size_t i=0; i<cMembers.size(); ++i) {
memberV.push_back(cMembers[i].deviceName);
};
return memberV;
};
unsigned int getNCollectionMembers() const {return cMembers.size();};
unsigned int getNAttribuites() const {return attributes.size();};
};
class collectionInGroup {
//friend class loadGroupXMLParser;
public:
collectionInGroup(){};
virtual ~collectionInGroup(){};
std::string id;
std::string attrib;
};
class deviceGroup {
//if HAVE_LIBQTXML
friend class loadGroupXMLParser;
//endif
private:
std::string id;
std::string description;
std::vector<collectionMember> members;
std::vector<std::string> xmlMembers;
std::vector<collectionInGroup> collections;
public:
deviceGroup(){};
virtual ~deviceGroup(){};
std::string getName() const {return id;};
std::string getID() const {return id;};
std::string getDescription() const {return description;};
std::vector<collectionMember> getCMembers() const {return members;};
std::vector<collectionInGroup> getCollections() const {return collections;};
std::vector<std::string>getXMLMembers() const {return xmlMembers;};
};
#endif // DEVICECOLLECTION_H