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 {
+}