diff --git a/src/knx/ip_data_link_layer.cpp b/src/knx/ip_data_link_layer.cpp index c7591e51..38f0b2ca 100644 --- a/src/knx/ip_data_link_layer.cpp +++ b/src/knx/ip_data_link_layer.cpp @@ -416,17 +416,23 @@ void IpDataLinkLayer::loopHandleSearchRequestExtended(uint8_t* buffer, uint16_t //defaults: “Device Information DIB”, “Extended Device Information DIB” and “Supported Services DIB”. int dipLength = LEN_DEVICE_INFORMATION_DIB + LEN_SERVICE_DIB + LEN_EXTENDED_DEVICE_INFORMATION_DIB; + if(searchRequest.srpByProgMode) + println("srpByProgMode"); + + if(searchRequest.srpByMacAddr) + println("srpByMacAddr"); + if(searchRequest.srpByService) { //FIXME not implemented - return; + println("srpByService"); } if(searchRequest.srpRequestDIBs) { //FIXME not implemented //dipLength += XX - return; + println("srpRequestDIBs"); } KnxIpSearchResponseExtended searchResponse(_ipParameters, _deviceObject, dipLength); @@ -439,7 +445,6 @@ void IpDataLinkLayer::loopHandleSearchRequestExtended(uint8_t* buffer, uint16_t { //FIXME not implemented //searchResponse.setXXXX - return; } _platform.sendBytesUniCast(searchRequest.hpai().ipAddress(), searchRequest.hpai().ipPortNumber(), searchResponse.data(), searchResponse.totalLength()); diff --git a/src/knx/knx_ip_search_response.cpp b/src/knx/knx_ip_search_response.cpp index d5c5bd0d..31761042 100644 --- a/src/knx/knx_ip_search_response.cpp +++ b/src/knx/knx_ip_search_response.cpp @@ -54,7 +54,7 @@ KnxIpSearchResponse::KnxIpSearchResponse(IpParameterObject& parameters, DeviceOb _supportedServices.length(LEN_SERVICE_DIB); _supportedServices.code(SUPP_SVC_FAMILIES); - _supportedServices.serviceVersion(Core, 1); + _supportedServices.serviceVersion(Core, 2); _supportedServices.serviceVersion(DeviceManagement, 1); #ifdef KNX_TUNNELING _supportedServices.serviceVersion(Tunnelling, 1); diff --git a/src/knx/knx_ip_search_response_extended.cpp b/src/knx/knx_ip_search_response_extended.cpp index f07410b2..83bee7ba 100644 --- a/src/knx/knx_ip_search_response_extended.cpp +++ b/src/knx/knx_ip_search_response_extended.cpp @@ -20,7 +20,7 @@ KnxIpSearchResponseExtended::KnxIpSearchResponseExtended(IpParameterObject& para : KnxIpFrame(LEN_KNXIP_HEADER + LEN_IPHPAI + dibLength), _controlEndpoint(_data + LEN_KNXIP_HEADER) { - serviceTypeIdentifier(SearchResponse); + serviceTypeIdentifier(SearchResponseExt); _controlEndpoint.length(LEN_IPHPAI); _controlEndpoint.code(IPV4_UDP); @@ -65,7 +65,7 @@ void KnxIpSearchResponseExtended::setSupportedServices() KnxIpSupportedServiceDIB _supportedServices(_data + currentPos); _supportedServices.length(LEN_SERVICE_DIB); _supportedServices.code(SUPP_SVC_FAMILIES); - _supportedServices.serviceVersion(Core, 1); + _supportedServices.serviceVersion(Core, 2); _supportedServices.serviceVersion(DeviceManagement, 1); #ifdef KNX_TUNNELING _supportedServices.serviceVersion(Tunnelling, 1);