blob: 5cfd1e9fbef813daf6cabe042818713d4c3a94da [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 Sun Feb 26 17:08:10 EST 2017 -->
<title>Obd2Streams (Edgent v1.1.0)</title>
<meta name="date" content="2017-02-26">
<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="Obd2Streams (Edgent v1.1.0)";
}
}
catch(err) {
}
//-->
var methods = {"i0":9,"i1":9,"i2":9,"i3":9};
var tabs = {65535:["t0","All Methods"],1:["t1","Static Methods"],8:["t4","Concrete 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/Obd2Streams.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>Next&nbsp;Class</li>
</ul>
<ul class="navList">
<li><a href="../../../../../../index.html?org/apache/edgent/samples/connectors/obd2/Obd2Streams.html" target="_top">Frames</a></li>
<li><a href="Obd2Streams.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><a href="#constructor.summary">Constr</a>&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><a href="#constructor.detail">Constr</a>&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.samples.connectors.obd2</div>
<h2 title="Class Obd2Streams" class="title">Class Obd2Streams</h2>
</div>
<div class="contentContainer">
<ul class="inheritance">
<li>java.lang.Object</li>
<li>
<ul class="inheritance">
<li>org.apache.edgent.samples.connectors.obd2.Obd2Streams</li>
</ul>
</li>
</ul>
<div class="description">
<ul class="blockList">
<li class="blockList">
<hr>
<br>
<pre>public class <span class="typeNameLabel">Obd2Streams</span>
extends java.lang.Object</pre>
<div class="block">Sample OBD-II streams.</div>
</li>
</ul>
</div>
<div class="summary">
<ul class="blockList">
<li class="blockList">
<!-- ======== CONSTRUCTOR SUMMARY ======== -->
<ul class="blockList">
<li class="blockList"><a name="constructor.summary">
<!-- -->
</a>
<h3>Constructor Summary</h3>
<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colOne" scope="col">Constructor and Description</th>
</tr>
<tr class="altColor">
<td class="colOne"><code><span class="memberNameLink"><a href="../../../../../../org/apache/edgent/samples/connectors/obd2/Obd2Streams.html#Obd2Streams--">Obd2Streams</a></span>()</code>&nbsp;</td>
</tr>
</table>
</li>
</ul>
<!-- ========== 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="t1" class="tableTab"><span><a href="javascript:show(1);">Static Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete 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>static double</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/edgent/samples/connectors/obd2/Obd2Streams.html#getDouble-com.google.gson.JsonElement-java.lang.String-">getDouble</a></span>(com.google.gson.JsonElement&nbsp;json,
java.lang.String&nbsp;key)</code>
<div class="block">Utility method to simplify accessing a number as a double.</div>
</td>
</tr>
<tr id="i1" class="rowColor">
<td class="colFirst"><code>static com.google.gson.JsonObject</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/edgent/samples/connectors/obd2/Obd2Streams.html#getObject-com.google.gson.JsonObject-java.lang.String-">getObject</a></span>(com.google.gson.JsonObject&nbsp;json,
java.lang.String&nbsp;key)</code>
<div class="block">Utility method to simplify accessing a JSON object.</div>
</td>
</tr>
<tr id="i2" class="altColor">
<td class="colFirst"><code>static <a href="../../../../../../org/apache/edgent/topology/TStream.html" title="interface in org.apache.edgent.topology">TStream</a>&lt;com.google.gson.JsonObject&gt;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/edgent/samples/connectors/obd2/Obd2Streams.html#increasingTemps-org.apache.edgent.connectors.serial.SerialDevice-">increasingTemps</a></span>(<a href="../../../../../../org/apache/edgent/connectors/serial/SerialDevice.html" title="interface in org.apache.edgent.connectors.serial">SerialDevice</a>&nbsp;device)</code>
<div class="block">Get a stream of temperature readings which
are increasing over the last minute.</div>
</td>
</tr>
<tr id="i3" class="rowColor">
<td class="colFirst"><code>static <a href="../../../../../../org/apache/edgent/topology/TStream.html" title="interface in org.apache.edgent.topology">TStream</a>&lt;com.google.gson.JsonObject&gt;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/edgent/samples/connectors/obd2/Obd2Streams.html#tach-org.apache.edgent.connectors.serial.SerialDevice-">tach</a></span>(<a href="../../../../../../org/apache/edgent/connectors/serial/SerialDevice.html" title="interface in org.apache.edgent.connectors.serial">SerialDevice</a>&nbsp;device)</code>
<div class="block">Get a stream containing vehicle speed (km/h)
and engine revs (rpm).</div>
</td>
</tr>
</table>
<ul class="blockList">
<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
<!-- -->
</a>
<h3>Methods inherited from class&nbsp;java.lang.Object</h3>
<code>clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</code></li>
</ul>
</li>
</ul>
</li>
</ul>
</div>
<div class="details">
<ul class="blockList">
<li class="blockList">
<!-- ========= CONSTRUCTOR DETAIL ======== -->
<ul class="blockList">
<li class="blockList"><a name="constructor.detail">
<!-- -->
</a>
<h3>Constructor Detail</h3>
<a name="Obd2Streams--">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>Obd2Streams</h4>
<pre>public&nbsp;Obd2Streams()</pre>
</li>
</ul>
</li>
</ul>
<!-- ============ METHOD DETAIL ========== -->
<ul class="blockList">
<li class="blockList"><a name="method.detail">
<!-- -->
</a>
<h3>Method Detail</h3>
<a name="increasingTemps-org.apache.edgent.connectors.serial.SerialDevice-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>increasingTemps</h4>
<pre>public static&nbsp;<a href="../../../../../../org/apache/edgent/topology/TStream.html" title="interface in org.apache.edgent.topology">TStream</a>&lt;com.google.gson.JsonObject&gt;&nbsp;increasingTemps(<a href="../../../../../../org/apache/edgent/connectors/serial/SerialDevice.html" title="interface in org.apache.edgent.connectors.serial">SerialDevice</a>&nbsp;device)</pre>
<div class="block">Get a stream of temperature readings which
are increasing over the last minute.
Poll temperatures every five seconds and
calculate the maximum reading and rate of change
(slope) over the last minute, partitioned by parameter
<a href="../../../../../../org/apache/edgent/samples/connectors/elm327/Cmd.html#PID"><code>pid</code></a>. Filter so that only
those with a rate of increase greater than
or equal to 1 degree C/minute is present on the returned stream.
Temperatures included are
<a href="../../../../../../org/apache/edgent/samples/connectors/elm327/Pids01.html#AIR_INTAKE_TEMP"><code>AIR_INTAKE_TEMP</code></a> and
<a href="../../../../../../org/apache/edgent/samples/connectors/elm327/Pids01.html#ENGINE_COOLANT_TEMP"><code>ENGINE_COOLANT_TEMP</code></a>.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>device</code> - Serial device the ELM327 is connected to.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>Stream that will contain parameters with increasing temperatures.</dd>
</dl>
</li>
</ul>
<a name="tach-org.apache.edgent.connectors.serial.SerialDevice-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>tach</h4>
<pre>public static&nbsp;<a href="../../../../../../org/apache/edgent/topology/TStream.html" title="interface in org.apache.edgent.topology">TStream</a>&lt;com.google.gson.JsonObject&gt;&nbsp;tach(<a href="../../../../../../org/apache/edgent/connectors/serial/SerialDevice.html" title="interface in org.apache.edgent.connectors.serial">SerialDevice</a>&nbsp;device)</pre>
<div class="block">Get a stream containing vehicle speed (km/h)
and engine revs (rpm).
<a href="../../../../../../org/apache/edgent/samples/connectors/elm327/Pids01.html#SPEED"><code>Speed</code></a>
and <a href="../../../../../../org/apache/edgent/samples/connectors/elm327/Pids01.html#RPM"><code>engine revs</code></a>
are polled every 200ms and returned as a stream
containing JSON objects with keys <code>speed</code>
and <code>rpm</code>.
The two readings may not be exactly consistent with
each other as there are fetched sequentially from
the ELM327.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>device</code> - Serial device the ELM327 is connected to.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>Stream that will contain speed and engine revolutions.</dd>
</dl>
</li>
</ul>
<a name="getObject-com.google.gson.JsonObject-java.lang.String-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getObject</h4>
<pre>public static&nbsp;com.google.gson.JsonObject&nbsp;getObject(com.google.gson.JsonObject&nbsp;json,
java.lang.String&nbsp;key)</pre>
<div class="block">Utility method to simplify accessing a JSON object.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>json</code> - JSON object containing the object to be got.</dd>
<dd><code>key</code> - Key of the object to be got.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>JSON object with key <code>key</code> from <code>json</code>.</dd>
</dl>
</li>
</ul>
<a name="getDouble-com.google.gson.JsonElement-java.lang.String-">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>getDouble</h4>
<pre>public static&nbsp;double&nbsp;getDouble(com.google.gson.JsonElement&nbsp;json,
java.lang.String&nbsp;key)</pre>
<div class="block">Utility method to simplify accessing a number as a double.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>json</code> - JSON object containing the number to be got.</dd>
<dd><code>key</code> - Key of the number to be got.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>Number with key <code>key</code> from <code>json</code>.</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/Obd2Streams.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 class="aboutLanguage"><a href="http://edgent.incubator.apache.org">Apache Edgent (incubating)</a></div>
</div>
<div class="subNav">
<ul class="navList">
<li>Prev&nbsp;Class</li>
<li>Next&nbsp;Class</li>
</ul>
<ul class="navList">
<li><a href="../../../../../../index.html?org/apache/edgent/samples/connectors/obd2/Obd2Streams.html" target="_top">Frames</a></li>
<li><a href="Obd2Streams.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><a href="#constructor.summary">Constr</a>&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><a href="#constructor.detail">Constr</a>&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; 2017 The Apache Software Foundation. All Rights Reserved - 4744f56-20170226-1707</small></p>
</body>
</html>