From 4f29c7c4db6ba9627d92945cfea3ceab5dad3ef4 Mon Sep 17 00:00:00 2001 From: MaEtUgR Date: Wed, 9 Mar 2016 09:38:32 +0100 Subject: [PATCH] switch the modules implementing the block structure to px4_poll such that in posix_sitl simulation the poll works as expected, blocks the module and doesn't overload the CPU --- .../local_position_estimator/BlockLocalPositionEstimator.cpp | 2 +- .../local_position_estimator/BlockLocalPositionEstimator.hpp | 3 ++- src/modules/segway/BlockSegwayController.cpp | 2 +- src/modules/segway/BlockSegwayController.hpp | 3 ++- 4 files changed, 6 insertions(+), 4 deletions(-) diff --git a/src/modules/local_position_estimator/BlockLocalPositionEstimator.cpp b/src/modules/local_position_estimator/BlockLocalPositionEstimator.cpp index 5685e7fdd5..26753fc755 100644 --- a/src/modules/local_position_estimator/BlockLocalPositionEstimator.cpp +++ b/src/modules/local_position_estimator/BlockLocalPositionEstimator.cpp @@ -221,7 +221,7 @@ void BlockLocalPositionEstimator::update() { // wait for a sensor update, check for exit condition every 100 ms - int ret = poll(_polls, 3, 100); + int ret = px4_poll(_polls, 3, 100); if (ret < 0) { /* poll error, count it in perf */ diff --git a/src/modules/local_position_estimator/BlockLocalPositionEstimator.hpp b/src/modules/local_position_estimator/BlockLocalPositionEstimator.hpp index dcbeb69dc0..a77a358363 100644 --- a/src/modules/local_position_estimator/BlockLocalPositionEstimator.hpp +++ b/src/modules/local_position_estimator/BlockLocalPositionEstimator.hpp @@ -1,5 +1,6 @@ #pragma once +#include #include #include #include @@ -262,7 +263,7 @@ private: //BlockDelay _tDelay; // misc - struct pollfd _polls[3]; + px4_pollfd_struct_t _polls[3]; uint64_t _timeStamp; //uint64_t _time_last_hist; uint64_t _time_last_xy; diff --git a/src/modules/segway/BlockSegwayController.cpp b/src/modules/segway/BlockSegwayController.cpp index ba7665201a..4750595d33 100644 --- a/src/modules/segway/BlockSegwayController.cpp +++ b/src/modules/segway/BlockSegwayController.cpp @@ -3,7 +3,7 @@ void BlockSegwayController::update() { // wait for a sensor update, check for exit condition every 100 ms - if (poll(&_attPoll, 1, 100) < 0) { return; } // poll error + if (px4_poll(&_attPoll, 1, 100) < 0) { return; } // poll error uint64_t newTimeStamp = hrt_absolute_time(); float dt = (newTimeStamp - _timeStamp) / 1.0e6f; diff --git a/src/modules/segway/BlockSegwayController.hpp b/src/modules/segway/BlockSegwayController.hpp index 4413a3cff8..450b4e3ff9 100644 --- a/src/modules/segway/BlockSegwayController.hpp +++ b/src/modules/segway/BlockSegwayController.hpp @@ -1,5 +1,6 @@ #pragma once +#include #include using namespace control; @@ -22,7 +23,7 @@ private: enum {CH_LEFT, CH_RIGHT}; BlockPI th2v; BlockP q2v; - struct pollfd _attPoll; + px4_pollfd_struct_t _attPoll; uint64_t _timeStamp; };