wh1ter0se/PowerUp-2018

View on GitHub
wpilib18/java/current/javadoc/edu/wpi/first/wpilibj/Ultrasonic.html

Summary

Maintainability
Test Coverage
<!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_144) on Sat Oct 28 05:22:53 EDT 2017 -->
<title>Ultrasonic (Documentation - Release API)</title>
<meta name="date" content="2017-10-28">
<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="Ultrasonic (Documentation - Release API)";
        }
    }
    catch(err) {
    }
//-->
var methods = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10,"i6":10,"i7":10,"i8":10,"i9":10,"i10":10,"i11":10,"i12":10,"i13":10,"i14":10,"i15":10,"i16":10,"i17":10};
var tabs = {65535:["t0","All Methods"],2:["t2","Instance 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="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><a href="../../../../edu/wpi/first/wpilibj/Timer.StaticInterface.html" title="interface in edu.wpi.first.wpilibj"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
<li><a href="../../../../edu/wpi/first/wpilibj/Ultrasonic.Unit.html" title="enum in edu.wpi.first.wpilibj"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../../index.html?edu/wpi/first/wpilibj/Ultrasonic.html" target="_top">Frames</a></li>
<li><a href="Ultrasonic.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><a href="#nested.class.summary">Nested</a>&nbsp;|&nbsp;</li>
<li><a href="#field.summary">Field</a>&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><a href="#field.detail">Field</a>&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">edu.wpi.first.wpilibj</div>
<h2 title="Class Ultrasonic" class="title">Class Ultrasonic</h2>
</div>
<div class="contentContainer">
<ul class="inheritance">
<li>java.lang.Object</li>
<li>
<ul class="inheritance">
<li><a href="../../../../edu/wpi/first/wpilibj/SensorBase.html" title="class in edu.wpi.first.wpilibj">edu.wpi.first.wpilibj.SensorBase</a></li>
<li>
<ul class="inheritance">
<li>edu.wpi.first.wpilibj.Ultrasonic</li>
</ul>
</li>
</ul>
</li>
</ul>
<div class="description">
<ul class="blockList">
<li class="blockList">
<dl>
<dt>All Implemented Interfaces:</dt>
<dd><a href="../../../../edu/wpi/first/wpilibj/livewindow/LiveWindowSendable.html" title="interface in edu.wpi.first.wpilibj.livewindow">LiveWindowSendable</a>, <a href="../../../../edu/wpi/first/wpilibj/PIDSource.html" title="interface in edu.wpi.first.wpilibj">PIDSource</a>, <a href="../../../../edu/wpi/first/wpilibj/Sendable.html" title="interface in edu.wpi.first.wpilibj">Sendable</a></dd>
</dl>
<hr>
<br>
<pre>public class <span class="typeNameLabel">Ultrasonic</span>
extends <a href="../../../../edu/wpi/first/wpilibj/SensorBase.html" title="class in edu.wpi.first.wpilibj">SensorBase</a>
implements <a href="../../../../edu/wpi/first/wpilibj/PIDSource.html" title="interface in edu.wpi.first.wpilibj">PIDSource</a>, <a href="../../../../edu/wpi/first/wpilibj/livewindow/LiveWindowSendable.html" title="interface in edu.wpi.first.wpilibj.livewindow">LiveWindowSendable</a></pre>
<div class="block">Ultrasonic rangefinder class. The Ultrasonic rangefinder measures absolute distance based on the
 round-trip time of a ping generated by the controller. These sensors use two transducers, a
 speaker and a microphone both tuned to the ultrasonic range. A common ultrasonic sensor, the
 Daventech SRF04 requires a short pulse to be generated on a digital channel. This causes the
 chirp to be emitted. A second line becomes high as the ping is transmitted and goes low when the
 echo is received. The time that the line is high determines the round trip distance (time of
 flight).</div>
</li>
</ul>
</div>
<div class="summary">
<ul class="blockList">
<li class="blockList">
<!-- ======== NESTED CLASS SUMMARY ======== -->
<ul class="blockList">
<li class="blockList"><a name="nested.class.summary">
<!--   -->
</a>
<h3>Nested Class Summary</h3>
<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Nested Class Summary table, listing nested classes, and an explanation">
<caption><span>Nested Classes</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colLast" scope="col">Class and Description</th>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static class&nbsp;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../edu/wpi/first/wpilibj/Ultrasonic.Unit.html" title="enum in edu.wpi.first.wpilibj">Ultrasonic.Unit</a></span></code>
<div class="block">The units to return when PIDGet is called.</div>
</td>
</tr>
</table>
</li>
</ul>
<!-- =========== FIELD SUMMARY =========== -->
<ul class="blockList">
<li class="blockList"><a name="field.summary">
<!--   -->
</a>
<h3>Field Summary</h3>
<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Field Summary table, listing fields, and an explanation">
<caption><span>Fields</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colLast" scope="col">Field and Description</th>
</tr>
<tr class="altColor">
<td class="colFirst"><code>protected <a href="../../../../edu/wpi/first/wpilibj/PIDSourceType.html" title="enum in edu.wpi.first.wpilibj">PIDSourceType</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../edu/wpi/first/wpilibj/Ultrasonic.html#m_pidSource">m_pidSource</a></span></code>&nbsp;</td>
</tr>
</table>
<ul class="blockList">
<li class="blockList"><a name="fields.inherited.from.class.edu.wpi.first.wpilibj.SensorBase">
<!--   -->
</a>
<h3>Fields inherited from class&nbsp;edu.wpi.first.wpilibj.<a href="../../../../edu/wpi/first/wpilibj/SensorBase.html" title="class in edu.wpi.first.wpilibj">SensorBase</a></h3>
<code><a href="../../../../edu/wpi/first/wpilibj/SensorBase.html#kAnalogInputChannels">kAnalogInputChannels</a>, <a href="../../../../edu/wpi/first/wpilibj/SensorBase.html#kAnalogOutputChannels">kAnalogOutputChannels</a>, <a href="../../../../edu/wpi/first/wpilibj/SensorBase.html#kDigitalChannels">kDigitalChannels</a>, <a href="../../../../edu/wpi/first/wpilibj/SensorBase.html#kPCMModules">kPCMModules</a>, <a href="../../../../edu/wpi/first/wpilibj/SensorBase.html#kPDPChannels">kPDPChannels</a>, <a href="../../../../edu/wpi/first/wpilibj/SensorBase.html#kPDPModules">kPDPModules</a>, <a href="../../../../edu/wpi/first/wpilibj/SensorBase.html#kPwmChannels">kPwmChannels</a>, <a href="../../../../edu/wpi/first/wpilibj/SensorBase.html#kRelayChannels">kRelayChannels</a>, <a href="../../../../edu/wpi/first/wpilibj/SensorBase.html#kSolenoidChannels">kSolenoidChannels</a>, <a href="../../../../edu/wpi/first/wpilibj/SensorBase.html#kSystemClockTicksPerMicrosecond">kSystemClockTicksPerMicrosecond</a></code></li>
</ul>
</li>
</ul>
<!-- ======== 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="../../../../edu/wpi/first/wpilibj/Ultrasonic.html#Ultrasonic-edu.wpi.first.wpilibj.DigitalOutput-edu.wpi.first.wpilibj.DigitalInput-">Ultrasonic</a></span>(<a href="../../../../edu/wpi/first/wpilibj/DigitalOutput.html" title="class in edu.wpi.first.wpilibj">DigitalOutput</a>&nbsp;pingChannel,
          <a href="../../../../edu/wpi/first/wpilibj/DigitalInput.html" title="class in edu.wpi.first.wpilibj">DigitalInput</a>&nbsp;echoChannel)</code>
<div class="block">Create an instance of an Ultrasonic Sensor from a DigitalInput for the echo channel and a
 DigitalOutput for the ping channel.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colOne"><code><span class="memberNameLink"><a href="../../../../edu/wpi/first/wpilibj/Ultrasonic.html#Ultrasonic-edu.wpi.first.wpilibj.DigitalOutput-edu.wpi.first.wpilibj.DigitalInput-edu.wpi.first.wpilibj.Ultrasonic.Unit-">Ultrasonic</a></span>(<a href="../../../../edu/wpi/first/wpilibj/DigitalOutput.html" title="class in edu.wpi.first.wpilibj">DigitalOutput</a>&nbsp;pingChannel,
          <a href="../../../../edu/wpi/first/wpilibj/DigitalInput.html" title="class in edu.wpi.first.wpilibj">DigitalInput</a>&nbsp;echoChannel,
          <a href="../../../../edu/wpi/first/wpilibj/Ultrasonic.Unit.html" title="enum in edu.wpi.first.wpilibj">Ultrasonic.Unit</a>&nbsp;units)</code>
<div class="block">Create an instance of an Ultrasonic Sensor from a DigitalInput for the echo channel and a
 DigitalOutput for the ping channel.</div>
</td>
</tr>
<tr class="altColor">
<td class="colOne"><code><span class="memberNameLink"><a href="../../../../edu/wpi/first/wpilibj/Ultrasonic.html#Ultrasonic-int-int-">Ultrasonic</a></span>(int&nbsp;pingChannel,
          int&nbsp;echoChannel)</code>
<div class="block">Create an instance of the Ultrasonic Sensor.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colOne"><code><span class="memberNameLink"><a href="../../../../edu/wpi/first/wpilibj/Ultrasonic.html#Ultrasonic-int-int-edu.wpi.first.wpilibj.Ultrasonic.Unit-">Ultrasonic</a></span>(int&nbsp;pingChannel,
          int&nbsp;echoChannel,
          <a href="../../../../edu/wpi/first/wpilibj/Ultrasonic.Unit.html" title="enum in edu.wpi.first.wpilibj">Ultrasonic.Unit</a>&nbsp;units)</code>
