mirror of
https://github.com/wpilibsuite/allwpilib
synced 2026-07-01 02:41:48 +00:00
WPILib Reorganization
This is a major restructuring of the WPILib repository to simply build procedures and remove the remnants of Maven from everything except the eclipse plugins. Gradle files have been largely simplified or rewritten, taking advantage of splitting up parts of the build into separate build files for ease of reading. The eclipse plugins are now in a separate project, as is ntcore. All dependencies are resolved via Maven dependencies, with the Jenkins-maintained WPILib repo. Project structures have also been simplified: we no longer have separate subprojects inside wpilibc and wpilibj. Where possible, these changes hav been done with git renames, to make sure we still have full history for all repositories. Other unrelated subprojects have also been broken out: OutlineViewer is now a separate project. Change-Id: Ib4e2a6e1a2f66427a14f16612b0e0d69ed661878
This commit is contained in:
37
wpilibc/shared/include/Buttons/Button.h
Normal file
37
wpilibc/shared/include/Buttons/Button.h
Normal file
@@ -0,0 +1,37 @@
|
||||
/*----------------------------------------------------------------------------*/
|
||||
/* Copyright (c) FIRST 2011. 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 $(WIND_BASE)/WPILib. */
|
||||
/*----------------------------------------------------------------------------*/
|
||||
|
||||
#ifndef __BUTTON_H__
|
||||
#define __BUTTON_H__
|
||||
|
||||
#include "Buttons/Trigger.h"
|
||||
#include "Commands/Command.h"
|
||||
|
||||
/**
|
||||
* This class provides an easy way to link commands to OI inputs.
|
||||
*
|
||||
* It is very easy to link a button to a command. For instance, you could
|
||||
* link the trigger button of a joystick to a "score" command.
|
||||
*
|
||||
* This class represents a subclass of Trigger that is specifically aimed at
|
||||
* buttons on an operator interface as a common use case of the more generalized
|
||||
* Trigger objects. This is a simple wrapper around Trigger with the method
|
||||
* names
|
||||
* renamed to fit the Button object use.
|
||||
*
|
||||
* @author brad
|
||||
*/
|
||||
class Button : public Trigger {
|
||||
public:
|
||||
virtual void WhenPressed(Command *command);
|
||||
virtual void WhileHeld(Command *command);
|
||||
virtual void WhenReleased(Command *command);
|
||||
virtual void CancelWhenPressed(Command *command);
|
||||
virtual void ToggleWhenPressed(Command *command);
|
||||
};
|
||||
|
||||
#endif
|
||||
27
wpilibc/shared/include/Buttons/ButtonScheduler.h
Normal file
27
wpilibc/shared/include/Buttons/ButtonScheduler.h
Normal file
@@ -0,0 +1,27 @@
|
||||
/*----------------------------------------------------------------------------*/
|
||||
/* Copyright (c) FIRST 2011. 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 $(WIND_BASE)/WPILib. */
|
||||
/*----------------------------------------------------------------------------*/
|
||||
|
||||
#ifndef __BUTTON_SCHEDULER_H__
|
||||
#define __BUTTON_SCHEDULER_H__
|
||||
|
||||
class Trigger;
|
||||
class Command;
|
||||
|
||||
class ButtonScheduler {
|
||||
public:
|
||||
ButtonScheduler(bool last, Trigger *button, Command *orders);
|
||||
virtual ~ButtonScheduler() = default;
|
||||
virtual void Execute() = 0;
|
||||
void Start();
|
||||
|
||||
protected:
|
||||
bool m_pressedLast;
|
||||
Trigger *m_button;
|
||||
Command *m_command;
|
||||
};
|
||||
|
||||
#endif
|
||||
26
wpilibc/shared/include/Buttons/CancelButtonScheduler.h
Normal file
26
wpilibc/shared/include/Buttons/CancelButtonScheduler.h
Normal file
@@ -0,0 +1,26 @@
|
||||
/*----------------------------------------------------------------------------*/
|
||||
/* Copyright (c) FIRST 2011. 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 $(WIND_BASE)/WPILib. */
|
||||
/*----------------------------------------------------------------------------*/
|
||||
|
||||
#ifndef __CANCEL_BUTTON_SCHEDULER_H__
|
||||
#define __CANCEL_BUTTON_SCHEDULER_H__
|
||||
|
||||
#include "Buttons/ButtonScheduler.h"
|
||||
|
||||
class Trigger;
|
||||
class Command;
|
||||
|
||||
class CancelButtonScheduler : public ButtonScheduler {
|
||||
public:
|
||||
CancelButtonScheduler(bool last, Trigger *button, Command *orders);
|
||||
virtual ~CancelButtonScheduler() = default;
|
||||
virtual void Execute();
|
||||
|
||||
private:
|
||||
bool pressedLast;
|
||||
};
|
||||
|
||||
#endif
|
||||
23
wpilibc/shared/include/Buttons/HeldButtonScheduler.h
Normal file
23
wpilibc/shared/include/Buttons/HeldButtonScheduler.h
Normal file
@@ -0,0 +1,23 @@
|
||||
/*----------------------------------------------------------------------------*/
|
||||
/* Copyright (c) FIRST 2011. 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 $(WIND_BASE)/WPILib. */
|
||||
/*----------------------------------------------------------------------------*/
|
||||
|
||||
#ifndef __HELD_BUTTON_SCHEDULER_H__
|
||||
#define __HELD_BUTTON_SCHEDULER_H__
|
||||
|
||||
#include "Buttons/ButtonScheduler.h"
|
||||
|
||||
class Trigger;
|
||||
class Command;
|
||||
|
||||
class HeldButtonScheduler : public ButtonScheduler {
|
||||
public:
|
||||
HeldButtonScheduler(bool last, Trigger *button, Command *orders);
|
||||
virtual ~HeldButtonScheduler() = default;
|
||||
virtual void Execute();
|
||||
};
|
||||
|
||||
#endif
|
||||
29
wpilibc/shared/include/Buttons/InternalButton.h
Normal file
29
wpilibc/shared/include/Buttons/InternalButton.h
Normal file
@@ -0,0 +1,29 @@
|
||||
/*----------------------------------------------------------------------------*/
|
||||
/* Copyright (c) FIRST 2011. 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 $(WIND_BASE)/WPILib. */
|
||||
/*----------------------------------------------------------------------------*/
|
||||
|
||||
#ifndef __INTERNAL_BUTTON_H__
|
||||
#define __INTERNAL_BUTTON_H__
|
||||
|
||||
#include "Buttons/Button.h"
|
||||
|
||||
class InternalButton : public Button {
|
||||
public:
|
||||
InternalButton() = default;
|
||||
InternalButton(bool inverted);
|
||||
virtual ~InternalButton() = default;
|
||||
|
||||
void SetInverted(bool inverted);
|
||||
void SetPressed(bool pressed);
|
||||
|
||||
virtual bool Get();
|
||||
|
||||
private:
|
||||
bool m_pressed = false;
|
||||
bool m_inverted = false;
|
||||
};
|
||||
|
||||
#endif
|
||||
26
wpilibc/shared/include/Buttons/JoystickButton.h
Normal file
26
wpilibc/shared/include/Buttons/JoystickButton.h
Normal file
@@ -0,0 +1,26 @@
|
||||
/*----------------------------------------------------------------------------*/
|
||||
/* Copyright (c) FIRST 2011. 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 $(WIND_BASE)/WPILib. */
|
||||
/*----------------------------------------------------------------------------*/
|
||||
|
||||
#ifndef __JOYSTICK_BUTTON_H__
|
||||
#define __JOYSTICK_BUTTON_H__
|
||||
|
||||
#include "GenericHID.h"
|
||||
#include "Buttons/Button.h"
|
||||
|
||||
class JoystickButton : public Button {
|
||||
public:
|
||||
JoystickButton(GenericHID *joystick, int buttonNumber);
|
||||
virtual ~JoystickButton() = default;
|
||||
|
||||
virtual bool Get();
|
||||
|
||||
private:
|
||||
GenericHID *m_joystick;
|
||||
int m_buttonNumber;
|
||||
};
|
||||
|
||||
#endif
|
||||
28
wpilibc/shared/include/Buttons/NetworkButton.h
Normal file
28
wpilibc/shared/include/Buttons/NetworkButton.h
Normal file
@@ -0,0 +1,28 @@
|
||||
/*----------------------------------------------------------------------------*/
|
||||
/* Copyright (c) FIRST 2011. 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 $(WIND_BASE)/WPILib. */
|
||||
/*----------------------------------------------------------------------------*/
|
||||
|
||||
#ifndef __NETWORK_BUTTON_H__
|
||||
#define __NETWORK_BUTTON_H__
|
||||
|
||||
#include "Buttons/Button.h"
|
||||
#include <string>
|
||||
#include <memory>
|
||||
|
||||
class NetworkButton : public Button {
|
||||
public:
|
||||
NetworkButton(const std::string &tableName, const std::string &field);
|
||||
NetworkButton(std::shared_ptr<ITable> table, const std::string &field);
|
||||
virtual ~NetworkButton() = default;
|
||||
|
||||
virtual bool Get();
|
||||
|
||||
private:
|
||||
std::shared_ptr<ITable> m_netTable;
|
||||
std::string m_field;
|
||||
};
|
||||
|
||||
#endif
|
||||
23
wpilibc/shared/include/Buttons/PressedButtonScheduler.h
Normal file
23
wpilibc/shared/include/Buttons/PressedButtonScheduler.h
Normal file
@@ -0,0 +1,23 @@
|
||||
/*----------------------------------------------------------------------------*/
|
||||
/* Copyright (c) FIRST 2011. 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 $(WIND_BASE)/WPILib. */
|
||||
/*----------------------------------------------------------------------------*/
|
||||
|
||||
#ifndef __PRESSED_BUTTON_SCHEDULER_H__
|
||||
#define __PRESSED_BUTTON_SCHEDULER_H__
|
||||
|
||||
#include "Buttons/ButtonScheduler.h"
|
||||
|
||||
class Trigger;
|
||||
class Command;
|
||||
|
||||
class PressedButtonScheduler : public ButtonScheduler {
|
||||
public:
|
||||
PressedButtonScheduler(bool last, Trigger *button, Command *orders);
|
||||
virtual ~PressedButtonScheduler() = default;
|
||||
virtual void Execute();
|
||||
};
|
||||
|
||||
#endif
|
||||
23
wpilibc/shared/include/Buttons/ReleasedButtonScheduler.h
Normal file
23
wpilibc/shared/include/Buttons/ReleasedButtonScheduler.h
Normal file
@@ -0,0 +1,23 @@
|
||||
/*----------------------------------------------------------------------------*/
|
||||
/* Copyright (c) FIRST 2011. 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 $(WIND_BASE)/WPILib. */
|
||||
/*----------------------------------------------------------------------------*/
|
||||
|
||||
#ifndef __RELEASED_BUTTON_SCHEDULER_H__
|
||||
#define __RELEASED_BUTTON_SCHEDULER_H__
|
||||
|
||||
#include "Buttons/ButtonScheduler.h"
|
||||
|
||||
class Trigger;
|
||||
class Command;
|
||||
|
||||
class ReleasedButtonScheduler : public ButtonScheduler {
|
||||
public:
|
||||
ReleasedButtonScheduler(bool last, Trigger *button, Command *orders);
|
||||
virtual ~ReleasedButtonScheduler() = default;
|
||||
virtual void Execute();
|
||||
};
|
||||
|
||||
#endif
|
||||
26
wpilibc/shared/include/Buttons/ToggleButtonScheduler.h
Normal file
26
wpilibc/shared/include/Buttons/ToggleButtonScheduler.h
Normal file
@@ -0,0 +1,26 @@
|
||||
/*----------------------------------------------------------------------------*/
|
||||
/* Copyright (c) FIRST 2011. 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 $(WIND_BASE)/WPILib. */
|
||||
/*----------------------------------------------------------------------------*/
|
||||
|
||||
#ifndef __TOGGLE_BUTTON_SCHEDULER_H__
|
||||
#define __TOGGLE_BUTTON_SCHEDULER_H__
|
||||
|
||||
#include "Buttons/ButtonScheduler.h"
|
||||
|
||||
class Trigger;
|
||||
class Command;
|
||||
|
||||
class ToggleButtonScheduler : public ButtonScheduler {
|
||||
public:
|
||||
ToggleButtonScheduler(bool last, Trigger *button, Command *orders);
|
||||
virtual ~ToggleButtonScheduler() = default;
|
||||
virtual void Execute();
|
||||
|
||||
private:
|
||||
bool pressedLast;
|
||||
};
|
||||
|
||||
#endif
|
||||
53
wpilibc/shared/include/Buttons/Trigger.h
Normal file
53
wpilibc/shared/include/Buttons/Trigger.h
Normal file
@@ -0,0 +1,53 @@
|
||||
/*----------------------------------------------------------------------------*/
|
||||
/* Copyright (c) FIRST 2011. 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 $(WIND_BASE)/WPILib. */
|
||||
/*----------------------------------------------------------------------------*/
|
||||
|
||||
#ifndef __TRIGGER_H__
|
||||
#define __TRIGGER_H__
|
||||
|
||||
#include "SmartDashboard/Sendable.h"
|
||||
#include <memory>
|
||||
|
||||
class Command;
|
||||
|
||||
/**
|
||||
* This class provides an easy way to link commands to inputs.
|
||||
*
|
||||
* It is very easy to link a polled input to a command. For instance, you could
|
||||
* link the trigger button of a joystick to a "score" command or an encoder
|
||||
* reaching
|
||||
* a particular value.
|
||||
*
|
||||
* It is encouraged that teams write a subclass of Trigger if they want to have
|
||||
* something unusual (for instance, if they want to react to the user holding
|
||||
* a button while the robot is reading a certain sensor input). For this, they
|
||||
* only have to write the {@link Trigger#Get()} method to get the full
|
||||
* functionality
|
||||
* of the Trigger class.
|
||||
*
|
||||
* @author Brad Miller, Joe Grinstead
|
||||
*/
|
||||
class Trigger : public Sendable {
|
||||
public:
|
||||
Trigger() = default;
|
||||
virtual ~Trigger() = default;
|
||||
bool Grab();
|
||||
virtual bool Get() = 0;
|
||||
void WhenActive(Command *command);
|
||||
void WhileActive(Command *command);
|
||||
void WhenInactive(Command *command);
|
||||
void CancelWhenActive(Command *command);
|
||||
void ToggleWhenActive(Command *command);
|
||||
|
||||
virtual void InitTable(std::shared_ptr<ITable> table);
|
||||
virtual std::shared_ptr<ITable> GetTable() const;
|
||||
virtual std::string GetSmartDashboardType() const;
|
||||
|
||||
protected:
|
||||
std::shared_ptr<ITable> m_table = nullptr;
|
||||
};
|
||||
|
||||
#endif
|
||||
Reference in New Issue
Block a user