Index: sources/canbus/MessageGlobals.h =================================================================== diff -u -r4f14c2ecfcd0c6b0c526f266c584f566b0b53eb5 -r988d4037838bb83205e1b98e1323846271e58571 --- sources/canbus/MessageGlobals.h (.../MessageGlobals.h) (revision 4f14c2ecfcd0c6b0c526f266c584f566b0b53eb5) +++ sources/canbus/MessageGlobals.h (.../MessageGlobals.h) (revision 988d4037838bb83205e1b98e1323846271e58571) @@ -258,7 +258,7 @@ // ---- RO Water {Gui::GuiActionType::ID_DuetRoWaterStatDGq , 0 * 4 }, // 0 parameter each 4bytes {Gui::GuiActionType::ID_DuetRoWaterModeUIi , 1 * 4 }, // 1 parameter each 4bytes - {Gui::GuiActionType::ID_DuetRoWaterModeDGr , 2 * 4 }, // 2 parameters each 4bytes + {Gui::GuiActionType::ID_DuetRoWaterModeDGr , 3 * 4 }, // 3 parameters each 4bytes // ---- {Gui::GuiActionType::ID_CANBusFaultCount , 1 }, {Gui::GuiActionType::ID_RawData , 255 }, Index: sources/model/dg/adjustment/settings/MDuetRoWaterDG.cpp =================================================================== diff -u -r2ef03b2ce51b4dc507f66e9671953a8e0824bde9 -r988d4037838bb83205e1b98e1323846271e58571 --- sources/model/dg/adjustment/settings/MDuetRoWaterDG.cpp (.../MDuetRoWaterDG.cpp) (revision 2ef03b2ce51b4dc507f66e9671953a8e0824bde9) +++ sources/model/dg/adjustment/settings/MDuetRoWaterDG.cpp (.../MDuetRoWaterDG.cpp) (revision 988d4037838bb83205e1b98e1323846271e58571) @@ -37,18 +37,21 @@ QVariantList Model::MDuetRoWaterModeDGr::parameters() const { return { - _data.mAccepted.value, - _data.mReason .value, + _data.mFirmwareValue.value, + _data.mAccepted .value, + _data.mReason .value, }; } bool Model::MDuetRoWaterModeDGr::fromByteArray(const QByteArray &vByteArray, int *vIndex) { int index = 0; // message data start position - if (GetValue(vByteArray, index, _data.mAccepted )) - if (GetValue(vByteArray, index, _data.mReason )) + if (GetValue(vByteArray, index, _data.mFirmwareValue )) + if (GetValue(vByteArray, index, _data.mAccepted )) + if (GetValue(vByteArray, index, _data.mReason )) return true ; else { if(vIndex) *vIndex = index; return false; } else { if(vIndex) *vIndex = index; return false; } + else { if(vIndex) *vIndex = index; return false; } } /*! @@ -58,7 +61,8 @@ */ DuetRoWaterModeDGrData Model::MDuetRoWaterModeDGr::data() const { Data data; - data.mAccepted = _data.mAccepted.value; - data.mReason = _data.mReason .value; + data.mFirmwareValue = _data.mFirmwareValue.value; + data.mAccepted = _data.mAccepted .value; + data.mReason = _data.mReason .value; return data; } Index: sources/model/dg/adjustment/settings/MDuetRoWaterDG.h =================================================================== diff -u -r2ef03b2ce51b4dc507f66e9671953a8e0824bde9 -r988d4037838bb83205e1b98e1323846271e58571 --- sources/model/dg/adjustment/settings/MDuetRoWaterDG.h (.../MDuetRoWaterDG.h) (revision 2ef03b2ce51b4dc507f66e9671953a8e0824bde9) +++ sources/model/dg/adjustment/settings/MDuetRoWaterDG.h (.../MDuetRoWaterDG.h) (revision 988d4037838bb83205e1b98e1323846271e58571) @@ -82,8 +82,9 @@ * * | Payload || * | || - * | #1:(U32) | \ref Data::mAccepted | - * | #2:(U32) | \ref Data::mReason | + * | #1:(U32) | \ref Data::mFWValue | + * | #2:(U32) | \ref Data::mAccepted | + * | #3:(U32) | \ref Data::mReason | * * \sa Data * @@ -103,8 +104,9 @@ QVariantList parameters() const override; struct { - Types::U32 mAccepted; - Types::U32 mReason ; + Types::U32 mFirmwareValue; + Types::U32 mAccepted ; + Types::U32 mReason ; } _data; public: @@ -113,8 +115,9 @@ QString infoText () const override { return QString("AdjustRoWater") ; } struct Data { - bool mAccepted = 0; /*!< Accepted value of type quint32 extracted out */ - quint32 mReason = 0; /*!< Reason value of type quint32 extracted out */ + quint32 mFirmwareValue = 0; /*!< Value in the firmware */ + bool mAccepted = 0; /*!< Accepted value of type quint32 extracted out */ + quint32 mReason = 0; /*!< Reason value of type quint32 extracted out */ }; MDuetRoWaterModeDGr () { } Index: sources/view/VAdjustmentResponseBase.h =================================================================== diff -u -r2ef03b2ce51b4dc507f66e9671953a8e0824bde9 -r988d4037838bb83205e1b98e1323846271e58571 --- sources/view/VAdjustmentResponseBase.h (.../VAdjustmentResponseBase.h) (revision 2ef03b2ce51b4dc507f66e9671953a8e0824bde9) +++ sources/view/VAdjustmentResponseBase.h (.../VAdjustmentResponseBase.h) (revision 988d4037838bb83205e1b98e1323846271e58571) @@ -57,6 +57,7 @@ // disabled coco end PROPERTY( bool , adjustment_Accepted , 0) + PROPERTY( quint32 , adjustment_FWValue , 0) Q_PROPERTY(QString adjustment_ReasonText READ text NOTIFY adjustment_ReasonTriggered) Index: sources/view/settings/VDuetRoWaterDG.cpp =================================================================== diff -u -r2ef03b2ce51b4dc507f66e9671953a8e0824bde9 -r988d4037838bb83205e1b98e1323846271e58571 --- sources/view/settings/VDuetRoWaterDG.cpp (.../VDuetRoWaterDG.cpp) (revision 2ef03b2ce51b4dc507f66e9671953a8e0824bde9) +++ sources/view/settings/VDuetRoWaterDG.cpp (.../VDuetRoWaterDG.cpp) (revision 988d4037838bb83205e1b98e1323846271e58571) @@ -44,6 +44,7 @@ void View::VDuetRoWaterDG::onActionReceive(const DuetRoWaterModeDGrData &vData) // 0xC400 : 196 { + adjustment_FWValue ( vData.mFirmwareValue ); adjustment_Accepted ( vData.mAccepted ); adjustment_Reason ( vData.mReason ); @@ -52,13 +53,11 @@ notification(""); } else { + // If the firmware rejected the set RO only mode, set the value that firmware has it. + status( vData.mFirmwareValue ); if ( _post ) { - status( ! _status ); // on post what UI currently has, is rejected, so UI should change to opposite. _post = false; } - else { - status( _status ); // use the old value to emit signal for UI - } notification(tr("The RO Water Mode change request has been rejected [%1]").arg(vData.mReason)); }