Index: unittests/tst_canbus.cpp =================================================================== diff -u -r8c69137f18382bdc55a5678e6ed44a7683fe4dea -r1b8d8fdf90d57822dde33cf1428438847238b10b --- unittests/tst_canbus.cpp (.../tst_canbus.cpp) (revision 8c69137f18382bdc55a5678e6ed44a7683fe4dea) +++ unittests/tst_canbus.cpp (.../tst_canbus.cpp) (revision 1b8d8fdf90d57822dde33cf1428438847238b10b) @@ -16,7 +16,6 @@ // Project #include "caninterface.h" #include "frameinterface.h" -#include "messagedispatcher.h" using namespace Can; @@ -69,24 +68,10 @@ _MessageDispatcher .init(); _MessageDispatcher .enableConsoleOut(true); - connect(&_MessageDispatcher, &MessageDispatcher::didFrameTransmit, [=](Can::Can_Id vCan_Id , const QByteArray &vPayload) { - _emited = true; - QCOMPARE(Format::toHexString(vPayload), _expected); - }); - - connect(&_MessageDispatcher, &MessageDispatcher::didActionReceive, [=](Gui::GuiActionType vAction , const QVariantList &vData ) { - _emited = true; - QVERIFY(vAction == _action); - for (int i = 0; i < vData.length(); i++) { - if (! strcmp(vData[i].typeName(), "float")) { - float f1 = vData[i].toFloat(); - float f2 = _data[i].toFloat(); - QVERIFY(Types::floatCompare(f1, f2)); - } else { - QVERIFY(vData[i] == _data[i]); - } - } - }); + connect(&_MessageDispatcher , SIGNAL(didFrameTransmit(Can_Id , const QByteArray &)), + this , SLOT( onFrameTransmit(Can_Id , const QByteArray &))); + connect(&_MessageDispatcher , SIGNAL(didActionReceive(GuiActionType , const QVariantList &)), + this , SLOT( onActionReceive(GuiActionType , const QVariantList &))); } void tst_canbus::tst_FrameInterface_ReInit() @@ -97,7 +82,7 @@ void tst_canbus::tst_FrameInterface_ActionTransmit_KeepAlive() { - _expected = "A5.07.00.00.E3.00.00.00"; + _expected = "A5.01.00.07.00.00.30.00"; _MessageDispatcher.onActionTransmit(Gui::GuiActionType::KeepAlive, {}); QVERIFY(_emited); } @@ -111,23 +96,23 @@ void tst_canbus::tst_FrameInterface_ActionTransmit_PowerOff_Accepted() { - _expected = "A5.01.00.01.01.5E.00.00"; + _expected = "A5.02.00.01.00.01.01.F0"; QVariantList mData {static_cast(Gui::GuiActionData::Accepted)}; _MessageDispatcher.onActionTransmit(Gui::GuiActionType::PowerOff, mData); QVERIFY(_emited); } void tst_canbus::tst_FrameInterface_ActionTransmit_PowerOff_Rejected() { - _expected = "A5.01.00.01.02.0D.00.00"; + _expected = "A5.03.00.01.00.01.02.F4"; QVariantList mData {static_cast(Gui::GuiActionData::Rejected)}; _MessageDispatcher.onActionTransmit(Gui::GuiActionType::PowerOff, mData); QVERIFY(_emited); } void tst_canbus::tst_FrameInterface_ActionTransmit_PowerOff() { - _expected = "A5.01.00.01.00.6F.00.00"; + _expected = "A5.04.00.01.00.01.00.02"; QVariantList mData {static_cast(Gui::GuiActionData::NoData)}; _MessageDispatcher.onActionTransmit(Gui::GuiActionType::PowerOff, mData); QVERIFY(_emited); @@ -137,9 +122,9 @@ { // An example of longest data transmission by Gui::GuiActionType::String // which can be as long as 255 byte. - _expected = "A5.FF.FE.03.41.42.43.3C"; - // A. B. C - QVariantList mData {"ABC"}; + _expected = "A5.05.00.FF.FE.01.41.18"; + // A + QVariantList mData {"A"}; _MessageDispatcher.onActionTransmit(Gui::GuiActionType::String, mData); QVERIFY(_emited); } @@ -158,7 +143,7 @@ QCanBusFrame mFrame; QString mPayload; mFrame.setFrameId(Can_Id::eChlid_HD_UI); - mPayload = "A5.01.00.01.00.6F.00.00"; + mPayload = "A5.01.00.01.00.01.00.38"; mFrame.setPayload(QByteArray::fromHex(mPayload.remove(QLatin1Char('.')).toLatin1())); emit _CanInterface.didFrameReceive(mFrame); QVERIFY(_emited); @@ -171,7 +156,7 @@ QCanBusFrame mFrame; QString mPayload; mFrame.setFrameId(Can_Id::eChlid_HD_UI); - mPayload = "A5.01.00.01.01.5E.00.00"; + mPayload = "A5.02.00.01.00.01.01.F0"; mFrame.setPayload(QByteArray::fromHex(mPayload.remove(QLatin1Char('.')).toLatin1())); emit _CanInterface.didFrameReceive(mFrame); QVERIFY(_emited); @@ -184,7 +169,7 @@ QCanBusFrame mFrame; QString mPayload; mFrame.setFrameId(Can_Id::eChlid_HD_DG); - mPayload = "A5.01.00.01.01.5E.00.00"; + mPayload = "A5.03.00.01.00.01.01.XX"; mFrame.setPayload(QByteArray::fromHex(mPayload.remove(QLatin1Char('.')).toLatin1())); emit _CanInterface.didFrameReceive(mFrame); QVERIFY( ! _emited ); // should not be emitted due to not listening channel @@ -236,10 +221,10 @@ QCanBusFrame mFrame; QString mPayload; mFrame.setFrameId(Can_Id::eChlid_HD_UI); - mPayload = "A5.01.00.01.00.6F.FF.FF.FF"; + mPayload = "A5.04.00.01.00.01.00.6F.FF.FF"; mFrame.setPayload(QByteArray::fromHex(mPayload.remove(QLatin1Char('.')).toLatin1())); emit _CanInterface.didFrameReceive(mFrame); - QVERIFY(_emited); // Should not emit due to crc error + QVERIFY( ! _emited); // Should not emit due to crc error } void tst_canbus::tst_FrameInterface_FrameReceived_LongFrame_BloodFlow() @@ -249,17 +234,17 @@ QCanBusFrame mFrame; mFrame.setFrameId(Can_Id::eChlid_HD_Sync); QStringList mPayloadList { - "a5.05.00.1c.70.fe.ff.ff" , - "00.c0.c6.c3.9a.99.d1.c1" , - "00.00.fa.c4.00.50.fa.c4" , - "00.30.22.44.00.00.7a.42" , - "c4.00.00.00.00.00.00.00" , + "a5.0a.00.05.00.1c.70.fe" , + "ff.ff.00.c0.c6.c3.9a.99" , + "d1.c1.00.00.fa.c4.00.50" , + "fa.c4.00.30.22.44.00.00" , + "7a.42.fb.00.00.00.00.00" , }; for ( QString payload : mPayloadList ) { mFrame.setPayload(QByteArray::fromHex(payload.remove(QLatin1Char('.')).toLatin1())); emit _CanInterface.didFrameReceive(mFrame); } - QVERIFY(_emited); // Should not emit due to crc error + QVERIFY(_emited); } void tst_canbus::tst_FrameInterface_FrameReceived_LongFrame_BloodFlow_LessData() @@ -293,9 +278,10 @@ QCanBusFrame mFrame; mFrame.setFrameId(Can_Id::eChlid_HD_Alarm); QStringList mPayloadList { - "a5.02.00.12.02.00.00.00" , - "0a.00.00.00.3c.00.00.00" , - "1e.00.00.00.12.03.bb.00" , + "a5.0b.00.02.00.12.02.00" , + "00.00.0a.00.00.00.3c.00" , + "00.00.1e.00.00.00.12.03" , + "20.00.00.00.00.00.00.00" , }; for ( QString payload : mPayloadList ) { mFrame.setPayload(QByteArray::fromHex(payload.remove(QLatin1Char('.')).toLatin1())); @@ -336,3 +322,25 @@ QString mTr = tr("Disconnected"); QCOMPARE(_CanInterface.status().left(mTr.length()), mTr); } + +void tst_canbus::onFrameTransmit(Can_Id vCan_Id, const QByteArray &vPayload) +{ + Q_UNUSED(vCan_Id) + _emited = true; + QCOMPARE(Format::toHexString(vPayload), _expected); +} + +void tst_canbus::onActionReceive(Gui::GuiActionType vAction, const QVariantList &vData) +{ + _emited = true; + QVERIFY(vAction == _action); + for (int i = 0; i < vData.length(); i++) { + if (! strcmp(vData[i].typeName(), "float")) { + float f1 = vData[i].toFloat(); + float f2 = _data[i].toFloat(); + QVERIFY(Types::floatCompare(f1, f2)); + } else { + QVERIFY(vData[i] == _data[i]); + } + } +}