Program Listing for File devicecontroller.h¶
↰ Return to documentation for file (src/controller/devicecontroller.h
)
/*
* SerialDevice - Utility class for managing devices connected via USB/Bluetooth.
*/
#ifndef SERIALDEVICE_H
#define SERIALDEVICE_H
#include <QIODevice>
#include <QSharedPointer>
#include <QString>
#include "model/sectionmapmodel.h"
namespace PixelMaestroStudio {
class DeviceController {
public:
enum DeviceType {
Serial,
TCP
};
static const uint16_t TIMEOUT = 10000;
static const uint16_t PORT_NUM = 8077;
DeviceController() = default;
explicit DeviceController(const QString& port_name);
bool connect();
bool disconnect();
int get_capacity() const;
QIODevice* get_device() const;
QString get_error() const;
bool get_open() const;
QString get_port_name() const;
bool get_autoconnect() const;
bool get_real_time_refresh_enabled() const;
void flush();
void set_autoconnect(const bool autoconnect);
void set_capacity(const int capacity);
void set_port_name(const QString &port_name);
void set_real_time_update(const bool enabled);
void write(const QByteArray &array);
SectionMapModel* section_map_model = nullptr;
private:
bool autoconnect_ = false;
const int baud_rate_ = 9600;
int capacity_ = 1024;
QSharedPointer<QIODevice> device_;
DeviceType device_type_ = DeviceType::Serial;
QString port_name_;
bool real_time_updates_ = false;
};
}
#endif // SERIALDEVICE_H