comedi_apply_calibration - set hardware calibration from file
int comedi_apply_calibration (comedi_t *device, unsigned int subdevice,
unsigned int channel, unsigned int range, unsigned int aref, const char
This function sets the calibration of the specified subdevice so that
it is in proper calibration when using the specified channel, range and
aref. It does so by performing writes to the appropriate channels of
the board’s calibration subdevice(s). Depending on the hardware, the
calibration settings used may or may not depend on the channel, range,
or aref. Furthermore, the calibrations appropriate for different
channel, range, and aref parameters may not be able to be applied
simultaneously. For example, some boards cannot have their analog
inputs calibrated for more than one input range simultaneously.
Applying a calibration for range 1 may blow away a previously applied
calibration for range 0. Or, applying a calibration for analog input
channel 0 may cause the same calibration to be applied to all the other
analog input channels as well. Your only guarantee is that calls to
comedi_apply_calibration() on different subdevices will not interfere
with each other.
In practice, their are some rules of thumb on how calibrations behave.
No calibrations depend on the aref. A multiplexed analog input will
have calibration settings that do not depend on the channel, and
applying a setting for one channel will affect all channels equally.
Analog outputs, and analog inputs with independent a/d converters for
each input channel, will have calibrations settings which do depend on
the channel, and the settings for each channel will be independent of
the other channels.
If you wish to investigate exactly what comedi_apply_calibration() is
doing, you can perform reads on your board’s calibration subdevice to
see which calibration channels it is changing. You can also try to
decipher the calibration file directly (it’s a text file).
The file_path parameter can be used to specify the file which contains
the calibration information. If file_path is NULL, then comedilib will
use a default file location. The calibration information used by this
function is generated by the comedi_calibrate program (see its man
The functions comedi_parse_calibration_file(),
comedi_apply_parsed_calibration(), and comedi_cleanup_calibration()
provide the same functionality at a slightly lower level.
Zero on success, a negative number on failure.
28 October 2007