Index: sources/model/hd/alarm/MAlarmTriggered.cpp =================================================================== diff -u -r2bc6542cebc264eb343f791f75223a1ca151465e -r2ef03b2ce51b4dc507f66e9671953a8e0824bde9 --- sources/model/hd/alarm/MAlarmTriggered.cpp (.../MAlarmTriggered.cpp) (revision 2bc6542cebc264eb343f791f75223a1ca151465e) +++ sources/model/hd/alarm/MAlarmTriggered.cpp (.../MAlarmTriggered.cpp) (revision 2ef03b2ce51b4dc507f66e9671953a8e0824bde9) @@ -1,15 +1,15 @@ /*! * - * Copyright (c) 2019-2020 Diality Inc. - All Rights Reserved. + * Copyright (c) 2020-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 MAlarmTriggered.cpp - * \author (last) Behrouz NematiPour - * \date (last) 16-Oct-2020 - * \author (original) Behrouz NematiPour - * \date (original) 02-Jul-2020 + * \file MAlarmTriggered.cpp + * \author (last) Behrouz NematiPour + * \date (last) 24-Aug-2022 + * \author (original) Behrouz NemaiPour + * \date (original) 02-Jul-2020 * */ #include "MAlarmTriggered.h" @@ -21,138 +21,31 @@ using namespace Model; -QVariantList MAlarmTriggered::parameters() const { - Gui::GuiAlarmDataTypes fieldType; - fieldType = static_cast(_data.mFieldDescriptor1.value); - quint32 zero = 0; - QVariantList params = { _data.mAlarmID.value }; - switch (fieldType) { - case Gui::GuiAlarmDataTypes::ALARM_DATA_TYPE_NONE : - params += {zero, zero, zero, zero}; - goto lOut; - case Gui::GuiAlarmDataTypes::ALARM_DATA_TYPE_U32 : - params += {_data.mFieldDescriptor1.value, _data.mDataFieldU1.value}; - break; - case Gui::GuiAlarmDataTypes::ALARM_DATA_TYPE_S32 : - params += {_data.mFieldDescriptor1.value, _data.mDataFieldS1.value}; - break; - case Gui::GuiAlarmDataTypes::ALARM_DATA_TYPE_F32 : - params += {_data.mFieldDescriptor1.value, _data.mDataFieldF1.value}; - break; - case Gui::GuiAlarmDataTypes::ALARM_DATA_TYPE_BOOL : - params += {_data.mFieldDescriptor1.value, _data.mDataFieldB1.value}; - break; - default: - params += {zero, zero, zero, zero}; - goto lOut; - } - - fieldType = static_cast(_data.mFieldDescriptor2.value); - switch (fieldType) { - case Gui::GuiAlarmDataTypes::ALARM_DATA_TYPE_NONE : - params += {zero, zero}; - break; - case Gui::GuiAlarmDataTypes::ALARM_DATA_TYPE_U32 : - params += {_data.mFieldDescriptor1.value, _data.mDataFieldU2.value}; - break; - case Gui::GuiAlarmDataTypes::ALARM_DATA_TYPE_S32 : - params += {_data.mFieldDescriptor1.value, _data.mDataFieldS2.value}; - break; - case Gui::GuiAlarmDataTypes::ALARM_DATA_TYPE_F32 : - params += {_data.mFieldDescriptor1.value, _data.mDataFieldF2.value}; - break; - case Gui::GuiAlarmDataTypes::ALARM_DATA_TYPE_BOOL : - params += {_data.mFieldDescriptor1.value, _data.mDataFieldB2.value}; - break; - default: - params += {zero, zero}; - break; - } - -lOut: +QVariantList MAlarmTriggered::parameters() const +{ + QVariantList params = MAbstractDynamic::parameters(); + params += _xata.mPriority .value; + params += _xata.mRank .value; + params += _xata.mClearTop .value; return params; } -bool MAlarmTriggered::fromByteArray(const QByteArray &vByteArray, int *vIndex) { +bool MAlarmTriggered::fromByteArray(const QByteArray &vByteArray, int *vIndex) +{ int index = 0; // message data start position - _data.mFieldDescriptor1 .value = 0; - _data.mDataFieldU1 .value = 0; - _data.mDataFieldS1 .value = 0; - _data.mDataFieldF1 .value = 0; - _data.mDataFieldB1 .value = 0; - _data.mFieldDescriptor2 .value = 0; - _data.mDataFieldU2 .value = 0; - _data.mDataFieldS2 .value = 0; - _data.mDataFieldF2 .value = 0; - _data.mDataFieldB2 .value = 0; - if (GetValue(vByteArray, index, _data.mAlarmID )) - if (GetValue(vByteArray, index, _data.mFieldDescriptor1 )) - { - Gui::GuiAlarmDataTypes field1Type = static_cast(_data.mFieldDescriptor1.value); - switch (field1Type) { - case Gui::GuiAlarmDataTypes::ALARM_DATA_TYPE_NONE : - return true; + if ( ! MAbstractDynamic::fromByteArray(vByteArray, &index)) + return false; - case Gui::GuiAlarmDataTypes::ALARM_DATA_TYPE_U32 : - if (GetValue(vByteArray, index, _data.mDataFieldU1)) - break; - else { if(vIndex) *vIndex = index; return false; } - - case Gui::GuiAlarmDataTypes::ALARM_DATA_TYPE_S32 : - if (GetValue(vByteArray, index, _data.mDataFieldS1)) - break; - else { if(vIndex) *vIndex = index; return false; } - - case Gui::GuiAlarmDataTypes::ALARM_DATA_TYPE_F32 : - if (GetValue(vByteArray, index, _data.mDataFieldF1)) - break; - else { if(vIndex) *vIndex = index; return false; } - - case Gui::GuiAlarmDataTypes::ALARM_DATA_TYPE_BOOL : - if (GetValue(vByteArray, index, _data.mDataFieldB1)) - break; - else { if(vIndex) *vIndex = index; return false; } - - default: - return true; - } - - if (GetValue(vByteArray, index, _data.mFieldDescriptor2 )) - { - Gui::GuiAlarmDataTypes field1Type = static_cast(_data.mFieldDescriptor2.value); - switch (field1Type) { - case Gui::GuiAlarmDataTypes::ALARM_DATA_TYPE_NONE : - return true; - - case Gui::GuiAlarmDataTypes::ALARM_DATA_TYPE_U32 : - if (GetValue(vByteArray, index, _data.mDataFieldU2)) - break; - else { if(vIndex) *vIndex = index; return false; } - - case Gui::GuiAlarmDataTypes::ALARM_DATA_TYPE_S32 : - if (GetValue(vByteArray, index, _data.mDataFieldS2)) - break; - else { if(vIndex) *vIndex = index; return false; } - - case Gui::GuiAlarmDataTypes::ALARM_DATA_TYPE_F32 : - if (GetValue(vByteArray, index, _data.mDataFieldF2)) - break; - else { if(vIndex) *vIndex = index; return false; } - - case Gui::GuiAlarmDataTypes::ALARM_DATA_TYPE_BOOL : - if (GetValue(vByteArray, index, _data.mDataFieldB2)) - break; - else { if(vIndex) *vIndex = index; return false; } - - default: - return true; - } - return true; - } - else { if(vIndex) *vIndex = index; return false; } - } + index = _xata_start; // the message parameters are dynamic and the second set may not be sent + // and MAbstractDynamic returns true but since it hasn't have proper type it won't increment the index + // so the extra data (xata) needs to have its own start setup correctly. + if (GetValue(vByteArray, index, _xata.mPriority )) + if (GetValue(vByteArray, index, _xata.mRank )) + if (GetValue(vByteArray, index, _xata.mClearTop )) + return true ; else { if(vIndex) *vIndex = index; return false; } else { if(vIndex) *vIndex = index; return false; } + else { if(vIndex) *vIndex = index; return false; } } /*! @@ -162,20 +55,29 @@ */ MAlarmTriggered::Data MAlarmTriggered::data() const { Data data; - data.mAlarmID = _data.mAlarmID .value; + data.mAlarmID = _data.mID .value; + data.mFieldDescriptor1 = _data.mFieldDescriptor1 .value; data.mDataFieldU1 = _data.mDataFieldU1 .value; data.mDataFieldS1 = _data.mDataFieldS1 .value; data.mDataFieldF1 = _data.mDataFieldF1 .value; data.mDataFieldB1 = _data.mDataFieldB1 .value ? true : false; + data.mFieldDescriptor2 = _data.mFieldDescriptor2 .value; data.mDataFieldU2 = _data.mDataFieldU2 .value; data.mDataFieldS2 = _data.mDataFieldS2 .value; data.mDataFieldF2 = _data.mDataFieldF2 .value; data.mDataFieldB2 = _data.mDataFieldB2 .value ? true : false; + + data.mPriority = _xata.mPriority .value; + data.mRank = _xata.mRank .value; + data.mClearTop = _xata.mClearTop .value ? true : false; + return data; } +/// The Alarm Trigger Request + QString MAlarmTriggeredReq::toString() { return toString({}); } @@ -187,7 +89,7 @@ GuiAlarmID alarmID = static_cast(vParameters[0].toInt(&ok)); alarmText = Model::MAlarmStatus::toText(alarmID); } - return MModel::toString("AlarmTriggered", alarmText); + return MModel::toString("AlarmTriggered", { alarmText }); } Can::Can_Id MAlarmTriggeredReq::canid() { return Can::Can_Id::eChlid_UI_Sync; }