| #ifndef BASYX_CONTROLCOMPONENT_MAP_CONTROLCOMPONENT_H |
| #define BASYX_CONTROLCOMPONENT_MAP_CONTROLCOMPONENT_H |
| |
| #include <BaSyx/controlcomponent/interfaces/IControlComponent.h> |
| |
| #include <BaSyx/vab/ElementMap.h> |
| #include <BaSyx/controlcomponent/enumerations/ControlComponentConstants.h> |
| #include <BaSyx/controlcomponent/enumerations/ExecutionOrder.h> |
| |
| namespace basyx { |
| namespace controlcomponent { |
| namespace map { |
| |
| class ControlComponent : public IControlComponent, public vab::ElementMap |
| { |
| private: |
| std::map<int, std::shared_ptr<IControlComponentChangeListener>> componentChangeListeners; |
| std::string savedOccupierId; |
| basyx::object status_map, operations; |
| |
| public: |
| ControlComponent(); |
| |
| virtual void addControlComponentChangeListener(const std::shared_ptr<IControlComponentChangeListener> listener) override; |
| |
| virtual void removeControlComponentChangeListener(const std::shared_ptr<IControlComponentChangeListener> listener) override; |
| |
| const basyx::object getServiceOperationMap(); |
| |
| void put(const std::string &key, basyx::object value); |
| |
| virtual void finishState() override; |
| |
| virtual const std::vector<std::string> & getOrderList() override; |
| |
| virtual void addOrder(const std::string &newOrder) override; |
| |
| virtual void clearOrder() override; |
| |
| virtual OccupationState getOccupationState() override; |
| |
| virtual void setOccupationState(const OccupationState &occState) override; |
| |
| virtual std::string getOccupierID() override; |
| |
| virtual void setOccupierID(const std::string &occId) override; |
| |
| virtual std::string getLastOccupierID() override; |
| |
| virtual void setLastOccupierID(const std::string &occId) override; |
| |
| virtual ExecutionMode getExecutionMode() override; |
| |
| virtual void setExecutionMode(const ExecutionMode &exMode) override; |
| |
| virtual ExecutionState getExecutionState() override; |
| |
| virtual void setExecutionState(const ExecutionState &newSt) override; |
| |
| virtual std::string getOperationMode() override; |
| |
| virtual void setOperationMode(const std::string &opMode) override; |
| |
| virtual std::string getWorkState() override; |
| |
| virtual void setWorkState(const std::string &workState) override; |
| |
| virtual std::string getErrorState() override; |
| |
| virtual void setErrorState(const std::string &errorState) override; |
| |
| virtual std::string getLastErrorState() override; |
| |
| virtual void setLastErrorState(const std::string &lastErrorState) override; |
| |
| virtual std::string getCommand() override; |
| |
| virtual void setCommand(const std::string &cmd) override; |
| |
| virtual std::string getLocalOverwrite() override; |
| |
| virtual void setLocalOverwrite(const std::string &cmd) override; |
| |
| virtual std::string getLocalOverwriteFree() override; |
| |
| virtual void setLocalOverwriteFree(const std::string &cmd) override; |
| |
| private: |
| void changeExecutionState(const ExecutionOrder &); |
| |
| void invokeLocalOverwrite(); |
| |
| void clearLocalOverwrite(); |
| |
| void freeControlComponent(const std::string &); |
| |
| void occupyControlComponent(const std::string &occupier); |
| |
| void priorityOccupation(const std::string &occupier); |
| |
| object init_service_operations(); |
| |
| template<typename T> void insert_status(const basyx::controlcomponent::ControlComponentConstants &, T status); |
| |
| template<typename T> T get_status(const basyx::controlcomponent::ControlComponentConstants &); |
| }; |
| |
| } |
| } |
| } |
| #endif //BASYX_CONTROLCOMPONENT_CONTROLCOMPONENT_H |