test_sdk/core/gtl_device.h

75 lines
1.5 KiB
C
Raw Normal View History

#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