Index: sources/model/MAbstractDynamic.cpp =================================================================== diff -u -rb94c297fa75f826acd539c57684c1769e5883d67 -r2ef03b2ce51b4dc507f66e9671953a8e0824bde9 --- sources/model/MAbstractDynamic.cpp (.../MAbstractDynamic.cpp) (revision b94c297fa75f826acd539c57684c1769e5883d67) +++ sources/model/MAbstractDynamic.cpp (.../MAbstractDynamic.cpp) (revision 2ef03b2ce51b4dc507f66e9671953a8e0824bde9) @@ -1,15 +1,15 @@ /*! * - * Copyright (c) 2019-2020 Diality Inc. - All Rights Reserved. + * Copyright (c) 2021-2024 Diality Inc. - All Rights Reserved. * \copyright * THIS CODE MAY NOT BE COPIED OR REPRODUCED IN ANY FORM, IN PART OR IN * WHOLE, WITHOUT THE EXPLICIT PERMISSION OF THE COPYRIGHT OWNER. * - * \file MAbstractDynamic.h + * \file MAbstractDynamic.cpp * \author (last) Behrouz NematiPour + * \date (last) 28-Mar-2022 * \author (original) Behrouz NematiPour - * \date (last) 07-Oct-2021 - * \date (original) 02-Jul-2020 + * \date (original) 07-Oct-2021 * */ #include "MAbstractDynamic.h" @@ -73,6 +73,7 @@ } bool MAbstractDynamic::fromByteArray(const QByteArray &vByteArray, int *vIndex) { + bool ok = true; int index = 0; // message data start position _data.mFieldDescriptor1 .value = 0; _data.mDataFieldU1 .value = 0; @@ -91,27 +92,27 @@ Gui::GuiAlarmDataTypes field1Type = static_cast(_data.mFieldDescriptor1.value); switch (field1Type) { case Gui::GuiAlarmDataTypes::ALARM_DATA_TYPE_NONE : - return true; + ok = true ; goto lOut; case Gui::GuiAlarmDataTypes::ALARM_DATA_TYPE_U32 : if (GetValue(vByteArray, index, _data.mDataFieldU1)) break; - else { if(vIndex) *vIndex = index; return false; } + else { ok = false; goto lOut; } case Gui::GuiAlarmDataTypes::ALARM_DATA_TYPE_S32 : if (GetValue(vByteArray, index, _data.mDataFieldS1)) break; - else { if(vIndex) *vIndex = index; return false; } + else { ok = false; goto lOut; } case Gui::GuiAlarmDataTypes::ALARM_DATA_TYPE_F32 : if (GetValue(vByteArray, index, _data.mDataFieldF1)) break; - else { if(vIndex) *vIndex = index; return false; } + else { ok = false; goto lOut; } case Gui::GuiAlarmDataTypes::ALARM_DATA_TYPE_BOOL : if (GetValue(vByteArray, index, _data.mDataFieldB1)) break; - else { if(vIndex) *vIndex = index; return false; } + else { ok = false; goto lOut; } default: return true; @@ -122,35 +123,40 @@ Gui::GuiAlarmDataTypes field2Type = static_cast(_data.mFieldDescriptor2.value); switch (field2Type) { case Gui::GuiAlarmDataTypes::ALARM_DATA_TYPE_NONE : - return true; + ok = true ; goto lOut; case Gui::GuiAlarmDataTypes::ALARM_DATA_TYPE_U32 : if (GetValue(vByteArray, index, _data.mDataFieldU2)) break; - else { if(vIndex) *vIndex = index; return false; } + else { ok = false; goto lOut; } case Gui::GuiAlarmDataTypes::ALARM_DATA_TYPE_S32 : if (GetValue(vByteArray, index, _data.mDataFieldS2)) break; - else { if(vIndex) *vIndex = index; return false; } + else { ok = false; goto lOut; } case Gui::GuiAlarmDataTypes::ALARM_DATA_TYPE_F32 : if (GetValue(vByteArray, index, _data.mDataFieldF2)) break; - else { if(vIndex) *vIndex = index; return false; } + else { ok = false; goto lOut; } case Gui::GuiAlarmDataTypes::ALARM_DATA_TYPE_BOOL : if (GetValue(vByteArray, index, _data.mDataFieldB2)) break; - else { if(vIndex) *vIndex = index; return false; } + else { ok = false; goto lOut; } default: - return true; + ok = true; goto lOut; } - return true; + ok = true; goto lOut; + } - else { if(vIndex) *vIndex = index; return false; } + else { ok = false; goto lOut; } } - else { if(vIndex) *vIndex = index; return false; } - else { if(vIndex) *vIndex = index; return false; } + else { ok = false; goto lOut; } + else { ok = false; goto lOut; } + +lOut: + if ( vIndex ) *vIndex = index; + return ok; }