<div class="block">Create an instance of the Ultrasonic Sensor.</div>
</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="t2" class="tableTab"><span><a href="javascript:show(2);">Instance 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>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../edu/wpi/first/wpilibj/Ultrasonic.html#free--">free</a></span>()</code>
<div class="block">Destructor for the ultrasonic sensor.</div>
</td>
</tr>
<tr id="i1" class="rowColor">
<td class="colFirst"><code><a href="../../../../edu/wpi/first/wpilibj/Ultrasonic.Unit.html" title="enum in edu.wpi.first.wpilibj">Ultrasonic.Unit</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../edu/wpi/first/wpilibj/Ultrasonic.html#getDistanceUnits--">getDistanceUnits</a></span>()</code>
<div class="block">Get the current DistanceUnit that is used for the PIDSource base object.</div>
</td>
</tr>
<tr id="i2" class="altColor">
<td class="colFirst"><code><a href="../../../../edu/wpi/first/wpilibj/PIDSourceType.html" title="enum in edu.wpi.first.wpilibj">PIDSourceType</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../edu/wpi/first/wpilibj/Ultrasonic.html#getPIDSourceType--">getPIDSourceType</a></span>()</code>
<div class="block">Get which parameter of the device you are using as a process control variable.</div>
</td>
</tr>
<tr id="i3" class="rowColor">
<td class="colFirst"><code>double</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../edu/wpi/first/wpilibj/Ultrasonic.html#getRangeInches--">getRangeInches</a></span>()</code>
<div class="block">Get the range in inches from the ultrasonic sensor.</div>
</td>
</tr>
<tr id="i4" class="altColor">
<td class="colFirst"><code>double</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../edu/wpi/first/wpilibj/Ultrasonic.html#getRangeMM--">getRangeMM</a></span>()</code>
<div class="block">Get the range in millimeters from the ultrasonic sensor.</div>
</td>
</tr>
<tr id="i5" class="rowColor">
<td class="colFirst"><code>java.lang.String</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../edu/wpi/first/wpilibj/Ultrasonic.html#getSmartDashboardType--">getSmartDashboardType</a></span>()</code>
<div class="block">Live Window code, only does anything if live window is activated.</div>
</td>
</tr>
<tr id="i6" class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../edu/wpi/first/wpilibj/Ultrasonic.html#initTable-edu.wpi.first.networktables.NetworkTable-">initTable</a></span>(<a href="../../../../edu/wpi/first/networktables/NetworkTable.html" title="class in edu.wpi.first.networktables">NetworkTable</a>&nbsp;subtable)</code>
<div class="block">Initializes a table for this <a href="../../../../edu/wpi/first/wpilibj/Sendable.html" title="interface in edu.wpi.first.wpilibj"><code>Sendable</code></a> object.</div>
</td>
</tr>
<tr id="i7" class="rowColor">
<td class="colFirst"><code>boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../edu/wpi/first/wpilibj/Ultrasonic.html#isEnabled--">isEnabled</a></span>()</code>
<div class="block">Is the ultrasonic enabled.</div>
</td>
</tr>
<tr id="i8" class="altColor">
<td class="colFirst"><code>boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../edu/wpi/first/wpilibj/Ultrasonic.html#isRangeValid--">isRangeValid</a></span>()</code>
<div class="block">Check if there is a valid range measurement.</div>
</td>
</tr>
<tr id="i9" class="rowColor">
<td class="colFirst"><code>double</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../edu/wpi/first/wpilibj/Ultrasonic.html#pidGet--">pidGet</a></span>()</code>
<div class="block">Get the range in the current DistanceUnit for the PIDSource base object.</div>
</td>
</tr>
<tr id="i10" class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../edu/wpi/first/wpilibj/Ultrasonic.html#ping--">ping</a></span>()</code>
<div class="block">Single ping to ultrasonic sensor.</div>
</td>
</tr>
<tr id="i11" class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../edu/wpi/first/wpilibj/Ultrasonic.html#setAutomaticMode-boolean-">setAutomaticMode</a></span>(boolean&nbsp;enabling)</code>
<div class="block">Turn Automatic mode on/off.</div>
</td>
</tr>
<tr id="i12" class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../edu/wpi/first/wpilibj/Ultrasonic.html#setDistanceUnits-edu.wpi.first.wpilibj.Ultrasonic.Unit-">setDistanceUnits</a></span>(<a href="../../../../edu/wpi/first/wpilibj/Ultrasonic.Unit.html" title="enum in edu.wpi.first.wpilibj">Ultrasonic.Unit</a>&nbsp;units)</code>
<div class="block">Set the current DistanceUnit that should be used for the PIDSource base object.</div>
</td>
</tr>
<tr id="i13" class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../edu/wpi/first/wpilibj/Ultrasonic.html#setEnabled-boolean-">setEnabled</a></span>(boolean&nbsp;enable)</code>
<div class="block">Set if the ultrasonic is enabled.</div>
</td>
</tr>
<tr id="i14" class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../edu/wpi/first/wpilibj/Ultrasonic.html#setPIDSourceType-edu.wpi.first.wpilibj.PIDSourceType-">setPIDSourceType</a></span>(<a href="../../../../edu/wpi/first/wpilibj/PIDSourceType.html" title="enum in edu.wpi.first.wpilibj">PIDSourceType</a>&nbsp;pidSource)</code>
<div class="block">Set which parameter of the device you are using as a process control variable.</div>
</td>
</tr>
<tr id="i15" class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../edu/wpi/first/wpilibj/Ultrasonic.html#startLiveWindowMode--">startLiveWindowMode</a></span>()</code>
<div class="block">Start having this sendable object automatically respond to value changes reflect the value on
 the table.</div>
