Skip to content

Commit

Permalink
(Prepare for devel) Fix: Do NOT Send when Updating KO Failed on Value…
Browse files Browse the repository at this point in the history
… Conversion
  • Loading branch information
cornelius-koepp committed Nov 2, 2024
1 parent a7d344f commit 9ee6e11
Showing 1 changed file with 26 additions and 4 deletions.
30 changes: 26 additions & 4 deletions src/knx/group_object/group_object.h
Original file line number Diff line number Diff line change
Expand Up @@ -478,14 +478,29 @@ namespace Knx
ComFlag _commFlag : 7;
uint8_t* _data = 0;
uint8_t _dataLength = 0;

/**
* set the current value of the group object and show success.
* @param value the value the group object is set to
* @param type the datapoint type used for the conversion.
*
* The parameters must fit the group object. Otherwise it will stay unchanged.
*
* @returns true if the value of the group object was updated after successful conversion.
*/
template<class DPT> bool _valueNoSend(const DPT& value);

};

bool operator==(const GroupObject& lhs, const GroupObject& rhs);

template<class DPT> void GroupObject::value(const DPT& value)
{
valueNoSend(value);
objectWritten();
if (_valueNoSend(value))
{
// write on successful conversion/setting value only
objectWritten();
}
}

template<class DPT> DPT GroupObject::value()
Expand All @@ -508,6 +523,12 @@ namespace Knx
}

template<class DPT> void GroupObject::valueNoSend(const DPT& value)
{
// ignore actual updating TODO check replacing valueNoSend with _valueNoSend
_valueNoSend(value);
}

template<class DPT> bool GroupObject::_valueNoSend(const KNXValue& value)
{
if (value.size() != sizeCode())
return;
Expand All @@ -518,6 +539,8 @@ namespace Knx
// initialize on succesful conversion only
if (encodingDone && _uninitialized)
commFlag(Ok);

return encodingDone;
}

template<class DPT> bool GroupObject::valueNoSendCompare(const DPT& value)
Expand All @@ -528,8 +551,7 @@ namespace Knx
if (_uninitialized)
{
// always set first value
this->valueNoSend(value);
return true;
return _valueNoSend(value);
}
else
{
Expand Down

0 comments on commit 9ee6e11

Please sign in to comment.