#LyX 1.3 created this file. For more info see http://www.lyx.org/ \lyxformat 221 \textclass book \language english \inputencoding auto \fontscheme default \graphics default \paperfontsize default \spacing single \papersize Default \paperpackage a4 \use_geometry 0 \use_amsmath 0 \use_natbib 0 \use_numerical_citations 0 \paperorientation portrait \secnumdepth 3 \tocdepth 3 \paragraph_separation indent \defskip medskip \quotes_language english \quotes_times 2 \papercolumns 1 \papersides 1 \paperpagestyle default \layout Chapter HAL Components \layout Section Commands and Userspace Components \layout Standard Some of these will have expanded descriptions from the man pages. Some will have limited descriptions. All of the components have man pages. From this list you know what components exist and can use man n name to get additional information. For example in a terminal window type \family typewriter \series bold man 1 axis \family default \series default to view the information in the man page. \layout List \labelwidthstring 00.00.0000 axis-remote.1 = AXIS Remote Interface \layout List \labelwidthstring 00.00.0000 axis.1 = AXIS EMC (The Enhanced Machine Controller) Graphical User Interface \layout List \labelwidthstring 00.00.0000 bfload.1 = A program for loading a Xilinx Bitfile program into the FPGA of an Anything I/O board from Mesa \layout List \labelwidthstring 00.00.0000 comp.1 = Build, compile and install EMC HAL components \layout List \labelwidthstring 00.00.0000 emc.1 = EMC (The Enhanced Machine Controller) \layout List \labelwidthstring 00.00.0000 hal_input.1 = control HAL pins with any Linux input device, including USB HID devices \layout List \labelwidthstring 00.00.0000 hal_joystick.1 = control HAL pins with a joystick \layout List \labelwidthstring 00.00.0000 halcmd.1 = manipulate the Enhanced Machine Controller HAL from the command line \layout List \labelwidthstring 00.00.0000 halmeter.1 = observe HAL pins, signals, and parameters \layout List \labelwidthstring 00.00.0000 halrun.1 = manipulate the Enhanced Machine Controller HAL from the command line \layout List \labelwidthstring 00.00.0000 halsampler.1 = sample data from HAL in realtime \layout List \labelwidthstring 00.00.0000 halstreamer.1 = stream file data into HAL in real time \layout List \labelwidthstring 00.00.0000 halui.1 = observe HAL pins and command EMC through NML \layout List \labelwidthstring 00.00.0000 io.1 = accepts NML I/O commands, interacts with HAL in userspace \layout List \labelwidthstring 00.00.0000 iocontrol.1 = accepts NML I/O commands, interacts with HAL in userspace \layout List \labelwidthstring 00.00.0000 pyvcp.1 = Virtual Control Panel for EMC2 \layout Section Realtime components and kernel modules \layout Standard Some of these will have expanded descriptions from the man pages. Some will have limited descriptions. All of the components have man pages. From this list you know what components exist and can use man n name to get additional information. \layout List \labelwidthstring 00.00.0000 abs.9 = Compute the absolute value and sign of the input signal \layout List \labelwidthstring 00.00.0000 and2.9 = Two-input AND gate \layout List \labelwidthstring 00.00.0000 at_pid.9 = proportional/integral/derivative controller with auto tuning \layout List \labelwidthstring 00.00.0000 axis.9 = accepts NML motion commands, interacts with HAL in realtime \layout List \labelwidthstring 00.00.0000 biquad.9 = Biquad IIR filter \layout List \labelwidthstring 00.00.0000 blend.9 = Perform linear interpolation between two values \layout List \labelwidthstring 00.00.0000 blocks.9 = Old style HAL blocks (deprecated) \layout List \labelwidthstring 00.00.0000 charge_pump.9 = Create a square-wave for the ācharge pumpā input of some controller boards \layout List \labelwidthstring 00.00.0000 clarke2.9 = Two input version of Clarke transform \layout List \labelwidthstring 00.00.0000 clarke3.9 = Clarke (3 phase to cartesian) transform \layout List \labelwidthstring 00.00.0000 clarkeinv.9 = Inverse Clarke transform \layout List \labelwidthstring 00.00.0000 classicladder.9 = Realtime software plc based on ladder logic \layout List \labelwidthstring 00.00.0000 comp.9 = Two input comparator with hysteresis \layout List \labelwidthstring 00.00.0000 constant.9 = Use a parameter to set the value of a pin \layout List \labelwidthstring 00.00.0000 conv_bit_s32.9 = Convert a value from bit to s32 \layout List \labelwidthstring 00.00.0000 conv_bit_u32.9 = Convert a value from bit to u32 \layout List \labelwidthstring 00.00.0000 conv_float_s32.9 = Convert a value from float to s32 \layout List \labelwidthstring 00.00.0000 conv_float_u32.9 = Convert a value from float to u32 \layout List \labelwidthstring 00.00.0000 conv_s32_bit.9 = Convert a value from s32 to bit \layout List \labelwidthstring 00.00.0000 conv_s32_float.9 = Convert a value from u32 to bit \layout List \labelwidthstring 00.00.0000 conv_s32_u32.9 = Convert a value from s32 to u32 \layout List \labelwidthstring 00.00.0000 conv_u32_bit.9 = Convert a value from u32 to bit \layout List \labelwidthstring 00.00.0000 conv_u32_float.9 = Convert a value from u32 to float \layout List \labelwidthstring 00.00.0000 conv_u32_s32.9 = Convert a value from u32 to s32 \layout List \labelwidthstring 00.00.0000 counter.9 = counts input pulses (deprecated) \layout List \labelwidthstring 00.00.0000 ddt.9 = Compute the derivative of the input function \layout List \labelwidthstring 00.00.0000 deadzone.9 = Return the center if within the threshold \layout List \labelwidthstring 00.00.0000 debounce.9 = filter noisy digital inputs, for more information see \begin_inset LatexCommand \ref{sec:Debounce} \end_inset \layout List \labelwidthstring 00.00.0000 edge.9 = Edge detector \layout List \labelwidthstring 00.00.0000 encoder.9 = software counting of quadrature encoder signals, for more information see \begin_inset LatexCommand \ref{sec:Encoder} \end_inset \layout List \labelwidthstring 00.00.0000 encoder_ratio.9 = an electronic gear to synchronize two axes \layout List \labelwidthstring 00.00.0000 estop_latch.9 = ESTOP latch \layout List \labelwidthstring 00.00.0000 flipflop.9 = D type flip-flop \layout List \labelwidthstring 00.00.0000 freqgen.9 = software step pulse generation \layout List \labelwidthstring 00.00.0000 genhexkins.9 = kinematics definitions for emc2 \layout List \labelwidthstring 00.00.0000 hypot.9 = Three-input hypotenuse (Euclidean distance) calculator \layout List \labelwidthstring 00.00.0000 integ.9 = Integrator \layout List \labelwidthstring 00.00.0000 kins.9 = kinematics definitions for emc2 \layout List \labelwidthstring 00.00.0000 knob2float.9 = Convert counts (probably from an encoder) to a float value \layout List \labelwidthstring 00.00.0000 limit1.9 = Limit the output signal to fall between min and max \layout List \labelwidthstring 00.00.0000 limit2.9 = Limit the output signal to fall between min and max \layout List \labelwidthstring 00.00.0000 limit3.9 = Limit the output signal to fall between min and max \layout List \labelwidthstring 00.00.0000 logic.9 = \layout List \labelwidthstring 00.00.0000 lowpass.9 = Low-pass filter \layout List \labelwidthstring 00.00.0000 lut5.9 = Arbitrary 5-input logic function based on a look-up table \layout List \labelwidthstring 00.00.0000 m7i43_hm2.9 = RTAI driver for the Mesa 7i43 EPP Anything IO board with HostMot2 firmware \layout List \labelwidthstring 00.00.0000 maj3.9 = Compute the majority of 3 inputs \layout List \labelwidthstring 00.00.0000 match8.9 = 8-bit binary match detector \layout List \labelwidthstring 00.00.0000 minmax.9 = Track the minimum and maximum values of the input to the outputs \layout List \labelwidthstring 00.00.0000 motion.9 = accepts NML motion commands, interacts with HAL in realtime \layout List \labelwidthstring 00.00.0000 mult2.9 = Product of two inputs \layout List \labelwidthstring 00.00.0000 mux2.9 = Select from one of two input values \layout List \labelwidthstring 00.00.0000 mux4.9 = Select from one of four input values \layout List \labelwidthstring 00.00.0000 not.9 = Inverter \layout List \labelwidthstring 00.00.0000 offset.9 = Adds an offset to an input, and subtracts it from the feedback value \layout List \labelwidthstring 00.00.0000 oneshot.9 = one-shot pulse generator \layout List \labelwidthstring 00.00.0000 or2.9 = Two-input OR gate \layout List \labelwidthstring 00.00.0000 pid.9 = proportional/integral/derivative controller, for more information see \begin_inset LatexCommand \ref{sec:PID} \end_inset \layout List \labelwidthstring 00.00.0000 pluto_servo.9 = Hardware driver and firmware for the Pluto-P parallel-port FPGA, for use with servos \layout List \labelwidthstring 00.00.0000 pluto_step.9 = Hardware driver and firmware for the Pluto-P parallel-port FPGA, for use with steppers \layout List \labelwidthstring 00.00.0000 pwmgen.9 = software PWM/PDM generation, for more information see \begin_inset LatexCommand \ref{sec:PWMgen} \end_inset \layout List \labelwidthstring 00.00.0000 rotatekins.9 = kinematics definitions for emc2 \layout List \labelwidthstring 00.00.0000 sample_hold.9 = Sample and Hold \layout List \labelwidthstring 00.00.0000 sampler.9 = sample data from HAL in real time \layout List \labelwidthstring 00.00.0000 scale.9 = \layout List \labelwidthstring 00.00.0000 select8.9 = 8-bit binary match detector \layout List \labelwidthstring 00.00.0000 serport.9 = Hardware driver for the digital I/O bits of the 8250 and 16550 serial port \layout List \labelwidthstring 00.00.0000 siggen.9 = signal generator, for more information see \begin_inset LatexCommand \ref{sec:Siggen} \end_inset \layout List \labelwidthstring 00.00.0000 sim_encoder.9 = simulated quadrature encoder, for more information see \begin_inset LatexCommand \ref{sec:Simulated-Encoder} \end_inset \layout List \labelwidthstring 00.00.0000 stepgen.9 = software step pulse generation, for more information see \begin_inset LatexCommand \ref{sec:Stepgen} \end_inset \layout List \labelwidthstring 00.00.0000 steptest.9 = Used by Stepconf to allow testing of acceleration and velocity values for an axis \layout List \labelwidthstring 00.00.0000 streamer.9 = stream file data into HAL in real time \layout List \labelwidthstring 00.00.0000 sum2.9 = Sum of two inputs (each with a gain) and an offset \layout List \labelwidthstring 00.00.0000 supply.9 = set output pins with values from parameters (deprecated) \layout List \labelwidthstring 00.00.0000 threads.9 = creates hard realtime HAL threads \layout List \labelwidthstring 00.00.0000 threadtest.9 = \layout List \labelwidthstring 00.00.0000 timedelta.9 = \layout List \labelwidthstring 00.00.0000 toggle.9 = push-on, push-off from momentary pushbuttons \layout List \labelwidthstring 00.00.0000 tripodkins.9 = kinematics definitions for emc2 \layout List \labelwidthstring 00.00.0000 tristate_bit.9 = Place a signal on an I/O pin only when enabled, similar to a tristate buffer in electronics \layout List \labelwidthstring 00.00.0000 tristate_float.9 = Place a signal on an I/O pin only when enabled, similar to a tristate buffer in electronics \layout List \labelwidthstring 00.00.0000 trivkins.9 = kinematics definitions for emc2 \layout List \labelwidthstring 00.00.0000 updown.9 = Counts up or down, with optional limits and wraparound behavior \layout List \labelwidthstring 00.00.0000 wcomp.9 = Window comparator \layout List \labelwidthstring 00.00.0000 weighted_sum.9 = convert a group of bits to an integer \layout List \labelwidthstring 00.00.0000 xor2.9 = Two-input XOR (exclusive OR) gate \the_end