</td>
</tr>
<tr id="i16" class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../edu/wpi/first/wpilibj/Ultrasonic.html#stopLiveWindowMode--">stopLiveWindowMode</a></span>()</code>
<div class="block">Stop having this sendable object automatically respond to value changes.</div>
</td>
</tr>
<tr id="i17" class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../edu/wpi/first/wpilibj/Ultrasonic.html#updateTable--">updateTable</a></span>()</code>
<div class="block">Update the table for this sendable object with the latest values.</div>
</td>
</tr>
</table>
<ul class="blockList">
<li class="blockList"><a name="methods.inherited.from.class.edu.wpi.first.wpilibj.SensorBase">
<!--   -->
</a>
<h3>Methods inherited from class&nbsp;edu.wpi.first.wpilibj.<a href="../../../../edu/wpi/first/wpilibj/SensorBase.html" title="class in edu.wpi.first.wpilibj">SensorBase</a></h3>
<code><a href="../../../../edu/wpi/first/wpilibj/SensorBase.html#checkAnalogInputChannel-int-">checkAnalogInputChannel</a>, <a href="../../../../edu/wpi/first/wpilibj/SensorBase.html#checkAnalogOutputChannel-int-">checkAnalogOutputChannel</a>, <a href="../../../../edu/wpi/first/wpilibj/SensorBase.html#checkDigitalChannel-int-">checkDigitalChannel</a>, <a href="../../../../edu/wpi/first/wpilibj/SensorBase.html#checkPDPChannel-int-">checkPDPChannel</a>, <a href="../../../../edu/wpi/first/wpilibj/SensorBase.html#checkPDPModule-int-">checkPDPModule</a>, <a href="../../../../edu/wpi/first/wpilibj/SensorBase.html#checkPWMChannel-int-">checkPWMChannel</a>, <a href="../../../../edu/wpi/first/wpilibj/SensorBase.html#checkRelayChannel-int-">checkRelayChannel</a>, <a href="../../../../edu/wpi/first/wpilibj/SensorBase.html#checkSolenoidChannel-int-">checkSolenoidChannel</a>, <a href="../../../../edu/wpi/first/wpilibj/SensorBase.html#checkSolenoidModule-int-">checkSolenoidModule</a>, <a href="../../../../edu/wpi/first/wpilibj/SensorBase.html#getDefaultSolenoidModule--">getDefaultSolenoidModule</a>, <a href="../../../../edu/wpi/first/wpilibj/SensorBase.html#setDefaultSolenoidModule-int-">setDefaultSolenoidModule</a></code></li>
</ul>
<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">
<!-- ============ FIELD DETAIL =========== -->
<ul class="blockList">
<li class="blockList"><a name="field.detail">
<!--   -->
</a>
<h3>Field Detail</h3>
<a name="m_pidSource">
<!--   -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>m_pidSource</h4>
<pre>protected&nbsp;<a href="../../../../edu/wpi/first/wpilibj/PIDSourceType.html" title="enum in edu.wpi.first.wpilibj">PIDSourceType</a> m_pidSource</pre>
</li>
</ul>
</li>
</ul>
<!-- ========= CONSTRUCTOR DETAIL ======== -->
<ul class="blockList">
<li class="blockList"><a name="constructor.detail">
<!--   -->
</a>
<h3>Constructor Detail</h3>
<a name="Ultrasonic-int-int-edu.wpi.first.wpilibj.Ultrasonic.Unit-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>Ultrasonic</h4>
<pre>public&nbsp;Ultrasonic(int&nbsp;pingChannel,
                  int&nbsp;echoChannel,
                  <a href="../../../../edu/wpi/first/wpilibj/Ultrasonic.Unit.html" title="enum in edu.wpi.first.wpilibj">Ultrasonic.Unit</a>&nbsp;units)</pre>
