RobotCore
1.0
WPILib port to raspberry Pi
Toggle main menu visibility
Loading...
Searching...
No Matches
ControlWord.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.hardware.hal;
6
7
import
org.wpilib.hardware.hal.struct.ControlWordStruct;
8
10
public
class
ControlWord
{
11
private
static
final
long
OPMODE_HASH_MASK = 0x00FFFFFFFFFFFFFFL;
12
private
static
final
long
ROBOT_MODE_MASK = 0x0300000000000000L;
13
private
static
final
long
ROBOT_MODE_SHIFT = 56;
14
private
static
final
long
ENABLED_MASK = 0x0400000000000000L;
15
private
static
final
long
ESTOP_MASK = 0x0800000000000000L;
16
private
static
final
long
FMS_ATTACHED_MASK = 0x1000000000000000L;
17
private
static
final
long
DS_ATTACHED_MASK = 0x2000000000000000L;
18
19
private
long
m_word;
20
private
RobotMode
m_robotMode =
RobotMode
.
UNKNOWN
;
21
23
public
ControlWord
() {}
24
35
public
void
update
(
36
long
opModeHash,
37
RobotMode
robotMode,
38
boolean
enabled,
39
boolean
emergencyStop,
40
boolean
fmsAttached,
41
boolean
dsAttached) {
42
m_word =
43
(opModeHash & OPMODE_HASH_MASK)
44
| ((
long
) robotMode.
getValue
() << ROBOT_MODE_SHIFT)
45
| (enabled ? ENABLED_MASK : 0)
46
| (emergencyStop ? ESTOP_MASK : 0)
47
| (fmsAttached ? FMS_ATTACHED_MASK : 0)
48
| (dsAttached ? DS_ATTACHED_MASK : 0);
49
m_robotMode = robotMode;
50
}
51
57
public
void
update
(
long
word) {
58
m_word = word;
59
m_robotMode =
RobotMode
.
fromInt
((
int
) ((word & ROBOT_MODE_MASK) >> ROBOT_MODE_SHIFT));
60
}
61
67
public
void
update
(
ControlWord
word) {
68
m_word = word.m_word;
69
m_robotMode = word.m_robotMode;
70
}
71
77
public
long
getOpModeId
() {
78
// if the hash portion is zero, return 0
79
if
((m_word & OPMODE_HASH_MASK) == 0) {
80
return
0;
81
}
82
// otherwise return the full ID (which includes the robot mode)
83
return
m_word & (OPMODE_HASH_MASK | ROBOT_MODE_MASK);
84
}
85
91
public
void
setOpModeId
(
long
id
) {
92
m_word &= ~(OPMODE_HASH_MASK | ROBOT_MODE_MASK);
93
m_word |=
id
& (OPMODE_HASH_MASK | ROBOT_MODE_MASK);
94
// keep robot mode in sync
95
m_robotMode =
RobotMode
.
fromInt
((
int
) ((m_word & ROBOT_MODE_MASK) >> ROBOT_MODE_SHIFT));
96
}
97
103
public
RobotMode
getRobotMode
() {
104
return
m_robotMode;
105
}
106
112
public
boolean
isEnabled
() {
113
return
(m_word & ENABLED_MASK) != 0;
114
}
115
121
public
boolean
isEStopped
() {
122
return
(m_word & ESTOP_MASK) != 0;
123
}
124
130
public
boolean
isFMSAttached
() {
131
return
(m_word & FMS_ATTACHED_MASK) != 0;
132
}
133
139
public
boolean
isDSAttached
() {
140
return
(m_word & DS_ATTACHED_MASK) != 0;
141
}
142
149
public
boolean
isAutonomous
() {
150
return
getRobotMode
() ==
RobotMode
.
AUTONOMOUS
;
151
}
152
159
public
boolean
isAutonomousEnabled
() {
160
return
isAutonomous
() &&
isEnabled
() &&
isDSAttached
();
161
}
162
169
public
boolean
isTeleop
() {
170
return
getRobotMode
() ==
RobotMode
.
TELEOPERATED
;
171
}
172
179
public
boolean
isTeleopEnabled
() {
180
return
isTeleop
() &&
isEnabled
() &&
isDSAttached
();
181
}
182
189
public
boolean
isUtility
() {
190
return
getRobotMode
() ==
RobotMode
.
UTILITY
;
191
}
192
199
public
boolean
isUtilityEnabled
() {
200
return
isUtility
() &&
isEnabled
() &&
isDSAttached
();
201
}
202
208
public
long
getNative
() {
209
return
m_word;
210
}
211
212
@Override
213
public
boolean
equals(Object obj) {
214
return
obj instanceof
ControlWord
word && m_word == word.m_word;
215
}
216
217
@Override
218
public
int
hashCode() {
219
return
Long.hashCode(m_word);
220
}
221
222
public
static
final
ControlWordStruct
struct
= new ControlWordStruct();
223
}
org.wpilib.hardware.hal.ControlWord
Definition
ControlWord.java:10
org.wpilib.hardware.hal.ControlWord.isUtility
boolean isUtility()
Definition
ControlWord.java:189
org.wpilib.hardware.hal.ControlWord.isFMSAttached
boolean isFMSAttached()
Definition
ControlWord.java:130
org.wpilib.hardware.hal.ControlWord.update
void update(long word)
Definition
ControlWord.java:57
org.wpilib.hardware.hal.ControlWord.update
void update(ControlWord word)
Definition
ControlWord.java:67
org.wpilib.hardware.hal.ControlWord.isEnabled
boolean isEnabled()
Definition
ControlWord.java:112
org.wpilib.hardware.hal.ControlWord.update
void update(long opModeHash, RobotMode robotMode, boolean enabled, boolean emergencyStop, boolean fmsAttached, boolean dsAttached)
Definition
ControlWord.java:35
org.wpilib.hardware.hal.ControlWord.getOpModeId
long getOpModeId()
Definition
ControlWord.java:77
org.wpilib.hardware.hal.ControlWord.getNative
long getNative()
Definition
ControlWord.java:208
org.wpilib.hardware.hal.ControlWord.ControlWord
ControlWord()
Definition
ControlWord.java:23
org.wpilib.hardware.hal.ControlWord.isAutonomous
boolean isAutonomous()
Definition
ControlWord.java:149
org.wpilib.hardware.hal.ControlWord.isUtilityEnabled
boolean isUtilityEnabled()
Definition
ControlWord.java:199
org.wpilib.hardware.hal.ControlWord.isDSAttached
boolean isDSAttached()
Definition
ControlWord.java:139
org.wpilib.hardware.hal.ControlWord.isAutonomousEnabled
boolean isAutonomousEnabled()
Definition
ControlWord.java:159
org.wpilib.hardware.hal.ControlWord.isTeleop
boolean isTeleop()
Definition
ControlWord.java:169
org.wpilib.hardware.hal.ControlWord.isEStopped
boolean isEStopped()
Definition
ControlWord.java:121
org.wpilib.hardware.hal.ControlWord.isTeleopEnabled
boolean isTeleopEnabled()
Definition
ControlWord.java:179
org.wpilib.hardware.hal.ControlWord.setOpModeId
void setOpModeId(long id)
Definition
ControlWord.java:91
org.wpilib.hardware.hal.ControlWord.getRobotMode
RobotMode getRobotMode()
Definition
ControlWord.java:103
org.wpilib.hardware.hal.RobotMode
Definition
RobotMode.java:8
org.wpilib.hardware.hal.RobotMode.AUTONOMOUS
AUTONOMOUS
Definition
RobotMode.java:12
org.wpilib.hardware.hal.RobotMode.TELEOPERATED
TELEOPERATED
Definition
RobotMode.java:14
org.wpilib.hardware.hal.RobotMode.UTILITY
UTILITY
Definition
RobotMode.java:16
org.wpilib.hardware.hal.RobotMode.UNKNOWN
UNKNOWN
Definition
RobotMode.java:10
org.wpilib.hardware.hal.RobotMode.getValue
int getValue()
Definition
RobotMode.java:29
org.wpilib.hardware.hal.RobotMode.fromInt
static RobotMode fromInt(int value)
Definition
RobotMode.java:34
org
wpilib
hardware
hal
ControlWord.java
Generated by
1.18.0