Initial commit
This commit is contained in:
527
IOIOLib/doc/ioio/lib/api/PulseInput.html
Normal file
527
IOIOLib/doc/ioio/lib/api/PulseInput.html
Normal file
@@ -0,0 +1,527 @@
|
||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
|
||||
<!--NewPage-->
|
||||
<HTML>
|
||||
<HEAD>
|
||||
<!-- Generated by javadoc (build 1.6.0_29) on Mon Nov 28 00:50:35 PST 2011 -->
|
||||
<TITLE>
|
||||
PulseInput
|
||||
</TITLE>
|
||||
|
||||
<META NAME="date" CONTENT="2011-11-28">
|
||||
|
||||
<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../stylesheet.css" TITLE="Style">
|
||||
|
||||
<SCRIPT type="text/javascript">
|
||||
function windowTitle()
|
||||
{
|
||||
if (location.href.indexOf('is-external=true') == -1) {
|
||||
parent.document.title="PulseInput";
|
||||
}
|
||||
}
|
||||
</SCRIPT>
|
||||
<NOSCRIPT>
|
||||
</NOSCRIPT>
|
||||
|
||||
</HEAD>
|
||||
|
||||
<BODY BGCOLOR="white" onload="windowTitle();">
|
||||
<HR>
|
||||
|
||||
|
||||
<!-- ========= START OF TOP NAVBAR ======= -->
|
||||
<A NAME="navbar_top"><!-- --></A>
|
||||
<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
|
||||
<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
|
||||
<TR>
|
||||
<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
|
||||
<A NAME="navbar_top_firstrow"><!-- --></A>
|
||||
<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
|
||||
<TR ALIGN="center" VALIGN="top">
|
||||
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
|
||||
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
|
||||
<TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
|
||||
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="class-use/PulseInput.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A> </TD>
|
||||
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
|
||||
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
|
||||
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
|
||||
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
|
||||
</TR>
|
||||
</TABLE>
|
||||
</TD>
|
||||
<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
|
||||
</EM>
|
||||
</TD>
|
||||
</TR>
|
||||
|
||||
<TR>
|
||||
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
|
||||
<A HREF="../../../ioio/lib/api/IOIOFactory.html" title="class in ioio.lib.api"><B>PREV CLASS</B></A>
|
||||
<A HREF="../../../ioio/lib/api/PulseInput.ClockRate.html" title="enum in ioio.lib.api"><B>NEXT CLASS</B></A></FONT></TD>
|
||||
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
|
||||
<A HREF="../../../index.html?ioio/lib/api/PulseInput.html" target="_top"><B>FRAMES</B></A>
|
||||
<A HREF="PulseInput.html" target="_top"><B>NO FRAMES</B></A>
|
||||
<SCRIPT type="text/javascript">
|
||||
<!--
|
||||
if(window==top) {
|
||||
document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');
|
||||
}
|
||||
//-->
|
||||
</SCRIPT>
|
||||
<NOSCRIPT>
|
||||
<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>
|
||||
</NOSCRIPT>
|
||||
|
||||
|
||||
</FONT></TD>
|
||||
</TR>
|
||||
<TR>
|
||||
<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
|
||||
SUMMARY: <A HREF="#nested_class_summary">NESTED</A> | FIELD | CONSTR | <A HREF="#method_summary">METHOD</A></FONT></TD>
|
||||
<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
|
||||
DETAIL: FIELD | CONSTR | <A HREF="#method_detail">METHOD</A></FONT></TD>
|
||||
</TR>
|
||||
</TABLE>
|
||||
<A NAME="skip-navbar_top"></A>
|
||||
<!-- ========= END OF TOP NAVBAR ========= -->
|
||||
|
||||
<HR>
|
||||
<!-- ======== START OF CLASS DATA ======== -->
|
||||
<H2>
|
||||
<FONT SIZE="-1">
|
||||
ioio.lib.api</FONT>
|
||||
<BR>
|
||||
Interface PulseInput</H2>
|
||||
<DL>
|
||||
<DT><B>All Superinterfaces:</B> <DD><A HREF="../../../ioio/lib/api/Closeable.html" title="interface in ioio.lib.api">Closeable</A></DD>
|
||||
</DL>
|
||||
<HR>
|
||||
<DL>
|
||||
<DT><PRE>public interface <B>PulseInput</B><DT>extends <A HREF="../../../ioio/lib/api/Closeable.html" title="interface in ioio.lib.api">Closeable</A></DL>
|
||||
</PRE>
|
||||
|
||||
<P>
|
||||
An interface for pulse width and frequency measurements of digital signals.
|
||||
<p>
|
||||
PulseInput (commonly known as "input capture") is a versatile module which
|
||||
enables extraction of various timing information from a digital signal. There
|
||||
are two main use cases: pulse duration measurement and frequency measurement.
|
||||
In pulse width measurement we measure the duration of a positive ("high") or
|
||||
negative ("low") pulse, i.e. the elapsed time between a rise and a fall or
|
||||
vice versa. This mode is useful, for example, for decoding a PWM signal or
|
||||
measuring the delay of a sonar return signal. In frequency measurement we
|
||||
measure the duration between a rising edge to the following rising edge. This
|
||||
gives us a momentary reading of a signal's frequency or period. This is
|
||||
commonly used, for example, in conjunction with an optical or magnetic sensor
|
||||
for measuring a turning shaft's speed.
|
||||
<p>
|
||||
<A HREF="../../../ioio/lib/api/PulseInput.html" title="interface in ioio.lib.api"><CODE>PulseInput</CODE></A> instances are obtained by calling
|
||||
<CODE>IOIO#openPulseInput(ioio.lib.api.DigitalInput.Spec, ClockRate, PulseMode, boolean)</CODE>
|
||||
. When created, some important configuration decisions have to be made: the
|
||||
precision (single or double), the clock rate and the mode of operation. Modes
|
||||
are straightforward: <A HREF="../../../ioio/lib/api/PulseInput.PulseMode.html#POSITIVE"><CODE>PulseInput.PulseMode.POSITIVE</CODE></A> is used for measuring a
|
||||
positive pulse, <A HREF="../../../ioio/lib/api/PulseInput.PulseMode.html#NEGATIVE"><CODE>PulseInput.PulseMode.NEGATIVE</CODE></A> a negative pulse, and
|
||||
<A HREF="../../../ioio/lib/api/PulseInput.PulseMode.html#FREQ"><CODE>PulseInput.PulseMode.FREQ</CODE></A> / <A HREF="../../../ioio/lib/api/PulseInput.PulseMode.html#FREQ_SCALE_4"><CODE>PulseInput.PulseMode.FREQ_SCALE_4</CODE></A> /
|
||||
<A HREF="../../../ioio/lib/api/PulseInput.PulseMode.html#FREQ_SCALE_16"><CODE>PulseInput.PulseMode.FREQ_SCALE_16</CODE></A> are used for measuring frequency. The
|
||||
difference between the three scaling modes is that without scaling, the
|
||||
frequency is determined by measurement of a single
|
||||
(rising-edge-to-rising-edge) period. In x4 scaling, 4 consecutive periods are
|
||||
measured and the time is divided by 4, providing some smoothing as well as
|
||||
better resolution. Similarly for x16 scaling. Note that scaling affects the
|
||||
range of signals to be measured, as discussed below.
|
||||
<p>
|
||||
The choice of single vs. double-precision is important to understand: IOIO
|
||||
internally uses either 16-bit counters or 32-bit counters for the timing. 16-
|
||||
counters force us to either limit the maximum duration (and the minimum
|
||||
frequency) or compromise accuracy as compared to 32-bit counters. However, if
|
||||
you need many concurrent pulse measurements in your application, you may have
|
||||
no choice but to use single-precision.
|
||||
<p>
|
||||
The clock rate selection is important (and even critical when working in
|
||||
single-precision) and requires the user to make some assumptions about the
|
||||
nature of the measured signal. The higher the clock rate, the more precise
|
||||
the measurement, but the longest pulse that can be measured decreases (or
|
||||
lowest frequency that can be measured increases). Using the scaling option
|
||||
when operating in frequency mode also affects these sizes. combinations. It
|
||||
is always recommended to choose the most precise mode, which exceeds the
|
||||
maximum expected pulse width (or inverse frequency). If a pulse is received
|
||||
whom duration exceeds the longest allowed pulse, it will be "folded" into the
|
||||
valid range and product garbage readings.
|
||||
<p>
|
||||
The following table (sorted by longest pulse) summarizes all possible clock /
|
||||
mode combinations. The table applies for <b>single-precision</b> operation.
|
||||
For double-precision, simply multiply the longest pulse by 65536 and divide
|
||||
the lowest frequency by the same amount. Interestingly, the number written in
|
||||
[ms] units in the longest pulse column, roughly corresponds to the same
|
||||
number in minutes when working with double precsion, since 1[min] =
|
||||
60000[ms].
|
||||
<table border="1">
|
||||
<tr>
|
||||
<th>Clock</th>
|
||||
<th>Scaling</th>
|
||||
<th>Resolution</th>
|
||||
<th>Longest pulse</th>
|
||||
<th>Lowest frequency</th>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>62.5KHz</td>
|
||||
<td>1</td>
|
||||
<td>16us</td>
|
||||
<td>1.048s</td>
|
||||
<td>0.95Hz</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>250KHz</td>
|
||||
<td>1</td>
|
||||
<td>4us</td>
|
||||
<td>262.1ms</td>
|
||||
<td>3.81Hz</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>62.5KHz</td>
|
||||
<td>4</td>
|
||||
<td>4us</td>
|
||||
<td>262.1ms</td>
|
||||
<td>3.81Hz</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>250KHz</td>
|
||||
<td>4</td>
|
||||
<td>1us</td>
|
||||
<td>65.54ms</td>
|
||||
<td>15.26Hz</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>62.5KHz</td>
|
||||
<td>16</td>
|
||||
<td>1us</td>
|
||||
<td>65.54ms</td>
|
||||
<td>15.26Hz</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>2MHz</td>
|
||||
<td>1</td>
|
||||
<td>500ns</td>
|
||||
<td>32.77ms</td>
|
||||
<td>30.52Hz</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>250KHz</td>
|
||||
<td>16</td>
|
||||
<td>250us</td>
|
||||
<td>16.38ms</td>
|
||||
<td>61.0Hz</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>2MHz</td>
|
||||
<td>4</td>
|
||||
<td>125ns</td>
|
||||
<td>8.192ms</td>
|
||||
<td>122.1Hz</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>16MHz</td>
|
||||
<td>1</td>
|
||||
<td>62.5ns</td>
|
||||
<td>4.096ms</td>
|
||||
<td>244.1Hz</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>2MHz</td>
|
||||
<td>16</td>
|
||||
<td>31.25ns</td>
|
||||
<td>2.048ms</td>
|
||||
<td>488.3Hz</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>16MHz</td>
|
||||
<td>4</td>
|
||||
<td>15.6ns</td>
|
||||
<td>1.024ms</td>
|
||||
<td>976.6Hz</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>16MHz</td>
|
||||
<td>16</td>
|
||||
<td>3.9ns</td>
|
||||
<td>256us</td>
|
||||
<td>3.906KHz</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<p>
|
||||
In some applications it is desirable to measure every incoming pulse rather
|
||||
than repetitively query the result of the last measurement. For that purpose
|
||||
the <A HREF="../../../ioio/lib/api/PulseInput.html#waitPulseGetDuration()"><CODE>waitPulseGetDuration()</CODE></A> method exists: every incoming pulse width
|
||||
is pushed into a small internal queue from which it can be read. The client
|
||||
waits for data to be available, then reads it and data that comes in in the
|
||||
meanwhile is stored. The queue has limited size, so it is important to read
|
||||
quickly if no pulses are to be lost. Note that once a pulse is detected, the
|
||||
next one must have its leading edge at least 5ms after the leading edge of
|
||||
the current one, or else it will be skipped. This throttling has been
|
||||
introduced on purpose, in order to prevent saturation the communication
|
||||
channel when the input signal is very high frequency. Effectively, this means
|
||||
that the maximum sample rate is 200Hz. This rate has been chosen as it
|
||||
enables measure R/C servo signals without missing pulses.
|
||||
|
||||
<p>
|
||||
Typical usage (servo signal pulse width measurement):
|
||||
|
||||
<pre>
|
||||
<code>// Open pulse input at 16MHz, double-precision
|
||||
PulseInput in = ioio.openPulseInput(3, PulseMode.POSITIVE);
|
||||
...
|
||||
float widthSec = in.getDuration();
|
||||
OR:
|
||||
float widthSec = in.waitPulseGetDuration();
|
||||
...
|
||||
in.close(); // pin 3 can now be used for something else.
|
||||
</code>
|
||||
</pre>
|
||||
|
||||
<p>
|
||||
Typical usage (frequency measurement):
|
||||
|
||||
<pre>
|
||||
<code>// Signal is known to be slightly over 150Hz. Single precision can be used.
|
||||
PulseInput in = ioio.openPulseInput(3,
|
||||
ClockRate.RATE_2MHz,
|
||||
PulseMode.FREQ_SCALE_4,
|
||||
false);
|
||||
...
|
||||
float freqHz = in.getFrequency();
|
||||
...
|
||||
in.close(); // pin 3 can now be used for something else.
|
||||
</code>
|
||||
</pre>
|
||||
<P>
|
||||
|
||||
<P>
|
||||
<HR>
|
||||
|
||||
<P>
|
||||
<!-- ======== NESTED CLASS SUMMARY ======== -->
|
||||
|
||||
<A NAME="nested_class_summary"><!-- --></A>
|
||||
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
|
||||
<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
|
||||
<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
|
||||
<B>Nested Class Summary</B></FONT></TH>
|
||||
</TR>
|
||||
<TR BGCOLOR="white" CLASS="TableRowColor">
|
||||
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
|
||||
<CODE>static class</CODE></FONT></TD>
|
||||
<TD><CODE><B><A HREF="../../../ioio/lib/api/PulseInput.ClockRate.html" title="enum in ioio.lib.api">PulseInput.ClockRate</A></B></CODE>
|
||||
|
||||
<BR>
|
||||
Suported clock rate enum.</TD>
|
||||
</TR>
|
||||
<TR BGCOLOR="white" CLASS="TableRowColor">
|
||||
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
|
||||
<CODE>static class</CODE></FONT></TD>
|
||||
<TD><CODE><B><A HREF="../../../ioio/lib/api/PulseInput.PulseMode.html" title="enum in ioio.lib.api">PulseInput.PulseMode</A></B></CODE>
|
||||
|
||||
<BR>
|
||||
An enumeration for describing the module's operating mode.</TD>
|
||||
</TR>
|
||||
</TABLE>
|
||||
|
||||
<!-- ========== METHOD SUMMARY =========== -->
|
||||
|
||||
<A NAME="method_summary"><!-- --></A>
|
||||
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
|
||||
<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
|
||||
<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
|
||||
<B>Method Summary</B></FONT></TH>
|
||||
</TR>
|
||||
<TR BGCOLOR="white" CLASS="TableRowColor">
|
||||
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
|
||||
<CODE> float</CODE></FONT></TD>
|
||||
<TD><CODE><B><A HREF="../../../ioio/lib/api/PulseInput.html#getDuration()">getDuration</A></B>()</CODE>
|
||||
|
||||
<BR>
|
||||
Gets the pulse duration in case of pulse measurement mode, or the period
|
||||
in case of frequency mode.</TD>
|
||||
</TR>
|
||||
<TR BGCOLOR="white" CLASS="TableRowColor">
|
||||
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
|
||||
<CODE> float</CODE></FONT></TD>
|
||||
<TD><CODE><B><A HREF="../../../ioio/lib/api/PulseInput.html#getFrequency()">getFrequency</A></B>()</CODE>
|
||||
|
||||
<BR>
|
||||
Gets the momentary frequency of the measured signal.</TD>
|
||||
</TR>
|
||||
<TR BGCOLOR="white" CLASS="TableRowColor">
|
||||
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
|
||||
<CODE> float</CODE></FONT></TD>
|
||||
<TD><CODE><B><A HREF="../../../ioio/lib/api/PulseInput.html#waitPulseGetDuration()">waitPulseGetDuration</A></B>()</CODE>
|
||||
|
||||
<BR>
|
||||
Reads a single measurement from the queue.</TD>
|
||||
</TR>
|
||||
</TABLE>
|
||||
<A NAME="methods_inherited_from_class_ioio.lib.api.Closeable"><!-- --></A>
|
||||
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
|
||||
<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
|
||||
<TH ALIGN="left"><B>Methods inherited from interface ioio.lib.api.<A HREF="../../../ioio/lib/api/Closeable.html" title="interface in ioio.lib.api">Closeable</A></B></TH>
|
||||
</TR>
|
||||
<TR BGCOLOR="white" CLASS="TableRowColor">
|
||||
<TD><CODE><A HREF="../../../ioio/lib/api/Closeable.html#close()">close</A></CODE></TD>
|
||||
</TR>
|
||||
</TABLE>
|
||||
|
||||
<P>
|
||||
|
||||
<!-- ============ METHOD DETAIL ========== -->
|
||||
|
||||
<A NAME="method_detail"><!-- --></A>
|
||||
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
|
||||
<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
|
||||
<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
|
||||
<B>Method Detail</B></FONT></TH>
|
||||
</TR>
|
||||
</TABLE>
|
||||
|
||||
<A NAME="getDuration()"><!-- --></A><H3>
|
||||
getDuration</H3>
|
||||
<PRE>
|
||||
float <B>getDuration</B>()
|
||||
throws java.lang.InterruptedException,
|
||||
<A HREF="../../../ioio/lib/api/exception/ConnectionLostException.html" title="class in ioio.lib.api.exception">ConnectionLostException</A></PRE>
|
||||
<DL>
|
||||
<DD>Gets the pulse duration in case of pulse measurement mode, or the period
|
||||
in case of frequency mode. When scaling is used, this is compensated for
|
||||
here, so the duration of a single cycle will be returned.
|
||||
<p>
|
||||
The first call to this method may block shortly until the first data
|
||||
update arrives. The client may interrupt the calling thread.
|
||||
<P>
|
||||
<DD><DL>
|
||||
</DL>
|
||||
</DD>
|
||||
<DD><DL>
|
||||
|
||||
<DT><B>Returns:</B><DD>The duration, in seconds.
|
||||
<DT><B>Throws:</B>
|
||||
<DD><CODE>java.lang.InterruptedException</CODE> - The calling thread has been interrupted.
|
||||
<DD><CODE><A HREF="../../../ioio/lib/api/exception/ConnectionLostException.html" title="class in ioio.lib.api.exception">ConnectionLostException</A></CODE> - The connection with the IOIO has been lost.</DL>
|
||||
</DD>
|
||||
</DL>
|
||||
<HR>
|
||||
|
||||
<A NAME="waitPulseGetDuration()"><!-- --></A><H3>
|
||||
waitPulseGetDuration</H3>
|
||||
<PRE>
|
||||
float <B>waitPulseGetDuration</B>()
|
||||
throws java.lang.InterruptedException,
|
||||
<A HREF="../../../ioio/lib/api/exception/ConnectionLostException.html" title="class in ioio.lib.api.exception">ConnectionLostException</A></PRE>
|
||||
<DL>
|
||||
<DD>Reads a single measurement from the queue. If the queue is empty, will
|
||||
block until more data arrives. The calling thread may be interrupted in
|
||||
order to abort the call. See interface documentation for further
|
||||
explanation regarding the read queue.
|
||||
<p>
|
||||
This method may not be used if the interface has was opened in frequency
|
||||
mode.
|
||||
<P>
|
||||
<DD><DL>
|
||||
</DL>
|
||||
</DD>
|
||||
<DD><DL>
|
||||
|
||||
<DT><B>Returns:</B><DD>The duration, in seconds.
|
||||
<DT><B>Throws:</B>
|
||||
<DD><CODE>java.lang.InterruptedException</CODE> - The calling thread has been interrupted.
|
||||
<DD><CODE><A HREF="../../../ioio/lib/api/exception/ConnectionLostException.html" title="class in ioio.lib.api.exception">ConnectionLostException</A></CODE> - The connection with the IOIO has been lost.</DL>
|
||||
</DD>
|
||||
</DL>
|
||||
<HR>
|
||||
|
||||
<A NAME="getFrequency()"><!-- --></A><H3>
|
||||
getFrequency</H3>
|
||||
<PRE>
|
||||
float <B>getFrequency</B>()
|
||||
throws java.lang.InterruptedException,
|
||||
<A HREF="../../../ioio/lib/api/exception/ConnectionLostException.html" title="class in ioio.lib.api.exception">ConnectionLostException</A></PRE>
|
||||
<DL>
|
||||
<DD>Gets the momentary frequency of the measured signal. When scaling is
|
||||
used, this is compensated for here, so the true frequency of the signal
|
||||
will be returned.
|
||||
<p>
|
||||
The first call to this method may block shortly until the first data
|
||||
update arrives. The client may interrupt the calling thread.
|
||||
<P>
|
||||
<DD><DL>
|
||||
</DL>
|
||||
</DD>
|
||||
<DD><DL>
|
||||
|
||||
<DT><B>Returns:</B><DD>The frequency, in Hz.
|
||||
<DT><B>Throws:</B>
|
||||
<DD><CODE>java.lang.InterruptedException</CODE> - The calling thread has been interrupted.
|
||||
<DD><CODE><A HREF="../../../ioio/lib/api/exception/ConnectionLostException.html" title="class in ioio.lib.api.exception">ConnectionLostException</A></CODE> - The connection with the IOIO has been lost.</DL>
|
||||
</DD>
|
||||
</DL>
|
||||
<!-- ========= END OF CLASS DATA ========= -->
|
||||
<HR>
|
||||
|
||||
|
||||
<!-- ======= START OF BOTTOM NAVBAR ====== -->
|
||||
<A NAME="navbar_bottom"><!-- --></A>
|
||||
<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
|
||||
<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
|
||||
<TR>
|
||||
<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
|
||||
<A NAME="navbar_bottom_firstrow"><!-- --></A>
|
||||
<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
|
||||
<TR ALIGN="center" VALIGN="top">
|
||||
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
|
||||
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
|
||||
<TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
|
||||
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="class-use/PulseInput.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A> </TD>
|
||||
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
|
||||
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
|
||||
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
|
||||
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
|
||||
</TR>
|
||||
</TABLE>
|
||||
</TD>
|
||||
<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
|
||||
</EM>
|
||||
</TD>
|
||||
</TR>
|
||||
|
||||
<TR>
|
||||
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
|
||||
<A HREF="../../../ioio/lib/api/IOIOFactory.html" title="class in ioio.lib.api"><B>PREV CLASS</B></A>
|
||||
<A HREF="../../../ioio/lib/api/PulseInput.ClockRate.html" title="enum in ioio.lib.api"><B>NEXT CLASS</B></A></FONT></TD>
|
||||
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
|
||||
<A HREF="../../../index.html?ioio/lib/api/PulseInput.html" target="_top"><B>FRAMES</B></A>
|
||||
<A HREF="PulseInput.html" target="_top"><B>NO FRAMES</B></A>
|
||||
<SCRIPT type="text/javascript">
|
||||
<!--
|
||||
if(window==top) {
|
||||
document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');
|
||||
}
|
||||
//-->
|
||||
</SCRIPT>
|
||||
<NOSCRIPT>
|
||||
<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>
|
||||
</NOSCRIPT>
|
||||
|
||||
|
||||
</FONT></TD>
|
||||
</TR>
|
||||
<TR>
|
||||
<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
|
||||
SUMMARY: <A HREF="#nested_class_summary">NESTED</A> | FIELD | CONSTR | <A HREF="#method_summary">METHOD</A></FONT></TD>
|
||||
<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
|
||||
DETAIL: FIELD | CONSTR | <A HREF="#method_detail">METHOD</A></FONT></TD>
|
||||
</TR>
|
||||
</TABLE>
|
||||
<A NAME="skip-navbar_bottom"></A>
|
||||
<!-- ======== END OF BOTTOM NAVBAR ======= -->
|
||||
|
||||
<HR>
|
||||
|
||||
</BODY>
|
||||
</HTML>
|
||||
Reference in New Issue
Block a user