<div class="block">Create an instance of the Ultrasonic Sensor. This is designed to supchannel the Daventech SRF04
 and Vex ultrasonic sensors.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>pingChannel</code> - The digital output channel that sends the pulse to initiate the sensor
                    sending the ping.</dd>
<dd><code>echoChannel</code> - The digital input channel that receives the echo. The length of time that
                    the echo is high represents the round trip time of the ping, and the
                    distance.</dd>
<dd><code>units</code> - The units returned in either kInches or kMilliMeters</dd>
</dl>
</li>
</ul>
<a name="Ultrasonic-int-int-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>Ultrasonic</h4>
<pre>public&nbsp;Ultrasonic(int&nbsp;pingChannel,
                  int&nbsp;echoChannel)</pre>
<div class="block">Create an instance of the Ultrasonic Sensor. This is designed to supchannel the Daventech SRF04
 and Vex ultrasonic sensors. Default unit is inches.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>pingChannel</code> - The digital output channel that sends the pulse to initiate the sensor
                    sending the ping.</dd>
<dd><code>echoChannel</code> - The digital input channel that receives the echo. The length of time that
                    the echo is high represents the round trip time of the ping, and the
                    distance.</dd>
</dl>
</li>
</ul>
<a name="Ultrasonic-edu.wpi.first.wpilibj.DigitalOutput-edu.wpi.first.wpilibj.DigitalInput-edu.wpi.first.wpilibj.Ultrasonic.Unit-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>Ultrasonic</h4>
<pre>public&nbsp;Ultrasonic(<a href="../../../../edu/wpi/first/wpilibj/DigitalOutput.html" title="class in edu.wpi.first.wpilibj">DigitalOutput</a>&nbsp;pingChannel,
                  <a href="../../../../edu/wpi/first/wpilibj/DigitalInput.html" title="class in edu.wpi.first.wpilibj">DigitalInput</a>&nbsp;echoChannel,
                  <a href="../../../../edu/wpi/first/wpilibj/Ultrasonic.Unit.html" title="enum in edu.wpi.first.wpilibj">Ultrasonic.Unit</a>&nbsp;units)</pre>
