CCIMXDesktop
 
Loading...
Searching...
No Matches
icm20608_adapter.h
1#pragma once
2#include "ICM20608Data.h"
3
4#ifdef _WIN32
5#include <fstream>
6#else
7#include <unistd.h>
8#endif
9
12class ICM20608 {
13public:
14 ICM20608() = default;
15
17 ICM20608& operator=(const ICM20608&) = delete;
18 ICM20608(const ICM20608&) = delete;
19
23 bool get_package_sync(ICM20608AppData& empty_data_pack);
24
25private:
26 static constexpr const char* _dev_file_path = "/dev/icm20608";
27
29 void bind_dev_file();
30
31#ifdef _WIN32
32 std::ifstream dev_stream;
33 bool get_package_sync_win32impl(ICM20608AppData& empty);
34#else
35 int private_fd { -1 };
36 bool get_package_sync_uniximpl(ICM20608AppData& empty);
37#endif
38};
Interface for ICM20608 inertial measurement unit (IMU) sensor.
Definition icm20608_adapter.h:42
ICM20608()=default
Default constructor.
bool get_package_sync(ICM20608AppData &empty_data_pack)
Synchronously get sensor data package.
ICM20608 & operator=(const ICM20608 &)=delete
Disable copy assignment and copy constructor.
Processed sensor data with float values.
Definition icm20608_adapter.h:17