diff options
author | Alex Blasche <alexander.blasche@theqtcompany.com> | 2015-07-30 12:12:03 +0200 |
---|---|---|
committer | Alex Blasche <alexander.blasche@theqtcompany.com> | 2015-07-31 07:57:46 +0000 |
commit | 7f17aa8dbec1090b8f1ec9c4dcfb114665df8c9d (patch) | |
tree | b00851fe17e7df66355437a89cac8e4b31e42909 /src/plugins | |
parent | bde292e2a54e0e95f894e5a376ab78138e2a0efd (diff) |
Move configuration data into QCanBusDevice
The derived classes react to changes by providing an overload for
QCanBusDevice::setConfigurationParameter().
Change-Id: I465f9c41d8ddf399aaa3f88021a4722e1006affe
Reviewed-by: Denis Shienkov <denis.shienkov@gmail.com>
Reviewed-by: Alex Blasche <alexander.blasche@theqtcompany.com>
Diffstat (limited to 'src/plugins')
-rw-r--r-- | src/plugins/canbus/socketcan/socketcanbackend.cpp | 55 | ||||
-rw-r--r-- | src/plugins/canbus/socketcan/socketcanbackend.h | 6 |
2 files changed, 17 insertions, 44 deletions
diff --git a/src/plugins/canbus/socketcan/socketcanbackend.cpp b/src/plugins/canbus/socketcan/socketcanbackend.cpp index e1dfef3..1855c4d 100644 --- a/src/plugins/canbus/socketcan/socketcanbackend.cpp +++ b/src/plugins/canbus/socketcan/socketcanbackend.cpp @@ -35,7 +35,7 @@ ****************************************************************************/ #include "socketcanbackend.h" -#include "qcanbusdevice.h" +#include <QtSerialBus/qcanbusdevice.h> #include <QtCore/qdebug.h> #include <QtCore/qdatastream.h> @@ -65,10 +65,14 @@ SocketCanBackend::~SocketCanBackend() void SocketCanBackend::resetConfigurations() { - configuration.append(QPair<QString, QVariant>(QStringLiteral("LoopBack"), 1)); - configuration.append(QPair<QString, QVariant>(QStringLiteral("ReceiveOwnMessages"), 0)); - configuration.append(QPair<QString, QVariant>(QStringLiteral("ErrorMask"), 0)); - configuration.append(QPair<QString, QVariant>(QStringLiteral("CanFilter"), QList<QVariant>())); + QCanBusDevice::setConfigurationParameter( + QCanBusDevice::LoopbackKey, true); + QCanBusDevice::setConfigurationParameter( + QCanBusDevice::ReceiveOwnKey, false); + QCanBusDevice::setConfigurationParameter( + QCanBusDevice::ErrorFilterKey, QCanBusFrame::NoError); + QCanBusDevice::setConfigurationParameter( + QCanBusDevice::RawFilterKey, QList<QVariant>()); } bool SocketCanBackend::open() @@ -94,27 +98,17 @@ void SocketCanBackend::close() setState(QCanBusDevice::UnconnectedState); } -void SocketCanBackend::insertInConfigurations(const QString &key, const QVariant &value) +void SocketCanBackend::setConfigurationParameter(int key, const QVariant &value) { - for (int i = 0; i < configuration.size(); i++) { - if (configuration.at(i).first == key) { - QPair<QString, QVariant> conf(key, value); - configuration[i] = conf; - return; - } - } -} -void SocketCanBackend::setConfigurationParameter(const QString &key, const QVariant &value) -{ - if (key == QStringLiteral("Loopback")) { + if (key == QCanBusDevice::LoopbackKey) { const int loopback = value.toBool() ? 1 : 0; if (setsockopt(canSocket, SOL_CAN_RAW, CAN_RAW_LOOPBACK, &loopback, sizeof(loopback)) < 0) { setError(qt_error_string(errno), QCanBusDevice::CanBusError::ConfigurationError); return; } - } else if (key == QStringLiteral("ReceiveOwnMessages")) { + } else if (key == QCanBusDevice::ReceiveOwnKey) { const int receiveOwnMessages = value.toBool() ? 1 : 0; if (setsockopt(canSocket, SOL_CAN_RAW, CAN_RAW_RECV_OWN_MSGS, &receiveOwnMessages, sizeof(receiveOwnMessages)) < 0) { @@ -122,15 +116,15 @@ void SocketCanBackend::setConfigurationParameter(const QString &key, const QVari QCanBusDevice::CanBusError::ConfigurationError); return; } - } else if (key == QStringLiteral("ErrorMask")) { - const int errorMask = value.toInt(); + } else if (key == QCanBusDevice::ErrorFilterKey) { + const int errorMask = value.value<QCanBusFrame::FrameErrors>(); if (setsockopt(canSocket, SOL_CAN_RAW, CAN_RAW_ERR_FILTER, &errorMask, sizeof(errorMask)) < 0) { setError(qt_error_string(errno), QCanBusDevice::CanBusError::ConfigurationError); return; } - } else if (key == QStringLiteral("CanFilter")) { + } else if (key == QCanBusDevice::RawFilterKey) { const QList<QVariant> filterList = value.toList(); const int size = filterList.size(); if (size == 0) @@ -169,25 +163,8 @@ void SocketCanBackend::setConfigurationParameter(const QString &key, const QVari QCanBusDevice::CanBusError::ConfigurationError); return; } - insertInConfigurations(key, value); -} - -QVariant SocketCanBackend::configurationParameter(const QString &key) const -{ - for (int i = 0; i < configuration.size(); i++) - if (configuration.at(i).first == key) - return configuration.at(i).second; - - return QVariant(); -} - -QVector<QString> SocketCanBackend::configurationKeys() const -{ - QVector<QString> keys; - for (int i = 0; i < configuration.size(); i++) - keys.append(configuration.at(i).first); - return keys; + QCanBusDevice::setConfigurationParameter(key, value); } bool SocketCanBackend::connectSocket() diff --git a/src/plugins/canbus/socketcan/socketcanbackend.h b/src/plugins/canbus/socketcan/socketcanbackend.h index 1357886..0c74027 100644 --- a/src/plugins/canbus/socketcan/socketcanbackend.h +++ b/src/plugins/canbus/socketcan/socketcanbackend.h @@ -61,9 +61,7 @@ public: bool open() Q_DECL_OVERRIDE; void close() Q_DECL_OVERRIDE; - void setConfigurationParameter(const QString &key, const QVariant &value) Q_DECL_OVERRIDE; - QVariant configurationParameter(const QString &key) const Q_DECL_OVERRIDE; - QVector<QString> configurationKeys() const Q_DECL_OVERRIDE; + void setConfigurationParameter(int key, const QVariant &value) Q_DECL_OVERRIDE; bool writeFrame(const QCanBusFrame &newData) Q_DECL_OVERRIDE; @@ -73,14 +71,12 @@ private Q_SLOTS: void readSocket(); private: - void insertInConfigurations(const QString &key, const QVariant &value); void resetConfigurations(); bool connectSocket(); qint64 canSocket; QPointer<QSocketNotifier> notifier; QString canSocketName; - QVector<QPair<QString, QVariant>> configuration; }; QT_END_NAMESPACE |