libvisiontransfer  7.2.0
datachannelservice.h
1 /*******************************************************************************
2  * Copyright (c) 2019 Nerian Vision GmbH
3  *
4  * Permission is hereby granted, free of charge, to any person obtaining a copy
5  * of this software and associated documentation files (the "Software"), to deal
6  * in the Software without restriction, including without limitation the rights
7  * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
8  * copies of the Software, and to permit persons to whom the Software is
9  * furnished to do so, subject to the following conditions:
10  *
11  * The above copyright notice and this permission notice shall be included in
12  * all copies or substantial portions of the Software.
13  *******************************************************************************/
14 
15 #ifndef VISIONTRANSFER_DATACHANNELSERVICE_H
16 #define VISIONTRANSFER_DATACHANNELSERVICE_H
17 
18 #include <vector>
19 #include <visiontransfer/common.h>
20 #include <visiontransfer/deviceinfo.h>
21 #include <visiontransfer/sensordata.h>
22 
23 using namespace visiontransfer;
24 
25 namespace visiontransfer {
26 
40 class VT_EXPORT DataChannelService {
41 public:
42  class Pimpl;
49  DataChannelService(DeviceInfo deviceInfo, unsigned long pollDelayUSec=1000);
51 public:
55  bool imuAvailable();
56 
60  TimestampedQuaternion imuGetRotationQuaternion();
61 
67  std::vector<TimestampedQuaternion> imuGetRotationQuaternionSeries(int fromSec=0, int fromUSec=0, int untilSec=0x7FFFffffl, int untilUSec=0x7FFFffffl);
68 
72  TimestampedVector imuGetAcceleration();
73 
79  std::vector<TimestampedVector> imuGetAccelerationSeries(int fromSec=0, int fromUSec=0, int untilSec=0x7FFFffffl, int untilUSec=0x7FFFffffl);
80 
84  TimestampedVector imuGetGyroscope();
85 
91  std::vector<TimestampedVector> imuGetGyroscopeSeries(int fromSec=0, int fromUSec=0, int untilSec=0x7FFFffffl, int untilUSec=0x7FFFffffl);
92 
96  TimestampedVector imuGetMagnetometer();
97 
103  std::vector<TimestampedVector> imuGetMagnetometerSeries(int fromSec=0, int fromUSec=0, int untilSec=0x7FFFffffl, int untilUSec=0x7FFFffffl);
104 
108  TimestampedVector imuGetLinearAcceleration();
109 
115  std::vector<TimestampedVector> imuGetLinearAccelerationSeries(int fromSec=0, int fromUSec=0, int untilSec=0x7FFFffffl, int untilUSec=0x7FFFffffl);
116 
120  TimestampedVector imuGetGravity();
121 
127  std::vector<TimestampedVector> imuGetGravitySeries(int fromSec=0, int fromUSec=0, int untilSec=0x7FFFffffl, int untilUSec=0x7FFFffffl);
128 
129 private:
130  Pimpl* pimpl;
131 };
132 
133 
134 } // namespaces
135 
136 #endif
137 
Encapsulate a 4D (quaternion) sensor report, containing i, j, k, r, as well as timestamp and status f...
Definition: sensordata.h:66
Encapsulate a 3D sensor report, containing X, Y, Z, as well as timestamp and status fields...
Definition: sensordata.h:50
Aggregates information about a discovered device.
Definition: deviceinfo.h:47
Nerian Vision Technologies