Files
YAGSL/docs/swervelib/motors/SwerveMotor.html
2023-02-13 17:21:24 -06:00

737 lines
29 KiB
HTML

<!DOCTYPE HTML>
<!-- NewPage -->
<html lang="en">
<head>
<!-- Generated by javadoc (11.0.17) on Mon Feb 13 17:20:01 CST 2023 -->
<title>SwerveMotor</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta name="dc.created" content="2023-02-13">
<link rel="stylesheet" type="text/css" href="../../stylesheet.css" title="Style">
<link rel="stylesheet" type="text/css" href="../../jquery/jquery-ui.min.css" title="Style">
<link rel="stylesheet" type="text/css" href="../../jquery-ui.overrides.css" title="Style">
<script type="text/javascript" src="../../script.js"></script>
<script type="text/javascript" src="../../jquery/jszip/dist/jszip.min.js"></script>
<script type="text/javascript" src="../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
<!--[if IE]>
<script type="text/javascript" src="../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
<![endif]-->
<script type="text/javascript" src="../../jquery/jquery-3.6.0.min.js"></script>
<script type="text/javascript" src="../../jquery/jquery-ui.min.js"></script>
</head>
<body>
<script type="text/javascript"><!--
try {
if (location.href.indexOf('is-external=true') == -1) {
parent.document.title="SwerveMotor";
}
}
catch(err) {
}
//-->
var data = {"i0":6,"i1":6,"i2":6,"i3":6,"i4":6,"i5":6,"i6":6,"i7":6,"i8":6,"i9":6,"i10":6,"i11":6,"i12":6,"i13":6,"i14":6,"i15":6,"i16":6,"i17":6,"i18":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";
var pathtoroot = "../../";
var useModuleDirectories = true;
loadScripts(document, 'script');</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
<header role="banner">
<nav role="navigation">
<div class="fixedNav">
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="topNav"><a id="navbar.top">
<!-- -->
</a>
<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
<a id="navbar.top.firstrow">
<!-- -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../index.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-files/index-1.html">Index</a></li>
<li><a href="../../help-doc.html">Help</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList" id="allclasses_navbar_top">
<li><a href="../../allclasses.html">All&nbsp;Classes</a></li>
</ul>
<ul class="navListSearch">
<li><label for="search">SEARCH:</label>
<input type="text" id="search" value="search" disabled="disabled">
<input type="reset" id="reset" value="reset" disabled="disabled">
</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>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
</div>
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li>Nested&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 id="skip.navbar.top">
<!-- -->
</a></div>
<!-- ========= END OF TOP NAVBAR ========= -->
</div>
<div class="navPadding">&nbsp;</div>
<script type="text/javascript"><!--
$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
//-->
</script>
</nav>
</header>
<!-- ======== START OF CLASS DATA ======== -->
<main role="main">
<div class="header">
<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">swervelib.motors</a></div>
<h2 title="Class SwerveMotor" class="title">Class SwerveMotor</h2>
</div>
<div class="contentContainer">
<ul class="inheritance">
<li><a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">java.lang.Object</a></li>
<li>
<ul class="inheritance">
<li>swervelib.motors.SwerveMotor</li>
</ul>
</li>
</ul>
<div class="description">
<ul class="blockList">
<li class="blockList">
<dl>
<dt>Direct Known Subclasses:</dt>
<dd><code><a href="SparkMaxSwerve.html" title="class in swervelib.motors">SparkMaxSwerve</a></code>, <code><a href="TalonFXSwerve.html" title="class in swervelib.motors">TalonFXSwerve</a></code>, <code><a href="TalonSRXSwerve.html" title="class in swervelib.motors">TalonSRXSwerve</a></code></dd>
</dl>
<hr>
<pre>public abstract class <span class="typeNameLabel">SwerveMotor</span>
extends <a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a></pre>
<div class="block">Swerve motor abstraction which defines a standard interface for motors within a swerve module.</div>
</li>
</ul>
</div>
<div class="summary">
<ul class="blockList">
<li class="blockList">
<!-- =========== FIELD SUMMARY =========== -->
<section>
<ul class="blockList">
<li class="blockList"><a id="field.summary">
<!-- -->
</a>
<h3>Field Summary</h3>
<table class="memberSummary">
<caption><span>Fields</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colSecond" scope="col">Field</th>
<th class="colLast" scope="col">Description</th>
</tr>
<tr class="altColor">
<td class="colFirst"><code>protected boolean</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#isDriveMotor">isDriveMotor</a></span></code></th>
<td class="colLast">
<div class="block">Whether the swerve motor is a drive motor.</div>
</td>
</tr>
</table>
</li>
</ul>
</section>
<!-- ======== CONSTRUCTOR SUMMARY ======== -->
<section>
<ul class="blockList">
<li class="blockList"><a id="constructor.summary">
<!-- -->
</a>
<h3>Constructor Summary</h3>
<table class="memberSummary">
<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Constructor</th>
<th class="colLast" scope="col">Description</th>
</tr>
<tr class="altColor">
<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E()">SwerveMotor</a></span>()</code></th>
<td class="colLast">&nbsp;</td>
</tr>
</table>
</li>
</ul>
</section>
<!-- ========== METHOD SUMMARY =========== -->
<section>
<ul class="blockList">
<li class="blockList"><a id="method.summary">
<!-- -->
</a>
<h3>Method Summary</h3>
<table class="memberSummary">
<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="colSecond" scope="col">Method</th>
<th class="colLast" scope="col">Description</th>
</tr>
<tr id="i0" class="altColor">
<td class="colFirst"><code>abstract void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#burnFlash()">burnFlash</a></span>()</code></th>
<td class="colLast">
<div class="block">Save the configurations from flash to EEPROM.</div>
</td>
</tr>
<tr id="i1" class="rowColor">
<td class="colFirst"><code>abstract void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#clearStickyFaults()">clearStickyFaults</a></span>()</code></th>
<td class="colLast">
<div class="block">Clear the sticky faults on the motor controller.</div>
</td>
</tr>
<tr id="i2" class="altColor">
<td class="colFirst"><code>abstract void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#configureIntegratedEncoder(double)">configureIntegratedEncoder</a></span>&#8203;(double&nbsp;positionConversionFactor)</code></th>
<td class="colLast">
<div class="block">Configure the integrated encoder for the swerve module.</div>
</td>
</tr>
<tr id="i3" class="rowColor">
<td class="colFirst"><code>abstract void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#configurePIDF(swervelib.parser.PIDFConfig)">configurePIDF</a></span>&#8203;(<a href="../parser/PIDFConfig.html" title="class in swervelib.parser">PIDFConfig</a>&nbsp;config)</code></th>
<td class="colLast">
<div class="block">Configure the PIDF values for the closed loop controller.</div>
</td>
</tr>
<tr id="i4" class="altColor">
<td class="colFirst"><code>abstract void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#configurePIDWrapping(double,double)">configurePIDWrapping</a></span>&#8203;(double&nbsp;minInput,
double&nbsp;maxInput)</code></th>
<td class="colLast">
<div class="block">Configure the PID wrapping for the position closed loop controller.</div>
</td>
</tr>
<tr id="i5" class="rowColor">
<td class="colFirst"><code>abstract void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#factoryDefaults()">factoryDefaults</a></span>()</code></th>
<td class="colLast">
<div class="block">Configure the factory defaults.</div>
</td>
</tr>
<tr id="i6" class="altColor">
<td class="colFirst"><code>abstract <a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getMotor()">getMotor</a></span>()</code></th>
<td class="colLast">
<div class="block">Get the motor object from the module.</div>
</td>
</tr>
<tr id="i7" class="rowColor">
<td class="colFirst"><code>abstract double</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getPosition()">getPosition</a></span>()</code></th>
<td class="colLast">
<div class="block">Get the position of the integrated encoder.</div>
</td>
</tr>
<tr id="i8" class="altColor">
<td class="colFirst"><code>abstract double</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getVelocity()">getVelocity</a></span>()</code></th>
<td class="colLast">
<div class="block">Get the velocity of the integrated encoder.</div>
</td>
</tr>
<tr id="i9" class="rowColor">
<td class="colFirst"><code>abstract boolean</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#isAttachedAbsoluteEncoder()">isAttachedAbsoluteEncoder</a></span>()</code></th>
<td class="colLast">
<div class="block">Queries whether the absolute encoder is directly attached to the motor controller.</div>
</td>
</tr>
<tr id="i10" class="altColor">
<td class="colFirst"><code>abstract void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#set(double)">set</a></span>&#8203;(double&nbsp;percentOutput)</code></th>
<td class="colLast">
<div class="block">Set the percentage output.</div>
</td>
</tr>
<tr id="i11" class="rowColor">
<td class="colFirst"><code>abstract <a href="SwerveMotor.html" title="class in swervelib.motors">SwerveMotor</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setAbsoluteEncoder(swervelib.encoders.SwerveAbsoluteEncoder)">setAbsoluteEncoder</a></span>&#8203;(<a href="../encoders/SwerveAbsoluteEncoder.html" title="class in swervelib.encoders">SwerveAbsoluteEncoder</a>&nbsp;encoder)</code></th>
<td class="colLast">
<div class="block">Set the absolute encoder to be a compatible absolute encoder.</div>
</td>
</tr>
<tr id="i12" class="altColor">
<td class="colFirst"><code>abstract void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setCurrentLimit(int)">setCurrentLimit</a></span>&#8203;(int&nbsp;currentLimit)</code></th>
<td class="colLast">
<div class="block">Set the current limit for the swerve drive motor, remember this may cause jumping if used in conjunction with
voltage compensation.</div>
</td>
</tr>
<tr id="i13" class="rowColor">
<td class="colFirst"><code>abstract void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setInverted(boolean)">setInverted</a></span>&#8203;(boolean&nbsp;inverted)</code></th>
<td class="colLast">
<div class="block">Set the motor to be inverted.</div>
</td>
</tr>
<tr id="i14" class="altColor">
<td class="colFirst"><code>abstract void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setLoopRampRate(double)">setLoopRampRate</a></span>&#8203;(double&nbsp;rampRate)</code></th>
<td class="colLast">
<div class="block">Set the maximum rate the open/closed loop output can change by.</div>
</td>
</tr>
<tr id="i15" class="rowColor">
<td class="colFirst"><code>abstract void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setMotorBrake(boolean)">setMotorBrake</a></span>&#8203;(boolean&nbsp;isBrakeMode)</code></th>
<td class="colLast">
<div class="block">Set the idle mode.</div>
</td>
</tr>
<tr id="i16" class="altColor">
<td class="colFirst"><code>abstract void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setPosition(double)">setPosition</a></span>&#8203;(double&nbsp;position)</code></th>
<td class="colLast">
<div class="block">Set the integrated encoder position.</div>
</td>
</tr>
<tr id="i17" class="rowColor">
<td class="colFirst"><code>abstract void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setReference(double,double)">setReference</a></span>&#8203;(double&nbsp;setpoint,
double&nbsp;feedforward)</code></th>
<td class="colLast">
<div class="block">Set the closed loop PID controller reference point.</div>
</td>
</tr>
<tr id="i18" class="altColor">
<td class="colFirst"><code>abstract void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setVoltageCompensation(double)">setVoltageCompensation</a></span>&#8203;(double&nbsp;nominalVoltage)</code></th>
<td class="colLast">
<div class="block">Set the voltage compensation for the swerve module motor.</div>
</td>
</tr>
</table>
<ul class="blockList">
<li class="blockList"><a id="methods.inherited.from.class.java.lang.Object">
<!-- -->
</a>
<h3>Methods inherited from class&nbsp;java.lang.<a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a></h3>
<code><a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Object.html?is-external=true#clone()" title="class or interface in java.lang" class="externalLink">clone</a>, <a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Object.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang" class="externalLink">equals</a>, <a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Object.html?is-external=true#finalize()" title="class or interface in java.lang" class="externalLink">finalize</a>, <a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang" class="externalLink">getClass</a>, <a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Object.html?is-external=true#hashCode()" title="class or interface in java.lang" class="externalLink">hashCode</a>, <a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang" class="externalLink">notify</a>, <a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang" class="externalLink">notifyAll</a>, <a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Object.html?is-external=true#toString()" title="class or interface in java.lang" class="externalLink">toString</a>, <a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang" class="externalLink">wait</a>, <a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang" class="externalLink">wait</a>, <a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Object.html?is-external=true#wait(long,int)" title="class or interface in java.lang" class="externalLink">wait</a></code></li>
</ul>
</li>
</ul>
</section>
</li>
</ul>
</div>
<div class="details">
<ul class="blockList">
<li class="blockList">
<!-- ============ FIELD DETAIL =========== -->
<section>
<ul class="blockList">
<li class="blockList"><a id="field.detail">
<!-- -->
</a>
<h3>Field Detail</h3>
<a id="isDriveMotor">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>isDriveMotor</h4>
<pre>protected&nbsp;boolean isDriveMotor</pre>
<div class="block">Whether the swerve motor is a drive motor.</div>
</li>
</ul>
</li>
</ul>
</section>
<!-- ========= CONSTRUCTOR DETAIL ======== -->
<section>
<ul class="blockList">
<li class="blockList"><a id="constructor.detail">
<!-- -->
</a>
<h3>Constructor Detail</h3>
<a id="&lt;init&gt;()">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>SwerveMotor</h4>
<pre>public&nbsp;SwerveMotor()</pre>
</li>
</ul>
</li>
</ul>
</section>
<!-- ============ METHOD DETAIL ========== -->
<section>
<ul class="blockList">
<li class="blockList"><a id="method.detail">
<!-- -->
</a>
<h3>Method Detail</h3>
<a id="factoryDefaults()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>factoryDefaults</h4>
<pre class="methodSignature">public abstract&nbsp;void&nbsp;factoryDefaults()</pre>
<div class="block">Configure the factory defaults.</div>
</li>
</ul>
<a id="clearStickyFaults()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>clearStickyFaults</h4>
<pre class="methodSignature">public abstract&nbsp;void&nbsp;clearStickyFaults()</pre>
<div class="block">Clear the sticky faults on the motor controller.</div>
</li>
</ul>
<a id="setAbsoluteEncoder(swervelib.encoders.SwerveAbsoluteEncoder)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setAbsoluteEncoder</h4>
<pre class="methodSignature">public abstract&nbsp;<a href="SwerveMotor.html" title="class in swervelib.motors">SwerveMotor</a>&nbsp;setAbsoluteEncoder&#8203;(<a href="../encoders/SwerveAbsoluteEncoder.html" title="class in swervelib.encoders">SwerveAbsoluteEncoder</a>&nbsp;encoder)</pre>
<div class="block">Set the absolute encoder to be a compatible absolute encoder.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>encoder</code> - The encoder to use.</dd>
</dl>
</li>
</ul>
<a id="configureIntegratedEncoder(double)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>configureIntegratedEncoder</h4>
<pre class="methodSignature">public abstract&nbsp;void&nbsp;configureIntegratedEncoder&#8203;(double&nbsp;positionConversionFactor)</pre>
<div class="block">Configure the integrated encoder for the swerve module. Sets the conversion factors for position and velocity.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>positionConversionFactor</code> - The conversion factor to apply for position.</dd>
</dl>
</li>
</ul>
<a id="configurePIDF(swervelib.parser.PIDFConfig)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>configurePIDF</h4>
<pre class="methodSignature">public abstract&nbsp;void&nbsp;configurePIDF&#8203;(<a href="../parser/PIDFConfig.html" title="class in swervelib.parser">PIDFConfig</a>&nbsp;config)</pre>
<div class="block">Configure the PIDF values for the closed loop controller. 0 is disabled or off.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>config</code> - Configuration class holding the PIDF values.</dd>
</dl>
</li>
</ul>
<a id="configurePIDWrapping(double,double)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>configurePIDWrapping</h4>
<pre class="methodSignature">public abstract&nbsp;void&nbsp;configurePIDWrapping&#8203;(double&nbsp;minInput,
double&nbsp;maxInput)</pre>
<div class="block">Configure the PID wrapping for the position closed loop controller.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>minInput</code> - Minimum PID input.</dd>
<dd><code>maxInput</code> - Maximum PID input.</dd>
</dl>
</li>
</ul>
<a id="setMotorBrake(boolean)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setMotorBrake</h4>
<pre class="methodSignature">public abstract&nbsp;void&nbsp;setMotorBrake&#8203;(boolean&nbsp;isBrakeMode)</pre>
<div class="block">Set the idle mode.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>isBrakeMode</code> - Set the brake mode.</dd>
</dl>
</li>
</ul>
<a id="setInverted(boolean)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setInverted</h4>
<pre class="methodSignature">public abstract&nbsp;void&nbsp;setInverted&#8203;(boolean&nbsp;inverted)</pre>
<div class="block">Set the motor to be inverted.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>inverted</code> - State of inversion.</dd>
</dl>
</li>
</ul>
<a id="burnFlash()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>burnFlash</h4>
<pre class="methodSignature">public abstract&nbsp;void&nbsp;burnFlash()</pre>
<div class="block">Save the configurations from flash to EEPROM.</div>
</li>
</ul>
<a id="set(double)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>set</h4>
<pre class="methodSignature">public abstract&nbsp;void&nbsp;set&#8203;(double&nbsp;percentOutput)</pre>
<div class="block">Set the percentage output.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>percentOutput</code> - percent out for the motor controller.</dd>
</dl>
</li>
</ul>
<a id="setReference(double,double)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setReference</h4>
<pre class="methodSignature">public abstract&nbsp;void&nbsp;setReference&#8203;(double&nbsp;setpoint,
double&nbsp;feedforward)</pre>
<div class="block">Set the closed loop PID controller reference point.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>setpoint</code> - Setpoint in MPS or Angle in degrees.</dd>
<dd><code>feedforward</code> - Feedforward in volt-meter-per-second or kV.</dd>
</dl>
</li>
</ul>
<a id="getVelocity()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getVelocity</h4>
<pre class="methodSignature">public abstract&nbsp;double&nbsp;getVelocity()</pre>
<div class="block">Get the velocity of the integrated encoder.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>velocity</dd>
</dl>
</li>
</ul>
<a id="getPosition()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getPosition</h4>
<pre class="methodSignature">public abstract&nbsp;double&nbsp;getPosition()</pre>
<div class="block">Get the position of the integrated encoder.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>Position</dd>
</dl>
</li>
</ul>
<a id="setPosition(double)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setPosition</h4>
<pre class="methodSignature">public abstract&nbsp;void&nbsp;setPosition&#8203;(double&nbsp;position)</pre>
<div class="block">Set the integrated encoder position.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>position</code> - Integrated encoder position. Should be angle in degrees or meters per second.</dd>
</dl>
</li>
</ul>
<a id="setVoltageCompensation(double)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setVoltageCompensation</h4>
<pre class="methodSignature">public abstract&nbsp;void&nbsp;setVoltageCompensation&#8203;(double&nbsp;nominalVoltage)</pre>
<div class="block">Set the voltage compensation for the swerve module motor.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>nominalVoltage</code> - Nominal voltage for operation to output to.</dd>
</dl>
</li>
</ul>
<a id="setCurrentLimit(int)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setCurrentLimit</h4>
<pre class="methodSignature">public abstract&nbsp;void&nbsp;setCurrentLimit&#8203;(int&nbsp;currentLimit)</pre>
<div class="block">Set the current limit for the swerve drive motor, remember this may cause jumping if used in conjunction with
voltage compensation. This is useful to protect the motor from current spikes.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>currentLimit</code> - Current limit in AMPS at free speed.</dd>
</dl>
</li>
</ul>
<a id="setLoopRampRate(double)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setLoopRampRate</h4>
<pre class="methodSignature">public abstract&nbsp;void&nbsp;setLoopRampRate&#8203;(double&nbsp;rampRate)</pre>
<div class="block">Set the maximum rate the open/closed loop output can change by.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>rampRate</code> - Time in seconds to go from 0 to full throttle.</dd>
</dl>
</li>
</ul>
<a id="getMotor()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getMotor</h4>
<pre class="methodSignature">public abstract&nbsp;<a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&nbsp;getMotor()</pre>
<div class="block">Get the motor object from the module.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>Motor object.</dd>
</dl>
</li>
</ul>
<a id="isAttachedAbsoluteEncoder()">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>isAttachedAbsoluteEncoder</h4>
<pre class="methodSignature">public abstract&nbsp;boolean&nbsp;isAttachedAbsoluteEncoder()</pre>
<div class="block">Queries whether the absolute encoder is directly attached to the motor controller.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>connected absolute encoder state.</dd>
</dl>
</li>
</ul>
</li>
</ul>
</section>
</li>
</ul>
</div>
</div>
</main>
<!-- ========= END OF CLASS DATA ========= -->
<footer role="contentinfo">
<nav role="navigation">
<!-- ======= START OF BOTTOM NAVBAR ====== -->
<div class="bottomNav"><a id="navbar.bottom">
<!-- -->
</a>
<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
<a id="navbar.bottom.firstrow">
<!-- -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../index.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-files/index-1.html">Index</a></li>
<li><a href="../../help-doc.html">Help</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList" id="allclasses_navbar_bottom">
<li><a href="../../allclasses.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>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
</div>
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li>Nested&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 id="skip.navbar.bottom">
<!-- -->
</a></div>
<!-- ======== END OF BOTTOM NAVBAR ======= -->
</nav>
</footer>
</body>
</html>