blob: 4ce9c489b2be011ce5ae62eb3404269c7be630a1 [file] [log] [blame]
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<!-- NewPage -->
<html lang="en">
<head>
<!-- Generated by javadoc (1.8.0_112) on Mon Dec 18 11:25:21 EST 2017 -->
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>SerialDevice (Apache Edgent (incubating) v1.2.0 API)</title>
<meta name="date" content="2017-12-18">
<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
<script type="text/javascript" src="../../../../../script.js"></script>
</head>
<body>
<script type="text/javascript"><!--
try {
if (location.href.indexOf('is-external=true') == -1) {
parent.document.title="SerialDevice (Apache Edgent (incubating) v1.2.0 API)";
}
}
catch(err) {
}
//-->
var methods = {"i0":6,"i1":6};
var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"]};
var altColor = "altColor";
var rowColor = "rowColor";
var tableTab = "tableTab";
var activeTableTab = "activeTableTab";
</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="topNav"><a name="navbar.top">
<!-- -->
</a>
<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
<a name="navbar.top.firstrow">
<!-- -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../../../overview-summary.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="class-use/SerialDevice.html">Use</a></li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
<li><a href="../../../../../index-all.html">Index</a></li>
<li><a href="../../../../../help-doc.html">Help</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList">
<li>Prev&nbsp;Class</li>
<li><a href="../../../../../org/apache/edgent/connectors/serial/SerialPort.html" title="interface in org.apache.edgent.connectors.serial"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../../../index.html?org/apache/edgent/connectors/serial/SerialDevice.html" target="_top">Frames</a></li>
<li><a href="SerialDevice.html" target="_top">No&nbsp;Frames</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_top">
<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
allClassesLink = document.getElementById("allclasses_navbar_top");
if(window==top) {
allClassesLink.style.display = "block";
}
else {
allClassesLink.style.display = "none";
}
//-->
</script>
</div>
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li>Nested&nbsp;|&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li>Constr&nbsp;|&nbsp;</li>
<li><a href="#method.summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li>Constr&nbsp;|&nbsp;</li>
<li><a href="#method.detail">Method</a></li>
</ul>
</div>
<a name="skip.navbar.top">
<!-- -->
</a></div>
<!-- ========= END OF TOP NAVBAR ========= -->
<!-- ======== START OF CLASS DATA ======== -->
<div class="header">
<div class="subTitle">org.apache.edgent.connectors.serial</div>
<h2 title="Interface SerialDevice" class="title">Interface SerialDevice</h2>
</div>
<div class="contentContainer">
<div class="description">
<ul class="blockList">
<li class="blockList">
<dl>
<dt>All Superinterfaces:</dt>
<dd><a href="../../../../../org/apache/edgent/topology/TopologyElement.html" title="interface in org.apache.edgent.topology">TopologyElement</a></dd>
</dl>
<hr>
<br>
<pre>public interface <span class="typeNameLabel">SerialDevice</span>
extends <a href="../../../../../org/apache/edgent/topology/TopologyElement.html" title="interface in org.apache.edgent.topology">TopologyElement</a></pre>
<div class="block">Access to a device (or devices) connected by a serial port.
A serial port at runtime is represented by
a <a href="../../../../../org/apache/edgent/connectors/serial/SerialPort.html" title="interface in org.apache.edgent.connectors.serial"><code>SerialPort</code></a>.
<P>
<code>SerialDevice</code> is typically used through
a protocol module that sends the appropriate bytes
to the port and decodes the bytes output by the port.
</P>
<P>
It is guaranteed that during any call to function returned by
this interface has exclusive access to <a href="../../../../../org/apache/edgent/connectors/serial/SerialPort.html" title="interface in org.apache.edgent.connectors.serial"><code>SerialPort</code></a>.
</P></div>
</li>
</ul>
</div>
<div class="summary">
<ul class="blockList">
<li class="blockList">
<!-- ========== METHOD SUMMARY =========== -->
<ul class="blockList">
<li class="blockList"><a name="method.summary">
<!-- -->
</a>
<h3>Method Summary</h3>
<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t3" class="tableTab"><span><a href="javascript:show(4);">Abstract Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colLast" scope="col">Method and Description</th>
</tr>
<tr id="i0" class="altColor">
<td class="colFirst"><code>&lt;T&gt;&nbsp;<a href="../../../../../org/apache/edgent/function/Supplier.html" title="interface in org.apache.edgent.function">Supplier</a>&lt;T&gt;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/edgent/connectors/serial/SerialDevice.html#getSource-org.apache.edgent.function.Function-">getSource</a></span>(<a href="../../../../../org/apache/edgent/function/Function.html" title="interface in org.apache.edgent.function">Function</a>&lt;<a href="../../../../../org/apache/edgent/connectors/serial/SerialPort.html" title="interface in org.apache.edgent.connectors.serial">SerialPort</a>,T&gt;&nbsp;driver)</code>
<div class="block">Create a function that can be used to source a
stream from a serial port device.</div>
</td>
</tr>
<tr id="i1" class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/edgent/connectors/serial/SerialDevice.html#setInitializer-org.apache.edgent.function.Consumer-">setInitializer</a></span>(<a href="../../../../../org/apache/edgent/function/Consumer.html" title="interface in org.apache.edgent.function">Consumer</a>&lt;<a href="../../../../../org/apache/edgent/connectors/serial/SerialPort.html" title="interface in org.apache.edgent.connectors.serial">SerialPort</a>&gt;&nbsp;initializer)</code>
<div class="block">Set the initialization function for this port.</div>
</td>
</tr>
</table>
<ul class="blockList">
<li class="blockList"><a name="methods.inherited.from.class.org.apache.edgent.topology.TopologyElement">
<!-- -->
</a>
<h3>Methods inherited from interface&nbsp;org.apache.edgent.topology.<a href="../../../../../org/apache/edgent/topology/TopologyElement.html" title="interface in org.apache.edgent.topology">TopologyElement</a></h3>
<code><a href="../../../../../org/apache/edgent/topology/TopologyElement.html#topology--">topology</a></code></li>
</ul>
</li>
</ul>
</li>
</ul>
</div>
<div class="details">
<ul class="blockList">
<li class="blockList">
<!-- ============ METHOD DETAIL ========== -->
<ul class="blockList">
<li class="blockList"><a name="method.detail">
<!-- -->
</a>
<h3>Method Detail</h3>
<a name="setInitializer-org.apache.edgent.function.Consumer-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setInitializer</h4>
<pre>void&nbsp;setInitializer(<a href="../../../../../org/apache/edgent/function/Consumer.html" title="interface in org.apache.edgent.function">Consumer</a>&lt;<a href="../../../../../org/apache/edgent/connectors/serial/SerialPort.html" title="interface in org.apache.edgent.connectors.serial">SerialPort</a>&gt;&nbsp;initializer)</pre>
<div class="block">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(port)</code> is called once, passing a runtime
<a href="../../../../../org/apache/edgent/connectors/serial/SerialPort.html" title="interface in org.apache.edgent.connectors.serial"><code>SerialPort</code></a> for this serial device.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>initializer</code> - Function to be called when the application runs.</dd>
</dl>
</li>
</ul>
<a name="getSource-org.apache.edgent.function.Function-">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>getSource</h4>
<pre>&lt;T&gt;&nbsp;<a href="../../../../../org/apache/edgent/function/Supplier.html" title="interface in org.apache.edgent.function">Supplier</a>&lt;T&gt;&nbsp;getSource(<a href="../../../../../org/apache/edgent/function/Function.html" title="interface in org.apache.edgent.function">Function</a>&lt;<a href="../../../../../org/apache/edgent/connectors/serial/SerialPort.html" title="interface in org.apache.edgent.connectors.serial">SerialPort</a>,T&gt;&nbsp;driver)</pre>
<div class="block">Create a function that can be used to source a
stream from a serial port device.
<BR>
Calling <code>get()</code> on the returned function will result in a call
to <code>driver.apply(serialPort)</code>
passing a runtime <a href="../../../../../org/apache/edgent/connectors/serial/SerialPort.html" title="interface in org.apache.edgent.connectors.serial"><code>SerialPort</code></a> for this serial device.
The value returned by <code>driver.apply(serialPort)</code> is
returned by this returned function.
<BR>
The function <code>driver</code> typically sends instructions to the
serial port using <a href="../../../../../org/apache/edgent/connectors/serial/SerialPort.html#getOutput--"><code>SerialPort.getOutput()</code></a> and then
reads the result using <a href="../../../../../org/apache/edgent/connectors/serial/SerialPort.html#getInput--"><code>SerialPort.getInput()</code></a>.
<P>
Multiple instances of a supplier function can be created,
for example to read different parameters from the
device connected to the serial port. While each function
is being called it has exclusive use of the serial port.
</P></div>
<dl>
<dt><span class="paramLabel">Type Parameters:</span></dt>
<dd><code>T</code> - Tuple type</dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>driver</code> - Function that interacts with the serial port to produce a value.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>Function that for each call will interact with the serial port to produce a value.</dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../../org/apache/edgent/topology/Topology.html#poll-org.apache.edgent.function.Supplier-long-java.util.concurrent.TimeUnit-"><code>Topology.poll(Supplier, long, TimeUnit)</code></a></dd>
</dl>
</li>
</ul>
</li>
</ul>
</li>
</ul>
</div>
</div>
<!-- ========= END OF CLASS DATA ========= -->
<!-- ======= START OF BOTTOM NAVBAR ====== -->
<div class="bottomNav"><a name="navbar.bottom">
<!-- -->
</a>
<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
<a name="navbar.bottom.firstrow">
<!-- -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../../../overview-summary.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="class-use/SerialDevice.html">Use</a></li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
<li><a href="../../../../../index-all.html">Index</a></li>
<li><a href="../../../../../help-doc.html">Help</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList">
<li>Prev&nbsp;Class</li>
<li><a href="../../../../../org/apache/edgent/connectors/serial/SerialPort.html" title="interface in org.apache.edgent.connectors.serial"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../../../index.html?org/apache/edgent/connectors/serial/SerialDevice.html" target="_top">Frames</a></li>
<li><a href="SerialDevice.html" target="_top">No&nbsp;Frames</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_bottom">
<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
allClassesLink = document.getElementById("allclasses_navbar_bottom");
if(window==top) {
allClassesLink.style.display = "block";
}
else {
allClassesLink.style.display = "none";
}
//-->
</script>
</div>
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li>Nested&nbsp;|&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li>Constr&nbsp;|&nbsp;</li>
<li><a href="#method.summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li>Constr&nbsp;|&nbsp;</li>
<li><a href="#method.detail">Method</a></li>
</ul>
</div>
<a name="skip.navbar.bottom">
<!-- -->
</a></div>
<!-- ======== END OF BOTTOM NAVBAR ======= -->
<p class="legalCopy"><small>Copyright &#169; 2016&#x2013;2017 <a href="https://www.apache.org/">The Apache Software Foundation</a>. All rights reserved.</small></p>
</body>
</html>