diff options
author | Andre Hartmann <aha_1980@gmx.de> | 2021-03-17 18:56:19 +0100 |
---|---|---|
committer | Andre Hartmann <aha_1980@gmx.de> | 2021-03-27 16:31:56 +0100 |
commit | 43854c9e1fb90175979b5aa1f536dce26f5dd65e (patch) | |
tree | 53d5c5e1d03be4d605c5d80ae2cee350add887ac /src | |
parent | 9ca7c251d679b94af8436463b3c6c1e7e07625b4 (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.cpp | 8 | ||||
-rw-r--r-- | src/plugins/canbus/peakcan/peakcan_symbols_p.h | 3 | ||||
-rw-r--r-- | src/plugins/canbus/virtualcan/virtualcanbackend.cpp | 2 | ||||
-rw-r--r-- | src/serialbus/qcanbusdevice.h | 4 | ||||
-rw-r--r-- | src/serialbus/qcanbusframe.cpp | 8 | ||||
-rw-r--r-- | src/serialbus/qcanbusframe.h | 8 | ||||
-rw-r--r-- | src/tools/canbusutil/canbusutil.cpp | 2 | ||||
-rw-r--r-- | src/tools/canbusutil/canbusutil.h | 2 |
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(); |