test_sdk/script/gtl_scr_engine_diagnostic.h

86 lines
2.0 KiB
C
Raw Normal View History

#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