Restored performance counter functionality, ROS package used own source file for function definitions but per_counter.h stays the same

This commit is contained in:
Roman Bapst
2014-09-24 10:29:28 +02:00
parent 77c823d3cd
commit 2b8a9b6325
6 changed files with 17 additions and 22 deletions
@@ -69,13 +69,13 @@ ECL_PitchController::ECL_PitchController() :
_rate_error(0.0f),
_rate_setpoint(0.0f),
_bodyrate_setpoint(0.0f)
//_nonfinite_input_perf(perf_alloc(PC_COUNT, "fw att control pitch nonfinite input"))
_nonfinite_input_perf(perf_alloc(PC_COUNT, "fw att control pitch nonfinite input"))
{
}
ECL_PitchController::~ECL_PitchController()
{
//perf_free(_nonfinite_input_perf);
perf_free(_nonfinite_input_perf);
}
float ECL_PitchController::control_attitude(float pitch_setpoint, float roll, float pitch, float airspeed)
@@ -145,7 +145,7 @@ float ECL_PitchController::control_bodyrate(float roll, float pitch,
if (!(isfinite(roll) && isfinite(pitch) && isfinite(pitch_rate) && isfinite(yaw_rate) &&
isfinite(yaw_rate_setpoint) && isfinite(airspeed_min) &&
isfinite(airspeed_max) && isfinite(scaler))) {
//perf_count(_nonfinite_input_perf);
perf_count(_nonfinite_input_perf);
return math::constrain(_last_output, -1.0f, 1.0f);
}
@@ -51,9 +51,8 @@
#include <stdbool.h>
#include <stdint.h>
#ifdef CONFIG_ARM_ARCH
#include <systemlib/perf_counter.h>
#endif
class __EXPORT ECL_PitchController //XXX: create controller superclass
{
public:
@@ -130,7 +129,7 @@ private:
float _rate_error;
float _rate_setpoint;
float _bodyrate_setpoint;
//perf_counter_t _nonfinite_input_perf;
perf_counter_t _nonfinite_input_perf;
};
#endif // ECL_PITCH_CONTROLLER_H
@@ -67,20 +67,20 @@ ECL_RollController::ECL_RollController() :
_rate_error(0.0f),
_rate_setpoint(0.0f),
_bodyrate_setpoint(0.0f),
//_nonfinite_input_perf(perf_alloc(PC_COUNT, "fw att control roll nonfinite input"))
_nonfinite_input_perf(perf_alloc(PC_COUNT, "fw att control roll nonfinite input")),
{
}
ECL_RollController::~ECL_RollController()
{
//perf_free(_nonfinite_input_perf);
perf_free(_nonfinite_input_perf);
}
float ECL_RollController::control_attitude(float roll_setpoint, float roll)
{
/* Do not calculate control signal with bad inputs */
if (!(isfinite(roll_setpoint) && isfinite(roll))) {
//perf_count(_nonfinite_input_perf);
perf_count(_nonfinite_input_perf);
return _rate_setpoint;
}
@@ -108,7 +108,7 @@ float ECL_RollController::control_bodyrate(float pitch,
if (!(isfinite(pitch) && isfinite(roll_rate) && isfinite(yaw_rate) && isfinite(yaw_rate_setpoint) &&
isfinite(airspeed_min) && isfinite(airspeed_max) &&
isfinite(scaler))) {
//perf_count(_nonfinite_input_perf);
perf_count(_nonfinite_input_perf);
return math::constrain(_last_output, -1.0f, 1.0f);
}
@@ -51,10 +51,8 @@
#include <stdbool.h>
#include <stdint.h>
#ifdef CONIG_ARCH_ARM
#include <systemlib/perf_counter.h>
#endif
class __EXPORT ECL_RollController //XXX: create controller superclass
{
@@ -123,7 +121,7 @@ private:
float _rate_error;
float _rate_setpoint;
float _bodyrate_setpoint;
//perf_counter_t _nonfinite_input_perf;
perf_counter_t _nonfinite_input_perf;
};
#endif // ECL_ROLL_CONTROLLER_H
@@ -66,13 +66,13 @@ ECL_YawController::ECL_YawController() :
_rate_setpoint(0.0f),
_bodyrate_setpoint(0.0f),
_coordinated_min_speed(1.0f),
//_nonfinite_input_perf(perf_alloc(PC_COUNT, "fw att control yaw nonfinite input"))
_nonfinite_input_perf(perf_alloc(PC_COUNT, "fw att control yaw nonfinite input"))
{
}
ECL_YawController::~ECL_YawController()
{
//perf_free(_nonfinite_input_perf);
perf_free(_nonfinite_input_perf);
}
float ECL_YawController::control_attitude(float roll, float pitch,
@@ -83,7 +83,7 @@ float ECL_YawController::control_attitude(float roll, float pitch,
if (!(isfinite(roll) && isfinite(pitch) && isfinite(speed_body_u) && isfinite(speed_body_v) &&
isfinite(speed_body_w) && isfinite(roll_rate_setpoint) &&
isfinite(pitch_rate_setpoint))) {
//perf_count(_nonfinite_input_perf);
perf_count(_nonfinite_input_perf);
return _rate_setpoint;
}
// static int counter = 0;
@@ -127,7 +127,7 @@ float ECL_YawController::control_bodyrate(float roll, float pitch,
if (!(isfinite(roll) && isfinite(pitch) && isfinite(pitch_rate) && isfinite(yaw_rate) &&
isfinite(pitch_rate_setpoint) && isfinite(airspeed_min) &&
isfinite(airspeed_max) && isfinite(scaler))) {
//perf_count(_nonfinite_input_perf);
perf_count(_nonfinite_input_perf);
return math::constrain(_last_output, -1.0f, 1.0f);
}
/* get the usual dt estimate */
+2 -4
View File
@@ -50,10 +50,8 @@
#include <stdbool.h>
#include <stdint.h>
#ifdef CONFIG_ARCH_ARM
#include <systemlib/perf_counter.h>
#endif
class __EXPORT ECL_YawController //XXX: create controller superclass
{
@@ -124,7 +122,7 @@ private:
float _rate_setpoint;
float _bodyrate_setpoint;
float _coordinated_min_speed;
//perf_counter_t _nonfinite_input_perf;
perf_counter_t _nonfinite_input_perf;
};