<div class="block">Create an instance of an Ultrasonic Sensor from a DigitalInput for the echo channel and a
 DigitalOutput for the ping channel.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>pingChannel</code> - The digital output object that starts the sensor doing a ping. Requires a
                    10uS pulse to start.</dd>
<dd><code>echoChannel</code> - The digital input object that times the return pulse to determine the
                    range.</dd>
<dd><code>units</code> - The units returned in either kInches or kMilliMeters</dd>
</dl>
</li>
</ul>
<a name="Ultrasonic-edu.wpi.first.wpilibj.DigitalOutput-edu.wpi.first.wpilibj.DigitalInput-">
<!--   -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>Ultrasonic</h4>
<pre>public&nbsp;Ultrasonic(<a href="../../../../edu/wpi/first/wpilibj/DigitalOutput.html" title="class in edu.wpi.first.wpilibj">DigitalOutput</a>&nbsp;pingChannel,
                  <a href="../../../../edu/wpi/first/wpilibj/DigitalInput.html" title="class in edu.wpi.first.wpilibj">DigitalInput</a>&nbsp;echoChannel)</pre>
<div class="block">Create an instance of an Ultrasonic Sensor from a DigitalInput for the echo channel and a
 DigitalOutput for the ping channel. Default unit is inches.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>pingChannel</code> - The digital output object that starts the sensor doing a ping. Requires a
                    10uS pulse to start.</dd>
