mirror of
https://github.com/thelsing/knx.git
synced 2025-09-05 17:50:22 +02:00
GroupObjects can communicate internally
- GroupObjects use callback infrastructure also during write to bus - external and internal write of a GO can be handled identically - needs #define INTERNAL_GROUPOBJECT
This commit is contained in:
parent
22af8267c3
commit
f7e8fec2ff
@ -69,8 +69,15 @@ void BauSystemBDevice::sendNextGroupTelegram()
|
||||
if (flag != ReadRequest && flag != WriteRequest)
|
||||
continue;
|
||||
|
||||
#ifdef INTERNAL_GROUPOBJECT
|
||||
if (flag == WriteRequest)
|
||||
GroupObject::processClassCallback(go);
|
||||
#endif
|
||||
if (!go.communicationEnable())
|
||||
{
|
||||
go.commFlag(Ok);
|
||||
continue;
|
||||
}
|
||||
|
||||
SecurityControl goSecurity;
|
||||
goSecurity.toolAccess = false; // Secured group communication never uses the toolkey. ETS knows all keys, also the group keys.
|
||||
@ -113,7 +120,10 @@ void BauSystemBDevice::updateGroupObject(GroupObject & go, uint8_t * data, uint8
|
||||
|
||||
memcpy(goData, data, length);
|
||||
|
||||
go.commFlag(Updated);
|
||||
#ifdef INTERNAL_GROUPOBJECT
|
||||
if (go.commFlag() != WriteRequest)
|
||||
{
|
||||
#endif
|
||||
#ifdef SMALL_GROUPOBJECT
|
||||
GroupObject::processClassCallback(go);
|
||||
#else
|
||||
@ -121,6 +131,10 @@ void BauSystemBDevice::updateGroupObject(GroupObject & go, uint8_t * data, uint8
|
||||
if (handler)
|
||||
handler(go);
|
||||
#endif
|
||||
#ifdef INTERNAL_GROUPOBJECT
|
||||
}
|
||||
#endif
|
||||
go.commFlag(Updated);
|
||||
}
|
||||
|
||||
bool BauSystemBDevice::configured()
|
||||
|
Loading…
Reference in New Issue
Block a user