2 #include "example_utils.hpp"
4 #include <mip/definitions/commands_base.hpp>
5 #include <mip/definitions/commands_3dm.hpp>
6 #include <mip/definitions/data_sensor.hpp>
17 volatile bool stop =
false;
23 std::printf(
"Progress: [");
28 float progress = std::min(count /
float(
maxSamples), 1.0
f);
30 unsigned int threshold = std::lround(progress * 50);
33 for(; i<threshold; i++)
38 std::printf(
"] %.0f%%\r", progress * 100);
44 void packet_callback(
void*,
const mip::PacketRef& packet, mip::Timestamp timestamp)
55 device->cmdQueue().clear();
59 std::this_thread::yield();
66 return device.defaultUpdate(wait_time);
74 std::this_thread::sleep_for(std::chrono::milliseconds(5));
80 int main(
int argc,
const char* argv[])
85 std::unique_ptr<mip::DeviceInterface>&
device = utils->device;
92 mip::DispatchHandler dispatchHandler;
93 device->registerPacketCallback<&
packet_callback>(dispatchHandler, mip::data_sensor::DESCRIPTOR_SET,
false);
96 mip::DescriptorRate descriptor{ mip::data_sensor::DATA_ACCEL_SCALED, 100 };
106 #endif // USE_THREADS
112 unsigned int count = 0;
119 for(
unsigned int i=0; i<10; i++)
124 std::printf(
"\nDone!\n");
134 catch(
const std::underflow_error& ex)
138 catch(
const std::exception& ex)
140 fprintf(
stderr,
"Error: %s\n", ex.what());