mirror of
https://github.com/openhab/openhab-addons.git
synced 2025-01-26 15:21:41 +01:00
[knx] Code cleanup (#16199)
- Enhance trace logging - Remove unused file - Null annotations Signed-off-by: Holger Friedrich <mail@holger-friedrich.de> Signed-off-by: Ciprian Pascu <contact@ciprianpascu.ro>
This commit is contained in:
parent
7c02d52138
commit
1f90fb9a08
@ -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);
|
|
||||||
}
|
|
@ -503,7 +503,8 @@ public abstract class AbstractKNXClient implements NetworkLinkListener, KNXClien
|
|||||||
}
|
}
|
||||||
GroupAddress groupAddress = commandSpec.getGroupAddress();
|
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());
|
sendToKNX(processCommunicator, groupAddress, commandSpec.getDPT(), commandSpec.getValue());
|
||||||
}
|
}
|
||||||
|
@ -95,9 +95,6 @@ public class KNXnetDiscoveryService extends AbstractDiscoveryService {
|
|||||||
for (Result<SearchResponse> r : responses) {
|
for (Result<SearchResponse> r : responses) {
|
||||||
@Nullable
|
@Nullable
|
||||||
SearchResponse response = r.getResponse();
|
SearchResponse response = r.getResponse();
|
||||||
if (response == null) {
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
Map<ServiceFamily, Integer> services = response.getServiceFamilies().families();
|
Map<ServiceFamily, Integer> services = response.getServiceFamilies().families();
|
||||||
|
|
||||||
if (services.containsKey(ServiceFamiliesDIB.ServiceFamily.Tunneling)
|
if (services.containsKey(ServiceFamiliesDIB.ServiceFamily.Tunneling)
|
||||||
|
@ -40,15 +40,15 @@ public class KNXProfileAdvisor implements ProfileAdvisor {
|
|||||||
if (channelTypeUID == null || !channelTypeUID.getBindingId().equals(BINDING_ID)) {
|
if (channelTypeUID == null || !channelTypeUID.getBindingId().equals(BINDING_ID)) {
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
return getSuggestedProfieTypeUID(channelTypeUID);
|
return getSuggestedProfileTypeUID(channelTypeUID);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public @Nullable ProfileTypeUID getSuggestedProfileTypeUID(ChannelType channelType, @Nullable String itemType) {
|
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)) {
|
if (isControl(channelTypeUID)) {
|
||||||
return SystemProfiles.FOLLOW;
|
return SystemProfiles.FOLLOW;
|
||||||
} else {
|
} else {
|
||||||
|
@ -13,9 +13,11 @@
|
|||||||
package org.openhab.binding.knx.internal.client;
|
package org.openhab.binding.knx.internal.client;
|
||||||
|
|
||||||
import java.util.HashSet;
|
import java.util.HashSet;
|
||||||
|
import java.util.Objects;
|
||||||
import java.util.Set;
|
import java.util.Set;
|
||||||
|
|
||||||
import org.eclipse.jdt.annotation.NonNullByDefault;
|
import org.eclipse.jdt.annotation.NonNullByDefault;
|
||||||
|
import org.eclipse.jdt.annotation.Nullable;
|
||||||
import org.openhab.core.util.HexUtils;
|
import org.openhab.core.util.HexUtils;
|
||||||
import org.slf4j.Logger;
|
import org.slf4j.Logger;
|
||||||
import org.slf4j.LoggerFactory;
|
import org.slf4j.LoggerFactory;
|
||||||
@ -42,27 +44,27 @@ import tuwien.auto.calimero.link.medium.KNXMediumSettings;
|
|||||||
*
|
*
|
||||||
* @author Holger Friedrich - Initial contribution
|
* @author Holger Friedrich - Initial contribution
|
||||||
*/
|
*/
|
||||||
@NonNullByDefault({})
|
@NonNullByDefault
|
||||||
public class DummyKNXNetworkLink implements KNXNetworkLink {
|
public class DummyKNXNetworkLink implements KNXNetworkLink {
|
||||||
public static final Logger LOGGER = LoggerFactory.getLogger(DummyKNXNetworkLink.class);
|
public static final Logger LOGGER = LoggerFactory.getLogger(DummyKNXNetworkLink.class);
|
||||||
public static final int GROUP_WRITE = 0x80;
|
public static final int GROUP_WRITE = 0x80;
|
||||||
|
|
||||||
private byte[] lastFrame = new byte[0];
|
private byte[] lastFrame = new byte[0];
|
||||||
private Set<NetworkLinkListener> listeners = new HashSet<>();
|
private Set<@Nullable NetworkLinkListener> listeners = new HashSet<>();
|
||||||
|
|
||||||
public void setKNXMedium(KNXMediumSettings settings) {
|
public void setKNXMedium(@Nullable KNXMediumSettings settings) {
|
||||||
LOGGER.warn(settings.toString());
|
LOGGER.warn(Objects.toString(settings));
|
||||||
}
|
}
|
||||||
|
|
||||||
public KNXMediumSettings getKNXMedium() {
|
public KNXMediumSettings getKNXMedium() {
|
||||||
return KNXMediumSettings.create(KNXMediumSettings.MEDIUM_TP1, new IndividualAddress(1, 2, 3));
|
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);
|
listeners.add(l);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void removeLinkListener(NetworkLinkListener l) {
|
public void removeLinkListener(@Nullable NetworkLinkListener l) {
|
||||||
listeners.remove(l);
|
listeners.remove(l);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -73,13 +75,16 @@ public class DummyKNXNetworkLink implements KNXNetworkLink {
|
|||||||
return 0;
|
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 {
|
throws KNXTimeoutException, KNXLinkClosedException {
|
||||||
sendRequestWait(dst, p, nsdu);
|
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 {
|
throws KNXTimeoutException, KNXLinkClosedException {
|
||||||
|
if (nsdu == null) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
LOGGER.info("sendRequestWait() {} {} {}", dst, p, HexUtils.bytesToHex(nsdu, " "));
|
LOGGER.info("sendRequestWait() {} {} {}", dst, p, HexUtils.bytesToHex(nsdu, " "));
|
||||||
|
|
||||||
lastFrame = nsdu.clone();
|
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));
|
FrameEvent f = new FrameEvent(this, new CEMILData(CEMILData.MC_LDATA_IND, src, dst, nsdu, p, repeat, hopCount));
|
||||||
|
|
||||||
listeners.forEach(listener -> {
|
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");
|
LOGGER.warn("send() not implemented");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user