Index: sources/model/hd/alarm/MAlarmTriggered.cpp =================================================================== diff -u -rf1e100d1368bfd132d88e09680f833dc53b4d0b0 -r2ef03b2ce51b4dc507f66e9671953a8e0824bde9 --- sources/model/hd/alarm/MAlarmTriggered.cpp (.../MAlarmTriggered.cpp) (revision f1e100d1368bfd132d88e09680f833dc53b4d0b0) +++ sources/model/hd/alarm/MAlarmTriggered.cpp (.../MAlarmTriggered.cpp) (revision 2ef03b2ce51b4dc507f66e9671953a8e0824bde9) @@ -1,32 +1,51 @@ /*! * - * 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 NemaiPour - * \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" +// Qt +// Project +#include "GuiGlobals.h" +#include "MAlarmStatusData.h" + using namespace Model; -QVariantList MAlarmTriggered::parameters() const { - return { - _data.mAlarmID.value - }; +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 - if (GetValue(vByteArray, index, _data.mAlarmID)) + if ( ! MAbstractDynamic::fromByteArray(vByteArray, &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; } } /*! @@ -36,6 +55,41 @@ */ 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({}); +} + +QString MAlarmTriggeredReq::toString(const QVariantList &vParameters) { + QString alarmText = ""; + if (vParameters.count()) { + bool ok; + GuiAlarmID alarmID = static_cast(vParameters[0].toInt(&ok)); + alarmText = Model::MAlarmStatus::toText(alarmID); + } + return MModel::toString("AlarmTriggered", { alarmText }); +} + +Can::Can_Id MAlarmTriggeredReq::canid() { return Can::Can_Id::eChlid_UI_Sync; }