Provided by: linuxcnc-uspace_2.9.4-2ubuntu1_amd64 bug

NAME

       mux_generic - choose one from several input values

SYNOPSIS


       loadrt mux_generic config="bb8,fu12...."

FUNCTIONS

       mux-gen.NN Depending on the data types can run in either a floating point or non-floating point thread.

PINS

       mux-gen.NN.suppress-no-input bit in
              This  suppresses  changing the output if all select lines are false.  This stops unwanted jumps in
              output between transitions of input but makes in00 unavailable.

       mux-gen.NN.debounce-us unsigned in
              sets debounce time in microseconds, e.g. 100000 = a tenth of a second.  The selection inputs  must
              be stable this long before the output changes.  This helps to ignore 'noisy' switches.

       mux-gen.NN.sel-bit-MM bit in (M=0..N)

       mux-gen.NN.sel-int unsigned in
              Together,  these  determine  which inN value is copied to output.  The bit pins are interpreted as
              binary bits, and the result is simply added on to the integer pin  input.   It  is  expected  that
              either  one or the other would normally be used.  However, the possibility exists to use a higher-
              order bit to "shift" the values set by the integer pin.  The sel-bit pins are  only  created  when
              the  size of the mux_gen component is an integer power of two.  This component (unlike mux16) does
              not offer the option of decoding Gray-code, however the same effect can be achieved  by  arranging
              the order of the input values to suit.

       mux-gen.NN.out-[bit/float/s32/u32] variable-type out
              Follows  the  value  of one of the inN values according to the selection bits and/or the selection
              number.  Values will be converted/truncated according  to  standard  C  rules.   This  means,  for
              example that a float input greater than 2147483647 will give an S32 output of -2147483648.

       mux-gen.NN.in-[bit/float/s32/u32]-MM variable-type in
              The possible output values that are selected by the selection pins.

PARAMETERS

       mux-gen.N.elapsed float r
              Current value of the internal debounce timer for debugging.

       mux-gen.N.selected s32 r
              Current  value of the internal selection variable after conversion for debugging.  Possibly useful
              for setting up gray-code switches.

DESCRIPTION

       This component is a more general version of the other multiplexing components.  It allows the creation of
       arbitrary-size multiplexers (up to 1024 entries) and also supports differing data types on the input  and
       output  pins.   The  configuration  string is a comma-separated list of code-letters and numbers, such as
       "bb4,fu12".
        This would create a 4-element bit-to-bit mux and a 12-element float-to-unsigned mux.  The  code  letters
       are  b  =  bit,  f = float, s = signed integer, u = unsigned integer.  The first letter code is the input
       type, the second is the output type.  The codes are not case-sensitive.  The  order  of  the  letters  is
       significant  but  the position in the string is not.  Do not insert any spaces in the config string.  Any
       non-zero float value will be converted to a "true" output in bit form.  Be wary that float datatypes  can
       be very, very, close to zero and not actually be equal to zero.

       Each  mux has its own HAL function and must be added to a thread separately.  If neither input nor output
       is of type float then the function is base-thread (non floating-point)  safe.   Any  mux_generic  with  a
       floating point input or output can only be added to a floating-point thread.

SEE ALSO

       mux2(9), mux4(9), mux8(9), mux16(9).

AUTHOR

       Andy Pugh

LICENSE

       GPL

LinuxCNC Documentation                             2013-05-27                                     MUX_GENERIC(9)