Add RobotState#IsEStopped and DriverStation#IsEStopped (#952)

This commit is contained in:
Loki
2019-07-16 09:18:23 -05:00
committed by Peter Johnson
parent e488861877
commit 0f6ef80ab2
6 changed files with 37 additions and 3 deletions

View File

@@ -336,6 +336,12 @@ bool DriverStation::IsDisabled() const {
return !(controlWord.enabled && controlWord.dsAttached);
}
bool DriverStation::IsEStopped() const {
HAL_ControlWord controlWord;
HAL_GetControlWord(&controlWord);
return controlWord.eStop;
}
bool DriverStation::IsAutonomous() const {
HAL_ControlWord controlWord;
HAL_GetControlWord(&controlWord);

View File

@@ -1,5 +1,5 @@
/*----------------------------------------------------------------------------*/
/* Copyright (c) 2016-2018 FIRST. All Rights Reserved. */
/* Copyright (c) 2016-2019 FIRST. All Rights Reserved. */
/* Open Source Software - may be modified and shared by FRC teams. The code */
/* must be accompanied by the FIRST BSD license file in the root directory of */
/* the project. */
@@ -19,6 +19,10 @@ bool RobotState::IsEnabled() {
return DriverStation::GetInstance().IsEnabled();
}
bool RobotState::IsEStopped() {
return DriverStation::GetInstance().IsEStopped();
}
bool RobotState::IsOperatorControl() {
return DriverStation::GetInstance().IsOperatorControl();
}

View File

@@ -197,6 +197,13 @@ class DriverStation : public ErrorBase {
*/
bool IsDisabled() const;
/**
* Check if the robot is e-stopped.
*
* @return True if the robot is e-stopped
*/
bool IsEStopped() const;
/**
* Check if the DS is commanding autonomous mode.
*

View File

@@ -1,5 +1,5 @@
/*----------------------------------------------------------------------------*/
/* Copyright (c) 2008-2018 FIRST. All Rights Reserved. */
/* Copyright (c) 2008-2019 FIRST. All Rights Reserved. */
/* Open Source Software - may be modified and shared by FRC teams. The code */
/* must be accompanied by the FIRST BSD license file in the root directory of */
/* the project. */
@@ -15,6 +15,7 @@ class RobotState {
public:
static bool IsDisabled();
static bool IsEnabled();
static bool IsEStopped();
static bool IsOperatorControl();
static bool IsAutonomous();
static bool IsTest();

View File

@@ -625,6 +625,18 @@ public class DriverStation {
return !isEnabled();
}
/**
* Gets a value indicating whether the Robot is e-stopped.
*
* @return True if the robot is e-stopped, false otherwise.
*/
public boolean isEStopped() {
synchronized (m_controlWordMutex) {
updateControlWord(false);
return m_controlWordCache.getEStop();
}
}
/**
* Gets a value indicating whether the Driver Station requires the robot to be running in
* autonomous mode.

View File

@@ -1,5 +1,5 @@
/*----------------------------------------------------------------------------*/
/* Copyright (c) 2016-2018 FIRST. All Rights Reserved. */
/* Copyright (c) 2016-2019 FIRST. All Rights Reserved. */
/* Open Source Software - may be modified and shared by FRC teams. The code */
/* must be accompanied by the FIRST BSD license file in the root directory of */
/* the project. */
@@ -17,6 +17,10 @@ public final class RobotState {
return DriverStation.getInstance().isEnabled();
}
public static boolean isEStopped() {
return DriverStation.getInstance().isEStopped();
}
public static boolean isOperatorControl() {
return DriverStation.getInstance().isOperatorControl();
}