<dd><code>echoChannel</code> - The digital input object that times the return pulse to determine the
                    range.</dd>
</dl>
</li>
</ul>
</li>
</ul>
<!-- ============ METHOD DETAIL ========== -->
<ul class="blockList">
<li class="blockList"><a name="method.detail">
<!--   -->
</a>
<h3>Method Detail</h3>
<a name="free--">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>free</h4>
<pre>public&nbsp;void&nbsp;free()</pre>
<div class="block">Destructor for the ultrasonic sensor. Delete the instance of the ultrasonic sensor by freeing
 the allocated digital channels. If the system was in automatic mode (round robin), then it is
 stopped, then started again after this sensor is removed (provided this wasn't the last
 sensor).</div>
<dl>
<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
<dd><code><a href="../../../../edu/wpi/first/wpilibj/SensorBase.html#free--">free</a></code>&nbsp;in class&nbsp;<code><a href="../../../../edu/wpi/first/wpilibj/SensorBase.html" title="class in edu.wpi.first.wpilibj">SensorBase</a></code></dd>
</dl>
</li>
</ul>
<a name="setAutomaticMode-boolean-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setAutomaticMode</h4>
<pre>public&nbsp;void&nbsp;setAutomaticMode(boolean&nbsp;enabling)</pre>
<div class="block">Turn Automatic mode on/off. When in Automatic mode, all sensors will fire in round robin,
 waiting a set time between each sensor.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>enabling</code> - Set to true if round robin scheduling should start for all the ultrasonic
                 sensors. This scheduling method assures that the sensors are non-interfering
                 because no two sensors fire at the same time. If another scheduling algorithm
                 is preferred, it can be implemented by pinging the sensors manually and waiting
                 for the results to come back.</dd>
</dl>
</li>
</ul>
<a name="ping--">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>ping</h4>
<pre>public&nbsp;void&nbsp;ping()</pre>
<div class="block">Single ping to ultrasonic sensor. Send out a single ping to the ultrasonic sensor. This only
 works if automatic (round robin) mode is disabled. A single ping is sent out, and the counter
 should count the semi-period when it comes in. The counter is reset to make the current value
 invalid.</div>
</li>
</ul>
<a name="isRangeValid--">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>isRangeValid</h4>
<pre>public&nbsp;boolean&nbsp;isRangeValid()</pre>
<div class="block">Check if there is a valid range measurement. The ranges are accumulated in a counter that will
 increment on each edge of the echo (return) signal. If the count is not at least 2, then the
 range has not yet been measured, and is invalid.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>true if the range is valid</dd>
</dl>
</li>
</ul>
<a name="getRangeInches--">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getRangeInches</h4>
<pre>public&nbsp;double&nbsp;getRangeInches()</pre>
<div class="block">Get the range in inches from the ultrasonic sensor. If there is no valid value yet, i.e. at
 least one measurement hasn't completed, then return 0.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>double Range in inches of the target returned from the ultrasonic sensor.</dd>
</dl>
</li>
</ul>
<a name="getRangeMM--">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getRangeMM</h4>
<pre>public&nbsp;double&nbsp;getRangeMM()</pre>
<div class="block">Get the range in millimeters from the ultrasonic sensor. If there is no valid value yet, i.e.
 at least one measurement hasn't completed, then return 0.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>double Range in millimeters of the target returned by the ultrasonic sensor.</dd>
