24 _assocTable = &assocTable;
27 #pragma region TL Callbacks
36 if (_assocTable ==
nullptr)
39 uint8_t len = apdu.
length();
40 uint8_t dataArray[len];
41 uint8_t* data = dataArray;
42 memcpy(data, apdu.
data(), len);
55 uint16_t startIdx = 0;
56 int32_t asap = _assocTable->
nextAsap(tsap, startIdx);
58 for (; asap != -1; asap = _assocTable->
nextAsap(tsap, startIdx))
90 if (_savedAsapReadRequest > 0)
93 _savedAsapReadRequest = 0;
97 if (_savedAsapResponse > 0)
100 _savedAsapResponse = 0;
104 if (_savedAsapWriteRequest > 0)
107 _savedAsapWriteRequest = 0;
111 print(
"datagroup-confirm: unhandled APDU-Type: ");
123 uint8_t* data = apdu.
data();
145 uint8_t* knxSerialNumber = &data[1];
152 uint16_t domainAddress;
153 popWord(domainAddress, data + 7);
161 uint8_t* knxSerialNumber = &data[1];
162 uint16_t newIndividualAddress;
163 popWord(newIndividualAddress, &data[7]);
169 print(
"Broadcast-indication: unhandled APDU-Type: ");
182 uint8_t* data = apdu.
data();
208 uint16_t domainAddress;
209 popWord(domainAddress, data + 7);
223 print(
"Broadcast-confirm: unhandled APDU-Type: ");
236 const uint8_t* data = apdu.
data();
248 popByte(testInfo[0], data + 4);
249 popByte(testInfo[1], data + 5);
250 propertyId = (propertyId >> 4) & 0x0FFF;
258 const uint8_t* knxSerialNumber = &data[1];
259 const uint8_t* domainAddress = &data[7];
266 const uint8_t* knxSerialNumber = &data[1];
272 print(
"SystemBroadcast-indication: unhandled APDU-Type: ");
285 const uint8_t* data = apdu.
data();
297 popByte(testInfo[0], data + 4);
298 popByte(testInfo[1], data + 5);
299 propertyId = (propertyId >> 4) & 0x0FFF;
307 const uint8_t* knxSerialNumber = &data[1];
308 const uint8_t* domainAddress = &data[7];
315 const uint8_t* knxSerialNumber = &data[1];
321 print(
"SystemBroadcast-confirm: unhandled APDU-Type: ");
334 individualIndication(hopType, priority, tsap, apdu, secCtrl);
344 individualConfirm(ack, hopType, priority, tsap, apdu, secCtrl, status);
349 _connectedTsap = tsap;
356 _connectedTsap = tsap;
395 if (_assocTable ==
nullptr)
398 _savedAsapReadRequest = asap;
408 uint16_t tsap = (uint16_t)value;
417 _savedAsapResponse = asap;
418 groupValueSend(
GroupValueResponse, ack, asap, priority, hopType, secCtrl, data, dataLength);
423 _savedAsapWriteRequest = asap;
424 groupValueSend(
GroupValueWrite, ack, asap, priority, hopType, secCtrl, data, dataLength);
432 uint8_t* apduData = apdu.
data();
458 uint8_t* data = apdu.
data() + 1;
459 memcpy(data, serialNumber, 6);
464 uint8_t* serialNumber, uint16_t domainAddress)
469 uint8_t* data = apdu.
data() + 1;
470 memcpy(data, serialNumber, 6);
482 uint8_t* data = apdu.
data() + 1;
483 memcpy(data, serialNumber, 6);
490 uint8_t descriptorType)
495 uint8_t* data = apdu.
data();
496 *data |= (descriptorType & 0x3f);
498 individualSend(ack, hopType, priority, asap, apdu, secCtrl);
502 uint8_t descriptorType, uint8_t* deviceDescriptor)
506 switch (descriptorType)
518 descriptorType = 0x3f;
525 uint8_t* data = apdu.
data();
526 *data |= (descriptorType & 0x3f);
529 memcpy(data + 1, deviceDescriptor, length - 1);
531 individualSend(ack, hopType, priority, asap, apdu, secCtrl);
550 individualSend(ack, hopType, priority, _connectedTsap, apdu, secCtrl);
558 uint8_t* data = apdu.
data();
559 data[0] |= (1 << 5) | 1;
561 data[2] = processTime >> 8;
562 data[3] = processTime & 0xFF;
564 individualSend(ack, hopType, priority, _connectedTsap, apdu, secCtrl);
569 uint16_t objectType, uint16_t propertyId,
570 uint8_t* testInfo, uint16_t testInfoLength,
571 uint8_t* testResult, uint16_t testResultLength)
573 CemiFrame frame(testInfoLength + testResultLength + 3 + 1);
576 uint8_t* data = apdu.
data() + 1;
579 pushWord((propertyId << 4) & 0xFFF0, data + 2);
580 uint8_t* pData =
pushByteArray(&testInfo[1], testInfoLength - 1, data + 4);
581 memcpy(pData, testResult, testResultLength);
591 const uint8_t* knxSerialNumber)
597 uint8_t* data = apdu.
data() + 1;
599 memcpy(data, knxSerialNumber, 6);
600 memcpy(data + 6, rfDoA, 6);
610 const uint8_t* knxSerialNumber)
616 uint8_t* data = apdu.
data() + 1;
618 memcpy(data, knxSerialNumber, 6);
619 memcpy(data + 6, domainAddress, 2);
627 uint8_t objectIndex, uint8_t propertyId, uint8_t numberOfElements, uint16_t startIndex)
632 uint8_t* data = apdu.
data();
637 *data &= ((numberOfElements & 0xf) << 4);
639 individualSend(ack, hopType, priority, asap, apdu, secCtrl);
643 uint8_t objectIndex, uint8_t propertyId, uint8_t numberOfElements, uint16_t startIndex, uint8_t* data, uint8_t length)
645 propertyDataSend(
PropertyValueResponse, ack, priority, hopType, asap, secCtrl, objectIndex, propertyId, numberOfElements,
646 startIndex, data, length);
650 uint16_t objectType, uint8_t objectInstance, uint8_t propertyId, uint8_t numberOfElements, uint16_t startIndex, uint8_t* data, uint8_t length)
652 propertyExtDataSend(
PropertyValueExtResponse, ack, priority, hopType, asap, secCtrl, objectType, objectInstance, propertyId, numberOfElements,
653 startIndex, data, length);
657 uint16_t objectType, uint8_t objectInstance, uint8_t propertyId, uint8_t numberOfElements, uint16_t startIndex, uint8_t returnCode)
660 propertyExtDataSend(
PropertyValueExtWriteConResponse, ack, priority, hopType, asap, secCtrl, objectType, objectInstance, propertyId, noOfElem,
661 startIndex, &returnCode, 1);
665 uint8_t objectIndex, uint8_t propertyId, uint8_t numberOfElements, uint16_t startIndex, uint8_t* data, uint8_t length)
667 propertyDataSend(
PropertyValueWrite, ack, priority, hopType, asap, secCtrl, objectIndex, propertyId, numberOfElements,
668 startIndex, data, length);
672 uint8_t channelNr, uint8_t readCount, int16_t value)
677 uint8_t* data = apdu.
data();
679 data[0] |= (channelNr & 0b111111);
681 data[2] = value >> 8;
682 data[3] = value & 0xFF;
684 if (asap == _connectedTsap)
691 uint8_t objectIndex, uint8_t propertyId, uint8_t* resultData, uint8_t resultLength)
696 uint8_t* data = apdu.
data() + 1;
698 data[0] = objectIndex;
699 data[1] = propertyId;
701 if (resultLength > 0)
702 memcpy(&data[2], resultData, resultLength);
704 if (asap == _connectedTsap)
711 uint16_t objectType, uint8_t objectInstance, uint16_t propertyId, uint8_t* resultData, uint8_t resultLength)
716 uint8_t* data = apdu.
data() + 1;
718 data[0] = ((uint16_t)objectType) >> 8;
719 data[1] = ((uint16_t)objectType) & 0xFF;
720 data[2] = objectInstance >> 4;
721 data[3] = ((objectInstance & 0x0F) << 4) | (propertyId >> 8);
722 data[4] = (propertyId & 0xFF);
725 if (resultLength > 0)
726 memcpy(&data[5], resultData, resultLength);
728 if (asap == _connectedTsap)
735 uint8_t objectIndex, uint8_t propertyId, uint8_t propertyIndex)
740 uint8_t* data = apdu.
data();
741 data[1] = objectIndex;
742 data[2] = propertyId;
743 data[3] = propertyIndex;
744 individualSend(ack, hopType, priority, asap, apdu, secCtrl);
748 uint8_t objectIndex, uint8_t propertyId, uint8_t propertyIndex,
bool writeEnable, uint8_t type,
749 uint16_t maxNumberOfElements, uint8_t access)
754 uint8_t* data = apdu.
data();
755 data[1] = objectIndex;
756 data[2] = propertyId;
757 data[3] = propertyIndex;
762 data[4] |= (type & 0x3f);
763 pushWord(maxNumberOfElements & 0xfff, data + 5);
765 individualSend(ack, hopType, priority, asap, apdu, secCtrl);
769 uint16_t objectType, uint16_t objectInstance, uint16_t propertyId, uint16_t propertyIndex, uint8_t descriptionType,
bool writeEnable, uint8_t type,
770 uint16_t maxNumberOfElements, uint8_t access)
775 uint8_t* data = apdu.
data();
777 data[1] = (objectType & 0xff00) >> 8;
778 data[2] = (objectType & 0x00ff);
780 data[3] = (objectInstance & 0x0ff0) >> 4;
781 data[4] = (objectInstance & 0x000f) << 4 | (propertyId & 0x0f00) >> 8;
782 data[5] = (propertyId & 0x00ff);
784 data[6] = (descriptionType & 0x000f) << 4 | (propertyIndex & 0x0f00) >> 8;
785 data[7] = (propertyIndex & 0x00ff);
794 data[12] |= (type & 0x3f);
796 pushWord(maxNumberOfElements & 0xfff, data + 13);
798 individualSend(ack, hopType, priority, asap, apdu, secCtrl);
802 uint16_t memoryAddress)
807 uint8_t* data = apdu.
data();
808 *data |= (number & 0x3f);
810 individualSend(ack, hopType, priority, asap, apdu, secCtrl);
814 uint16_t memoryAddress, uint8_t* memoryData)
816 memorySend(
MemoryResponse, ack, priority, hopType, asap, secCtrl, number, memoryAddress, memoryData);
820 uint16_t memoryAddress, uint8_t* memoryData)
822 memoryRouterSend(
MemoryRouterReadResponse, ack, priority, hopType, asap, secCtrl, number, memoryAddress, memoryData);
826 uint16_t memoryAddress, uint8_t* memoryData)
828 memoryRoutingTableSend(
RoutingTableReadResponse, ack, priority, hopType, asap, secCtrl, number, memoryAddress, memoryData);
832 uint8_t number, uint32_t memoryAddress, uint8_t* memoryData)
837 uint8_t* data = apdu.
data();
839 data[2] = (memoryAddress >> 16);
840 data[3] = (memoryAddress >> 8);
841 data[4] = (memoryAddress & 0xFF);
843 memcpy(&data[5], memoryData, number);
845 individualSend(ack, hopType, priority, asap, apdu, secCtrl);
849 uint8_t number, uint32_t memoryAddress, uint8_t* memoryData)
856 uint8_t* data = apdu.
data();
858 data[2] = (memoryAddress >> 16);
859 data[3] = (memoryAddress >> 8);
860 data[4] = (memoryAddress & 0xFF);
864 uint16_t crc =
crc16Ccitt(memoryData, number);
866 data[6] = crc & 0xFF;
869 individualSend(ack, hopType, priority, asap, apdu, secCtrl);
873 uint8_t number, uint16_t memoryAddress, uint8_t* data)
875 memorySend(
MemoryWrite, ack, priority, hopType, asap, secCtrl, number, memoryAddress, data);
879 uint8_t number, uint32_t memoryAddress)
884 uint8_t* data = apdu.
data();
885 data[1] |= (number & 0xf);
886 data[1] |= ((memoryAddress >> 12) & 0xf0);
887 pushWord(memoryAddress & 0xff, data + 2);
888 individualSend(ack, hopType, priority, asap, apdu, secCtrl);
892 uint8_t number, uint32_t memoryAddress, uint8_t* memoryData)
894 userMemorySend(
UserMemoryResponse, ack, priority, hopType, asap, secCtrl, number, memoryAddress, memoryData);
898 uint8_t number, uint32_t memoryAddress, uint8_t* memoryData)
900 userMemorySend(
UserMemoryWrite, ack, priority, hopType, asap, secCtrl, number, memoryAddress, memoryData);
908 individualSend(ack, hopType, priority, asap, apdu, secCtrl);
917 uint8_t* data = apdu.
data();
918 memcpy(data + 1, info, 3);
919 individualSend(ack, hopType, priority, asap, apdu, secCtrl);
927 uint8_t* data = apdu.
data();
929 individualSend(ack, hopType, priority, asap, apdu, secCtrl);
937 uint8_t* data = apdu.
data();
939 individualSend(ack, hopType, priority, asap, apdu, secCtrl);
947 uint8_t* data = apdu.
data();
950 individualSend(ack, hopType, priority, asap, apdu, secCtrl);
958 uint8_t* data = apdu.
data();
960 individualSend(ack, hopType, priority, asap, apdu, secCtrl);
964 uint8_t objectIndex, uint8_t propertyId, uint8_t numberOfElements, uint16_t startIndex, uint8_t* data, uint8_t length)
967 APDU& apdu = frame.apdu();
969 uint8_t* apduData = apdu.
data();
971 apduData =
pushByte(objectIndex, apduData);
972 apduData =
pushByte(propertyId, apduData);
973 pushWord(startIndex & 0xfff, apduData);
974 *apduData |= ((numberOfElements & 0xf) << 4);
978 memcpy(apduData, data, length);
980 if (asap == _connectedTsap)
987 uint16_t objectType, uint8_t objectInstance, uint8_t propertyId, uint8_t numberOfElements, uint16_t startIndex, uint8_t* data, uint8_t length)
990 APDU& apdu = frame.apdu();
992 uint8_t* apduData = apdu.
data();
995 apduData[0] = ((uint16_t)objectType) >> 8;
996 apduData[1] = ((uint16_t)objectType) & 0xFF;
997 apduData[2] = objectInstance >> 4;
998 apduData[3] = ((objectInstance & 0x0F) << 4) | (propertyId >> 8);
999 apduData[4] = (propertyId & 0xFF);
1000 apduData[5] = numberOfElements;
1001 apduData[6] = (startIndex & 0x0FFF) >> 8;
1002 apduData[7] = startIndex & 0xFF;
1005 memcpy(apduData + 8, data, length);
1007 if (asap == _connectedTsap)
1014 uint8_t* data, uint8_t& dataLength)
1016 if (_assocTable ==
nullptr)
1020 APDU& apdu = frame.apdu();
1022 uint8_t* apdudata = apdu.
data();
1024 if (dataLength == 0)
1028 *apdudata |= (*data & 0x3f);
1032 memcpy(apdudata + 1, data, dataLength);
1042 uint16_t memoryAddress, uint8_t* memoryData)
1045 APDU& apdu = frame.apdu();
1047 uint8_t* data = apdu.
data();
1048 *data |= (number & 0x3f);
1052 memcpy(data + 3, memoryData, number);
1054 individualSend(ack, hopType, priority, asap, apdu, secCtrl);
1058 uint16_t memoryAddress, uint8_t* memoryData)
1061 APDU& apdu = frame.apdu();
1063 uint8_t* data = apdu.
data();
1064 data[1] |= (number & 0xf);
1065 pushWord(memoryAddress & 0xffff, data + 2);
1068 memcpy(data + 4, memoryData, number);
1070 individualSend(ack, hopType, priority, asap, apdu, secCtrl);
1074 uint16_t memoryAddress, uint8_t* memoryData)
1077 APDU& apdu = frame.apdu();
1079 uint8_t* data = apdu.
data();
1080 data[1] |= (number & 0xf);
1081 pushWord(memoryAddress & 0xffff, data + 2);
1084 memcpy(data + 4, memoryData, number);
1086 individualSend(ack, hopType, priority, asap, apdu, secCtrl);
1090 uint32_t memoryAddress, uint8_t* memoryData)
1093 APDU& apdu = frame.apdu();
1095 uint8_t* data = apdu.
data();
1096 data[1] |= (number & 0xf);
1097 data[1] |= ((memoryAddress >> 12) & 0xf0);
1098 pushWord(memoryAddress & 0xffff, data + 2);
1101 memcpy(data + 4, memoryData, number);
1103 individualSend(ack, hopType, priority, asap, apdu, secCtrl);
1108 uint8_t* data = apdu.
data();
1110 switch (apdu.
type())
1124 uint8_t reservedBits = data[0] & 0x1e;
1126 if (reservedBits != 0)
1132 uint8_t channel = 0;
1146 uint16_t startIndex;
1147 popWord(startIndex, data + 3);
1148 startIndex &= 0xfff;
1155 uint16_t startIndex;
1156 popWord(startIndex, data + 3);
1157 startIndex &= 0xfff;
1159 startIndex, data + 5, apdu.
length() - 5);
1165 uint16_t startIndex;
1166 popWord(startIndex, data + 3);
1167 startIndex &= 0xfff;
1169 startIndex, data + 5, apdu.
length() - 5);
1176 uint8_t objectInstance = ((data[3] & 0xff) << 4) | ((data[4] & 0xff) >> 4);
1177 uint16_t propertyId = ((data[4] & 0xf) << 8) | (data[5] & 0xff);
1178 uint8_t numberOfElements = data[6];
1179 uint16_t startIndex = ((data[7] & 0xf) << 8) | (data[8] & 0xff);
1188 uint8_t objectInstance = ((data[3] & 0xff) << 4) | ((data[4] & 0xff) >> 4);
1189 uint16_t propertyId = ((data[4] & 0xf) << 8) | (data[5] & 0xff);
1190 uint8_t numberOfElements = data[6];
1191 uint16_t startIndex = ((data[7] & 0xf) << 8) | (data[8] & 0xff);
1194 data + 9, apdu.
length() - 9, confirmed);
1209 uint8_t objectInstance = ((data[3] & 0xff) << 4) | ((data[4] & 0xff) >> 4);
1210 uint16_t propertyId = ((data[4] & 0xf) << 8) | (data[5] & 0xff);
1211 uint8_t* functionInput = &data[6];
1219 uint8_t objectInstance = ((data[3] & 0xff) << 4) | ((data[4] & 0xff) >> 4);
1220 uint16_t propertyId = ((data[4] & 0xf) << 8) | (data[5] & 0xff);
1221 uint8_t* functionInput = &data[6];
1233 uint16_t objectInstance = ((data[3] & 0xff) << 4) | ((data[4] & 0xf0) >> 4);
1234 uint16_t propertyId = ((data[4] & 0x0f) << 8) | (data[5] & 0xff);
1235 uint8_t descriptionType = (data[6] & 0xf0) >> 4;
1236 uint16_t propertyIndex = ((data[7] & 0x0f) << 8) | (data[8] & 0xff);
1244 (data[4] & 0x80) > 0, data[4] & 0x3f,
getWord(data + 5) & 0xfff, data[7]);
1261 print(
"MemoryRouterWrite: ");
1270 println(
"Received OpenRoutingTable APDU, doing nothing");
1289 uint8_t number = data[1];
1290 uint32_t memoryAddress = ((data[2] & 0xff) << 16) | ((data[3] & 0xff) << 8) | (data[4] & 0xff);
1300 uint8_t number = data[1];
1301 uint32_t memoryAddress = ((data[2] & 0xff) << 16) | ((data[3] & 0xff) << 8) | (data[4] & 0xff);
1311 uint32_t address = ((data[1] & 0xf0) << 12) + (data[2] << 8) + data[3];
1318 uint32_t address = ((data[1] & 0xf0) << 12) + (data[2] << 8) + data[3];
1325 uint32_t address = ((data[1] & 0xf0) << 12) + (data[2] << 8) + data[3];
1357 uint8_t channelNr = data[0] & 0b111111;
1363 print(
"Individual-indication: unhandled APDU-Type: ");
1370 uint8_t* data = apdu.
data();
1372 switch (apdu.
type())
1388 uint16_t startIndex;
1389 popWord(startIndex, data + 3);
1390 startIndex &= 0xfff;
1392 startIndex, status);
1398 uint16_t startIndex;
1399 popWord(startIndex, data + 3);
1400 startIndex &= 0xfff;
1402 startIndex, data + 5, apdu.
length() - 5, status);
1408 uint16_t startIndex;
1409 popWord(startIndex, data + 3);
1410 startIndex &= 0xfff;
1412 startIndex, data + 5, apdu.
length() - 5, status);
1426 (data[4] & 0x80) > 0, data[4] & 0x3f,
getWord(data + 5) & 0xfff, data[7], status);
1459 uint32_t address = ((data[1] & 0xf0) << 12) + (data[2] << 8) + data[3];
1466 uint32_t address = ((data[1] & 0xf0) << 12) + (data[2] << 8) + data[3];
1473 uint32_t address = ((data[1] & 0xf0) << 12) + (data[2] << 8) + data[3];
1474 _bau.
memoryWriteLocalConfirm(ack, priority, hopType, tsap, secCtrl, data[1] & 0xf, address, data + 4, status);
1503 print(
"Individual-confirm: unhandled APDU-Type: ");
1510 if (asap == _connectedTsap)
1518 return (_connectedTsap >= 0);
const uint8_t * popByte(uint8_t &b, const uint8_t *data)
uint8_t * pushInt(uint32_t i, uint8_t *data)
uint8_t * pushByteArray(const uint8_t *src, uint32_t size, uint8_t *data)
uint8_t * pushWord(uint16_t w, uint8_t *data)
uint16_t getWord(const uint8_t *data)
uint8_t * pushByte(uint8_t b, uint8_t *data)
uint16_t crc16Ccitt(uint8_t *input, uint16_t length)
uint32_t getInt(const uint8_t *data)
const uint8_t * popWord(uint16_t &w, const uint8_t *data)
This class represents an Application Protocol Data Unit.
void printPDU()
Print the contents of the APDU to console.
ApduType type()
Get the type of the APDU.
uint8_t * data()
Get a pointer to the data.
uint8_t length() const
Get the length of the APDU.
CemiFrame & frame()
Get the CemiFrame this APDU is part of.
void propertyDescriptionReadResponse(AckType ack, Priority priority, HopCountType hopType, uint16_t asap, const SecurityControl &secCtrl, uint8_t objectIndex, uint8_t propertyId, uint8_t propertyIndex, bool writeEnable, uint8_t type, uint16_t maxNumberOfElements, uint8_t access)
void individualAddressReadResponse(AckType ack, HopCountType hopType, const SecurityControl &secCtrl)
void functionPropertyStateResponse(AckType ack, Priority priority, HopCountType hopType, uint16_t asap, const SecurityControl &secCtrl, uint8_t objectIndex, uint8_t propertyId, uint8_t *resultData, uint8_t resultLength)
void authorizeRequest(AckType ack, Priority priority, HopCountType hopType, uint16_t asap, const SecurityControl &secCtrl, uint32_t key)
void propertyValueExtReadResponse(AckType ack, Priority priority, HopCountType hopType, uint16_t asap, const SecurityControl &secCtrl, uint16_t objectType, uint8_t objectInstance, uint8_t propertyId, uint8_t numberOfElements, uint16_t startIndex, uint8_t *data, uint8_t length)
void disconnectConfirm(Priority priority, uint16_t tsap, bool status)
void memoryExtReadResponse(AckType ack, Priority priority, HopCountType hopType, uint16_t asap, const SecurityControl &secCtrl, ReturnCodes code, uint8_t number, uint32_t memoryAddress, uint8_t *data)
void propertyExtDescriptionReadResponse(AckType ack, Priority priority, HopCountType hopType, uint16_t asap, const SecurityControl &secCtrl, uint16_t objectType, uint16_t objectInstance, uint16_t propertyId, uint16_t propertyIndex, uint8_t descriptionType, bool writeEnable, uint8_t type, uint16_t maxNumberOfElements, uint8_t access)
void individualAddressSerialNumberWriteRequest(AckType ack, HopCountType hopType, const SecurityControl &secCtrl, uint8_t *serialNumber, uint16_t newaddress)
void individualAddressSerialNumberReadRequest(AckType ack, HopCountType hopType, const SecurityControl &secCtrl, uint8_t *serialNumber)
void memoryExtWriteResponse(AckType ack, Priority priority, HopCountType hopType, uint16_t asap, const SecurityControl &secCtrl, ReturnCodes code, uint8_t number, uint32_t memoryAddress, uint8_t *memoryData)
void keyWriteRequest(AckType ack, Priority priority, HopCountType hopType, uint16_t asap, const SecurityControl &secCtrl, uint8_t level, uint32_t key)
void deviceDescriptorReadResponse(AckType ack, Priority priority, HopCountType hopType, uint16_t asap, const SecurityControl &secCtrl, uint8_t descriptorType, uint8_t *deviceDescriptor)
virtual void dataSystemBroadcastIndication(HopCountType hopType, Priority priority, uint16_t source, APDU &apdu)
void memoryWriteRequest(AckType ack, Priority priority, HopCountType hopType, uint16_t asap, const SecurityControl &secCtrl, uint8_t number, uint16_t memoryAddress, uint8_t *data)
void associationTableObject(AssociationTableObject &assocTable)
void memoryReadResponse(AckType ack, Priority priority, HopCountType hopType, uint16_t asap, const SecurityControl &secCtrl, uint8_t number, uint16_t memoryAddress, uint8_t *data)
virtual void dataConnectedRequest(uint16_t tsap, Priority priority, APDU &apdu, const SecurityControl &secCtrl)
void authorizeResponse(AckType ack, Priority priority, HopCountType hopType, uint16_t asap, const SecurityControl &secCtrl, uint8_t level)
virtual void dataIndividualRequest(AckType ack, HopCountType hopType, Priority priority, uint16_t destination, APDU &apdu, const SecurityControl &secCtrl)
virtual void dataBroadcastIndication(HopCountType hopType, Priority priority, uint16_t source, APDU &apdu)
void functionPropertyExtStateResponse(AckType ack, Priority priority, HopCountType hopType, uint16_t asap, const SecurityControl &secCtrl, uint16_t objectType, uint8_t objectInstance, uint16_t propertyId, uint8_t *resultData, uint8_t resultLength)
void deviceDescriptorReadRequest(AckType ack, Priority priority, HopCountType hopType, uint16_t asap, const SecurityControl &secCtrl, uint8_t descriptorType)
TransportLayer * _transportLayer
void disconnectIndication(uint16_t tsap)
virtual void dataGroupRequest(AckType ack, HopCountType hopType, Priority priority, uint16_t tsap, APDU &apdu, const SecurityControl &secCtrl)
void keyWriteResponse(AckType ack, Priority priority, HopCountType hopType, uint16_t asap, const SecurityControl &secCtrl, uint8_t level)
void connectConfirm(uint16_t destination, uint16_t tsap, bool status)
void groupValueReadResponse(AckType ack, uint16_t asap, Priority priority, HopCountType hopType, const SecurityControl &secCtrl, uint8_t *data, uint8_t dataLength)
void userMemoryWriteRequest(AckType ack, Priority priority, HopCountType hopType, uint16_t asap, const SecurityControl &secCtrl, uint8_t number, uint32_t memoryAddress, uint8_t *memoryData)
void connectIndication(uint16_t tsap)
virtual void dataConnectedIndication(Priority priority, uint16_t tsap, APDU &apdu)
void propertyValueReadResponse(AckType ack, Priority priority, HopCountType hopType, uint16_t asap, const SecurityControl &secCtrl, uint8_t objectIndex, uint8_t propertyId, uint8_t numberOfElements, uint16_t startIndex, uint8_t *data, uint8_t length)
void systemNetworkParameterReadResponse(Priority priority, HopCountType hopType, const SecurityControl &secCtrl, uint16_t objectType, uint16_t propertyId, uint8_t *testInfo, uint16_t testInfoLength, uint8_t *testResult, uint16_t testResultLength)
virtual void dataGroupConfirm(AckType ack, HopCountType hopType, Priority priority, uint16_t tsap, APDU &apdu, bool status)
Report the status of an APDU that we sent via multicast communication back to us.
void groupValueReadRequest(AckType ack, uint16_t asap, Priority priority, HopCountType hopType, const SecurityControl &secCtrl)
virtual void dataSystemBroadcastRequest(AckType ack, HopCountType hopType, Priority priority, APDU &apdu, const SecurityControl &secCtrl)
void memoryRouterReadResponse(AckType ack, Priority priority, HopCountType hopType, uint16_t asap, const SecurityControl &secCtrl, uint8_t number, uint16_t memoryAddress, uint8_t *data)
void IndividualAddressSerialNumberReadResponse(Priority priority, HopCountType hopType, const SecurityControl &secCtrl, const uint8_t *domainAddress, const uint8_t *knxSerialNumber)
virtual void dataSystemBroadcastConfirm(HopCountType hopType, Priority priority, APDU &apdu, bool status)
void userMemoryReadRequest(AckType ack, Priority priority, HopCountType hopType, uint16_t asap, const SecurityControl &secCtrl, uint8_t number, uint32_t memoryAddress)
void propertyValueWriteRequest(AckType ack, Priority priority, HopCountType hopType, uint16_t asap, const SecurityControl &secCtrl, uint8_t objectIndex, uint8_t propertyId, uint8_t numberOfElements, uint16_t startIndex, uint8_t *data, uint8_t length)
void individualAddressReadRequest(AckType ack, HopCountType hopType, const SecurityControl &secCtrl)
void propertyValueReadRequest(AckType ack, Priority priority, HopCountType hopType, uint16_t asap, const SecurityControl &secCtrl, uint8_t objectIndex, uint8_t propertyId, uint8_t numberOfElements, uint16_t startIndex)
void userManufacturerInfoReadResponse(AckType ack, Priority priority, HopCountType hopType, uint16_t asap, const SecurityControl &secCtrl, uint8_t *info)
void restartRequest(AckType ack, Priority priority, HopCountType hopType, const SecurityControl &secCtrl)
void connectRequest(uint16_t destination, Priority priority)
virtual void dataIndividualConfirm(AckType ack, HopCountType hopType, Priority priority, uint16_t tsap, APDU &apdu, bool status)
virtual void dataBroadcastConfirm(AckType ack, HopCountType hopType, Priority priority, APDU &apdu, bool status)
void disconnectRequest(Priority priority)
void memoryRoutingTableReadResponse(AckType ack, Priority priority, HopCountType hopType, uint16_t asap, const SecurityControl &secCtrl, uint8_t number, uint16_t memoryAddress, uint8_t *data)
void adcReadResponse(AckType ack, Priority priority, HopCountType hopType, uint16_t asap, const SecurityControl &secCtrl, uint8_t channelNr, uint8_t readCount, int16_t value)
void userManufacturerInfoReadRequest(AckType ack, Priority priority, HopCountType hopType, uint16_t asap, const SecurityControl &secCtrl)
ApplicationLayer(BusAccessUnit &bau)
The constructor.
void domainAddressSerialNumberReadResponse(Priority priority, HopCountType hopType, const SecurityControl &secCtrl, const uint8_t *rfDoA, const uint8_t *knxSerialNumber)
virtual void dataGroupIndication(HopCountType hopType, Priority priority, uint16_t tsap, APDU &apdu)
Somebody send us an APDU via multicast communication.
void userMemoryReadResponse(AckType ack, Priority priority, HopCountType hopType, uint16_t asap, const SecurityControl &secCtrl, uint8_t number, uint32_t memoryAddress, uint8_t *memoryData)
void groupValueWriteRequest(AckType ack, uint16_t asap, Priority priority, HopCountType hopType, const SecurityControl &secCtrl, uint8_t *data, uint8_t dataLength)
void propertyValueExtWriteConResponse(AckType ack, Priority priority, HopCountType hopType, uint16_t asap, const SecurityControl &secCtrl, uint16_t objectType, uint8_t objectInstance, uint8_t propertyId, uint8_t numberOfElements, uint16_t startIndex, uint8_t returnCode)
void individualAddressWriteRequest(AckType ack, HopCountType hopType, const SecurityControl &secCtrl, uint16_t newaddress)
void propertyDescriptionReadRequest(AckType ack, Priority priority, HopCountType hopType, uint16_t asap, const SecurityControl &secCtrl, uint8_t objectIndex, uint8_t propertyId, uint8_t propertyIndex)
void restartResponse(AckType ack, Priority priority, HopCountType hopType, const SecurityControl &secCtrl, uint8_t errorCode, uint16_t processTime)
void memoryReadRequest(AckType ack, Priority priority, HopCountType hopType, uint16_t asap, const SecurityControl &secCtrl, uint8_t number, uint16_t memoryAddress)
static const SecurityControl noSecurity
void transportLayer(TransportLayer &layer)
Assigns the TransportLayer to which encoded APDU are submitted to.
virtual void dataConnectedConfirm(uint16_t tsap)
virtual void dataBroadcastRequest(AckType ack, HopCountType hopType, Priority priority, APDU &apdu, const SecurityControl &secCtrl)
void individualAddressSerialNumberReadResponse(AckType ack, HopCountType hopType, const SecurityControl &secCtrl, uint8_t *serialNumber, uint16_t domainAddress)
virtual void dataIndividualIndication(HopCountType hopType, Priority priority, uint16_t source, APDU &apdu)
int32_t translateAsap(uint16_t asap)
int32_t nextAsap(uint16_t tsap, uint16_t &startIdx)
virtual void deviceDescriptorReadAppLayerConfirm(Priority priority, HopCountType hopType, uint16_t asap, const SecurityControl &secCtrl, uint8_t descriptortype, uint8_t *deviceDescriptor)
virtual void memoryExtWriteLocalConfirm(AckType ack, Priority priority, HopCountType hopType, uint16_t asap, const SecurityControl &secCtrl, uint8_t number, uint32_t memoryAddress, uint8_t *data, bool status)
virtual void memoryRouterReadAppLayerConfirm(Priority priority, HopCountType hopType, uint16_t asap, const SecurityControl &secCtrl, uint8_t number, uint16_t memoryAddress, uint8_t *data)
virtual void propertyDescriptionReadLocalConfirm(AckType ack, Priority priority, HopCountType hopType, uint16_t asap, const SecurityControl &secCtrl, uint8_t objectIndex, uint8_t propertyId, uint8_t propertyIndex, bool status)
virtual void memoryExtWriteIndication(Priority priority, HopCountType hopType, uint16_t asap, const SecurityControl &secCtrl, uint8_t number, uint32_t memoryAddress, uint8_t *data)
virtual void userManufacturerInfoAppLayerConfirm(Priority priority, HopCountType hopType, uint16_t asap, const SecurityControl &secCtrl, uint8_t *info)
virtual void authorizeIndication(Priority priority, HopCountType hopType, uint16_t asap, const SecurityControl &secCtrl, uint32_t key)
virtual void groupValueReadResponseConfirm(AckType ack, uint16_t asap, Priority priority, HopCountType hopTtype, const SecurityControl &secCtrl, uint8_t *data, uint8_t dataLength, bool status)
virtual void memoryReadIndication(Priority priority, HopCountType hopType, uint16_t asap, const SecurityControl &secCtrl, uint8_t number, uint16_t memoryAddress)
virtual void restartRequestLocalConfirm(AckType ack, Priority priority, HopCountType hopType, uint16_t asap, const SecurityControl &secCtrl, bool status)
virtual void propertyDescriptionReadIndication(Priority priority, HopCountType hopType, uint16_t asap, const SecurityControl &secCtrl, uint8_t objectIndex, uint8_t propertyId, uint8_t propertyIndex)
virtual void individualAddressReadLocalConfirm(AckType ack, HopCountType hopType, const SecurityControl &secCtrl, bool status)
virtual void deviceDescriptorReadIndication(Priority priority, HopCountType hopType, uint16_t asap, const SecurityControl &secCtrl, uint8_t descriptorType)
virtual void restartRequestIndication(Priority priority, HopCountType hopType, uint16_t asap, const SecurityControl &secCtrl, RestartType restartType, EraseCode eraseCode, uint8_t channel)
virtual void domainAddressSerialNumberWriteLocalConfirm(Priority priority, HopCountType hopType, const SecurityControl &secCtrl, const uint8_t *rfDoA, const uint8_t *knxSerialNumber, bool status)
virtual void userMemoryReadAppLayerConfirm(Priority priority, HopCountType hopType, uint16_t asap, const SecurityControl &secCtrl, uint8_t number, uint32_t memoryAddress, uint8_t *memoryData)
virtual void systemNetworkParameterReadIndication(Priority priority, HopCountType hopType, const SecurityControl &secCtrl, uint16_t objectType, uint16_t propertyId, uint8_t *testInfo, uint16_t testInfoLength)
virtual void userMemoryReadIndication(Priority priority, HopCountType hopType, uint16_t asap, const SecurityControl &secCtrl, uint8_t number, uint32_t memoryAddress)
virtual void individualAddressSerialNumberReadLocalConfirm(AckType ack, HopCountType hopType, const SecurityControl &secCtrl, uint8_t *serialNumber, bool status)
virtual void systemNetworkParameterReadLocalConfirm(Priority priority, HopCountType hopType, const SecurityControl &secCtrl, uint16_t objectType, uint16_t propertyId, uint8_t *testInfo, uint16_t testInfoLength, bool status)
virtual void memoryRoutingTableReadIndication(Priority priority, HopCountType hopType, uint16_t asap, const SecurityControl &secCtrl, uint8_t number, uint16_t memoryAddress)
virtual void individualAddressReadResponseConfirm(AckType ack, HopCountType hopType, const SecurityControl &secCtrl, bool status)
virtual void propertyValueReadIndication(Priority priority, HopCountType hopType, uint16_t asap, const SecurityControl &secCtrl, uint8_t objectIndex, uint8_t propertyId, uint8_t numberOfElements, uint16_t startIndex)
virtual void individualAddressWriteLocalConfirm(AckType ack, HopCountType hopType, const SecurityControl &secCtrl, uint16_t newaddress, bool status)
virtual void userManufacturerInfoIndication(Priority priority, HopCountType hopType, uint16_t asap, const SecurityControl &secCtrl)
virtual void memoryExtReadIndication(Priority priority, HopCountType hopType, uint16_t asap, const SecurityControl &secCtrl, uint8_t number, uint32_t memoryAddress)
virtual void memoryRoutingTableWriteIndication(Priority priority, HopCountType hopType, uint16_t asap, const SecurityControl &secCtrl, uint8_t number, uint16_t memoryAddress, uint8_t *data)
virtual void domainAddressSerialNumberReadLocalConfirm(Priority priority, HopCountType hopType, const SecurityControl &secCtrl, const uint8_t *knxSerialNumber, bool status)
virtual void propertyValueReadResponseConfirm(AckType ack, Priority priority, HopCountType hopType, uint16_t asap, const SecurityControl &secCtrl, uint8_t objectIndex, uint8_t propertyId, uint8_t numberOfElements, uint16_t startIndex, uint8_t *data, uint8_t length, bool status)
virtual void keyWriteIndication(Priority priority, HopCountType hopType, uint16_t asap, const SecurityControl &secCtrl, uint8_t level, uint32_t key)
virtual void userManufacturerInfoLocalConfirm(AckType ack, Priority priority, HopCountType hopType, uint16_t asap, const SecurityControl &secCtrl, bool status)
virtual void memoryWriteIndication(Priority priority, HopCountType hopType, uint16_t asap, const SecurityControl &secCtrl, uint8_t number, uint16_t memoryAddress, uint8_t *data)
virtual void userManufacturerInfoResponseConfirm(AckType ack, Priority priority, HopCountType hopType, uint16_t asap, const SecurityControl &secCtrl, uint8_t *info, bool status)
virtual void domainAddressSerialNumberReadIndication(Priority priority, HopCountType hopType, const SecurityControl &secCtrl, const uint8_t *knxSerialNumber)
virtual void keyWriteLocalConfirm(AckType ack, Priority priority, HopCountType hopType, uint16_t asap, const SecurityControl &secCtrl, uint8_t level, uint32_t key, bool status)
virtual void authorizeResponseConfirm(AckType ack, Priority priority, HopCountType hopType, uint16_t asap, const SecurityControl &secCtrl, uint8_t level, bool status)
virtual void groupValueWriteIndication(uint16_t asap, Priority priority, HopCountType hopType, const SecurityControl &secCtrl, uint8_t *data, uint8_t dataLength)
virtual void propertyExtDescriptionReadIndication(Priority priority, HopCountType hopType, uint16_t asap, const SecurityControl &secCtrl, uint16_t objectType, uint16_t objectInstance, uint16_t propertyId, uint8_t descriptionType, uint16_t propertyIndex)
virtual void functionPropertyStateIndication(Priority priority, HopCountType hopType, uint16_t asap, const SecurityControl &secCtrl, uint8_t objectIndex, uint8_t propertyId, uint8_t *data, uint8_t length)
virtual void deviceDescriptorReadResponseConfirm(AckType ack, Priority priority, HopCountType hopType, uint16_t asap, const SecurityControl &secCtrl, uint8_t descriptor_type, uint8_t *device_descriptor, bool status)
virtual void individualAddressReadIndication(HopCountType hopType, const SecurityControl &secCtrl)
virtual void propertyDescriptionReadAppLayerConfirm(Priority priority, HopCountType hopType, uint16_t asap, const SecurityControl &secCtrl, uint8_t objectIndex, uint8_t propertyId, uint8_t propertyIndex, bool writeEnable, uint8_t type, uint16_t maxNumberOfElements, uint8_t access)
virtual void propertyValueExtWriteIndication(Priority priority, HopCountType hopType, uint16_t asap, const SecurityControl &secCtrl, ObjectType objectType, uint8_t objectInstance, uint8_t propertyId, uint8_t numberOfElements, uint16_t startIndex, uint8_t *data, uint8_t length, bool confirmed)
virtual void memoryReadLocalConfirm(AckType ack, Priority priority, HopCountType hopType, uint16_t asap, const SecurityControl &secCtrl, uint8_t number, uint16_t memoryAddress, bool status)
virtual void authorizeAppLayerConfirm(Priority priority, HopCountType hopType, uint16_t asap, const SecurityControl &secCtrl, uint8_t level)
virtual void connectConfirm(uint16_t destination)
virtual void individualAddressReadAppLayerConfirm(HopCountType hopType, const SecurityControl &secCtrl, uint16_t individualAddress)
virtual void propertyValueWriteIndication(Priority priority, HopCountType hopType, uint16_t asap, const SecurityControl &secCtrl, uint8_t objectIndex, uint8_t propertyId, uint8_t numberOfElements, uint16_t startIndex, uint8_t *data, uint8_t length)
virtual void propertyValueReadLocalConfirm(AckType ack, Priority priority, HopCountType hopType, uint16_t asap, const SecurityControl &secCtrl, uint8_t objectIndex, uint8_t propertyId, uint8_t numberOfElements, uint16_t startIndex, bool status)
virtual void groupValueReadLocalConfirm(AckType ack, uint16_t asap, Priority priority, HopCountType hopType, const SecurityControl &secCtrl, bool status)
virtual void keyWriteAppLayerConfirm(Priority priority, HopCountType hopType, uint16_t asap, const SecurityControl &secCtrl, uint8_t level)
virtual void individualAddressSerialNumberReadAppLayerConfirm(HopCountType hopType, const SecurityControl &secCtrl, uint8_t *serialNumber, uint16_t individualAddress, uint16_t domainAddress)
virtual void propertyValueWriteLocalConfirm(AckType ack, Priority priority, HopCountType hopType, uint16_t asap, const SecurityControl &secCtrl, uint8_t objectIndex, uint8_t propertyId, uint8_t numberOfElements, uint16_t startIndex, uint8_t *data, uint8_t length, bool status)
virtual void individualAddressSerialNumberReadIndication(Priority priority, HopCountType hopType, const SecurityControl &secCtrl, uint8_t *knxSerialNumber)
virtual void groupValueReadIndication(uint16_t asap, Priority priority, HopCountType hopType, const SecurityControl &secCtrl)
virtual void memoryReadAppLayerConfirm(Priority priority, HopCountType hopType, uint16_t asap, const SecurityControl &secCtrl, uint8_t number, uint16_t memoryAddress, uint8_t *data)
virtual void individualAddressSerialNumberWriteLocalConfirm(AckType ack, HopCountType hopType, const SecurityControl &secCtrl, uint8_t *serialNumber, uint16_t newaddress, bool status)
virtual void authorizeLocalConfirm(AckType ack, Priority priority, HopCountType hopType, uint16_t asap, const SecurityControl &secCtrl, uint32_t key, bool status)
virtual void individualAddressSerialNumberWriteIndication(Priority priority, HopCountType hopType, const SecurityControl &secCtrl, uint16_t newIndividualAddress, uint8_t *knxSerialNumber)
virtual void individualAddressSerialNumberReadResponseConfirm(AckType ack, HopCountType hopType, const SecurityControl &secCtrl, uint8_t *serialNumber, uint16_t domainAddress, bool status)
virtual void propertyDescriptionReadResponseConfirm(AckType ack, Priority priority, HopCountType hopType, uint16_t asap, const SecurityControl &secCtrl, uint8_t objectIndex, uint8_t propertyId, uint8_t propertyIndex, bool writeEnable, uint8_t type, uint16_t maxNumberOfElements, uint8_t access, bool status)
virtual void groupValueReadAppLayerConfirm(uint16_t asap, Priority priority, HopCountType hopType, const SecurityControl &secCtrl, uint8_t *data, uint8_t dataLength)
virtual void memoryExtReadLocalConfirm(AckType ack, Priority priority, HopCountType hopType, uint16_t asap, const SecurityControl &secCtrl, uint8_t number, uint32_t memoryAddress, bool status)
virtual void functionPropertyExtStateIndication(Priority priority, HopCountType hopType, uint16_t asap, const SecurityControl &secCtrl, ObjectType objectType, uint8_t objectInstance, uint8_t propertyId, uint8_t *data, uint8_t length)
virtual void deviceDescriptorReadLocalConfirm(AckType ack, Priority priority, HopCountType hopType, uint16_t asap, const SecurityControl &secCtrl, uint8_t descriptorType, bool status)
virtual void memoryReadResponseConfirm(AckType ack, Priority priority, HopCountType hopType, uint16_t asap, const SecurityControl &secCtrl, uint8_t number, uint16_t memoryAddress, uint8_t *data, bool status)
virtual void memoryRoutingTableReadAppLayerConfirm(Priority priority, HopCountType hopType, uint16_t asap, const SecurityControl &secCtrl, uint8_t number, uint16_t memoryAddress, uint8_t *data)
virtual void domainAddressSerialNumberWriteIndication(Priority priority, HopCountType hopType, const SecurityControl &secCtrl, const uint8_t *rfDoA, const uint8_t *knxSerialNumber)
virtual void keyWriteResponseConfirm(AckType ack, Priority priority, HopCountType hopType, uint16_t asap, const SecurityControl &secCtrl, uint8_t level, bool status)
virtual void groupValueWriteLocalConfirm(AckType ack, uint16_t asap, Priority priority, HopCountType hopType, const SecurityControl &secCtrl, uint8_t *data, uint8_t dataLength, bool status)
virtual void memoryRouterWriteIndication(Priority priority, HopCountType hopType, uint16_t asap, const SecurityControl &secCtrl, uint8_t number, uint16_t memoryAddress, uint8_t *data)
virtual void propertyExtDescriptionReadLocalConfirm(AckType ack, Priority priority, HopCountType hopType, uint16_t asap, const SecurityControl &secCtrl, uint16_t objectIndex, uint8_t propertyId, uint16_t propertyIndex, bool status)
virtual void memoryExtWriteResponseConfirm(AckType ack, Priority priority, HopCountType hopType, uint16_t asap, const SecurityControl &secCtrl, uint8_t number, uint32_t memoryAddress, uint8_t *data, bool status)
virtual void propertyValueReadAppLayerConfirm(Priority priority, HopCountType hopType, uint16_t asap, const SecurityControl &secCtrl, uint8_t objectIndex, uint8_t propertyId, uint8_t numberOfElements, uint16_t startIndex, uint8_t *data, uint8_t length)
virtual void functionPropertyExtCommandIndication(Priority priority, HopCountType hopType, uint16_t asap, const SecurityControl &secCtrl, ObjectType objectType, uint8_t objectInstance, uint8_t propertyId, uint8_t *data, uint8_t length)
virtual void functionPropertyCommandIndication(Priority priority, HopCountType hopType, uint16_t asap, const SecurityControl &secCtrl, uint8_t objectIndex, uint8_t propertyId, uint8_t *data, uint8_t length)
virtual void memoryExtReadResponseConfirm(AckType ack, Priority priority, HopCountType hopType, uint16_t asap, const SecurityControl &secCtrl, uint8_t number, uint32_t memoryAddress, uint8_t *data, bool status)
virtual void userMemoryWriteIndication(Priority priority, HopCountType hopType, uint16_t asap, const SecurityControl &secCtrl, uint8_t number, uint32_t memoryAddress, uint8_t *memoryData)
virtual void memoryWriteLocalConfirm(AckType ack, Priority priority, HopCountType hopType, uint16_t asap, const SecurityControl &secCtrl, uint8_t number, uint16_t memoryAddress, uint8_t *data, bool status)
virtual void individualAddressWriteIndication(HopCountType hopType, const SecurityControl &secCtrl, uint16_t newaddress)
virtual void propertyValueExtReadIndication(Priority priority, HopCountType hopType, uint16_t asap, const SecurityControl &secCtrl, ObjectType objectType, uint8_t objectInstance, uint8_t propertyId, uint8_t numberOfElements, uint16_t startIndex)
uint16_t sourceAddress() const
void connectRequest(uint16_t destination, Priority priority)
void dataBroadcastRequest(AckType ack, HopCountType hopType, Priority priority, APDU &apdu)
void dataGroupRequest(AckType ack, HopCountType hopType, Priority priority, uint16_t tsap, APDU &apdu)
Request to send an APDU that via multicast.
void dataConnectedRequest(uint16_t tsap, Priority priority, APDU &apdu)
void dataSystemBroadcastRequest(AckType ack, HopCountType hopType, Priority priority, APDU &apdu)
void disconnectRequest(uint16_t tsap, Priority priority)
void dataIndividualRequest(AckType ack, HopCountType hopType, Priority priority, uint16_t destination, APDU &apdu)
ObjectType
Enum for the type of an interface object.
@ NetworkLayerParameter
use NetworkLayer::hopCount as NPDU::hopCount
@ SystemPriority
Mainly used by ETS for device programming.
@ PropertyExtDescriptionRead
@ DomainAddressSerialNumberWrite
@ SystemNetworkParameterRead
@ PropertyValueExtWriteUnCon
@ IndividualAddressSerialNumberRead
@ FunctionPropertyExtStateResponse
@ PropertyExtDescriptionResponse
@ PropertyValueExtResponse
@ FunctionPropertyCommand
@ UserManufacturerInfoResponse
@ DomainAddressSerialNumberRead
@ FunctionPropertyExtCommand
@ FunctionPropertyStateResponse
@ PropertyValueExtWriteConResponse
@ DeviceDescriptorResponse
@ IndividualAddressSerialNumberResponse
@ PropertyDescriptionResponse
@ FunctionPropertyExtState
@ RoutingTableReadResponse
@ DomainAddressSerialNumberResponse
@ PropertyDescriptionRead
@ PropertyValueExtWriteCon
@ IndividualAddressResponse
@ MemoryRouterReadResponse
@ IndividualAddressSerialNumberWrite
@ UserManufacturerInfoRead
@ SystemNetworkParameterResponse
@ AckRequested
We want a DataLinkLayer acknowledgement.
@ AckDontCare
We don't care about DataLinkLayer acknowledgement.