Specifications

Comedi
59 / 148
Description
The function comedi_get_hardcal_converter() initializes the comedi_polynomial_t pointed to by converter so it
can be passed to either comedi_to_physical(), or comedi_from_physical(). The result can be used to convert data
from the specified subdevice, channel, and range. The direction parameter specifies whether converter will be passed
to comedi_to_physical() or comedi_from_physical().
This function initializes the comedi_polynomial_t pointed to by converter as a simple linear function with no calibration in-
formation, appropriate for boards which do their gain/offset/nonlinearity corrections in hardware. If your board needs calibration
to be performed in software by the host computer, use comedi_get_softcal_converter() instead. A subdevice will
advertise the fact that it depends on a software calibration with the SDF_SOFT_CALIBRATED subdevice flag.
The result of this function will only depend on the channel parameter if either comedi_range_is_chan_specific() or
comedi_maxdata_is_chan_specific() returns true for the specified subdevice.
Return value
Returns 0 on success, -1 on failure.
5.4.3.6 comedi_get_softcal_converter
comedi_get_softcal_converter — get converter for software-calibrated subdevice
Synopsis
#include <comedilib.h>
int comedi_get_softcal_converter(unsigned subdevice, unsigned channel, unsigned range, enum comedi_conversion_direction
direction, const comedi_calibration_t * parsed_calibration, comedi_polynomial_t * converter);
Status
alpha
Description
The function comedi_get_softcal_converter() initializes the comedi_polynomial_t pointed to by converter so it
can be passed to either comedi_to_physical() or comedi_from_physical(). The comedi_polynomial_t pointed to by
converter can then be used to convert data for the specified subdevice, channel, and range. The direction parameter
specifies whether converter will be passed to comedi_to_physical() or comedi_from_physical(). The parsed-
_calibration parameter points to the software calibration values for your device, and may be obtained by calling comedi_-
parse_calibration_file() on a calibration file generated by the comedi_soft_calibrate program.
This function is only useful for boards that perform their calibrations in software on the host computer. A subdevice will advertise
the fact that it depends on a software calibration with the SDF_SOFT_CALIBRATED subdevice flag.
Whether or not the result of this function actually depends on the channel parameter is hardware dependent. For example, the
calibration of a multiplexed analog input will typically not depend on the channel, only the range. Analog outputs will typically
use different calibrations for each output channel.
Software calibrations are implemented as polynomials (up to third order). Since the inverse of a polynomial of order higher
than one can’t be represented exactly as another polynomial, you may not be able to get converters for the ‘reverse’ direction.
For example, you may be able to get a converter for an analog input in the COMEDI_TO_PHYSICAL direction, but not in the
COMEDI_FROM_PHYSICAL direction.
Return value
Returns 0 on success, -1 on failure.