75 lines
1.5 KiB
C
75 lines
1.5 KiB
C
|
#ifndef DEVICE_H
|
||
|
#define DEVICE_H
|
||
|
|
||
|
#include "core_global.h"
|
||
|
|
||
|
#include <QObject>
|
||
|
#include <QRecursiveMutex>
|
||
|
#include <QVariant>
|
||
|
|
||
|
#include "core/gtl_analog_data.h"
|
||
|
|
||
|
namespace gtl
|
||
|
{
|
||
|
class CORE_EXPORT device : public data_model_node
|
||
|
{
|
||
|
Q_OBJECT
|
||
|
public:
|
||
|
device(data_model_node *parent = nullptr);
|
||
|
virtual ~device();
|
||
|
|
||
|
analog_data* ai(int idx);
|
||
|
|
||
|
void clear();
|
||
|
int count_ai() const;
|
||
|
|
||
|
void add_ai(analog_data* ai);
|
||
|
|
||
|
void lock_ai();
|
||
|
void unlock_ai();
|
||
|
|
||
|
virtual void save(QDomElement& root_element);
|
||
|
virtual void load(const QDomElement& root_element);
|
||
|
|
||
|
QString id() const;
|
||
|
void set_id(QString id);
|
||
|
|
||
|
qreal rate() const;
|
||
|
void set_rate(qreal rate);
|
||
|
|
||
|
QString device_type() const;
|
||
|
|
||
|
QVariant get_parameter(int idx);
|
||
|
void set_parameter(int idx, QVariant value);
|
||
|
|
||
|
protected:
|
||
|
virtual bool is_checkable() const;
|
||
|
|
||
|
private:
|
||
|
std::vector<analog_data*> _ai;
|
||
|
QRecursiveMutex _ai_mutex;
|
||
|
|
||
|
QString _id;
|
||
|
qreal _rate;
|
||
|
|
||
|
|
||
|
signals:
|
||
|
void save_device(QDomElement& root_element);
|
||
|
void load_device(const QDomElement& root_element);
|
||
|
void start(QString id, qreal rate);
|
||
|
void restart();
|
||
|
void stop();
|
||
|
void recieved_data();
|
||
|
QString get_type() const;
|
||
|
|
||
|
void get_device_parameter(int idx, QVariant &value);
|
||
|
void set_device_parameter(int idx, const QVariant &value);
|
||
|
|
||
|
void started();
|
||
|
void stopped();
|
||
|
|
||
|
};
|
||
|
}
|
||
|
|
||
|
#endif // DEVICE_H
|