Implemented first version of Chm30Utility
This commit is contained in:
129
CanController.h
Normal file
129
CanController.h
Normal file
@@ -0,0 +1,129 @@
|
||||
#ifndef CANCONTROLLER_H
|
||||
#define CANCONTROLLER_H
|
||||
|
||||
#include <QObject>
|
||||
#include <QVariant>
|
||||
#include <QDateTime>
|
||||
|
||||
class QQmlEngine;
|
||||
class QJSEngine;
|
||||
class QTimer;
|
||||
|
||||
class CanId;
|
||||
class CanMessage;
|
||||
|
||||
class CanController : public QObject
|
||||
{
|
||||
Q_OBJECT
|
||||
|
||||
Q_PROPERTY(bool isConnected MEMBER isConnected_ NOTIFY isConnectedChanged)
|
||||
Q_PROPERTY(int currentModule MEMBER currentModule_ NOTIFY currentModuleChanged)
|
||||
Q_PROPERTY(int numberOfModules MEMBER numberOfModules_ NOTIFY numberOfModulesChanged)
|
||||
|
||||
Q_PROPERTY(QString serialNumber MEMBER serialNumber_ NOTIFY serialNumberChanged)
|
||||
Q_PROPERTY(QString characteristics MEMBER characteristics_ NOTIFY characteristicsChanged)
|
||||
Q_PROPERTY(QString mode MEMBER mode_ NOTIFY modeChanged)
|
||||
Q_PROPERTY(QString limitations MEMBER limitations_ NOTIFY limitationsChanged)
|
||||
Q_PROPERTY(QString inputVoltage MEMBER inputVoltage_ NOTIFY inputVoltageChanged)
|
||||
Q_PROPERTY(QString outputCurrent MEMBER outputCurrent_ NOTIFY outputCurrentChanged)
|
||||
Q_PROPERTY(QString outputVoltage MEMBER outputVoltage_ NOTIFY outputVoltageChanged)
|
||||
Q_PROPERTY(QString moduleTemperature MEMBER moduleTemperature_ NOTIFY moduleTemperatureChanged)
|
||||
|
||||
Q_PROPERTY(bool isModuleOnOff MEMBER isModuleOnOff_ NOTIFY isModuleOnOffChanged)
|
||||
Q_PROPERTY(bool isLedOnOff MEMBER isLedOnOff_ NOTIFY isLedOnOffChanged)
|
||||
Q_PROPERTY(bool highLowMode MEMBER highLowMode_ NOTIFY highLowModeChanged)
|
||||
Q_PROPERTY(double setupOutputVoltage MEMBER setupOutputVoltage_ NOTIFY setupOutputVoltageChanged)
|
||||
Q_PROPERTY(double setupOutputCurrent MEMBER setupOutputCurrent_ NOTIFY setupOutputCurrentChanged)
|
||||
|
||||
Q_PROPERTY(QVariantList statuses MEMBER statuses_ NOTIFY statusesChanged)
|
||||
|
||||
public:
|
||||
explicit CanController(QObject* parent = nullptr);
|
||||
~CanController();
|
||||
|
||||
static QObject* qmlInstance(QQmlEngine* engine, QJSEngine* scriptEngine);
|
||||
|
||||
public slots:
|
||||
void connectCan();
|
||||
void disconnectCan();
|
||||
void tryConnectCan();
|
||||
|
||||
void sendCanMessage(const CanMessage& message);
|
||||
void sendMessages();
|
||||
|
||||
void requestNumberOfModules();
|
||||
void requestParameters();
|
||||
void setModuleOnOff(bool isOn);
|
||||
void setLedOnOff(bool isOn);
|
||||
void setHighLowMode(bool isHigh);
|
||||
void setOutputParameters();
|
||||
|
||||
signals:
|
||||
void isConnectedChanged();
|
||||
void currentModuleChanged();
|
||||
void numberOfModulesChanged();
|
||||
|
||||
void serialNumberChanged();
|
||||
void characteristicsChanged();
|
||||
void modeChanged();
|
||||
void limitationsChanged();
|
||||
void inputVoltageChanged();
|
||||
void outputCurrentChanged();
|
||||
void outputVoltageChanged();
|
||||
void moduleTemperatureChanged();
|
||||
|
||||
void isModuleOnOffChanged();
|
||||
void isLedOnOffChanged();
|
||||
void highLowModeChanged();
|
||||
void setupOutputVoltageChanged();
|
||||
void setupOutputCurrentChanged();
|
||||
|
||||
void statusesChanged();
|
||||
|
||||
private slots:
|
||||
void handlePackage(int index);
|
||||
|
||||
void handleNumberOfModules(const CanMessage* message);
|
||||
void handleSerialNumber(const CanMessage* message);
|
||||
void handleCharacteristics(const CanMessage* message);
|
||||
void handleMode(const CanMessage* message);
|
||||
void handleLimitations(const CanMessage* message);
|
||||
void handleInputParameters(const CanMessage* message);
|
||||
void handleOutputParameters(const CanMessage* message);
|
||||
void handleStatus(const CanMessage* message);
|
||||
|
||||
void showStatus(quint32 status);
|
||||
void updateCanStatus();
|
||||
|
||||
private:
|
||||
void setupDrivers();
|
||||
void saveConfiguration();
|
||||
|
||||
private:
|
||||
bool isConnected_ = false;
|
||||
bool isFirstCheck_ = true;
|
||||
QDateTime lastPackageDateTime_;
|
||||
QList<CanMessage> sendMessages_;
|
||||
|
||||
int numberOfModules_ = 1;
|
||||
int currentModule_ = 0;
|
||||
|
||||
QString serialNumber_;
|
||||
QString characteristics_;
|
||||
QString mode_;
|
||||
QString limitations_;
|
||||
QString inputVoltage_;
|
||||
QString outputCurrent_;
|
||||
QString outputVoltage_;
|
||||
QString moduleTemperature_;
|
||||
|
||||
bool isModuleOnOff_ = false;
|
||||
bool isLedOnOff_ = false;
|
||||
bool highLowMode_ = false;
|
||||
double setupOutputVoltage_ = 0;
|
||||
double setupOutputCurrent_ = 0;
|
||||
|
||||
QVariantList statuses_;
|
||||
};
|
||||
|
||||
#endif // CANCONTROLLER_H
|
||||
Reference in New Issue
Block a user