Esempio n. 1
0
static void print_event(struct iio_event_data *event)
{
    enum iio_chan_type type = IIO_EVENT_CODE_EXTRACT_CHAN_TYPE(event->id);
    enum iio_modifier mod = IIO_EVENT_CODE_EXTRACT_MODIFIER(event->id);
    enum iio_event_type ev_type = IIO_EVENT_CODE_EXTRACT_TYPE(event->id);
    enum iio_event_direction dir = IIO_EVENT_CODE_EXTRACT_DIR(event->id);
    int chan = IIO_EVENT_CODE_EXTRACT_CHAN(event->id);
    int chan2 = IIO_EVENT_CODE_EXTRACT_CHAN2(event->id);
    bool diff = IIO_EVENT_CODE_EXTRACT_DIFF(event->id);

    if (!event_is_known(event)) {
        printf("Unknown event: time: %lld, id: %llx\n",
               event->timestamp, event->id);
        return;
    }

    printf("Event: time: %lld, type: %s", event->timestamp,
           iio_chan_type_name_spec[type]);

    if (mod != IIO_NO_MOD)
        printf("(%s)", iio_modifier_names[mod]);

    if (chan >= 0) {
        printf(", channel: %d", chan);
        if (diff && chan2 >= 0)
            printf("-%d", chan2);
    }

    printf(", evtype: %s", iio_ev_type_text[ev_type]);

    if (dir != IIO_EV_DIR_NONE)
        printf(", direction: %s", iio_ev_dir_text[dir]);
    printf("\n");
}
Esempio n. 2
0
File: iio.c Progetto: fboudra/mraa
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)
{
    *chan_type = IIO_EVENT_CODE_EXTRACT_CHAN_TYPE(event->id);
    *modifier = IIO_EVENT_CODE_EXTRACT_MODIFIER(event->id);
    *type = IIO_EVENT_CODE_EXTRACT_TYPE(event->id);
    *direction = IIO_EVENT_CODE_EXTRACT_DIR(event->id);
    *channel = IIO_EVENT_CODE_EXTRACT_CHAN(event->id);
    *channel2 = IIO_EVENT_CODE_EXTRACT_CHAN2(event->id);
    *different = IIO_EVENT_CODE_EXTRACT_DIFF(event->id);
    return MRAA_SUCCESS;
}