Initial Contribution
Signed-off-by: Karel Goderis <karel.goderis@me.com>pull/3632/head
parent
a12d64d4a3
commit
14b89c2762
|
@ -262,6 +262,12 @@
|
|||
<version>${project.version}</version>
|
||||
<scope>compile</scope>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.openhab.core.bundles</groupId>
|
||||
<artifactId>org.openhab.core.io.transport.serial.purejavacomm</artifactId>
|
||||
<version>${project.version}</version>
|
||||
<scope>compile</scope>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.openhab.core.bundles</groupId>
|
||||
<artifactId>org.openhab.core.io.transport.serial.rxtx</artifactId>
|
||||
|
|
|
@ -0,0 +1,51 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<classpath>
|
||||
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-17">
|
||||
<attributes>
|
||||
<attribute name="maven.pomderived" value="true"/>
|
||||
</attributes>
|
||||
</classpathentry>
|
||||
<classpathentry kind="con" path="org.eclipse.m2e.MAVEN2_CLASSPATH_CONTAINER">
|
||||
<attributes>
|
||||
<attribute name="maven.pomderived" value="true"/>
|
||||
</attributes>
|
||||
</classpathentry>
|
||||
<classpathentry excluding="**" kind="src" output="target/classes" path="src/main/resources">
|
||||
<attributes>
|
||||
<attribute name="maven.pomderived" value="true"/>
|
||||
<attribute name="optional" value="true"/>
|
||||
</attributes>
|
||||
</classpathentry>
|
||||
<classpathentry excluding="**" kind="src" output="target/test-classes" path="src/test/resources">
|
||||
<attributes>
|
||||
<attribute name="maven.pomderived" value="true"/>
|
||||
<attribute name="test" value="true"/>
|
||||
<attribute name="optional" value="true"/>
|
||||
</attributes>
|
||||
</classpathentry>
|
||||
<classpathentry kind="src" output="target/classes" path="src/main/java">
|
||||
<attributes>
|
||||
<attribute name="optional" value="true"/>
|
||||
<attribute name="maven.pomderived" value="true"/>
|
||||
</attributes>
|
||||
</classpathentry>
|
||||
<classpathentry kind="src" output="target/test-classes" path="src/test/java">
|
||||
<attributes>
|
||||
<attribute name="optional" value="true"/>
|
||||
<attribute name="maven.pomderived" value="true"/>
|
||||
<attribute name="test" value="true"/>
|
||||
</attributes>
|
||||
</classpathentry>
|
||||
<classpathentry kind="src" path="target/generated-sources/annotations">
|
||||
<attributes>
|
||||
<attribute name="optional" value="true"/>
|
||||
</attributes>
|
||||
</classpathentry>
|
||||
<classpathentry kind="src" output="target/test-classes" path="target/generated-test-sources/test-annotations">
|
||||
<attributes>
|
||||
<attribute name="optional" value="true"/>
|
||||
<attribute name="test" value="true"/>
|
||||
</attributes>
|
||||
</classpathentry>
|
||||
<classpathentry kind="output" path="target/classes"/>
|
||||
</classpath>
|
|
@ -0,0 +1,34 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<projectDescription>
|
||||
<name>org.openhab.core.io.transport.serial.javacomm</name>
|
||||
<comment></comment>
|
||||
<projects>
|
||||
</projects>
|
||||
<buildSpec>
|
||||
<buildCommand>
|
||||
<name>org.eclipse.jdt.core.javabuilder</name>
|
||||
<arguments>
|
||||
</arguments>
|
||||
</buildCommand>
|
||||
<buildCommand>
|
||||
<name>org.eclipse.m2e.core.maven2Builder</name>
|
||||
<arguments>
|
||||
</arguments>
|
||||
</buildCommand>
|
||||
</buildSpec>
|
||||
<natures>
|
||||
<nature>org.eclipse.jdt.core.javanature</nature>
|
||||
<nature>org.eclipse.m2e.core.maven2Nature</nature>
|
||||
</natures>
|
||||
<filteredResources>
|
||||
<filter>
|
||||
<id>1684860371393</id>
|
||||
<name></name>
|
||||
<type>30</type>
|
||||
<matcher>
|
||||
<id>org.eclipse.core.resources.regexFilterMatcher</id>
|
||||
<arguments>node_modules|\.git|__CREATED_BY_JAVA_LANGUAGE_SERVER__</arguments>
|
||||
</matcher>
|
||||
</filter>
|
||||
</filteredResources>
|
||||
</projectDescription>
|
|
@ -0,0 +1,14 @@
|
|||
This content is produced and maintained by the openHAB project.
|
||||
|
||||
* Project home: https://www.openhab.org
|
||||
|
||||
== Declared Project Licenses
|
||||
|
||||
This program and the accompanying materials are made available under the terms
|
||||
of the Eclipse Public License 2.0 which is available at
|
||||
https://www.eclipse.org/legal/epl-2.0/.
|
||||
|
||||
== Source Code
|
||||
|
||||
https://github.com/openhab/openhab-core
|
||||
|
|
@ -0,0 +1,28 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
|
||||
<parent>
|
||||
<groupId>org.openhab.core.bundles</groupId>
|
||||
<artifactId>org.openhab.core.reactor.bundles</artifactId>
|
||||
<version>4.0.0-SNAPSHOT</version>
|
||||
</parent>
|
||||
|
||||
<artifactId>org.openhab.core.io.transport.serial.purejavacomm</artifactId>
|
||||
|
||||
<name>openHAB Core :: Bundles :: Serial Transport for Pure Java Communications API</name>
|
||||
|
||||
<dependencies>
|
||||
<dependency>
|
||||
<groupId>org.openhab.core.bundles</groupId>
|
||||
<artifactId>org.openhab.core.io.transport.serial</artifactId>
|
||||
<version>${project.version}</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.opensmarthouse</groupId>
|
||||
<artifactId>purejavacomm</artifactId>
|
||||
<version>1.0.5</version>
|
||||
</dependency>
|
||||
</dependencies>
|
||||
</project>
|
|
@ -0,0 +1,99 @@
|
|||
/**
|
||||
* Copyright (c) 2010-2023 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.core.io.transport.serial.internal;
|
||||
|
||||
import java.net.URI;
|
||||
import java.util.Enumeration;
|
||||
import java.util.Spliterator;
|
||||
import java.util.Spliterators;
|
||||
import java.util.function.Consumer;
|
||||
import java.util.stream.Stream;
|
||||
import java.util.stream.StreamSupport;
|
||||
|
||||
import org.eclipse.jdt.annotation.NonNullByDefault;
|
||||
import org.eclipse.jdt.annotation.Nullable;
|
||||
import org.openhab.core.io.transport.serial.ProtocolType;
|
||||
import org.openhab.core.io.transport.serial.ProtocolType.PathType;
|
||||
import org.openhab.core.io.transport.serial.SerialPortIdentifier;
|
||||
import org.openhab.core.io.transport.serial.SerialPortProvider;
|
||||
import org.osgi.service.component.annotations.Component;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
|
||||
import purejavacomm.CommPortIdentifier;
|
||||
import purejavacomm.NoSuchPortException;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author Łukasz Dywicki - Initial contribution
|
||||
* @author Karel Goderis - added further methods
|
||||
*/
|
||||
@NonNullByDefault
|
||||
@Component(service = SerialPortProvider.class)
|
||||
public class PureJavaCommPortProvider implements SerialPortProvider {
|
||||
|
||||
private final Logger logger = LoggerFactory.getLogger(PureJavaCommPortProvider.class);
|
||||
|
||||
@Override
|
||||
public @Nullable SerialPortIdentifier getPortIdentifier(URI port) {
|
||||
CommPortIdentifier ident = null;
|
||||
try {
|
||||
ident = CommPortIdentifier.getPortIdentifier(port.getPath());
|
||||
} catch (NoSuchPortException e) {
|
||||
logger.debug("No SerialPortIdentifier found for: {}", port.getPath());
|
||||
return null;
|
||||
}
|
||||
return new SerialPortIdentifierImpl(ident);
|
||||
}
|
||||
|
||||
@Override
|
||||
public Stream<ProtocolType> getAcceptedProtocols() {
|
||||
return Stream.of(new ProtocolType(PathType.LOCAL, "purejavacomm"));
|
||||
}
|
||||
|
||||
@Override
|
||||
public Stream<SerialPortIdentifier> getSerialPortIdentifiers() {
|
||||
@SuppressWarnings("unchecked")
|
||||
final Enumeration<CommPortIdentifier> ids = CommPortIdentifier.getPortIdentifiers();
|
||||
return StreamSupport.stream(new SplitIteratorForEnumeration<>(ids), false)
|
||||
.filter(id -> id.getPortType() == CommPortIdentifier.PORT_SERIAL)
|
||||
.map(sid -> new SerialPortIdentifierImpl(sid));
|
||||
}
|
||||
|
||||
private static class SplitIteratorForEnumeration<T> extends Spliterators.AbstractSpliterator<T> {
|
||||
private final Enumeration<T> e;
|
||||
|
||||
public SplitIteratorForEnumeration(final Enumeration<T> e) {
|
||||
super(Long.MAX_VALUE, Spliterator.ORDERED);
|
||||
this.e = e;
|
||||
}
|
||||
|
||||
@Override
|
||||
@NonNullByDefault({})
|
||||
public boolean tryAdvance(Consumer<? super T> action) {
|
||||
if (e.hasMoreElements()) {
|
||||
action.accept(e.nextElement());
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
@NonNullByDefault({})
|
||||
public void forEachRemaining(Consumer<? super T> action) {
|
||||
while (e.hasMoreElements()) {
|
||||
action.accept(e.nextElement());
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,47 @@
|
|||
/**
|
||||
* Copyright (c) 2010-2023 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.core.io.transport.serial.internal;
|
||||
|
||||
import org.eclipse.jdt.annotation.NonNullByDefault;
|
||||
import org.openhab.core.io.transport.serial.SerialPortEvent;
|
||||
|
||||
/**
|
||||
* Specific serial port event implementation.
|
||||
*
|
||||
* @author Łukasz Dywicki - Initial contribution
|
||||
* @author Karel Goderis - added further methods
|
||||
*/
|
||||
@NonNullByDefault
|
||||
public class SerialPortEventImpl implements SerialPortEvent {
|
||||
|
||||
private final purejavacomm.SerialPortEvent event;
|
||||
|
||||
/**
|
||||
* Constructor.
|
||||
*
|
||||
* @param event the underlying event implementation
|
||||
*/
|
||||
public SerialPortEventImpl(final purejavacomm.SerialPortEvent event) {
|
||||
this.event = event;
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getEventType() {
|
||||
return event.getEventType();
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean getNewValue() {
|
||||
return event.getNewValue();
|
||||
}
|
||||
}
|
|
@ -0,0 +1,77 @@
|
|||
/**
|
||||
* Copyright (c) 2010-2023 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.core.io.transport.serial.internal;
|
||||
|
||||
import org.eclipse.jdt.annotation.NonNullByDefault;
|
||||
import org.eclipse.jdt.annotation.Nullable;
|
||||
import org.openhab.core.io.transport.serial.PortInUseException;
|
||||
import org.openhab.core.io.transport.serial.SerialPort;
|
||||
import org.openhab.core.io.transport.serial.SerialPortIdentifier;
|
||||
|
||||
import purejavacomm.CommPortIdentifier;
|
||||
|
||||
/**
|
||||
* Specific serial port identifier implementation.
|
||||
*
|
||||
* @author Łukasz Dywicki - Initial contribution
|
||||
* @author Karel Goderis - added further methods
|
||||
*/
|
||||
@NonNullByDefault
|
||||
public class SerialPortIdentifierImpl implements SerialPortIdentifier {
|
||||
|
||||
final CommPortIdentifier id;
|
||||
|
||||
/**
|
||||
* Constructor.
|
||||
*
|
||||
* @param id the underlying comm port identifier implementation
|
||||
*/
|
||||
public SerialPortIdentifierImpl(final CommPortIdentifier id) {
|
||||
this.id = id;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getName() {
|
||||
final String name = id.getName();
|
||||
return name != null ? name : "";
|
||||
}
|
||||
|
||||
@Override
|
||||
public SerialPort open(String owner, int timeout) throws PortInUseException {
|
||||
|
||||
try {
|
||||
return new SerialPortImpl((purejavacomm.SerialPort) id.open(owner, timeout));
|
||||
} catch (purejavacomm.PortInUseException e) {
|
||||
String message = e.getMessage();
|
||||
if (message != null) {
|
||||
throw new PortInUseException(message, e);
|
||||
} else {
|
||||
throw new PortInUseException(e);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isCurrentlyOwned() {
|
||||
return id.isCurrentlyOwned();
|
||||
}
|
||||
|
||||
@Override
|
||||
public @Nullable String getCurrentOwner() {
|
||||
return id.getCurrentOwner();
|
||||
}
|
||||
|
||||
public String toString() {
|
||||
return getName() + " (pure java comm)";
|
||||
}
|
||||
}
|
|
@ -0,0 +1,260 @@
|
|||
/**
|
||||
* Copyright (c) 2010-2023 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.core.io.transport.serial.internal;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.io.InputStream;
|
||||
import java.io.OutputStream;
|
||||
import java.util.TooManyListenersException;
|
||||
|
||||
import org.eclipse.jdt.annotation.NonNullByDefault;
|
||||
import org.eclipse.jdt.annotation.Nullable;
|
||||
import org.openhab.core.io.transport.serial.SerialPort;
|
||||
import org.openhab.core.io.transport.serial.SerialPortEventListener;
|
||||
import org.openhab.core.io.transport.serial.UnsupportedCommOperationException;
|
||||
|
||||
import purejavacomm.SerialPortEvent;
|
||||
|
||||
/**
|
||||
* Specific serial port implementation.
|
||||
*
|
||||
* @author Łukasz Dywicki - Initial contribution
|
||||
* @author Karel Goderis - added further methods
|
||||
*/
|
||||
@NonNullByDefault
|
||||
public class SerialPortImpl implements SerialPort {
|
||||
|
||||
private final purejavacomm.SerialPort sp;
|
||||
|
||||
/**
|
||||
* Constructor.
|
||||
*
|
||||
* @param sp the underlying serial port implementation
|
||||
*/
|
||||
public SerialPortImpl(final purejavacomm.SerialPort sp) {
|
||||
this.sp = sp;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void close() {
|
||||
sp.close();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setSerialPortParams(int baudrate, int dataBits, int stopBits, int parity)
|
||||
throws UnsupportedCommOperationException {
|
||||
try {
|
||||
sp.setSerialPortParams(baudrate, dataBits, stopBits, parity);
|
||||
} catch (purejavacomm.UnsupportedCommOperationException ex) {
|
||||
throw new UnsupportedCommOperationException(ex);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public @Nullable InputStream getInputStream() throws IOException {
|
||||
return sp.getInputStream();
|
||||
}
|
||||
|
||||
@Override
|
||||
public @Nullable OutputStream getOutputStream() throws IOException {
|
||||
return sp.getOutputStream();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void addEventListener(SerialPortEventListener listener) throws TooManyListenersException {
|
||||
sp.addEventListener(new purejavacomm.SerialPortEventListener() {
|
||||
@Override
|
||||
public void serialEvent(final @Nullable SerialPortEvent event) {
|
||||
if (event == null) {
|
||||
return;
|
||||
}
|
||||
listener.serialEvent(new org.openhab.core.io.transport.serial.SerialPortEvent() {
|
||||
@Override
|
||||
public int getEventType() {
|
||||
return event.getEventType();
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean getNewValue() {
|
||||
return event.getNewValue();
|
||||
}
|
||||
});
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
@Override
|
||||
public void removeEventListener() {
|
||||
sp.removeEventListener();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void notifyOnDataAvailable(boolean enable) {
|
||||
sp.notifyOnDataAvailable(enable);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void notifyOnBreakInterrupt(boolean enable) {
|
||||
sp.notifyOnBreakInterrupt(enable);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void notifyOnFramingError(boolean enable) {
|
||||
sp.notifyOnFramingError(enable);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void notifyOnOverrunError(boolean enable) {
|
||||
sp.notifyOnOverrunError(enable);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void notifyOnParityError(boolean enable) {
|
||||
sp.notifyOnParityError(enable);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void enableReceiveTimeout(int timeout) throws UnsupportedCommOperationException {
|
||||
if (timeout < 0) {
|
||||
throw new IllegalArgumentException(String.format("timeout must be non negative (is: %d)", timeout));
|
||||
}
|
||||
try {
|
||||
sp.enableReceiveTimeout(timeout);
|
||||
} catch (purejavacomm.UnsupportedCommOperationException ex) {
|
||||
throw new UnsupportedCommOperationException(ex);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void disableReceiveTimeout() {
|
||||
sp.disableReceiveTimeout();
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getName() {
|
||||
return sp.getName();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setFlowControlMode(int flowcontrolRtsctsOut) throws UnsupportedCommOperationException {
|
||||
try {
|
||||
sp.setFlowControlMode(flowcontrolRtsctsOut);
|
||||
} catch (purejavacomm.UnsupportedCommOperationException e) {
|
||||
throw new UnsupportedCommOperationException(e);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void enableReceiveThreshold(int i) throws UnsupportedCommOperationException {
|
||||
try {
|
||||
sp.enableReceiveThreshold(i);
|
||||
} catch (purejavacomm.UnsupportedCommOperationException e) {
|
||||
throw new UnsupportedCommOperationException(e);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getBaudRate() {
|
||||
return sp.getBaudRate();
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getDataBits() {
|
||||
return sp.getDataBits();
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getStopBits() {
|
||||
return sp.getStopBits();
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getParity() {
|
||||
return sp.getParity();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void notifyOnOutputEmpty(boolean enable) {
|
||||
sp.notifyOnOutputEmpty(enable);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void notifyOnCTS(boolean enable) {
|
||||
sp.notifyOnCTS(enable);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void notifyOnDSR(boolean enable) {
|
||||
sp.notifyOnDSR(enable);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void notifyOnRingIndicator(boolean enable) {
|
||||
sp.notifyOnRingIndicator(enable);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void notifyOnCarrierDetect(boolean enable) {
|
||||
sp.notifyOnCarrierDetect(enable);
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getFlowControlMode() {
|
||||
return getFlowControlMode();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setRTS(boolean enable) {
|
||||
sp.setRTS(enable);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isRTS() {
|
||||
return sp.isRTS();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setDTR(boolean state) {
|
||||
sp.setDTR(state);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isDTR() {
|
||||
return sp.isDTR();
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isCTS() {
|
||||
return sp.isCTS();
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isDSR() {
|
||||
return sp.isDSR();
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isCD() {
|
||||
return sp.isCD();
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isRI() {
|
||||
return sp.isRI();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void sendBreak(int duration) {
|
||||
sp.sendBreak(duration);
|
||||
}
|
||||
}
|
|
@ -73,6 +73,7 @@
|
|||
<module>org.openhab.core.io.transport.mqtt</module>
|
||||
<module>org.openhab.core.io.transport.serial</module>
|
||||
<module>org.openhab.core.io.transport.serial.javacomm</module>
|
||||
<module>org.openhab.core.io.transport.serial.purejavacomm</module>
|
||||
<module>org.openhab.core.io.transport.serial.rxtx</module>
|
||||
<module>org.openhab.core.io.transport.serial.rxtx.rfc2217</module>
|
||||
<module>org.openhab.core.io.transport.upnp</module>
|
||||
|
|
|
@ -237,6 +237,19 @@
|
|||
<bundle>mvn:org.openhab.core.bundles/org.openhab.core.io.transport.serial.javacomm/${project.version}</bundle>
|
||||
</feature>
|
||||
|
||||
<conditional>
|
||||
<condition>req:osgi.native;filter:="(&(osgi.native.osname=MacOSX)(osgi.native.processor=AArch64))"</condition>
|
||||
<feature name="openhab-core-io-transport-serial-purejavacomm" version="${project.version}">
|
||||
<feature>openhab-core-base</feature>
|
||||
|
||||
<requirement>openhab.tp;filter:="(&(feature=serial)(impl=purejavacomm))"</requirement>
|
||||
<feature dependency="true">openhab.tp-serial-purejavacomm</feature>
|
||||
|
||||
<bundle>mvn:org.openhab.core.bundles/org.openhab.core.io.transport.serial/${project.version}</bundle>
|
||||
<bundle>mvn:org.openhab.core.bundles/org.openhab.core.io.transport.serial.purejavacomm/${project.version}</bundle>
|
||||
</feature>
|
||||
</conditional>
|
||||
|
||||
<feature name="openhab-core-io-transport-upnp" version="${project.version}">
|
||||
<feature>openhab-core-base</feature>
|
||||
|
||||
|
|
|
@ -232,6 +232,15 @@
|
|||
<bundle>mvn:org.eclipse.kura/org.eclipse.soda.dk.comm.x86_64/1.2.201</bundle>
|
||||
</feature>
|
||||
|
||||
<conditional>
|
||||
<condition>req:osgi.native;filter:="(&(osgi.native.osname=MacOSX)(osgi.native.processor=AArch64))"</condition>
|
||||
<feature name="openhab.tp-serial-purejavacomm" version="${project.version}">
|
||||
<capability>openhab.tp;feature=serial;impl=purejavacomm</capability>
|
||||
<feature dependency="true">openhab.tp-jna</feature>
|
||||
<bundle>mvn:org.opensmarthouse/purejavacomm/1.0.5</bundle>
|
||||
</feature>
|
||||
</conditional>
|
||||
|
||||
<feature name="openhab.tp-serial-rxtx" version="${project.version}">
|
||||
<capability>openhab.tp;feature=serial;impl=rxtx</capability>
|
||||
<bundle>mvn:com.neuronrobotics/nrjavaserial/5.2.1.OH1</bundle>
|
||||
|
|
Loading…
Reference in New Issue