summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorAndre Hartmann <aha_1980@gmx.de>2021-03-17 18:56:19 +0100
committerAndre Hartmann <aha_1980@gmx.de>2021-03-27 16:31:56 +0100
commit43854c9e1fb90175979b5aa1f536dce26f5dd65e (patch)
tree53d5c5e1d03be4d605c5d80ae2cee350add887ac /src
parent9ca7c251d679b94af8436463b3c6c1e7e07625b4 (diff)
Introduce QCanBusFrame::FrameId
Use a dedicated type instead of quint32 to mark a CAN bus frame identifier as such. For now it is just an alias to quint32, but can be changed to some other type for Qt 7. [ChangeLog][QCanBusFrame] Introduced a specific type QCanBusFrame::FrameId for the CAN bus frames identifier. The new type is a typedef to quint32 and therefore should be source compatible. Change-Id: Ie26aa69cd48eb9cee4c11a0c8f8ba74efae24b4f Reviewed-by: Karsten Heimrich <karsten.heimrich@qt.io>
Diffstat (limited to 'src')
-rw-r--r--src/plugins/canbus/passthrucan/passthrucanio.cpp8
-rw-r--r--src/plugins/canbus/peakcan/peakcan_symbols_p.h3
-rw-r--r--src/plugins/canbus/virtualcan/virtualcanbackend.cpp2
-rw-r--r--src/serialbus/qcanbusdevice.h4
-rw-r--r--src/serialbus/qcanbusframe.cpp8
-rw-r--r--src/serialbus/qcanbusframe.h8
-rw-r--r--src/tools/canbusutil/canbusutil.cpp2
-rw-r--r--src/tools/canbusutil/canbusutil.h2
8 files changed, 19 insertions, 18 deletions
diff --git a/src/plugins/canbus/passthrucan/passthrucanio.cpp b/src/plugins/canbus/passthrucan/passthrucanio.cpp
index 8a0f12b..41e65cf 100644
--- a/src/plugins/canbus/passthrucan/passthrucanio.cpp
+++ b/src/plugins/canbus/passthrucan/passthrucanio.cpp
@@ -185,8 +185,8 @@ bool PassThruCanIO::setMessageFilters(const QList<QCanBusDevice::Filter> &filter
else
mask.setRxStatus({});
- qToBigEndian<quint32>(filter.frameId & filter.frameIdMask, pattern.data());
- qToBigEndian<quint32>(filter.frameIdMask, mask.data());
+ qToBigEndian<QCanBusFrame::FrameId>(filter.frameId & filter.frameIdMask, pattern.data());
+ qToBigEndian<QCanBusFrame::FrameId>(filter.frameIdMask, mask.data());
if (m_passThru->startMsgFilter(m_channelId, J2534::PassThru::PassFilter,
mask, pattern) != J2534::PassThru::NoError)
@@ -236,7 +236,7 @@ bool PassThruCanIO::writeMessages()
else
msg.setTxFlags({});
- qToBigEndian<quint32>(frame.frameId(), msg.data());
+ qToBigEndian<QCanBusFrame::FrameId>(frame.frameId(), msg.data());
std::memcpy(msg.data() + 4, payload.data(), payloadSize);
}
}
@@ -299,7 +299,7 @@ void PassThruCanIO::readMessages(bool writePending)
"Message with invalid size %lu received", msg.size());
continue;
}
- const quint32 msgId = qFromBigEndian<quint32>(msg.data());
+ const QCanBusFrame::FrameId msgId = qFromBigEndian<QCanBusFrame::FrameId>(msg.data());
const QByteArray payload (msg.data() + 4, msg.size() - 4);
QCanBusFrame frame (msgId, payload);
diff --git a/src/plugins/canbus/peakcan/peakcan_symbols_p.h b/src/plugins/canbus/peakcan/peakcan_symbols_p.h
index 9031592..fe4fcd0 100644
--- a/src/plugins/canbus/peakcan/peakcan_symbols_p.h
+++ b/src/plugins/canbus/peakcan/peakcan_symbols_p.h
@@ -276,11 +276,10 @@
// Type definitions
#ifdef Q_OS_MACOS
#define TPCANLong quint64
-#define TPCANLongToFrameID(a) static_cast<quint32>(a)
#else
#define TPCANLong quint32
-#define TPCANLongToFrameID(a) a
#endif
+#define TPCANLongToFrameID(a) static_cast<QCanBusFrame::FrameId>(a)
#define TPCANHandle quint16 // Represents a PCAN hardware channel handle
#define TPCANStatus TPCANLong // Represents a PCAN status/error code
#define TPCANParameter quint8 // Represents a PCAN parameter to be read or set
diff --git a/src/plugins/canbus/virtualcan/virtualcanbackend.cpp b/src/plugins/canbus/virtualcan/virtualcanbackend.cpp
index 0067ded..351d177 100644
--- a/src/plugins/canbus/virtualcan/virtualcanbackend.cpp
+++ b/src/plugins/canbus/virtualcan/virtualcanbackend.cpp
@@ -344,7 +344,7 @@ void VirtualCanBackend::clientReadyRead()
const QByteArrayList list = answer.split('#');
Q_ASSERT(list.size() == 3);
- const quint32 id = list.at(0).toUInt();
+ const QCanBusFrame::FrameId id = list.at(0).toUInt();
const QByteArray flags = list.at(1);
const QByteArray data = QByteArray::fromHex(list.at(2));
const qint64 timeStamp = QDateTime::currentDateTime().toMSecsSinceEpoch();
diff --git a/src/serialbus/qcanbusdevice.h b/src/serialbus/qcanbusdevice.h
index bb53837..bf19d1e 100644
--- a/src/serialbus/qcanbusdevice.h
+++ b/src/serialbus/qcanbusdevice.h
@@ -117,8 +117,8 @@ public:
};
Q_DECLARE_FLAGS(FormatFilters, FormatFilter)
- quint32 frameId = 0;
- quint32 frameIdMask = 0;
+ QCanBusFrame::FrameId frameId = 0;
+ QCanBusFrame::FrameId frameIdMask = 0;
QCanBusFrame::FrameType type = QCanBusFrame::InvalidFrame;
FormatFilter format = MatchBaseAndExtendedFormat;
};
diff --git a/src/serialbus/qcanbusframe.cpp b/src/serialbus/qcanbusframe.cpp
index 1476314..206eb90 100644
--- a/src/serialbus/qcanbusframe.cpp
+++ b/src/serialbus/qcanbusframe.cpp
@@ -60,7 +60,7 @@ QT_BEGIN_NAMESPACE
*/
/*!
- \fn QCanBusFrame::QCanBusFrame(quint32 identifier, const QByteArray &data)
+ \fn QCanBusFrame::QCanBusFrame(QCanBusFrame::FrameId identifier, const QByteArray &data)
Constructs a CAN frame using \a identifier as the frame identifier and \a data as the payload.
*/
@@ -78,7 +78,7 @@ QT_BEGIN_NAMESPACE
*/
/*!
- \fn QCanBusFrame::setFrameId(quint32 newFrameId)
+ \fn QCanBusFrame::setFrameId(QCanBusFrame::FrameId newFrameId)
Sets the identifier of the CAN frame to \a newFrameId.
@@ -125,7 +125,7 @@ QT_BEGIN_NAMESPACE
*/
/*!
- \fn quint32 QCanBusFrame::frameId() const
+ \fn QCanBusFrame::FrameId QCanBusFrame::frameId() const
Returns the CAN frame identifier. If the CAN frame uses the
extended frame format, the identifier has a maximum of 29 bits;
@@ -470,7 +470,7 @@ QDataStream &operator<<(QDataStream &out, const QCanBusFrame &frame)
*/
QDataStream &operator>>(QDataStream &in, QCanBusFrame &frame)
{
- quint32 frameId;
+ QCanBusFrame::FrameId frameId;
quint8 frameType;
quint8 version;
bool extendedFrameFormat;
diff --git a/src/serialbus/qcanbusframe.h b/src/serialbus/qcanbusframe.h
index 3bf43f8..0cdb0d5 100644
--- a/src/serialbus/qcanbusframe.h
+++ b/src/serialbus/qcanbusframe.h
@@ -48,6 +48,8 @@ class QDataStream;
class Q_SERIALBUS_EXPORT QCanBusFrame
{
public:
+ using FrameId = quint32;
+
class TimeStamp {
public:
constexpr TimeStamp(qint64 s = 0, qint64 usec = 0) noexcept
@@ -105,7 +107,7 @@ public:
Q_DECLARE_FLAGS(FrameErrors, FrameError)
Q_FLAGS(FrameErrors)
- explicit QCanBusFrame(quint32 identifier, const QByteArray &data) :
+ explicit QCanBusFrame(QCanBusFrame::FrameId identifier, const QByteArray &data) :
format(DataFrame),
isExtendedFrame(0x0),
version(Qt_5_10),
@@ -180,13 +182,13 @@ public:
isExtendedFrame = (isExtended & 0x1);
}
- quint32 frameId() const noexcept
+ QCanBusFrame::FrameId frameId() const noexcept
{
if (Q_UNLIKELY(format == ErrorFrame))
return 0;
return (canId & 0x1FFFFFFFU);
}
- void setFrameId(quint32 newFrameId)
+ void setFrameId(QCanBusFrame::FrameId newFrameId)
{
if (Q_LIKELY(newFrameId < 0x20000000U)) {
isValidFrameId = true;
diff --git a/src/tools/canbusutil/canbusutil.cpp b/src/tools/canbusutil/canbusutil.cpp
index 677e7e2..9059611 100644
--- a/src/tools/canbusutil/canbusutil.cpp
+++ b/src/tools/canbusutil/canbusutil.cpp
@@ -125,7 +125,7 @@ int CanBusUtil::printDevices(const QString &pluginName)
return 0;
}
-bool CanBusUtil::parseDataField(quint32 &id, QString &payload)
+bool CanBusUtil::parseDataField(QCanBusFrame::FrameId &id, QString &payload)
{
int hashMarkPos = m_data.indexOf('#');
if (hashMarkPos < 0) {
diff --git a/src/tools/canbusutil/canbusutil.h b/src/tools/canbusutil/canbusutil.h
index 0c2ba8f..9cc311a 100644
--- a/src/tools/canbusutil/canbusutil.h
+++ b/src/tools/canbusutil/canbusutil.h
@@ -63,7 +63,7 @@ public:
int printDevices(const QString &pluginName);
private:
- bool parseDataField(quint32 &id, QString &payload);
+ bool parseDataField(QCanBusFrame::FrameId &id, QString &payload);
bool setFrameFromPayload(QString payload, QCanBusFrame *frame);
bool connectCanDevice();
bool sendData();