You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@edgent.apache.org by dj...@apache.org on 2016/03/07 19:26:36 UTC
[26/50] incubator-quarks git commit: Add serial connector interface
Add serial connector interface
Project: http://git-wip-us.apache.org/repos/asf/incubator-quarks/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-quarks/commit/fcf5882e
Tree: http://git-wip-us.apache.org/repos/asf/incubator-quarks/tree/fcf5882e
Diff: http://git-wip-us.apache.org/repos/asf/incubator-quarks/diff/fcf5882e
Branch: refs/heads/master
Commit: fcf5882efde0a9acff1221412506d7b70e483d26
Parents: 02470d6
Author: Daniel J. Debrunner <de...@us.ibm.com>
Authored: Fri Feb 26 15:50:33 2016 -0800
Committer: Daniel J. Debrunner <de...@us.ibm.com>
Committed: Sun Mar 6 08:30:32 2016 -0800
----------------------------------------------------------------------
build.xml | 1 +
connectors/.classpath | 10 ++--
connectors/serial/build.xml | 31 +++++++++++++
.../quarks/connectors/serial/SerialDevice.java | 49 ++++++++++++++++++++
.../test/connectors/serial/DummyTest.java | 11 +++++
5 files changed, 98 insertions(+), 4 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-quarks/blob/fcf5882e/build.xml
----------------------------------------------------------------------
diff --git a/build.xml b/build.xml
index 6e8c430..fe29935 100644
--- a/build.xml
+++ b/build.xml
@@ -95,6 +95,7 @@
<ant dir="providers/direct" target="@{target}" useNativeBasedir="true"/>
<ant dir="connectors/common" target="@{target}" useNativeBasedir="true"/>
<ant dir="connectors/iot" target="@{target}" useNativeBasedir="true"/>
+ <ant dir="connectors/serial" target="@{target}" useNativeBasedir="true"/>
<ant dir="connectors/file" target="@{target}" useNativeBasedir="true"/>
<ant dir="connectors/http" target="@{target}" useNativeBasedir="true"/>
<ant dir="connectors/iotf" target="@{target}" useNativeBasedir="true"/>
http://git-wip-us.apache.org/repos/asf/incubator-quarks/blob/fcf5882e/connectors/.classpath
----------------------------------------------------------------------
diff --git a/connectors/.classpath b/connectors/.classpath
index d048bca..a993300 100644
--- a/connectors/.classpath
+++ b/connectors/.classpath
@@ -16,10 +16,16 @@
<classpathentry kind="src" path="kafka/src/test/java"/>
<classpathentry kind="src" path="mqtt/src/main/java"/>
<classpathentry kind="src" path="mqtt/src/test/java"/>
+ <classpathentry kind="src" path="serial/src/main/java"/>
+ <classpathentry kind="src" path="serial/src/test/java"/>
+ <classpathentry kind="src" path="quarks.javax.websocket/src/main/java"/>
+ <classpathentry kind="src" path="javax.websocket-client/src/main/java"/>
+ <classpathentry kind="src" path="javax.websocket-client/src/test/java"/>
<classpathentry kind="src" path="wsclient/src/main/java"/>
<classpathentry kind="src" path="wsclient/src/test/java"/>
<classpathentry kind="src" path="wsclient-javax.websocket/src/main/java"/>
<classpathentry kind="src" path="wsclient-javax.websocket/src/test/java"/>
+ <classpathentry kind="src" path="javax.websocket-client/src/main/resources"/>
<classpathentry kind="lib" path="http/ext/commons-codec-1.10.jar"/>
<classpathentry kind="lib" path="http/ext/commons-logging-1.2.jar"/>
<classpathentry kind="lib" path="http/ext/httpclient-4.3.6.jar"/>
@@ -42,10 +48,6 @@
<classpathentry kind="lib" path="kafka/ext/zookeeper-3.4.6.jar"/>
<classpathentry kind="lib" path="mqtt/ext/org.eclipse.paho.client.mqttv3-1.0.2.jar"/>
<classpathentry kind="lib" path="quarks.javax.websocket/ext/javax.websocket-api-1.0.jar"/>
- <classpathentry kind="src" path="quarks.javax.websocket/src/main/java"/>
- <classpathentry kind="src" path="javax.websocket-client/src/main/java"/>
- <classpathentry kind="src" path="javax.websocket-client/src/test/java"/>
- <classpathentry kind="src" path="javax.websocket-client/src/main/resources"/>
<classpathentry kind="lib" path="javax.websocket-client/ext/javax-websocket-client-impl-9.3.6.v20151106.jar"/>
<classpathentry kind="lib" path="javax.websocket-client/ext/javax.websocket-api-1.0.jar"/>
<classpathentry kind="lib" path="javax.websocket-client/ext/jetty-util-9.3.6.v20151106.jar"/>
http://git-wip-us.apache.org/repos/asf/incubator-quarks/blob/fcf5882e/connectors/serial/build.xml
----------------------------------------------------------------------
diff --git a/connectors/serial/build.xml b/connectors/serial/build.xml
new file mode 100644
index 0000000..395dff7
--- /dev/null
+++ b/connectors/serial/build.xml
@@ -0,0 +1,31 @@
+<project name="quarks.connectors.serial" default="all"
+ xmlns:jacoco="antlib:org.jacoco.ant"
+ >
+ <description>
+ Build serial api.
+ </description>
+
+ <property name="component.path" value="connectors/iot"/>
+ <import file="../../common-build.xml"/>
+
+ <path id="compile.classpath">
+ <pathelement location="${quarks.lib}/quarks.api.topology.jar" />
+ <path refid="quarks.ext.classpath" />
+ </path>
+
+
+ <path id="test.compile.classpath">
+ <pathelement location="${jar}" />
+ <pathelement location="${lib}/quarks.providers.direct.jar"/>
+ <pathelement location="../../api/topology/test.classes"/>
+ <pathelement location="../../providers/direct/test.classes"/>
+ <path refid="compile.classpath"/>
+ </path>
+
+ <path id="test.classpath">
+ <pathelement location="${test.classes}" />
+ <path refid="test.compile.classpath"/>
+ </path>
+
+
+</project>
http://git-wip-us.apache.org/repos/asf/incubator-quarks/blob/fcf5882e/connectors/serial/src/main/java/quarks/connectors/serial/SerialDevice.java
----------------------------------------------------------------------
diff --git a/connectors/serial/src/main/java/quarks/connectors/serial/SerialDevice.java b/connectors/serial/src/main/java/quarks/connectors/serial/SerialDevice.java
new file mode 100644
index 0000000..3e41983
--- /dev/null
+++ b/connectors/serial/src/main/java/quarks/connectors/serial/SerialDevice.java
@@ -0,0 +1,49 @@
+/*
+# Licensed Materials - Property of IBM
+# Copyright IBM Corp. 2015,2016
+*/
+package quarks.connectors.serial;
+
+
+import java.io.InputStream;
+import java.io.OutputStream;
+import java.util.concurrent.TimeUnit;
+
+import quarks.function.BiConsumer;
+import quarks.function.BiFunction;
+import quarks.topology.TStream;
+import quarks.topology.TopologyElement;
+
+/**
+ * Generic interface for a serial port.
+ *
+ */
+public interface SerialDevice extends TopologyElement {
+
+ /**
+ * Set the initialization function for this port.
+ * Can be used to send setup instructions to the
+ * device connected to this serial port.
+ * <BR>
+ * {@code initializer.accept(out, in)} is called once, passing the output
+ * and input streams for this port.
+ *
+ * @param initializer Function to be called when the application runs.
+ */
+ public void setInitializer(BiConsumer<OutputStream,InputStream> initializer);
+
+ /**
+ * Poll the serial port.
+ * <BR>
+ * {@code driver.apply(out, in)} is called approximately every {@code period}
+ * seconds, passing the output and input streams for this port. The returned
+ * value is present on the returned stream if it is not null.
+ *
+ *
+ * @param driver Function to poll this serial port.
+ * @param period Polling period.
+ * @param unit Unit of {@code period}.
+ * @return Declaration of stream that will contain the results of calls to {@code driver}.
+ */
+ public <T> TStream<T> poll(BiFunction<OutputStream,InputStream,T> driver, long period, TimeUnit unit);
+}
http://git-wip-us.apache.org/repos/asf/incubator-quarks/blob/fcf5882e/connectors/serial/src/test/java/quarks/test/connectors/serial/DummyTest.java
----------------------------------------------------------------------
diff --git a/connectors/serial/src/test/java/quarks/test/connectors/serial/DummyTest.java b/connectors/serial/src/test/java/quarks/test/connectors/serial/DummyTest.java
new file mode 100644
index 0000000..1c38075
--- /dev/null
+++ b/connectors/serial/src/test/java/quarks/test/connectors/serial/DummyTest.java
@@ -0,0 +1,11 @@
+/*
+# Licensed Materials - Property of IBM
+# Copyright IBM Corp. 2015,2016
+*/
+package quarks.test.connectors.serial;
+
+import org.junit.Ignore;
+
+@Ignore("to allow use of standard build")
+public class DummyTest {
+}