</dl>
</li>
</ul>
<a name="setPIDSourceType-edu.wpi.first.wpilibj.PIDSourceType-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setPIDSourceType</h4>
<pre>public&nbsp;void&nbsp;setPIDSourceType(<a href="../../../../edu/wpi/first/wpilibj/PIDSourceType.html" title="enum in edu.wpi.first.wpilibj">PIDSourceType</a>&nbsp;pidSource)</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../edu/wpi/first/wpilibj/PIDSource.html#setPIDSourceType-edu.wpi.first.wpilibj.PIDSourceType-">PIDSource</a></code></span></div>
<div class="block">Set which parameter of the device you are using as a process control variable.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../edu/wpi/first/wpilibj/PIDSource.html#setPIDSourceType-edu.wpi.first.wpilibj.PIDSourceType-">setPIDSourceType</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../edu/wpi/first/wpilibj/PIDSource.html" title="interface in edu.wpi.first.wpilibj">PIDSource</a></code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>pidSource</code> - An enum to select the parameter.</dd>
</dl>
</li>
</ul>
<a name="getPIDSourceType--">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getPIDSourceType</h4>
<pre>public&nbsp;<a href="../../../../edu/wpi/first/wpilibj/PIDSourceType.html" title="enum in edu.wpi.first.wpilibj">PIDSourceType</a>&nbsp;getPIDSourceType()</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../edu/wpi/first/wpilibj/PIDSource.html#getPIDSourceType--">PIDSource</a></code></span></div>
<div class="block">Get which parameter of the device you are using as a process control variable.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../edu/wpi/first/wpilibj/PIDSource.html#getPIDSourceType--">getPIDSourceType</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../edu/wpi/first/wpilibj/PIDSource.html" title="interface in edu.wpi.first.wpilibj">PIDSource</a></code></dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the currently selected PID source parameter</dd>
</dl>
</li>
</ul>
<a name="pidGet--">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>pidGet</h4>
<pre>public&nbsp;double&nbsp;pidGet()</pre>
<div class="block">Get the range in the current DistanceUnit for the PIDSource base object.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../edu/wpi/first/wpilibj/PIDSource.html#pidGet--">pidGet</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../edu/wpi/first/wpilibj/PIDSource.html" title="interface in edu.wpi.first.wpilibj">PIDSource</a></code></dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>The range in DistanceUnit</dd>
</dl>
</li>
</ul>
<a name="setDistanceUnits-edu.wpi.first.wpilibj.Ultrasonic.Unit-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setDistanceUnits</h4>
<pre>public&nbsp;void&nbsp;setDistanceUnits(<a href="../../../../edu/wpi/first/wpilibj/Ultrasonic.Unit.html" title="enum in edu.wpi.first.wpilibj">Ultrasonic.Unit</a>&nbsp;units)</pre>
<div class="block">Set the current DistanceUnit that should be used for the PIDSource base object.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>units</code> - The DistanceUnit that should be used.</dd>
</dl>
</li>
</ul>
<a name="getDistanceUnits--">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getDistanceUnits</h4>
<pre>public&nbsp;<a href="../../../../edu/wpi/first/wpilibj/Ultrasonic.Unit.html" title="enum in edu.wpi.first.wpilibj">Ultrasonic.Unit</a>&nbsp;getDistanceUnits()</pre>
<div class="block">Get the current DistanceUnit that is used for the PIDSource base object.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>The type of DistanceUnit that is being used.</dd>
</dl>
</li>
</ul>
<a name="isEnabled--">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>isEnabled</h4>
<pre>public&nbsp;boolean&nbsp;isEnabled()</pre>
<div class="block">Is the ultrasonic enabled.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>true if the ultrasonic is enabled</dd>
</dl>
</li>
</ul>
<a name="setEnabled-boolean-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setEnabled</h4>
<pre>public&nbsp;void&nbsp;setEnabled(boolean&nbsp;enable)</pre>
<div class="block">Set if the ultrasonic is enabled.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>enable</code> - set to true to enable the ultrasonic</dd>
</dl>
</li>
</ul>
<a name="getSmartDashboardType--">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getSmartDashboardType</h4>
<pre>public&nbsp;java.lang.String&nbsp;getSmartDashboardType()</pre>
<div class="block">Live Window code, only does anything if live window is activated.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../edu/wpi/first/wpilibj/Sendable.html#getSmartDashboardType--">getSmartDashboardType</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../edu/wpi/first/wpilibj/Sendable.html" title="interface in edu.wpi.first.wpilibj">Sendable</a></code></dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>The type of this <a href="../../../../edu/wpi/first/wpilibj/Sendable.html" title="interface in edu.wpi.first.wpilibj"><code>Sendable</code></a>.</dd>
</dl>
</li>
</ul>
<a name="initTable-edu.wpi.first.networktables.NetworkTable-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>initTable</h4>
<pre>public&nbsp;void&nbsp;initTable(<a href="../../../../edu/wpi/first/networktables/NetworkTable.html" title="class in edu.wpi.first.networktables">NetworkTable</a>&nbsp;subtable)</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../edu/wpi/first/wpilibj/Sendable.html#initTable-edu.wpi.first.networktables.NetworkTable-">Sendable</a></code></span></div>
<div class="block">Initializes a table for this <a href="../../../../edu/wpi/first/wpilibj/Sendable.html" title="interface in edu.wpi.first.wpilibj"><code>Sendable</code></a> object.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../edu/wpi/first/wpilibj/Sendable.html#initTable-edu.wpi.first.networktables.NetworkTable-">initTable</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../edu/wpi/first/wpilibj/Sendable.html" title="interface in edu.wpi.first.wpilibj">Sendable</a></code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>subtable</code> - The table to put the values in.</dd>
</dl>
</li>
</ul>
<a name="updateTable--">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>updateTable</h4>
<pre>public&nbsp;void&nbsp;updateTable()</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../edu/wpi/first/wpilibj/livewindow/LiveWindowSendable.html#updateTable--">LiveWindowSendable</a></code></span></div>
<div class="block">Update the table for this sendable object with the latest values.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../edu/wpi/first/wpilibj/livewindow/LiveWindowSendable.html#updateTable--">updateTable</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../edu/wpi/first/wpilibj/livewindow/LiveWindowSendable.html" title="interface in edu.wpi.first.wpilibj.livewindow">LiveWindowSendable</a></code></dd>
</dl>
</li>
</ul>
<a name="startLiveWindowMode--">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>startLiveWindowMode</h4>
<pre>public&nbsp;void&nbsp;startLiveWindowMode()</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../edu/wpi/first/wpilibj/livewindow/LiveWindowSendable.html#startLiveWindowMode--">LiveWindowSendable</a></code></span></div>
<div class="block">Start having this sendable object automatically respond to value changes reflect the value on
 the table.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../edu/wpi/first/wpilibj/livewindow/LiveWindowSendable.html#startLiveWindowMode--">startLiveWindowMode</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../edu/wpi/first/wpilibj/livewindow/LiveWindowSendable.html" title="interface in edu.wpi.first.wpilibj.livewindow">LiveWindowSendable</a></code></dd>
