Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[rfxcom] Thread naming #8235

Merged
merged 1 commit into from
Aug 1, 2020
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -242,4 +242,6 @@ public class RFXComBindingConstants {
put(PacketType.WIND, RFXComBindingConstants.THING_TYPE_WIND);
}
});

public static final String THREAD_NAME_PREFIX = "OH-" + BINDING_ID + "-";
Copy link
Member

@Hilbrand Hilbrand Aug 1, 2020

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The binding id is already in in the thing uid. Therefor make it OH-binding- that will make it easier to find all binding specific threads.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ok, I am going to change that.

}
Original file line number Diff line number Diff line change
Expand Up @@ -34,8 +34,14 @@ public class RFXComJD2XXConnector extends RFXComBaseConnector {
private JD2XX serialPort;
private JD2XXOutputStream out;

private final String readerThreadName;
private Thread readerThread;

public RFXComJD2XXConnector(String readerThreadName) {
super();
this.readerThreadName = readerThreadName;
}

@Override
public void connect(RFXComBridgeConfiguration device) throws IOException {
logger.info("Connecting to RFXCOM device '{}' using JD2XX.", device.bridgeId);
Expand All @@ -57,7 +63,7 @@ public void connect(RFXComBridgeConfiguration device) throws IOException {
in.reset();
}

readerThread = new RFXComStreamReader(this);
readerThread = new RFXComStreamReader(this, readerThreadName);
readerThread.start();
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -39,13 +39,15 @@ public class RFXComSerialConnector extends RFXComBaseConnector implements Serial

private OutputStream out;
private SerialPort serialPort;
private SerialPortManager serialPortManager;
private final SerialPortManager serialPortManager;

private final String readerThreadName;
private Thread readerThread;

public RFXComSerialConnector(SerialPortManager serialPortManager) {
public RFXComSerialConnector(SerialPortManager serialPortManager, String readerThreadName) {
super();
this.serialPortManager = serialPortManager;
this.readerThreadName = readerThreadName;
}

@Override
Expand Down Expand Up @@ -81,7 +83,7 @@ public void connect(RFXComBridgeConfiguration device)
} catch (TooManyListenersException e) {
}

readerThread = new RFXComStreamReader(this);
readerThread = new RFXComStreamReader(this, readerThreadName);
readerThread.start();
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -42,7 +42,8 @@ public void uncaughtException(Thread thread, Throwable throwable) {
}
}

public RFXComStreamReader(RFXComBaseConnector connector) {
public RFXComStreamReader(RFXComBaseConnector connector, String threadName) {
super(threadName);
this.connector = connector;
setUncaughtExceptionHandler(new ExceptionHandler());
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -34,8 +34,14 @@ public class RFXComTcpConnector extends RFXComBaseConnector {
private OutputStream out;
private Socket socket;

private final String readerThreadName;
private Thread readerThread;

public RFXComTcpConnector(String readerThreadName) {
super();
this.readerThreadName = readerThreadName;
}

@Override
public void connect(RFXComBridgeConfiguration device) throws IOException {
logger.info("Connecting to RFXCOM at {}:{} over TCP/IP", device.host, device.port);
Expand All @@ -49,7 +55,7 @@ public void connect(RFXComBridgeConfiguration device) throws IOException {
in.reset();
}

readerThread = new RFXComStreamReader(this);
readerThread = new RFXComStreamReader(this, readerThreadName);
readerThread.start();
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -31,6 +31,7 @@
import org.eclipse.smarthome.core.util.HexUtils;
import org.eclipse.smarthome.io.transport.serial.SerialPortManager;
import org.openhab.binding.rfxcom.internal.DeviceMessageListener;
import org.openhab.binding.rfxcom.internal.RFXComBindingConstants;
import org.openhab.binding.rfxcom.internal.config.RFXComBridgeConfiguration;
import org.openhab.binding.rfxcom.internal.connector.RFXComConnectorInterface;
import org.openhab.binding.rfxcom.internal.connector.RFXComEventListener;
Expand Down Expand Up @@ -169,17 +170,18 @@ private synchronized void connect() {
logger.debug("Connecting to RFXCOM transceiver");

try {
String readerThreadName = RFXComBindingConstants.THREAD_NAME_PREFIX + getThing().getUID().getAsString();
if (configuration.serialPort != null) {
if (connector == null) {
connector = new RFXComSerialConnector(serialPortManager);
connector = new RFXComSerialConnector(serialPortManager, readerThreadName);
}
} else if (configuration.bridgeId != null) {
if (connector == null) {
connector = new RFXComJD2XXConnector();
connector = new RFXComJD2XXConnector(readerThreadName);
}
} else if (configuration.host != null) {
if (connector == null) {
connector = new RFXComTcpConnector();
connector = new RFXComTcpConnector(readerThreadName);
}
}

Expand Down