9 _assocTable(_memory), _groupObjTable(_memory),
11 _appLayer(_deviceObj, _secIfObj, *this),
15 _transLayer(_appLayer), _netLayer(_deviceObj, _transLayer)
60 static uint16_t startIdx = 1;
65 for (uint16_t asap = startIdx; asap <= objCount; asap++)
76 #ifdef SMALL_GROUPOBJECT
133 memcpy(goData, data, length);
138 #ifdef SMALL_GROUPOBJECT
166 #ifdef USE_DATASECURE
180 #ifdef USE_DATASECURE
207 #ifdef USE_DATASECURE
215 println(
"GroupValueRead: access denied due to wrong security flags");
243 #ifdef USE_DATASECURE
251 println(
"GroupValueWrite: access denied due to wrong security flags");
This is an implementation of the application layer as specified in .
void associationTableObject(AssociationTableObject &assocTable)
void groupValueReadResponse(AckType ack, uint16_t asap, Priority priority, HopCountType hopType, const SecurityControl &secCtrl, uint8_t *data, uint8_t dataLength)
void groupValueReadRequest(AckType ack, uint16_t asap, Priority priority, HopCountType hopType, const SecurityControl &secCtrl)
void groupValueWriteRequest(AckType ack, uint16_t asap, Priority priority, HopCountType hopType, const SecurityControl &secCtrl, uint8_t *data, uint8_t dataLength)
void transportLayer(TransportLayer &layer)
Assigns the TransportLayer to which encoded APDU are submitted to.
void groupValueWriteIndication(uint16_t asap, Priority priority, HopCountType hopType, const SecurityControl &secCtrl, uint8_t *data, uint8_t dataLength) override
ApplicationLayer & applicationLayer() override
AssociationTableObject _assocTable
GroupObjectTableObject & groupObjectTable()
void groupValueWriteLocalConfirm(AckType ack, uint16_t asap, Priority priority, HopCountType hopType, const SecurityControl &secCtrl, uint8_t *data, uint8_t dataLength, bool status) override
SecureApplicationLayer _appLayer
void doMasterReset(EraseCode eraseCode, uint8_t channel) override
BauSystemBDevice(Platform &platform)
TransportLayer _transLayer
NetworkLayerDevice _netLayer
void updateGroupObject(GroupObject &go, uint8_t *data, uint8_t length)
void groupValueReadAppLayerConfirm(uint16_t asap, Priority priority, HopCountType hopType, const SecurityControl &secCtrl, uint8_t *data, uint8_t dataLength) override
void sendNextGroupTelegram()
void groupValueReadLocalConfirm(AckType ack, uint16_t asap, Priority priority, HopCountType hopType, const SecurityControl &secCtrl, bool status) override
AddressTableObject _addrTable
GroupObjectTableObject _groupObjTable
void groupValueReadIndication(uint16_t asap, Priority priority, HopCountType hopType, const SecurityControl &secCtrl) override
SecurityInterfaceObject _secIfObj
bool configured() override
virtual void doMasterReset(EraseCode eraseCode, uint8_t channel)
ApplicationProgramObject _appProgram
This class represents a single group object.
bool writeEnable()
Check if the write flag (W) was set.
bool responseUpdateEnable()
Check if the update flag (U) was set.
size_t sizeInTelegram()
returns the size of the group object in Byte as it is in a telegram.
static void processClassCallback(GroupObject &ko)
ComFlag commFlag()
Return the current state of the group object.
bool transmitEnable()
Check if the transmit flag (T) was set.
uint8_t * valueRef()
returns the pointer to the value of the group object.
void callback(GroupObjectUpdatedHandler handler)
register a callback for this group object.
Priority priority()
Get the priority of the group object.
bool communicationEnable()
Check if the communication flag (C) was set.
size_t valueSize()
returns the size of the group object in Byte.
bool readEnable()
Check if the read flag (R) was set.
GroupObject & get(uint16_t asap)
virtual void masterReset(EraseCode eraseCode, uint8_t channel)
void addSaveRestore(SaveRestore *obj)
void groupAddressTable(AddressTableObject &addrTable)
void masterReset(EraseCode eraseCode, uint8_t channel) override
DataSecurity getGroupObjectSecurity(uint16_t index)
LoadState loadState()
This method returns the LoadState of the interface object.
void networkLayer(NetworkLayer &layer)
void groupAddressTable(AddressTableObject &addrTable)
@ Ok
read or write request were send successfully
@ ReadRequest
Read was requested but was not processed.
@ Updated
Group object was updated.
@ Error
there was an error on processing a request
@ Transmitting
Group Object is processed a the moment (read or write)
@ WriteRequest
Write was requested but was not processed.
std::function< void(GroupObject &)> GroupObjectUpdatedHandler
@ NetworkLayerParameter
use NetworkLayer::hopCount as NPDU::hopCount
@ AckRequested
We want a DataLinkLayer acknowledgement.
DataSecurity dataSecurity