save work

This commit is contained in:
Nanosonde 2020-07-01 22:27:47 +02:00
parent 0dc98b2a30
commit 0f794ab2ea
5 changed files with 29 additions and 4 deletions

View File

@ -62,10 +62,6 @@ void BauSystemB::sendNextGroupTelegram()
if(!configured()) if(!configured())
return; return;
// TODO: get security flags from Security Interface Object for this group object
SecurityControl goSecurity;
goSecurity.dataSecurity = DataSecurity::none;
static uint16_t startIdx = 1; static uint16_t startIdx = 1;
GroupObjectTableObject& table = _groupObjTable; GroupObjectTableObject& table = _groupObjTable;
@ -82,6 +78,18 @@ void BauSystemB::sendNextGroupTelegram()
if (!go.communicationEnable()) if (!go.communicationEnable())
continue; continue;
SecurityControl goSecurity;
// TODO: what do we do with it?
goSecurity.toolAccess;
#ifdef USE_DATASECURE
// Get security flags from Security Interface Object for this group object
goSecurity.dataSecurity = _appLayer.getGoSecurityFlags(asap);
#else
goSecurity.dataSecurity = DataSecurity::none;
#endif
if (flag == WriteRequest && go.transmitEnable()) if (flag == WriteRequest && go.transmitEnable())
{ {
uint8_t* data = go.valueRef(); uint8_t* data = go.valueRef();

View File

@ -1275,3 +1275,8 @@ bool SecureApplicationLayer::isSyncService(APDU& secureApdu)
return false; return false;
} }
DataSecurity SecureApplicationLayer::getGoSecurityFlags(uint16_t index)
{
return _secIfObj.getGoSecurityFlags(index);
}

View File

@ -35,6 +35,8 @@ class SecureApplicationLayer : public ApplicationLayer
void getFailureCounters(uint8_t* data); void getFailureCounters(uint8_t* data);
uint8_t getFromFailureLogByIndex(uint8_t index, uint8_t* data, uint8_t maxDataLen); uint8_t getFromFailureLogByIndex(uint8_t index, uint8_t* data, uint8_t maxDataLen);
DataSecurity getGoSecurityFlags(uint16_t index);
// from transport layer // from transport layer
virtual void dataGroupIndication(HopCountType hopType, Priority priority, uint16_t tsap, APDU& apdu) override; virtual void dataGroupIndication(HopCountType hopType, Priority priority, uint16_t tsap, APDU& apdu) override;
virtual void dataGroupConfirm(AckType ack, HopCountType hopType, Priority priority, uint16_t tsap, virtual void dataGroupConfirm(AckType ack, HopCountType hopType, Priority priority, uint16_t tsap,

View File

@ -491,5 +491,12 @@ void SecurityInterfaceObject::setLastValidSequenceNumber(uint16_t deviceAddr, ui
} }
} }
DataSecurity SecurityInterfaceObject::getGoSecurityFlags(uint16_t index)
{
// TODO
// PID_GO_SECURITY_FLAGS
return DataSecurity::none;
}
#endif #endif

View File

@ -4,6 +4,7 @@
#ifdef USE_DATASECURE #ifdef USE_DATASECURE
#include "interface_object.h" #include "interface_object.h"
#include "knx_types.h"
class SecureApplicationLayer; class SecureApplicationLayer;
@ -32,6 +33,8 @@ public:
uint64_t getLastValidSequenceNumber(uint16_t deviceAddr); uint64_t getLastValidSequenceNumber(uint16_t deviceAddr);
void setLastValidSequenceNumber(uint16_t deviceAddr, uint64_t seqNum); void setLastValidSequenceNumber(uint16_t deviceAddr, uint64_t seqNum);
DataSecurity getGoSecurityFlags(uint16_t index);
private: private:
SecureApplicationLayer* _secAppLayer = nullptr; SecureApplicationLayer* _secAppLayer = nullptr;