[knx] Code cleanup (#16199)

- Enhance trace logging
- Remove unused file
- Null annotations

Signed-off-by: Holger Friedrich <mail@holger-friedrich.de>
This commit is contained in:
Holger Friedrich 2024-01-03 21:54:21 +01:00 committed by GitHub
parent 18da5075f9
commit ce1f366a39
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
5 changed files with 22 additions and 73 deletions

View File

@ -1,56 +0,0 @@
/**
* Copyright (c) 2010-2024 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
*
* This program and the accompanying materials are made available under the
* terms of the Eclipse Public License 2.0 which is available at
* http://www.eclipse.org/legal/epl-2.0
*
* SPDX-License-Identifier: EPL-2.0
*/
package org.openhab.binding.knx.internal;
import org.eclipse.jdt.annotation.NonNullByDefault;
import org.eclipse.jdt.annotation.Nullable;
import org.openhab.core.types.Type;
import tuwien.auto.calimero.datapoint.Datapoint;
/**
* This interface must be implemented by classes that provide a type mapping
* between openHAB and KNX.
* When a command or status update is sent to an item on the openHAB event bus,
* it must be clear, in which format it must be sent to KNX and vice versa.
*
* @author Kai Kreuzer - Initial contribution
*
*/
@NonNullByDefault
public interface KNXTypeMapper {
/**
* maps an openHAB command/state to a string value which correspond to its datapoint in KNX
*
* @param type a command or state
* @param dpt the corresponding datapoint type
* @return datapoint value as a string
*/
@Nullable
String toDPTValue(Type type, @Nullable String dpt);
/**
* maps a datapoint value to an openHAB command or state
*
* @param datapoint the source datapoint
* @param data the datapoint value as an ASDU byte array (see
* <code>{@link tuwien.auto.calimero.process.ProcessEvent}.getASDU()</code>)
* @return a command or state of openHAB
*/
@Nullable
Type toType(Datapoint datapoint, byte[] data);
@Nullable
Class<? extends Type> toTypeClass(@Nullable String dpt);
}

View File

@ -503,7 +503,8 @@ public abstract class AbstractKNXClient implements NetworkLinkListener, KNXClien
}
GroupAddress groupAddress = commandSpec.getGroupAddress();
logger.trace("writeToKNX groupAddress '{}', commandSpec '{}'", groupAddress, commandSpec);
logger.trace("writeToKNX groupAddress '{}', commandSpec '{}:{} {}'", groupAddress, groupAddress,
commandSpec.getDPT(), commandSpec.getValue());
sendToKNX(processCommunicator, groupAddress, commandSpec.getDPT(), commandSpec.getValue());
}

View File

@ -95,9 +95,6 @@ public class KNXnetDiscoveryService extends AbstractDiscoveryService {
for (Result<SearchResponse> r : responses) {
@Nullable
SearchResponse response = r.getResponse();
if (response == null) {
continue;
}
Map<ServiceFamily, Integer> services = response.getServiceFamilies().families();
if (services.containsKey(ServiceFamiliesDIB.ServiceFamily.Tunneling)

View File

@ -40,15 +40,15 @@ public class KNXProfileAdvisor implements ProfileAdvisor {
if (channelTypeUID == null || !channelTypeUID.getBindingId().equals(BINDING_ID)) {
return null;
}
return getSuggestedProfieTypeUID(channelTypeUID);
return getSuggestedProfileTypeUID(channelTypeUID);
}
@Override
public @Nullable ProfileTypeUID getSuggestedProfileTypeUID(ChannelType channelType, @Nullable String itemType) {
return getSuggestedProfieTypeUID(channelType.getUID());
return getSuggestedProfileTypeUID(channelType.getUID());
}
private ProfileTypeUID getSuggestedProfieTypeUID(ChannelTypeUID channelTypeUID) {
private ProfileTypeUID getSuggestedProfileTypeUID(ChannelTypeUID channelTypeUID) {
if (isControl(channelTypeUID)) {
return SystemProfiles.FOLLOW;
} else {

View File

@ -13,9 +13,11 @@
package org.openhab.binding.knx.internal.client;
import java.util.HashSet;
import java.util.Objects;
import java.util.Set;
import org.eclipse.jdt.annotation.NonNullByDefault;
import org.eclipse.jdt.annotation.Nullable;
import org.openhab.core.util.HexUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@ -42,27 +44,27 @@ import tuwien.auto.calimero.link.medium.KNXMediumSettings;
*
* @author Holger Friedrich - Initial contribution
*/
@NonNullByDefault({})
@NonNullByDefault
public class DummyKNXNetworkLink implements KNXNetworkLink {
public static final Logger LOGGER = LoggerFactory.getLogger(DummyKNXNetworkLink.class);
public static final int GROUP_WRITE = 0x80;
private byte[] lastFrame = new byte[0];
private Set<NetworkLinkListener> listeners = new HashSet<>();
private Set<@Nullable NetworkLinkListener> listeners = new HashSet<>();
public void setKNXMedium(KNXMediumSettings settings) {
LOGGER.warn(settings.toString());
public void setKNXMedium(@Nullable KNXMediumSettings settings) {
LOGGER.warn(Objects.toString(settings));
}
public KNXMediumSettings getKNXMedium() {
return KNXMediumSettings.create(KNXMediumSettings.MEDIUM_TP1, new IndividualAddress(1, 2, 3));
}
public void addLinkListener(NetworkLinkListener l) {
public void addLinkListener(@Nullable NetworkLinkListener l) {
listeners.add(l);
}
public void removeLinkListener(NetworkLinkListener l) {
public void removeLinkListener(@Nullable NetworkLinkListener l) {
listeners.remove(l);
}
@ -73,13 +75,16 @@ public class DummyKNXNetworkLink implements KNXNetworkLink {
return 0;
}
public void sendRequest(KNXAddress dst, Priority p, byte[] nsdu)
public void sendRequest(@Nullable KNXAddress dst, @Nullable Priority p, byte @Nullable [] nsdu)
throws KNXTimeoutException, KNXLinkClosedException {
sendRequestWait(dst, p, nsdu);
}
public void sendRequestWait(KNXAddress dst, Priority p, byte[] nsdu)
public void sendRequestWait(@Nullable KNXAddress dst, @Nullable Priority p, byte @Nullable [] nsdu)
throws KNXTimeoutException, KNXLinkClosedException {
if (nsdu == null) {
return;
}
LOGGER.info("sendRequestWait() {} {} {}", dst, p, HexUtils.bytesToHex(nsdu, " "));
lastFrame = nsdu.clone();
@ -109,11 +114,13 @@ public class DummyKNXNetworkLink implements KNXNetworkLink {
FrameEvent f = new FrameEvent(this, new CEMILData(CEMILData.MC_LDATA_IND, src, dst, nsdu, p, repeat, hopCount));
listeners.forEach(listener -> {
listener.indication(f);
if (listener != null) {
listener.indication(f);
}
});
}
public void send(CEMILData msg, boolean waitForCon) throws KNXTimeoutException, KNXLinkClosedException {
public void send(@Nullable CEMILData msg, boolean waitForCon) throws KNXTimeoutException, KNXLinkClosedException {
LOGGER.warn("send() not implemented");
}