Class SecureApplicationLayer

Nested Relationships

Nested Types

Inheritance Relationships

Base Type

Class Documentation

class SecureApplicationLayer : public ApplicationLayer

This is an implementation of the application layer as specified in [4].

It provides methods for the BusAccessUnit to do different things and translates this call to an APDU and calls the correct method of the TransportLayer. It also takes calls from TransportLayer, decodes the submitted APDU and calls the coresponding methods of the BusAccessUnit class.

Public Functions

SecureApplicationLayer(DeviceObject &deviceObj, SecurityInterfaceObject &secIfObj, BusAccessUnit &bau)

The constructor.

Parameters
  • assocTable – The AssociationTable is used to translate between asap (i.e. group objects) and group addresses.

  • bau – methods are called here depending of the content of the APDU

void groupAddressTable(AddressTableObject &addrTable)
virtual void dataGroupIndication(HopCountType hopType, Priority priority, uint16_t tsap, APDU &apdu) override

Somebody send us an APDU via multicast communication.

See 3.2 of [1]. See also ApplicationLayer::dataGroupConfirm and TransportLayer::dataGroupRequest. This method is called by the TransportLayer.

Parameters
virtual void dataGroupConfirm(AckType ack, HopCountType hopType, Priority priority, uint16_t tsap, APDU &apdu, bool status) override

Report the status of an APDU that we sent via multicast communication back to us.

See 3.2 of [1]. See also ApplicationLayer::dataGroupConfirm and TransportLayer::dataGroupRequest. This method is called by the TransportLayer.

Parameters
virtual void dataBroadcastIndication(HopCountType hopType, Priority priority, uint16_t source, APDU &apdu) override
virtual void dataBroadcastConfirm(AckType ack, HopCountType hopType, Priority priority, APDU &apdu, bool status) override
virtual void dataSystemBroadcastIndication(HopCountType hopType, Priority priority, uint16_t source, APDU &apdu) override
virtual void dataSystemBroadcastConfirm(HopCountType hopType, Priority priority, APDU &apdu, bool status) override
virtual void dataIndividualIndication(HopCountType hopType, Priority priority, uint16_t source, APDU &apdu) override
virtual void dataIndividualConfirm(AckType ack, HopCountType hopType, Priority priority, uint16_t tsap, APDU &apdu, bool status) override
virtual void dataConnectedIndication(Priority priority, uint16_t tsap, APDU &apdu) override
virtual void dataConnectedConfirm(uint16_t tsap) override
void loop()

Protected Functions

virtual void dataGroupRequest(AckType ack, HopCountType hopType, Priority priority, uint16_t tsap, APDU &apdu, const SecurityControl &secCtrl) override
virtual void dataBroadcastRequest(AckType ack, HopCountType hopType, Priority priority, APDU &apdu, const SecurityControl &secCtrl) override
virtual void dataSystemBroadcastRequest(AckType ack, HopCountType hopType, Priority priority, APDU &apdu, const SecurityControl &secCtrl) override
virtual void dataIndividualRequest(AckType ack, HopCountType hopType, Priority priority, uint16_t destination, APDU &apdu, const SecurityControl &secCtrl) override
virtual void dataConnectedRequest(uint16_t tsap, Priority priority, APDU &apdu, const SecurityControl &secCtrl) override