mirror of
https://github.com/wpilibsuite/allwpilib
synced 2026-06-25 01:41:43 +00:00
Replaced instances of std::unique_lock with std::lock_guard where possible
If a lock is used with a mutex that doesn't need to be unlocked again before the lock is destroyed, std::lock_guard can be more efficient than std::unique_lock due to less overhead. This commit also removes a redundant set of curly braces in PIDController.cpp intended to constrain a lock's scope. Change-Id: Idd692ce439528ddb319a4c62c40c7351a664eb97
This commit is contained in:
committed by
Brad Miller (WPI)
parent
f64b055499
commit
c0ecde302f
@@ -121,7 +121,7 @@ void PIDController::Calculate()
|
||||
PIDSource *pidInput;
|
||||
|
||||
{
|
||||
std::unique_lock<priority_mutex> lock(m_mutex);
|
||||
std::lock_guard<priority_mutex> lock(m_mutex);
|
||||
if (m_pidInput == 0) return;
|
||||
if (m_pidOutput == 0) return;
|
||||
enabled = m_enabled;
|
||||
@@ -135,7 +135,7 @@ void PIDController::Calculate()
|
||||
PIDOutput *pidOutput;
|
||||
|
||||
{
|
||||
std::unique_lock<priority_mutex> sync(m_mutex);
|
||||
std::lock_guard<priority_mutex> sync(m_mutex);
|
||||
m_error = m_setpoint - input;
|
||||
if (m_continuous)
|
||||
{
|
||||
@@ -211,7 +211,7 @@ void PIDController::Calculate()
|
||||
void PIDController::SetPID(double p, double i, double d)
|
||||
{
|
||||
{
|
||||
std::unique_lock<priority_mutex> lock(m_mutex);
|
||||
std::lock_guard<priority_mutex> lock(m_mutex);
|
||||
m_P = p;
|
||||
m_I = i;
|
||||
m_D = d;
|
||||
@@ -235,7 +235,7 @@ void PIDController::SetPID(double p, double i, double d)
|
||||
void PIDController::SetPID(double p, double i, double d, double f)
|
||||
{
|
||||
{
|
||||
std::unique_lock<priority_mutex> lock(m_mutex);
|
||||
std::lock_guard<priority_mutex> lock(m_mutex);
|
||||
m_P = p;
|
||||
m_I = i;
|
||||
m_D = d;
|
||||
@@ -256,7 +256,7 @@ void PIDController::SetPID(double p, double i, double d, double f)
|
||||
*/
|
||||
double PIDController::GetP() const
|
||||
{
|
||||
std::unique_lock<priority_mutex> lock(m_mutex);
|
||||
std::lock_guard<priority_mutex> lock(m_mutex);
|
||||
return m_P;
|
||||
}
|
||||
|
||||
@@ -266,7 +266,7 @@ double PIDController::GetP() const
|
||||
*/
|
||||
double PIDController::GetI() const
|
||||
{
|
||||
std::unique_lock<priority_mutex> lock(m_mutex);
|
||||
std::lock_guard<priority_mutex> lock(m_mutex);
|
||||
return m_I;
|
||||
}
|
||||
|
||||
@@ -276,7 +276,7 @@ double PIDController::GetI() const
|
||||
*/
|
||||
double PIDController::GetD() const
|
||||
{
|
||||
std::unique_lock<priority_mutex> lock(m_mutex);
|
||||
std::lock_guard<priority_mutex> lock(m_mutex);
|
||||
return m_D;
|
||||
}
|
||||
|
||||
@@ -286,7 +286,7 @@ double PIDController::GetD() const
|
||||
*/
|
||||
double PIDController::GetF() const
|
||||
{
|
||||
std::unique_lock<priority_mutex> lock(m_mutex);
|
||||
std::lock_guard<priority_mutex> lock(m_mutex);
|
||||
return m_F;
|
||||
}
|
||||
|
||||
@@ -297,7 +297,7 @@ double PIDController::GetF() const
|
||||
*/
|
||||
float PIDController::Get() const
|
||||
{
|
||||
std::unique_lock<priority_mutex> lock(m_mutex);
|
||||
std::lock_guard<priority_mutex> lock(m_mutex);
|
||||
return m_result;
|
||||
}
|
||||
|
||||
@@ -310,7 +310,7 @@ float PIDController::Get() const
|
||||
*/
|
||||
void PIDController::SetContinuous(bool continuous)
|
||||
{
|
||||
std::unique_lock<priority_mutex> lock(m_mutex);
|
||||
std::lock_guard<priority_mutex> lock(m_mutex);
|
||||
m_continuous = continuous;
|
||||
}
|
||||
|
||||
@@ -323,7 +323,7 @@ void PIDController::SetContinuous(bool continuous)
|
||||
void PIDController::SetInputRange(float minimumInput, float maximumInput)
|
||||
{
|
||||
{
|
||||
std::unique_lock<priority_mutex> lock(m_mutex);
|
||||
std::lock_guard<priority_mutex> lock(m_mutex);
|
||||
m_minimumInput = minimumInput;
|
||||
m_maximumInput = maximumInput;
|
||||
}
|
||||
@@ -339,7 +339,7 @@ void PIDController::SetInputRange(float minimumInput, float maximumInput)
|
||||
*/
|
||||
void PIDController::SetOutputRange(float minimumOutput, float maximumOutput)
|
||||
{
|
||||
std::unique_lock<priority_mutex> lock(m_mutex);
|
||||
std::lock_guard<priority_mutex> lock(m_mutex);
|
||||
m_minimumOutput = minimumOutput;
|
||||
m_maximumOutput = maximumOutput;
|
||||
}
|
||||
@@ -351,7 +351,7 @@ void PIDController::SetOutputRange(float minimumOutput, float maximumOutput)
|
||||
void PIDController::SetSetpoint(float setpoint)
|
||||
{
|
||||
{
|
||||
std::unique_lock<priority_mutex> lock(m_mutex);
|
||||
std::lock_guard<priority_mutex> lock(m_mutex);
|
||||
if (m_maximumInput > m_minimumInput)
|
||||
{
|
||||
if (setpoint > m_maximumInput)
|
||||
@@ -378,7 +378,7 @@ void PIDController::SetSetpoint(float setpoint)
|
||||
*/
|
||||
double PIDController::GetSetpoint() const
|
||||
{
|
||||
std::unique_lock<priority_mutex> lock(m_mutex);
|
||||
std::lock_guard<priority_mutex> lock(m_mutex);
|
||||
return m_setpoint;
|
||||
}
|
||||
|
||||
@@ -390,7 +390,7 @@ float PIDController::GetError() const
|
||||
{
|
||||
double pidInput;
|
||||
{
|
||||
std::unique_lock<priority_mutex> lock(m_mutex);
|
||||
std::lock_guard<priority_mutex> lock(m_mutex);
|
||||
pidInput = m_pidInput->PIDGet();
|
||||
}
|
||||
return GetSetpoint() - pidInput;
|
||||
@@ -420,7 +420,7 @@ PIDSourceType PIDController::GetPIDSourceType() const {
|
||||
float PIDController::GetAvgError() const {
|
||||
float avgError = 0;
|
||||
{
|
||||
std::unique_lock<priority_mutex> sync(m_mutex);
|
||||
std::lock_guard<priority_mutex> sync(m_mutex);
|
||||
// Don't divide by zero.
|
||||
if (m_buf.size()) avgError = m_bufTotal / m_buf.size();
|
||||
}
|
||||
@@ -434,7 +434,7 @@ float PIDController::GetAvgError() const {
|
||||
*/
|
||||
void PIDController::SetTolerance(float percent)
|
||||
{
|
||||
std::unique_lock<priority_mutex> lock(m_mutex);
|
||||
std::lock_guard<priority_mutex> lock(m_mutex);
|
||||
m_toleranceType = kPercentTolerance;
|
||||
m_tolerance = percent;
|
||||
}
|
||||
@@ -446,7 +446,7 @@ void PIDController::SetTolerance(float percent)
|
||||
*/
|
||||
void PIDController::SetPercentTolerance(float percent)
|
||||
{
|
||||
std::unique_lock<priority_mutex> lock(m_mutex);
|
||||
std::lock_guard<priority_mutex> lock(m_mutex);
|
||||
m_toleranceType = kPercentTolerance;
|
||||
m_tolerance = percent;
|
||||
}
|
||||
@@ -458,7 +458,7 @@ void PIDController::SetPercentTolerance(float percent)
|
||||
*/
|
||||
void PIDController::SetAbsoluteTolerance(float absTolerance)
|
||||
{
|
||||
std::unique_lock<priority_mutex> lock(m_mutex);
|
||||
std::lock_guard<priority_mutex> lock(m_mutex);
|
||||
m_toleranceType = kAbsoluteTolerance;
|
||||
m_tolerance = absTolerance;
|
||||
}
|
||||
@@ -493,7 +493,7 @@ bool PIDController::OnTarget() const
|
||||
{
|
||||
double error = GetError();
|
||||
|
||||
std::unique_lock<priority_mutex> sync(m_mutex);
|
||||
std::lock_guard<priority_mutex> sync(m_mutex);
|
||||
switch (m_toleranceType) {
|
||||
case kPercentTolerance:
|
||||
return fabs(error) < m_tolerance / 100 * (m_maximumInput - m_minimumInput);
|
||||
@@ -513,7 +513,7 @@ bool PIDController::OnTarget() const
|
||||
void PIDController::Enable()
|
||||
{
|
||||
{
|
||||
std::unique_lock<priority_mutex> lock(m_mutex);
|
||||
std::lock_guard<priority_mutex> lock(m_mutex);
|
||||
m_enabled = true;
|
||||
}
|
||||
|
||||
@@ -528,7 +528,7 @@ void PIDController::Enable()
|
||||
void PIDController::Disable()
|
||||
{
|
||||
{
|
||||
std::unique_lock<priority_mutex> lock(m_mutex);
|
||||
std::lock_guard<priority_mutex> lock(m_mutex);
|
||||
m_pidOutput->PIDWrite(0);
|
||||
m_enabled = false;
|
||||
}
|
||||
@@ -543,7 +543,7 @@ void PIDController::Disable()
|
||||
*/
|
||||
bool PIDController::IsEnabled() const
|
||||
{
|
||||
std::unique_lock<priority_mutex> lock(m_mutex);
|
||||
std::lock_guard<priority_mutex> lock(m_mutex);
|
||||
return m_enabled;
|
||||
}
|
||||
|
||||
@@ -554,7 +554,7 @@ void PIDController::Reset()
|
||||
{
|
||||
Disable();
|
||||
|
||||
std::unique_lock<priority_mutex> lock(m_mutex);
|
||||
std::lock_guard<priority_mutex> lock(m_mutex);
|
||||
m_prevInput = 0;
|
||||
m_totalError = 0;
|
||||
m_result = 0;
|
||||
|
||||
Reference in New Issue
Block a user