59 virtual void onIioEvent(
const IioEventData& eventData) = 0;
87 std::ostringstream oss;
88 oss <<
"IIO device " << device <<
" is not valid";
89 throw std::invalid_argument(oss.str());
100 Iio(
const std::string& deviceName)
102 std::ostringstream oss;
105 oss <<
"IIO device name " << deviceName <<
" not found";
106 throw std::invalid_argument(oss.str());
110 oss <<
"IIO device " << deviceName <<
" is not valid";
111 throw std::invalid_argument(oss.str());
145 readInt(
const std::string& attributeName)
const 150 std::ostringstream oss;
151 oss <<
"IIO readInt for attibute " << attributeName <<
" failed";
152 throw std::runtime_error(oss.str());
172 std::ostringstream oss;
173 oss <<
"IIO readFloat for attibute " << attributeName <<
" failed";
174 throw std::runtime_error(oss.str());
188 writeInt(
const std::string& attributeName,
int value)
const 192 std::ostringstream oss;
193 oss <<
"IIO writeInt for attibute " << attributeName <<
" failed";
194 throw std::runtime_error(oss.str());
208 writeFloat(
const std::string& attributeName,
float value)
const 212 std::ostringstream oss;
213 oss <<
"IIO writeFloat for attibute " << attributeName <<
" failed";
214 throw std::runtime_error(oss.str());
231 throw std::runtime_error(
"registerEventHandler failed");
236 static void private_event_handler(
iio_event_data* data,
void *args)
249 eventData.
diff = different;
~Iio()
Definition: iio.hpp:118
mraa_result_t mraa_iio_read_int(mraa_iio_context dev, const char *filename, int *data)
Iio(int device)
Definition: iio.hpp:83
int mraa_iio_get_device_num_by_name(const char *name)
virtual void onIioEvent(const IioEventData &eventData)=0
int type
Definition: iio.hpp:43
mraa_result_t mraa_iio_close(mraa_iio_context dev)
int channelType
Definition: iio.hpp:39
mraa_result_t mraa_iio_write_float(mraa_iio_context dev, const char *attr_chan, const float data)
std::string getDeviceName() const
Definition: iio.hpp:130
int readInt(const std::string &attributeName) const
Definition: iio.hpp:145
API to Industrial IO.
Definition: iio.hpp:72
Iio(const std::string &deviceName)
Definition: iio.hpp:100
const char * mraa_iio_get_device_name(mraa_iio_context dev)
void registerEventHandler(IioHandler *handler) const
Definition: iio.hpp:227
float readFloat(const std::string &attributeName) const
Definition: iio.hpp:167
mraa_result_t mraa_iio_read_float(mraa_iio_context dev, const char *filename, float *data)
mraa_result_t mraa_iio_event_setup_callback(mraa_iio_context dev, void(*fptr)(struct iio_event_data *data, void *args), void *args)
int modifier
Definition: iio.hpp:41
mraa_iio_context mraa_iio_init(int device)
void writeFloat(const std::string &attributeName, float value) const
Definition: iio.hpp:208
mraa_result_t mraa_iio_event_extract_event(struct iio_event_data *event, int *chan_type, int *modifier, int *type, int *direction, int *channel, int *channel2, int *different)
int channel
Definition: iio.hpp:47
int channel2
Definition: iio.hpp:49
struct _iio * mraa_iio_context
Definition: iio.h:87
mraa_result_t mraa_iio_write_int(mraa_iio_context dev, const char *attr_chan, const int data)
int diff
Definition: iio.hpp:51
mraa_result_t
Definition: types.h:208
void writeInt(const std::string &attributeName, int value) const
Definition: iio.hpp:188
Definition: iio_kernel_headers.h:119
virtual ~IioHandler()
Definition: iio.hpp:61
int direction
Definition: iio.hpp:45