diff options
| author | Stanislaw Halik <sthalik@misaki.pl> | 2019-03-28 10:36:56 +0100 | 
|---|---|---|
| committer | Stanislaw Halik <sthalik@misaki.pl> | 2019-03-28 10:36:56 +0100 | 
| commit | 79d56147198dc873e30ae0ca8d554d37106db56f (patch) | |
| tree | 10c7266523c3d4bb44c001144bd65ce615908016 | |
| parent | 164e50e92590639113e311f1c533d475ef6d5b16 (diff) | |
tracker/test: use for testing yaw wraparound
Issue: #912
| -rw-r--r-- | tracker-test/test.cpp | 56 | ||||
| -rw-r--r-- | tracker-test/test.h | 3 | 
2 files changed, 19 insertions, 40 deletions
| diff --git a/tracker-test/test.cpp b/tracker-test/test.cpp index 0e09deb5..3ca47ae1 100644 --- a/tracker-test/test.cpp +++ b/tracker-test/test.cpp @@ -15,69 +15,49 @@  #include <cmath>  #include <QDebug> -const double test_tracker::incr[6] = +static const double incr[3] =  { -    50, 40, 80, -    70, 5, 3 +    10, 5, 3  }; -test_tracker::test_tracker() = default; +static const double max_values[3] = { +    180, 2, 3, +}; +test_tracker::test_tracker() = default;  test_tracker::~test_tracker() = default;  module_status test_tracker::start_tracker(QFrame*)  {      t.start(); - -    return status_ok(); +    return {};  } -#ifdef EMIT_NAN -#   include <cstdlib> -#endif -  void test_tracker::data(double *data)  {      const double dt = t.elapsed_seconds();      t.start(); -#ifdef EMIT_NAN -    if ((rand()%4) == 0) +    for (int i = 0; i < 3; i++)      { -        for (int i = 0; i < 6; i++) -            data[i] = 0./0.; +        double last_ = last[i]; +        double max = max_values[i] * 2; +        double incr_ = incr[i]; +        double x = fmod(last_ + incr_ * dt, max); +        last[i] = x; +        if (x > max_values[i]) +            x = -max + x; +        data[i+3] = x;      } -    else -#endif -        for (int i = 0; i < 6; i++) -        { -            double x = last_x[i] + incr[i] * dt; -            if (x > 180) -                x = -360 + x; -            else if (x < -180) -                x = 360 + x; -            x = copysign(fmod(fabs(x), 360), x); -            last_x[i] = x; - -            if (i >= 3) -            { -                data[i] = x; -            } -            else -            { -                data[i] = x * 100/180.; -            } -        }  } -test_dialog::test_dialog() +test_dialog::test_dialog() // NOLINT(cppcoreguidelines-pro-type-member-init)  {      ui.setupUi(this);      connect(ui.buttonBox, &QDialogButtonBox::clicked, [this](QAbstractButton* btn) {          if (btn == ui.buttonBox->button(QDialogButtonBox::Abort)) -            // NOLINTNEXTLINE -            *(volatile int*)nullptr = 0; +            *(volatile int*)nullptr /*NOLINT*/ = 0;      });      connect(ui.buttonBox, SIGNAL(accepted()), this, SLOT(doOK())); diff --git a/tracker-test/test.h b/tracker-test/test.h index 049e45a8..7f06968e 100644 --- a/tracker-test/test.h +++ b/tracker-test/test.h @@ -15,8 +15,7 @@ public:      void data(double *data) override;  private: -    static const double incr[6]; -    double last_x[6] {}; +    double last[6] {};      Timer t;  }; | 
