COMEDI_GET_SOFTCAL_C(3) | Comedi reference | COMEDI_GET_SOFTCAL_C(3) |
comedi_get_softcal_converter - get converter for software-calibrated subdevice
#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);
alpha
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.
Returns 0 on success, -1 on failure.
David Schleef <ds@schleef.org>
Frank Mori Hess <fmhess@users.sourceforge.net>
Herman Bruyninckx <Herman.Bruyninckx@mech.kuleuven.ac.be>
Bernd Porr <tech@linux-usb-daq.co.uk>
Ian Abbott <abbotti@mev.co.uk>
Éric Piel <piel@delmic.com>
Copyright © 1998-2003 David Schleef
Copyright © 2001-2003, 2005, 2008 Frank Mori Hess
Copyright © 2002-2003 Herman Bruyninckx
Copyright © 2012 Bernd Porr
Copyright © 2012 Ian Abbott
Copyright © 2012, 2015 Éric Piel
This document is part of Comedilib. In the context of this document, the term "source code" as defined by the license is interpreted as the XML source.
This library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation, version 2.1 of the License.
This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public License along with this library; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.
01/31/2023 | Comedi |