</dl>
</li>
</ul>
<a name="stopLiveWindowMode--">
<!--   -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>stopLiveWindowMode</h4>
<pre>public&nbsp;void&nbsp;stopLiveWindowMode()</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../edu/wpi/first/wpilibj/livewindow/LiveWindowSendable.html#stopLiveWindowMode--">LiveWindowSendable</a></code></span></div>
<div class="block">Stop having this sendable object automatically respond to value changes.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../edu/wpi/first/wpilibj/livewindow/LiveWindowSendable.html#stopLiveWindowMode--">stopLiveWindowMode</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../edu/wpi/first/wpilibj/livewindow/LiveWindowSendable.html" title="interface in edu.wpi.first.wpilibj.livewindow">LiveWindowSendable</a></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="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><a href="../../../../edu/wpi/first/wpilibj/Timer.StaticInterface.html" title="interface in edu.wpi.first.wpilibj"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
<li><a href="../../../../edu/wpi/first/wpilibj/Ultrasonic.Unit.html" title="enum in edu.wpi.first.wpilibj"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../../index.html?edu/wpi/first/wpilibj/Ultrasonic.html" target="_top">Frames</a></li>
<li><a href="Ultrasonic.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><a href="#nested.class.summary">Nested</a>&nbsp;|&nbsp;</li>
<li><a href="#field.summary">Field</a>&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><a href="#field.detail">Field</a>&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 ======= -->
</body>
</html>