Provided by: linuxcnc-uspace_2.9.4-2ubuntu2_amd64 

NAME
lincurve - one-dimensional lookup table
SYNOPSIS
loadrt lincurve [count=N|names=name1[,name2...]] [personality=P1,P2,...]
DESCRIPTION
This component can be used to map any floating-point input to a floating-point output. Typical uses would
include linearisation of thermocouples, defining PID gains that vary with external factors or to
substitute for any mathematical function where absolute accuracy is not required.
The component can be thought of as a 2-dimensional graph of points in (x,y) space joined by straight
lines. The input value is located on the x axis, followed up until it touches the line, and the output of
the component is set to the corresponding y-value.
The (x,y) points are defined by the x-val-NN and y-val-NN parameters which need to be set in the HAL file
using "setp" commands.
The maximum number if (x,y) points supported is 16.
For input values less than the x-val-00 breakpoint the y-val-00 is returned. For x greater than the
largest x-val-NN the yval corresponding to x-max is returned (ie, no extrapolation is performed.)
Sample usage: loadrt lincurve count=3 personality=4,4,4 for a set of three 4-element graphs.
FUNCTIONS
lincurve.N (requires a floating-point thread)
PINS
lincurve.N.in float in
The input value
lincurve.N.out float out
The output value
lincurve.N.out-io float io
The output value, compatible with PID gains
PARAMETERS
lincurve.N.x-val-MM float rw (MM=00..personality)
axis breakpoints
lincurve.N.y-val-MM float rw (MM=00..personality)
output values to be interpolated
AUTHOR
Andy Pugh
LICENSE
GPL
LinuxCNC Documentation 2025-08-07 LINCURVE(9)