Initial commit
This commit is contained in:
commit
b7d90b9afe
16245 files changed
+3396666
No files matched your search
@@ -0,0 +1,94 @@
|
||||
/**
|
||||
* @RDE_HEADER@
|
||||
* HMI Plugin for InfrastructureManagement (Interface for access from other Plugins)
|
||||
* $Id$
|
||||
* $HeadURL$
|
||||
* $Author$
|
||||
*
|
||||
* Created by Mike Wille, SLSE, 2016-08-24
|
||||
*/
|
||||
|
||||
#pragma once
|
||||
|
||||
#include <Services/InfrastructureManagement/ism_dtc.h>
|
||||
#include <Services/InfrastructureManagement/ism_ftc.h>
|
||||
|
||||
#include <QObject>
|
||||
#include <PluginInterfaces/data_plugin_interface.h>
|
||||
|
||||
#ifndef ISMDATAPLUGININTERFACE_EXPORT
|
||||
# ifdef BUILD_STATIC_LIBRARIES
|
||||
# define ISMDATAPLUGININTERFACE_EXPORT
|
||||
# else
|
||||
# if defined(MAKE_ISMDATAPLUGININTERFACE_LIB)
|
||||
# define ISMDATAPLUGININTERFACE_EXPORT Q_DECL_EXPORT
|
||||
# else
|
||||
# define ISMDATAPLUGININTERFACE_EXPORT Q_DECL_IMPORT
|
||||
# endif
|
||||
# endif
|
||||
#endif
|
||||
|
||||
namespace InfrastructureManagement
|
||||
{
|
||||
class ForeignDataInterface;
|
||||
class MountingPoint;
|
||||
|
||||
/**
|
||||
* @brief The DataInterface class provides the Topics Clients only for the GUI Plugins
|
||||
*/
|
||||
// CE: ISMDATAPLUGININTERFACE_EXPORT needed for msvc due to ForeignDataInterface !?
|
||||
class ISMDATAPLUGININTERFACE_EXPORT DataInterface : public DataPluginBase::Interface
|
||||
{
|
||||
public:
|
||||
using DataPluginBase::Interface::Interface;
|
||||
|
||||
virtual std::shared_ptr<InfrastructureManagement::Interface::Dtc> getDtc() = 0;
|
||||
virtual std::shared_ptr<InfrastructureManagement::Interface::Ftc> getFtc() = 0;
|
||||
virtual std::shared_ptr<ForeignDataInterface> getForeignDataInterface() = 0;
|
||||
};
|
||||
|
||||
/**
|
||||
* @brief The ForeignDataInterface class provides methods and signals for foreign plugins, that need
|
||||
* access to the data of this DataPlugin
|
||||
*/
|
||||
class ISMDATAPLUGININTERFACE_EXPORT ForeignDataInterface : public QObject
|
||||
{
|
||||
Q_OBJECT
|
||||
public:
|
||||
ForeignDataInterface() = default;
|
||||
virtual ~ForeignDataInterface() = default;
|
||||
|
||||
// mainStructureElements returns buildings (containing absolute position)
|
||||
// mainFootprints returns footprint (containing relative positions)
|
||||
|
||||
/*! \name MountingPoint (espcially aimState) depends on the (loaded) plan/schedule!!! */
|
||||
//@{
|
||||
virtual bool mountingPoints(const std::function<void(const MountingPoint &data)> &cb) = 0;
|
||||
virtual bool mountingPoints(const std::function<bool(const MountingPoint &data)> &cb) = 0;
|
||||
virtual QHash<int32_t, MountingPoint> mountingPoints() const = 0;
|
||||
virtual MountingPoint mountingPoint(int32_t mountingPointId) const = 0;
|
||||
//@}
|
||||
|
||||
virtual MainSchedule mainSchedule(int32_t scheduleId) = 0;
|
||||
|
||||
/*! \name setScheduleId will update the MountingPoints (aimState) according schedule!!! */
|
||||
//@{
|
||||
virtual void setScheduleId(int32_t scheduleId) = 0;
|
||||
virtual int32_t scheduleId() const = 0;
|
||||
//@}
|
||||
|
||||
/*! \name buildings in current exercise*/
|
||||
//@{
|
||||
virtual QSet<int> buildingsInCurrentExercise() = 0;
|
||||
virtual const QSet<int>& buildingsInCurrentExercise() const = 0;
|
||||
virtual bool isBuildingsInCurrentExercise(int buildingId) const = 0;
|
||||
//@}
|
||||
|
||||
|
||||
Q_SIGNALS:
|
||||
void mountingPointChanged(const InfrastructureManagement::MountingPoint &data, DataModification modType);
|
||||
void scheduleIdChanged(int32_t newScheduleId);
|
||||
void buildingsInCurrentExerciseChanged();
|
||||
};
|
||||
|
||||
} // namespace InfrastructureManagement
|
||||
Reference in new issue
Block a user