Man Linux: Main Page and Category List


       comedi_apply_calibration - set hardware calibration from file


       #include <comedilib.h>

       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