| Commit message (Collapse) | Author | Age | Files | Lines |
|\
| |
| |
| | |
Change-Id: I78703f2da399d804af6fe20ad3149899fa3e6fae
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
QtSerialBus is already using QtSerialPort which has a WriteNotifier and
ReadNotifier class in place. Therefore it is possible that if these were
linked in together into one application that there would be multiple
instances of the same class name which caused problems as it would think
that the WriteNotifier in QtSerialPort was a QTimer and not a
QSocketNotifier. So keep the names unique to be on the safe side.
Change-Id: I8667e3d4230b316d47e266ad1b4319cf5e74444b
Reviewed-by: Alex Blasche <alexander.blasche@qt.io>
(cherry picked from commit f129107e472c179e47b37d8fdaff120d1eccc7f8)
Reviewed-by: André Hartmann <aha_1980@gmx.de>
|
|/
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
While the client sent a disconnect command to
the server, this was not handled on server side.
Thus, the client was never really Unconnected and
in turn it was not possible to connect again.
Fix that by closing the socket, that leads to
VirtualCanBackend::clientDisconnected() being
called and that sets the plugin to Unconnected.
In any case, the server keeps running until the
plugin is unloaded, even after the last client
is disconnected.
[ChangeLog][VirtualCAN] Fixed that the plugin
stayed forever in closing state and subsequent
connect calls always failed.
Change-Id: I7a490c55a3cb6bd193ba4783b48d1385aa85bcde
Reviewed-by: Denis Shienkov <denis.shienkov@gmail.com>
Reviewed-by: Rolf Eike Beer <eb@emlix.com>
Reviewed-by: Alex Blasche <alexander.blasche@qt.io>
(cherry picked from commit f47b712057676de6115d7320cbbc2eb9b20c9817)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Having the same function name in a global namespace
can lead the linker to pick an arbitrary one instead
the right one.
[ChangeLog] Fixed problems on static builds where
an arbitrary version of resolveSymbol() was used
instead the correct one.
Fixes: QTBUG-78546
Change-Id: I0ff9bc3e5905b3b9694dfe9d446b2a52700f213f
Reviewed-by: Karsten Heimrich <karsten.heimrich@qt.io>
(cherry picked from commit 80144b89ca1adede0db9d6e485037f5e431216c3)
Reviewed-by: André Hartmann <aha_1980@gmx.de>
|
|
|
|
|
|
|
|
|
| |
Done-with: Jochen Bauer
Fixes: QTBUG-75502
Change-Id: I3a91c9b0c52985f5fe3ea357c8813c27ddbfd28d
Reviewed-by: André Hartmann <aha_1980@gmx.de>
Reviewed-by: Denis Shienkov <denis.shienkov@gmail.com>
Reviewed-by: Sze Howe Koh <szehowe.koh@gmail.com>
|
|
|
|
|
|
|
|
|
|
| |
When adding the CAN FD functions to the PeakCAN plugin in
ac8509d992f4, the documentation was not updated properly.
This patch catches up on that.
Change-Id: Ib3d05d4aa8405226ede9616bd56ead1a8f98ea88
Reviewed-by: Alex Blasche <alexander.blasche@qt.io>
|
|
|
|
|
|
|
| |
Fixes: QTBUG-76957
Change-Id: I8c4c86aa23137d67f5d20eedfe1c46a241c0632b
Reviewed-by: Alex Blasche <alexander.blasche@qt.io>
Reviewed-by: Denis Shienkov <denis.shienkov@gmail.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
When using the QCanBusDevice::ReceiveOwnKey, it has to be applied
before the device is opened. While this already correctly happened
in SystecCanBackendPrivate::open(), the parameter was applied again
in SystecCanBackendPrivate::setConfigurationParameter() which led
to the error message.
Solution is to skip ReceiveOwnKey when applying all configuration
parameters in SystecCanBackend::open(), like already done there
for BitRateKey.
[ChangeLog][SystecCAN] Fixed the error message "Cannot configure
TxEcho for open device" when QCanBusDevice::ReceiveOwnKey was used.
Change-Id: I37c1732798a3ce205a65ca803a99b5b7b9306d2a
Reviewed-by: Samuel Gaist <samuel.gaist@idiap.ch>
Reviewed-by: Denis Shienkov <denis.shienkov@gmail.com>
|
|
|
|
|
| |
Change-Id: I9f7d2bd5724266463af473d714b452de5390349e
Reviewed-by: Alex Blasche <alexander.blasche@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Remove the colons from a few places to make their output
similar to the debug output in other lines.
Example (omitting qt.canbus.plugins.virtualcan prefix):
Server [0x7f19684903c0] constructed.
Server [0x7f19684903c0] could not be started, port 35468 is already in use.
Client [0x5586262ecaa0] socket created.
Client [0x5586262ecaa0] socket connected.
Client [0x5586262ecaa0] received: '0##f9ffad71e96cb5ee'.
Client [0x5586262ecaa0] socket disconnected.
Client [0x5586262ecaa0] socket destructed.
Server [0x7f19684903c0] destructed.
Change-Id: I6d91282a262c58e2c983ee6db5c030698197c9f6
Reviewed-by: Alex Blasche <alexander.blasche@qt.io>
|
|
|
|
|
|
| |
Change-Id: Ic7f032217e641bf573f66f1231987828ea078709
Reviewed-by: André Hartmann <aha_1980@gmx.de>
Reviewed-by: Alex Blasche <alexander.blasche@qt.io>
|
|
|
|
|
| |
Change-Id: I8bbb3baaa568c1331d8945df158d062d68d2eed4
Reviewed-by: André Hartmann <aha_1980@gmx.de>
|
|\
| |
| |
| |
| |
| |
| | |
Conflicts:
.qmake.conf
Change-Id: Ia0da4c27d820778cb156a73cbad4fe79f0694267
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
(char *) (&code) is pointing to the correct byte on little endian
systems, but on big endian it is pointing to the wrong byte.
This caused tst_QModbusPdu::testQModbusResponseStreamOperator
to fail on big endian.
Change-Id: Icf374ed71429154b362fb074fbeb5501ea6095e0
Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
Reviewed-by: Lisandro Damián Nicanor Pérez Meyer <perezmeyer@gmail.com>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
QModbusDevice::open() & connectDevice() can cover asynchronous and synchronous
connect behavior. This was not very obvious in the documentation. This patch
fixes this uncertainty.
Fixes: QTBUG-71282
Change-Id: I554ea7a8073f9b72027208f5deac4ac3ecc4ccee
Reviewed-by: André Hartmann <aha_1980@gmx.de>
|
| |
| |
| |
| |
| |
| |
| |
| | |
there is no point in putting the owning module there.
Change-Id: I9bc49ae323a4bbc8cd35d10493c899466645bd44
Reviewed-by: André Hartmann <aha_1980@gmx.de>
Reviewed-by: Alex Blasche <alexander.blasche@qt.io>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
If the user or remote end closed the serial connection while a
QModbusReply is currently pending the reply was never concluded by
emitting the finished() or error() signal.
QModbusReply::setError() emits both signals.
Fixes: QTBUG-68543
Change-Id: Ic93194b0bf28b7147934452889de8c9aa55ff983
Reviewed-by: Karsten Heimrich <karsten.heimrich@qt.io>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Prior to this change the startAddress of the current value mapping
was not taken into account. Therefore shifted reads and write
(with non-zero startAddresses) were accessing the wrong register
indexes.
Fixes: QTBUG-64843
Change-Id: Iaf1f91705586f45db059d6dd54b68a84d16926a0
Reviewed-by: Karsten Heimrich <karsten.heimrich@qt.io>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
The fix for QTBUG-62299 limits the processing of serial responses
in RTU serial master to cases when the state machine is in receive mode
only. So far the Receive state was triggered by the sendTimer. However
modern kernels accept serial packages faster then the sendTimer can fire.
This patches addresses the problem by setting the Receive state even before
sendTimer fires. If the bytesWritten() callback detects that the entire
PDU/ADU was written it stops sendTimer and immediately progresses the
state machine to the Receive state.
Fixes: QTBUG-69188
Change-Id: I1657973ef99f1b3e4008e887029b30890d825d59
Reviewed-by: Karsten Heimrich <karsten.heimrich@qt.io>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
If there is a wrong character in between individual modbus PDUs the
request buffer becomes longer and longer w/o ever being cleared.
As a consequence the only possible way to recover is to reset the RTU slave.
The patch ensures that request buffer processing waits for chunked PDUs
(due to low baud rates) while at the same time does not block if it
contains garbage. The timer is based on the modbus spec which specifies that
every modbus package is separated by at least 3.5 chars. Using the current baud
rate of the serial port permits the exact caluclation of the implied
delay/timeout.
For baud rates above 19200 the timeout drops below 2 ms which is not
measurable by Qt anymore. Furthermore the modbus spec specifies a minimal
delay of 1.75 ms as well. Hence the timeout is bound to at least 2ms.
Fixes: QTBUG-59286
Change-Id: Ie43ff3f5819519abe2081757150d367820d50020
Reviewed-by: Karsten Heimrich <karsten.heimrich@qt.io>
|
|\|
| |
| |
| | |
Change-Id: I0e27751095de662c15633dae25b71b76f1ab97e2
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
If the current QModbusRtuSerialMaster instance is deleted, the
interFrameDelay timer may still be active and trigger the associated
lambda. Since the lambda calls back into the deleted class instance,
a crash may occur. Adding the public class instance as context to
the singleshot connect ensures that the lambda is not called if the class
instance was deleted already.
Fixes: QTBUG-65684
Change-Id: Ic7d90ba68a1533e6de50c61117f5de8dc5e048b4
Reviewed-by: André Hartmann <aha_1980@gmx.de>
|
| |
| |
| |
| |
| | |
Change-Id: Iee3a9942657abf67c74aabd687b18af5f3e731f2
Reviewed-by: André Hartmann <aha_1980@gmx.de>
|
|\|
| |
| |
| | |
Change-Id: I0286e29c47be19444c4240c382171ab8c48be33e
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
It is not the response for an timeout, but rather the response
whenever the timeout was changed.
Change-Id: Id687429f7acdd487f87a63c4c1d51d2fc3cea1f9
Reviewed-by: Martin Smith <martin.smith@qt.io>
Reviewed-by: Alex Blasche <alexander.blasche@qt.io>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
As QDoc now accept parameters for \code, following inline use:
/code ... /endcode
no longer works (and it never was documented to work).
Change-Id: If4ee0eb9af0e6a115216398b52f2592ea709276b
Reviewed-by: Martin Smith <martin.smith@qt.io>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
As pointed out in the API review, this could lead to confusion
when reading statements like this:
if (device->clear(QCanBusDevice::Input)) {
// ...
}
Change-Id: Ic039d3ed32f9ef8e7c3fb8b5f0659b8c9afd8038
Reviewed-by: Alex Blasche <alexander.blasche@qt.io>
Reviewed-by: Denis Shienkov <denis.shienkov@gmail.com>
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Amends 77b48d3d956b6de9dab7cb89bc3285eead63f734
Change-Id: I429dd2d827aa9dab30a7813833f5c388afda535c
Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
Reviewed-by: Denis Shienkov <denis.shienkov@gmail.com>
Reviewed-by: Alex Blasche <alexander.blasche@qt.io>
|
|\|
| |
| |
| |
| |
| |
| | |
Conflicts:
src/serialbus/doc/src/peakcan.qdoc
Change-Id: I2fe21e838d2da73b2b9c4d1c98752f48f003706a
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
* Rename "backend" to "plugin" for consistence
* Improve the connection snippets regarding error handling
* Add a hint to QCanBus::availableDevices()
Change-Id: I6fc24add5f9cb34e9ffad8b58f6134124f456cdd
Reviewed-by: Alex Blasche <alexander.blasche@qt.io>
Reviewed-by: Denis Shienkov <denis.shienkov@gmail.com>
|
|\|
| |
| |
| | |
Change-Id: I49dff945874682d5443dd886f89f6cad8aca4680
|
| |
| |
| |
| |
| |
| |
| | |
Introduced by d4bbdb83.
Change-Id: I9af02b34f2c75eae8b7f43fb5ddb3dd310269657
Reviewed-by: Alex Blasche <alexander.blasche@qt.io>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Based on a TCP/IP server/client infrastructure, to allow testing
programs against a second program without CAN hardware connected.
[ChangeLog][QCanBus] Added a generic virtual CAN bus plugin.
Task-number: QTBUG-61837
Change-Id: I7acf04bd476b65b4d1d04254463d61a4dc9042d5
Reviewed-by: Alex Blasche <alexander.blasche@qt.io>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Introduced by e0e89f0719497d43fcbd14a2c8d17bcaaf595a78
which changed the constants PCAN_CHANNEL_AVAILABLE and
FEATURE_FD_CAPABLE to unsigned integers.
Change-Id: I0d9278d2842180230ac3d744595151762de77794
Reviewed-by: Alex Blasche <alexander.blasche@qt.io>
Reviewed-by: Denis Shienkov <denis.shienkov@gmail.com>
|
|\|
| |
| |
| | |
Change-Id: I1ab92643c96792ee03cc3f77a6eaa1fd239890ae
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
std::bitset<8> fails to compile with MSVC 2017. I don't know why nor do
I care. Just use a regular byte for one byte, QBitArray for multiple.
bitset(271): error C2666: 'operator /': 10 overloads have similar conversions
[...]
bitset(271): note: or 'built-in C++ operator/(size_t, )'
bitset(271): note: while trying to match the argument list '(size_t, )'
bitset(267): note: while compiling class template member function 'std::bitset<8> &std::bitset<8>::set(size_t,bool)'
bitset(40): note: see reference to function template instantiation 'std::bitset<8> &std::bitset<8>::set(size_t,bool)' being compiled
Change-Id: I5d0ee9389a794d80983efffd152cc64b1e99d236
Reviewed-by: Karsten Heimrich <karsten.heimrich@qt.io>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
[ChangeLog][canbusutil] Added configuration options to canbusutil,
e.g. for bitrate setting or to enable CAN FD operation mode.
Task-number: QTBUG-67164
Change-Id: I43690cfd3e0c24f3d5ad79d11b1a60e7fbec3dc1
Reviewed-by: Denis Shienkov <denis.shienkov@gmail.com>
Reviewed-by: Alex Blasche <alexander.blasche@qt.io>
Reviewed-by: Rolf Eike Beer <eb@emlix.com>
|
|\|
| |
| |
| | |
Change-Id: I86832cdc609485aa902cde78c18638c4656cfcfa
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
* Add a link to QCanBusDeviceInfo on the "Qt CAN Bus" page
* Add an example for channel()
Change-Id: I95e7a36b998c2bb27abdd6839c9653a7c14568e9
Reviewed-by: Denis Shienkov <denis.shienkov@gmail.com>
Reviewed-by: Alex Blasche <alexander.blasche@qt.io>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
The binary compatibility promise started with Qt 5.8,
so any history before must not be kept.
Amends a31a7e0b2b7b3de3e1867ad954ac7fad9531cc99
Change-Id: I45917e2e17ae6c79d2e9f0118873fd421c742e01
Reviewed-by: Denis Shienkov <denis.shienkov@gmail.com>
Reviewed-by: Alex Blasche <alexander.blasche@qt.io>
|
|\|
| |
| |
| | |
Change-Id: I8ec4976a7699f3979a60227cf97664f67f311566
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
QDoc in Qt 5.11 uses Clang to parse C++ documentation, and it's capable
of resolving templated function signatures; adjust the \fn commands
accordingly.
Also fix a couple of other minor documentation warnings.
Change-Id: I867713a9e805b75bbd57e183aad91d7e21021f0a
Reviewed-by: Martin Smith <martin.smith@qt.io>
|
| |
| |
| |
| |
| |
| |
| | |
Amends 77b48d3d
Change-Id: I050861a9b01a3072c6f21c34e8dec452e94b3f0b
Reviewed-by: Denis Shienkov <denis.shienkov@gmail.com>
|
|\|
| |
| |
| | |
Change-Id: I02db5c1b8c8445ec96c79cc26bdf4fbb84720d5e
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
As reason for the fix, see section "3.4.1 XLevent" in the Vector
documentation XL_Driver_Library_Manual_EN.pdf, which states:
"portHandle: Internal use only".
This portHandle seems to be always zero and therefore channels
greater then zero could not receive frames.
Tested with Vectors simulated channels by sending frames to one
channel which in turn were received by both channels. The
sending channel had the local echo flag set, the other one not.
[ChangeLog][QCanBus][VectorCAN] Fixed a receive problem in the
VectorCAN plugin. When multiple channels were open, only the
first one could receive frames.
Task-number: QTBUG-67030
Change-Id: Ib76a04bc06e7b810d1c1cb092b79c4bc1aacf23a
Reviewed-by: Denis Shienkov <denis.shienkov@gmail.com>
Reviewed-by: Mihai Baneu <bdmihai@gmail.com>
Reviewed-by: Alex Blasche <alexander.blasche@qt.io>
|
| |
| |
| |
| |
| |
| | |
Change-Id: I802c68d7ea6422640a83d7e5ea17c591a8e3d078
Reviewed-by: Denis Shienkov <denis.shienkov@gmail.com>
Reviewed-by: Alex Blasche <alexander.blasche@qt.io>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Tested on Windows 7 with PCAN-USB Pro, both channels connected,
one side connected to PCAN-View, other side to CAN-Example.
The bitrate handling is done according the information in the
following threads:
https://www.peak-system.com/forum/viewtopic.php?f=41&t=1756
https://www.peak-system.com/forum/viewtopic.php?f=177&t=1257
[ChangeLog][QCanBus][Plugins] Added CAN FD functionality to
the PeakCAN plugin. Therefore the minimum required PCAN-Basic
version is now 4.0.0.
Task-number: QTBUG-62959
Change-Id: I76180d3e251969bfaa324708de6b7e39487b45f3
Reviewed-by: Denis Shienkov <denis.shienkov@gmail.com>
Reviewed-by: Alex Blasche <alexander.blasche@qt.io>
|
|\|
| |
| |
| | |
Change-Id: I2f548dce2bba78a757355addb35ad80f072701c0
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Prior to this change, an unconnected device would transition into the Closing
state if disconnectDevice() was called. Since the transition to Unconnected is
bound to sockets being closed the already unconnected ModbusDevice would
forever hang in CLosing.
Task-number: QTBUG-66648
Change-Id: Ia439f6b63b7d4ab7f377a45fb09cb5f5b99627f7
Reviewed-by: André Hartmann <aha_1980@gmx.de>
Reviewed-by: Karsten Heimrich <karsten.heimrich@qt.io>
|
|\|
| |
| |
| | |
Change-Id: If041fd380305b2fa40106998b036079a76b971d3
|