mirror of
https://github.com/wpilibsuite/allwpilib
synced 2026-07-04 03:11:43 +00:00
artf4107: clang-modernize was run on WPILib
Loops were converted to their range-based equivalents, variable types were replaced with auto where the type was already specified on the same line, the override keyword was added, and instances of NULL and assignments of 0 to pointers were replaced with nullptr. Change-Id: If281e46a2e2e1c37f278d56df9915236d4b2c864
This commit is contained in:
@@ -14,7 +14,7 @@ typedef void (*TimerEventHandler)(void *param);
|
||||
|
||||
class Notifier : public ErrorBase {
|
||||
public:
|
||||
Notifier(TimerEventHandler handler, void *param = NULL);
|
||||
Notifier(TimerEventHandler handler, void *param = nullptr);
|
||||
virtual ~Notifier();
|
||||
void StartSingle(double delay);
|
||||
void StartPeriodic(double period);
|
||||
|
||||
@@ -59,7 +59,7 @@ class PIDController : public LiveWindowSendable,
|
||||
|
||||
virtual void Reset() override;
|
||||
|
||||
virtual void InitTable(ITable *table);
|
||||
virtual void InitTable(ITable *table) override;
|
||||
|
||||
private:
|
||||
float m_P; // factor for "proportional" control
|
||||
@@ -94,13 +94,13 @@ class PIDController : public LiveWindowSendable,
|
||||
PIDOutput *output, float period = 0.05);
|
||||
static void CallCalculate(void *controller);
|
||||
|
||||
virtual ITable *GetTable() const;
|
||||
virtual std::string GetSmartDashboardType() const;
|
||||
virtual ITable *GetTable() const override;
|
||||
virtual std::string GetSmartDashboardType() const override;
|
||||
virtual void ValueChanged(ITable *source, const std::string &key,
|
||||
EntryValue value, bool isNew);
|
||||
virtual void UpdateTable();
|
||||
virtual void StartLiveWindowMode();
|
||||
virtual void StopLiveWindowMode();
|
||||
EntryValue value, bool isNew) override;
|
||||
virtual void UpdateTable() override;
|
||||
virtual void StartLiveWindowMode() override;
|
||||
virtual void StopLiveWindowMode() override;
|
||||
|
||||
protected:
|
||||
ITable *m_table;
|
||||
|
||||
@@ -14,18 +14,18 @@
|
||||
#include <string>
|
||||
|
||||
#define wpi_assert(condition) \
|
||||
wpi_assert_impl(condition, #condition, NULL, __FILE__, __LINE__, __FUNCTION__)
|
||||
wpi_assert_impl(condition, #condition, nullptr, __FILE__, __LINE__, __FUNCTION__)
|
||||
#define wpi_assertWithMessage(condition, message) \
|
||||
wpi_assert_impl(condition, #condition, message, __FILE__, __LINE__, \
|
||||
__FUNCTION__)
|
||||
|
||||
#define wpi_assertEqual(a, b) \
|
||||
wpi_assertEqual_impl(a, b, #a, #b, NULL, __FILE__, __LINE__, __FUNCTION__)
|
||||
wpi_assertEqual_impl(a, b, #a, #b, nullptr, __FILE__, __LINE__, __FUNCTION__)
|
||||
#define wpi_assertEqualWithMessage(a, b, message) \
|
||||
wpi_assertEqual_impl(a, b, #a, #b, message, __FILE__, __LINE__, __FUNCTION__)
|
||||
|
||||
#define wpi_assertNotEqual(a, b) \
|
||||
wpi_assertNotEqual_impl(a, b, #a, #b, NULL, __FILE__, __LINE__, __FUNCTION__)
|
||||
wpi_assertNotEqual_impl(a, b, #a, #b, nullptr, __FILE__, __LINE__, __FUNCTION__)
|
||||
#define wpi_assertNotEqualWithMessage(a, b, message) \
|
||||
wpi_assertNotEqual_impl(a, b, #a, #b, message, __FILE__, __LINE__, \
|
||||
__FUNCTION__)
|
||||
|
||||
@@ -27,7 +27,7 @@ S(ChannelIndexOutOfRange, -1, "Allocating channel that is out of range");
|
||||
S(NotAllocated, -2, "Attempting to free unallocated resource");
|
||||
S(ResourceAlreadyAllocated, -3, "Attempted to reuse an allocated resource");
|
||||
S(NoAvailableResources, -4, "No available resources to allocate");
|
||||
S(NullParameter, -5, "A pointer parameter to a method is NULL");
|
||||
S(NullParameter, -5, "A pointer parameter to a method is nullptr");
|
||||
S(Timeout, -6, "A timeout has been exceeded");
|
||||
S(CompassManufacturerError, -7, "Compass manufacturer doesn't match HiTechnic");
|
||||
S(CompassTypeError, -8,
|
||||
|
||||
@@ -13,12 +13,12 @@
|
||||
#include "Buttons/ToggleButtonScheduler.h"
|
||||
#include "Buttons/CancelButtonScheduler.h"
|
||||
|
||||
Trigger::Trigger() { m_table = NULL; }
|
||||
Trigger::Trigger() { m_table = nullptr; }
|
||||
|
||||
bool Trigger::Grab() {
|
||||
if (Get())
|
||||
return true;
|
||||
else if (m_table != NULL) {
|
||||
else if (m_table != nullptr) {
|
||||
// if (m_table->isConnected())//TODO is connected on button?
|
||||
return m_table->GetBoolean("pressed");
|
||||
/*else
|
||||
@@ -28,29 +28,27 @@ bool Trigger::Grab() {
|
||||
}
|
||||
|
||||
void Trigger::WhenActive(Command *command) {
|
||||
PressedButtonScheduler *pbs =
|
||||
new PressedButtonScheduler(Grab(), this, command);
|
||||
auto pbs = new PressedButtonScheduler(Grab(), this, command);
|
||||
pbs->Start();
|
||||
}
|
||||
|
||||
void Trigger::WhileActive(Command *command) {
|
||||
HeldButtonScheduler *hbs = new HeldButtonScheduler(Grab(), this, command);
|
||||
auto hbs = new HeldButtonScheduler(Grab(), this, command);
|
||||
hbs->Start();
|
||||
}
|
||||
|
||||
void Trigger::WhenInactive(Command *command) {
|
||||
ReleasedButtonScheduler *rbs =
|
||||
new ReleasedButtonScheduler(Grab(), this, command);
|
||||
auto rbs = new ReleasedButtonScheduler(Grab(), this, command);
|
||||
rbs->Start();
|
||||
}
|
||||
|
||||
void Trigger::CancelWhenActive(Command *command) {
|
||||
CancelButtonScheduler *cbs = new CancelButtonScheduler(Grab(), this, command);
|
||||
auto cbs = new CancelButtonScheduler(Grab(), this, command);
|
||||
cbs->Start();
|
||||
}
|
||||
|
||||
void Trigger::ToggleWhenActive(Command *command) {
|
||||
ToggleButtonScheduler *tbs = new ToggleButtonScheduler(Grab(), this, command);
|
||||
auto tbs = new ToggleButtonScheduler(Grab(), this, command);
|
||||
tbs->Start();
|
||||
}
|
||||
|
||||
@@ -58,7 +56,7 @@ std::string Trigger::GetSmartDashboardType() const { return "Button"; }
|
||||
|
||||
void Trigger::InitTable(ITable *table) {
|
||||
m_table = table;
|
||||
if (m_table != NULL) {
|
||||
if (m_table != nullptr) {
|
||||
m_table->PutBoolean("pressed", Get());
|
||||
}
|
||||
}
|
||||
|
||||
@@ -29,23 +29,23 @@ void Command::InitCommand(const char *name, double timeout) {
|
||||
m_interruptible = true;
|
||||
m_canceled = false;
|
||||
m_runWhenDisabled = false;
|
||||
m_parent = NULL;
|
||||
m_name = name == NULL ? std::string() : name;
|
||||
m_table = NULL;
|
||||
m_parent = nullptr;
|
||||
m_name = name == nullptr ? std::string() : name;
|
||||
m_table = nullptr;
|
||||
}
|
||||
|
||||
/**
|
||||
* Creates a new command.
|
||||
* The name of this command will be default.
|
||||
*/
|
||||
Command::Command() { InitCommand(NULL, -1.0); }
|
||||
Command::Command() { InitCommand(nullptr, -1.0); }
|
||||
|
||||
/**
|
||||
* Creates a new command with the given name and no timeout.
|
||||
* @param name the name for this command
|
||||
*/
|
||||
Command::Command(const char *name) {
|
||||
if (name == NULL) wpi_setWPIErrorWithContext(NullParameter, "name");
|
||||
if (name == nullptr) wpi_setWPIErrorWithContext(NullParameter, "name");
|
||||
InitCommand(name, -1.0);
|
||||
}
|
||||
|
||||
@@ -57,7 +57,7 @@ Command::Command(const char *name) {
|
||||
Command::Command(double timeout) {
|
||||
if (timeout < 0.0)
|
||||
wpi_setWPIErrorWithContext(ParameterOutOfRange, "timeout < 0.0");
|
||||
InitCommand(NULL, timeout);
|
||||
InitCommand(nullptr, timeout);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -67,14 +67,14 @@ Command::Command(double timeout) {
|
||||
* @see Command#isTimedOut() isTimedOut()
|
||||
*/
|
||||
Command::Command(const char *name, double timeout) {
|
||||
if (name == NULL) wpi_setWPIErrorWithContext(NullParameter, "name");
|
||||
if (name == nullptr) wpi_setWPIErrorWithContext(NullParameter, "name");
|
||||
if (timeout < 0.0)
|
||||
wpi_setWPIErrorWithContext(ParameterOutOfRange, "timeout < 0.0");
|
||||
InitCommand(name, timeout);
|
||||
}
|
||||
|
||||
Command::~Command() { // TODO deal with cleaning up all listeners
|
||||
/*if (m_table != NULL){
|
||||
/*if (m_table != nullptr){
|
||||
m_table->RemoveChangeListener(kRunning, this);
|
||||
}*/
|
||||
}
|
||||
@@ -124,7 +124,7 @@ double Command::TimeSinceInitialized() const {
|
||||
void Command::Requires(Subsystem *subsystem) {
|
||||
if (!AssertUnlocked("Can not add new requirement to command")) return;
|
||||
|
||||
if (subsystem != NULL)
|
||||
if (subsystem != nullptr)
|
||||
m_requirements.insert(subsystem);
|
||||
else
|
||||
wpi_setWPIErrorWithContext(NullParameter, "subsystem");
|
||||
@@ -148,7 +148,7 @@ void Command::Removed() {
|
||||
m_initialized = false;
|
||||
m_canceled = false;
|
||||
m_running = false;
|
||||
if (m_table != NULL) m_table->PutBoolean(kRunning, false);
|
||||
if (m_table != nullptr) m_table->PutBoolean(kRunning, false);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -160,7 +160,7 @@ void Command::Removed() {
|
||||
*/
|
||||
void Command::Start() {
|
||||
LockChanges();
|
||||
if (m_parent != NULL)
|
||||
if (m_parent != nullptr)
|
||||
wpi_setWPIErrorWithContext(
|
||||
CommandIllegalUse,
|
||||
"Can not start a command that is part of a command group");
|
||||
@@ -173,7 +173,7 @@ void Command::Start() {
|
||||
* @return whether or not the command should stay within the {@link Scheduler}.
|
||||
*/
|
||||
bool Command::Run() {
|
||||
if (!m_runWhenDisabled && m_parent == NULL && RobotState::IsDisabled())
|
||||
if (!m_runWhenDisabled && m_parent == nullptr && RobotState::IsDisabled())
|
||||
Cancel();
|
||||
|
||||
if (IsCanceled()) return false;
|
||||
@@ -255,16 +255,16 @@ bool Command::AssertUnlocked(const char *message) {
|
||||
* @param parent the parent
|
||||
*/
|
||||
void Command::SetParent(CommandGroup *parent) {
|
||||
if (parent == NULL) {
|
||||
if (parent == nullptr) {
|
||||
wpi_setWPIErrorWithContext(NullParameter, "parent");
|
||||
} else if (m_parent != NULL) {
|
||||
} else if (m_parent != nullptr) {
|
||||
wpi_setWPIErrorWithContext(CommandIllegalUse,
|
||||
"Can not give command to a command group after "
|
||||
"already being put in a command group");
|
||||
} else {
|
||||
LockChanges();
|
||||
m_parent = parent;
|
||||
if (m_table != NULL) {
|
||||
if (m_table != nullptr) {
|
||||
m_table->PutBoolean(kIsParented, true);
|
||||
}
|
||||
}
|
||||
@@ -285,7 +285,7 @@ void Command::SetParent(CommandGroup *parent) {
|
||||
void Command::StartRunning() {
|
||||
m_running = true;
|
||||
m_startTime = -1;
|
||||
if (m_table != NULL) m_table->PutBoolean(kRunning, true);
|
||||
if (m_table != nullptr) m_table->PutBoolean(kRunning, true);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -308,7 +308,7 @@ bool Command::IsRunning() const { return m_running; }
|
||||
* instead.</p>
|
||||
*/
|
||||
void Command::Cancel() {
|
||||
if (m_parent != NULL)
|
||||
if (m_parent != nullptr)
|
||||
wpi_setWPIErrorWithContext(
|
||||
CommandIllegalUse,
|
||||
"Can not cancel a command that is part of a command group");
|
||||
@@ -348,7 +348,7 @@ void Command::SetInterruptible(bool interruptible) {
|
||||
/**
|
||||
* Checks if the command requires the given {@link Subsystem}.
|
||||
* @param system the system
|
||||
* @return whether or not the subsystem is required (false if given NULL)
|
||||
* @return whether or not the subsystem is required (false if given nullptr)
|
||||
*/
|
||||
bool Command::DoesRequire(Subsystem *system) const {
|
||||
return m_requirements.count(system) > 0;
|
||||
@@ -390,12 +390,12 @@ std::string Command::GetName() {
|
||||
std::string Command::GetSmartDashboardType() const { return "Command"; }
|
||||
|
||||
void Command::InitTable(ITable *table) {
|
||||
if (m_table != NULL) m_table->RemoveTableListener(this);
|
||||
if (m_table != nullptr) m_table->RemoveTableListener(this);
|
||||
m_table = table;
|
||||
if (m_table != NULL) {
|
||||
if (m_table != nullptr) {
|
||||
m_table->PutString(kName, GetName());
|
||||
m_table->PutBoolean(kRunning, IsRunning());
|
||||
m_table->PutBoolean(kIsParented, m_parent != NULL);
|
||||
m_table->PutBoolean(kIsParented, m_parent != nullptr);
|
||||
m_table->AddTableListener(kRunning, this, false);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -39,7 +39,7 @@ CommandGroup::~CommandGroup() {}
|
||||
* @param command The {@link Command Command} to be added
|
||||
*/
|
||||
void CommandGroup::AddSequential(Command *command) {
|
||||
if (command == NULL) {
|
||||
if (command == nullptr) {
|
||||
wpi_setWPIErrorWithContext(NullParameter, "command");
|
||||
return;
|
||||
}
|
||||
@@ -52,7 +52,7 @@ void CommandGroup::AddSequential(Command *command) {
|
||||
// Iterate through command->GetRequirements() and call Requires() on each
|
||||
// required subsystem
|
||||
Command::SubsystemSet requirements = command->GetRequirements();
|
||||
Command::SubsystemSet::iterator iter = requirements.begin();
|
||||
auto iter = requirements.begin();
|
||||
for (; iter != requirements.end(); iter++) Requires(*iter);
|
||||
}
|
||||
|
||||
@@ -79,7 +79,7 @@ void CommandGroup::AddSequential(Command *command) {
|
||||
* @param timeout The timeout (in seconds)
|
||||
*/
|
||||
void CommandGroup::AddSequential(Command *command, double timeout) {
|
||||
if (command == NULL) {
|
||||
if (command == nullptr) {
|
||||
wpi_setWPIErrorWithContext(NullParameter, "command");
|
||||
return;
|
||||
}
|
||||
@@ -96,7 +96,7 @@ void CommandGroup::AddSequential(Command *command, double timeout) {
|
||||
// Iterate through command->GetRequirements() and call Requires() on each
|
||||
// required subsystem
|
||||
Command::SubsystemSet requirements = command->GetRequirements();
|
||||
Command::SubsystemSet::iterator iter = requirements.begin();
|
||||
auto iter = requirements.begin();
|
||||
for (; iter != requirements.end(); iter++) Requires(*iter);
|
||||
}
|
||||
|
||||
@@ -126,7 +126,7 @@ void CommandGroup::AddSequential(Command *command, double timeout) {
|
||||
* @param command The command to be added
|
||||
*/
|
||||
void CommandGroup::AddParallel(Command *command) {
|
||||
if (command == NULL) {
|
||||
if (command == nullptr) {
|
||||
wpi_setWPIErrorWithContext(NullParameter, "command");
|
||||
return;
|
||||
}
|
||||
@@ -139,7 +139,7 @@ void CommandGroup::AddParallel(Command *command) {
|
||||
// Iterate through command->GetRequirements() and call Requires() on each
|
||||
// required subsystem
|
||||
Command::SubsystemSet requirements = command->GetRequirements();
|
||||
Command::SubsystemSet::iterator iter = requirements.begin();
|
||||
auto iter = requirements.begin();
|
||||
for (; iter != requirements.end(); iter++) Requires(*iter);
|
||||
}
|
||||
|
||||
@@ -177,7 +177,7 @@ void CommandGroup::AddParallel(Command *command) {
|
||||
* @param timeout The timeout (in seconds)
|
||||
*/
|
||||
void CommandGroup::AddParallel(Command *command, double timeout) {
|
||||
if (command == NULL) {
|
||||
if (command == nullptr) {
|
||||
wpi_setWPIErrorWithContext(NullParameter, "command");
|
||||
return;
|
||||
}
|
||||
@@ -194,7 +194,7 @@ void CommandGroup::AddParallel(Command *command, double timeout) {
|
||||
// Iterate through command->GetRequirements() and call Requires() on each
|
||||
// required subsystem
|
||||
Command::SubsystemSet requirements = command->GetRequirements();
|
||||
Command::SubsystemSet::iterator iter = requirements.begin();
|
||||
auto iter = requirements.begin();
|
||||
for (; iter != requirements.end(); iter++) Requires(*iter);
|
||||
}
|
||||
|
||||
@@ -202,7 +202,7 @@ void CommandGroup::_Initialize() { m_currentCommandIndex = -1; }
|
||||
|
||||
void CommandGroup::_Execute() {
|
||||
CommandGroupEntry entry;
|
||||
Command *cmd = NULL;
|
||||
Command *cmd = nullptr;
|
||||
bool firstRun = false;
|
||||
|
||||
if (m_currentCommandIndex == -1) {
|
||||
@@ -211,7 +211,7 @@ void CommandGroup::_Execute() {
|
||||
}
|
||||
|
||||
while ((unsigned)m_currentCommandIndex < m_commands.size()) {
|
||||
if (cmd != NULL) {
|
||||
if (cmd != nullptr) {
|
||||
if (entry.IsTimedOut()) cmd->_Cancel();
|
||||
|
||||
if (cmd->Run()) {
|
||||
@@ -220,13 +220,13 @@ void CommandGroup::_Execute() {
|
||||
cmd->Removed();
|
||||
m_currentCommandIndex++;
|
||||
firstRun = true;
|
||||
cmd = NULL;
|
||||
cmd = nullptr;
|
||||
continue;
|
||||
}
|
||||
}
|
||||
|
||||
entry = m_commands[m_currentCommandIndex];
|
||||
cmd = NULL;
|
||||
cmd = nullptr;
|
||||
|
||||
switch (entry.m_state) {
|
||||
case CommandGroupEntry::kSequence_InSequence:
|
||||
@@ -253,7 +253,7 @@ void CommandGroup::_Execute() {
|
||||
}
|
||||
|
||||
// Run Children
|
||||
CommandList::iterator iter = m_children.begin();
|
||||
auto iter = m_children.begin();
|
||||
for (; iter != m_children.end();) {
|
||||
entry = *iter;
|
||||
Command *child = entry.m_command;
|
||||
@@ -278,7 +278,7 @@ void CommandGroup::_End() {
|
||||
cmd->Removed();
|
||||
}
|
||||
|
||||
CommandList::iterator iter = m_children.begin();
|
||||
auto iter = m_children.begin();
|
||||
for (; iter != m_children.end(); iter++) {
|
||||
Command *cmd = iter->m_command;
|
||||
cmd->_Cancel();
|
||||
@@ -315,7 +315,7 @@ bool CommandGroup::IsInterruptible() const {
|
||||
if (!cmd->IsInterruptible()) return false;
|
||||
}
|
||||
|
||||
CommandList::const_iterator iter = m_children.cbegin();
|
||||
auto iter = m_children.cbegin();
|
||||
for (; iter != m_children.cend(); iter++) {
|
||||
if (!iter->m_command->IsInterruptible()) return false;
|
||||
}
|
||||
@@ -324,13 +324,13 @@ bool CommandGroup::IsInterruptible() const {
|
||||
}
|
||||
|
||||
void CommandGroup::CancelConflicts(Command *command) {
|
||||
CommandList::iterator childIter = m_children.begin();
|
||||
auto childIter = m_children.begin();
|
||||
for (; childIter != m_children.end();) {
|
||||
Command *child = childIter->m_command;
|
||||
bool erased = false;
|
||||
|
||||
Command::SubsystemSet requirements = command->GetRequirements();
|
||||
Command::SubsystemSet::iterator requirementIter = requirements.begin();
|
||||
auto requirementIter = requirements.begin();
|
||||
for (; requirementIter != requirements.end(); requirementIter++) {
|
||||
if (child->DoesRequire(*requirementIter)) {
|
||||
child->_Cancel();
|
||||
|
||||
@@ -10,7 +10,7 @@
|
||||
#include "Commands/Command.h"
|
||||
|
||||
CommandGroupEntry::CommandGroupEntry()
|
||||
: m_timeout(-1.0), m_command(NULL), m_state(kSequence_InSequence) {}
|
||||
: m_timeout(-1.0), m_command(nullptr), m_state(kSequence_InSequence) {}
|
||||
|
||||
CommandGroupEntry::CommandGroupEntry(Command *command, Sequence state)
|
||||
: m_timeout(-1.0), m_command(command), m_state(state) {}
|
||||
|
||||
@@ -16,21 +16,21 @@
|
||||
#include <set>
|
||||
#include <algorithm>
|
||||
|
||||
Scheduler *Scheduler::_instance = NULL;
|
||||
Scheduler *Scheduler::_instance = nullptr;
|
||||
|
||||
Scheduler::Scheduler()
|
||||
: m_buttonsLock(NULL), m_additionsLock(NULL), m_adding(false) {
|
||||
: m_buttonsLock(nullptr), m_additionsLock(nullptr), m_adding(false) {
|
||||
m_buttonsLock = initializeMutexNormal();
|
||||
m_additionsLock = initializeMutexNormal();
|
||||
|
||||
HLUsageReporting::ReportScheduler();
|
||||
|
||||
m_table = NULL;
|
||||
m_table = nullptr;
|
||||
m_enabled = true;
|
||||
m_runningCommandsChanged = false;
|
||||
toCancel = NULL;
|
||||
commands = NULL;
|
||||
ids = NULL;
|
||||
toCancel = nullptr;
|
||||
commands = nullptr;
|
||||
ids = nullptr;
|
||||
}
|
||||
|
||||
Scheduler::~Scheduler() {
|
||||
@@ -46,7 +46,7 @@ Scheduler::~Scheduler() {
|
||||
* @return the {@link Scheduler}
|
||||
*/
|
||||
Scheduler *Scheduler::GetInstance() {
|
||||
if (_instance == NULL) _instance = new Scheduler();
|
||||
if (_instance == nullptr) _instance = new Scheduler();
|
||||
return _instance;
|
||||
}
|
||||
|
||||
@@ -73,7 +73,7 @@ void Scheduler::AddButton(ButtonScheduler *button) {
|
||||
}
|
||||
|
||||
void Scheduler::ProcessCommandAddition(Command *command) {
|
||||
if (command == NULL) return;
|
||||
if (command == nullptr) return;
|
||||
|
||||
// Check to make sure no adding during adding
|
||||
if (m_adding) {
|
||||
@@ -83,14 +83,14 @@ void Scheduler::ProcessCommandAddition(Command *command) {
|
||||
}
|
||||
|
||||
// Only add if not already in
|
||||
CommandSet::iterator found = m_commands.find(command);
|
||||
auto found = m_commands.find(command);
|
||||
if (found == m_commands.end()) {
|
||||
// Check that the requirements can be had
|
||||
Command::SubsystemSet requirements = command->GetRequirements();
|
||||
Command::SubsystemSet::iterator iter;
|
||||
for (iter = requirements.begin(); iter != requirements.end(); iter++) {
|
||||
Subsystem *lock = *iter;
|
||||
if (lock->GetCurrentCommand() != NULL &&
|
||||
if (lock->GetCurrentCommand() != nullptr &&
|
||||
!lock->GetCurrentCommand()->IsInterruptible())
|
||||
return;
|
||||
}
|
||||
@@ -99,7 +99,7 @@ void Scheduler::ProcessCommandAddition(Command *command) {
|
||||
m_adding = true;
|
||||
for (iter = requirements.begin(); iter != requirements.end(); iter++) {
|
||||
Subsystem *lock = *iter;
|
||||
if (lock->GetCurrentCommand() != NULL) {
|
||||
if (lock->GetCurrentCommand() != nullptr) {
|
||||
lock->GetCurrentCommand()->Cancel();
|
||||
Remove(lock->GetCurrentCommand());
|
||||
}
|
||||
@@ -133,7 +133,7 @@ void Scheduler::Run() {
|
||||
if (!m_enabled) return;
|
||||
|
||||
Synchronized sync(m_buttonsLock);
|
||||
ButtonVector::reverse_iterator rButtonIter = m_buttons.rbegin();
|
||||
auto rButtonIter = m_buttons.rbegin();
|
||||
for (; rButtonIter != m_buttons.rend(); rButtonIter++) {
|
||||
(*rButtonIter)->Execute();
|
||||
}
|
||||
@@ -142,7 +142,7 @@ void Scheduler::Run() {
|
||||
m_runningCommandsChanged = false;
|
||||
|
||||
// Loop through the commands
|
||||
CommandSet::iterator commandIter = m_commands.begin();
|
||||
auto commandIter = m_commands.begin();
|
||||
for (; commandIter != m_commands.end();) {
|
||||
Command *command = *commandIter;
|
||||
// Increment before potentially removing to keep the iterator valid
|
||||
@@ -156,7 +156,7 @@ void Scheduler::Run() {
|
||||
// Add the new things
|
||||
{
|
||||
Synchronized sync(m_additionsLock);
|
||||
CommandVector::iterator additionsIter = m_additions.begin();
|
||||
auto additionsIter = m_additions.begin();
|
||||
for (; additionsIter != m_additions.end(); additionsIter++) {
|
||||
ProcessCommandAddition(*additionsIter);
|
||||
}
|
||||
@@ -164,10 +164,10 @@ void Scheduler::Run() {
|
||||
}
|
||||
|
||||
// Add in the defaults
|
||||
Command::SubsystemSet::iterator subsystemIter = m_subsystems.begin();
|
||||
auto subsystemIter = m_subsystems.begin();
|
||||
for (; subsystemIter != m_subsystems.end(); subsystemIter++) {
|
||||
Subsystem *lock = *subsystemIter;
|
||||
if (lock->GetCurrentCommand() == NULL) {
|
||||
if (lock->GetCurrentCommand() == nullptr) {
|
||||
ProcessCommandAddition(lock->GetDefaultCommand());
|
||||
}
|
||||
lock->ConfirmCommand();
|
||||
@@ -184,7 +184,7 @@ void Scheduler::Run() {
|
||||
* @param system the system
|
||||
*/
|
||||
void Scheduler::RegisterSubsystem(Subsystem *subsystem) {
|
||||
if (subsystem == NULL) {
|
||||
if (subsystem == nullptr) {
|
||||
wpi_setWPIErrorWithContext(NullParameter, "subsystem");
|
||||
return;
|
||||
}
|
||||
@@ -196,7 +196,7 @@ void Scheduler::RegisterSubsystem(Subsystem *subsystem) {
|
||||
* @param command the command to remove
|
||||
*/
|
||||
void Scheduler::Remove(Command *command) {
|
||||
if (command == NULL) {
|
||||
if (command == nullptr) {
|
||||
wpi_setWPIErrorWithContext(NullParameter, "command");
|
||||
return;
|
||||
}
|
||||
@@ -204,10 +204,10 @@ void Scheduler::Remove(Command *command) {
|
||||
if (!m_commands.erase(command)) return;
|
||||
|
||||
Command::SubsystemSet requirements = command->GetRequirements();
|
||||
Command::SubsystemSet::iterator iter = requirements.begin();
|
||||
auto iter = requirements.begin();
|
||||
for (; iter != requirements.end(); iter++) {
|
||||
Subsystem *lock = *iter;
|
||||
lock->SetCurrentCommand(NULL);
|
||||
lock->SetCurrentCommand(nullptr);
|
||||
}
|
||||
|
||||
command->Removed();
|
||||
@@ -228,7 +228,7 @@ void Scheduler::ResetAll() {
|
||||
m_buttons.clear();
|
||||
m_additions.clear();
|
||||
m_commands.clear();
|
||||
m_table = NULL;
|
||||
m_table = nullptr;
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -237,7 +237,7 @@ void Scheduler::ResetAll() {
|
||||
*/
|
||||
void Scheduler::UpdateTable() {
|
||||
CommandSet::iterator commandIter;
|
||||
if (m_table != NULL) {
|
||||
if (m_table != nullptr) {
|
||||
// Get the list of possible commands to cancel
|
||||
m_table->RetrieveValue("Cancel", *toCancel);
|
||||
// m_table->RetrieveValue("Ids", *ids);
|
||||
|
||||
@@ -16,12 +16,12 @@
|
||||
* @param name the name of the subsystem
|
||||
*/
|
||||
Subsystem::Subsystem(const char *name)
|
||||
: m_currentCommand(NULL),
|
||||
m_defaultCommand(NULL),
|
||||
: m_currentCommand(nullptr),
|
||||
m_defaultCommand(nullptr),
|
||||
m_initializedDefaultCommand(false) {
|
||||
m_name = name;
|
||||
Scheduler::GetInstance()->RegisterSubsystem(this);
|
||||
m_table = NULL;
|
||||
m_table = nullptr;
|
||||
m_currentCommandChanged = true;
|
||||
}
|
||||
/**
|
||||
@@ -47,12 +47,12 @@ void Subsystem::InitDefaultCommand() {}
|
||||
* @param command the default command (or null if there should be none)
|
||||
*/
|
||||
void Subsystem::SetDefaultCommand(Command *command) {
|
||||
if (command == NULL) {
|
||||
m_defaultCommand = NULL;
|
||||
if (command == nullptr) {
|
||||
m_defaultCommand = nullptr;
|
||||
} else {
|
||||
bool found = false;
|
||||
Command::SubsystemSet requirements = command->GetRequirements();
|
||||
Command::SubsystemSet::iterator iter = requirements.begin();
|
||||
auto iter = requirements.begin();
|
||||
for (; iter != requirements.end(); iter++) {
|
||||
if (*iter == this) {
|
||||
found = true;
|
||||
@@ -68,8 +68,8 @@ void Subsystem::SetDefaultCommand(Command *command) {
|
||||
|
||||
m_defaultCommand = command;
|
||||
}
|
||||
if (m_table != NULL) {
|
||||
if (m_defaultCommand != NULL) {
|
||||
if (m_table != nullptr) {
|
||||
if (m_defaultCommand != nullptr) {
|
||||
m_table->PutBoolean("hasDefault", true);
|
||||
m_table->PutString("default", m_defaultCommand->GetName());
|
||||
} else {
|
||||
@@ -115,8 +115,8 @@ Command *Subsystem::GetCurrentCommand() const { return m_currentCommand; }
|
||||
*/
|
||||
void Subsystem::ConfirmCommand() {
|
||||
if (m_currentCommandChanged) {
|
||||
if (m_table != NULL) {
|
||||
if (m_currentCommand != NULL) {
|
||||
if (m_table != nullptr) {
|
||||
if (m_currentCommand != nullptr) {
|
||||
m_table->PutBoolean("hasCommand", true);
|
||||
m_table->PutString("command", m_currentCommand->GetName());
|
||||
} else {
|
||||
@@ -133,14 +133,14 @@ std::string Subsystem::GetSmartDashboardType() const { return "Subsystem"; }
|
||||
|
||||
void Subsystem::InitTable(ITable *table) {
|
||||
m_table = table;
|
||||
if (m_table != NULL) {
|
||||
if (m_defaultCommand != NULL) {
|
||||
if (m_table != nullptr) {
|
||||
if (m_defaultCommand != nullptr) {
|
||||
m_table->PutBoolean("hasDefault", true);
|
||||
m_table->PutString("default", m_defaultCommand->GetName());
|
||||
} else {
|
||||
m_table->PutBoolean("hasDefault", false);
|
||||
}
|
||||
if (m_currentCommand != NULL) {
|
||||
if (m_currentCommand != nullptr) {
|
||||
m_table->PutBoolean("hasCommand", true);
|
||||
m_table->PutString("command", m_currentCommand->GetName());
|
||||
} else {
|
||||
|
||||
@@ -23,5 +23,5 @@ void WaitForChildren::End() {}
|
||||
void WaitForChildren::Interrupted() {}
|
||||
|
||||
bool WaitForChildren::IsFinished() {
|
||||
return GetGroup() == NULL || GetGroup()->GetSize() == 0;
|
||||
return GetGroup() == nullptr || GetGroup()->GetSize() == 0;
|
||||
}
|
||||
|
||||
@@ -20,7 +20,7 @@
|
||||
bool Error::m_suspendOnErrorEnabled = false;
|
||||
|
||||
Error::Error()
|
||||
: m_code(0), m_lineNumber(0), m_originatingObject(NULL), m_timestamp(0.0) {}
|
||||
: m_code(0), m_lineNumber(0), m_originatingObject(nullptr), m_timestamp(0.0) {}
|
||||
|
||||
Error::~Error() {}
|
||||
|
||||
@@ -71,7 +71,7 @@ void Error::Set(Code code, const char* contextMessage, const char* filename,
|
||||
Report();
|
||||
}
|
||||
|
||||
if (m_suspendOnErrorEnabled) suspendTask(0);
|
||||
if (m_suspendOnErrorEnabled) suspendTask(nullptr);
|
||||
}
|
||||
|
||||
void Error::Report() {
|
||||
@@ -93,6 +93,6 @@ void Error::Clear() {
|
||||
m_filename = "";
|
||||
m_function = "";
|
||||
m_lineNumber = 0;
|
||||
m_originatingObject = NULL;
|
||||
m_originatingObject = nullptr;
|
||||
m_timestamp = 0.0;
|
||||
}
|
||||
|
||||
@@ -165,7 +165,7 @@ void ErrorBase::SetGlobalError(Error::Code code, const char* contextMessage,
|
||||
|
||||
// Set the current error information for this object.
|
||||
_globalError.Set(code, contextMessage, filename, function, lineNumber,
|
||||
NULL);
|
||||
nullptr);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -180,7 +180,7 @@ void ErrorBase::SetGlobalWPIError(const char* errorMessage,
|
||||
if (_globalError.GetCode() != 0) {
|
||||
_globalError.Clear();
|
||||
}
|
||||
_globalError.Set(-1, err, filename, function, lineNumber, NULL);
|
||||
_globalError.Set(-1, err, filename, function, lineNumber, nullptr);
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -1,20 +1,20 @@
|
||||
|
||||
#include "HLUsageReporting.h"
|
||||
|
||||
HLUsageReportingInterface* HLUsageReporting::impl = 0;
|
||||
HLUsageReportingInterface* HLUsageReporting::impl = nullptr;
|
||||
|
||||
void HLUsageReporting::SetImplementation(HLUsageReportingInterface* i) {
|
||||
impl = i;
|
||||
}
|
||||
|
||||
void HLUsageReporting::ReportScheduler() {
|
||||
if (impl != 0) {
|
||||
if (impl != nullptr) {
|
||||
impl->ReportScheduler();
|
||||
}
|
||||
}
|
||||
|
||||
void HLUsageReporting::ReportSmartDashboard() {
|
||||
if (impl != 0) {
|
||||
if (impl != nullptr) {
|
||||
impl->ReportSmartDashboard();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -39,16 +39,12 @@ void LiveWindow::SetEnabled(bool enabled) {
|
||||
}
|
||||
m_scheduler->SetEnabled(false);
|
||||
m_scheduler->RemoveAll();
|
||||
for (std::map<LiveWindowSendable *, LiveWindowComponent>::iterator it =
|
||||
m_components.begin();
|
||||
it != m_components.end(); ++it) {
|
||||
it->first->StartLiveWindowMode();
|
||||
for (auto& elem : m_components) {
|
||||
elem.first->StartLiveWindowMode();
|
||||
}
|
||||
} else {
|
||||
for (std::map<LiveWindowSendable *, LiveWindowComponent>::iterator it =
|
||||
m_components.begin();
|
||||
it != m_components.end(); ++it) {
|
||||
it->first->StopLiveWindowMode();
|
||||
for (auto& elem : m_components) {
|
||||
elem.first->StopLiveWindowMode();
|
||||
}
|
||||
m_scheduler->SetEnabled(true);
|
||||
}
|
||||
@@ -94,7 +90,7 @@ void LiveWindow::AddSensor(std::string type, int channel,
|
||||
std::ostringstream oss;
|
||||
oss << type << "[" << channel << "]";
|
||||
std::string types(oss.str());
|
||||
char *cc = new char[types.size() + 1];
|
||||
auto cc = new char[types.size() + 1];
|
||||
types.copy(cc, types.size());
|
||||
cc[types.size()] = '\0';
|
||||
AddSensor("Ungrouped", cc, component);
|
||||
@@ -111,7 +107,7 @@ void LiveWindow::AddActuator(std::string type, int channel,
|
||||
std::ostringstream oss;
|
||||
oss << type << "[" << channel << "]";
|
||||
std::string types(oss.str());
|
||||
char *cc = new char[types.size() + 1];
|
||||
auto cc = new char[types.size() + 1];
|
||||
types.copy(cc, types.size());
|
||||
cc[types.size()] = '\0';
|
||||
AddActuator("Ungrouped", cc, component);
|
||||
@@ -125,7 +121,7 @@ void LiveWindow::AddActuator(std::string type, int module, int channel,
|
||||
std::ostringstream oss;
|
||||
oss << type << "[" << module << "," << channel << "]";
|
||||
std::string types(oss.str());
|
||||
char *cc = new char[types.size() + 1];
|
||||
auto cc = new char[types.size() + 1];
|
||||
types.copy(cc, types.size());
|
||||
cc[types.size()] = '\0';
|
||||
AddActuator("Ungrouped", cc, component);
|
||||
@@ -137,8 +133,8 @@ void LiveWindow::AddActuator(std::string type, int module, int channel,
|
||||
* SmartDashboard widgets.
|
||||
*/
|
||||
void LiveWindow::UpdateValues() {
|
||||
for (unsigned int i = 0; i < m_sensors.size(); i++) {
|
||||
m_sensors[i]->UpdateTable();
|
||||
for (auto& elem : m_sensors) {
|
||||
elem->UpdateTable();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -164,11 +160,9 @@ void LiveWindow::Run() {
|
||||
* addActuator and addSensor.
|
||||
*/
|
||||
void LiveWindow::InitializeLiveWindowComponents() {
|
||||
for (std::map<LiveWindowSendable *, LiveWindowComponent>::iterator it =
|
||||
m_components.begin();
|
||||
it != m_components.end(); ++it) {
|
||||
LiveWindowSendable *component = it->first;
|
||||
LiveWindowComponent c = it->second;
|
||||
for (auto& elem : m_components) {
|
||||
LiveWindowSendable *component = elem.first;
|
||||
LiveWindowComponent c = elem.second;
|
||||
std::string subsystem = c.subsystem;
|
||||
std::string name = c.name;
|
||||
m_liveWindowTable->GetSubTable(subsystem)
|
||||
|
||||
@@ -30,8 +30,8 @@ Resource::Resource(uint32_t elements) {
|
||||
/**
|
||||
* Factory method to create a Resource allocation-tracker *if* needed.
|
||||
*
|
||||
* @param r -- address of the caller's Resource pointer. If *r == NULL, this
|
||||
* will construct a Resource and make *r point to it. If *r != NULL, i.e.
|
||||
* @param r -- address of the caller's Resource pointer. If *r == nullptr, this
|
||||
* will construct a Resource and make *r point to it. If *r != nullptr, i.e.
|
||||
* the caller already has a Resource instance, this won't do anything.
|
||||
* @param elements -- the number of elements for this Resource allocator to
|
||||
* track, that is, it will allocate resource numbers in the range
|
||||
@@ -40,7 +40,7 @@ Resource::Resource(uint32_t elements) {
|
||||
/*static*/ void Resource::CreateResourceObject(Resource **r,
|
||||
uint32_t elements) {
|
||||
Synchronized sync(m_createLock);
|
||||
if (*r == NULL) {
|
||||
if (*r == nullptr) {
|
||||
*r = new Resource(elements);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
#include "RobotState.h"
|
||||
|
||||
RobotStateInterface* RobotState::impl = 0;
|
||||
RobotStateInterface* RobotState::impl = nullptr;
|
||||
|
||||
void RobotState::SetImplementation(RobotStateInterface* i) { impl = i; }
|
||||
|
||||
|
||||
@@ -44,13 +44,13 @@ void SendableChooser::AddDefault(const char *name, void *object) {
|
||||
/**
|
||||
* Returns the selected option. If there is none selected, it will return the
|
||||
* default. If there is none selected
|
||||
* and no default, then it will return {@code NULL}.
|
||||
* and no default, then it will return {@code nullptr}.
|
||||
* @return the option selected
|
||||
*/
|
||||
void *SendableChooser::GetSelected() {
|
||||
std::string selected = m_table->GetString(kSelected, m_defaultChoice);
|
||||
if (selected == "")
|
||||
return NULL;
|
||||
return nullptr;
|
||||
else
|
||||
return m_choices[selected];
|
||||
}
|
||||
@@ -58,7 +58,7 @@ void *SendableChooser::GetSelected() {
|
||||
void SendableChooser::InitTable(ITable *subtable) {
|
||||
StringArray keys;
|
||||
m_table = subtable;
|
||||
if (m_table != NULL) {
|
||||
if (m_table != nullptr) {
|
||||
std::map<std::string, void *>::iterator iter;
|
||||
for (iter = m_choices.begin(); iter != m_choices.end(); iter++) {
|
||||
keys.add(iter->first);
|
||||
|
||||
@@ -13,7 +13,7 @@
|
||||
#include "networktables/NetworkTable.h"
|
||||
#include "HLUsageReporting.h"
|
||||
|
||||
ITable *SmartDashboard::m_table = NULL;
|
||||
ITable *SmartDashboard::m_table = nullptr;
|
||||
std::map<ITable *, Sendable *> SmartDashboard::m_tablesToData;
|
||||
|
||||
void SmartDashboard::init() {
|
||||
@@ -24,14 +24,14 @@ void SmartDashboard::init() {
|
||||
|
||||
/**
|
||||
* Maps the specified key to the specified value in this table.
|
||||
* The key can not be NULL.
|
||||
* The key can not be nullptr.
|
||||
* The value can be retrieved by calling the get method with a key that is equal
|
||||
* to the original key.
|
||||
* @param keyName the key
|
||||
* @param value the value
|
||||
*/
|
||||
void SmartDashboard::PutData(std::string key, Sendable *data) {
|
||||
if (data == NULL) {
|
||||
if (data == nullptr) {
|
||||
wpi_setGlobalWPIErrorWithContext(NullParameter, "value");
|
||||
return;
|
||||
}
|
||||
@@ -50,7 +50,7 @@ void SmartDashboard::PutData(std::string key, Sendable *data) {
|
||||
* @param value the value
|
||||
*/
|
||||
void SmartDashboard::PutData(NamedSendable *value) {
|
||||
if (value == NULL) {
|
||||
if (value == nullptr) {
|
||||
wpi_setGlobalWPIErrorWithContext(NullParameter, "value");
|
||||
return;
|
||||
}
|
||||
@@ -65,9 +65,9 @@ void SmartDashboard::PutData(NamedSendable *value) {
|
||||
Sendable *SmartDashboard::GetData(std::string key) {
|
||||
ITable *subtable = m_table->GetSubTable(key);
|
||||
Sendable *data = m_tablesToData[subtable];
|
||||
if (data == NULL) {
|
||||
if (data == nullptr) {
|
||||
wpi_setGlobalWPIErrorWithContext(SmartDashboardMissingKey, key.c_str());
|
||||
return NULL;
|
||||
return nullptr;
|
||||
}
|
||||
return data;
|
||||
}
|
||||
@@ -75,7 +75,7 @@ Sendable *SmartDashboard::GetData(std::string key) {
|
||||
/**
|
||||
* Maps the specified key to the specified complex value (such as an array) in
|
||||
* this table.
|
||||
* The key can not be NULL.
|
||||
* The key can not be nullptr.
|
||||
* The value can be retrieved by calling the RetrieveValue method with a key
|
||||
* that is equal to the original key.
|
||||
* @param keyName the key
|
||||
@@ -88,7 +88,7 @@ void SmartDashboard::PutValue(std::string keyName, ComplexData &value) {
|
||||
/**
|
||||
* Retrieves the complex value (such as an array) in this table into the complex
|
||||
* data object
|
||||
* The key can not be NULL.
|
||||
* The key can not be nullptr.
|
||||
* @param keyName the key
|
||||
* @param value the object to retrieve the value into
|
||||
*/
|
||||
@@ -98,7 +98,7 @@ void SmartDashboard::RetrieveValue(std::string keyName, ComplexData &value) {
|
||||
|
||||
/**
|
||||
* Maps the specified key to the specified value in this table.
|
||||
* The key can not be NULL.
|
||||
* The key can not be nullptr.
|
||||
* The value can be retrieved by calling the get method with a key that is equal
|
||||
* to the original key.
|
||||
* @param keyName the key
|
||||
@@ -130,7 +130,7 @@ bool SmartDashboard::GetBoolean(std::string keyName, bool defaultValue) {
|
||||
|
||||
/**
|
||||
* Maps the specified key to the specified value in this table.
|
||||
* The key can not be NULL.
|
||||
* The key can not be nullptr.
|
||||
* The value can be retrieved by calling the get method with a key that is equal
|
||||
* to the original key.
|
||||
* @param keyName the key
|
||||
@@ -162,7 +162,7 @@ double SmartDashboard::GetNumber(std::string keyName, double defaultValue) {
|
||||
|
||||
/**
|
||||
* Maps the specified key to the specified value in this table.
|
||||
* Neither the key nor the value can be NULL.
|
||||
* Neither the key nor the value can be nullptr.
|
||||
* The value can be retrieved by calling the get method with a key that is equal
|
||||
* to the original key.
|
||||
* @param keyName the key
|
||||
|
||||
@@ -66,7 +66,7 @@ class CANTalon : public MotorSafety,
|
||||
virtual void SetSetpoint(float value) override;
|
||||
virtual void Disable() override;
|
||||
virtual void EnableControl();
|
||||
virtual void Enable();
|
||||
virtual void Enable() override;
|
||||
virtual void SetP(double p) override;
|
||||
virtual void SetI(double i) override;
|
||||
virtual void SetD(double d) override;
|
||||
|
||||
@@ -49,7 +49,7 @@ class Compressor : public SensorBase,
|
||||
void InitTable(ITable *subTable) override;
|
||||
ITable *GetTable() const override;
|
||||
void ValueChanged(ITable *source, const std::string &key, EntryValue value,
|
||||
bool isNew);
|
||||
bool isNew) override;
|
||||
|
||||
protected:
|
||||
void *m_pcm_pointer;
|
||||
|
||||
@@ -17,9 +17,9 @@ class Jaguar : public SafePWM, public SpeedController {
|
||||
public:
|
||||
explicit Jaguar(uint32_t channel);
|
||||
virtual ~Jaguar();
|
||||
virtual void Set(float value, uint8_t syncGroup = 0);
|
||||
virtual float Get() const;
|
||||
virtual void Disable();
|
||||
virtual void Set(float value, uint8_t syncGroup = 0) override;
|
||||
virtual float Get() const override;
|
||||
virtual void Disable() override;
|
||||
|
||||
virtual void PIDWrite(float output) override;
|
||||
virtual void SetInverted(bool isInverted) override;
|
||||
|
||||
@@ -31,7 +31,7 @@ class CANInterfacePlugin {
|
||||
* @param messageID The 29-bit CAN message ID in the lsbs. The msb can
|
||||
* indicate a remote frame.
|
||||
* @param data A pointer to a buffer containing between 0 and 8 bytes to send
|
||||
* with the message. May be NULL if dataSize is 0.
|
||||
* with the message. May be nullptr if dataSize is 0.
|
||||
* @param dataSize The number of bytes to send with the message.
|
||||
* @return Return any error code. On success return 0.
|
||||
*/
|
||||
@@ -101,7 +101,7 @@ class CANInterfacePlugin {
|
||||
*
|
||||
* @param interface A pointer to an object that inherits from CANInterfacePlugin
|
||||
* and implements
|
||||
* the pure virtual interface. If NULL, unregister the current plugin.
|
||||
* the pure virtual interface. If nullptr, unregister the current plugin.
|
||||
*/
|
||||
void FRC_NetworkCommunication_CANSessionMux_registerInterface(
|
||||
CANInterfacePlugin *interface);
|
||||
|
||||
@@ -128,7 +128,7 @@ typedef enum {
|
||||
* change the feature string.
|
||||
*/
|
||||
uint32_t EXPORT_FUNC report(tResourceType resource, uint8_t instanceNumber,
|
||||
uint8_t context = 0, const char *feature = NULL);
|
||||
uint8_t context = 0, const char *feature = nullptr);
|
||||
}
|
||||
|
||||
#ifdef __cplusplus
|
||||
|
||||
@@ -17,9 +17,9 @@ class Talon : public SafePWM, public SpeedController {
|
||||
public:
|
||||
explicit Talon(uint32_t channel);
|
||||
virtual ~Talon();
|
||||
virtual void Set(float value, uint8_t syncGroup = 0);
|
||||
virtual float Get() const;
|
||||
virtual void Disable();
|
||||
virtual void Set(float value, uint8_t syncGroup = 0) override;
|
||||
virtual float Get() const override;
|
||||
virtual void Disable() override;
|
||||
|
||||
virtual void PIDWrite(float output) override;
|
||||
virtual void SetInverted(bool isInverted) override;
|
||||
|
||||
@@ -20,9 +20,9 @@ class Victor : public SafePWM, public SpeedController {
|
||||
public:
|
||||
explicit Victor(uint32_t channel);
|
||||
virtual ~Victor();
|
||||
virtual void Set(float value, uint8_t syncGroup = 0);
|
||||
virtual float Get() const;
|
||||
virtual void Disable();
|
||||
virtual void Set(float value, uint8_t syncGroup = 0) override;
|
||||
virtual float Get() const override;
|
||||
virtual void Disable() override;
|
||||
|
||||
virtual void PIDWrite(float output) override;
|
||||
|
||||
|
||||
@@ -17,9 +17,9 @@ class VictorSP : public SafePWM, public SpeedController {
|
||||
public:
|
||||
explicit VictorSP(uint32_t channel);
|
||||
virtual ~VictorSP();
|
||||
virtual void Set(float value, uint8_t syncGroup = 0);
|
||||
virtual float Get() const;
|
||||
virtual void Disable();
|
||||
virtual void Set(float value, uint8_t syncGroup = 0) override;
|
||||
virtual float Get() const override;
|
||||
virtual void Disable() override;
|
||||
|
||||
virtual void PIDWrite(float output) override;
|
||||
|
||||
|
||||
@@ -54,9 +54,9 @@
|
||||
//============================================================================
|
||||
#ifndef NULL
|
||||
#ifdef __cplusplus
|
||||
#define NULL 0
|
||||
#else
|
||||
#define NULL ((void*)0)
|
||||
#else
|
||||
#define NULL 0
|
||||
#endif
|
||||
#endif
|
||||
|
||||
|
||||
@@ -40,7 +40,7 @@ ADXL345_I2C::ADXL345_I2C(Port port, Range range) : I2C(port, kAddress) {
|
||||
*/
|
||||
ADXL345_I2C::~ADXL345_I2C() {
|
||||
// delete m_i2c;
|
||||
// m_i2c = NULL;
|
||||
// m_i2c = nullptr;
|
||||
}
|
||||
|
||||
/** {@inheritdoc} */
|
||||
@@ -102,7 +102,7 @@ void ADXL345_I2C::InitTable(ITable *subtable) {
|
||||
}
|
||||
|
||||
void ADXL345_I2C::UpdateTable() {
|
||||
if (m_table != NULL) {
|
||||
if (m_table != nullptr) {
|
||||
m_table->PutNumber("X", GetX());
|
||||
m_table->PutNumber("Y", GetY());
|
||||
m_table->PutNumber("Z", GetZ());
|
||||
|
||||
@@ -56,7 +56,7 @@ void ADXL345_SPI::Init(Range range) {
|
||||
*/
|
||||
ADXL345_SPI::~ADXL345_SPI() {
|
||||
delete m_spi;
|
||||
m_spi = NULL;
|
||||
m_spi = nullptr;
|
||||
}
|
||||
|
||||
/** {@inheritdoc} */
|
||||
@@ -136,7 +136,7 @@ void ADXL345_SPI::InitTable(ITable* subtable) {
|
||||
}
|
||||
|
||||
void ADXL345_SPI::UpdateTable() {
|
||||
if (m_table != NULL) {
|
||||
if (m_table != nullptr) {
|
||||
m_table->PutNumber("X", GetX());
|
||||
m_table->PutNumber("Y", GetY());
|
||||
m_table->PutNumber("Z", GetZ());
|
||||
|
||||
@@ -14,7 +14,7 @@
|
||||
* Common function for initializing the accelerometer.
|
||||
*/
|
||||
void AnalogAccelerometer::InitAccelerometer() {
|
||||
m_table = NULL;
|
||||
m_table = nullptr;
|
||||
m_voltsPerG = 1.0;
|
||||
m_zeroGVoltage = 2.5;
|
||||
HALReport(HALUsageReporting::kResourceType_Accelerometer,
|
||||
@@ -46,7 +46,7 @@ AnalogAccelerometer::AnalogAccelerometer(int32_t channel) {
|
||||
* accelerometer is connected to
|
||||
*/
|
||||
AnalogAccelerometer::AnalogAccelerometer(AnalogInput *channel) {
|
||||
if (channel == NULL) {
|
||||
if (channel == nullptr) {
|
||||
wpi_setWPIError(NullParameter);
|
||||
} else {
|
||||
m_AnalogInput = channel;
|
||||
@@ -107,7 +107,7 @@ void AnalogAccelerometer::SetZero(float zero) { m_zeroGVoltage = zero; }
|
||||
double AnalogAccelerometer::PIDGet() const { return GetAcceleration(); }
|
||||
|
||||
void AnalogAccelerometer::UpdateTable() {
|
||||
if (m_table != NULL) {
|
||||
if (m_table != nullptr) {
|
||||
m_table->PutNumber("Value", GetAcceleration());
|
||||
}
|
||||
}
|
||||
|
||||
@@ -11,7 +11,7 @@
|
||||
#include "WPIErrors.h"
|
||||
#include "LiveWindow/LiveWindow.h"
|
||||
|
||||
static Resource *inputs = NULL;
|
||||
static Resource *inputs = nullptr;
|
||||
|
||||
const uint8_t AnalogInput::kAccumulatorModuleNumber;
|
||||
const uint32_t AnalogInput::kAccumulatorNumChannels;
|
||||
@@ -21,7 +21,7 @@ const uint32_t AnalogInput::kAccumulatorChannels[] = {0, 1};
|
||||
* Common initialization.
|
||||
*/
|
||||
void AnalogInput::InitAnalogInput(uint32_t channel) {
|
||||
m_table = NULL;
|
||||
m_table = nullptr;
|
||||
char buf[64];
|
||||
Resource::CreateResourceObject(&inputs, kAnalogInputs);
|
||||
|
||||
@@ -405,7 +405,7 @@ double AnalogInput::PIDGet() const {
|
||||
}
|
||||
|
||||
void AnalogInput::UpdateTable() {
|
||||
if (m_table != NULL) {
|
||||
if (m_table != nullptr) {
|
||||
m_table->PutNumber("Value", GetAverageVoltage());
|
||||
}
|
||||
}
|
||||
|
||||
@@ -10,10 +10,10 @@
|
||||
#include "WPIErrors.h"
|
||||
#include "LiveWindow/LiveWindow.h"
|
||||
|
||||
static Resource *outputs = NULL;
|
||||
static Resource *outputs = nullptr;
|
||||
|
||||
void AnalogOutput::InitAnalogOutput(uint32_t channel) {
|
||||
m_table = NULL;
|
||||
m_table = nullptr;
|
||||
|
||||
Resource::CreateResourceObject(&outputs, kAnalogOutputs);
|
||||
|
||||
@@ -80,7 +80,7 @@ float AnalogOutput::GetVoltage() const {
|
||||
}
|
||||
|
||||
void AnalogOutput::UpdateTable() {
|
||||
if (m_table != NULL) {
|
||||
if (m_table != nullptr) {
|
||||
m_table->PutNumber("Value", GetVoltage());
|
||||
}
|
||||
}
|
||||
|
||||
@@ -103,7 +103,7 @@ void AnalogPotentiometer::InitTable(ITable *subtable) {
|
||||
}
|
||||
|
||||
void AnalogPotentiometer::UpdateTable() {
|
||||
if (m_table != NULL) {
|
||||
if (m_table != nullptr) {
|
||||
m_table->PutNumber("Value", Get());
|
||||
}
|
||||
}
|
||||
|
||||
@@ -156,6 +156,6 @@ bool AnalogTrigger::GetTriggerState() {
|
||||
* @return A pointer to a new AnalogTriggerOutput object.
|
||||
*/
|
||||
AnalogTriggerOutput *AnalogTrigger::CreateOutput(AnalogTriggerType type) {
|
||||
if (StatusIsFatal()) return NULL;
|
||||
if (StatusIsFatal()) return nullptr;
|
||||
return new AnalogTriggerOutput(this, type);
|
||||
}
|
||||
|
||||
@@ -30,11 +30,11 @@ AnalogTriggerOutput::AnalogTriggerOutput(AnalogTrigger *trigger,
|
||||
}
|
||||
|
||||
AnalogTriggerOutput::~AnalogTriggerOutput() {
|
||||
if (m_interrupt != NULL) {
|
||||
if (m_interrupt != nullptr) {
|
||||
int32_t status = 0;
|
||||
cleanInterrupts(m_interrupt, &status);
|
||||
wpi_setErrorWithContext(status, getHALErrorMessage(status));
|
||||
m_interrupt = NULL;
|
||||
m_interrupt = nullptr;
|
||||
m_interrupts->Free(m_interruptIndex);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -60,7 +60,7 @@ void BuiltInAccelerometer::InitTable(ITable* subtable) {
|
||||
}
|
||||
|
||||
void BuiltInAccelerometer::UpdateTable() {
|
||||
if (m_table != NULL) {
|
||||
if (m_table != nullptr) {
|
||||
m_table->PutNumber("X", GetX());
|
||||
m_table->PutNumber("Y", GetY());
|
||||
m_table->PutNumber("Z", GetZ());
|
||||
|
||||
@@ -32,7 +32,7 @@ static const uint32_t kFullMessageIDMask =
|
||||
|
||||
static const int32_t kReceiveStatusAttempts = 50;
|
||||
|
||||
static Resource *allocated = NULL;
|
||||
static Resource *allocated = nullptr;
|
||||
|
||||
static int32_t sendMessageHelper(uint32_t messageID, const uint8_t *data,
|
||||
uint8_t dataSize, int32_t period) {
|
||||
@@ -43,9 +43,8 @@ static int32_t sendMessageHelper(uint32_t messageID, const uint8_t *data,
|
||||
|
||||
int32_t status = 0;
|
||||
|
||||
for (uint8_t i = 0;
|
||||
i < (sizeof(kTrustedMessages) / sizeof(kTrustedMessages[0])); i++) {
|
||||
if ((kFullMessageIDMask & messageID) == kTrustedMessages[i]) {
|
||||
for (auto& kTrustedMessage : kTrustedMessages) {
|
||||
if ((kFullMessageIDMask & messageID) == kTrustedMessage) {
|
||||
uint8_t dataBuffer[8];
|
||||
dataBuffer[0] = 0;
|
||||
dataBuffer[1] = 0;
|
||||
@@ -74,7 +73,7 @@ static int32_t sendMessageHelper(uint32_t messageID, const uint8_t *data,
|
||||
* Common initialization code called by all constructors.
|
||||
*/
|
||||
void CANJaguar::InitCANJaguar() {
|
||||
m_table = NULL;
|
||||
m_table = nullptr;
|
||||
m_safetyHelper = new MotorSafetyHelper(this);
|
||||
|
||||
m_value = 0.0f;
|
||||
@@ -231,7 +230,7 @@ void CANJaguar::InitCANJaguar() {
|
||||
CANJaguar::CANJaguar(uint8_t deviceNumber)
|
||||
: m_deviceNumber(deviceNumber),
|
||||
m_maxOutputVoltage(kApproxBusVoltage),
|
||||
m_safetyHelper(NULL) {
|
||||
m_safetyHelper(nullptr) {
|
||||
char buf[64];
|
||||
snprintf(buf, 64, "CANJaguar device number %d", m_deviceNumber);
|
||||
Resource::CreateResourceObject(&allocated, 63);
|
||||
@@ -254,27 +253,27 @@ CANJaguar::~CANJaguar() {
|
||||
// Disable periodic setpoints
|
||||
if (m_controlMode == kPercentVbus)
|
||||
FRC_NetworkCommunication_CANSessionMux_sendMessage(
|
||||
m_deviceNumber | LM_API_VOLT_T_SET, NULL, 0,
|
||||
m_deviceNumber | LM_API_VOLT_T_SET, nullptr, 0,
|
||||
CAN_SEND_PERIOD_STOP_REPEATING, &status);
|
||||
else if (m_controlMode == kSpeed)
|
||||
FRC_NetworkCommunication_CANSessionMux_sendMessage(
|
||||
m_deviceNumber | LM_API_SPD_T_SET, NULL, 0,
|
||||
m_deviceNumber | LM_API_SPD_T_SET, nullptr, 0,
|
||||
CAN_SEND_PERIOD_STOP_REPEATING, &status);
|
||||
else if (m_controlMode == kPosition)
|
||||
FRC_NetworkCommunication_CANSessionMux_sendMessage(
|
||||
m_deviceNumber | LM_API_POS_T_SET, NULL, 0,
|
||||
m_deviceNumber | LM_API_POS_T_SET, nullptr, 0,
|
||||
CAN_SEND_PERIOD_STOP_REPEATING, &status);
|
||||
else if (m_controlMode == kCurrent)
|
||||
FRC_NetworkCommunication_CANSessionMux_sendMessage(
|
||||
m_deviceNumber | LM_API_ICTRL_T_SET, NULL, 0,
|
||||
m_deviceNumber | LM_API_ICTRL_T_SET, nullptr, 0,
|
||||
CAN_SEND_PERIOD_STOP_REPEATING, &status);
|
||||
else if (m_controlMode == kVoltage)
|
||||
FRC_NetworkCommunication_CANSessionMux_sendMessage(
|
||||
m_deviceNumber | LM_API_VCOMP_T_SET, NULL, 0,
|
||||
m_deviceNumber | LM_API_VCOMP_T_SET, nullptr, 0,
|
||||
CAN_SEND_PERIOD_STOP_REPEATING, &status);
|
||||
|
||||
delete m_safetyHelper;
|
||||
m_safetyHelper = NULL;
|
||||
m_safetyHelper = nullptr;
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -478,7 +477,7 @@ void CANJaguar::sendMessage(uint32_t messageID, const uint8_t *data,
|
||||
* every "period" milliseconds.
|
||||
*/
|
||||
void CANJaguar::requestMessage(uint32_t messageID, int32_t period) {
|
||||
sendMessageHelper(messageID | m_deviceNumber, NULL, 0, period);
|
||||
sendMessageHelper(messageID | m_deviceNumber, nullptr, 0, period);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -2000,19 +1999,19 @@ void CANJaguar::ValueChanged(ITable *source, const std::string &key,
|
||||
}
|
||||
|
||||
void CANJaguar::UpdateTable() {
|
||||
if (m_table != NULL) {
|
||||
if (m_table != nullptr) {
|
||||
m_table->PutNumber("Value", Get());
|
||||
}
|
||||
}
|
||||
|
||||
void CANJaguar::StartLiveWindowMode() {
|
||||
if (m_table != NULL) {
|
||||
if (m_table != nullptr) {
|
||||
m_table->AddTableListener("Value", this, true);
|
||||
}
|
||||
}
|
||||
|
||||
void CANJaguar::StopLiveWindowMode() {
|
||||
if (m_table != NULL) {
|
||||
if (m_table != nullptr) {
|
||||
m_table->RemoveTableListener(this);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1283,19 +1283,19 @@ void CANTalon::ValueChanged(ITable* source, const std::string& key,
|
||||
}
|
||||
|
||||
void CANTalon::UpdateTable() {
|
||||
if (m_table != NULL) {
|
||||
if (m_table != nullptr) {
|
||||
m_table->PutNumber("Value", Get());
|
||||
}
|
||||
}
|
||||
|
||||
void CANTalon::StartLiveWindowMode() {
|
||||
if (m_table != NULL) {
|
||||
if (m_table != nullptr) {
|
||||
m_table->AddTableListener("Value", this, true);
|
||||
}
|
||||
}
|
||||
|
||||
void CANTalon::StopLiveWindowMode() {
|
||||
if (m_table != NULL) {
|
||||
if (m_table != nullptr) {
|
||||
m_table->RemoveTableListener(this);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -13,7 +13,7 @@ constexpr uint8_t CameraServer::kMagicNumber[];
|
||||
CameraServer* CameraServer::s_instance = nullptr;
|
||||
|
||||
CameraServer* CameraServer::GetInstance() {
|
||||
if (s_instance == NULL) {
|
||||
if (s_instance == nullptr) {
|
||||
s_instance = new CameraServer;
|
||||
}
|
||||
return s_instance;
|
||||
@@ -225,7 +225,7 @@ void CameraServer::Serve() {
|
||||
std::unique_lock<std::recursive_mutex> lock(m_imageMutex);
|
||||
m_newImageVariable.wait(lock);
|
||||
imageData = m_imageData;
|
||||
m_imageData = std::make_tuple(nullptr, 0, 0, false);
|
||||
m_imageData = std::make_tuple<uint8_t*>(nullptr, 0, 0, false);
|
||||
}
|
||||
|
||||
unsigned int size = std::get<1>(imageData);
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
#include "WPIErrors.h"
|
||||
|
||||
void Compressor::InitCompressor(uint8_t pcmID) {
|
||||
m_table = 0;
|
||||
m_table = nullptr;
|
||||
m_pcm_pointer = initializeCompressor(pcmID);
|
||||
|
||||
SetClosedLoopControl(true);
|
||||
|
||||
@@ -21,15 +21,15 @@
|
||||
* @param mode The counter mode
|
||||
*/
|
||||
void Counter::InitCounter(Mode mode) {
|
||||
m_table = NULL;
|
||||
m_table = nullptr;
|
||||
|
||||
int32_t status = 0;
|
||||
m_index = 0;
|
||||
m_counter = initializeCounter(mode, &m_index, &status);
|
||||
wpi_setErrorWithContext(status, getHALErrorMessage(status));
|
||||
|
||||
m_upSource = NULL;
|
||||
m_downSource = NULL;
|
||||
m_upSource = nullptr;
|
||||
m_downSource = nullptr;
|
||||
m_allocatedUpSource = false;
|
||||
m_allocatedDownSource = false;
|
||||
|
||||
@@ -46,7 +46,7 @@ void Counter::InitCounter(Mode mode) {
|
||||
*
|
||||
* The counter will start counting immediately.
|
||||
*/
|
||||
Counter::Counter() : m_upSource(NULL), m_downSource(NULL), m_counter(NULL) {
|
||||
Counter::Counter() : m_upSource(nullptr), m_downSource(nullptr), m_counter(nullptr) {
|
||||
InitCounter();
|
||||
}
|
||||
|
||||
@@ -63,7 +63,7 @@ Counter::Counter() : m_upSource(NULL), m_downSource(NULL), m_counter(NULL) {
|
||||
* as the Up Source.
|
||||
*/
|
||||
Counter::Counter(DigitalSource *source)
|
||||
: m_upSource(NULL), m_downSource(NULL), m_counter(NULL) {
|
||||
: m_upSource(nullptr), m_downSource(nullptr), m_counter(nullptr) {
|
||||
InitCounter();
|
||||
SetUpSource(source);
|
||||
ClearDownSource();
|
||||
@@ -82,7 +82,7 @@ Counter::Counter(DigitalSource *source)
|
||||
* set as the Up Source.
|
||||
*/
|
||||
Counter::Counter(DigitalSource &source)
|
||||
: m_upSource(NULL), m_downSource(NULL), m_counter(NULL) {
|
||||
: m_upSource(nullptr), m_downSource(nullptr), m_counter(nullptr) {
|
||||
InitCounter();
|
||||
SetUpSource(&source);
|
||||
ClearDownSource();
|
||||
@@ -97,7 +97,7 @@ Counter::Counter(DigitalSource &source)
|
||||
* 10-25 are on the MXP
|
||||
*/
|
||||
Counter::Counter(int32_t channel)
|
||||
: m_upSource(NULL), m_downSource(NULL), m_counter(NULL) {
|
||||
: m_upSource(nullptr), m_downSource(nullptr), m_counter(nullptr) {
|
||||
InitCounter();
|
||||
SetUpSource(channel);
|
||||
ClearDownSource();
|
||||
@@ -112,7 +112,7 @@ Counter::Counter(int32_t channel)
|
||||
* @param trigger The pointer to the existing AnalogTrigger object.
|
||||
*/
|
||||
Counter::Counter(AnalogTrigger *trigger)
|
||||
: m_upSource(NULL), m_downSource(NULL), m_counter(NULL) {
|
||||
: m_upSource(nullptr), m_downSource(nullptr), m_counter(nullptr) {
|
||||
InitCounter();
|
||||
SetUpSource(trigger->CreateOutput(kState));
|
||||
ClearDownSource();
|
||||
@@ -128,7 +128,7 @@ Counter::Counter(AnalogTrigger *trigger)
|
||||
* @param trigger The reference to the existing AnalogTrigger object.
|
||||
*/
|
||||
Counter::Counter(AnalogTrigger &trigger)
|
||||
: m_upSource(NULL), m_downSource(NULL), m_counter(NULL) {
|
||||
: m_upSource(nullptr), m_downSource(nullptr), m_counter(nullptr) {
|
||||
InitCounter();
|
||||
SetUpSource(trigger.CreateOutput(kState));
|
||||
ClearDownSource();
|
||||
@@ -146,7 +146,7 @@ Counter::Counter(AnalogTrigger &trigger)
|
||||
|
||||
Counter::Counter(EncodingType encodingType, DigitalSource *upSource,
|
||||
DigitalSource *downSource, bool inverted)
|
||||
: m_upSource(NULL), m_downSource(NULL), m_counter(NULL) {
|
||||
: m_upSource(nullptr), m_downSource(nullptr), m_counter(nullptr) {
|
||||
if (encodingType != k1X && encodingType != k2X) {
|
||||
wpi_setWPIErrorWithContext(
|
||||
ParameterOutOfRange,
|
||||
@@ -177,17 +177,17 @@ Counter::~Counter() {
|
||||
SetUpdateWhenEmpty(true);
|
||||
if (m_allocatedUpSource) {
|
||||
delete m_upSource;
|
||||
m_upSource = NULL;
|
||||
m_upSource = nullptr;
|
||||
}
|
||||
if (m_allocatedDownSource) {
|
||||
delete m_downSource;
|
||||
m_downSource = NULL;
|
||||
m_downSource = nullptr;
|
||||
}
|
||||
|
||||
int32_t status = 0;
|
||||
freeCounter(m_counter, &status);
|
||||
wpi_setErrorWithContext(status, getHALErrorMessage(status));
|
||||
m_counter = NULL;
|
||||
m_counter = nullptr;
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -232,7 +232,7 @@ void Counter::SetUpSource(DigitalSource *source) {
|
||||
if (StatusIsFatal()) return;
|
||||
if (m_allocatedUpSource) {
|
||||
delete m_upSource;
|
||||
m_upSource = NULL;
|
||||
m_upSource = nullptr;
|
||||
m_allocatedUpSource = false;
|
||||
}
|
||||
m_upSource = source;
|
||||
@@ -261,10 +261,10 @@ void Counter::SetUpSource(DigitalSource &source) { SetUpSource(&source); }
|
||||
*/
|
||||
void Counter::SetUpSourceEdge(bool risingEdge, bool fallingEdge) {
|
||||
if (StatusIsFatal()) return;
|
||||
if (m_upSource == NULL) {
|
||||
if (m_upSource == nullptr) {
|
||||
wpi_setWPIErrorWithContext(
|
||||
NullParameter,
|
||||
"Must set non-NULL UpSource before setting UpSourceEdge");
|
||||
"Must set non-nullptr UpSource before setting UpSourceEdge");
|
||||
}
|
||||
int32_t status = 0;
|
||||
setCounterUpSourceEdge(m_counter, risingEdge, fallingEdge, &status);
|
||||
@@ -278,7 +278,7 @@ void Counter::ClearUpSource() {
|
||||
if (StatusIsFatal()) return;
|
||||
if (m_allocatedUpSource) {
|
||||
delete m_upSource;
|
||||
m_upSource = NULL;
|
||||
m_upSource = nullptr;
|
||||
m_allocatedUpSource = false;
|
||||
}
|
||||
int32_t status = 0;
|
||||
@@ -330,7 +330,7 @@ void Counter::SetDownSource(DigitalSource *source) {
|
||||
if (StatusIsFatal()) return;
|
||||
if (m_allocatedDownSource) {
|
||||
delete m_downSource;
|
||||
m_downSource = NULL;
|
||||
m_downSource = nullptr;
|
||||
m_allocatedDownSource = false;
|
||||
}
|
||||
m_downSource = source;
|
||||
@@ -359,10 +359,10 @@ void Counter::SetDownSource(DigitalSource &source) { SetDownSource(&source); }
|
||||
*/
|
||||
void Counter::SetDownSourceEdge(bool risingEdge, bool fallingEdge) {
|
||||
if (StatusIsFatal()) return;
|
||||
if (m_downSource == NULL) {
|
||||
if (m_downSource == nullptr) {
|
||||
wpi_setWPIErrorWithContext(
|
||||
NullParameter,
|
||||
"Must set non-NULL DownSource before setting DownSourceEdge");
|
||||
"Must set non-nullptr DownSource before setting DownSourceEdge");
|
||||
}
|
||||
int32_t status = 0;
|
||||
setCounterDownSourceEdge(m_counter, risingEdge, fallingEdge, &status);
|
||||
@@ -376,7 +376,7 @@ void Counter::ClearDownSource() {
|
||||
if (StatusIsFatal()) return;
|
||||
if (m_allocatedDownSource) {
|
||||
delete m_downSource;
|
||||
m_downSource = NULL;
|
||||
m_downSource = nullptr;
|
||||
m_allocatedDownSource = false;
|
||||
}
|
||||
int32_t status = 0;
|
||||
@@ -597,7 +597,7 @@ void Counter::SetReverseDirection(bool reverseDirection) {
|
||||
}
|
||||
|
||||
void Counter::UpdateTable() {
|
||||
if (m_table != NULL) {
|
||||
if (m_table != nullptr) {
|
||||
m_table->PutNumber("Value", Get());
|
||||
}
|
||||
}
|
||||
|
||||
@@ -17,7 +17,7 @@
|
||||
* constructors.
|
||||
*/
|
||||
void DigitalInput::InitDigitalInput(uint32_t channel) {
|
||||
m_table = NULL;
|
||||
m_table = nullptr;
|
||||
char buf[64];
|
||||
|
||||
if (!CheckDigitalChannel(channel)) {
|
||||
@@ -48,11 +48,11 @@ DigitalInput::DigitalInput(uint32_t channel) { InitDigitalInput(channel); }
|
||||
*/
|
||||
DigitalInput::~DigitalInput() {
|
||||
if (StatusIsFatal()) return;
|
||||
if (m_interrupt != NULL) {
|
||||
if (m_interrupt != nullptr) {
|
||||
int32_t status = 0;
|
||||
cleanInterrupts(m_interrupt, &status);
|
||||
wpi_setErrorWithContext(status, getHALErrorMessage(status));
|
||||
m_interrupt = NULL;
|
||||
m_interrupt = nullptr;
|
||||
m_interrupts->Free(m_interruptIndex);
|
||||
}
|
||||
|
||||
@@ -93,7 +93,7 @@ uint32_t DigitalInput::GetModuleForRouting() const { return 0; }
|
||||
bool DigitalInput::GetAnalogTriggerForRouting() const { return false; }
|
||||
|
||||
void DigitalInput::UpdateTable() {
|
||||
if (m_table != NULL) {
|
||||
if (m_table != nullptr) {
|
||||
m_table->PutBoolean("Value", Get());
|
||||
}
|
||||
}
|
||||
|
||||
@@ -15,7 +15,7 @@
|
||||
* constructors.
|
||||
*/
|
||||
void DigitalOutput::InitDigitalOutput(uint32_t channel) {
|
||||
m_table = NULL;
|
||||
m_table = nullptr;
|
||||
char buf[64];
|
||||
|
||||
if (!CheckDigitalChannel(channel)) {
|
||||
@@ -210,13 +210,13 @@ void DigitalOutput::ValueChanged(ITable *source, const std::string &key,
|
||||
void DigitalOutput::UpdateTable() {}
|
||||
|
||||
void DigitalOutput::StartLiveWindowMode() {
|
||||
if (m_table != NULL) {
|
||||
if (m_table != nullptr) {
|
||||
m_table->AddTableListener("Value", this, true);
|
||||
}
|
||||
}
|
||||
|
||||
void DigitalOutput::StopLiveWindowMode() {
|
||||
if (m_table != NULL) {
|
||||
if (m_table != nullptr) {
|
||||
m_table->RemoveTableListener(this);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -13,7 +13,7 @@
|
||||
* Common function to implement constructor behaviour.
|
||||
*/
|
||||
void DoubleSolenoid::InitSolenoid() {
|
||||
m_table = NULL;
|
||||
m_table = nullptr;
|
||||
char buf[64];
|
||||
if (!CheckSolenoidModule(m_moduleNumber)) {
|
||||
snprintf(buf, 64, "Solenoid Module %d", m_moduleNumber);
|
||||
@@ -171,7 +171,7 @@ void DoubleSolenoid::ValueChanged(ITable *source, const std::string &key,
|
||||
}
|
||||
|
||||
void DoubleSolenoid::UpdateTable() {
|
||||
if (m_table != NULL) {
|
||||
if (m_table != nullptr) {
|
||||
m_table->PutString(
|
||||
"Value", (Get() == kForward ? "Forward"
|
||||
: (Get() == kReverse ? "Reverse" : "Off")));
|
||||
@@ -180,14 +180,14 @@ void DoubleSolenoid::UpdateTable() {
|
||||
|
||||
void DoubleSolenoid::StartLiveWindowMode() {
|
||||
Set(kOff);
|
||||
if (m_table != NULL) {
|
||||
if (m_table != nullptr) {
|
||||
m_table->AddTableListener("Value", this, true);
|
||||
}
|
||||
}
|
||||
|
||||
void DoubleSolenoid::StopLiveWindowMode() {
|
||||
Set(kOff);
|
||||
if (m_table != NULL) {
|
||||
if (m_table != nullptr) {
|
||||
m_table->RemoveTableListener(this);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -28,7 +28,7 @@ const double JOYSTICK_UNPLUGGED_MESSAGE_INTERVAL = 1.0;
|
||||
Log().Get(level)
|
||||
|
||||
const uint32_t DriverStation::kJoystickPorts;
|
||||
DriverStation* DriverStation::m_instance = NULL;
|
||||
DriverStation* DriverStation::m_instance = nullptr;
|
||||
|
||||
/**
|
||||
* DriverStation constructor.
|
||||
@@ -82,10 +82,10 @@ DriverStation::DriverStation()
|
||||
|
||||
DriverStation::~DriverStation() {
|
||||
m_task.Stop();
|
||||
m_instance = NULL;
|
||||
m_instance = nullptr;
|
||||
deleteMultiWait(m_waitForDataSem);
|
||||
// Unregister our semaphore.
|
||||
HALSetNewDataSem(0);
|
||||
HALSetNewDataSem(nullptr);
|
||||
deleteMultiWait(m_packetDataAvailableMultiWait);
|
||||
deleteMutex(m_packetDataAvailableMutex);
|
||||
deleteMutex(m_waitForDataMutex);
|
||||
@@ -120,7 +120,7 @@ void DriverStation::Run() {
|
||||
* @return Pointer to the DS instance
|
||||
*/
|
||||
DriverStation* DriverStation::GetInstance() {
|
||||
if (m_instance == NULL) {
|
||||
if (m_instance == nullptr) {
|
||||
m_instance = new DriverStation();
|
||||
}
|
||||
return m_instance;
|
||||
|
||||
@@ -31,7 +31,7 @@
|
||||
* or be double (2x) the spec'd count.
|
||||
*/
|
||||
void Encoder::InitEncoder(bool reverseDirection, EncodingType encodingType) {
|
||||
m_table = NULL;
|
||||
m_table = nullptr;
|
||||
m_encodingType = encodingType;
|
||||
m_index = 0;
|
||||
switch (encodingType) {
|
||||
@@ -53,7 +53,7 @@ void Encoder::InitEncoder(bool reverseDirection, EncodingType encodingType) {
|
||||
m_bSource->GetAnalogTriggerForRouting(), reverseDirection, &m_index,
|
||||
&status);
|
||||
wpi_setErrorWithContext(status, getHALErrorMessage(status));
|
||||
m_counter = NULL;
|
||||
m_counter = nullptr;
|
||||
SetMaxPeriod(.5);
|
||||
break;
|
||||
}
|
||||
@@ -102,7 +102,7 @@ void Encoder::InitEncoder(bool reverseDirection, EncodingType encodingType) {
|
||||
*/
|
||||
Encoder::Encoder(uint32_t aChannel, uint32_t bChannel, bool reverseDirection,
|
||||
EncodingType encodingType)
|
||||
: m_encoder(NULL), m_counter(NULL) {
|
||||
: m_encoder(nullptr), m_counter(nullptr) {
|
||||
m_aSource = new DigitalInput(aChannel);
|
||||
m_bSource = new DigitalInput(bChannel);
|
||||
InitEncoder(reverseDirection, encodingType);
|
||||
@@ -137,12 +137,12 @@ Encoder::Encoder(uint32_t aChannel, uint32_t bChannel, bool reverseDirection,
|
||||
*/
|
||||
Encoder::Encoder(DigitalSource *aSource, DigitalSource *bSource,
|
||||
bool reverseDirection, EncodingType encodingType)
|
||||
: m_encoder(NULL), m_counter(NULL) {
|
||||
: m_encoder(nullptr), m_counter(nullptr) {
|
||||
m_aSource = aSource;
|
||||
m_bSource = bSource;
|
||||
m_allocatedASource = false;
|
||||
m_allocatedBSource = false;
|
||||
if (m_aSource == NULL || m_bSource == NULL)
|
||||
if (m_aSource == nullptr || m_bSource == nullptr)
|
||||
wpi_setWPIError(NullParameter);
|
||||
else
|
||||
InitEncoder(reverseDirection, encodingType);
|
||||
@@ -175,7 +175,7 @@ Encoder::Encoder(DigitalSource *aSource, DigitalSource *bSource,
|
||||
*/
|
||||
Encoder::Encoder(DigitalSource &aSource, DigitalSource &bSource,
|
||||
bool reverseDirection, EncodingType encodingType)
|
||||
: m_encoder(NULL), m_counter(NULL) {
|
||||
: m_encoder(nullptr), m_counter(nullptr) {
|
||||
m_aSource = &aSource;
|
||||
m_bSource = &bSource;
|
||||
m_allocatedASource = false;
|
||||
@@ -555,7 +555,7 @@ void Encoder::SetIndexSource(DigitalSource &source,
|
||||
}
|
||||
|
||||
void Encoder::UpdateTable() {
|
||||
if (m_table != NULL) {
|
||||
if (m_table != nullptr) {
|
||||
m_table->PutNumber("Speed", GetRate());
|
||||
m_table->PutNumber("Distance", GetDistance());
|
||||
m_table->PutNumber("Distance per Tick", m_distancePerPulse);
|
||||
|
||||
@@ -31,13 +31,13 @@ constexpr float Gyro::kDefaultVoltsPerDegreePerSecond;
|
||||
* rest before the competition starts.
|
||||
*/
|
||||
void Gyro::InitGyro() {
|
||||
m_table = NULL;
|
||||
m_table = nullptr;
|
||||
if (!m_analog->IsAccumulatorChannel()) {
|
||||
wpi_setWPIErrorWithContext(ParameterOutOfRange,
|
||||
" channel (must be accumulator channel)");
|
||||
if (m_channelAllocated) {
|
||||
delete m_analog;
|
||||
m_analog = NULL;
|
||||
m_analog = nullptr;
|
||||
}
|
||||
return;
|
||||
}
|
||||
@@ -96,7 +96,7 @@ Gyro::Gyro(int32_t channel) {
|
||||
Gyro::Gyro(AnalogInput *channel) {
|
||||
m_analog = channel;
|
||||
m_channelAllocated = false;
|
||||
if (channel == NULL) {
|
||||
if (channel == nullptr) {
|
||||
wpi_setWPIError(NullParameter);
|
||||
} else {
|
||||
InitGyro();
|
||||
@@ -230,7 +230,7 @@ double Gyro::PIDGet() const {
|
||||
}
|
||||
|
||||
void Gyro::UpdateTable() {
|
||||
if (m_table != NULL) {
|
||||
if (m_table != nullptr) {
|
||||
m_table->PutNumber("Value", GetAngle());
|
||||
}
|
||||
}
|
||||
|
||||
@@ -72,7 +72,7 @@ bool I2C::Transaction(uint8_t *dataToSend, uint8_t sendSize,
|
||||
*/
|
||||
bool I2C::AddressOnly() {
|
||||
int32_t status = 0;
|
||||
status = Transaction(NULL, 0, NULL, 0);
|
||||
status = Transaction(nullptr, 0, nullptr, 0);
|
||||
return status < 0;
|
||||
}
|
||||
|
||||
@@ -131,7 +131,7 @@ bool I2C::Read(uint8_t registerAddress, uint8_t count, uint8_t *buffer) {
|
||||
wpi_setWPIErrorWithContext(ParameterOutOfRange, "count");
|
||||
return true;
|
||||
}
|
||||
if (buffer == NULL) {
|
||||
if (buffer == nullptr) {
|
||||
wpi_setWPIErrorWithContext(NullParameter, "buffer");
|
||||
return true;
|
||||
}
|
||||
@@ -160,7 +160,7 @@ bool I2C::ReadOnly(uint8_t count, uint8_t *buffer) {
|
||||
wpi_setWPIErrorWithContext(ParameterOutOfRange, "count");
|
||||
return true;
|
||||
}
|
||||
if (buffer == NULL) {
|
||||
if (buffer == nullptr) {
|
||||
wpi_setWPIErrorWithContext(NullParameter, "buffer");
|
||||
return true;
|
||||
}
|
||||
|
||||
@@ -9,10 +9,10 @@
|
||||
#include "Utility.h"
|
||||
#include "WPIErrors.h"
|
||||
|
||||
Resource *InterruptableSensorBase::m_interrupts = NULL;
|
||||
Resource *InterruptableSensorBase::m_interrupts = nullptr;
|
||||
|
||||
InterruptableSensorBase::InterruptableSensorBase() {
|
||||
m_interrupt = NULL;
|
||||
m_interrupt = nullptr;
|
||||
Resource::CreateResourceObject(&m_interrupts, interrupt_kNumSystems);
|
||||
}
|
||||
|
||||
@@ -74,7 +74,7 @@ void InterruptableSensorBase::RequestInterrupts() {
|
||||
}
|
||||
|
||||
void InterruptableSensorBase::AllocateInterrupts(bool watcher) {
|
||||
wpi_assert(m_interrupt == NULL);
|
||||
wpi_assert(m_interrupt == nullptr);
|
||||
// Expects the calling leaf class to allocate an interrupt index.
|
||||
int32_t status = 0;
|
||||
m_interrupt = initializeInterrupts(m_interruptIndex, watcher, &status);
|
||||
@@ -87,11 +87,11 @@ void InterruptableSensorBase::AllocateInterrupts(bool watcher) {
|
||||
*/
|
||||
void InterruptableSensorBase::CancelInterrupts() {
|
||||
if (StatusIsFatal()) return;
|
||||
wpi_assert(m_interrupt != NULL);
|
||||
wpi_assert(m_interrupt != nullptr);
|
||||
int32_t status = 0;
|
||||
cleanInterrupts(m_interrupt, &status);
|
||||
wpi_setErrorWithContext(status, getHALErrorMessage(status));
|
||||
m_interrupt = NULL;
|
||||
m_interrupt = nullptr;
|
||||
m_interrupts->Free(m_interruptIndex);
|
||||
}
|
||||
|
||||
@@ -109,7 +109,7 @@ void InterruptableSensorBase::CancelInterrupts() {
|
||||
InterruptableSensorBase::WaitResult InterruptableSensorBase::WaitForInterrupt(
|
||||
float timeout, bool ignorePrevious) {
|
||||
if (StatusIsFatal()) return InterruptableSensorBase::kTimeout;
|
||||
wpi_assert(m_interrupt != NULL);
|
||||
wpi_assert(m_interrupt != nullptr);
|
||||
int32_t status = 0;
|
||||
uint32_t result;
|
||||
|
||||
@@ -127,7 +127,7 @@ InterruptableSensorBase::WaitResult InterruptableSensorBase::WaitForInterrupt(
|
||||
*/
|
||||
void InterruptableSensorBase::EnableInterrupts() {
|
||||
if (StatusIsFatal()) return;
|
||||
wpi_assert(m_interrupt != NULL);
|
||||
wpi_assert(m_interrupt != nullptr);
|
||||
int32_t status = 0;
|
||||
enableInterrupts(m_interrupt, &status);
|
||||
wpi_setErrorWithContext(status, getHALErrorMessage(status));
|
||||
@@ -138,7 +138,7 @@ void InterruptableSensorBase::EnableInterrupts() {
|
||||
*/
|
||||
void InterruptableSensorBase::DisableInterrupts() {
|
||||
if (StatusIsFatal()) return;
|
||||
wpi_assert(m_interrupt != NULL);
|
||||
wpi_assert(m_interrupt != nullptr);
|
||||
int32_t status = 0;
|
||||
disableInterrupts(m_interrupt, &status);
|
||||
wpi_setErrorWithContext(status, getHALErrorMessage(status));
|
||||
@@ -153,7 +153,7 @@ void InterruptableSensorBase::DisableInterrupts() {
|
||||
*/
|
||||
double InterruptableSensorBase::ReadRisingTimestamp() {
|
||||
if (StatusIsFatal()) return 0.0;
|
||||
wpi_assert(m_interrupt != NULL);
|
||||
wpi_assert(m_interrupt != nullptr);
|
||||
int32_t status = 0;
|
||||
double timestamp = readRisingTimestamp(m_interrupt, &status);
|
||||
wpi_setErrorWithContext(status, getHALErrorMessage(status));
|
||||
@@ -169,7 +169,7 @@ double InterruptableSensorBase::ReadRisingTimestamp() {
|
||||
*/
|
||||
double InterruptableSensorBase::ReadFallingTimestamp() {
|
||||
if (StatusIsFatal()) return 0.0;
|
||||
wpi_assert(m_interrupt != NULL);
|
||||
wpi_assert(m_interrupt != nullptr);
|
||||
int32_t status = 0;
|
||||
double timestamp = readFallingTimestamp(m_interrupt, &status);
|
||||
wpi_setErrorWithContext(status, getHALErrorMessage(status));
|
||||
@@ -187,13 +187,13 @@ double InterruptableSensorBase::ReadFallingTimestamp() {
|
||||
void InterruptableSensorBase::SetUpSourceEdge(bool risingEdge,
|
||||
bool fallingEdge) {
|
||||
if (StatusIsFatal()) return;
|
||||
if (m_interrupt == NULL) {
|
||||
if (m_interrupt == nullptr) {
|
||||
wpi_setWPIErrorWithContext(
|
||||
NullParameter,
|
||||
"You must call RequestInterrupts before SetUpSourceEdge");
|
||||
return;
|
||||
}
|
||||
if (m_interrupt != NULL) {
|
||||
if (m_interrupt != nullptr) {
|
||||
int32_t status = 0;
|
||||
setInterruptUpSourceEdge(m_interrupt, risingEdge, fallingEdge, &status);
|
||||
wpi_setErrorWithContext(status, getHALErrorMessage(status));
|
||||
|
||||
@@ -30,10 +30,10 @@ static bool joySticksInitialized = false;
|
||||
* (0-5).
|
||||
*/
|
||||
Joystick::Joystick(uint32_t port)
|
||||
: m_ds(NULL),
|
||||
: m_ds(nullptr),
|
||||
m_port(port),
|
||||
m_axes(NULL),
|
||||
m_buttons(NULL),
|
||||
m_axes(nullptr),
|
||||
m_buttons(nullptr),
|
||||
m_outputs(0),
|
||||
m_leftRumble(0),
|
||||
m_rightRumble(0) {
|
||||
@@ -63,14 +63,13 @@ Joystick::Joystick(uint32_t port)
|
||||
*/
|
||||
Joystick::Joystick(uint32_t port, uint32_t numAxisTypes,
|
||||
uint32_t numButtonTypes)
|
||||
: m_ds(NULL), m_port(port), m_axes(NULL), m_buttons(NULL) {
|
||||
: m_ds(nullptr), m_port(port), m_axes(nullptr), m_buttons(nullptr) {
|
||||
InitJoystick(numAxisTypes, numButtonTypes);
|
||||
}
|
||||
|
||||
void Joystick::InitJoystick(uint32_t numAxisTypes, uint32_t numButtonTypes) {
|
||||
if (!joySticksInitialized) {
|
||||
for (unsigned i = 0; i < DriverStation::kJoystickPorts; i++)
|
||||
joysticks[i] = NULL;
|
||||
for (auto& joystick : joysticks) joystick = nullptr;
|
||||
joySticksInitialized = true;
|
||||
}
|
||||
if (m_port >= DriverStation::kJoystickPorts) {
|
||||
@@ -86,7 +85,7 @@ void Joystick::InitJoystick(uint32_t numAxisTypes, uint32_t numButtonTypes) {
|
||||
|
||||
Joystick *Joystick::GetStickForPort(uint32_t port) {
|
||||
Joystick *stick = joysticks[port];
|
||||
if (stick == NULL) {
|
||||
if (stick == nullptr) {
|
||||
stick = new Joystick(port);
|
||||
joysticks[port] = stick;
|
||||
}
|
||||
|
||||
@@ -14,7 +14,7 @@
|
||||
|
||||
#include <stdio.h>
|
||||
|
||||
MotorSafetyHelper *MotorSafetyHelper::m_headHelper = NULL;
|
||||
MotorSafetyHelper *MotorSafetyHelper::m_headHelper = nullptr;
|
||||
ReentrantSemaphore MotorSafetyHelper::m_listMutex;
|
||||
|
||||
/**
|
||||
@@ -46,9 +46,9 @@ MotorSafetyHelper::~MotorSafetyHelper() {
|
||||
if (m_headHelper == this) {
|
||||
m_headHelper = m_nextHelper;
|
||||
} else {
|
||||
MotorSafetyHelper *prev = NULL;
|
||||
MotorSafetyHelper *prev = nullptr;
|
||||
MotorSafetyHelper *cur = m_headHelper;
|
||||
while (cur != this && cur != NULL) prev = cur, cur = cur->m_nextHelper;
|
||||
while (cur != this && cur != nullptr) prev = cur, cur = cur->m_nextHelper;
|
||||
if (cur == this) prev->m_nextHelper = cur->m_nextHelper;
|
||||
}
|
||||
}
|
||||
@@ -141,7 +141,7 @@ bool MotorSafetyHelper::IsSafetyEnabled() const {
|
||||
*/
|
||||
void MotorSafetyHelper::CheckMotors() {
|
||||
Synchronized sync(m_listMutex);
|
||||
for (MotorSafetyHelper *msh = m_headHelper; msh != NULL;
|
||||
for (MotorSafetyHelper *msh = m_headHelper; msh != nullptr;
|
||||
msh = msh->m_nextHelper) {
|
||||
msh->Check();
|
||||
}
|
||||
|
||||
@@ -11,9 +11,9 @@
|
||||
#include "WPIErrors.h"
|
||||
#include "HAL/HAL.hpp"
|
||||
|
||||
Notifier *Notifier::timerQueueHead = NULL;
|
||||
Notifier *Notifier::timerQueueHead = nullptr;
|
||||
ReentrantSemaphore Notifier::queueSemaphore;
|
||||
void *Notifier::m_notifier = NULL;
|
||||
void *Notifier::m_notifier = nullptr;
|
||||
int Notifier::refcount = 0;
|
||||
|
||||
/**
|
||||
@@ -22,14 +22,14 @@ int Notifier::refcount = 0;
|
||||
* using StartSingle or StartPeriodic.
|
||||
*/
|
||||
Notifier::Notifier(TimerEventHandler handler, void *param) {
|
||||
if (handler == NULL)
|
||||
wpi_setWPIErrorWithContext(NullParameter, "handler must not be NULL");
|
||||
if (handler == nullptr)
|
||||
wpi_setWPIErrorWithContext(NullParameter, "handler must not be nullptr");
|
||||
m_handler = handler;
|
||||
m_param = param;
|
||||
m_periodic = false;
|
||||
m_expirationTime = 0;
|
||||
m_period = 0;
|
||||
m_nextEvent = NULL;
|
||||
m_nextEvent = nullptr;
|
||||
m_queued = false;
|
||||
m_handlerSemaphore = initializeSemaphore(SEMAPHORE_FULL);
|
||||
{
|
||||
@@ -79,7 +79,7 @@ Notifier::~Notifier() {
|
||||
* that is taking care of synchronizing access to the queue.
|
||||
*/
|
||||
void Notifier::UpdateAlarm() {
|
||||
if (timerQueueHead != NULL) {
|
||||
if (timerQueueHead != nullptr) {
|
||||
int32_t status = 0;
|
||||
updateNotifierAlarm(m_notifier,
|
||||
(uint32_t)(timerQueueHead->m_expirationTime * 1e6),
|
||||
@@ -104,7 +104,7 @@ void Notifier::ProcessQueue(uint32_t mask, void *params) {
|
||||
Synchronized sync(queueSemaphore);
|
||||
double currentTime = GetClock();
|
||||
current = timerQueueHead;
|
||||
if (current == NULL || current->m_expirationTime > currentTime) {
|
||||
if (current == nullptr || current->m_expirationTime > currentTime) {
|
||||
break; // no more timer events to process
|
||||
}
|
||||
// need to process this entry
|
||||
@@ -152,7 +152,7 @@ void Notifier::InsertInQueue(bool reschedule) {
|
||||
if (m_expirationTime > Timer::kRolloverTime) {
|
||||
m_expirationTime -= Timer::kRolloverTime;
|
||||
}
|
||||
if (timerQueueHead == NULL ||
|
||||
if (timerQueueHead == nullptr ||
|
||||
timerQueueHead->m_expirationTime >= this->m_expirationTime) {
|
||||
// the queue is empty or greater than the new entry
|
||||
// the new entry becomes the first element
|
||||
@@ -167,7 +167,7 @@ void Notifier::InsertInQueue(bool reschedule) {
|
||||
for (Notifier **npp = &(timerQueueHead->m_nextEvent);;
|
||||
npp = &(*npp)->m_nextEvent) {
|
||||
Notifier *n = *npp;
|
||||
if (n == NULL || n->m_expirationTime > this->m_expirationTime) {
|
||||
if (n == nullptr || n->m_expirationTime > this->m_expirationTime) {
|
||||
*npp = this;
|
||||
this->m_nextEvent = n;
|
||||
break;
|
||||
@@ -189,13 +189,13 @@ void Notifier::InsertInQueue(bool reschedule) {
|
||||
void Notifier::DeleteFromQueue() {
|
||||
if (m_queued) {
|
||||
m_queued = false;
|
||||
wpi_assert(timerQueueHead != NULL);
|
||||
wpi_assert(timerQueueHead != nullptr);
|
||||
if (timerQueueHead == this) {
|
||||
// remove the first item in the list - update the alarm
|
||||
timerQueueHead = this->m_nextEvent;
|
||||
UpdateAlarm();
|
||||
} else {
|
||||
for (Notifier *n = timerQueueHead; n != NULL; n = n->m_nextEvent) {
|
||||
for (Notifier *n = timerQueueHead; n != nullptr; n = n->m_nextEvent) {
|
||||
if (n->m_nextEvent == this) {
|
||||
// this element is the next element from *n from the queue
|
||||
n->m_nextEvent = this->m_nextEvent; // point around this one
|
||||
|
||||
@@ -58,7 +58,7 @@ PIDController::PIDController(float Kp, float Ki, float Kd, float Kf,
|
||||
void PIDController::Initialize(float Kp, float Ki, float Kd, float Kf,
|
||||
PIDSource *source, PIDOutput *output,
|
||||
float period) {
|
||||
m_table = NULL;
|
||||
m_table = nullptr;
|
||||
|
||||
m_semaphore = initializeMutexNormal();
|
||||
|
||||
@@ -140,8 +140,8 @@ void PIDController::Calculate() {
|
||||
}
|
||||
END_REGION;
|
||||
|
||||
if (pidInput == NULL) return;
|
||||
if (pidOutput == NULL) return;
|
||||
if (pidInput == nullptr) return;
|
||||
if (pidOutput == nullptr) return;
|
||||
|
||||
if (enabled) {
|
||||
{
|
||||
@@ -205,7 +205,7 @@ void PIDController::SetPID(double p, double i, double d) {
|
||||
}
|
||||
END_REGION;
|
||||
|
||||
if (m_table != NULL) {
|
||||
if (m_table != nullptr) {
|
||||
m_table->PutNumber("p", m_P);
|
||||
m_table->PutNumber("i", m_I);
|
||||
m_table->PutNumber("d", m_D);
|
||||
@@ -229,7 +229,7 @@ void PIDController::SetPID(double p, double i, double d, double f) {
|
||||
}
|
||||
END_REGION;
|
||||
|
||||
if (m_table != NULL) {
|
||||
if (m_table != nullptr) {
|
||||
m_table->PutNumber("p", m_P);
|
||||
m_table->PutNumber("i", m_I);
|
||||
m_table->PutNumber("d", m_D);
|
||||
@@ -346,7 +346,7 @@ void PIDController::SetSetpoint(float setpoint) {
|
||||
}
|
||||
END_REGION;
|
||||
|
||||
if (m_table != NULL) {
|
||||
if (m_table != nullptr) {
|
||||
m_table->PutNumber("setpoint", m_setpoint);
|
||||
}
|
||||
}
|
||||
@@ -451,7 +451,7 @@ void PIDController::Enable() {
|
||||
CRITICAL_REGION(m_semaphore) { m_enabled = true; }
|
||||
END_REGION;
|
||||
|
||||
if (m_table != NULL) {
|
||||
if (m_table != nullptr) {
|
||||
m_table->PutBoolean("enabled", true);
|
||||
}
|
||||
}
|
||||
@@ -466,7 +466,7 @@ void PIDController::Disable() {
|
||||
}
|
||||
END_REGION;
|
||||
|
||||
if (m_table != NULL) {
|
||||
if (m_table != nullptr) {
|
||||
m_table->PutBoolean("enabled", false);
|
||||
}
|
||||
}
|
||||
@@ -500,9 +500,9 @@ std::string PIDController::GetSmartDashboardType() const {
|
||||
}
|
||||
|
||||
void PIDController::InitTable(ITable *table) {
|
||||
if (m_table != NULL) m_table->RemoveTableListener(this);
|
||||
if (m_table != nullptr) m_table->RemoveTableListener(this);
|
||||
m_table = table;
|
||||
if (m_table != NULL) {
|
||||
if (m_table != nullptr) {
|
||||
m_table->PutNumber(kP, GetP());
|
||||
m_table->PutNumber(kI, GetI());
|
||||
m_table->PutNumber(kD, GetD());
|
||||
|
||||
@@ -30,7 +30,7 @@ const int32_t PWM::kPwmDisabled;
|
||||
* port
|
||||
*/
|
||||
void PWM::InitPWM(uint32_t channel) {
|
||||
m_table = NULL;
|
||||
m_table = nullptr;
|
||||
char buf[64];
|
||||
|
||||
if (!CheckPWMChannel(channel)) {
|
||||
@@ -351,21 +351,21 @@ void PWM::ValueChanged(ITable* source, const std::string& key, EntryValue value,
|
||||
}
|
||||
|
||||
void PWM::UpdateTable() {
|
||||
if (m_table != NULL) {
|
||||
if (m_table != nullptr) {
|
||||
m_table->PutNumber("Value", GetSpeed());
|
||||
}
|
||||
}
|
||||
|
||||
void PWM::StartLiveWindowMode() {
|
||||
SetSpeed(0);
|
||||
if (m_table != NULL) {
|
||||
if (m_table != nullptr) {
|
||||
m_table->AddTableListener("Value", this, true);
|
||||
}
|
||||
}
|
||||
|
||||
void PWM::StopLiveWindowMode() {
|
||||
SetSpeed(0);
|
||||
if (m_table != NULL) {
|
||||
if (m_table != nullptr) {
|
||||
m_table->RemoveTableListener(this);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -150,7 +150,7 @@ void PowerDistributionPanel::ClearStickyFaults() {
|
||||
}
|
||||
|
||||
void PowerDistributionPanel::UpdateTable() {
|
||||
if (m_table != NULL) {
|
||||
if (m_table != nullptr) {
|
||||
m_table->PutNumber("Chan0", GetCurrent(0));
|
||||
m_table->PutNumber("Chan1", GetCurrent(1));
|
||||
m_table->PutNumber("Chan2", GetCurrent(2));
|
||||
|
||||
@@ -25,12 +25,12 @@ static const char *kValuePrefix = "=\"";
|
||||
/** The characters to put after the value */
|
||||
static const char *kValueSuffix = "\"\n";
|
||||
/** The singleton instance */
|
||||
Preferences *Preferences::_instance = NULL;
|
||||
Preferences *Preferences::_instance = nullptr;
|
||||
|
||||
Preferences::Preferences()
|
||||
: m_fileLock(NULL),
|
||||
m_fileOpStarted(NULL),
|
||||
m_tableLock(NULL),
|
||||
: m_fileLock(nullptr),
|
||||
m_fileOpStarted(nullptr),
|
||||
m_tableLock(nullptr),
|
||||
m_readTask("PreferencesReadTask", (FUNCPTR)Preferences::InitReadTask),
|
||||
m_writeTask("PreferencesWriteTask", (FUNCPTR)Preferences::InitWriteTask) {
|
||||
m_fileLock = initializeMutexRecursive();
|
||||
@@ -57,7 +57,7 @@ Preferences::~Preferences() {
|
||||
* @return pointer to the {@link Preferences}
|
||||
*/
|
||||
Preferences *Preferences::GetInstance() {
|
||||
if (_instance == NULL) _instance = new Preferences;
|
||||
if (_instance == nullptr) _instance = new Preferences;
|
||||
return _instance;
|
||||
}
|
||||
|
||||
@@ -106,7 +106,7 @@ int Preferences::GetInt(const char *key, int defaultValue) {
|
||||
std::string value = Get(key);
|
||||
if (value.empty()) return defaultValue;
|
||||
|
||||
return strtol(value.c_str(), NULL, 0);
|
||||
return strtol(value.c_str(), nullptr, 0);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -120,7 +120,7 @@ double Preferences::GetDouble(const char *key, double defaultValue) {
|
||||
std::string value = Get(key);
|
||||
if (value.empty()) return defaultValue;
|
||||
|
||||
return strtod(value.c_str(), NULL);
|
||||
return strtod(value.c_str(), nullptr);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -134,7 +134,7 @@ float Preferences::GetFloat(const char *key, float defaultValue) {
|
||||
std::string value = Get(key);
|
||||
if (value.empty()) return defaultValue;
|
||||
|
||||
return strtod(value.c_str(), NULL);
|
||||
return strtod(value.c_str(), nullptr);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -172,7 +172,7 @@ int64_t Preferences::GetLong(const char *key, int64_t defaultValue) {
|
||||
if (value.empty()) return defaultValue;
|
||||
|
||||
// Ummm... not available in our VxWorks...
|
||||
// return strtoll(value.c_str(), NULL, 0);
|
||||
// return strtoll(value.c_str(), nullptr, 0);
|
||||
int64_t intVal;
|
||||
sscanf(value.c_str(), "%lld", &intVal);
|
||||
return intVal;
|
||||
@@ -192,7 +192,7 @@ int64_t Preferences::GetLong(const char *key, int64_t defaultValue) {
|
||||
* @param value the value
|
||||
*/
|
||||
void Preferences::PutString(const char *key, const char *value) {
|
||||
if (value == NULL) {
|
||||
if (value == nullptr) {
|
||||
wpi_setWPIErrorWithContext(NullParameter, "value");
|
||||
return;
|
||||
}
|
||||
@@ -323,7 +323,7 @@ bool Preferences::ContainsKey(const char *key) { return !Get(key).empty(); }
|
||||
*/
|
||||
void Preferences::Remove(const char *key) {
|
||||
m_values.erase(std::string(key));
|
||||
std::vector<std::string>::iterator it = m_keys.begin();
|
||||
auto it = m_keys.begin();
|
||||
for (; it != m_keys.end(); it++) {
|
||||
if (it->compare(key) == 0) {
|
||||
m_keys.erase(it);
|
||||
@@ -339,7 +339,7 @@ void Preferences::Remove(const char *key) {
|
||||
*/
|
||||
std::string Preferences::Get(const char *key) {
|
||||
Synchronized sync(m_tableLock);
|
||||
if (key == NULL) {
|
||||
if (key == nullptr) {
|
||||
wpi_setWPIErrorWithContext(NullParameter, "key");
|
||||
return std::string("");
|
||||
}
|
||||
@@ -353,7 +353,7 @@ std::string Preferences::Get(const char *key) {
|
||||
*/
|
||||
void Preferences::Put(const char *key, std::string value) {
|
||||
Synchronized sync(m_tableLock);
|
||||
if (key == NULL) {
|
||||
if (key == nullptr) {
|
||||
wpi_setWPIErrorWithContext(NullParameter, "key");
|
||||
return;
|
||||
}
|
||||
@@ -385,10 +385,10 @@ void Preferences::ReadTaskRun() {
|
||||
|
||||
std::string comment;
|
||||
|
||||
FILE *file = NULL;
|
||||
FILE *file = nullptr;
|
||||
file = fopen(kFileName, "r");
|
||||
|
||||
if (file != NULL) {
|
||||
if (file != nullptr) {
|
||||
std::string buffer;
|
||||
while (true) {
|
||||
char value;
|
||||
@@ -469,7 +469,7 @@ void Preferences::ReadTaskRun() {
|
||||
wpi_setErrnoErrorWithContext("Opening preferences file");
|
||||
}
|
||||
|
||||
if (file != NULL) fclose(file);
|
||||
if (file != nullptr) fclose(file);
|
||||
|
||||
if (!comment.empty()) m_endComment = comment;
|
||||
|
||||
@@ -486,11 +486,11 @@ void Preferences::WriteTaskRun() {
|
||||
Synchronized sync(m_tableLock);
|
||||
giveSemaphore(m_fileOpStarted);
|
||||
|
||||
FILE *file = NULL;
|
||||
FILE *file = nullptr;
|
||||
file = fopen(kFileName, "w");
|
||||
|
||||
fputs("[Preferences]\n", file);
|
||||
std::vector<std::string>::iterator it = m_keys.begin();
|
||||
auto it = m_keys.begin();
|
||||
for (; it != m_keys.end(); it++) {
|
||||
std::string key = *it;
|
||||
std::string value = m_values[key];
|
||||
@@ -506,14 +506,13 @@ void Preferences::WriteTaskRun() {
|
||||
|
||||
if (!m_endComment.empty()) fputs(m_endComment.c_str(), file);
|
||||
|
||||
if (file != NULL) fclose(file);
|
||||
if (file != nullptr) fclose(file);
|
||||
|
||||
NetworkTable::GetTable(kTableName)->PutBoolean(kSaveField, false);
|
||||
}
|
||||
|
||||
static bool isKeyAcceptable(const std::string &value) {
|
||||
for (unsigned int i = 0; i < value.length(); i++) {
|
||||
char letter = value.at(i);
|
||||
for (auto letter : value) {
|
||||
switch (letter) {
|
||||
case '=':
|
||||
case '\n':
|
||||
@@ -538,7 +537,7 @@ void Preferences::ValueChanged(ITable *table, const std::string &key,
|
||||
table->GetString(key, "").find('"') != std::string::npos) {
|
||||
if (m_values.find(key) != m_values.end()) {
|
||||
m_values.erase(key);
|
||||
std::vector<std::string>::iterator it = m_keys.begin();
|
||||
auto it = m_keys.begin();
|
||||
for (; it != m_keys.end(); it++) {
|
||||
if (key == *it) {
|
||||
m_keys.erase(it);
|
||||
|
||||
@@ -15,7 +15,7 @@
|
||||
#include "HAL/HAL.hpp"
|
||||
|
||||
// Allocate each direction separately.
|
||||
static Resource *relayChannels = NULL;
|
||||
static Resource *relayChannels = nullptr;
|
||||
|
||||
/**
|
||||
* Common relay initialization method.
|
||||
@@ -25,7 +25,7 @@ static Resource *relayChannels = NULL;
|
||||
* lines at 0v.
|
||||
*/
|
||||
void Relay::InitRelay() {
|
||||
m_table = NULL;
|
||||
m_table = nullptr;
|
||||
char buf[64];
|
||||
Resource::CreateResourceObject(&relayChannels,
|
||||
dio_kNumSystems * kRelayChannels * 2);
|
||||
@@ -210,7 +210,7 @@ void Relay::ValueChanged(ITable *source, const std::string &key,
|
||||
}
|
||||
|
||||
void Relay::UpdateTable() {
|
||||
if (m_table != NULL) {
|
||||
if (m_table != nullptr) {
|
||||
if (Get() == kOn) {
|
||||
m_table->PutString("Value", "On");
|
||||
} else if (Get() == kForward) {
|
||||
@@ -224,13 +224,13 @@ void Relay::UpdateTable() {
|
||||
}
|
||||
|
||||
void Relay::StartLiveWindowMode() {
|
||||
if (m_table != NULL) {
|
||||
if (m_table != nullptr) {
|
||||
m_table->AddTableListener("Value", this, true);
|
||||
}
|
||||
}
|
||||
|
||||
void Relay::StopLiveWindowMode() {
|
||||
if (m_table != NULL) {
|
||||
if (m_table != nullptr) {
|
||||
m_table->RemoveTableListener(this);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -26,10 +26,10 @@
|
||||
#include <taskLib.h>
|
||||
#endif
|
||||
|
||||
RobotBase *RobotBase::m_instance = NULL;
|
||||
RobotBase *RobotBase::m_instance = nullptr;
|
||||
|
||||
void RobotBase::setInstance(RobotBase *robot) {
|
||||
wpi_assert(m_instance == NULL);
|
||||
wpi_assert(m_instance == nullptr);
|
||||
m_instance = robot;
|
||||
}
|
||||
|
||||
@@ -52,18 +52,18 @@ void RobotBase::robotSetup(RobotBase *robot) {
|
||||
* nice to put this code into it's own task that loads on boot so ensure that it
|
||||
* runs.
|
||||
*/
|
||||
RobotBase::RobotBase() : m_task(NULL), m_ds(NULL) {
|
||||
RobotBase::RobotBase() : m_task(nullptr), m_ds(nullptr) {
|
||||
m_ds = DriverStation::GetInstance();
|
||||
RobotState::SetImplementation(DriverStation::GetInstance());
|
||||
HLUsageReporting::SetImplementation(new HardwareHLReporting());
|
||||
|
||||
RobotBase::setInstance(this);
|
||||
|
||||
FILE *file = NULL;
|
||||
FILE *file = nullptr;
|
||||
file = fopen("/tmp/frc_versions/FRC_Lib_Version.ini", "w");
|
||||
|
||||
fputs("2015 C++ 1.2.0", file);
|
||||
if (file != NULL) fclose(file);
|
||||
if (file != nullptr) fclose(file);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -75,8 +75,8 @@ RobotBase::RobotBase() : m_task(NULL), m_ds(NULL) {
|
||||
RobotBase::~RobotBase() {
|
||||
SensorBase::DeleteSingletons();
|
||||
delete m_task;
|
||||
m_task = NULL;
|
||||
m_instance = NULL;
|
||||
m_task = nullptr;
|
||||
m_instance = nullptr;
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -37,10 +37,10 @@ const int32_t RobotDrive::kMaxNumberOfMotors;
|
||||
* robot drive.
|
||||
*/
|
||||
void RobotDrive::InitRobotDrive() {
|
||||
m_frontLeftMotor = NULL;
|
||||
m_frontRightMotor = NULL;
|
||||
m_rearRightMotor = NULL;
|
||||
m_rearLeftMotor = NULL;
|
||||
m_frontLeftMotor = nullptr;
|
||||
m_frontRightMotor = nullptr;
|
||||
m_rearRightMotor = nullptr;
|
||||
m_rearLeftMotor = nullptr;
|
||||
m_sensitivity = 0.5;
|
||||
m_maxOutput = 1.0;
|
||||
m_safetyHelper = new MotorSafetyHelper(this);
|
||||
@@ -105,9 +105,9 @@ RobotDrive::RobotDrive(uint32_t frontLeftMotor, uint32_t rearLeftMotor,
|
||||
RobotDrive::RobotDrive(SpeedController *leftMotor,
|
||||
SpeedController *rightMotor) {
|
||||
InitRobotDrive();
|
||||
if (leftMotor == NULL || rightMotor == NULL) {
|
||||
if (leftMotor == nullptr || rightMotor == nullptr) {
|
||||
wpi_setWPIError(NullParameter);
|
||||
m_rearLeftMotor = m_rearRightMotor = NULL;
|
||||
m_rearLeftMotor = m_rearRightMotor = nullptr;
|
||||
return;
|
||||
}
|
||||
m_rearLeftMotor = leftMotor;
|
||||
@@ -141,8 +141,8 @@ RobotDrive::RobotDrive(SpeedController *frontLeftMotor,
|
||||
SpeedController *frontRightMotor,
|
||||
SpeedController *rearRightMotor) {
|
||||
InitRobotDrive();
|
||||
if (frontLeftMotor == NULL || rearLeftMotor == NULL ||
|
||||
frontRightMotor == NULL || rearRightMotor == NULL) {
|
||||
if (frontLeftMotor == nullptr || rearLeftMotor == nullptr ||
|
||||
frontRightMotor == nullptr || rearRightMotor == nullptr) {
|
||||
wpi_setWPIError(NullParameter);
|
||||
return;
|
||||
}
|
||||
@@ -230,7 +230,7 @@ void RobotDrive::Drive(float outputMagnitude, float curve) {
|
||||
*/
|
||||
void RobotDrive::TankDrive(GenericHID *leftStick, GenericHID *rightStick,
|
||||
bool squaredInputs) {
|
||||
if (leftStick == NULL || rightStick == NULL) {
|
||||
if (leftStick == nullptr || rightStick == nullptr) {
|
||||
wpi_setWPIError(NullParameter);
|
||||
return;
|
||||
}
|
||||
@@ -255,7 +255,7 @@ void RobotDrive::TankDrive(GenericHID &leftStick, GenericHID &rightStick,
|
||||
void RobotDrive::TankDrive(GenericHID *leftStick, uint32_t leftAxis,
|
||||
GenericHID *rightStick, uint32_t rightAxis,
|
||||
bool squaredInputs) {
|
||||
if (leftStick == NULL || rightStick == NULL) {
|
||||
if (leftStick == nullptr || rightStick == nullptr) {
|
||||
wpi_setWPIError(NullParameter);
|
||||
return;
|
||||
}
|
||||
@@ -591,13 +591,13 @@ void RobotDrive::HolonomicDrive(float magnitude, float direction,
|
||||
* @param rightOutput The speed to send to the right side of the robot.
|
||||
*/
|
||||
void RobotDrive::SetLeftRightMotorOutputs(float leftOutput, float rightOutput) {
|
||||
wpi_assert(m_rearLeftMotor != NULL && m_rearRightMotor != NULL);
|
||||
wpi_assert(m_rearLeftMotor != nullptr && m_rearRightMotor != nullptr);
|
||||
|
||||
if (m_frontLeftMotor != NULL)
|
||||
if (m_frontLeftMotor != nullptr)
|
||||
m_frontLeftMotor->Set(Limit(leftOutput) * m_maxOutput, m_syncGroup);
|
||||
m_rearLeftMotor->Set(Limit(leftOutput) * m_maxOutput, m_syncGroup);
|
||||
|
||||
if (m_frontRightMotor != NULL)
|
||||
if (m_frontRightMotor != nullptr)
|
||||
m_frontRightMotor->Set(-Limit(rightOutput) * m_maxOutput, m_syncGroup);
|
||||
m_rearRightMotor->Set(-Limit(rightOutput) * m_maxOutput, m_syncGroup);
|
||||
|
||||
@@ -734,9 +734,9 @@ void RobotDrive::GetDescription(char *desc) const {
|
||||
}
|
||||
|
||||
void RobotDrive::StopMotor() {
|
||||
if (m_frontLeftMotor != NULL) m_frontLeftMotor->Disable();
|
||||
if (m_frontRightMotor != NULL) m_frontRightMotor->Disable();
|
||||
if (m_rearLeftMotor != NULL) m_rearLeftMotor->Disable();
|
||||
if (m_rearRightMotor != NULL) m_rearRightMotor->Disable();
|
||||
if (m_frontLeftMotor != nullptr) m_frontLeftMotor->Disable();
|
||||
if (m_frontRightMotor != nullptr) m_frontRightMotor->Disable();
|
||||
if (m_rearLeftMotor != nullptr) m_rearLeftMotor->Disable();
|
||||
if (m_rearRightMotor != nullptr) m_rearRightMotor->Disable();
|
||||
m_safetyHelper->Feed();
|
||||
}
|
||||
|
||||
@@ -151,7 +151,7 @@ int32_t SPI::Write(uint8_t* data, uint8_t size) {
|
||||
int32_t SPI::Read(bool initiate, uint8_t* dataReceived, uint8_t size) {
|
||||
int32_t retVal = 0;
|
||||
if (initiate) {
|
||||
uint8_t* dataToSend = new uint8_t[size];
|
||||
auto dataToSend = new uint8_t[size];
|
||||
memset(dataToSend, 0, size);
|
||||
retVal = spiTransaction(m_port, dataToSend, dataReceived, size);
|
||||
} else
|
||||
|
||||
@@ -19,7 +19,7 @@ const uint32_t SensorBase::kPwmChannels;
|
||||
const uint32_t SensorBase::kRelayChannels;
|
||||
const uint32_t SensorBase::kPDPChannels;
|
||||
const uint32_t SensorBase::kChassisSlots;
|
||||
SensorBase* SensorBase::m_singletonList = NULL;
|
||||
SensorBase* SensorBase::m_singletonList = nullptr;
|
||||
|
||||
static bool portsInitialized = false;
|
||||
void* SensorBase::m_digital_ports[kDigitalChannels];
|
||||
@@ -80,12 +80,12 @@ void SensorBase::AddToSingletonList() {
|
||||
* their resources can be freed.
|
||||
*/
|
||||
void SensorBase::DeleteSingletons() {
|
||||
for (SensorBase* next = m_singletonList; next != NULL;) {
|
||||
for (SensorBase* next = m_singletonList; next != nullptr;) {
|
||||
SensorBase* tmp = next;
|
||||
next = next->m_nextSingleton;
|
||||
delete tmp;
|
||||
}
|
||||
m_singletonList = NULL;
|
||||
m_singletonList = nullptr;
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -53,7 +53,7 @@ SerialPort::SerialPort(uint32_t baudRate, Port port, uint8_t dataBits,
|
||||
|
||||
// viInstallHandler(m_portHandle, VI_EVENT_IO_COMPLETION, ioCompleteHandler,
|
||||
// this);
|
||||
// viEnableEvent(m_portHandle, VI_EVENT_IO_COMPLETION, VI_HNDLR, VI_NULL);
|
||||
// viEnableEvent(m_portHandle, VI_EVENT_IO_COMPLETION, VI_HNDLR, VI_nullptr);
|
||||
|
||||
HALReport(HALUsageReporting::kResourceType_SerialPort, 0);
|
||||
}
|
||||
@@ -226,4 +226,4 @@ void SerialPort::Reset() {
|
||||
int32_t status = 0;
|
||||
serialClear(m_port, &status);
|
||||
wpi_setErrorWithContext(status, getHALErrorMessage(status));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -24,7 +24,7 @@ constexpr float Servo::kDefaultMinServoPWM;
|
||||
* well as the minimum and maximum PWM values supported by the servo.
|
||||
*/
|
||||
void Servo::InitServo() {
|
||||
m_table = NULL;
|
||||
m_table = nullptr;
|
||||
SetBounds(kDefaultMaxServoPWM, 0.0, 0.0, 0.0, kDefaultMinServoPWM);
|
||||
SetPeriodMultiplier(kPeriodMultiplier_4X);
|
||||
|
||||
@@ -112,19 +112,19 @@ void Servo::ValueChanged(ITable* source, const std::string& key,
|
||||
}
|
||||
|
||||
void Servo::UpdateTable() {
|
||||
if (m_table != NULL) {
|
||||
if (m_table != nullptr) {
|
||||
m_table->PutNumber("Value", Get());
|
||||
}
|
||||
}
|
||||
|
||||
void Servo::StartLiveWindowMode() {
|
||||
if (m_table != NULL) {
|
||||
if (m_table != nullptr) {
|
||||
m_table->AddTableListener("Value", this, true);
|
||||
}
|
||||
}
|
||||
|
||||
void Servo::StopLiveWindowMode() {
|
||||
if (m_table != NULL) {
|
||||
if (m_table != nullptr) {
|
||||
m_table->RemoveTableListener(this);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -14,7 +14,7 @@
|
||||
* Common function to implement constructor behavior.
|
||||
*/
|
||||
void Solenoid::InitSolenoid() {
|
||||
m_table = NULL;
|
||||
m_table = nullptr;
|
||||
char buf[64];
|
||||
if (!CheckSolenoidModule(m_moduleNumber)) {
|
||||
snprintf(buf, 64, "Solenoid Module %d", m_moduleNumber);
|
||||
@@ -113,21 +113,21 @@ void Solenoid::ValueChanged(ITable* source, const std::string& key,
|
||||
}
|
||||
|
||||
void Solenoid::UpdateTable() {
|
||||
if (m_table != NULL) {
|
||||
if (m_table != nullptr) {
|
||||
m_table->PutBoolean("Value", Get());
|
||||
}
|
||||
}
|
||||
|
||||
void Solenoid::StartLiveWindowMode() {
|
||||
Set(false);
|
||||
if (m_table != NULL) {
|
||||
if (m_table != nullptr) {
|
||||
m_table->AddTableListener("Value", this, true);
|
||||
}
|
||||
}
|
||||
|
||||
void Solenoid::StopLiveWindowMode() {
|
||||
Set(false);
|
||||
if (m_table != NULL) {
|
||||
if (m_table != nullptr) {
|
||||
m_table->RemoveTableListener(this);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -8,7 +8,7 @@
|
||||
#include "SolenoidBase.h"
|
||||
|
||||
// Needs to be global since the protected resource spans all Solenoid objects.
|
||||
Resource* SolenoidBase::m_allocated = NULL;
|
||||
Resource* SolenoidBase::m_allocated = nullptr;
|
||||
|
||||
void* SolenoidBase::m_ports[m_maxModules][m_maxPorts];
|
||||
/**
|
||||
|
||||
@@ -41,7 +41,7 @@ Task::Task(const char* name, FUNCPTR function, int32_t priority,
|
||||
Task::~Task() {
|
||||
if (m_taskID != NULL_TASK) Stop();
|
||||
delete[] m_taskName;
|
||||
m_taskName = NULL;
|
||||
m_taskName = nullptr;
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -144,7 +144,7 @@ bool Task::SetPriority(int32_t priority) {
|
||||
|
||||
/**
|
||||
* Returns the name of the task.
|
||||
* @returns Pointer to the name of the task or NULL if not allocated
|
||||
* @returns Pointer to the name of the task or nullptr if not allocated
|
||||
*/
|
||||
const char* Task::GetName() const { return m_taskName; }
|
||||
|
||||
|
||||
@@ -63,7 +63,7 @@ Timer::Timer()
|
||||
: m_startTime(0.0),
|
||||
m_accumulatedTime(0.0),
|
||||
m_running(false),
|
||||
m_semaphore(0) {
|
||||
m_semaphore(nullptr) {
|
||||
// Creates a semaphore to control access to critical regions.
|
||||
// Initially 'open'
|
||||
m_semaphore = initializeMutexNormal();
|
||||
|
||||
@@ -148,7 +148,7 @@ void USBCamera::UpdateSettings() {
|
||||
|
||||
uInt32 count = 0;
|
||||
uInt32 currentMode = 0;
|
||||
SAFE_IMAQ_CALL(IMAQdxEnumerateVideoModes, m_id, NULL, &count, ¤tMode);
|
||||
SAFE_IMAQ_CALL(IMAQdxEnumerateVideoModes, m_id, nullptr, &count, ¤tMode);
|
||||
IMAQdxVideoMode modes[count];
|
||||
SAFE_IMAQ_CALL(IMAQdxEnumerateVideoModes, m_id, modes, &count, ¤tMode);
|
||||
|
||||
|
||||
@@ -28,9 +28,9 @@ Task Ultrasonic::m_task(
|
||||
(FUNCPTR)
|
||||
UltrasonicChecker); // task doing the round-robin automatic sensing
|
||||
Ultrasonic *Ultrasonic::m_firstSensor =
|
||||
NULL; // head of the ultrasonic sensor list
|
||||
nullptr; // head of the ultrasonic sensor list
|
||||
bool Ultrasonic::m_automaticEnabled = false; // automatic round robin mode
|
||||
SEMAPHORE_ID Ultrasonic::m_semaphore = 0;
|
||||
SEMAPHORE_ID Ultrasonic::m_semaphore = nullptr;
|
||||
|
||||
/**
|
||||
* Background task that goes through the list of ultrasonic sensors and pings
|
||||
@@ -45,10 +45,10 @@ SEMAPHORE_ID Ultrasonic::m_semaphore = 0;
|
||||
* anything with the sensors!!
|
||||
*/
|
||||
void Ultrasonic::UltrasonicChecker() {
|
||||
Ultrasonic *u = NULL;
|
||||
Ultrasonic *u = nullptr;
|
||||
while (m_automaticEnabled) {
|
||||
if (u == NULL) u = m_firstSensor;
|
||||
if (u == NULL) return;
|
||||
if (u == nullptr) u = m_firstSensor;
|
||||
if (u == nullptr) return;
|
||||
if (u->IsEnabled()) u->m_pingChannel->Pulse(kPingTime); // do the ping
|
||||
u = u->m_nextSensor;
|
||||
Wait(0.1); // wait for ping to return
|
||||
@@ -66,9 +66,9 @@ void Ultrasonic::UltrasonicChecker() {
|
||||
* restored.
|
||||
*/
|
||||
void Ultrasonic::Initialize() {
|
||||
m_table = NULL;
|
||||
m_table = nullptr;
|
||||
bool originalMode = m_automaticEnabled;
|
||||
if (m_semaphore == 0) m_semaphore = initializeSemaphore(SEMAPHORE_FULL);
|
||||
if (m_semaphore == nullptr) m_semaphore = initializeSemaphore(SEMAPHORE_FULL);
|
||||
SetAutomaticMode(false); // kill task when adding a new sensor
|
||||
takeSemaphore(m_semaphore); // link this instance on the list
|
||||
{
|
||||
@@ -124,7 +124,7 @@ Ultrasonic::Ultrasonic(uint32_t pingChannel, uint32_t echoChannel,
|
||||
*/
|
||||
Ultrasonic::Ultrasonic(DigitalOutput *pingChannel, DigitalInput *echoChannel,
|
||||
DistanceUnit units) {
|
||||
if (pingChannel == NULL || echoChannel == NULL) {
|
||||
if (pingChannel == nullptr || echoChannel == nullptr) {
|
||||
wpi_setWPIError(NullParameter);
|
||||
return;
|
||||
}
|
||||
@@ -169,18 +169,18 @@ Ultrasonic::~Ultrasonic() {
|
||||
delete m_pingChannel;
|
||||
delete m_echoChannel;
|
||||
}
|
||||
wpi_assert(m_firstSensor != NULL);
|
||||
wpi_assert(m_firstSensor != nullptr);
|
||||
|
||||
takeSemaphore(m_semaphore);
|
||||
{
|
||||
if (this == m_firstSensor) {
|
||||
m_firstSensor = m_nextSensor;
|
||||
if (m_firstSensor == NULL) {
|
||||
if (m_firstSensor == nullptr) {
|
||||
SetAutomaticMode(false);
|
||||
}
|
||||
} else {
|
||||
wpi_assert(m_firstSensor->m_nextSensor != NULL);
|
||||
for (Ultrasonic *s = m_firstSensor; s != NULL; s = s->m_nextSensor) {
|
||||
wpi_assert(m_firstSensor->m_nextSensor != nullptr);
|
||||
for (Ultrasonic *s = m_firstSensor; s != nullptr; s = s->m_nextSensor) {
|
||||
if (this == s->m_nextSensor) {
|
||||
s->m_nextSensor = s->m_nextSensor->m_nextSensor;
|
||||
break;
|
||||
@@ -189,7 +189,7 @@ Ultrasonic::~Ultrasonic() {
|
||||
}
|
||||
}
|
||||
giveSemaphore(m_semaphore);
|
||||
if (m_firstSensor != NULL && wasAutomaticMode) SetAutomaticMode(true);
|
||||
if (m_firstSensor != nullptr && wasAutomaticMode) SetAutomaticMode(true);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -211,7 +211,7 @@ void Ultrasonic::SetAutomaticMode(bool enabling) {
|
||||
if (enabling) {
|
||||
// enabling automatic mode.
|
||||
// Clear all the counters so no data is valid
|
||||
for (Ultrasonic *u = m_firstSensor; u != NULL; u = u->m_nextSensor) {
|
||||
for (Ultrasonic *u = m_firstSensor; u != nullptr; u = u->m_nextSensor) {
|
||||
u->m_counter->Reset();
|
||||
}
|
||||
// Start round robin task
|
||||
@@ -225,7 +225,7 @@ void Ultrasonic::SetAutomaticMode(bool enabling) {
|
||||
// stop
|
||||
|
||||
// clear all the counters (data now invalid) since automatic mode is stopped
|
||||
for (Ultrasonic *u = m_firstSensor; u != NULL; u = u->m_nextSensor) {
|
||||
for (Ultrasonic *u = m_firstSensor; u != nullptr; u = u->m_nextSensor) {
|
||||
u->m_counter->Reset();
|
||||
}
|
||||
m_task.Stop();
|
||||
@@ -313,7 +313,7 @@ Ultrasonic::DistanceUnit Ultrasonic::GetDistanceUnits() const {
|
||||
}
|
||||
|
||||
void Ultrasonic::UpdateTable() {
|
||||
if (m_table != NULL) {
|
||||
if (m_table != nullptr) {
|
||||
m_table->PutNumber("Value", GetRangeInches());
|
||||
}
|
||||
}
|
||||
|
||||
@@ -62,7 +62,7 @@ bool wpi_assert_impl(bool conditionValue, const char *conditionText,
|
||||
std::cout << error << std::endl;
|
||||
HALSetErrorData(error.c_str(), error.size(), 100);
|
||||
|
||||
if (suspendOnAssertEnabled) suspendTask(0);
|
||||
if (suspendOnAssertEnabled) suspendTask(nullptr);
|
||||
}
|
||||
|
||||
return conditionValue;
|
||||
@@ -99,7 +99,7 @@ void wpi_assertEqual_common_impl(const char *valueA, const char *valueB,
|
||||
std::cout << error << std::endl;
|
||||
HALSetErrorData(error.c_str(), error.size(), 100);
|
||||
|
||||
if (suspendOnAssertEnabled) suspendTask(0);
|
||||
if (suspendOnAssertEnabled) suspendTask(nullptr);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -200,7 +200,7 @@ static std::string demangle(char const *mangledSymbol) {
|
||||
int status;
|
||||
|
||||
if (sscanf(mangledSymbol, "%*[^(]%*[(]%255[^)+]", buffer)) {
|
||||
char *symbol = abi::__cxa_demangle(buffer, NULL, &length, &status);
|
||||
char *symbol = abi::__cxa_demangle(buffer, nullptr, &length, &status);
|
||||
if (status == 0) {
|
||||
return symbol;
|
||||
} else {
|
||||
|
||||
@@ -112,7 +112,7 @@ int AxisCamera::GetImage(ColorImage *image) {
|
||||
* @return a pointer to an HSLImage object
|
||||
*/
|
||||
HSLImage *AxisCamera::GetImage() {
|
||||
HSLImage *image = new HSLImage();
|
||||
auto image = new HSLImage();
|
||||
GetImage(image);
|
||||
return image;
|
||||
}
|
||||
@@ -131,22 +131,22 @@ HSLImage *AxisCamera::GetImage() {
|
||||
int AxisCamera::CopyJPEG(char **destImage, unsigned int &destImageSize,
|
||||
unsigned int &destImageBufferSize) {
|
||||
std::lock_guard<std::mutex> lock(m_imageDataMutex);
|
||||
if (destImage == NULL)
|
||||
wpi_setWPIErrorWithContext(NullParameter, "destImage must not be NULL");
|
||||
if (destImage == nullptr)
|
||||
wpi_setWPIErrorWithContext(NullParameter, "destImage must not be nullptr");
|
||||
|
||||
if (m_imageData.size() == 0) return 0; // if no source image
|
||||
|
||||
if (destImageBufferSize <
|
||||
m_imageData.size()) // if current destination buffer too small
|
||||
{
|
||||
if (*destImage != NULL) delete[] * destImage;
|
||||
if (*destImage != nullptr) delete[] * destImage;
|
||||
destImageBufferSize = m_imageData.size() + kImageBufferAllocationIncrement;
|
||||
*destImage = new char[destImageBufferSize];
|
||||
if (*destImage == NULL) return 0;
|
||||
if (*destImage == nullptr) return 0;
|
||||
}
|
||||
// copy this image into destination buffer
|
||||
if (*destImage == NULL) {
|
||||
wpi_setWPIErrorWithContext(NullParameter, "*destImage must not be NULL");
|
||||
if (*destImage == nullptr) {
|
||||
wpi_setWPIErrorWithContext(NullParameter, "*destImage must not be nullptr");
|
||||
}
|
||||
|
||||
std::copy(m_imageData.begin(), m_imageData.end(), *destImage);
|
||||
@@ -415,7 +415,7 @@ void AxisCamera::Capture() {
|
||||
* This function actually reads the images from the camera.
|
||||
*/
|
||||
void AxisCamera::ReadImagesFromCamera() {
|
||||
char *imgBuffer = NULL;
|
||||
char *imgBuffer = nullptr;
|
||||
int imgBufferLength = 0;
|
||||
|
||||
// TODO: these recv calls must be non-blocking. Otherwise if the camera
|
||||
@@ -441,7 +441,7 @@ void AxisCamera::ReadImagesFromCamera() {
|
||||
// after
|
||||
// there is at least 4 bytes total. Kind of obscure.
|
||||
// look for 2 blank lines (\r\n)
|
||||
if (NULL != strstr(trailingPtr, "\r\n\r\n")) {
|
||||
if (nullptr != strstr(trailingPtr, "\r\n\r\n")) {
|
||||
--counter;
|
||||
}
|
||||
if (++trailingCounter >= 4) {
|
||||
@@ -450,7 +450,7 @@ void AxisCamera::ReadImagesFromCamera() {
|
||||
}
|
||||
counter = 1;
|
||||
char *contentLength = strstr(initialReadBuffer, "Content-Length: ");
|
||||
if (contentLength == NULL) {
|
||||
if (contentLength == nullptr) {
|
||||
wpi_setWPIErrorWithContext(IncompatibleMode,
|
||||
"No content-length token found in packet");
|
||||
close(m_cameraSocket);
|
||||
@@ -464,7 +464,7 @@ void AxisCamera::ReadImagesFromCamera() {
|
||||
if (imgBuffer) delete[] imgBuffer;
|
||||
imgBufferLength = readLength + kImageBufferAllocationIncrement;
|
||||
imgBuffer = new char[imgBufferLength];
|
||||
if (imgBuffer == NULL) {
|
||||
if (imgBuffer == nullptr) {
|
||||
imgBufferLength = 0;
|
||||
continue;
|
||||
}
|
||||
@@ -567,7 +567,7 @@ bool AxisCamera::WriteParameters() {
|
||||
*/
|
||||
int AxisCamera::CreateCameraSocket(std::string const &requestString,
|
||||
bool setError) {
|
||||
struct addrinfo *address = 0;
|
||||
struct addrinfo *address = nullptr;
|
||||
int camSocket;
|
||||
|
||||
/* create socket */
|
||||
@@ -577,7 +577,7 @@ int AxisCamera::CreateCameraSocket(std::string const &requestString,
|
||||
return -1;
|
||||
}
|
||||
|
||||
if (getaddrinfo(m_cameraHost.c_str(), "80", 0, &address) == -1) {
|
||||
if (getaddrinfo(m_cameraHost.c_str(), "80", nullptr, &address) == -1) {
|
||||
if (setError)
|
||||
wpi_setErrnoErrorWithContext("Failed to create the camera socket");
|
||||
return -1;
|
||||
|
||||
@@ -129,7 +129,7 @@ void dprintf(const char *tempString, ...) /* Variable argument list */
|
||||
break;
|
||||
case DEBUG_MOSTLY_OFF:
|
||||
if (fatalFlag) {
|
||||
if ((outfile_fd = fopen(filepath, "a+")) != NULL) {
|
||||
if ((outfile_fd = fopen(filepath, "a+")) != nullptr) {
|
||||
fwrite(outtext, sizeof(char), strlen(outtext), outfile_fd);
|
||||
fclose(outfile_fd);
|
||||
}
|
||||
@@ -139,14 +139,14 @@ void dprintf(const char *tempString, ...) /* Variable argument list */
|
||||
printf("%s", outtext);
|
||||
break;
|
||||
case DEBUG_FILE_ONLY:
|
||||
if ((outfile_fd = fopen(filepath, "a+")) != NULL) {
|
||||
if ((outfile_fd = fopen(filepath, "a+")) != nullptr) {
|
||||
fwrite(outtext, sizeof(char), strlen(outtext), outfile_fd);
|
||||
fclose(outfile_fd);
|
||||
}
|
||||
break;
|
||||
case DEBUG_SCREEN_AND_FILE: // BOTH
|
||||
printf("%s", outtext);
|
||||
if ((outfile_fd = fopen(filepath, "a+")) != NULL) {
|
||||
if ((outfile_fd = fopen(filepath, "a+")) != nullptr) {
|
||||
fwrite(outtext, sizeof(char), strlen(outtext), outfile_fd);
|
||||
fclose(outfile_fd);
|
||||
}
|
||||
@@ -223,7 +223,7 @@ double SinPosition(double *period, double sinStart) {
|
||||
double sinArg;
|
||||
|
||||
// 1st call
|
||||
if (period != NULL) {
|
||||
if (period != nullptr) {
|
||||
sinePeriod = *period;
|
||||
timestamp = GetTime();
|
||||
return 0.0;
|
||||
@@ -270,7 +270,7 @@ void panInit(double period) {
|
||||
void panForTarget(Servo *panServo) { panForTarget(panServo, 0.0); }
|
||||
|
||||
void panForTarget(Servo *panServo, double sinStart) {
|
||||
float normalizedSinPosition = (float)SinPosition(NULL, sinStart);
|
||||
float normalizedSinPosition = (float)SinPosition(nullptr, sinStart);
|
||||
float newServoPosition = NormalizeToRange(normalizedSinPosition);
|
||||
panServo->Set(newServoPosition);
|
||||
// ShowActivity ("pan x: normalized %f newServoPosition = %f" ,
|
||||
@@ -296,13 +296,13 @@ int processFile(char *inputFile, char *outputString, int lineNumber) {
|
||||
|
||||
if (lineNumber < 0) return (-1);
|
||||
|
||||
if ((infile = fopen(inputFile, "r")) == NULL) {
|
||||
if ((infile = fopen(inputFile, "r")) == nullptr) {
|
||||
printf("Fatal error opening file %s\n", inputFile);
|
||||
return (0);
|
||||
}
|
||||
|
||||
while (!feof(infile)) {
|
||||
if (fgets(inputStr, stringSize, infile) != NULL) {
|
||||
if (fgets(inputStr, stringSize, infile) != nullptr) {
|
||||
// Skip empty lines
|
||||
if (emptyString(inputStr)) continue;
|
||||
// Skip comment lines
|
||||
@@ -339,7 +339,7 @@ int processFile(char *inputFile, char *outputString, int lineNumber) {
|
||||
int emptyString(char *string) {
|
||||
int i, len;
|
||||
|
||||
if (string == NULL) return (1);
|
||||
if (string == nullptr) return (1);
|
||||
|
||||
len = strlen(string);
|
||||
for (i = 0; i < len; i++) {
|
||||
@@ -358,7 +358,7 @@ int emptyString(char *string) {
|
||||
void stripString(char *string) {
|
||||
int i, j, len;
|
||||
|
||||
if (string == NULL) return;
|
||||
if (string == nullptr) return;
|
||||
|
||||
len = strlen(string);
|
||||
for (i = 0, j = 0; i < len; i++) {
|
||||
|
||||
@@ -107,8 +107,7 @@ void BinaryImage::GetParticleAnalysisReport(int particleNumber,
|
||||
*/
|
||||
vector<ParticleAnalysisReport> *
|
||||
BinaryImage::GetOrderedParticleAnalysisReports() {
|
||||
vector<ParticleAnalysisReport> *particles =
|
||||
new vector<ParticleAnalysisReport>;
|
||||
auto particles = new vector<ParticleAnalysisReport>;
|
||||
int particleCount = GetNumberParticles();
|
||||
for (int particleIndex = 0; particleIndex < particleCount; particleIndex++) {
|
||||
particles->push_back(GetParticleAnalysisReport(particleIndex));
|
||||
@@ -197,23 +196,23 @@ bool BinaryImage::CompareParticleSizes(ParticleAnalysisReport particle1,
|
||||
}
|
||||
|
||||
BinaryImage *BinaryImage::RemoveSmallObjects(bool connectivity8, int erosions) {
|
||||
BinaryImage *result = new BinaryImage();
|
||||
auto result = new BinaryImage();
|
||||
int success = imaqSizeFilter(result->GetImaqImage(), m_imaqImage,
|
||||
connectivity8, erosions, IMAQ_KEEP_LARGE, NULL);
|
||||
connectivity8, erosions, IMAQ_KEEP_LARGE, nullptr);
|
||||
wpi_setImaqErrorWithContext(success, "Error in RemoveSmallObjects");
|
||||
return result;
|
||||
}
|
||||
|
||||
BinaryImage *BinaryImage::RemoveLargeObjects(bool connectivity8, int erosions) {
|
||||
BinaryImage *result = new BinaryImage();
|
||||
auto result = new BinaryImage();
|
||||
int success = imaqSizeFilter(result->GetImaqImage(), m_imaqImage,
|
||||
connectivity8, erosions, IMAQ_KEEP_SMALL, NULL);
|
||||
connectivity8, erosions, IMAQ_KEEP_SMALL, nullptr);
|
||||
wpi_setImaqErrorWithContext(success, "Error in RemoveLargeObjects");
|
||||
return result;
|
||||
}
|
||||
|
||||
BinaryImage *BinaryImage::ConvexHull(bool connectivity8) {
|
||||
BinaryImage *result = new BinaryImage();
|
||||
auto result = new BinaryImage();
|
||||
int success =
|
||||
imaqConvexHull(result->GetImaqImage(), m_imaqImage, connectivity8);
|
||||
wpi_setImaqErrorWithContext(success, "Error in convex hull operation");
|
||||
@@ -222,12 +221,12 @@ BinaryImage *BinaryImage::ConvexHull(bool connectivity8) {
|
||||
|
||||
BinaryImage *BinaryImage::ParticleFilter(ParticleFilterCriteria2 *criteria,
|
||||
int criteriaCount) {
|
||||
BinaryImage *result = new BinaryImage();
|
||||
auto result = new BinaryImage();
|
||||
int numParticles;
|
||||
ParticleFilterOptions2 filterOptions = {0, 0, 0, 1};
|
||||
int success =
|
||||
imaqParticleFilter4(result->GetImaqImage(), m_imaqImage, criteria,
|
||||
criteriaCount, &filterOptions, NULL, &numParticles);
|
||||
criteriaCount, &filterOptions, nullptr, &numParticles);
|
||||
wpi_setImaqErrorWithContext(success, "Error in particle filter operation");
|
||||
return result;
|
||||
}
|
||||
|
||||
@@ -22,7 +22,7 @@ ColorImage::~ColorImage() {}
|
||||
BinaryImage *ColorImage::ComputeThreshold(ColorMode colorMode, int low1,
|
||||
int high1, int low2, int high2,
|
||||
int low3, int high3) {
|
||||
BinaryImage *result = new BinaryImage();
|
||||
auto result = new BinaryImage();
|
||||
Range range1 = {low1, high1}, range2 = {low2, high2}, range3 = {low3, high3};
|
||||
|
||||
int success = imaqColorThreshold(result->GetImaqImage(), m_imaqImage, 1,
|
||||
@@ -154,12 +154,12 @@ BinaryImage *ColorImage::ThresholdHSI(Threshold &t) {
|
||||
* @returns A pointer to a MonoImage that represents the extracted plane.
|
||||
*/
|
||||
MonoImage *ColorImage::ExtractColorPlane(ColorMode mode, int planeNumber) {
|
||||
MonoImage *result = new MonoImage();
|
||||
if (m_imaqImage == NULL) wpi_setWPIError(NullParameter);
|
||||
auto result = new MonoImage();
|
||||
if (m_imaqImage == nullptr) wpi_setWPIError(NullParameter);
|
||||
int success = imaqExtractColorPlanes(
|
||||
m_imaqImage, mode, (planeNumber == 1) ? result->GetImaqImage() : NULL,
|
||||
(planeNumber == 2) ? result->GetImaqImage() : NULL,
|
||||
(planeNumber == 3) ? result->GetImaqImage() : NULL);
|
||||
m_imaqImage, mode, (planeNumber == 1) ? result->GetImaqImage() : nullptr,
|
||||
(planeNumber == 2) ? result->GetImaqImage() : nullptr,
|
||||
(planeNumber == 3) ? result->GetImaqImage() : nullptr);
|
||||
wpi_setImaqErrorWithContext(success, "Imaq ExtractColorPlanes failed");
|
||||
return result;
|
||||
}
|
||||
@@ -274,9 +274,9 @@ void ColorImage::ReplacePlane(ColorMode mode, MonoImage *plane,
|
||||
int planeNumber) {
|
||||
int success =
|
||||
imaqReplaceColorPlanes(m_imaqImage, (const Image *)m_imaqImage, mode,
|
||||
(planeNumber == 1) ? plane->GetImaqImage() : NULL,
|
||||
(planeNumber == 2) ? plane->GetImaqImage() : NULL,
|
||||
(planeNumber == 3) ? plane->GetImaqImage() : NULL);
|
||||
(planeNumber == 1) ? plane->GetImaqImage() : nullptr,
|
||||
(planeNumber == 2) ? plane->GetImaqImage() : nullptr,
|
||||
(planeNumber == 3) ? plane->GetImaqImage() : nullptr);
|
||||
wpi_setImaqErrorWithContext(success, "Imaq ReplaceColorPlanes failed");
|
||||
}
|
||||
|
||||
|
||||
@@ -319,7 +319,7 @@ const char* GetVisionErrorText(int errorCode) {
|
||||
break;
|
||||
}
|
||||
case -1074395269: {
|
||||
errorText = "ERR_NULL_POINTER";
|
||||
errorText = "ERR_nullptr_POINTER";
|
||||
break;
|
||||
}
|
||||
case -1074395270: {
|
||||
@@ -563,7 +563,7 @@ const char* GetVisionErrorText(int errorCode) {
|
||||
break;
|
||||
}
|
||||
case -1074395343: {
|
||||
errorText = "ERR_FILE_FILENAME_NULL";
|
||||
errorText = "ERR_FILE_FILENAME_nullptr";
|
||||
break;
|
||||
}
|
||||
case -1074395345: {
|
||||
@@ -2083,7 +2083,7 @@ const char* GetVisionErrorText(int errorCode) {
|
||||
break;
|
||||
}
|
||||
case -1074396098: {
|
||||
errorText = "ERR_RESERVED_MUST_BE_NULL";
|
||||
errorText = "ERR_RESERVED_MUST_BE_nullptr";
|
||||
break;
|
||||
}
|
||||
case -1074396099: {
|
||||
|
||||
@@ -16,7 +16,7 @@ HSLImage::HSLImage() : ColorImage(IMAQ_IMAGE_HSL) {}
|
||||
* @param fileName The path of the file to load.
|
||||
*/
|
||||
HSLImage::HSLImage(const char *fileName) : ColorImage(IMAQ_IMAGE_HSL) {
|
||||
int success = imaqReadFile(m_imaqImage, fileName, NULL, NULL);
|
||||
int success = imaqReadFile(m_imaqImage, fileName, nullptr, nullptr);
|
||||
wpi_setImaqErrorWithContext(success, "Imaq ReadFile error");
|
||||
}
|
||||
|
||||
|
||||
@@ -31,7 +31,7 @@ ImageBase::~ImageBase() {
|
||||
* @param fileName The name of the file to write
|
||||
*/
|
||||
void ImageBase::Write(const char *fileName) {
|
||||
int success = imaqWriteFile(m_imaqImage, fileName, NULL);
|
||||
int success = imaqWriteFile(m_imaqImage, fileName, nullptr);
|
||||
wpi_setImaqErrorWithContext(success, "Imaq Image writeFile error");
|
||||
}
|
||||
|
||||
@@ -41,7 +41,7 @@ void ImageBase::Write(const char *fileName) {
|
||||
*/
|
||||
int ImageBase::GetHeight() {
|
||||
int height;
|
||||
imaqGetImageSize(m_imaqImage, NULL, &height);
|
||||
imaqGetImageSize(m_imaqImage, nullptr, &height);
|
||||
return height;
|
||||
}
|
||||
|
||||
@@ -51,7 +51,7 @@ int ImageBase::GetHeight() {
|
||||
*/
|
||||
int ImageBase::GetWidth() {
|
||||
int width;
|
||||
imaqGetImageSize(m_imaqImage, &width, NULL);
|
||||
imaqGetImageSize(m_imaqImage, &width, nullptr);
|
||||
return width;
|
||||
}
|
||||
|
||||
|
||||
@@ -29,8 +29,8 @@ vector<EllipseMatch> *MonoImage::DetectEllipses(
|
||||
EllipseMatch *e =
|
||||
imaqDetectEllipses(m_imaqImage, ellipseDescriptor, curveOptions,
|
||||
shapeDetectionOptions, roi, &numberOfMatches);
|
||||
vector<EllipseMatch> *ellipses = new vector<EllipseMatch>;
|
||||
if (e == NULL) {
|
||||
auto ellipses = new vector<EllipseMatch>;
|
||||
if (e == nullptr) {
|
||||
return ellipses;
|
||||
}
|
||||
for (int i = 0; i < numberOfMatches; i++) {
|
||||
@@ -43,6 +43,6 @@ vector<EllipseMatch> *MonoImage::DetectEllipses(
|
||||
vector<EllipseMatch> *MonoImage::DetectEllipses(
|
||||
EllipseDescriptor *ellipseDescriptor) {
|
||||
vector<EllipseMatch> *ellipses =
|
||||
DetectEllipses(ellipseDescriptor, NULL, NULL, NULL);
|
||||
DetectEllipses(ellipseDescriptor, nullptr, nullptr, nullptr);
|
||||
return ellipses;
|
||||
}
|
||||
|
||||
@@ -16,7 +16,7 @@ RGBImage::RGBImage() : ColorImage(IMAQ_IMAGE_RGB) {}
|
||||
* @param fileName The path of the file to load.
|
||||
*/
|
||||
RGBImage::RGBImage(const char *fileName) : ColorImage(IMAQ_IMAGE_RGB) {
|
||||
int success = imaqReadFile(m_imaqImage, fileName, NULL, NULL);
|
||||
int success = imaqReadFile(m_imaqImage, fileName, nullptr, nullptr);
|
||||
wpi_setImaqErrorWithContext(success, "Imaq ReadFile error");
|
||||
}
|
||||
|
||||
|
||||
@@ -31,7 +31,7 @@ int VisionAPI_debugFlag = 1;
|
||||
*
|
||||
* @param type Type of image to create
|
||||
* @return Image* On success, this function returns the created image. On
|
||||
* failure, it returns NULL.
|
||||
* failure, it returns nullptr.
|
||||
*/
|
||||
Image* frcCreateImage(ImageType type) {
|
||||
return imaqCreateImage(type, DEFAULT_BORDER_SIZE);
|
||||
@@ -50,7 +50,7 @@ int frcDispose(void* object) { return imaqDispose(object); }
|
||||
*
|
||||
* @param functionName The name of the function
|
||||
* @param ... A list of pointers to structures that need to be disposed of.
|
||||
* The last pointer in the list should always be set to NULL.
|
||||
* The last pointer in the list should always be set to nullptr.
|
||||
*
|
||||
* @return On success: 1. On failure: 0. To get extended error information, call
|
||||
* GetLastError().
|
||||
@@ -63,7 +63,7 @@ int frcDispose(const char* functionName, ...) /* Variable argument list */
|
||||
|
||||
va_start(disposalPtrList, functionName); /* start of variable list */
|
||||
disposalPtr = va_arg(disposalPtrList, void*);
|
||||
while (disposalPtr != NULL) {
|
||||
while (disposalPtr != nullptr) {
|
||||
success = imaqDispose(disposalPtr);
|
||||
if (!success) {
|
||||
returnValue = 0;
|
||||
@@ -78,7 +78,7 @@ int frcDispose(const char* functionName, ...) /* Variable argument list */
|
||||
* Supports IMAQ_IMAGE_U8, IMAQ_IMAGE_I16, IMAQ_IMAGE_SGL, IMAQ_IMAGE_RGB,
|
||||
* IMAQ_IMAGE_HSL.
|
||||
*
|
||||
* @param dest Copy of image. On failure, dest is NULL. Must have already been
|
||||
* @param dest Copy of image. On failure, dest is nullptr. Must have already been
|
||||
* created using frcCreateImage().
|
||||
* When you are finished with the created image, dispose of it by calling
|
||||
* frcDispose().
|
||||
@@ -135,13 +135,13 @@ int frcScale(Image* dest, const Image* source, int xScale, int yScale,
|
||||
* IMAQ_IMAGE_RGB, IMAQ_IMAGE_HSL, IMAQ_IMAGE_RGB_U64.
|
||||
*
|
||||
* @param image Image read in
|
||||
* @param fileName File to read. Cannot be NULL
|
||||
* @param fileName File to read. Cannot be nullptr
|
||||
*
|
||||
* @return On success: 1. On failure: 0. To get extended error information, call
|
||||
* GetLastError().
|
||||
*/
|
||||
int frcReadImage(Image* image, const char* fileName) {
|
||||
return imaqReadFile(image, fileName, NULL, NULL);
|
||||
return imaqReadFile(image, fileName, nullptr, nullptr);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -168,14 +168,14 @@ int frcReadImage(Image* image, const char* fileName) {
|
||||
* PNG, TIFF, JPEG2000 8-bit, 16-bit, RGB, RGBU64
|
||||
*
|
||||
* @param image Image to write
|
||||
* @param fileName File to read. Cannot be NULL. The extension determines the
|
||||
* @param fileName File to read. Cannot be nullptr. The extension determines the
|
||||
* file format that is written.
|
||||
*
|
||||
* @return On success: 1. On failure: 0. To get extended error information, call
|
||||
* GetLastError().
|
||||
*/
|
||||
int frcWriteImage(const Image* image, const char* fileName) {
|
||||
RGBValue* colorTable = NULL;
|
||||
RGBValue* colorTable = nullptr;
|
||||
return imaqWriteFile(image, fileName, colorTable);
|
||||
}
|
||||
|
||||
@@ -214,7 +214,7 @@ int frcWriteImage(const Image* image, const char* fileName) {
|
||||
* @return On success, this function returns a report describing the pixel value
|
||||
* classification.
|
||||
* When you are finished with the report, dispose of it by calling frcDispose().
|
||||
* On failure, this function returns NULL. To get extended error information,
|
||||
* On failure, this function returns nullptr. To get extended error information,
|
||||
* call GetLastError().
|
||||
*
|
||||
*/
|
||||
@@ -233,24 +233,24 @@ HistogramReport* frcHistogram(const Image* image, int numClasses, float min,
|
||||
success = imaqAddRectContour(pRoi, rect);
|
||||
if (!success) {
|
||||
GetLastVisionError();
|
||||
return NULL;
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
/* make a mask from the ROI */
|
||||
Image* pMask = frcCreateImage(IMAQ_IMAGE_U8);
|
||||
success = imaqROIToMask(pMask, pRoi, fillValue, NULL, NULL);
|
||||
success = imaqROIToMask(pMask, pRoi, fillValue, nullptr, nullptr);
|
||||
if (!success) {
|
||||
GetLastVisionError();
|
||||
frcDispose(__FUNCTION__, pRoi, NULL);
|
||||
return NULL;
|
||||
frcDispose(__FUNCTION__, pRoi, nullptr);
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
/* get a histogram report */
|
||||
HistogramReport* pHr = NULL;
|
||||
HistogramReport* pHr = nullptr;
|
||||
pHr = imaqHistogram(image, numClasses, min, max, pMask);
|
||||
|
||||
/* clean up */
|
||||
frcDispose(__FUNCTION__, pRoi, pMask, NULL);
|
||||
frcDispose(__FUNCTION__, pRoi, pMask, nullptr);
|
||||
|
||||
return pHr;
|
||||
}
|
||||
@@ -268,7 +268,7 @@ HistogramReport* frcHistogram(const Image* image, int numClasses, float min,
|
||||
* @param mask An optional mask image. This image must be an IMAQ_IMAGE_U8 image.
|
||||
* The function calculates the histogram using only those pixels in the image
|
||||
* whose
|
||||
* corresponding pixels in the mask are non-zero. Set this parameter to NULL to
|
||||
* corresponding pixels in the mask are non-zero. Set this parameter to nullptr to
|
||||
* calculate
|
||||
* the histogram of the entire image, or use the simplified call.
|
||||
*
|
||||
@@ -276,17 +276,17 @@ HistogramReport* frcHistogram(const Image* image, int numClasses, float min,
|
||||
* classification
|
||||
* of each plane in a HistogramReport.
|
||||
* When you are finished with the report, dispose of it by calling frcDispose().
|
||||
* On failure, this function returns NULL.
|
||||
* On failure, this function returns nullptr.
|
||||
* To get extended error information, call imaqGetLastError().
|
||||
*/
|
||||
ColorHistogramReport* frcColorHistogram(const Image* image, int numClasses,
|
||||
ColorMode mode) {
|
||||
return frcColorHistogram(image, numClasses, mode, NULL);
|
||||
return frcColorHistogram(image, numClasses, mode, nullptr);
|
||||
}
|
||||
|
||||
ColorHistogramReport* frcColorHistogram(const Image* image, int numClasses,
|
||||
ColorMode mode, Image* mask) {
|
||||
return imaqColorHistogram2((Image*)image, numClasses, mode, NULL, mask);
|
||||
return imaqColorHistogram2((Image*)image, numClasses, mode, nullptr, mask);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -299,7 +299,7 @@ ColorHistogramReport* frcColorHistogram(const Image* image, int numClasses,
|
||||
* @param image The image whose pixel value the function queries
|
||||
* @param pixel The coordinates of the pixel that the function queries
|
||||
* @param value On return, the value of the specified image pixel. This parameter
|
||||
* cannot be NULL.
|
||||
* cannot be nullptr.
|
||||
* This data structure contains either grayscale, RGB, HSL, Complex or
|
||||
* RGBU64Value depending on the type of image.
|
||||
* @return On success: 1. On failure: 0. To get extended error information, call
|
||||
@@ -319,7 +319,7 @@ int frcGetPixelValue(const Image* image, Point pixel, PixelValue* value) {
|
||||
* as the Source image. It will contain only the filtered particles.
|
||||
* @param source The image containing the particles to filter.
|
||||
* @param criteria An array of criteria to apply to the particles in the source
|
||||
* image. This array cannot be NULL.
|
||||
* image. This array cannot be nullptr.
|
||||
* See the NIVisionCVI.chm help file for definitions of criteria.
|
||||
* @param criteriaCount The number of elements in the criteria array.
|
||||
* @param options Binary filter options, including rejectMatches, rejectBorder,
|
||||
@@ -371,7 +371,7 @@ int frcParticleFilter(Image* dest, Image* source,
|
||||
* GetLastError().
|
||||
*/
|
||||
int frcMorphology(Image* dest, Image* source, MorphologyMethod method) {
|
||||
return imaqMorphology(dest, source, method, NULL);
|
||||
return imaqMorphology(dest, source, method, nullptr);
|
||||
}
|
||||
|
||||
int frcMorphology(Image* dest, Image* source, MorphologyMethod method,
|
||||
@@ -539,7 +539,7 @@ int frcParticleAnalysis(Image* image, int particleNumber,
|
||||
* will be copied. Only those pixels in the Image Src (Small) image that
|
||||
* correspond to an equivalent non-zero pixel in the mask image are copied. All
|
||||
* other pixels keep their original values. The entire image is processed if Image
|
||||
* Mask is NULL or this parameter is omitted.
|
||||
* Mask is nullptr or this parameter is omitted.
|
||||
* @return On success: 1. On failure: 0. To get extended error information, call
|
||||
* GetLastError().
|
||||
*
|
||||
@@ -548,7 +548,7 @@ int frcParticleAnalysis(Image* image, int particleNumber,
|
||||
* minMatchScore = DEFAULT_MINMAX_SCORE (800)
|
||||
*/
|
||||
int frcEqualize(Image* dest, const Image* source, float min, float max) {
|
||||
return frcEqualize(dest, source, min, max, NULL);
|
||||
return frcEqualize(dest, source, min, max, nullptr);
|
||||
}
|
||||
|
||||
int frcEqualize(Image* dest, const Image* source, float min, float max,
|
||||
@@ -695,11 +695,11 @@ int frcSimpleThreshold(Image* dest, const Image* source, float rangeMin,
|
||||
* @param mode The color space to perform the threshold in. valid values are:
|
||||
* IMAQ_RGB, IMAQ_HSL.
|
||||
* @param plane1Range The selection range for the first plane of the image. Set
|
||||
* this parameter to NULL to use a selection range from 0 to 255.
|
||||
* this parameter to nullptr to use a selection range from 0 to 255.
|
||||
* @param plane2Range The selection range for the second plane of the image. Set
|
||||
* this parameter to NULL to use a selection range from 0 to 255.
|
||||
* this parameter to nullptr to use a selection range from 0 to 255.
|
||||
* @param plane3Range The selection range for the third plane of the image. Set
|
||||
* this parameter to NULL to use a selection range from 0 to 255.
|
||||
* this parameter to nullptr to use a selection range from 0 to 255.
|
||||
*
|
||||
* @return On success: 1. On failure: 0. To get extended error information, call
|
||||
* GetLastError().
|
||||
@@ -726,11 +726,11 @@ int frcColorThreshold(Image* dest, const Image* source, ColorMode mode,
|
||||
* @param mode The color space to perform the threshold in. valid values are:
|
||||
* IMAQ_RGB, IMAQ_HSL.
|
||||
* @param plane1Range The selection range for the first plane of the image. Set
|
||||
* this parameter to NULL to use a selection range from 0 to 255.
|
||||
* this parameter to nullptr to use a selection range from 0 to 255.
|
||||
* @param plane2Range The selection range for the second plane of the image. Set
|
||||
* this parameter to NULL to use a selection range from 0 to 255.
|
||||
* this parameter to nullptr to use a selection range from 0 to 255.
|
||||
* @param plane3Range The selection range for the third plane of the image. Set
|
||||
* this parameter to NULL to use a selection range from 0 to 255.
|
||||
* this parameter to nullptr to use a selection range from 0 to 255.
|
||||
*
|
||||
* @return On success: 1. On failure: 0. To get extended error information, call
|
||||
* GetLastError().
|
||||
@@ -784,11 +784,11 @@ int frcHueThreshold(Image* dest, const Image* source, const Range* hueRange,
|
||||
* @param image The source image that the function extracts the planes from.
|
||||
* @param mode The color space that the function extracts the planes from. Valid
|
||||
* values are IMAQ_RGB, IMAQ_HSL, IMAQ_HSV, IMAQ_HSI.
|
||||
* @param plane1 On return, the first extracted plane. Set this parameter to NULL
|
||||
* @param plane1 On return, the first extracted plane. Set this parameter to nullptr
|
||||
* if you do not need this information. RGB-Red, HSL/HSV/HSI-Hue.
|
||||
* @param plane2 On return, the second extracted plane. Set this parameter to
|
||||
* NULL if you do not need this information. RGB-Green, HSL/HSV/HSI-Saturation.
|
||||
* @param plane3 On return, the third extracted plane. Set this parameter to NULL
|
||||
* nullptr if you do not need this information. RGB-Green, HSL/HSV/HSI-Saturation.
|
||||
* @param plane3 On return, the third extracted plane. Set this parameter to nullptr
|
||||
* if you do not need this information. RGB-Blue, HSL-Luminance, HSV-Value,
|
||||
* HSI-Intensity.
|
||||
*
|
||||
@@ -816,5 +816,5 @@ int frcExtractHuePlane(const Image* image, Image* huePlane) {
|
||||
}
|
||||
|
||||
int frcExtractHuePlane(const Image* image, Image* huePlane, int minSaturation) {
|
||||
return frcExtractColorPlanes(image, IMAQ_HSL, huePlane, NULL, NULL);
|
||||
return frcExtractColorPlanes(image, IMAQ_HSL, huePlane, nullptr, nullptr);
|
||||
}
|
||||
|
||||
@@ -297,9 +297,7 @@ TEST_F(CANJaguarTest, VoltageModeWorks) {
|
||||
|
||||
float setpoints[] = {M_PI, 8.0f, -10.0f};
|
||||
|
||||
for (unsigned int i = 0; i < sizeof(setpoints) / sizeof(setpoints[0]); i++) {
|
||||
float setpoint = setpoints[i];
|
||||
|
||||
for (auto setpoint : setpoints) {
|
||||
SetJaguar(kMotorTime, setpoint);
|
||||
EXPECT_NEAR(setpoint, m_jaguar->GetOutputVoltage(), kVoltageTolerance);
|
||||
}
|
||||
@@ -354,9 +352,9 @@ TEST_F(CANJaguarTest, DISABLED_CurrentModeWorks) {
|
||||
|
||||
float setpoints[] = {1.6f, 2.0f, -1.6f};
|
||||
|
||||
for (unsigned int i = 0; i < sizeof(setpoints) / sizeof(setpoints[0]); i++) {
|
||||
float setpoint = setpoints[i];
|
||||
float expectedCurrent = std::abs(setpoints[i]);
|
||||
for (auto& setpoints_i : setpoints) {
|
||||
float setpoint = setpoints_i;
|
||||
float expectedCurrent = std::abs(setpoints_i);
|
||||
|
||||
/* It should get to each setpoint within 10 seconds */
|
||||
for (int j = 0; j < 10; j++) {
|
||||
|
||||
@@ -104,7 +104,7 @@ static void *InterruptTriggerer(void *data) {
|
||||
output->Set(false);
|
||||
Wait(kSynchronousInterruptTime);
|
||||
output->Set(true);
|
||||
return NULL;
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
TEST_F(DIOLoopTest, SynchronousInterruptWorks) {
|
||||
@@ -113,7 +113,7 @@ TEST_F(DIOLoopTest, SynchronousInterruptWorks) {
|
||||
|
||||
// If we have another thread trigger the interrupt in a few seconds
|
||||
pthread_t interruptTriggererLoop;
|
||||
pthread_create(&interruptTriggererLoop, NULL, InterruptTriggerer, m_output);
|
||||
pthread_create(&interruptTriggererLoop, nullptr, InterruptTriggerer, m_output);
|
||||
|
||||
// Then this thread should pause and resume after that number of seconds
|
||||
Timer timer;
|
||||
|
||||
@@ -32,7 +32,7 @@ class MotorInvertingTest
|
||||
protected:
|
||||
SpeedController *m_speedController;
|
||||
Encoder *m_encoder;
|
||||
virtual void SetUp() {
|
||||
virtual void SetUp() override {
|
||||
switch (GetParam()) {
|
||||
case TEST_VICTOR:
|
||||
m_speedController = new Victor(TestBench::kVictorChannel);
|
||||
@@ -53,7 +53,7 @@ class MotorInvertingTest
|
||||
break;
|
||||
}
|
||||
}
|
||||
virtual void TearDown() {
|
||||
virtual void TearDown() override {
|
||||
delete m_speedController;
|
||||
delete m_encoder;
|
||||
}
|
||||
|
||||
@@ -19,8 +19,8 @@ void notifierHandler(void *) { notifierCounter++; }
|
||||
TEST(NotifierTest, DISABLED_TestTimerNotifications) {
|
||||
std::cout << "NotifierTest..." << std::endl;
|
||||
notifierCounter = 0;
|
||||
std::cout << "notifier(notifierHandler, NULL)..." << std::endl;
|
||||
Notifier notifier(notifierHandler, NULL);
|
||||
std::cout << "notifier(notifierHandler, nullptr)..." << std::endl;
|
||||
Notifier notifier(notifierHandler, nullptr);
|
||||
std::cout << "Start Periodic..." << std::endl;
|
||||
notifier.StartPeriodic(1.0);
|
||||
|
||||
|
||||
@@ -63,14 +63,14 @@ TEST(PreferencesTest, WritePreferencesToFile) {
|
||||
"testFileGetLong=\"1000000000000000000\""};
|
||||
|
||||
std::ifstream preferencesFile(kFileName);
|
||||
for (int i = 0; i < 7; i++) {
|
||||
for (auto& kExpectedFileContent : kExpectedFileContents) {
|
||||
ASSERT_FALSE(preferencesFile.eof())
|
||||
<< "Preferences file prematurely reached EOF";
|
||||
|
||||
std::string line;
|
||||
std::getline(preferencesFile, line);
|
||||
|
||||
ASSERT_EQ(kExpectedFileContents[i], line)
|
||||
ASSERT_EQ(kExpectedFileContent, line)
|
||||
<< "A line in wpilib-preferences.ini was not correct";
|
||||
}
|
||||
}
|
||||
|
||||
@@ -58,7 +58,7 @@ class TiltPanCameraTest : public testing::Test {
|
||||
}
|
||||
};
|
||||
|
||||
Gyro *TiltPanCameraTest::m_gyro = 0;
|
||||
Gyro *TiltPanCameraTest::m_gyro = nullptr;
|
||||
|
||||
/**
|
||||
* Test if the gyro angle defaults to 0 immediately after being reset.
|
||||
|
||||
@@ -44,10 +44,10 @@ class ASubsystem : public Subsystem {
|
||||
Command *m_command;
|
||||
|
||||
public:
|
||||
ASubsystem(const char *name) : Subsystem(name) { m_command = NULL; }
|
||||
ASubsystem(const char *name) : Subsystem(name) { m_command = nullptr; }
|
||||
|
||||
virtual void InitDefaultCommand() override {
|
||||
if (m_command != NULL) {
|
||||
if (m_command != nullptr) {
|
||||
SetDefaultCommand(m_command);
|
||||
}
|
||||
}
|
||||
@@ -214,7 +214,7 @@ TEST_F(CommandTest, ThreeCommandOnSubSystem) {
|
||||
|
||||
// CommandSequentialGroupTest ported from CommandSequentialGroupTest.java
|
||||
TEST_F(CommandTest, OneCommandSupersedingAnotherBecauseOfDependencies) {
|
||||
ASubsystem *subsystem = new ASubsystem("Command Superseding Test Subsystem");
|
||||
auto subsystem = new ASubsystem("Command Superseding Test Subsystem");
|
||||
MockCommand command1;
|
||||
command1.Requires(subsystem);
|
||||
MockCommand command2;
|
||||
|
||||
@@ -10,7 +10,7 @@ using namespace gazebo;
|
||||
class MainNode {
|
||||
public:
|
||||
static MainNode* GetInstance() {
|
||||
if (instance == NULL) {
|
||||
if (instance == nullptr) {
|
||||
instance = new MainNode();
|
||||
}
|
||||
return instance;
|
||||
|
||||
@@ -13,7 +13,7 @@
|
||||
*/
|
||||
void AnalogInput::InitAnalogInput(uint32_t channel)
|
||||
{
|
||||
m_table = NULL;
|
||||
m_table = nullptr;
|
||||
|
||||
m_channel = channel;
|
||||
char buffer[50];
|
||||
@@ -82,7 +82,7 @@ double AnalogInput::PIDGet() const
|
||||
}
|
||||
|
||||
void AnalogInput::UpdateTable() {
|
||||
if (m_table != NULL) {
|
||||
if (m_table != nullptr) {
|
||||
m_table->PutNumber("Value", GetAverageVoltage());
|
||||
}
|
||||
}
|
||||
|
||||
@@ -67,7 +67,7 @@ void AnalogPotentiometer::InitTable(ITable *subtable) {
|
||||
}
|
||||
|
||||
void AnalogPotentiometer::UpdateTable() {
|
||||
if (m_table != NULL) {
|
||||
if (m_table != nullptr) {
|
||||
m_table->PutNumber("Value", Get());
|
||||
}
|
||||
}
|
||||
|
||||
@@ -14,7 +14,7 @@
|
||||
*/
|
||||
void DigitalInput::InitDigitalInput(uint32_t channel)
|
||||
{
|
||||
m_table = NULL;
|
||||
m_table = nullptr;
|
||||
char buf[64];
|
||||
m_channel = channel;
|
||||
int n = sprintf(buf, "dio/%d", channel);
|
||||
@@ -57,7 +57,7 @@ uint32_t DigitalInput::GetChannel() const
|
||||
}
|
||||
|
||||
void DigitalInput::UpdateTable() {
|
||||
if (m_table != NULL) {
|
||||
if (m_table != nullptr) {
|
||||
m_table->PutBoolean("Value", Get());
|
||||
}
|
||||
}
|
||||
|
||||
@@ -102,21 +102,21 @@ void DoubleSolenoid::ValueChanged(ITable* source, const std::string& key, EntryV
|
||||
}
|
||||
|
||||
void DoubleSolenoid::UpdateTable() {
|
||||
if (m_table != NULL) {
|
||||
if (m_table != nullptr) {
|
||||
m_table->PutString("Value", (Get() == kForward ? "Forward" : (Get() == kReverse ? "Reverse" : "Off")));
|
||||
}
|
||||
}
|
||||
|
||||
void DoubleSolenoid::StartLiveWindowMode() {
|
||||
Set(kOff);
|
||||
if (m_table != NULL) {
|
||||
if (m_table != nullptr) {
|
||||
m_table->AddTableListener("Value", this, true);
|
||||
}
|
||||
}
|
||||
|
||||
void DoubleSolenoid::StopLiveWindowMode() {
|
||||
Set(kOff);
|
||||
if (m_table != NULL) {
|
||||
if (m_table != nullptr) {
|
||||
m_table->RemoveTableListener(this);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -26,7 +26,7 @@ const uint32_t DriverStation::kBatteryChannel;
|
||||
const uint32_t DriverStation::kJoystickPorts;
|
||||
const uint32_t DriverStation::kJoystickAxes;
|
||||
constexpr float DriverStation::kUpdatePeriod;
|
||||
DriverStation* DriverStation::m_instance = NULL;
|
||||
DriverStation* DriverStation::m_instance = nullptr;
|
||||
uint8_t DriverStation::m_updateNumber = 0;
|
||||
|
||||
/**
|
||||
@@ -77,7 +77,7 @@ DriverStation::DriverStation()
|
||||
|
||||
DriverStation::~DriverStation()
|
||||
{
|
||||
m_instance = NULL;
|
||||
m_instance = nullptr;
|
||||
deleteMultiWait(m_waitForDataSem);
|
||||
deleteMutex(m_waitForDataMutex);
|
||||
// TODO: Release m_stateSemaphore and m_joystickSemaphore?
|
||||
@@ -88,7 +88,7 @@ DriverStation::~DriverStation()
|
||||
*/
|
||||
DriverStation* DriverStation::GetInstance()
|
||||
{
|
||||
if (m_instance == NULL)
|
||||
if (m_instance == nullptr)
|
||||
{
|
||||
m_instance = new DriverStation();
|
||||
}
|
||||
@@ -126,7 +126,7 @@ float DriverStation::GetStickAxis(uint32_t stick, uint32_t axis)
|
||||
return 0.0;
|
||||
}
|
||||
CRITICAL_REGION(m_joystickSemaphore)
|
||||
if (joysticks[stick] == NULL || axis >= joysticks[stick]->axes().size())
|
||||
if (joysticks[stick] == nullptr || axis >= joysticks[stick]->axes().size())
|
||||
{
|
||||
return 0.0;
|
||||
}
|
||||
@@ -150,7 +150,7 @@ bool DriverStation::GetStickButton(uint32_t stick, uint32_t button)
|
||||
return false;
|
||||
}
|
||||
CRITICAL_REGION(m_joystickSemaphore)
|
||||
if (joysticks[stick] == NULL || button >= joysticks[stick]->buttons().size())
|
||||
if (joysticks[stick] == nullptr || button >= joysticks[stick]->buttons().size())
|
||||
{
|
||||
return false;
|
||||
}
|
||||
@@ -243,7 +243,7 @@ bool DriverStation::GetDigitalOut(uint32_t channel)
|
||||
bool DriverStation::IsEnabled() const
|
||||
{
|
||||
CRITICAL_REGION(m_stateSemaphore)
|
||||
return state != NULL ? state->enabled() : false;
|
||||
return state != nullptr ? state->enabled() : false;
|
||||
END_REGION
|
||||
}
|
||||
|
||||
@@ -255,7 +255,7 @@ bool DriverStation::IsDisabled() const
|
||||
bool DriverStation::IsAutonomous() const
|
||||
{
|
||||
CRITICAL_REGION(m_stateSemaphore)
|
||||
return state != NULL ?
|
||||
return state != nullptr ?
|
||||
state->state() == msgs::DriverStation_State_AUTO : false;
|
||||
END_REGION;
|
||||
}
|
||||
@@ -268,7 +268,7 @@ bool DriverStation::IsOperatorControl() const
|
||||
bool DriverStation::IsTest() const
|
||||
{
|
||||
CRITICAL_REGION(m_stateSemaphore)
|
||||
return state != NULL ?
|
||||
return state != nullptr ?
|
||||
state->state() == msgs::DriverStation_State_TEST : false;
|
||||
END_REGION;
|
||||
}
|
||||
|
||||
@@ -24,7 +24,7 @@
|
||||
*/
|
||||
void Encoder::InitEncoder(int channelA, int channelB, bool reverseDirection, EncodingType encodingType)
|
||||
{
|
||||
m_table = NULL;
|
||||
m_table = nullptr;
|
||||
this->channelA = channelA;
|
||||
this->channelB = channelB;
|
||||
m_encodingType = encodingType;
|
||||
@@ -92,14 +92,14 @@ Encoder::Encoder(uint32_t aChannel, uint32_t bChannel, bool reverseDirection, En
|
||||
* or be double (2x) the spec'd count.
|
||||
*/
|
||||
/* TODO: [Not Supported] Encoder::Encoder(DigitalSource *aSource, DigitalSource *bSource, bool reverseDirection, EncodingType encodingType) :
|
||||
m_encoder(NULL),
|
||||
m_counter(NULL)
|
||||
m_encoder(nullptr),
|
||||
m_counter(nullptr)
|
||||
{
|
||||
m_aSource = aSource;
|
||||
m_bSource = bSource;
|
||||
m_allocatedASource = false;
|
||||
m_allocatedBSource = false;
|
||||
if (m_aSource == NULL || m_bSource == NULL)
|
||||
if (m_aSource == nullptr || m_bSource == nullptr)
|
||||
wpi_setWPIError(NullParameter);
|
||||
else
|
||||
InitEncoder(reverseDirection, encodingType);
|
||||
@@ -124,8 +124,8 @@ Encoder::Encoder(uint32_t aChannel, uint32_t bChannel, bool reverseDirection, En
|
||||
* or be double (2x) the spec'd count.
|
||||
*/
|
||||
/*// TODO: [Not Supported] Encoder::Encoder(DigitalSource &aSource, DigitalSource &bSource, bool reverseDirection, EncodingType encodingType) :
|
||||
m_encoder(NULL),
|
||||
m_counter(NULL)
|
||||
m_encoder(nullptr),
|
||||
m_counter(nullptr)
|
||||
{
|
||||
m_aSource = &aSource;
|
||||
m_bSource = &bSource;
|
||||
@@ -342,7 +342,7 @@ double Encoder::PIDGet() const
|
||||
}
|
||||
|
||||
void Encoder::UpdateTable() {
|
||||
if (m_table != NULL) {
|
||||
if (m_table != nullptr) {
|
||||
m_table->PutNumber("Speed", GetRate());
|
||||
m_table->PutNumber("Distance", GetDistance());
|
||||
m_table->PutNumber("Distance per Tick", m_reverseDirection ? -m_distancePerPulse : m_distancePerPulse);
|
||||
|
||||
@@ -25,7 +25,7 @@ constexpr float Gyro::kDefaultVoltsPerDegreePerSecond;
|
||||
*/
|
||||
void Gyro::InitGyro(int channel)
|
||||
{
|
||||
m_table = NULL;
|
||||
m_table = nullptr;
|
||||
SetPIDSourceParameter(kAngle);
|
||||
|
||||
char buffer[50];
|
||||
@@ -116,7 +116,7 @@ double Gyro::PIDGet() const
|
||||
}
|
||||
|
||||
void Gyro::UpdateTable() {
|
||||
if (m_table != NULL) {
|
||||
if (m_table != nullptr) {
|
||||
m_table->PutNumber("Value", GetAngle());
|
||||
}
|
||||
}
|
||||
|
||||
@@ -26,10 +26,10 @@ static bool joySticksInitialized = false;
|
||||
* @param port The port on the driver station that the joystick is plugged into.
|
||||
*/
|
||||
Joystick::Joystick(uint32_t port)
|
||||
: m_ds (NULL)
|
||||
: m_ds (nullptr)
|
||||
, m_port (port)
|
||||
, m_axes (NULL)
|
||||
, m_buttons (NULL)
|
||||
, m_axes (nullptr)
|
||||
, m_buttons (nullptr)
|
||||
{
|
||||
InitJoystick(kNumAxisTypes, kNumButtonTypes);
|
||||
|
||||
@@ -54,10 +54,10 @@ Joystick::Joystick(uint32_t port)
|
||||
* @param numButtonTypes The number of button types in the enum.
|
||||
*/
|
||||
Joystick::Joystick(uint32_t port, uint32_t numAxisTypes, uint32_t numButtonTypes)
|
||||
: m_ds (NULL)
|
||||
: m_ds (nullptr)
|
||||
, m_port (port)
|
||||
, m_axes (NULL)
|
||||
, m_buttons (NULL)
|
||||
, m_axes (nullptr)
|
||||
, m_buttons (nullptr)
|
||||
{
|
||||
InitJoystick(numAxisTypes, numButtonTypes);
|
||||
}
|
||||
@@ -67,7 +67,7 @@ void Joystick::InitJoystick(uint32_t numAxisTypes, uint32_t numButtonTypes)
|
||||
if ( !joySticksInitialized )
|
||||
{
|
||||
for (unsigned i = 0; i < DriverStation::kJoystickPorts; i++)
|
||||
joysticks[i] = NULL;
|
||||
joysticks[i] = nullptr;
|
||||
joySticksInitialized = true;
|
||||
}
|
||||
joysticks[m_port] = this;
|
||||
@@ -80,7 +80,7 @@ void Joystick::InitJoystick(uint32_t numAxisTypes, uint32_t numButtonTypes)
|
||||
Joystick * Joystick::GetStickForPort(uint32_t port)
|
||||
{
|
||||
Joystick *stick = joysticks[port];
|
||||
if (stick == NULL)
|
||||
if (stick == nullptr)
|
||||
{
|
||||
stick = new Joystick(port);
|
||||
joysticks[port] = stick;
|
||||
|
||||
@@ -13,7 +13,7 @@
|
||||
|
||||
#include <stdio.h>
|
||||
|
||||
MotorSafetyHelper *MotorSafetyHelper::m_headHelper = NULL;
|
||||
MotorSafetyHelper *MotorSafetyHelper::m_headHelper = nullptr;
|
||||
ReentrantSemaphore MotorSafetyHelper::m_listMutex;
|
||||
|
||||
/**
|
||||
@@ -47,9 +47,9 @@ MotorSafetyHelper::~MotorSafetyHelper()
|
||||
}
|
||||
else
|
||||
{
|
||||
MotorSafetyHelper *prev = NULL;
|
||||
MotorSafetyHelper *prev = nullptr;
|
||||
MotorSafetyHelper *cur = m_headHelper;
|
||||
while (cur != this && cur != NULL)
|
||||
while (cur != this && cur != nullptr)
|
||||
prev = cur, cur = cur->m_nextHelper;
|
||||
if (cur == this)
|
||||
prev->m_nextHelper = cur->m_nextHelper;
|
||||
@@ -149,7 +149,7 @@ bool MotorSafetyHelper::IsSafetyEnabled() const
|
||||
void MotorSafetyHelper::CheckMotors()
|
||||
{
|
||||
Synchronized sync(m_listMutex);
|
||||
for (MotorSafetyHelper *msh = m_headHelper; msh != NULL; msh = msh->m_nextHelper)
|
||||
for (MotorSafetyHelper *msh = m_headHelper; msh != nullptr; msh = msh->m_nextHelper)
|
||||
{
|
||||
msh->Check();
|
||||
}
|
||||
|
||||
@@ -9,9 +9,9 @@
|
||||
#include "Utility.h"
|
||||
#include "WPIErrors.h"
|
||||
|
||||
Notifier *Notifier::timerQueueHead = NULL;
|
||||
Notifier *Notifier::timerQueueHead = nullptr;
|
||||
ReentrantSemaphore Notifier::queueSemaphore;
|
||||
Task* Notifier::task = NULL;
|
||||
Task* Notifier::task = nullptr;
|
||||
int Notifier::refcount = 0;
|
||||
|
||||
/**
|
||||
@@ -21,14 +21,14 @@ int Notifier::refcount = 0;
|
||||
*/
|
||||
Notifier::Notifier(TimerEventHandler handler, void *param)
|
||||
{
|
||||
if (handler == NULL)
|
||||
wpi_setWPIErrorWithContext(NullParameter, "handler must not be NULL");
|
||||
if (handler == nullptr)
|
||||
wpi_setWPIErrorWithContext(NullParameter, "handler must not be nullptr");
|
||||
m_handler = handler;
|
||||
m_param = param;
|
||||
m_periodic = false;
|
||||
m_expirationTime = 0;
|
||||
m_period = 0;
|
||||
m_nextEvent = NULL;
|
||||
m_nextEvent = nullptr;
|
||||
m_queued = false;
|
||||
m_handlerSemaphore = initializeSemaphore(SEMAPHORE_FULL);
|
||||
{
|
||||
@@ -95,7 +95,7 @@ void Notifier::ProcessQueue(uint32_t mask, void *params)
|
||||
Synchronized sync(queueSemaphore);
|
||||
double currentTime = GetClock();
|
||||
current = timerQueueHead;
|
||||
if (current == NULL || current->m_expirationTime > currentTime)
|
||||
if (current == nullptr || current->m_expirationTime > currentTime)
|
||||
{
|
||||
break; // no more timer events to process
|
||||
}
|
||||
@@ -144,7 +144,7 @@ void Notifier::InsertInQueue(bool reschedule)
|
||||
{
|
||||
m_expirationTime = GetClock() + m_period;
|
||||
}
|
||||
if (timerQueueHead == NULL || timerQueueHead->m_expirationTime >= this->m_expirationTime)
|
||||
if (timerQueueHead == nullptr || timerQueueHead->m_expirationTime >= this->m_expirationTime)
|
||||
{
|
||||
// the queue is empty or greater than the new entry
|
||||
// the new entry becomes the first element
|
||||
@@ -161,7 +161,7 @@ void Notifier::InsertInQueue(bool reschedule)
|
||||
for (Notifier **npp = &(timerQueueHead->m_nextEvent); ; npp = &(*npp)->m_nextEvent)
|
||||
{
|
||||
Notifier *n = *npp;
|
||||
if (n == NULL || n->m_expirationTime > this->m_expirationTime)
|
||||
if (n == nullptr || n->m_expirationTime > this->m_expirationTime)
|
||||
{
|
||||
*npp = this;
|
||||
this->m_nextEvent = n;
|
||||
@@ -184,7 +184,7 @@ void Notifier::DeleteFromQueue()
|
||||
if (m_queued)
|
||||
{
|
||||
m_queued = false;
|
||||
wpi_assert(timerQueueHead != NULL);
|
||||
wpi_assert(timerQueueHead != nullptr);
|
||||
if (timerQueueHead == this)
|
||||
{
|
||||
// remove the first item in the list - update the alarm
|
||||
@@ -193,7 +193,7 @@ void Notifier::DeleteFromQueue()
|
||||
}
|
||||
else
|
||||
{
|
||||
for (Notifier *n = timerQueueHead; n != NULL; n = n->m_nextEvent)
|
||||
for (Notifier *n = timerQueueHead; n != nullptr; n = n->m_nextEvent)
|
||||
{
|
||||
if (n->m_nextEvent == this)
|
||||
{
|
||||
@@ -253,8 +253,8 @@ void Notifier::Stop()
|
||||
|
||||
void Notifier::Run() {
|
||||
while (true) {
|
||||
Notifier::ProcessQueue(0, NULL);
|
||||
if (timerQueueHead != NULL)
|
||||
Notifier::ProcessQueue(0, nullptr);
|
||||
if (timerQueueHead != nullptr)
|
||||
{
|
||||
Wait(timerQueueHead->m_expirationTime - GetClock());
|
||||
}
|
||||
|
||||
@@ -60,7 +60,7 @@ void PIDController::Initialize(float Kp, float Ki, float Kd, float Kf,
|
||||
PIDSource *source, PIDOutput *output,
|
||||
float period)
|
||||
{
|
||||
m_table = NULL;
|
||||
m_table = nullptr;
|
||||
|
||||
m_P = Kp;
|
||||
m_I = Ki;
|
||||
@@ -211,7 +211,7 @@ void PIDController::SetPID(double p, double i, double d)
|
||||
}
|
||||
END_REGION;
|
||||
|
||||
if (m_table != NULL) {
|
||||
if (m_table != nullptr) {
|
||||
m_table->PutNumber("p", m_P);
|
||||
m_table->PutNumber("i", m_I);
|
||||
m_table->PutNumber("d", m_D);
|
||||
@@ -237,7 +237,7 @@ void PIDController::SetPID(double p, double i, double d, double f)
|
||||
}
|
||||
END_REGION;
|
||||
|
||||
if (m_table != NULL) {
|
||||
if (m_table != nullptr) {
|
||||
m_table->PutNumber("p", m_P);
|
||||
m_table->PutNumber("i", m_I);
|
||||
m_table->PutNumber("d", m_D);
|
||||
@@ -386,9 +386,9 @@ void PIDController::SetSetpoint(float setpoint)
|
||||
m_setpoint = setpoint;
|
||||
}
|
||||
}
|
||||
END_REGION;
|
||||
|
||||
if (m_table != NULL) {
|
||||
END_REGION;
|
||||
|
||||
if (m_table != nullptr) {
|
||||
m_table->PutNumber("setpoint", m_setpoint);
|
||||
}
|
||||
}
|
||||
@@ -504,9 +504,9 @@ void PIDController::Enable()
|
||||
{
|
||||
m_enabled = true;
|
||||
}
|
||||
END_REGION;
|
||||
|
||||
if (m_table != NULL) {
|
||||
END_REGION;
|
||||
|
||||
if (m_table != nullptr) {
|
||||
m_table->PutBoolean("enabled", true);
|
||||
}
|
||||
}
|
||||
@@ -522,8 +522,8 @@ void PIDController::Disable()
|
||||
m_enabled = false;
|
||||
}
|
||||
END_REGION;
|
||||
|
||||
if (m_table != NULL) {
|
||||
|
||||
if (m_table != nullptr) {
|
||||
m_table->PutBoolean("enabled", false);
|
||||
}
|
||||
}
|
||||
@@ -563,10 +563,10 @@ std::string PIDController::GetSmartDashboardType() const {
|
||||
}
|
||||
|
||||
void PIDController::InitTable(ITable* table){
|
||||
if(m_table!=NULL)
|
||||
if(m_table!=nullptr)
|
||||
m_table->RemoveTableListener(this);
|
||||
m_table = table;
|
||||
if(m_table!=NULL){
|
||||
if(m_table!=nullptr){
|
||||
m_table->PutNumber(kP, GetP());
|
||||
m_table->PutNumber(kI, GetI());
|
||||
m_table->PutNumber(kD, GetD());
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user