86 lines
2.0 KiB
C
86 lines
2.0 KiB
C
|
#ifndef ENGINE_DIAGNOSTIC_H
|
||
|
#define ENGINE_DIAGNOSTIC_H
|
||
|
|
||
|
#include "script_global.h"
|
||
|
|
||
|
#include "core/gtl_device.h"
|
||
|
#include "script/gtl_scr_engine.h"
|
||
|
|
||
|
|
||
|
|
||
|
namespace gtl
|
||
|
{
|
||
|
namespace scr
|
||
|
{
|
||
|
class diagnostic : public QObject
|
||
|
{
|
||
|
Q_OBJECT
|
||
|
Q_PROPERTY(qreal interval READ interval WRITE set_interval NOTIFY interval_changed)
|
||
|
Q_PROPERTY(qreal time READ time WRITE set_time NOTIFY time_changed)
|
||
|
Q_PROPERTY(qreal progress READ progress WRITE set_progress NOTIFY progress_changed)
|
||
|
|
||
|
public:
|
||
|
diagnostic(QObject* parent = NULL);
|
||
|
|
||
|
qreal interval() const;
|
||
|
qreal time() const;
|
||
|
|
||
|
void start();
|
||
|
bool is_running() const;
|
||
|
qreal progress() const;
|
||
|
|
||
|
private:
|
||
|
qreal _interval;
|
||
|
qreal _time;
|
||
|
bool _is_running;
|
||
|
qreal _progress;
|
||
|
|
||
|
signals:
|
||
|
void interval_changed();
|
||
|
void time_changed();
|
||
|
void stopped();
|
||
|
void progress_changed();
|
||
|
void progress_(qreal);
|
||
|
|
||
|
public slots:
|
||
|
void set_interval(qreal value);
|
||
|
void set_time(qreal value);
|
||
|
void stop();
|
||
|
void set_progress(qreal value);
|
||
|
};
|
||
|
|
||
|
class SCRIPT_EXPORT engine_diagnostic : public engine
|
||
|
{
|
||
|
Q_OBJECT
|
||
|
public:
|
||
|
engine_diagnostic(QObject* parent = NULL);
|
||
|
|
||
|
virtual bool evaluate(QString program) override;
|
||
|
|
||
|
|
||
|
|
||
|
private:
|
||
|
QJSValue _diagnose;
|
||
|
diagnostic *_diagnostic;
|
||
|
std::map<gtl::device*, qreal> _devices_intervals;
|
||
|
|
||
|
private:
|
||
|
virtual void init() override;
|
||
|
|
||
|
|
||
|
protected slots:
|
||
|
virtual void device_recieved_data() override;
|
||
|
|
||
|
private slots:
|
||
|
void connect_spec(gtl::scr::spec* spec);
|
||
|
void connect_base_index(gtl::math::analog_value *index);
|
||
|
|
||
|
signals:
|
||
|
void diagnostic_stopped();
|
||
|
void diagnostic_progress(qreal);
|
||
|
};
|
||
|
}
|
||
|
}
|
||
|
|
||
|
#endif // ENGINE_DIAGNOSTIC_H
|