Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
72 changes: 72 additions & 0 deletions src/communication/datapoint.cpp
Original file line number Diff line number Diff line change
@@ -0,0 +1,72 @@
#include "datapoint.h"

DataPoint::DataPoint() : DataPoint(QString(), Device::cFirstDeviceId)
{
}

DataPoint::DataPoint(QString const& address, deviceId_t deviceId) : _address(address), _deviceId(deviceId)
{
}

QString DataPoint::address() const
{
return _address;
}

deviceId_t DataPoint::deviceId() const
{
return _deviceId;
}

QString DataPoint::description() const
{
QString connStr = QString("device id %1").arg(deviceId());

return QString("%1, %2").arg(_address, connStr);
}

DataPoint& DataPoint::operator=(const DataPoint& dataPoint)
{
// self-assignment guard
if (this == &dataPoint)
{
return *this;
}

_address = dataPoint.address();
_deviceId = dataPoint.deviceId();

// return the existing object so we can chain this operator
return *this;
}

bool operator==(const DataPoint& dp1, const DataPoint& dp2)
{
if ((dp1._address == dp2._address) && (dp1._deviceId == dp2._deviceId))
{
return true;
}
else
{
return false;
}
}

QDebug operator<<(QDebug debug, const DataPoint& dp)
{
QDebugStateSaver saver(debug);

debug.nospace().noquote() << '[' << dp.description() << ']';

return debug;
}

QString DataPoint::dumpListToString(QList<DataPoint> const& list)
{
QString str;
QDebug dStream(&str);

dStream << list;

return str;
}
37 changes: 37 additions & 0 deletions src/communication/datapoint.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
#ifndef DATAPOINT_H
#define DATAPOINT_H

#include "models/device.h"
#include <QDebug>
#include <QString>

class DataPoint
{
public:
DataPoint();
DataPoint(QString const& address, deviceId_t deviceId);

QString address() const;

deviceId_t deviceId() const;

QString description() const;

DataPoint(const DataPoint& copy) : _address{ copy.address() }, _deviceId{ copy.deviceId() }
{
}

DataPoint& operator=(const DataPoint& dataPoint);

friend bool operator==(const DataPoint& dp1, const DataPoint& dp2);

static QString dumpListToString(const QList<DataPoint>& list);

private:
QString _address;
deviceId_t _deviceId;
};

QDebug operator<<(QDebug debug, const DataPoint& dp);

#endif // DATAPOINT_H
12 changes: 4 additions & 8 deletions src/communication/modbuspoll.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -47,7 +47,7 @@ void ModbusPoll::initAdapter()
_pAdapterClient->prepareAdapter(adapterPath);
}

void ModbusPoll::startCommunication(QList<ModbusRegister>& registerList)
void ModbusPoll::startCommunication(QList<DataPoint>& registerList)
{
_registerList = registerList;
_bPollActive = true;
Expand Down Expand Up @@ -119,16 +119,12 @@ void ModbusPoll::onDescribeResult(const QJsonObject& description)
_pSettingsModel->updateAdapterFromDescribe("modbus", description);
}

QStringList ModbusPoll::buildRegisterExpressions(const QList<ModbusRegister>& registerList)
QStringList ModbusPoll::buildRegisterExpressions(const QList<DataPoint>& registerList)
{
QStringList expressions;
for (const ModbusRegister& reg : registerList)
for (const DataPoint& reg : registerList)
{
QString expr = QString("${%1 @ %2 : %3}")
.arg(reg.address().fullAddress())
.arg(reg.deviceId())
.arg(ModbusDataType::typeString(reg.type()));
expressions.append(expr);
expressions.append(reg.address());
}
return expressions;
}
14 changes: 7 additions & 7 deletions src/communication/modbuspoll.h
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
#ifndef COMMUNICATION_MANAGER_H
#define COMMUNICATION_MANAGER_H
#ifndef MODBUSPOLL_H
#define MODBUSPOLL_H

#include "ProtocolAdapter/adapterclient.h"
#include "ProtocolAdapter/adapterprocess.h"
#include "communication/modbusregister.h"
#include "communication/datapoint.h"
#include "util/result.h"

#include <QJsonObject>
Expand All @@ -21,7 +21,7 @@ class ModbusPoll : public QObject
~ModbusPoll();

void initAdapter();
void startCommunication(QList<ModbusRegister>& registerList);
void startCommunication(QList<DataPoint>& registerList);
void stopCommunication();

bool isActive();
Expand All @@ -36,9 +36,9 @@ private slots:
void onDescribeResult(const QJsonObject& description);

private:
QStringList buildRegisterExpressions(const QList<ModbusRegister>& registerList);
QStringList buildRegisterExpressions(const QList<DataPoint>& registerList);

QList<ModbusRegister> _registerList;
QList<DataPoint> _registerList;

bool _bPollActive;
QTimer* _pPollTimer;
Expand All @@ -49,4 +49,4 @@ private slots:
AdapterClient* _pAdapterClient;
};

#endif // COMMUNICATION_MANAGER_H
#endif // MODBUSPOLL_H
172 changes: 0 additions & 172 deletions src/communication/modbusregister.cpp

This file was deleted.

Loading