summaryrefslogtreecommitdiffstats
path: root/src/plugins
diff options
context:
space:
mode:
authorAlex Blasche <alexander.blasche@theqtcompany.com>2015-07-30 12:12:03 +0200
committerAlex Blasche <alexander.blasche@theqtcompany.com>2015-07-31 07:57:46 +0000
commit7f17aa8dbec1090b8f1ec9c4dcfb114665df8c9d (patch)
treeb00851fe17e7df66355437a89cac8e4b31e42909 /src/plugins
parentbde292e2a54e0e95f894e5a376ab78138e2a0efd (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.cpp55
-rw-r--r--src/plugins/canbus/socketcan/socketcanbackend.h6
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