File: timed_trigger_test.cpp

package info (click to toggle)
pcl 1.13.0%2Bdfsg-3
  • links: PTS, VCS
  • area: main
  • in suites: bookworm
  • size: 143,524 kB
  • sloc: cpp: 518,578; xml: 28,792; ansic: 13,676; python: 334; lisp: 93; sh: 49; makefile: 30
file content (45 lines) | stat: -rw-r--r-- 1,088 bytes parent folder | download | duplicates (3)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
#include <iostream>
#include <thread>
#include <pcl/common/time_trigger.h>
#include <pcl/common/time.h>

using namespace std::chrono_literals;
using namespace pcl;

double global_time;

void callback ()
{
  static double last_time = pcl::getTime ();
  double elapsed = pcl::getTime () - last_time;
  last_time = pcl::getTime ();
  std::cout << "global fn: " << pcl::getTime () - global_time << " :: " << elapsed << std::endl;

  std::this_thread::sleep_for(1ms);
}

class Dummy
{
  public:
    void myTimer ()
    {
      static double last_time = pcl::getTime ();
      double elapsed = pcl::getTime () - last_time;
      last_time = pcl::getTime ();
      std::cout << "member fn: " << pcl::getTime () - global_time << " :: " << elapsed << std::endl;
    }
};

int main ()
{
  TimeTrigger trigger (10.0, callback);
  Dummy dummy;
  global_time = pcl::getTime ();
  trigger.start ();
  std::this_thread::sleep_for(2s);
  trigger.registerCallback ([&]{ dummy.myTimer (); });
  std::this_thread::sleep_for(3s);
  trigger.setInterval (0.2);
  std::this_thread::sleep_for(2s);
  return 0;
}