I am working on software to develop control and data acquisition systems (SCADA) called WinCC OA. this latter does not give the possibility to import 3d objects and animated objects, but it does give the possibility to create API.
For my case it is an EWO (External Widget Object), you will find attached the header template I generated, it is developed in C++ using the Qt platform.
#ifndef __TEMPLATE__H_
#define __TEMPLATE__H_
#include <BaseExternWidget.hxx>
#include <QPen>
#include <QBrush>
//--------------------------------------------------------------------------------
// this is the real widget (an ordinary Qt widget), which can also use
Q_PROPERTY
class MyWidget : public QWidget
{
Q_OBJECT
// TODO example properties
Q_PROPERTY( QStringList values READ getValues WRITE setValues DESIGNABLE false )
Q_PROPERTY( QPen pen READ getPen WRITE setPen DESIGNABLE false )
Q_PROPERTY( QBrush brush READ getBrush WRITE setBrush DESIGNABLE false )
public:
MyWidget(QWidget *parent);
// TODO example of a string list property
QStringList getValues() const { return values; }
void setValues(const QStringList &list) { values = list; }
// a QPen property used on a line drawn inside this widget
const QPen &getPen() const { return pen; }
void setPen(const QPen &p) { pen = p; update(); }
// a QBrush property used as the background of this widget
QBrush getBrush() const;
void setBrush(const QBrush &brush);
signals:
// TODO example of a 2 signals this widget emits
void clicked1();
void clicked2();
protected:
virtual void paintEvent(QPaintEvent *event);
private:
// TODO example of a string list property
QStringList values;
QPen pen;
};
//--------------------------------------------------------------------------------
// this is the EWO interface class
class EWO_EXPORT _TEMPLATE_ : public BaseExternWidget
{
Q_OBJECT
public:
_TEMPLATE_(QWidget *parent);
virtual QWidget *widget() const;
virtual QStringList signalList() const;
virtual bool methodInterface(const QString &name, QVariant::Type &retVal,
QList<QVariant::Type> &args) const;
virtual QStringList methodList() const;
public slots:
virtual QVariant invokeMethod(const QString &name, QList<QVariant>
&values, QString &error);
private slots:
// TODO the slots you need to redirect to the generic "signal" signal
void clicked1();
void clicked2();
private:
MyWidget *baseWidget;
};
#endif
honestly to develop an interactive 3d simulator purely in Qt respecting the generated template I can't even get started.
here is a video to give an idea about the 3d simulator I want to make https://www.youtube.com/watch?v=yu-M6Omk1ps
I thought about developing the simulator using a 3d engine , I start to develop it using unity (3d metro station visualization where I control camera position from buttons, I can make on/off the elevator ...etc).
I managed to do but my problem is the integration, how to integrate this simulator into WinCC OA, i.e. the presentation I made under unity will be a widget in the new software, and I can control elevator, escalators .. etc from this last software.
Help please
Best Regards
Anes