summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLiang Qi <liang.qi@theqtcompany.com>2016-04-08 17:07:50 +0200
committerLiang Qi <liang.qi@theqtcompany.com>2016-04-08 17:07:50 +0200
commit1675a0d726e5c07c275c0981cc3deb5ffbcc6afc (patch)
tree6562b221705fe93308d2f3f6bda00993dbfe025f
parent4cde1ade4321023ab0ec6f1a136595bba516e0ed (diff)
parent987091c07bd4aa86296357f3cdad399a5be1c3b5 (diff)
Merge remote-tracking branch 'origin/5.6' into 5.7v5.7.0-beta1
-rw-r--r--.gitignore3
-rw-r--r--config.tests/socketcan_fd/main.cpp3
-rw-r--r--examples/serialbus/can/mainwindow.cpp2
-rw-r--r--src/plugins/canbus/socketcan/socketcanbackend.cpp24
-rw-r--r--src/serialbus/qcanbus.cpp2
5 files changed, 32 insertions, 2 deletions
diff --git a/.gitignore b/.gitignore
index 8dfda1b..86f78ad 100644
--- a/.gitignore
+++ b/.gitignore
@@ -9,8 +9,10 @@ config.tests/libmodbus_byteswap/libmodbus_byteswap
config.tests/libmodbus_tiocmrts/libmodbus_tiocmrts
config.tests/libmodbus_strlcpy/libmodbus_strlcpy
config.tests/libmodbus_rs485/libmodbus_rs485
+config.tests/language/language
config.tests/socketcan/socketcan
config.tests/socketcan_fd/socketcan_fd
+examples/serialbus/modbus/adueditor/adueditor
examples/serialbus/modbus/master/modbusmaster
examples/serialbus/modbus/slave/modbusslave
*.moc
@@ -34,6 +36,7 @@ tests/auto/qmodbusserver/tst_qmodbusserver
*.exe
*.ipch
*_wrapper.bat
+*_wrapper.sh
# Visual Studio generated files
*.ib_pdb_index
diff --git a/config.tests/socketcan_fd/main.cpp b/config.tests/socketcan_fd/main.cpp
index d499f4b..966c390 100644
--- a/config.tests/socketcan_fd/main.cpp
+++ b/config.tests/socketcan_fd/main.cpp
@@ -39,6 +39,9 @@
int main()
{
canfd_frame frame;
+ int fd_payload = CANFD_MAX_DLEN;
+ fd_payload = CAN_RAW_FD_FRAMES;
+ fd_payload = CANFD_MTU;
return 0;
}
diff --git a/examples/serialbus/can/mainwindow.cpp b/examples/serialbus/can/mainwindow.cpp
index 6e155b1..16bf947 100644
--- a/examples/serialbus/can/mainwindow.cpp
+++ b/examples/serialbus/can/mainwindow.cpp
@@ -91,7 +91,7 @@ void MainWindow::initActionsConnections()
connect(m_ui->actionConnect, &QAction::triggered, this, &MainWindow::connectDevice);
connect(m_ui->actionDisconnect, &QAction::triggered, this, &MainWindow::disconnectDevice);
- connect(m_ui->actionQuit, SIGNAL(triggered()), this, SLOT(close()));
+ connect(m_ui->actionQuit, &QAction::triggered, this, &QWidget::close);
connect(m_ui->actionConfigure, &QAction::triggered, m_settings, &SettingsDialog::show);
connect(m_ui->actionAboutQt, &QAction::triggered, qApp, &QApplication::aboutQt);
}
diff --git a/src/plugins/canbus/socketcan/socketcanbackend.cpp b/src/plugins/canbus/socketcan/socketcanbackend.cpp
index 122b546..48a2aaf 100644
--- a/src/plugins/canbus/socketcan/socketcanbackend.cpp
+++ b/src/plugins/canbus/socketcan/socketcanbackend.cpp
@@ -48,6 +48,30 @@
#include <sys/ioctl.h>
#include <sys/time.h>
+#ifndef CANFD_MTU
+// CANFD support was added by Linux kernel 3.6
+// For prior kernels we redefine the missing defines here
+// they are taken from linux/can/raw.h & linux/can.h
+
+enum {
+ CAN_RAW_FD_FRAMES = 5
+};
+
+#define CAN_MAX_DLEN 8
+#define CANFD_MAX_DLEN 64
+struct canfd_frame {
+ canid_t can_id; /* 32 bit CAN_ID + EFF/RTR/ERR flags */
+ __u8 len; /* frame payload length in byte */
+ __u8 flags; /* additional flags for CAN FD */
+ __u8 __res0; /* reserved / padding */
+ __u8 __res1; /* reserved / padding */
+ __u8 data[CANFD_MAX_DLEN] __attribute__((aligned(8)));
+};
+#define CAN_MTU (sizeof(struct can_frame))
+#define CANFD_MTU (sizeof(struct canfd_frame))
+
+#endif
+
QT_BEGIN_NAMESPACE
SocketCanBackend::SocketCanBackend(const QString &name) :
diff --git a/src/serialbus/qcanbus.cpp b/src/serialbus/qcanbus.cpp
index 6399fd0..bc81408 100644
--- a/src/serialbus/qcanbus.cpp
+++ b/src/serialbus/qcanbus.cpp
@@ -64,7 +64,7 @@ public:
Q_GLOBAL_STATIC_WITH_ARGS(QFactoryLoader, qFactoryLoader,
(QCanBusFactory_iid, QLatin1String("/canbus")))
-typedef QHash<QByteArray, QCanBusPrivate> QCanBusPluginStore;
+typedef QMap<QByteArray, QCanBusPrivate> QCanBusPluginStore;
Q_GLOBAL_STATIC(QCanBusPluginStore, qCanBusPlugins)
static QCanBus *globalInstance = Q_NULLPTR;