aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPavel Kirienko <pavel.kirienko@gmail.com>2015-01-11 00:11:48 +0300
committerLorenz Meier <lm@inf.ethz.ch>2015-01-21 14:54:22 +0100
commit7f0f4b3072008239f4481c79769ab1b00f92e707 (patch)
treecbd976523e1747a1378cc08f38f7bfaef4ef7318
parenteea3c801f4be7efa306af01a8153e8bbee4d43ce (diff)
downloadpx4-firmware-7f0f4b3072008239f4481c79769ab1b00f92e707.tar.gz
px4-firmware-7f0f4b3072008239f4481c79769ab1b00f92e707.tar.bz2
px4-firmware-7f0f4b3072008239f4481c79769ab1b00f92e707.zip
UavcanEscController broadcasting percounter
-rw-r--r--src/modules/uavcan/actuators/esc.cpp14
-rw-r--r--src/modules/uavcan/actuators/esc.hpp1
2 files changed, 15 insertions, 0 deletions
diff --git a/src/modules/uavcan/actuators/esc.cpp b/src/modules/uavcan/actuators/esc.cpp
index 9f682c7e1..995c8987c 100644
--- a/src/modules/uavcan/actuators/esc.cpp
+++ b/src/modules/uavcan/actuators/esc.cpp
@@ -49,12 +49,24 @@ UavcanEscController::UavcanEscController(uavcan::INode &node) :
_uavcan_sub_status(node),
_orb_timer(node)
{
+ if (_perfcnt_invalid_input == nullptr) {
+ errx(1, "uavcan: couldn't allocate _perfcnt_invalid_input");
+ }
+
+ if (_perfcnt_scaling_error == nullptr) {
+ errx(1, "uavcan: couldn't allocate _perfcnt_scaling_error");
+ }
+
+ if (_perfcnt_broadcast_elapsed == nullptr) {
+ errx(1, "uavcan: couldn't allocate _perfcnt_broadcast_elapsed");
+ }
}
UavcanEscController::~UavcanEscController()
{
perf_free(_perfcnt_invalid_input);
perf_free(_perfcnt_scaling_error);
+ perf_free(_perfcnt_broadcast_elapsed);
}
int UavcanEscController::init()
@@ -129,7 +141,9 @@ void UavcanEscController::update_outputs(float *outputs, unsigned num_outputs)
* Publish the command message to the bus
* Note that for a quadrotor it takes one CAN frame
*/
+ perf_begin(_perfcnt_broadcast_elapsed);
(void)_uavcan_pub_raw_cmd.broadcast(msg);
+ perf_end(_perfcnt_broadcast_elapsed);
}
void UavcanEscController::arm_all_escs(bool arm)
diff --git a/src/modules/uavcan/actuators/esc.hpp b/src/modules/uavcan/actuators/esc.hpp
index 12c035542..498fb9dd8 100644
--- a/src/modules/uavcan/actuators/esc.hpp
+++ b/src/modules/uavcan/actuators/esc.hpp
@@ -109,4 +109,5 @@ private:
*/
perf_counter_t _perfcnt_invalid_input = perf_alloc(PC_COUNT, "uavcan_esc_invalid_input");
perf_counter_t _perfcnt_scaling_error = perf_alloc(PC_COUNT, "uavcan_esc_scaling_error");
+ perf_counter_t _perfcnt_broadcast_elapsed = perf_alloc(PC_ELAPSED, "uavcan_esc_broadcast_elapsed");
};