6 #ifndef MOTORCORTEX_CORE_WD_GPIOLINES_H
7 #define MOTORCORTEX_CORE_WD_GPIOLINES_H
10 #include <initializer_list>
11 #include <linux/gpio.h>
18 INPUT = GPIOHANDLE_REQUEST_INPUT,
19 OUTPUT = GPIOHANDLE_REQUEST_OUTPUT
27 GpioLines(std::initializer_list<unsigned int> line_offset_list);
31 bool open(
const char* device, GpioLineDir dir);
35 void add(
unsigned int line_offset);
37 void add(std::initializer_list<unsigned int> line_offset_list);
39 bool set(
unsigned int line_offset,
bool value);
41 bool set(std::initializer_list<unsigned int> line_offset_list,
bool value);
43 bool get(
unsigned int line_offset)
const;
45 unsigned int length()
const;
47 const unsigned int* lines()
const;
49 const gpiohandle_data* data()
const;
53 std::vector<unsigned int> mapping_;
54 std::vector<unsigned int> lines_;
55 gpiohandle_data data_{};
56 GpioLineDir dir_{GpioLineDir::INPUT};
64 #endif //MOTORCORTEX_CORE_WD_GPIOLINES_H