Get various information about a particular channel
#include <eegdev.h>
int egd_channel_info(const struct eegdev* dev, int stype,
unsigned int index, int fieldtype, ...);
egd_channel_info() provides different type of information about the channel at the index index of the group specified by stype of the device referenced by dev. As described for egd_acq_setup(3), stype specifies the type of channel. It must one of the values returned by egd_sensor_type(3).
The information returned by the function is defined by the variable list of argument. This list is composed of successive couple grouping one field type identifier specifying the feature to be get and a pointer to a value whose type depends on the previous field type. The list must finish by EGD_END.
The field identifers can be the following (The expected corresponding pointer type is provided in parenthesis):
EGD_LABEL (char*)
Name of the channel. The pointed array should be long enough to hold 32 characters (including the null termination character).
EGD_ISINT (int*)
Indicates whether the data provided by the channel are integer or floating point. (zero indicates floating point, non-zero indicates integer).
EGD_MM_I (int32_t*)
Returns in an array of 2 int32_t the minimal and maximal values that the channel can deliver (If the channel deliver floating point data, these values can be underestimated due to overflow)
EGD_MM_F (float*)
Returns in an array of 2 float values the minimal and maximal values that the channel can deliver (If the channel deliver double floating point data, these values can be underestimated due to overflow)
EGD_MM_D (double*)
Returns in an array of 2 double values the minimal and maximal values that the channel can deliver.
EGD_UNIT (char*)
Unit in which the channel data is expressed. The pointed array should be long enough to hold 16 characters (including the null termination character).
EGD_TRANSDUCTER (char*)
Transducter type of the sensor. The pointed array should be long enough to hold 128 characters (including the null termination character).
EGD_PREFILTERING (char*)
Information about the filters already applied on data. The pointed array should be long enough to hold 128 characters (including the null termination character).
The function returns 0 in case of succes. Otherwise, -1 is returned and errno is set accordingly.
egd_channel_info() will fail if:
EINVAL
dev is NULL, stype is an invalid sensor type, index is bigger than the maximal number of channel in the group, any field identifier is unknown or any pointer used is NULL.
egd_channel_info() is thread-safe.