RobotCore
1.0
WPILib port to raspberry Pi
Toggle main menu visibility
Loading...
Searching...
No Matches
Debouncer.java
1
// Copyright (c) FIRST and other WPILib contributors.
2
// Open Source Software; you can modify and/or share it under the terms of
3
// the WPILib BSD license file in the root directory of this project.
4
5
package
org.wpilib.math.filter;
6
7
import
org.wpilib.math.util.MathSharedStore;
8
13
public
class
Debouncer
{
15
public
enum
DebounceType
{
17
RISING
,
19
FALLING
,
21
BOTH
22
}
23
24
private
double
m_debounceTime;
25
private
DebounceType
m_debounceType;
26
private
boolean
m_baseline;
27
28
private
double
m_prevTime;
29
37
public
Debouncer
(
double
debounceTime,
DebounceType
type) {
38
m_debounceTime = debounceTime;
39
m_debounceType = type;
40
41
resetTimer();
42
43
m_baseline = m_debounceType ==
DebounceType
.
FALLING
;
44
}
45
52
public
Debouncer
(
double
debounceTime) {
53
this
(debounceTime,
DebounceType
.
RISING
);
54
}
55
56
private
void
resetTimer() {
57
m_prevTime =
MathSharedStore
.
getTimestamp
();
58
}
59
60
private
boolean
hasElapsed() {
61
return
MathSharedStore.getTimestamp() - m_prevTime >= m_debounceTime;
62
}
63
70
public
boolean
calculate
(
boolean
input) {
71
if
(input == m_baseline) {
72
resetTimer();
73
}
74
75
if
(hasElapsed()) {
76
if
(m_debounceType ==
DebounceType
.
BOTH
) {
77
m_baseline = input;
78
resetTimer();
79
}
80
return
input;
81
}
else
{
82
return
m_baseline;
83
}
84
}
85
92
public
void
setDebounceTime
(
double
time) {
93
m_debounceTime = time;
94
}
95
102
public
double
getDebounceTime
() {
103
return
m_debounceTime;
104
}
105
111
public
void
setDebounceType
(
DebounceType
type) {
112
m_debounceType = type;
113
114
m_baseline = m_debounceType ==
DebounceType
.
FALLING
;
115
}
116
122
public
DebounceType
getDebounceType
() {
123
return
m_debounceType;
124
}
125
}
org.wpilib.math.filter.Debouncer.setDebounceType
void setDebounceType(DebounceType type)
Definition
Debouncer.java:111
org.wpilib.math.filter.Debouncer.setDebounceTime
void setDebounceTime(double time)
Definition
Debouncer.java:92
org.wpilib.math.filter.Debouncer.calculate
boolean calculate(boolean input)
Definition
Debouncer.java:70
org.wpilib.math.filter.Debouncer.getDebounceType
DebounceType getDebounceType()
Definition
Debouncer.java:122
org.wpilib.math.filter.Debouncer.getDebounceTime
double getDebounceTime()
Definition
Debouncer.java:102
org.wpilib.math.filter.Debouncer.Debouncer
Debouncer(double debounceTime)
Definition
Debouncer.java:52
org.wpilib.math.filter.Debouncer.Debouncer
Debouncer(double debounceTime, DebounceType type)
Definition
Debouncer.java:37
org.wpilib.math.util.MathSharedStore
Definition
MathSharedStore.java:10
org.wpilib.math.util.MathSharedStore.getTimestamp
static double getTimestamp()
Definition
MathSharedStore.java:60
org.wpilib.math.filter.Debouncer.DebounceType
Definition
Debouncer.java:15
org.wpilib.math.filter.Debouncer.DebounceType.BOTH
BOTH
Definition
Debouncer.java:21
org.wpilib.math.filter.Debouncer.DebounceType.FALLING
FALLING
Definition
Debouncer.java:19
org.wpilib.math.filter.Debouncer.DebounceType.RISING
RISING
Definition
Debouncer.java:17
org
wpilib
math
filter
Debouncer.java
Generated by
1.18.0