libvisiontransfer  10.6.0
datachannelservice.h
1 /*******************************************************************************
2  * Copyright (c) 2023 Allied Vision Technologies 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);
56  DataChannelService(const char* ipAddr, unsigned long pollDelayUSec=1000);
58 public:
62  bool imuAvailable();
63 
67  TimestampedQuaternion imuGetRotationQuaternion();
68 
74  std::vector<TimestampedQuaternion> imuGetRotationQuaternionSeries(int fromSec=0, int fromUSec=0, int untilSec=0x7FFFffffl, int untilUSec=0x7FFFffffl);
75 
79  TimestampedVector imuGetAcceleration();
80 
86  std::vector<TimestampedVector> imuGetAccelerationSeries(int fromSec=0, int fromUSec=0, int untilSec=0x7FFFffffl, int untilUSec=0x7FFFffffl);
87 
91  TimestampedVector imuGetGyroscope();
92 
98  std::vector<TimestampedVector> imuGetGyroscopeSeries(int fromSec=0, int fromUSec=0, int untilSec=0x7FFFffffl, int untilUSec=0x7FFFffffl);
99 
103  TimestampedVector imuGetMagnetometer();
104 
110  std::vector<TimestampedVector> imuGetMagnetometerSeries(int fromSec=0, int fromUSec=0, int untilSec=0x7FFFffffl, int untilUSec=0x7FFFffffl);
111 
115  TimestampedVector imuGetLinearAcceleration();
116 
122  std::vector<TimestampedVector> imuGetLinearAccelerationSeries(int fromSec=0, int fromUSec=0, int untilSec=0x7FFFffffl, int untilUSec=0x7FFFffffl);
123 
127  TimestampedVector imuGetGravity();
128 
134  std::vector<TimestampedVector> imuGetGravitySeries(int fromSec=0, int fromUSec=0, int untilSec=0x7FFFffffl, int untilUSec=0x7FFFffffl);
135 
136 private:
137  Pimpl* pimpl;
138 };
139 
140 
141 } // namespaces
142 
143 #endif
144 
visiontransfer::TimestampedQuaternion
Encapsulate a 4D (quaternion) sensor report, containing X, Y, Z, W, as well as timestamp and status f...
Definition: sensordata.h:80
visiontransfer::DeviceInfo
Aggregates information about a discovered device.
Definition: deviceinfo.h:59
visiontransfer::TimestampedVector
Encapsulate a 3D sensor report, containing X, Y, Z, as well as timestamp and status fields.
Definition: sensordata.h:64
visiontransfer::DataChannelService
Definition: datachannelservice.h:40
Allied Vision