SYNOPSIS
halui [-ini <path-to-INI>]
DESCRIPTION
The program halui is used to build a User Interface using hardware knobs and switches. It exports a big number of pins, and acts accordingly when these change.
OPTIONS
- -ini filename
-
Use the filename as the configuration file. Note: halui must find the nml file specified in the INI, usually that file is in the same folder as the INI, so it makes sense to run halui from that folder.
USAGE
When run, halui will export a large number of pins. A user can connect those to his physical knobs & switches & leds, and when a change is noticed halui triggers an appropriate event.
Caveat, halui expects the signals to be debounced, so if needed (bad knob contact) connect the physical button to a HAL debounce filter first.
PINS
Abort
- halui.abort bool in
-
pin for clearing most errors
Tool
- halui.tool.length-offset.a real out
-
current applied tool length offset for the A axis
- halui.tool.length-offset.b real out
-
current applied tool length offset for the B axis
- halui.tool.length-offset.c real out
-
current applied tool length offset for the C axis
- halui.tool.length-offset.u real out
-
current applied tool length offset for the U axis
- halui.tool.length-offset.v real out
-
current applied tool length offset for the V axis
- halui.tool.length-offset.w real out
-
current applied tool length offset for the W axis
- halui.tool.length-offset.x real out
-
current applied tool length offset for the X axis
- halui.tool.length-offset.y real out
-
current applied tool length offset for the Y axis
- halui.tool.length-offset.z real out
-
current applied tool length offset for the Z axis
- halui.tool.diameter real out
-
Current tool diameter, or 0 if no tool is loaded.
- halui.tool.number uint out
-
current selected tool
Spindle
- halui.spindle.N.brake-is-on bool out
-
status pin that tells us if brake is on
- halui.spindle.N.brake-off bool in
-
pin for deactivating the spindle brake
- halui.spindle.N.brake-on bool in
-
pin for activating the spindle brake
- halui.spindle.N.decrease bool in
-
a rising edge on this pin decreases the current spindle speed by 100
- halui.spindle.N.forward bool in
-
a rising edge on this pin makes the spindle go forward
- halui.spindle.N.increase bool in
-
a rising edge on this pin increases the current spindle speed by 100
- halui.spindle.N.is-on bool out
-
status pin telling if the spindle is on
- halui.spindle.N.reverse bool in
-
a rising edge on this pin makes the spindle go reverse
- halui.spindle.N.runs-backward bool out
-
status pin telling if the spindle is running backward
- halui.spindle.N.runs-forward bool out
-
status pin telling if the spindle is running forward
- halui.spindle.N.start bool in
-
a rising edge on this pin starts the spindle
- halui.spindle.N.stop bool in
-
a rising edge on this pin stops the spindle
Spindle Override
- (SO = spindle override. FO = feed override)
- halui.spindle.N.override.count-enable bool in (default: TRUE)
-
When TRUE, modify spindle override when counts changes.
- halui.spindle.N.override.counts sint in
-
counts X scale = spindle override percentage
- halui.spindle.N.override.decrease bool in
-
pin for decreasing the SO (-=scale)
- halui.spindle.N.override.direct-value bool in
-
pin to enable direct spindle override value input
- halui.spindle.N.override.increase bool in
-
pin for increasing the SO (+=scale)
- halui.spindle.N.override.reset bool in
-
pin for resetting the scale SO value (scale=1.0)
- halui.spindle.N.override.scale real in
-
pin for setting the scale of counts for SO
- halui.spindle.N.override.value real out
-
current FO value
Program
- halui.program.block-delete.is-on bool out
-
status pin telling that block delete is on
- halui.program.block-delete.off bool in
-
pin for requesting that block delete is off
- halui.program.block-delete.on bool in
-
pin for requesting that block delete is on
- halui.program.is-idle bool out
-
status pin telling that no program is running
- halui.program.is-paused bool out
-
status pin telling that a program is paused
- halui.program.is-running bool out
-
status pin telling that a program is running
- halui.program.optional-stop.is-on bool out
-
status pin telling that the optional stop is on
- halui.program.optional-stop.off bool in
-
pin requesting that the optional stop is off
- halui.program.optional-stop.on bool in
-
pin requesting that the optional stop is on
- halui.program.pause bool in
-
pin for pausing a program
- halui.program.resume bool in
-
pin for resuming a program
- halui.program.run bool in
-
pin for running a program
- halui.program.step bool in
-
pin for stepping in a program
- halui.program.stop bool in
-
pin for stopping a program (note: this pin does the same thing as halui.abort)
Mode
- halui.mode.auto bool in
-
pin for requesting auto mode
- halui.mode.is-auto bool out
-
pin for auto mode is on
- halui.mode.is-joint bool out
-
pin showing joint by joint jog mode is on
- halui.mode.is-manual bool out
-
pin for manual mode is on
- halui.mode.is-mdi bool out
-
pin for MDI mode is on
- halui.mode.is-teleop bool out
-
pin showing coordinated jog mode is on
- halui.mode.joint bool in
-
pin for requesting joint by joint jog mode
- halui.mode.manual bool in
-
pin for requesting manual mode
- halui.mode.mdi bool in
-
pin for requesting MDI mode
- halui.mode.teleop bool in
-
pin for requesting coordinated jog mode
MDI (optional)
- halui.mdi-command-XX bool in
-
halui looks for INI variables named [HALUI]MDI_COMMAND, and exports a pin for each command it finds. When the pin is driven TRUE, halui runs the specified MDI command. XX is a two digit number starting at 00. If no [HALUI]MDI_COMMAND variables are set in the INI file, no halui.mdi-command-XX pins will be exported by halui.
Mist coolant
- halui.mist.is-on bool out
-
pin for mist is on
- halui.mist.off bool in
-
pin for stopping mist
- halui.mist.on bool in
-
pin for starting mist
Max-velocity
- halui.max-velocity.count-enable bool in (default: TRUE)
-
When True, modify max velocity when halui.max-velocity.counts changes.
- halui.max-velocity.counts sint in
-
When .count-enable is True, halui changes the max velocity in response to changes to this pin. It’s usually connected to an MPG encoder on an operator’s panel or jog pendant. When .count-enable is False, halui ignores this pin.
- halui.max-velocity.direct-value bool in
-
When this pin is True, halui commands the max velocity directly to (.counts * .scale). When this pin is False, halui commands the max velocity in a relative way: change max velocity by an amount equal to (change in .counts * .scale).
- halui.max-velocity.increase bool in
-
A positive edge (a False to True transition) on this pin increases the max velocity by the value of the .scale pin. (Note that halui always responds to this pin, independent of the .count-enable pin.)
- halui.max-velocity.decrease bool in
-
A positive edge (a False to True transition) on this pin decreases the max velocity by the value of the .scale pin. (Note that halui always responds to this pin, independent of the .count-enable pin.)
- halui.max-velocity.scale real in
-
This pin controls the scale of changes to the max velocity. Each unit change in .counts, and each positive edge on .increase and .decrease, changes the max velocity by .scale. The units of the .scale pin are machine-units per second.
- halui.max-velocity.value real out
-
Current value for maximum velocity, in machine-units per second.
Machine
- halui.machine.units-per-mm real out
-
pin for machine units-per-mm (inch:1/25.4, mm:1) according to INI file setting: [TRAJ] LINEAR_UNITS
- halui.machine.is-on bool out
-
pin for machine is On/Off
- halui.machine.off bool in
-
pin for setting machine Off
- halui.machine.on bool in
-
pin for setting machine On
Joint
N = joint number (0 … num_joints-1)
- halui.joint.N.select bool in
-
pin for selecting joint N
- halui.joint.N.is-selected bool out
-
status pin that joint N is selected
- halui.joint.N.has-fault bool out
-
status pin telling that joint N has a fault
- halui.joint.N.home bool in
-
pin for homing joint N
- halui.joint.N.is-homed bool out
-
status pin telling that joint N is homed
- halui.joint.N.on-hard-max-limit bool out
-
status pin telling that joint N is on the positive hardware limit
- halui.joint.N.on-hard-min-limit bool out
-
status pin telling that joint N is on the negative hardware limit
- halui.joint.N.on-soft-max-limit bool out
-
status pin telling that joint N is on the positive software limit
- halui.joint.N.on-soft-min-limit bool out
-
status pin telling that joint N is on the negative software limit
- halui.joint.N.override-limits bool out
-
status pin telling that joint N's limits are temporarily overridden
- halui.joint.N.unhome bool in
-
pin for unhoming joint N
- halui.joint.selected uint out
-
selected joint number (0 … num_joints-1)
- halui.joint.selected.has-fault bool out
-
status pin selected joint is faulted
- halui.joint.selected.home bool in
-
pin for homing the selected joint
- halui.joint.selected.is-homed bool out
-
status pin telling that the selected joint is homed
- halui.joint.selected.on-hard-max-limit bool out
-
status pin telling that the selected joint is on the positive hardware limit
- halui.joint.selected.on-hard-min-limit bool out
-
status pin telling that the selected joint is on the negative hardware limit
- halui.joint.selected.on-soft-max-limit bool out
-
status pin telling that the selected joint is on the positive software limit
- halui.joint.selected.on-soft-min-limit bool out
-
status pin telling that the selected joint is on the negative software limit
- halui.joint.selected.override-limits bool out
-
status pin telling that the selected joint’s limits are temporarily overridden
- halui.joint.selected.unhome bool in
-
pin for unhoming the selected joint
Joint jogging (N = joint number (0 … num_joints-1))
Joint jogging is possible in unhomed state except for joints having a negative HOME_SEQUENCE value. See Section "Homing Configuration" of the documentation.
- halui.joint.jog-deadband real in
-
pin for setting jog analog deadband (jog analog inputs smaller/slower than this (in absolute value) are ignored).
- halui.joint.jog-speed real in
-
pin for setting jog speed for plus/minus jogging.
- halui.joint.N.analog real in
-
pin for jogging the joint N using a real value (e.g. joystick). The value, typically set between 0.0 and ±1.0, is used as a jog-speed multiplier.
- halui.joint.N.increment real in
-
pin for setting the jog increment for joint N when using increment-plus/minus
- halui.joint.N.increment-minus bool in
-
a rising edge will will make joint N jog in the negative direction by the increment amount
- halui.joint.N.increment-plus bool in
-
a rising edge will will make joint N jog in the positive direction by the increment amount
- halui.joint.N.minus bool in
-
pin for jogging joint N in negative direction at the halui.joint.jog-speed velocity
- halui.joint.N.plus bool in
-
pin for jogging joint N in positive direction at the halui.joint.jog-speed velocity
- halui.joint.selected.increment real in
-
pin for setting the jog increment for the selected joint when using increment-plus/minus
- halui.joint.selected.increment-minus bool in
-
a rising edge will will make the selected joint jog in the negative direction by the increment amount
- halui.joint.selected.increment-plus bool in
-
a rising edge will will make the selected joint jog in the positive direction by the increment amount
- halui.joint.selected.minus bool in
-
pin for jogging the selected joint in negative direction at the halui.joint.jog-speed velocity
- halui.joint.selected.plus bool in
-
pin for jogging the selected joint bit in in positive direction at the halui.joint.jog-speed velocity
Axis
L = axis letter (xyzabcuvw)
- halui.axis.L.select bool in
-
pin for selecting axis by letter
- halui.axis.L.is-selected bool out
-
status pin that axis L is selected
- halui.axis.L.pos-commanded real out
-
Commanded axis position in machine coordinates
- halui.axis.L.pos-feedback real out
-
Feedback axis position in machine coordinates
- halui.axis.L.pos-relative real out
-
Commanded axis position in relative coordinates
Axis Jogging
This is only possible in homed state.
L = axis letter (xyzabcuvw)
- halui.axis.jog-deadband real in
-
pin for setting jog analog deadband (jog analog inputs smaller/slower than this (in absolute value) are ignored)
- halui.axis.jog-speed real in
-
pin for setting jog speed for plus/minus jogging.
- halui.axis.L.analog real in
-
pin for jogging the axis L using a real value (e.g. joystick). The value, typically set between 0.0 and ±1.0, is used as a jog-speed multiplier.
- halui.axis.L.increment real in
-
pin for setting the jog increment for axis L when using increment-plus/minus
- halui.axis.L.increment-minus bool in
-
a rising edge will will make axis L jog in the negative direction by the increment amount
- halui.axis.L.increment-plus bool in
-
a rising edge will will make axis L jog in the positive direction by the increment amount
- halui.axis.L.minus bool in
-
pin for jogging axis L in negative direction at the halui.axis.jog-speed velocity
- halui.axis.L.plus bool in
-
pin for jogging axis L in positive direction at the halui.axis.jog-speed velocity
- halui.axis.selected uint out
-
selected axis (by index: 0:x 1:y 2:z 3:a 4:b 5:cr 6:u 7:v 8:w)
- halui.axis.selected.increment real in
-
pin for setting the jog increment for the selected axis when using increment-plus/minus
- halui.axis.selected.increment-minus bool in
-
a rising edge will will make the selected axis jog in the negative direction by the increment amount
- halui.axis.selected.increment-plus bool in
-
a rising edge will will make the selected axis jog in the positive direction by the increment amount
- halui.axis.selected.minus bool in
-
pin for jogging the selected axis in negative direction at the halui.axis.jog-speed velocity
- halui.axis.selected.plus bool in
-
pin for jogging the selected axis bit in in positive direction at the halui.axis.jog-speed velocity
Flood coolant
- halui.flood.is-on bool out
-
pin for flood is on
- halui.flood.off bool in
-
pin for stopping flood
- halui.flood.on bool in
-
pin for starting flood
Feed Override
- halui.feed-override.count-enable bool in (default: TRUE)
-
When TRUE, modify feed override when counts changes.
- halui.feed-override.counts sint in
-
counts X scale = feed override percentage
- halui.feed-override.decrease bool in
-
pin for decreasing the FO (-=scale)
- halui.feed-override.direct-value bool in
-
pin to enable direct value feed override input
- halui.feed-override.increase bool in
-
pin for increasing the FO (+=scale)
- halui.feed-override.reset bool in
-
pin for resetting the FO (scale=1.0)
- halui.feed-override.scale real in
-
pin for setting the scale on changing the FO
- halui.feed-override.value real out
-
current feed override value
Rapid Override
- halui.rapid-override.count-enable bool in (default: TRUE)
-
When TRUE, modify rapid override when counts changes.
- halui.rapid-override.counts sint in
-
counts X scale = rapid override percentage
- halui.rapid-override.decrease bool in
-
pin for decreasing the rapid override (-=scale)
- halui.rapid-override.direct-value bool in
-
pin to enable direct value rapid override input
- halui.rapid-override.increase bool in
-
pin for increasing the rapid override (+=scale)
- halui.rapid-override.reset bool in
-
pin for resetting the rapid override (scale=1.0)
- halui.rapid-override.scale real in
-
pin for setting the scale on changing the rapid override
- halui.rapid-override.value real out
-
current rapid override value
E-stop
- halui.estop.activate bool in
-
pin for setting E-stop (LinuxCNC internal) On
- halui.estop.is-activated bool out
-
pin for displaying E-stop state (LinuxCNC internal) On/Off
- halui.estop.reset bool in
-
pin for resetting E-stop (LinuxCNC internal) Off
Homing
- halui.home-all bool in
-
pin for requesting home-all (only available when a valid homing sequence is specified)
SEE ALSO
BUGS
None known at this time.
AUTHOR
Written by Alex Joni, as part of the LinuxCNC project. Updated by John Thornton
REPORTING BUGS
Report bugs at https://github.com/LinuxCNC/linuxcnc/issues
COPYRIGHT
Copyright © 2006 Alex Joni.
This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.