diff --git a/docs/src/code/code-notes.adoc b/docs/src/code/code-notes.adoc index 3874fd37002..d0c85851c79 100644 --- a/docs/src/code/code-notes.adoc +++ b/docs/src/code/code-notes.adoc @@ -1269,7 +1269,7 @@ emcioStatus.tool.pocketPrepped:: emcioStatus.tool.toolInSpindle:: Tool number of the tool currently installed in the spindle. - Exported on the HAL pin +iocontrol.0.tool-number+ (s32). + Exported on the HAL pin +iocontrol.0.tool-number+ (sint). emcioStatus.tool.toolTable[]:: An array of +CANON_TOOL_TABLE+ structures, +CANON_POCKETS_MAX+ long. diff --git a/docs/src/common/glossary.adoc b/docs/src/common/glossary.adoc index 4dc242751c8..0d2ffe9dc89 100644 --- a/docs/src/common/glossary.adoc +++ b/docs/src/common/glossary.adoc @@ -161,7 +161,7 @@ Feedrate Override:: anything else that requires the feed rate to be "tweaked". Floating Point Number:: - A number that has a decimal point. (12.300) In HAL it is known as float. + A number that has a decimal point. (12.300) In HAL it is known as real. G-code:: (((G-code))) The generic term used to refer to the most @@ -321,7 +321,7 @@ Servo Loop:: Signed Integer:: (((Signed Integer))) A whole number that can have a positive or negative sign. - In HAL it is usually a <>, but could be also a <>. + In HAL it is a <>. Spindle:: (((spindle))) The part of a machine tool that spins @@ -364,7 +364,7 @@ Units:: Unsigned Integer:: (((Unsigned Integer))) A whole number that has no sign. - In HAL it is usually a <> but could be also a <>. + In HAL it is a <>. World Coordinates:: (((world coordinates))) This is the absolute diff --git a/docs/src/config/core-components.adoc b/docs/src/config/core-components.adoc index 9ea4b39098b..70a163aea4e 100644 --- a/docs/src/config/core-components.adoc +++ b/docs/src/config/core-components.adoc @@ -94,32 +94,32 @@ unlock_joints_mask=0x38 selects joints 3,4,5 (((motion:HAL pins))) These pins, parameters, and functions are created by the realtime 'motmod' module. -* 'motion.adaptive-feed' - (float, in) When adaptive feed is enabled with 'M52 P1' , the +* 'motion.adaptive-feed' - (real, in) When adaptive feed is enabled with 'M52 P1' , the commanded velocity is multiplied by this value. This effect is multiplicative with the NML-level feed override value and 'motion.feed-hold'. As of version 2.9 of LinuxCNC it is possible to use a negative adaptive feed value to run the G-code path in reverse. -* 'motion.analog-in-00' - (float, in) These pins (00, 01, 02, 03 or more if configured) are +* 'motion.analog-in-00' - (real, in) These pins (00, 01, 02, 03 or more if configured) are controlled by M66. -* 'motion.analog-out-00' - (float, out) These pins (00, 01, 02, 03 or more if configured) are +* 'motion.analog-out-00' - (real, out) These pins (00, 01, 02, 03 or more if configured) are controlled by M67 or M68. -* 'motion.coord-error' - (bit, out) TRUE when motion has encountered an error, such as +* 'motion.coord-error' - (bool, out) TRUE when motion has encountered an error, such as exceeding a soft limit -* 'motion.coord-mode' - (bit, out) TRUE when motion is in 'coordinated mode', as opposed to 'teleop mode' -* 'motion.current-vel' - (float, out) The current tool velocity in user units per second. -* 'motion.digital-in-00' - (bit, in) These pins (00, 01, 02, 03 or more if configured) are controlled by M62-65. -* 'motion.digital-out-00' - (bit, out) These pins (00, 01, 02, 03 or more if configured) are controlled by the 'M62-65'. -* 'motion.distance-to-go' - (float,out) The distance remaining in the current move. -* 'motion.enable' - (bit, in) If this bit is driven FALSE, motion stops, the machine is +* 'motion.coord-mode' - (bool, out) TRUE when motion is in 'coordinated mode', as opposed to 'teleop mode' +* 'motion.current-vel' - (real, out) The current tool velocity in user units per second. +* 'motion.digital-in-00' - (bool, in) These pins (00, 01, 02, 03 or more if configured) are controlled by M62-65. +* 'motion.digital-out-00' - (bool, out) These pins (00, 01, 02, 03 or more if configured) are controlled by the 'M62-65'. +* 'motion.distance-to-go' - (real, out) The distance remaining in the current move. +* 'motion.enable' - (bool, in) If this input is driven FALSE, motion stops, the machine is placed in the 'machine off' state, and a message is displayed for the - operator. For normal motion, drive this bit TRUE. -* 'motion.feed-hold' - (bit, in) When Feed Stop Control is enabled with 'M53 P1', and this - bit is TRUE, the feed rate is set to 0. -* 'motion.feed-inhibit' - (bit, in) When this bit is TRUE, the feed rate is set to 0. + operator. For normal motion, drive this input TRUE. +* 'motion.feed-hold' - (bool, in) When Feed Stop Control is enabled with 'M53 P1', and this + input is TRUE, the feed rate is set to 0. +* 'motion.feed-inhibit' - (bool, in) When this input is TRUE, the feed rate is set to 0. This will be delayed during spindle synch moves till the end of the move. -* 'motion.in-position' - (bit, out) TRUE if the machine is in position. -* 'motion.motion-enabled' - (bit, out) TRUE when in 'machine on' state. -* 'motion.motion-type' - (s32, out) These values are from src/emc/nml_intf/motion_types.h +* 'motion.in-position' - (bool, out) TRUE if the machine is in position. +* 'motion.motion-enabled' - (bool, out) TRUE when in 'machine on' state. +* 'motion.motion-type' - (sint, out) These values are from src/emc/nml_intf/motion_types.h - 0: Idle (no motion) - 1: Traverse - 2: Linear feed @@ -127,30 +127,30 @@ These pins, parameters, and functions are created by the realtime 'motmod' modul - 4: Tool change - 5: Probing - 6: Rotary axis indexing -* 'motion.on-soft-limit' - (bit, out) TRUE when the machine is on a soft limit. -* 'motion.probe-input' - (bit, in) +* 'motion.on-soft-limit' - (bool, out) TRUE when the machine is on a soft limit. +* 'motion.probe-input' - (bool, in) 'G38.n' uses the value on this pin to determine when the probe has made contact. TRUE for probe contact closed (touching), FALSE for probe contact open. -* 'motion.program-line' - (s32, out) The current program line while executing. +* 'motion.program-line' - (sint, out) The current program line while executing. Zero if not running or between lines while single stepping. -* 'motion.requested-vel' - (float, out) +* 'motion.requested-vel' - (real, out) The current requested velocity in user units per second. This value is the F-word setting from the G-code file, possibly reduced to accommodate machine velocity and acceleration limits. The value on this pin does not reflect the feed override or any other adjustments. -* 'motion.teleop-mode' - (bit, out) TRUE when motion is in 'teleop mode', as opposed to 'coordinated mode' -* 'motion.tooloffset.x ... motion.tooloffset.w' - (float, out, one per axis) shows the tool offset in effect; +* 'motion.teleop-mode' - (bool, out) TRUE when motion is in 'teleop mode', as opposed to 'coordinated mode' +* 'motion.tooloffset.x ... motion.tooloffset.w' - (real, out, one per axis) shows the tool offset in effect; it could come from the tool table ('G43' active), or it could come from the G-code ('G43.1' active) -* 'motion.on-soft-limit' - (bit, out) TRUE when the machine is on a soft limit. -* 'motion.probe-input' - (bit, in) 'G38.n' uses the value on this pin to determine when the probe has made contact. +* 'motion.on-soft-limit' - (bool, out) TRUE when the machine is on a soft limit. +* 'motion.probe-input' - (bool, in) 'G38.n' uses the value on this pin to determine when the probe has made contact. TRUE for probe contact closed (touching), FALSE for probe contact open. -* 'motion.program-line' - (s32, out) The current program line while executing. +* 'motion.program-line' - (sint, out) The current program line while executing. Zero if not running or between lines while single stepping. -* 'motion.requested-vel' - (float, out) The current requested velocity in user units per second. +* 'motion.requested-vel' - (real, out) The current requested velocity in user units per second. This value is the F-word setting from the G-code file, possibly reduced to accommodate machine velocity and acceleration limits. The value on this pin does not reflect the feed override or any other adjustments. -* 'motion.teleop-mode' - (bit, out) TRUE when motion is in 'teleop mode', as opposed to 'coordinated mode' -* 'motion.tooloffset.x ... motion.tooloffset.w' - (float, out, one per axis) shows the tool offset in effect; +* 'motion.teleop-mode' - (bool, out) TRUE when motion is in 'teleop mode', as opposed to 'coordinated mode' +* 'motion.tooloffset.x ... motion.tooloffset.w' - (real, out, one per axis) shows the tool offset in effect; it could come from the tool table ('G43' active), or it could come from the G-code ('G43.1' active) === Parameters @@ -158,19 +158,19 @@ These pins, parameters, and functions are created by the realtime 'motmod' modul Many of these parameters serve as debugging aids, and are subject to change or removal at any time. -* 'motion-command-handler.time' - (s32, RO) -* 'motion-command-handler.tmax' - (s32, RW) -* 'motion-controller.time' - (s32, RO) -* 'motion-controller.tmax' - (s32, RW) -* 'motion.debug-bit-0' - (bit, RO) This is used for debugging purposes. -* 'motion.debug-bit-1' - (bit, RO) This is used for debugging purposes. -* 'motion.debug-float-0' - (float, RO) This is used for debugging purposes. -* 'motion.debug-float-1' - (float, RO) This is used for debugging purposes. -* 'motion.debug-float-2' - (float, RO) This is used for debugging purposes. -* 'motion.debug-float-3' - (float, RO) This is used for debugging purposes. -* 'motion.debug-s32-0' - (s32, RO) This is used for debugging purposes. -* 'motion.debug-s32-1' - (s32, RO) This is used for debugging purposes. -* 'motion.servo.last-period' - (u32, RO) The time in ns between invocations of the servo thread. +* 'motion-command-handler.time' - (sint, RO) +* 'motion-command-handler.tmax' - (sint, RW) +* 'motion-controller.time' - (sint, RO) +* 'motion-controller.tmax' - (sint, RW) +* 'motion.debug-bool-0' - (bool, RO) This is used for debugging purposes. +* 'motion.debug-bool-1' - (bool, RO) This is used for debugging purposes. +* 'motion.debug-real-0' - (real, RO) This is used for debugging purposes. +* 'motion.debug-real-1' - (real, RO) This is used for debugging purposes. +* 'motion.debug-real-2' - (real, RO) This is used for debugging purposes. +* 'motion.debug-real-3' - (real, RO) This is used for debugging purposes. +* 'motion.debug-sint-0' - (sint, RO) This is used for debugging purposes. +* 'motion.debug-sint-1' - (sint, RO) This is used for debugging purposes. +* 'motion.servo.last-period' - (uint, RO) The time in ns between invocations of the servo thread. This number can be used to determine whether the realtime motion controller is meeting its timing constraints === Functions @@ -192,7 +192,7 @@ The __N__ (integer between 0 and 7) substitutes the spindle number. (((spindle (HAL pins)))) -* 'spindle.__N__.at-speed' - (bit, in) +* 'spindle.__N__.at-speed' - (bool, in) Motion will pause until this pin is TRUE, under the following conditions: ** before the first feed move after each spindle start or speed change; ** before the start of every chain of spindle-synchronized moves; @@ -204,43 +204,43 @@ The __N__ (integer between 0 and 7) substitutes the spindle number. Many VFDs have an 'at speed' output. Otherwise, it is easy to generate this signal with the 'HAL near' component, by comparing requested and actual spindle speeds. -* 'spindle.__N__.brake' - (bit, out) TRUE when the spindle brake should be applied. -* 'spindle.__N__.forward' - (bit, out) TRUE when the spindle should rotate forward. -* 'spindle.__N__.index-enable' - (bit, I/O) For correct operation of spindle synchronized moves, this +* 'spindle.__N__.brake' - (bool, out) TRUE when the spindle brake should be applied. +* 'spindle.__N__.forward' - (bool, out) TRUE when the spindle should rotate forward. +* 'spindle.__N__.index-enable' - (bool, I/O) For correct operation of spindle synchronized moves, this pin must be hooked to the index-enable pin of the spindle encoder. -* 'spindle.__N__.inhibit' - (bit, in) When this bit is TRUE, the spindle speed is set to 0. -* 'spindle.__N__.on' - (bit, out) TRUE when spindle should rotate. -* 'spindle.__N__.reverse' - (bit, out) TRUE when the spindle should rotate backward -* 'spindle.__N__.revs' - (float, in) For correct operation of spindle synchronized moves, this +* 'spindle.__N__.inhibit' - (bool, in) When this input is TRUE, the spindle speed is set to 0. +* 'spindle.__N__.on' - (bool, out) TRUE when spindle should rotate. +* 'spindle.__N__.reverse' - (bool, out) TRUE when the spindle should rotate backward +* 'spindle.__N__.revs' - (real, in) For correct operation of spindle synchronized moves, this signal must be hooked to the position pin of the spindle encoder. The spindle encoder position should be scaled such that spindle-revs increases by 1.0 for each rotation of the spindle in the clockwise ('M3') direction. -* 'spindle.__N__.speed-in' - (float, in) Feedback of actual spindle speed in rotations per second. +* 'spindle.__N__.speed-in' - (real, in) Feedback of actual spindle speed in rotations per second. This is used by feed-per-revolution motion ('G95'). If your spindle encoder driver does not have a velocity output, you can generate a suitable one by sending the spindle position through a 'ddt' component. If you do not have a spindle encoder, you can loop back 'spindle.__N__.speed-out-rps'. -* 'spindle.__N__.speed-out' - (float, out) Commanded spindle speed in rotations per minute. Positive +* 'spindle.__N__.speed-out' - (real, out) Commanded spindle speed in rotations per minute. Positive for spindle forward ('M3'), negative for spindle reverse ('M4'). -* 'spindle.__N__.speed-out-abs' - (float, out) Commanded spindle speed in rotations per minute. This will +* 'spindle.__N__.speed-out-abs' - (real, out) Commanded spindle speed in rotations per minute. This will always be a positive number. -* 'spindle.__N__.speed-out-rps' - (float, out) Commanded spindle speed in rotations per second. Positive +* 'spindle.__N__.speed-out-rps' - (real, out) Commanded spindle speed in rotations per second. Positive for spindle forward ('M3'), negative for spindle reverse ('M4'). -* 'spindle.__N__.speed-out-rps-abs' - (float, out) Commanded spindle speed in rotations per second. This will +* 'spindle.__N__.speed-out-rps-abs' - (real, out) Commanded spindle speed in rotations per second. This will always be a positive number. -* 'spindle.__N__.orient-angle' - (float,out) Desired spindle orientation for M19. Value of the +* 'spindle.__N__.orient-angle' - (real, out) Desired spindle orientation for M19. Value of the M19 R word parameter plus the value of the [RS274NGC]ORIENT_OFFSET INI parameter. -* 'spindle.__N__.orient-mode' - (s32,out) Desired spindle rotation mode M19. Default 0. -* 'spindle.__N__.orient' - (out,bit) +* 'spindle.__N__.orient-mode' - (sint, out) Desired spindle rotation mode M19. Default 0. +* 'spindle.__N__.orient' - (bool, out) Indicates start of spindle orient cycle. Set by M19. Cleared by any of M3, M4, or M5. If spindle-orient-fault is not zero during spindle-orient true, the M19 command fails with an error message. -* 'spindle.__N__.is-oriented' - (in, bit) Acknowledge pin for spindle-orient. Completes orient cycle. +* 'spindle.__N__.is-oriented' - (bool, in) Acknowledge pin for spindle-orient. Completes orient cycle. If spindle-orient was true when spindle-is-oriented was asserted, the spindle-orient pin is cleared and the spindle-locked pin is asserted. Also, the spindle-brake pin is asserted. -* 'spindle.__N__.orient-fault' - (s32, in) Fault code input for orient cycle. Any value other +* 'spindle.__N__.orient-fault' - (sint, in) Fault code input for orient cycle. Any value other than zero will cause the orient cycle to abort. -* 'spindle.__N__.lock' - (bit, out) Spindle orient complete pin. Cleared by any of M3, M4, or M5. +* 'spindle.__N__.lock' - (bool, out) Spindle orient complete pin. Cleared by any of M3, M4, or M5. .HAL pin usage for M19 orient spindle Conceptually the spindle is in one of the following modes: @@ -302,17 +302,17 @@ iocontrol's HAL pins are turned on and off in non-realtime context. If you have (((iocontrol (HAL pins)))) -* 'iocontrol.0.coolant-flood' (bit, out) TRUE when flood coolant is requested. -* 'iocontrol.0.coolant-mist' (bit, out) TRUE when mist coolant is requested. -* 'iocontrol.0.emc-enable-in' (bit, in) Should be driven FALSE when an external E-Stop condition exists. -* 'iocontrol.0.tool-change' (bit, out) TRUE when a tool change is requested. -* 'iocontrol.0.tool-changed' (bit, in) Should be driven TRUE when a tool change is completed. -* 'iocontrol.0.tool-number' (s32, out) The current tool number. -* 'iocontrol.0.tool-prep-number' (s32, out) The number of the next tool, from the RS274NGC T-word. -* 'iocontrol.0.tool-prepare' (bit, out) TRUE when a tool prepare is requested. -* 'iocontrol.0.tool-prepared' (bit, in) Should be driven TRUE when a tool prepare is completed. -* 'iocontrol.0.user-enable-out' (bit, out) FALSE when an internal E-Stop condition exists. -* 'iocontrol.0.user-request-enable' (bit, out) TRUE when the user has requested that E-Stop be cleared. +* 'iocontrol.0.coolant-flood' (bool, out) TRUE when flood coolant is requested. +* 'iocontrol.0.coolant-mist' (bool, out) TRUE when mist coolant is requested. +* 'iocontrol.0.emc-enable-in' (bool, in) Should be driven FALSE when an external E-Stop condition exists. +* 'iocontrol.0.tool-change' (bool, out) TRUE when a tool change is requested. +* 'iocontrol.0.tool-changed' (bool, in) Should be driven TRUE when a tool change is completed. +* 'iocontrol.0.tool-number' (sint, out) The current tool number. +* 'iocontrol.0.tool-prep-number' (sint, out) The number of the next tool, from the RS274NGC T-word. +* 'iocontrol.0.tool-prepare' (bool, out) TRUE when a tool prepare is requested. +* 'iocontrol.0.tool-prepared' (bool, in) Should be driven TRUE when a tool prepare is completed. +* 'iocontrol.0.user-enable-out' (bool, out) FALSE when an internal E-Stop condition exists. +* 'iocontrol.0.user-request-enable' (bool, out) TRUE when the user has requested that E-Stop be cleared. == INI settings @@ -323,20 +323,20 @@ A number of INI settings are made available as HAL input pins. (((INI settings (HAL pins)))) _N_ refers to a joint number, _L_ refers to an axis letter. -* 'ini.__N__.ferror' - (float, in) [JOINT_N]FERROR -* 'ini.__N__.min_ferror' - (float, in) [JOINT_N]MIN_FERROR -* 'ini.__N__.backlash' - (float, in) [JOINT_N]BACKLASH -* 'ini.__N__.min_limit' - (float, in) [JOINT_N]MIN_LIMIT -* 'ini.__N__.max_limit' - (float, in) [JOINT_N]MAX_LIMIT -* 'ini.__N__.max_velocity' - (float, in) [JOINT_N]MAX_VELOCITY -* 'ini.__N__.max_acceleration' - (float, in) [JOINT_N]MAX_ACCELERATION -* 'ini.__N__.home' - (float, in) [JOINT_N]HOME -* 'ini.__N__.home_offset' - (float, in) [JOINT_N]HOME_OFFSET -* 'ini.__N__.home_offset' - (s32, in) [JOINT_N]HOME_SEQUENCE -* 'ini.__L__.min_limit' - (float, in) [AXIS_L]MIN_LIMIT -* 'ini.__L__.max_limit' - (float, in) [AXIS_L]MAX_LIMIT -* 'ini.__L__.max_velocity' - (float, in) [AXIS_L]MAX_VELOCITY -* 'ini.__L__.max_acceleration' - (float, in) [AXIS_L]MAX_ACCELERATION +* 'ini.__N__.ferror' - (real, in) [JOINT_N]FERROR +* 'ini.__N__.min_ferror' - (real, in) [JOINT_N]MIN_FERROR +* 'ini.__N__.backlash' - (real, in) [JOINT_N]BACKLASH +* 'ini.__N__.min_limit' - (real, in) [JOINT_N]MIN_LIMIT +* 'ini.__N__.max_limit' - (real, in) [JOINT_N]MAX_LIMIT +* 'ini.__N__.max_velocity' - (real, in) [JOINT_N]MAX_VELOCITY +* 'ini.__N__.max_acceleration' - (real, in) [JOINT_N]MAX_ACCELERATION +* 'ini.__N__.home' - (real, in) [JOINT_N]HOME +* 'ini.__N__.home_offset' - (real, in) [JOINT_N]HOME_OFFSET +* 'ini.__N__.home_offset' - (sint, in) [JOINT_N]HOME_SEQUENCE +* 'ini.__L__.min_limit' - (real, in) [AXIS_L]MIN_LIMIT +* 'ini.__L__.max_limit' - (real, in) [AXIS_L]MAX_LIMIT +* 'ini.__L__.max_velocity' - (real, in) [AXIS_L]MAX_VELOCITY +* 'ini.__L__.max_acceleration' - (real, in) [AXIS_L]MAX_ACCELERATION [NOTE] The per-axis min_limit and max_limit pins are honored continuously after homing. @@ -348,32 +348,32 @@ sampled when in a program is running (auto mode) or in MDI mode. Consequently, changing the pin values when a program is running will not have effect until the program is stopped and the motion_state is again free. -* 'ini.traj_arc_blend_enable' - (bit, in) [TRAJ]ARC_BLEND_ENABLE -* 'ini.traj_arc_blend_fallback_enable' - (bit, in) [TRAJ]ARC_BLEND_FALLBACK_ENABLE -* 'ini.traj_arc_blend_gap_cycles' - (float, in) [TRAJ]ARC_BLEND_GAP_CYCLES -* 'ini.traj_arc_blend_optimization_depth' - (float, in) [TRAJ]ARC_BLEND_OPTIMIZATION_DEPTH -* 'ini.traj_arc_blend_ramp_freq' - (float, in) [TRAJ]ARC_BLEND_RAMP_FREQ +* 'ini.traj_arc_blend_enable' - (bool, in) [TRAJ]ARC_BLEND_ENABLE +* 'ini.traj_arc_blend_fallback_enable' - (bool, in) [TRAJ]ARC_BLEND_FALLBACK_ENABLE +* 'ini.traj_arc_blend_gap_cycles' - (real, in) [TRAJ]ARC_BLEND_GAP_CYCLES +* 'ini.traj_arc_blend_optimization_depth' - (real, in) [TRAJ]ARC_BLEND_OPTIMIZATION_DEPTH +* 'ini.traj_arc_blend_ramp_freq' - (real, in) [TRAJ]ARC_BLEND_RAMP_FREQ [NOTE] The traj_arc_blend pins are sampled continuously but changing pin values while a program is running may not have immediate effect due to queueing of commands. -* 'ini.traj_default_acceleration' - (float, in) [TRAJ]DEFAULT_ACCELERATION -* 'ini.traj_default_velocity' - (float, in) [TRAJ]DEFAULT_VELOCITY -* 'ini.traj_max_acceleration' - (float, in) [TRAJ]MAX_ACCELERATION +* 'ini.traj_default_acceleration' - (real, in) [TRAJ]DEFAULT_ACCELERATION +* 'ini.traj_default_velocity' - (real, in) [TRAJ]DEFAULT_VELOCITY +* 'ini.traj_max_acceleration' - (real, in) [TRAJ]MAX_ACCELERATION S-curve trajectory planning pins (sampled continuously, can be changed at runtime): -* 'ini.traj_planner_type' - (s32, in) [TRAJ]PLANNER_TYPE -* 'ini.traj_max_jerk' - (float, in) [TRAJ]MAX_LINEAR_JERK +* 'ini.traj_planner_type' - (sint, in) [TRAJ]PLANNER_TYPE +* 'ini.traj_max_jerk' - (real, in) [TRAJ]MAX_LINEAR_JERK Per-axis jerk limit pins (where _L_ is x, y, z, a, b, c, u, v, or w): -* 'ini._L_.max_jerk' - (float, in) [AXIS__L_]MAX_JERK +* 'ini._L_.max_jerk' - (real, in) [AXIS__L_]MAX_JERK Per-joint jerk limit pins (where _N_ is the joint number 0-8): -* 'ini._N_.max_jerk' - (float, in) [JOINT__N_]MAX_JERK +* 'ini._N_.max_jerk' - (real, in) [JOINT__N_]MAX_JERK // vim: set syntax=asciidoc: diff --git a/docs/src/config/ini-homing.adoc b/docs/src/config/ini-homing.adoc index 2a4d57ce7c6..623769ebf85 100644 --- a/docs/src/config/ini-homing.adoc +++ b/docs/src/config/ini-homing.adoc @@ -382,17 +382,17 @@ Example: Synced joints 0,1 using negative sequence (-1) for synchronized homing [source,hal] ---- loadrt mux2 names=home_sequence_mux -loadrt conv_float_s32 names=home_sequence_s32 +loadrt conv_real_sint names=home_sequence_sint setp home_sequence_mux.in0 -1 setp home_sequence_mux.in1 1 addf home_sequence_mux servo-thread -addf home_sequence_s32 servo-thread +addf home_sequence_sint servo-thread ... net home_seq_float <= home_sequence_mux.out -net home_seq_float => home_sequence_s32.in -net home_seq_s32 <= home_sequence_s32.out -net home_seq_s32 => ini.0.home_sequence -net home_seq_s32 => ini.1.home_sequence +net home_seq_float => home_sequence_sint.in +net home_seq_sint <= home_sequence_sint.out +net home_seq_sint => ini.0.home_sequence +net home_seq_sint => ini.1.home_sequence ... # allow_jjog: pin created by a virtual panel or hardware switch net hsequence_select <= allow_jjog diff --git a/docs/src/config/mtconnect.adoc b/docs/src/config/mtconnect.adoc index d6437b82825..5ebe10ba0fe 100644 --- a/docs/src/config/mtconnect.adoc +++ b/docs/src/config/mtconnect.adoc @@ -64,10 +64,10 @@ curl http://localhost:5000/assets Loaded from a HAL file, the component exposes pins you can link: -* `mtconnect-agent.enable` (bit, in) - gate polling and publishing. -* `mtconnect-agent.active` (bit, out) - TRUE while polling and serving. -* `mtconnect-agent.connected` (bit, out) - TRUE while the MQTT broker link is up. -* `mtconnect-agent.heartbeat` (u32, out) - increments each poll. +* `mtconnect-agent.enable` (bool, in) - gate polling and publishing. +* `mtconnect-agent.active` (bool, out) - TRUE while polling and serving. +* `mtconnect-agent.connected` (bool, out) - TRUE while the MQTT broker link is up. +* `mtconnect-agent.heartbeat` (uint, out) - increments each poll. == Exposing custom HAL pins diff --git a/docs/src/config/python-hal-interface.adoc b/docs/src/config/python-hal-interface.adoc index 00ec2cf878e..132a6cc6b7d 100644 --- a/docs/src/config/python-hal-interface.adoc +++ b/docs/src/config/python-hal-interface.adoc @@ -55,10 +55,6 @@ The old defined constants are still supported for backwards compatibility. .Example: [source,python] ---- -# Old (deprecated) style: -comp.newpin("in-a", hal.HAL_FLOAT, hal.HAL_IN) - -# New style: comp.newpin("in-a", hal.Type.REAL, hal.Dir.IN) ---- @@ -71,22 +67,22 @@ The `hal.Type` enum is used to specify the type of pin, parameter and signal: * `hal.Type.UINT` - An unsigned quantity with range 0...+2^64^-1 * `hal.Type.REAL` - A floating point quantity of range ±1.80×10^308^ * `hal.Type.PORT` - An opaque quantity representing a communication channel (pins only) -* `hal.Type.S32` - A signed quantity with range -2^31^...+2^31^-1 (see notes below) -* `hal.Type.U32` - An unsigned quantity with range 0...+2^32^-1 (see notes below) There are aliases in the `hal.Type` enum for all types with the `HAL_` prefix (e.g. `hal.Type.HAL_BOOL`, etc.). [NOTE] ==== -The constants previously used (`hal.HAL_BIT`, `hal.HAL_FLOAT`, etc.) are still available. +The constants previously used (`hal.HAL_BIT`, `hal.HAL_FLOAT`, etc.) are deprecated and emit a warning. You should upgrade your code to use the enumerated types with the new names instead. -==== -[IMPORTANT] -==== -The 32-bit types will soon be replaced by 64-bit types. -The names will remain for some time, but they will map to the larger type automatically. -The `S32` and `U32` names will then no longer be unique and the range will be larger. +[source,python] +---- +# Old (deprecated) style: +comp.newpin("in-a", hal.HAL_FLOAT, hal.HAL_IN) + +# New style: +comp.newpin("in-a", hal.Type.REAL, hal.Dir.IN) +---- ==== ==== HAL direction @@ -104,13 +100,16 @@ Also the direction enums are available with the `HAL_` prefix (like `hal.Dir.HAL ==== Old style HAL constants (deprecated) -Old style constants (deprecated): -`hal.HAL_BIT`, `hal.HAL_S32`, `hal.HAL_U32`, `hal.HAL_S64`, `hal.HAL_U64`, `hal.HAL_FLOAT`, `hal.HAL_PORT`. +Old style constants (deprecated, please use `hal.Type.XXXX`): +`hal.HAL_BOOL`, `hal.HAL_SINT`, `hal.HAL_UINT`, `hal.HAL_REAL`, `hal.HAL_PORT`. + +Deprecated constants (replaced with new names, please use `hal.Type.XXXX`): +`hal.HAL_BIT`, `hal.HAL_S64`, `hal.HAL_U64`, `hal.HAL_FLOAT`. -Old style deprecated pin direction constants (deprecated): +Old style deprecated pin direction constants (deprecated, please use `hal.Dir.YYY`): `hal.HAL_IN`, `hal.HAL_OUT`, `hal.HAL_IO`. -Old style deprecated parameter access constants (deprecated): +Old style deprecated parameter access constants (deprecated, please use `hal.Dir.YYY`): `hal.HAL_RO`, `hal.HAL_RW`. [[halconstantsmsg]] @@ -271,8 +270,8 @@ Textual representations are case insensitive. .Example: [source,python] ---- -hal.set_p("mycomp.0.bit", True) -hal.set_p("mycomp.0.float", 99.99) +hal.set_p("mycomp.0.bool", True) +hal.set_p("mycomp.0.real", 99.99) ---- hal.set_s(_name_:string, _value_:mixed):: @@ -429,12 +428,10 @@ Each data sample may contain up to twenty (20) values. The type of the values in a sample must be configured and specified in a type string. anchor:type-string[]The type string consists of the following characters (case insensitive): -* `b` - Boolean -* `s` - Signed 32-bit -* `u` - Unsigned 32-bit -* `l` - Signed 64-bit -* `k` - Unsigned 64-bit -* `f` - Floating point (real) +* `b` - Boolean (bool) +* `s`, `l` - Signed 64-bit (sint) +* `u`, `k` - Unsigned 64-bit (uint) +* `f`, `r` - Floating point (real) Two components are available, 'streamer' and 'sampler'. The 'streamer' component writes a set of pins from non-real-time data pushed into a stream. @@ -576,7 +573,7 @@ result = hal.query.pin("my.pin.name") result = { "haltype" : "pin", "name" : "my.pin.name", - "type" : hal.Type., + "type" : hal.Type., "dir" : hal.Dir., "value" : , "alias" : "alias.name"|None, @@ -597,7 +594,7 @@ result = hal.query.param("my.param.name") result = { "haltype" : "parameter", "name" : "my.param.name", - "type" : hal.Type., + "type" : hal.Type., "dir" : hal.Dir., "value" : , "alias" : "alias.name"|None, @@ -617,7 +614,7 @@ result = hal.query.signal("my.signal.name") result = { "haltype" : "signal", "name" : "my.signal.name", - "type" : hal.Type., + "type" : hal.Type., "value" : , "writers" : , "readers" : , diff --git a/docs/src/drivers/gm.adoc b/docs/src/drivers/gm.adoc index a2ffc520185..abc75a918a8 100644 --- a/docs/src/drivers/gm.adoc +++ b/docs/src/drivers/gm.adoc @@ -93,9 +93,9 @@ gm..read [width="80%",options="header",cols="<3,^2,<6"] |=== | Pins | Type and direction | Pin description -m| .in-_<0-7>_ | (bit, Out) | Input pin -m| .in-not-_<0-7>_ | (bit, Out) | Negated input pin -m| .out-_<0-7>_ | (bit, In) | Output pin. Used only when GPIO is set to output. +m| .in-_<0-7>_ | (bool, Out) | Input pin +m| .in-not-_<0-7>_ | (bool, Out) | Negated input pin +m| .out-_<0-7>_ | (bool, In) | Output pin. Used only when GPIO is set to output. |=== === Parameters @@ -104,8 +104,8 @@ m| .out-_<0-7>_ | (bit, In) | Output pin. Used only when GPIO is set to outp [width="80%",options="header",cols="<3,^2,<6"] |=== | Pins | Type and direction | Parameter description -m| .is-out-_<0-7>_ | (bit, R/W) | When True, the corresponding GPIO is set to totem-pole output, other wise set to high impedance input. -m| .invert-out-_<0-7>_ | (bit, R/W) | When True, pin value will be inverted. Used when pin is configured as output. +m| .is-out-_<0-7>_ | (bool, R/W) | When True, the corresponding GPIO is set to totem-pole output, other wise set to high impedance input. +m| .invert-out-_<0-7>_ | (bool, R/W) | When True, pin value will be inverted. Used when pin is configured as output. |=== == Axis connectors @@ -176,14 +176,14 @@ gm..read [width="80%",options="header",cols="<3,^2,<6"] |=== | Pins | Type and direction | Pin description -m| .reset | (bit, In) | When True, resets counts and position to zero. -m| .rawcounts | (s32, Out) | The raw count is the counts, but unaffected by reset or the index pulse. -m| .counts | (s32, Out) | Position in encoder counts. -m| .position | (float, Out) | Position in scaled units (=.counts/.position-scale). -m| .index-enabled | (bit, IO) | +m| .reset | (bool, In) | When True, resets counts and position to zero. +m| .rawcounts | (sint, Out) | The raw count is the counts, but unaffected by reset or the index pulse. +m| .counts | (sint, Out) | Position in encoder counts. +m| .position | (real, Out) | Position in scaled units (=.counts/.position-scale). +m| .index-enabled | (bool, IO) | When True, counts and position are rounded or reset (depends on index-mode) on next rising edge of channel-I. Every time position is reset because of Index, the `index-enabled` pin is set to 0 and remains 0 until connected HAL pin does not set it. -m| .velocity | (float, Out) | +m| .velocity | (real, Out) | Velocity in scaled units per second. GM encoder uses high frequency hardware timer to measure time between encoder pulses in order to calculate velocity. It greatly reduces quantization noise as compared to simply differentiating the position output. @@ -194,28 +194,28 @@ When the measured velocity is below min-speed-estimate, the velocity output is 0 [width="80%",options="header",cols="<3,^2,<6"] |=== | Parameters | Type and Read/Write | Parameter description -m| .counter-mode | (bit, R/W) | +m| .counter-mode | (bool, R/W) | When True, the counter counts each rising edge of the channel-A input to the direction determined by channel-B. This is useful for counting the output of a single channel (non-quadrature) or step/dir signal sensor. When false, it counts in quadrature mode. -m| .index-mode | (bit, R/W) | +m| .index-mode | (bool, R/W) | When True and .index-enabled is also true, .counts and .position are rounded (based on .counts-per-rev) at rising edge of channel-I. This is useful to correct few pulses error caused by noise. In round mode, it is essential to set .counts-per-rev parameter correctly. When .index-mode is False and .index-enabled is true, .counts and .position are reset at channel-I pulse. -m| .counts-per-rev | (s32, R/V) | +m| .counts-per-rev | (sint, R/V) | Determine how many counts are between two index pulses. It is used only in round mode, so when both .index-enabled and .index-mode parameters are True. GM encoder process encoder signal in 4x mode, so for example in case of a 500 CPR encoder it should be set to 2000. This parameter can be easily measured by setting .index-enabled True and .index-mode False (so that .counts resets at channel-I pulse), than move axis by hand and see the maximum magnitude of .counts pin in halmeter. -m| .index-invert | (bit, R/W) | +m| .index-invert | (bool, R/W) | When True, channel-I event (reset or round) occur on falling edge of channel-I signal, otherwise on rising edge. -m| .min-speed-estimate | (float, R/W) | +m| .min-speed-estimate | (real, R/W) | Determine the minimum measured velocity magnitude at which .velocity will be set as nonzero. Setting this parameter too low will cause it to take a long time for velocity to go to zero after encoder pulses have stopped arriving. -m| .position-scale | (float, R/W) | +m| .position-scale | (real, R/W) | Scale in counts per length unit. .position=.counts/.position-scale. For example, if position-scale is 2000, then 1000 counts of the encoder will produce a position of 0.5 units. |=== @@ -266,34 +266,34 @@ gm..write [width="90%",options="header",cols="<3,^2,<6"] |=== | Pins | Type and direction | Pin description -m| .enable | (bit, In) | StepGen produces pulses only when this pin is true. -m| .count-fb | (s32, Out) | Position feedback in counts unit. -m| .position-fb | (float, Out) | Position feedback in position unit. -m| .position-cmd | (float, In) | Commanded position in position units. Used in position mode only. -m| .velocity-cmd | (float, In) | Commanded velocity in position units per second. Used in velocity mode only. +m| .enable | (bool, In) | StepGen produces pulses only when this pin is true. +m| .count-fb | (sint, Out) | Position feedback in counts unit. +m| .position-fb | (real, Out) | Position feedback in position unit. +m| .position-cmd | (real, In) | Commanded position in position units. Used in position mode only. +m| .velocity-cmd | (real, In) | Commanded velocity in position units per second. Used in velocity mode only. |=== .StepGen module parameters [width="90%",options="header",cols="<3,^2,<6"] |=== | Parameters | Type and Read/Write | Parameter description -m| .step-type | (u32, R/W) | When 0, module produces Step/Dir signal. When 1, it +m| .step-type | (uint, R/W) | When 0, module produces Step/Dir signal. When 1, it produces Up/Down step signals. And when it is 2, it produces quadrature output signals. -m| .control-type | (bit, R/W) | +m| .control-type | (bool, R/W) | When True, .velocity-cmd is used as reference and velocityvcontrol calculate pulse rate output. When False, .position-cmd is used as reference and position control calculate pulse rate output. -m| .invert-step1 | (bit, R/W) | Invert the output of channel 1 (Step signal in StepDir mode) -m| .invert-step2 | (bit, R/W) | Invert the output of channel 2 (Dir signal in StepDir mode) -m| .maxvel | (float, R/W) | +m| .invert-step1 | (bool, R/W) | Invert the output of channel 1 (Step signal in StepDir mode) +m| .invert-step2 | (bool, R/W) | Invert the output of channel 2 (Dir signal in StepDir mode) +m| .maxvel | (real, R/W) | Maximum velocity in position units per second. If it is set to 0.0, .maxvel parameter is ignored. -m| .maxaccel | (float, R/W) | +m| .maxaccel | (real, R/W) | Maximum acceleration in position units per second squared. mf it is set to 0.0, .maxaccel parameter is ignored. -m| .position-scale | (float, R/W) | Scale in steps per length unit. -m| .steplen | (u32, R/W) | Length of step pulse in nano-seconds. -m| .stepspace | (u32, R/W) | Minimum time between two step pulses in nano-seconds. -m| .dirdelay | (u32, R/W) | Minimum time between step pulse and direction change in nanoseconds. +m| .position-scale | (real, R/W) | Scale in steps per length unit. +m| .steplen | (uint, R/W) | Length of step pulse in nano-seconds. +m| .stepspace | (uint, R/W) | Minimum time between two step pulses in nano-seconds. +m| .dirdelay | (uint, R/W) | Minimum time between step pulse and direction change in nanoseconds. |=== For evaluating the appropriate values see the timing diagrams below: @@ -344,12 +344,12 @@ gm..read [width="80%",options="header",cols="<3,^2,<6"] |=== | Pins | Type and direction | Pin description -| gm..power-enable | (bit, In) | +| gm..power-enable | (bool, In) | If this pin is True, + * and Watch Dog Timer is not expired + * and there is no power fault + then power enable pins of axis- and CAN connectors are set to high, otherwise set to low. -| gm..power-fault | (bit, Out) | Power fault input. +| gm..power-fault | (bool, Out) | Power fault input. |=== === Axis DAC @@ -375,18 +375,18 @@ gm..write [width="80%",options="header",cols="<3,^2,<6"] |=== | Pins | Type and direction | Pin description -m| .enable | (bit, In) | Enable DAC output. When enable is false, DAC output is 0.0 V. -m| .value | (float, In) | Value of DAC output in Volts. +m| .enable | (bool, In) | Enable DAC output. When enable is false, DAC output is 0.0 V. +m| .value | (real, In) | Value of DAC output in Volts. |=== .Axis DAC parameters [width="80%",options="header",cols="<3,^2,<6"] |=== | Parameters | Type and direction | Parameter description -m| .offset | (float, R/W) | Offset is added to the value before the hardware is updated. -m| .high-limit | (float, R/W) | Maximum output voltage of the hardware in Volts. -m| .low-limit | (float, R/W) | Minimum output voltage of the hardware in Volts. -m| .invert-serial | (float, R/W) | +m| .offset | (real, R/W) | Offset is added to the value before the hardware is updated. +m| .high-limit | (real, R/W) | Maximum output voltage of the hardware in Volts. +m| .low-limit | (real, R/W) | Minimum output voltage of the hardware in Volts. +m| .invert-serial | (real, R/W) | GM6-PCI card is communicating with DAC hardware via fast serial communication to highly reduce time delay compared to PWM. DAC module is recommended to be isolated which is negating serial communication line. In case of isolation, leave this parameter to default (0), while in case of none-isolation, set this parameter to 1. @@ -428,9 +428,9 @@ gm..write [width="80%",options="header",cols="<3,^2,<6"] |=== | Pins | Type and direction | Pin description -m| .enable | (bit, In) | Enable sending position references. -m| .position-cmd | (float, In) | Commanded position in position units. -m| .position-fb | (float, In) | Feed back position in position units. +m| .enable | (bool, In) | Enable sending position references. +m| .position-cmd | (real, In) | Commanded position in position units. +m| .position-fb | (real, In) | Feed back position in position units. |=== === Parameters @@ -439,7 +439,7 @@ m| .position-fb | (float, In) | Feed back position in position units. [width="80%",options="header",cols="<3,^2,<6"] |=== | Parameters | Type and direction | Parameter description -m| .position-scale | (float, R/W) | Scale in per length unit. +m| .position-scale | (real, R/W) | Scale in per length unit. |=== == Watchdog timer @@ -456,7 +456,7 @@ gm..read [width="90%",options="header",cols="<3,^2,<6"] |=== | Pins | Type and direction | Pin description -m| gm.__.watchdog-expired | (bit, Out) | Indicates that watchdog timer is expired. +m| gm.__.watchdog-expired | (bool, Out) | Indicates that watchdog timer is expired. |=== Watchdog timer overrun causes the set of power-enable to low in hardware. @@ -467,11 +467,11 @@ Watchdog timer overrun causes the set of power-enable to low in hardware. [width="90%",options="header",cols="<3,^2,<6"] |=== | Parameters | Type and direction | Parameter description -m| gm.__.watchdog-enable | (bit, R/W) | +m| gm.__.watchdog-enable | (bool, R/W) | Enables watchdog timer. + It is strongly recommended to enable the watchdog timer, because it can disable all the servo amplifiers by pulling down all enable signals in case of a PC error. -m| gm.__.watchdog-timeout-ns | (float, R/W) | +m| gm.__.watchdog-timeout-ns | (real, R/W) | Time interval in within the gm.__.read function must be executed. The gm.__.read is typically added to servo-thread, so watch timeout is typically set to 3 times of the servo period. @@ -516,12 +516,12 @@ gm..read [width="80%",options="header",cols="<3,^2,<6"] |=== | Pins | Type and direction | Pin description -m| .home-sw-in | (bit, Out) | Home switch input -m| .home-sw-in-not | (bit, Out) | Negated home switch input -m| .neg-lim-sw-in | (bit, Out) | Negative limit switch input -m| .neg-lim-sw-in-not | (bit, Out) | Negated negative limit switch input -m| .pos-lim-sw-in | (bit, Out) | Positive limit switch input -m| .pos-lim-sw-in-not | (bit, Out) | Negated positive limit switch input +m| .home-sw-in | (bool, Out) | Home switch input +m| .home-sw-in-not | (bool, Out) | Negated home switch input +m| .neg-lim-sw-in | (bool, Out) | Negative limit switch input +m| .neg-lim-sw-in-not | (bool, Out) | Negated negative limit switch input +m| .pos-lim-sw-in | (bool, Out) | Positive limit switch input +m| .pos-lim-sw-in-not | (bool, Out) | Negated positive limit switch input |=== === Parameters @@ -530,10 +530,10 @@ m| .pos-lim-sw-in-not | (bit, Out) | Negated positive limit switch input [width="80%",options="header",cols="<3,^2,<6"] |=== | Parameters | Type and direction | Parameter description -m| gm.0.estop.0.in | (bit, Out) | Estop 0 input -m| gm.0.estop.0.in-not | (bit, Out) | Negated Estop 0 input -m| gm.0.estop.1.in | (bit, Out) | Estop 1 input -m| gm.0.estop.1.in-not | (bit, Out) | Negated Estop 1 input +m| gm.0.estop.0.in | (bool, Out) | Estop 0 input +m| gm.0.estop.0.in-not | (bool, Out) | Negated Estop 0 input +m| gm.0.estop.1.in | (bool, Out) | Estop 1 input +m| gm.0.estop.1.in-not | (bool, Out) | Negated Estop 1 input |=== == Status LEDs @@ -645,14 +645,14 @@ where __ is from 00 to 15. [width="80%",options="header",cols="<3,^2,<6"] |=== | Pins | Type and direction | Pin description -m| .relay-<0-7> | (bit, Out) | Output pin for relay +m| .relay-<0-7> | (bool, Out) | Output pin for relay |=== .Relay output module parameters [width="80%",options="header",cols="<3,^2,<6"] |=== | Parameters | Type and direction | Parameter description -m| .invert-relay-<0-7> | (bit, R/W) | Negate relay output pin +m| .invert-relay-<0-7> | (bool, R/W) | Negate relay output pin |=== .HAL example @@ -687,8 +687,8 @@ where __ is from 00 to 15. [width="100%",options="header",cols="<3,^2,<6"] |=== | Pins | Type and direction | Pin description -m| .in-_<0-7>_ | (bit, Out) | Input pin -m| .in-not-_<0-7>_ | (bit, Out) | Negated input pin +m| .in-_<0-7>_ | (bool, Out) | Input pin +m| .in-not-_<0-7>_ | (bool, Out) | Negated input pin |=== .HAL example @@ -723,23 +723,23 @@ where __ is from 00 to 15. [width="100%",options="header",cols="<3,^2,<6"] |=== | Pins | Type and direction | Pin description -m| .adc-_<0-7>_ | (float, Out) | Value of ADC input in Volts. -m| .dac-enable-_<0-3>_ | (bit, In) | +m| .adc-_<0-7>_ | (real, Out) | Value of ADC input in Volts. +m| .dac-enable-_<0-3>_ | (bool, In) | Enable DAC output. When enable is false then DAC output is set to 0.0 V. -m| .dac-_<0-3>_ | (float, In) | Value of DAC output in Volts. +m| .dac-_<0-3>_ | (real, In) | Value of DAC output in Volts. |=== .DAC & ADC module parameters [width="100%",options="header",cols="<3,^2,<6"] |=== | Parameters | Type and direction | Parameter description -m| .adc-scale-_<0-7>_ | (float, R/W) | +m| .adc-scale-_<0-7>_ | (real, R/W) | The input voltage will be multiplied by scale before being output to .adc- pin. -m| .adc-offset-_<0-7>_ | (float, R/W) | +m| .adc-offset-_<0-7>_ | (real, R/W) | Offset is subtracted from the hardware input voltage after the scale multiplier has been applied. -m| .dac-offset-_<0-3>_ | (float, R/W) | Offset is added to the value before the hardware is updated. -m| .dac-high-limit-_<0-3>_ | (float, R/W) | Maximum output voltage of the hardware in Volts. -m| .dac-low-limit-_<0-3>_ | (float, R/W) | Minimum output voltage of the hardware in Volts. +m| .dac-offset-_<0-3>_ | (real, R/W) | Offset is added to the value before the hardware is updated. +m| .dac-high-limit-_<0-3>_ | (real, R/W) | Maximum output voltage of the hardware in Volts. +m| .dac-low-limit-_<0-3>_ | (real, R/W) | Minimum output voltage of the hardware in Volts. |=== .HAL example @@ -776,24 +776,24 @@ Upon request it can be delivered with firmware pre-programmed different ID. [width="100%",options="header",cols="<3,^2,<6"] |=== | Pins | Type and direction | Pin description -m| .adc-_<0-5>_ | (float, Out) | Value of ADC input in Volts. -m| .enc-reset | (bit, In) | When True, resets counts and position to zero. -m| .enc-counts | (s32, Out) | Position in encoder counts. -m| .enc-rawcounts | (s32, Out) | The raw count is the counts, but unaffected by reset. -m| .enc-position | (float, Out) | Position in scaled units (=.enc-counts/.enc-position-scale). -m| .in-_<0-7>_ | (bit, Out) | Input pin -m| .in-not-_<0-7>_ | (bit, Out) | Negated input pin +m| .adc-_<0-5>_ | (real, Out) | Value of ADC input in Volts. +m| .enc-reset | (bool, In) | When True, resets counts and position to zero. +m| .enc-counts | (sint, Out) | Position in encoder counts. +m| .enc-rawcounts | (sint, Out) | The raw count is the counts, but unaffected by reset. +m| .enc-position | (real, Out) | Position in scaled units (=.enc-counts/.enc-position-scale). +m| .in-_<0-7>_ | (bool, Out) | Input pin +m| .in-not-_<0-7>_ | (bool, Out) | Negated input pin |=== .Teach Pendant module parameters [options="header",cols="<3,^2,<6"] |=== | Parameters | Type and direction | Parameter description -m| .adc-scale-_<0-5>_ | (float, R/W) | +m| .adc-scale-_<0-5>_ | (real, R/W) | The input voltage will be multiplied by scale before being output to .adc- pin. -m| .adc-offset-_<0-5>_ | (float, R/W) | +m| .adc-offset-_<0-5>_ | (real, R/W) | Offset is subtracted from the hardware input voltage after the scale multiplier has been applied. -m| .enc-position-scale | (float, R/W) | Scale in per length unit. +m| .enc-position-scale | (real, R/W) | Scale in per length unit. |=== .HAL example diff --git a/docs/src/drivers/gs2.adoc b/docs/src/drivers/gs2.adoc index 4136fe7e9f3..fe08a0c9fbe 100644 --- a/docs/src/drivers/gs2.adoc +++ b/docs/src/drivers/gs2.adoc @@ -48,26 +48,26 @@ That if there are serial configuration errors, turning on verbose may result in With __ being "gs2_vfd" or the name given during loading with the `-n` option: -* '__.DC-bus-volts' (float, out) DC bus voltage of the VFD -* '__.at-speed' (bit, out) when drive is at commanded speed -* '__.err-reset' (bit, in) reset errors sent to VFD -* '__.firmware-revision' (s32, out) from the VFD -* '__.frequency-command' (float, out) from the VFD -* '__.frequency-out' (float, out) from the VFD -* '__.is-stopped' (bit, out) when the VFD reports 0 Hz output -* '__.load-percentage' (float, out) from the VFD -* '__.motor-RPM' (float, out) from the VFD -* '__.output-current' (float, out) from the VFD -* '__.output-voltage' (float, out) from the VFD -* '__.power-factor' (float, out) from the VFD -* '__.scale-frequency' (float, out) from the VFD -* '__.speed-command' (float, in) speed sent to VFD in RPM +* '__.DC-bus-volts' (real, out) DC bus voltage of the VFD +* '__.at-speed' (bool, out) when drive is at commanded speed +* '__.err-reset' (bool, in) reset errors sent to VFD +* '__.firmware-revision' (sint, out) from the VFD +* '__.frequency-command' (real, out) from the VFD +* '__.frequency-out' (real, out) from the VFD +* '__.is-stopped' (bool, out) when the VFD reports 0 Hz output +* '__.load-percentage' (real, out) from the VFD +* '__.motor-RPM' (real, out) from the VFD +* '__.output-current' (real, out) from the VFD +* '__.output-voltage' (real, out) from the VFD +* '__.power-factor' (real, out) from the VFD +* '__.scale-frequency' (real, out) from the VFD +* '__.speed-command' (real, in) speed sent to VFD in RPM It is an error to send a speed faster than the Motor Max RPM as set in the VFD. -* '__.spindle-fwd' (bit, in) 1 for FWD and 0 for REV sent to VFD -* '__.spindle-rev' (bit, in) 1 for REV and 0 if off -* '__.spindle-on' (bit, in) 1 for ON and 0 for OFF sent to VFD -* '__.status-1' (s32, out) Drive Status of the VFD (see the GS2 manual) -* '__.status-2' (s32, out) Drive Status of the VFD (see the GS2 manual) +* '__.spindle-fwd' (bool, in) 1 for FWD and 0 for REV sent to VFD +* '__.spindle-rev' (bool, in) 1 for REV and 0 if off +* '__.spindle-on' (bool, in) 1 for ON and 0 for OFF sent to VFD +* '__.status-1' (sint, out) Drive Status of the VFD (see the GS2 manual) +* '__.status-2' (sint, out) Drive Status of the VFD (see the GS2 manual) [NOTE] The status value is a sum of all the bits that are on. @@ -77,13 +77,13 @@ So a 163 which means the drive is in the run mode is the sum of 3 (run) + 32 (fr With __ being gs2_vfd or the name given during loading with the `-n` option: -* '__.error-count' (s32, RW) -* '__.loop-time' (float, RW) how often the modbus is polled (default: 0.1) -* '__.nameplate-HZ' (float, RW) Nameplate Hz of motor (default: 60) -* '__.nameplate-RPM' (float, RW) Nameplate RPM of motor (default: 1730) -* '__.retval' (s32, RW) the return value of an error in HAL -* '__.tolerance' (s32, RW) speed tolerance (default: 0.01) -* '__.ack-delay' (s32, RW) number of read/write cycles before checking at-speed (default 2) +* '__.error-count' (sint, RW) +* '__.loop-time' (real, RW) how often the modbus is polled (default: 0.1) +* '__.nameplate-HZ' (real, RW) Nameplate Hz of motor (default: 60) +* '__.nameplate-RPM' (real, RW) Nameplate RPM of motor (default: 1730) +* '__.retval' (sint, RW) the return value of an error in HAL +* '__.tolerance' (real, RW) speed tolerance (default: 0.01) +* '__.ack-delay' (sint, RW) number of read/write cycles before checking at-speed (default 2) For an example of using this component to drive a spindle see the <> example. diff --git a/docs/src/drivers/hal_gpio.adoc b/docs/src/drivers/hal_gpio.adoc index 374802f36fc..b5bf8b62b95 100644 --- a/docs/src/drivers/hal_gpio.adoc +++ b/docs/src/drivers/hal_gpio.adoc @@ -80,7 +80,7 @@ The version of libgpiod-dev installed can be determined by the command `gpioinfo * hal_gpio.NAME-in - HAL_OUT The value of an input pin presented in to HAL * hal_gpio.NAME-in-not - HAL_OUT An inverted version of the above, for convenience -* hal_gpio.NAME-out - HAL_IN use this pin to transfer a HAL bit value to a physical output +* hal_gpio.NAME-out - HAL_IN use this pin to transfer a HAL bool value to a physical output == Parameters diff --git a/docs/src/drivers/hostmot2.adoc b/docs/src/drivers/hostmot2.adoc index 454c17dbba1..1521e24fc90 100644 --- a/docs/src/drivers/hostmot2.adoc +++ b/docs/src/drivers/hostmot2.adoc @@ -105,13 +105,13 @@ exported: === Pins -* 'has_bit' - (bit i/o) True if the watchdog has bit, False if the - watchdog has not bit. If the watchdog has bit and the has_bit bit is +* 'has_bit' - (bool i/o) True if the watchdog has bit, False if the + watchdog has not bit. If the watchdog has bit and the has_bit bool is True, the user can reset it to False to resume operation. === Parameters -* 'timeout_ns' - (u32 read/write) Watchdog timeout, in nanoseconds. +* 'timeout_ns' - (uint read/write) Watchdog timeout, in nanoseconds. This is initialized to 5,000,000 (5 milliseconds) at module load time. If more than this amount of time passes between calls to the hm2 write function, the watchdog will bite. @@ -412,21 +412,21 @@ GPIO pins default to input. === Pins -* 'in' - (Bit, Out) Normal state of the hardware input pin. +* 'in' - (bool, out) Normal state of the hardware input pin. Both full GPIO pins and I/O pins used as inputs by active module instances have this pin. -* 'in_not' - (Bit, Out) Inverted state of the hardware input pin. +* 'in_not' - (bool, out) Inverted state of the hardware input pin. Both full GPIO pins and I/O pins used as inputs by active module instances have this pin. -* 'out' - (Bit, In) Value to be written (possibly inverted) to the +* 'out' - (bool, in) Value to be written (possibly inverted) to the hardware output pin. Only full GPIO pins have this pin. === Parameters -* 'invert_output' - (Bit, RW) This parameter only has an effect if the +* 'invert_output' - (bool, rw) This parameter only has an effect if the 'is_output' parameter is true. If this parameter is true, the output value of the GPIO will be the inverse of the value on the 'out' HAL pin. Only full @@ -434,7 +434,7 @@ GPIO pins default to input. this parameter. To invert an active module pin you have to invert the GPIO pin not the module pin. -* 'is_opendrain' - (Bit, RW) This parameter only has an effect if the +* 'is_opendrain' - (bool, rw) This parameter only has an effect if the 'is_output' parameter is true. If this parameter is false, the GPIO behaves as a normal output pin: the I/O pin on the connector is driven to the value @@ -448,7 +448,7 @@ GPIO pins default to input. pins. Only full GPIO pins and I/O pins used as outputs by active module instances have this parameter. -* 'is_output' - (Bit, RW) If set to 0, the GPIO is an input. +* 'is_output' - (bool, rw) If set to 0, the GPIO is an input. The I/O pin is put in a high-impedance state (weakly pulled high), to be driven by other devices. The logic value on the I/O pin is available in the 'in' and @@ -478,57 +478,57 @@ Each StepGen instance has the following pins and parameters: === Pins -* 'control-type' - (Bit, In) Switches between position control mode (0) +* 'control-type' - (bool, in) Switches between position control mode (0) and velocity control mode (1). Defaults to position control (0). -* 'counts' - (s32, Out) Feedback position in counts (number of steps). +* 'counts' - (sint, out) Feedback position in counts (number of steps). -* 'enable' - (Bit, In) Enables output steps. When false, no steps are +* 'enable' - (bool, in) Enables output steps. When false, no steps are generated. -* 'position-cmd' - (Float, In) Target position of stepper motion, in +* 'position-cmd' - (real, in) Target position of stepper motion, in user-defined position units. -* 'position-fb' - (Float, Out) Feedback position in user-defined position +* 'position-fb' - (real, out) Feedback position in user-defined position units (counts / position_scale). -* 'velocity-cmd' - (Float, In) Target velocity of stepper motion, in +* 'velocity-cmd' - (real, in) Target velocity of stepper motion, in user-defined position units per second. This pin is only used when the stepgen is in velocity control mode (control-type=1). -* 'velocity-fb' - (Float, Out) Feedback velocity in user-defined position +* 'velocity-fb' - (real, out) Feedback velocity in user-defined position units per second. === Parameters -* 'dirhold' - (u32, RW) Minimum duration of stable Direction signal +* 'dirhold' - (uint, rw) Minimum duration of stable Direction signal after a step ends, in nanoseconds. -* 'dirsetup' - (u32, RW) Minimum duration of stable Direction signal +* 'dirsetup' - (uint, rw) Minimum duration of stable Direction signal before a step begins, in nanoseconds. -* 'maxaccel' - (Float, RW) Maximum acceleration, in position units per +* 'maxaccel' - (real, rw) Maximum acceleration, in position units per second per second. If set to 0, the driver will not limit its acceleration. -* 'maxvel' - (Float, RW) Maximum speed, in position units per second. +* 'maxvel' - (real, rw) Maximum speed, in position units per second. If set to 0, the driver will choose the maximum velocity based on the values of steplen and stepspace (at the time that maxvel was set to 0). -* 'position-scale' - (Float, RW) Converts from counts to position units. +* 'position-scale' - (real, rw) Converts from counts to position units. position = counts / position_scale -* 'step_type' - (u32, RW) Output format, like the step_type modparam to +* 'step_type' - (uint, rw) Output format, like the step_type modparam to the software stepgen(9) component. 0 = Step/Dir, 1 = Up/Down, 2 = Quadrature. In Quadrature mode (step_type=2), the stepgen outputs one complete Gray cycle (00 \-> 01 \-> 11 \-> 10 \-> 00) for each 'step' it takes. -* 'steplen' - (u32, RW) Duration of the step signal, in nanoseconds. +* 'steplen' - (uint, rw) Duration of the step signal, in nanoseconds. -* 'stepspace' - (u32, RW) Minimum interval between step signals, in +* 'stepspace' - (uint, rw) Minimum interval between step signals, in nanoseconds. === Output Parameters @@ -537,12 +537,12 @@ The Step and Direction pins of each StepGen have two additional parameters. To find which I/O pin belongs to which step and direction output run 'dmesg' as described above. -* 'invert_output' - (Bit, RW) This parameter only has an effect if the +* 'invert_output' - (bool, rw) This parameter only has an effect if the 'is_output' parameter is true. If this parameter is true, the output value of the GPIO will be the inverse of the value on the 'out' HAL pin. -* 'is_opendrain' - (Bit, RW) If this parameter is false, the GPIO +* 'is_opendrain' - (bool, rw) If this parameter is false, the GPIO behaves as a normal output pin: the I/O pin on the connector is driven to the value specified by the 'out' HAL pin (possibly inverted). If this parameter @@ -574,23 +574,23 @@ component. Each pwmgen instance has the following pins and parameters: === Pins -* 'enable' - (Bit, In) If true, the pwmgen will set its Not-Enable pin +* 'enable' - (bool, in) If true, the pwmgen will set its Not-Enable pin false and output its pulses. If 'enable' is false, pwmgen will set its Not-Enable pin true and not output any signals. -* 'value' - (Float, In) The current pwmgen command value, in arbitrary +* 'value' - (real, in) The current pwmgen command value, in arbitrary units. === Parameters -* 'output-type' - (s32, RW) This emulates the output_type load-time argument to the software pwmgen component. +* 'output-type' - (sint, rw) This emulates the output_type load-time argument to the software pwmgen component. This parameter may be changed at runtime, but most of the time you probably want to set it at startup and then leave it alone. Accepted values are 1 (PWM on Out0 and Direction on Out1), 2 (Up on Out0 and Down on Out1), 3 (PDM mode, PDM on Out0 and Dir on Out1), and 4 (Direction on Out0 and PWM on Out1, 'for locked antiphase'). -* 'scale' - (Float, RW) Scaling factor to convert 'value' from arbitrary units to duty cycle: dc = value / scale. +* 'scale' - (real, rw) Scaling factor to convert 'value' from arbitrary units to duty cycle: dc = value / scale. Duty cycle has an effective range of -1.0 to +1.0 inclusive, anything outside that range gets clipped. -* 'pdm_frequency' - (u32, RW) This specifies the PDM frequency, in Hz, +* 'pdm_frequency' - (uint, rw) This specifies the PDM frequency, in Hz, of all the pwmgen instances running in PDM mode (mode 3). This is the 'pulse slot frequency'; the frequency at which the pdm generator in the Anything I/O board chooses whether to emit a pulse or a space. @@ -602,7 +602,7 @@ component. Each pwmgen instance has the following pins and parameters: the 5I20 and 7I43 both have a 100 MHz clock, resulting in a 100 MHz max PDM frequency. Other boards may have different clocks, resulting in different max PDM frequencies. If the user attempts to set the frequency too high, then it will be clipped to the max supported frequency of the board. -* 'pwm_frequency' - (u32, RW) This specifies the PWM frequency, in Hz, +* 'pwm_frequency' - (uint, rw) This specifies the PWM frequency, in Hz, of all the pwmgen instances running in the PWM modes (modes 1 and 2). This is the frequency of the variable-duty-cycle wave. Its effective range is from 1 Hz up to 193 kHz. @@ -618,9 +618,9 @@ component. Each pwmgen instance has the following pins and parameters: The output pins of each PWMGen have two additional parameters. To find which I/O pin belongs to which output run `dmesg` as described above. -* `invert_output` - (Bit, RW) This parameter only has an effect if the `is_output` parameter is true. +* `invert_output` - (bool, rw) This parameter only has an effect if the `is_output` parameter is true. If this parameter is true, the output value of the GPIO will be the inverse of the value on the `out` HAL pin. -* `is_opendrain` - (Bit, RW) If this parameter is false, the GPIO behaves as a normal output pin: +* `is_opendrain` - (bool, rw) If this parameter is false, the GPIO behaves as a normal output pin: The I/O pin on the connector is driven to the value specified by the `out` HAL pin (possibly inverted). If this parameter is true, the GPIO behaves as an open-drain pin. Writing 0 to the `out` HAL pin drives the I/O pin low, writing 1 to the `out` HAL pin puts the I/O pin in a high-impedance state. @@ -645,48 +645,48 @@ Each encoder instance has the following pins and parameters: === Pins -* `count` - (s32, Out) Number of encoder counts since the previous reset. -* `index-enable` - (Bit, I/O) When this pin is set to True, +* `count` - (sint, out) Number of encoder counts since the previous reset. +* `index-enable` - (bool, i/o) When this pin is set to True, the count (and therefore also position) are reset to zero on the next Index (Phase-Z) pulse. At the same time, index-enable is reset to zero to indicate that the pulse has occurred. -* `position` - (Float, Out) Encoder position in position units (count / scale). -* `rawcounts` - (s32, Out) Total number of encoder counts since the start, not adjusted for index or reset. -* `reset` - (Bit, In) When this pin is TRUE, the count and position pins are set to 0. +* `position` - (real, out) Encoder position in position units (count / scale). +* `rawcounts` - (sint, out) Total number of encoder counts since the start, not adjusted for index or reset. +* `reset` - (bool, in) When this pin is TRUE, the count and position pins are set to 0. The value of the velocity pin is not affected by this. The driver does not reset this pin to FALSE after resetting the count to 0, that is the user's job. -* `velocity` - (Float, Out) Estimated encoder velocity in position units per second. +* `velocity` - (real, out) Estimated encoder velocity in position units per second. === Parameters -* `counter-mode` - (Bit, RW) Set to False (the default) for Quadrature. +* `counter-mode` - (bool, rw) Set to False (the default) for Quadrature. Set to True for Up/Down or for single input on Phase A. Can be used for a frequency to velocity converter with a single input on Phase A when set to true. -* `filter` - (Bit, RW) If set to True (the default), the quadrature +* `filter` - (bool, rw) If set to True (the default), the quadrature counter needs 15 clocks to register a change on any of the three input lines (any pulse shorter than this is rejected as noise). If set to False, the quadrature counter needs only 3 clocks to register a change. The encoder sample clock runs at 33 MHz on the PCI Anything I/O cards and 50 MHz on the 7I43. -* `index-invert` - (Bit, RW) If set to True, the rising edge of the +* `index-invert` - (bool, rw) If set to True, the rising edge of the Index input pin triggers the Index event (if index-enable is True). If set to False, the falling edge triggers. -* `index-mask` - (Bit, RW) If set to True, the Index input pin only has +* `index-mask` - (bool, rw) If set to True, the Index input pin only has an effect if the Index-Mask input pin is True (or False, depending on the `index-mask-invert` pin below). -* `index-mask-invert` - (Bit, RW) If set to True, Index-Mask must be +* `index-mask-invert` - (bool, rw) If set to True, Index-Mask must be False for Index to have an effect. If set to False, the `Index-Mask` pin must be True. -* `scale` - (Float, RW) Converts from 'count' units to 'position' units. +* `scale` - (real, rw) Converts from 'count' units to 'position' units. A quadrature encoder will normally have 4 counts per pulse so a 100 PPR encoder would be 400 counts per revolution. In `.counter-mode` a 100 PPR encoder would have 100 counts per revolution as it only uses the rising edge of A and direction is B. -* `vel-timeout` - (Float, RW) When the encoder is moving slower than one +* `vel-timeout` - (real, rw) When the encoder is moving slower than one pulse for each time that the driver reads the count from the FPGA (in the hm2_read() function), the velocity is harder to estimate. The driver can wait several iterations for the next pulse to arrive, diff --git a/docs/src/drivers/mitsub-vfd.adoc b/docs/src/drivers/mitsub-vfd.adoc index 557eab54f42..15b9d5366dc 100644 --- a/docs/src/drivers/mitsub-vfd.adoc +++ b/docs/src/drivers/mitsub-vfd.adoc @@ -43,52 +43,52 @@ Turning on debugging will result in a flood of text in the terminal. Where is +mitsub_vfd+ or the name given during loading. - * '.fwd' (bit, in) + * '.fwd' (bool, in) True sets motion forward, False sets reverse. - * '.run' (bit, in) + * '.run' (bool, in) True sets the VFD in motion based on the .fwd pin. - * '.debug' (bit, in) + * '.debug' (bool, in) Prints debug info to the terminal. - * '.alarm' (bit, out) + * '.alarm' (bool, out) signals an alarm state of VFD. - * '.up-to-speed' (bit, out) + * '.up-to-speed' (bool, out) when drive is at commanded speed (speed-tolerance is set on vfd) - * '.monitor' (bit, in) + * '.monitor' (bool, in) some models (eg E500) cannot monitor status - set the monitor pin to false in this case pins such as up-to-speed, amps, alarm and status bits are not updated. - * '.motor-cmd' (float, in) + * '.motor-cmd' (real, in) commanded speed to the VFD (scaled to hertz by default). - * '.motor-fb' (float, out) + * '.motor-fb' (real, out) feedback speed from the VFD (scaled to hertz by default). - * '.motor-amps' (float, out) + * '.motor-amps' (real, out) Current amperage output of motor. - * '.motor-power' (float, out) + * '.motor-power' (real, out) Current power output of motor. - * '.scale-cmd' (float, in) + * '.scale-cmd' (real, in) Scales the motor-cmd pin to arbitrary units. default 1 = Hertz. - * '.scale-fb' (float, in) + * '.scale-fb' (real, in) Scales the motor-fb pin to arbitrary units. default 1 = Hertz. - * '.scale-amps' (float, in) + * '.scale-amps' (real, in) Scales the motor-amps pin to arbitrary units. default 1 = amps. - * '.scale-power' (float, in) + * '.scale-power' (real, in) Scales the motor-power pin to arbitrary units. default 1 = . - * '.estop' (bit, in) + * '.estop' (bool, in) puts the VFD into emergency-stopped status. - * '.status-bit-N' (bit, out) + * '.status-bit-N' (bool, out) N = 0 to 7, status bits are user configurable on the VFD. Bit 3 should be set to at speed and bit 7 should be set to alarm. Others are free to be set as required. diff --git a/docs/src/drivers/pico-ppmc.adoc b/docs/src/drivers/pico-ppmc.adoc index cd10b7ee224..d2ee9dd4874 100644 --- a/docs/src/drivers/pico-ppmc.adoc +++ b/docs/src/drivers/pico-ppmc.adoc @@ -110,9 +110,9 @@ will only be exported when that option is enabled by an optional parameter in the loadrt HAL command. These options require the board to have a sufficient revision level to support the feature. -* '(All s32 output) ppmc..encoder..count' - Encoder position, in counts. -* '(All s32 output) ppmc..encoder..delta' - Change in counts since last read, in raw encoder count units. -* '(All float output) 'ppmc..encoder..velocity' - +* '(All sint output) ppmc..encoder..count' - Encoder position, in counts. +* '(All sint output) ppmc..encoder..delta' - Change in counts since last read, in raw encoder count units. +* '(All real output) 'ppmc..encoder..velocity' - Velocity scaled in user units per second. On PPMC and USC this is derived from raw encoder counts per servo period, and hence is affected by encoder granularity. On UPC boards with the 8/21/09 and later @@ -121,37 +121,37 @@ board to have a sufficient revision level to support the feature. to the PID HAL component to produce a more stable servo response. This function has to be enabled in the HAL command line that starts the PPMC driver, with the timestamp=0x00 option. -* '(All float output) ppmc..encoder..position' - Encoder position, in user units. -* '(All bit bidir) ppmc..encoder..index-enable' - +* '(All real output) ppmc..encoder..position' - Encoder position, in user units. +* '(All bool bidir) ppmc..encoder..index-enable' - Connect to joint.#.index-enable for home-to-index. This is a bidirectional HAL signal. Setting it to true causes the encoder hardware to reset the count to zero on the next encoder index pulse. The driver will detect this and set the signal back to false. -* '(PPMC float output) ppmc..DAC..value' - sends a +* '(PPMC real output) ppmc..DAC..value' - sends a signed value to the 16-bit Digital to Analog Converter on the PPMC DAC16 board commanding the analog output voltage of that DAC channel. -* '(UPC bit input) ppmc..pwm..enable' - Enables a PWM generator. -* '(UPC float input) ppmc..pwm..value' - Value +* '(UPC bool input) ppmc..pwm..enable' - Enables a PWM generator. +* '(UPC real input) ppmc..pwm..value' - Value which determines the duty cycle of the PWM waveforms. The value is divided by 'pwm..scale', and if the result is 0.6 the duty cycle will be 60%, and so on. Negative values result in the duty cycle being based on the absolute value, and the direction pin is set to indicate negative. -* '(USC bit input) ppmc..stepgen..enable' - +* '(USC bool input) ppmc..stepgen..enable' - Enables a step pulse generator. -* '(USC float input) ppmc..stepgen..velocity' - +* '(USC real input) ppmc..stepgen..velocity' - Value which determines the step frequency. The value is multiplied by 'stepgen..scale' , and the result is the frequency in steps per second. Negative values result in the frequency being based on the absolute value, and the direction pin is set to indicate negative. -* '(All bit output) ppmc..din..in' - State of digital +* '(All bool output) ppmc..din..in' - State of digital input pin, see canonical digital input. -* '(All bit output) ppmc..din..in-not' - Inverted +* '(All bool output) ppmc..din..in-not' - Inverted state of digital input pin, see canonical digital input. -* '(All bit input) ppmc..dout..out' - Value to be +* '(All bool input) ppmc..dout..out' - Value to be written to digital output, see canonical digital output. -* '(Option float input) ppmc..DAC8-.value' - Value to +* '(Option real input) ppmc..DAC8-.value' - Value to be written to analog output, range from 0 to 255. This sends 8 output bits to J8, which should have a Spindle DAC board connected to it. 0 corresponds to zero Volts, 255 corresponds to 10 @@ -160,7 +160,7 @@ board to have a sufficient revision level to support the feature. (minus when on). You must specify extradac = 0x00 on the HAL command line that loads the PPMC driver to enable this function on the first USC ur UPC board. -* '(Option bit input) ppmc..dout..out' - Value to be +* '(Option bool input) ppmc..dout..out' - Value to be written to one of the 8 extra digital output pins on J8. You must specify extradout = 0x00 on the HAL command line that loads the ppmc driver to enable this function on the first USC or UPC @@ -170,58 +170,58 @@ board to have a sufficient revision level to support the feature. == Parameters -* '(All float) ppmc..encoder..scale' - The number of +* '(All real) ppmc..encoder..scale' - The number of counts / user unit (to convert from counts to units). -* '(UPC float) ppmc..pwm..freq' - The PWM +* '(UPC real) ppmc..pwm..freq' - The PWM carrier frequency, in Hz. Applies to a group of four consecutive PWM generators, as indicated by ''. Minimum is 610 Hz, maximum is 500 kHz. -* '(PPMC float) ppmc..DAC..scale' - Sets scale +* '(PPMC real) ppmc..DAC..scale' - Sets scale of DAC16 output channel such that an output value equal to the 1/scale value will produce an output of + or - value Volts. So, if the scale parameter is 0.1 and you send a value of 0.5, the output will be 5.0 Volts. -* '(UPC float) ppmc..pwm..scale' - Scaling for PWM +* '(UPC real) ppmc..pwm..scale' - Scaling for PWM generator. If 'scale' is X, then the duty cycle will be 100% when the 'value' pin is X (or -X). -* '(UPC float) ppmc..pwm..max-dc' - Maximum duty +* '(UPC real) ppmc..pwm..max-dc' - Maximum duty cycle, from 0.0 to 1.0. -* '(UPC float) ppmc..pwm..min-dc' - Minimum duty +* '(UPC real) ppmc..pwm..min-dc' - Minimum duty cycle, from 0.0 to 1.0. -* '(UPC float) ppmc..pwm..duty-cycle' - Actual duty +* '(UPC real) ppmc..pwm..duty-cycle' - Actual duty cycle (used mostly for troubleshooting.) -* '(UPC bit) ppmc..pwm..bootstrap' - If true, the +* '(UPC bool) ppmc..pwm..bootstrap' - If true, the PWM generator will generate a short sequence of pulses of both polarities when E-stop goes false, to reset the shutdown latches on some PWM servo drives. -* '(USC u32) ppmc..stepgen..setup-time' - Sets +* '(USC uint) ppmc..stepgen..setup-time' - Sets minimum time between direction change and step pulse, in units of 100 ns. Applies to a group of four consecutive step generators, as indicated by ''. Values between 200 ns and 25.5 µs can be specified. -* '(USC u32) ppmc..stepgen..pulse-width' - Sets +* '(USC uint) ppmc..stepgen..pulse-width' - Sets width of step pulses, in units of 100 ns. Applies to a group of four consecutive step generators, as indicated by ''. Values between 200 ns and 25.5 µs may be specified. -* '(USC u32) ppmc..stepgen..pulse-space-min' - Sets +* '(USC uint) ppmc..stepgen..pulse-space-min' - Sets minimum time between pulses, in units of 100 ns. Applies to a group of four consecutive step generators, as indicated by ''. Values between 200 ns and 25.5 µs can be specified. The maximum step rate is: image:images/pico-ppmc-math.png[] -* '(USC float) ppmc..stepgen..scale' - Scaling for +* '(USC real) ppmc..stepgen..scale' - Scaling for step pulse generator. The step frequency in Hz is the absolute value of 'velocity' * 'scale'. -* '(USC float) ppmc..stepgen..max-vel' - The maximum +* '(USC real) ppmc..stepgen..max-vel' - The maximum value for 'velocity'. Commands greater than 'max-vel' will be clamped. Also applies to negative values. (The absolute value is clamped.) -* '(USC float) ppmc..stepgen..frequency' - Actual +* '(USC real) ppmc..stepgen..frequency' - Actual step pulse frequency in Hz (used mostly for troubleshooting.) -* '(Option float) ppmc..DAC8..scale' - Sets scale +* '(Option real) ppmc..DAC8..scale' - Sets scale of extra DAC output such that an output value equal to scale gives a magnitude of 10.0 V output. (The sign of the output is set by jumpers and/or other digital outputs.) -* '(Option bit) ppmc..dout..invert' - Inverts a +* '(Option bool) ppmc..dout..invert' - Inverts a digital output, see canonical digital output. -* '(Option bit) ppmc..dout..invert' - Inverts a +* '(Option bool) ppmc..dout..invert' - Inverts a digital output pin of J8, see canonical digital output. == Functions diff --git a/docs/src/drivers/pmx485.adoc b/docs/src/drivers/pmx485.adoc index fcd103d691d..bd7cb6a78aa 100644 --- a/docs/src/drivers/pmx485.adoc +++ b/docs/src/drivers/pmx485.adoc @@ -22,19 +22,20 @@ It is necessary to name the port to use for communications. == Pins -* *pmx485.mode-set* (bit, in) # set cutting mode -* *pmx485.current-set* (bit, in) # set cutting current -* *pmx485.pressure-set* (bit, in) # set gas pressure -* *pmx485.enable* (bit, in) # enable the component -* *pmx485.mode* (bit, out) # cut mode feedback -* *pmx485.current* (bit, out) # cutting current feedback -* *pmx485.pressure* (bit, out) # gas pressure feedback -* *pmx485.fault* (bit, out) # powermax fault code -* *pmx485.status* (bit, out) # connection status -* *pmx485.current-min* (bit, out) # minimum allowed current -* *pmx485.current-max* (bit, out) # maximum allowed current -* *pmx485.pressure-min* (bit, out) # minimum allowed gas pressure -* *pmx485.pressure-max* (bit, out) # maximum allowed gas pressure +* *pmx485.mode_set* (real, in) # set cutting mode +* *pmx485.current_set* (real, in) # set cutting current +* *pmx485.pressure_set* (real, in) # set gas pressure +* *pmx485.enable* (bool, in) # enable the component +* *pmx485.mode* (real, out) # cut mode feedback +* *pmx485.current* (real, out) # cutting current feedback +* *pmx485.pressure* (real, out) # gas pressure feedback +* *pmx485.fault* (real, out) # powermax fault code +* *pmx485.status* (bool, out) # connection status +* *pmx485.current_min* (real, out) # minimum allowed current +* *pmx485.current_max* (real, out) # maximum allowed current +* *pmx485.pressure_min* (real, out) # minimum allowed gas pressure +* *pmx485.pressure_max* (real, out) # maximum allowed gas pressure +* *pmx485.arcTime* (real, out) # arc on time feedback == Description diff --git a/docs/src/drivers/shuttle.adoc b/docs/src/drivers/shuttle.adoc index 138cae8f524..cc599ed2946 100644 --- a/docs/src/drivers/shuttle.adoc +++ b/docs/src/drivers/shuttle.adoc @@ -55,16 +55,16 @@ If you install the file by hand you'll need to tell udev to reload its rules fil All HAL pin names are prefixed with `shuttle` followed by the index of the device (the order in which the driver found them), for example `shuttle.0` or `shuttle.2`. -__`.button-` (bit out):: +__`.button-` (bool out):: These pins are True (1) when the button is pressed. -__`.button--not` (bit out):: +__`.button--not` (bool out):: These pins have the inverse of the button state, so they're True (1) when the button is not pressed. -__`.counts` (s32 out):: +__`.counts` (sint out):: Accumulated counts from the jog wheel (the inner wheel). -__`.spring-wheel-s32` (s32 out):: +__`.spring-wheel-s32` (sint out):: The current deflection of the spring-wheel (the outer wheel). It's 0 at rest, and ranges from -7 at the counter-clockwise extreme to +7 at the clockwise extreme. -__`.spring-wheel-f` (float out):: +__`.spring-wheel-f` (real out):: The current deflection of the spring-wheel (the outer wheel). It's 0.0 at rest, -1.0 at the counter-clockwise extreme, and +1.0 at the clockwise extreme. The Shuttle devices report the spring-wheel position as an integer from -7 to +7, so this pin reports only 15 discrete values in it's range. diff --git a/docs/src/drivers/vfs11.adoc b/docs/src/drivers/vfs11.adoc index 485b6758bb7..241800a512d 100644 --- a/docs/src/drivers/vfs11.adoc +++ b/docs/src/drivers/vfs11.adoc @@ -43,75 +43,75 @@ That if there are serial configuration errors, turning on verbose may result in Where is +vfs11_vfd+ or the name given during loading with the -n option. -* '.acceleration-pattern' (bit, in) when true, set acceleration and deceleration times as defined in registers F500 and F501 respectively. +* '.acceleration-pattern' (bool, in) when true, set acceleration and deceleration times as defined in registers F500 and F501 respectively. Used in PID loops to choose shorter ramp times to avoid oscillation. -* '.alarm-code' (s32, out) non-zero if drive is in alarmed state. +* '.alarm-code' (sint, out) non-zero if drive is in alarmed state. Bitmap describing alarm information (see register FC91 description). Use err-reset (see below) to clear the alarm. -* '.at-speed' (bit, out) +* '.at-speed' (bool, out) when drive is at commanded speed (see speed-tolerance below) -* '.current-load-percentage' (float, out) +* '.current-load-percentage' (real, out) reported from the VFD -* '.dc-brake' (bit, in) +* '.dc-brake' (bool, in) engage the DC brake. Also turns off spindle-on. -* '.enable' (bit, in) +* '.enable' (bool, in) enable the VFD. If false, all operating parameters are still read but control is released and panel control is enabled (subject to VFD setup). -* '.err-reset' (bit, in) +* '.err-reset' (bool, in) reset errors (alarms a.k.a Trip and e-stop status). Resetting the VFD may cause a 2-second delay until it's rebooted and Modbus is up again. -* '.estop' (bit, in) +* '.estop' (bool, in) put the VFD into emergency-stopped status. No operation possible until cleared with err-reset or powercycling. -* '.frequency-command' (float, out) +* '.frequency-command' (real, out) current target frequency in Hz as set through speed-command (which is in RPM), from the VFD -* '.frequency-out' (float, out) +* '.frequency-out' (real, out) current output frequency of the VFD -* '.inverter-load-percentage' (float, out) +* '.inverter-load-percentage' (real, out) current load report from VFD -* '.is-e-stopped' (bit, out) +* '.is-e-stopped' (bool, out) the VFD is in emergency stop status (blinking "E" on panel). Use err-reset to reboot the VFD and clear the e- stop status. -* '.is-stopped' (bit, out) +* '.is-stopped' (bool, out) true when the VFD reports 0 Hz output -* '.max-rpm' (float, R) +* '.max-rpm' (real, R) actual RPM limit based on maximum frequency the VFD may generate, and the motors nameplate values. For instance, if nameplate-HZ is 50, and nameplate-RPM_ is 1410, but the VFD may generate up to 80 Hz, then max-rpm would read as 2256 (80*1410/50). The frequency limit is read from the VFD at startup. To increase the upper frequency limit, the UL and FH parameters must be changed on the panel. See the VF-S11 manual for instructions how to set the maximum frequency. -* '.modbus-ok' (bit, out) +* '.modbus-ok' (bool, out) true when the Modbus session is successfully established and the last 10 transactions returned without error. -* '.motor-RPM' (float, out) +* '.motor-RPM' (real, out) estimated current RPM value, from the VFD -* '.output-current-percentage' (float, out) +* '.output-current-percentage' (real, out) from the VFD -* '.output-voltage-percentage' (float, out) +* '.output-voltage-percentage' (real, out) from the VFD -* '.output-voltage' (float, out) +* '.output-voltage' (real, out) from the VFD -* '.speed-command' (float, in) +* '.speed-command' (real, in) speed sent to VFD in RPM. It is an error to send a speed faster than the Motor Max RPM as set in the VFD -* '.spindle-fwd' (bit, in) +* '.spindle-fwd' (bool, in) 1 for FWD and 0 for REV, sent to VFD -* '.spindle-on' (bit, in) +* '.spindle-on' (bool, in) 1 for ON and 0 for OFF sent to VFD, only on when running -* '.spindle-rev' (bit, in) +* '.spindle-rev' (bool, in) 1 for ON and 0 for OFF, only on when running -* '.jog-mode' (bit, in) +* '.jog-mode' (bool, in) 1 for ON and 0 for OFF, enables the VF-S11 'jog mode'. Speed control is disabled, and the output frequency is determined by register F262 (preset to 5 Hz). This might be useful for spindle orientation. In normal mode, the VFD shuts off if the frequency drops below 12 Hz. -* '.status' (s32, out) +* '.status' (sint, out) Drive Status of the VFD (see the TOSVERT VF-S11 Communications Function Instruction Manual, register FD01). A bitmap. -* '.trip-code' (s32, out) +* '.trip-code' (sint, out) trip code if VF-S11 is in tripped state. -* '.error-count' (s32, out) +* '.error-count' (sint, out) number of Modbus transactions which returned an error -* '.max-speed' (bit, in) +* '.max-speed' (bool, in) ignore the loop-time parameter and run Modbus at maximum speed, at the expense of higher CPU usage. Suggested use during spindle positioning. @@ -119,17 +119,17 @@ Where is +vfs11_vfd+ or the name given during loading with the -n option. Where is +vfs11_vfd+ or the name given during loading with the -n option. -* '.frequency-limit' (float, RO) +* '.frequency-limit' (real, RO) upper limit read from VFD setup. -* '.loop-time' (float, RW) +* '.loop-time' (real, RW) how often the Modbus is polled (default interval 0.1 seconds) -* '.nameplate-HZ' (float, RW) +* '.nameplate-HZ' (real, RW) Nameplate Hz of motor (default 50). Used to calculate target frequency (together with nameplate-RPM ) for a target RPM value as given by speed-command. -* '.nameplate-RPM' (float, RW) +* '.nameplate-RPM' (real, RW) Nameplate RPM of motor (default 1410) -* '.rpm-limit' (float, RW) +* '.rpm-limit' (real, RW) do-not-exceed soft limit for motor RPM (defaults to nameplate-RPM ). -* '.tolerance' (float, RW) +* '.tolerance' (real, RW) speed tolerance (default 0.01) for determining whether spindle is at speed (0.01 meaning: Output frequency is within 1% of target frequency) diff --git a/docs/src/gcode/m-code.adoc b/docs/src/gcode/m-code.adoc index afa69cc7ceb..3dbc179d5e1 100644 --- a/docs/src/gcode/m-code.adoc +++ b/docs/src/gcode/m-code.adoc @@ -249,24 +249,24 @@ INI Settings in the [RS274NGC] section: * ORIENT_OFFSET = 0-360 (fixed offset in degrees added to M19 R word) * HAL Pins -** 'spindle.N.orient-angle' (out float) +** 'spindle.N.orient-angle' (real, out) Desired spindle orientation for M19. Value of the M19 R word parameter plus the value of the [RS274NGC]ORIENT_OFFSET INI parameter. -** 'spindle.N.orient-mode' (out s32) +** 'spindle.N.orient-mode' (sint, out) Desired spindle rotation mode. Reflects M19 P parameter word, default = 0. -** 'spindle.N.orient' (out bit) +** 'spindle.N.orient' (bool, out) Indicates start of spindle orient cycle. Set by M19. Cleared by any of M3,M4,M5. If spindle-orient-fault is not zero during spindle-orient true, the M19 command fails with an error message. -** 'spindle.N.is-oriented' (in bit) +** 'spindle.N.is-oriented' (bool, in) Acknowledge pin for spindle-orient. Completes orient cycle. If spindle-orient was true when spindle-is-oriented was asserted, the spindle-orient pin is cleared and the spindle-locked pin is asserted. Also, the spindle-brake pin is asserted. -** 'spindle.N.orient-fault' (in s32) +** 'spindle.N.orient-fault' (sint, in) Fault code input for orient cycle. Any value other than zero will cause the orient cycle to abort. -** 'spindle.N.locked' (out bit) +** 'spindle.N.locked' (bool, out) Spindle orient complete pin. Cleared by any of M3,M4,M5. [[mcode:m26-m27]] diff --git a/docs/src/gui/axis.adoc b/docs/src/gui/axis.adoc index 2cd01987cc5..caa94c9d104 100644 --- a/docs/src/gui/axis.adoc +++ b/docs/src/gui/axis.adoc @@ -493,7 +493,7 @@ unhome axes. If your machine does not have home switches defined in the configuration, the 'Home' button will set the current position of the selected axis as -the absolute position 0 for that axis and will set the 'is-homed' bit for that axis. +the absolute position 0 for that axis and will set the 'is-homed' bool for that axis. See the <> for more information. @@ -1038,23 +1038,23 @@ like 'axisui.jog.x'. One of these pins is 'TRUE' at one time, and the rest are AXIS has HAL pins to indicate which jog radio button is selected in the 'Manual Control' tab. ---- -Type Dir Name -bit OUT axisui.jog.x -bit OUT axisui.jog.y -bit OUT axisui.jog.z -bit OUT axisui.jog.a -bit OUT axisui.jog.b -bit OUT axisui.jog.c -bit OUT axisui.jog.u -bit OUT axisui.jog.v -bit OUT axisui.jog.w +Type Dir Name +bool OUT axisui.jog.x +bool OUT axisui.jog.y +bool OUT axisui.jog.z +bool OUT axisui.jog.a +bool OUT axisui.jog.b +bool OUT axisui.jog.c +bool OUT axisui.jog.u +bool OUT axisui.jog.v +bool OUT axisui.jog.w ---- AXIS has a HAL pin to indicate the jog increment selected on the 'Manual Tab'. ---- Type Dir Name -float OUT axisui.jog.increment +real OUT axisui.jog.increment ---- AXIS has a HAL output pin that indicates when an abort has occurred. The @@ -1062,7 +1062,7 @@ AXIS has a HAL output pin that indicates when an abort has occurred. The ---- Type Dir Name -bit OUT axisui.abort +bool OUT axisui.abort ---- AXIS has a HAL output pin that indicates when an error has occurred. The @@ -1071,7 +1071,7 @@ been dismissed. ---- Type Dir Name -bit OUT axisui.error +bool OUT axisui.error ---- AXIS has HAL input pins to clear the pop up notifications for errors and @@ -1079,16 +1079,16 @@ information. ---- Type Dir Name -bit IN axisui.notifications-clear -bit IN axisui.notifications-clear-error -bit IN axisui.notifications-clear-info +bool IN axisui.notifications-clear +bool IN axisui.notifications-clear-error +bool IN axisui.notifications-clear-info ---- AXIS has a HAL input pin that disables/enables the 'Pause/Resume' function. ---- Type Dir Name -bit IN axisui.resume-inhibit +bool IN axisui.resume-inhibit ---- == AXIS Customization Hints diff --git a/docs/src/gui/gladevcp.adoc b/docs/src/gui/gladevcp.adoc index d4ac2a2d476..9b6fc25cebd 100644 --- a/docs/src/gui/gladevcp.adoc +++ b/docs/src/gui/gladevcp.adoc @@ -451,15 +451,15 @@ They are intended to be used with the Glade user interface editor. With proper installation, the HAL Widgets should show up in Glade's 'HAL Python' widget group. Many HAL specific fields in the Glade 'General' section have an associated mouse-over tool tip. -HAL signals come in two variants, bits and numbers. -Bits are off/on signals. Numbers can be "float", "s32" or "u32". +HAL signals come in two variants, booleans and numbers. +BOOLs are off/on signals. Numbers can be "REAL", "SINT" or "UINT". For more information on HAL data types see the <>. The GladeVCP widgets can either display the value of the signal with an indicator widget, or modify the signal value with a control widget. Thus there are four classes of GladeVCP widgets that you can connect to a HAL signal. Another class of helper widgets allow you to organize and label your panel. -- Widgets for indicating "bit" signals: <> -- Widgets for controlling "bit" signals: <> +- Widgets for indicating "BOOL" signals: <> +- Widgets for controlling "BOOL" signals: <> - Widgets for indicating "number" signals: <>, <>, <>, <> @@ -481,7 +481,7 @@ Most HAL widgets have a single associated HAL pin with the same HAL name as the Exceptions to this rule currently are: -- 'HAL_Spinbutton' and 'HAL_ComboBox', which have two pins: a +-f+ (float) and a +-s+ (s32) pin +- 'HAL_Spinbutton' and 'HAL_ComboBox', which have two pins: a +-f+ (REAL) and a +-s+ (SINT) pin - 'HAL_ProgressBar', which has a +-value+ input pin, and a +-scale+ input pin. === Python attributes and methods of HAL Widgets @@ -506,9 +506,9 @@ HAL Widgets also have a few HAL-specific Python attributes: hal_pin:: The underlying HAL pin Python object in case the widget has a single pin type hal_pin_s, hal_pin_f:: - The s32 and float pins of the 'HAL_Spinbutton' and 'HAL_ComboBox' widgets - note these widgets do not have a 'hal_pin' attribute! + The SINT and REAL pins of the 'HAL_Spinbutton' and 'HAL_ComboBox' widgets - note these widgets do not have a 'hal_pin' attribute! hal_pin_scale:: - The float input pin of 'HAL_ProgressBar' widget representing the maximum absolute value of input. + The REAL input pin of 'HAL_ProgressBar' widget representing the maximum absolute value of input. The are several HAL-specific methods of HAL Widgets, but the only relevant method is: @@ -547,7 +547,7 @@ The example in +configs/apps/gladevcp/complex+ shows how this is handled in Pyth === Buttons This group of widgets are derived from various Gtk buttons and consists of HAL_Button, HAL_ToggleButton, HAL_RadioButton and CheckButton widgets. -All of them have a single output BIT pin named identical to the widget. +All of them have a single output BOOL pin named identical to the widget. Buttons have no additional properties compared to their base Gtk classes. - HAL_Button: instantaneous action, does not retain state. Important signal: `pressed` @@ -582,9 +582,9 @@ See +configs/apps/gladevcp/by-widget/+ for a GladeVCP applications and UI file f HAL_HScale and HAL_VScale are derived from the GtkHScale and GtkVScale respectively. :: - out FLOAT pin + out REAL pin -s:: - out s32 pin + out SINT pin To make a scale useful in Glade, add an 'Adjustment' (General → Adjustment → New or existing adjustment) and edit the adjustment object. It defines the default/min/max/increment values. Also, set adjustment 'Page size' and 'Page increment' to zero to avoid warnings. @@ -598,9 +598,9 @@ image::images/hscale.png[] HAL SpinButton is derived from GtkSpinButton and holds two pins: -f:: - out FLOAT pin + out REAL pin -s:: - out s32 pin + out SINT pin To be useful, Spinbuttons need an adjustment value like scales, see above. @@ -627,11 +627,11 @@ By double clicking the left or right button the scale factor can be increased or `hal_dial` exports its count value as HAL pins: :: - out s32 pin + out SINT pin -scaled:: - out FLOAT pin + out REAL pin -delta-scaled:: - out FLOAT pin + out REAL pin ==== Properties @@ -653,12 +653,12 @@ center_color:: count_type_shown:: There are three counts available 0) Raw CPR counts 1) Scaled counts 2) Delta scaled counts. + default = 1 - * count is based on the CPR selected - it will count positive and negative. It is available as a s32 pin. + * count is based on the CPR selected - it will count positive and negative. It is available as a SINT pin. * Scaled-count is CPR count times the scale - it can be positive and negative. + - If you change the scale the output will immediately reflect the change. It is available as a FLOAT pin. + If you change the scale the output will immediately reflect the change. It is available as a REAL pin. * Delta-scaled-count is cpr count CHANGE, times scale. + If you change the scale, only the counts after that change will be scaled and then added to the current value. + - It is available as a FLOAT pin. + It is available as a REAL pin. scale_adjustable:: Set this to False if you want to disallow scale changes by double clicking the widget. + If this is false the scale factor will not show on the widget. + @@ -686,7 +686,7 @@ Using goobject to set the above listed properties: There are Python methods: * `[widget name].get_value()` + - Will return the counts value as a s32 integer + Will return the counts value as an integer * `[widget name].get_scaled_value()` + Will return the counts value as a float * `[widget name].get_delta_scaled_value()` + @@ -739,7 +739,7 @@ It is recommended to use the mouse wheel, and only for very rough movements the `jogwheel` exports its count value as HAL pin: -s:: - out s32 pin + out SINT pin ==== Properties @@ -795,21 +795,21 @@ The value of each increment as well as the time between two changes can be set u `speedcontrol` offers some HAL pin: -value:: - out float pin + + out REAL pin + The shown value of the widget. -scaled-value:: - out float pin + + out REAL pin + The shown value divided by the scale value, this is very useful, if the velocity is shown in units / min, but LinuxCNC expects it to be in units / second. -scale:: - in float pin + + in REAL pin + The scale to apply. + Default is 60. -increase:: - in bit pin + + in BOOL pin + As long as the pin is true, the value will increase. + Very handy with connected momentary switch. -decrease:: - in bit pin + + in BOOL pin + As long as the pin is true, the value will decrease. + Very handy with connected momentary switch. @@ -910,11 +910,11 @@ image::images/SpeedControl.png[align="center"] `hal_label` is a simple widget based on GtkLabel which represents a HAL pin value in a user-defined format. label_pin_type:: - The pin's HAL type (0:s32, 1:float, 2:u32), see also the tooltip on 'General→HAL pin type' (note this is different from PyVCP which has three label widgets, one for each type). + The pin's HAL type (0:SINT, 1:REAL, 2:UINT), see also the tooltip on 'General→HAL pin type' (note this is different from PyVCP which has three label widgets, one for each type). text_template:: Determines the text displayed - a Python format string to convert the pin value to text. Defaults to +%s+ (values are converted by the str() function) but may contain any legit as an argument to Pythons format() method. + - Example: +Distance: %.03f+ will display the text and the pin value with 3 fractional digits padded with zeros for a FLOAT pin. + Example: +Distance: %.03f+ will display the text and the pin value with 3 fractional digits padded with zeros for a REAL pin. [[gladevcp:hal-table]] === Containers @@ -927,19 +927,19 @@ text_template:: These containers are meant to be used to insensitize (grey out) or hide their children. + Insensitized children will not respond to input. -*HAL_HideTable*:: Has one HAL BIT input pin which controls if its child widgets are hidden or not. +*HAL_HideTable*:: Has one HAL BOOL input pin which controls if its child widgets are hidden or not. + -- *Pin:*:: -`.`:: in bit pin + +`.`:: in BOOL pin + If the pin is low then child widgets are visible which is the default state. -- *HAL_Table* and *HAL_Hbox*:: -Have one HAL BIT input pin which controls if their child widgets are sensitive or not. +Have one HAL BOOL input pin which controls if their child widgets are sensitive or not. + -- *Pin:*:: -`.`:: in bit pin + +`.`:: in BOOL pin + If the pin is low then child widgets are inactive which is the default state. -- *State_Sensitive_Table*:: @@ -962,7 +962,7 @@ If you find some part of your GladeVCP application is 'grayed out' (insensitive) === LED The `hal_led` simulates a real indicator LED. + -It has a single input BIT pin which controls its state: ON or OFF. +It has a single input BOOL pin which controls its state: ON or OFF. ==== Properties @@ -1019,7 +1019,7 @@ Use the HAL_HBar and HAL_VBar widgets instead. ==== Pins -The `HAL_ProgressBar` is derived from gtk.ProgressBar and has two float +The `HAL_ProgressBar` is derived from gtk.ProgressBar and has two REAL HAL input pins: :: @@ -1058,9 +1058,9 @@ image::images/progressbar2.png[align="center"] `HAL_ComboBox` exports two HAL pins: -f:: - Current value, type FLOAT + Current value, type REAL -s:: - Current value, type s32 + Current value, type SINT ==== Properties @@ -1068,7 +1068,7 @@ image::images/progressbar2.png[align="center"] column:: The column index. + - Type s32. + + Type SINT. + Valid range from -1..100. + Defaults value -1. @@ -1076,7 +1076,7 @@ In default mode this widgets sets the pins to the index of the chosen list entry So if your widget has three labels, it may only assume values 0,1 and 2. In column mode (column > -1), the value reported is chosen from the ListStore array as defined in Glade. -So typically your widget definition would have two columns in the ListStore, one with text displayed in the dropdown, and an int or float value to use for that choice. +So typically your widget definition would have two columns in the ListStore, one with text displayed in the dropdown, and an integer or floating point value to use for that choice. There's an example in +configs/apps/by-widget/combobox.{py,ui}+ which uses column mode to pick a float value from the ListStore. @@ -1085,11 +1085,11 @@ If you're confused like me about how to edit ComboBox ListStores and CellRendere [[gladevcp:hal-bars]] === Bars -`HAL_Bar` and `HAL_VBar` widgets for horizontal and vertical bars representing float values. +`HAL_Bar` and `HAL_VBar` widgets for horizontal and vertical bars representing floating point values. ==== Pins -`HAL_Bar` and `HAL_VBar` each have one input FLOAT HAL pin. +`HAL_Bar` and `HAL_VBar` each have one input REAL HAL pin. ==== Properties @@ -1148,11 +1148,11 @@ image::images/vscale.png[align="center"] [[gladevcp:hal-meter]] === Meter -`HAL_Meter` is a widget similar to PyVCP meter - it represents a float value. +`HAL_Meter` is a widget similar to PyVCP meter - it represents a floating point value. ==== Pins -`HAL_Meter` has one input FLOAT HAL pin. +`HAL_Meter` has one input REAL HAL pin. ==== Properties @@ -2137,7 +2137,7 @@ Parameters currently may be names of HAL pins in the GladeVCP component. This is how it works: - assume you have a 'HAL SpinBox' named +speed+, and you want to pass its current value as a parameter in an MDI command. -- The HAL SpinBox will have a float-type HAL pin named speed-f (see HalWidgets description). +- The HAL SpinBox will have a REAL-type HAL pin named speed-f (see HalWidgets description). - To substitute this value in the MDI command, insert the HAL pin name enclosed like so: `${pin-name}` - for the above HAL SpinBox, we could use `(MSG, "The speed is: ${speed-f}")` just to show what's happening. diff --git a/docs/src/gui/gmoccapy.adoc b/docs/src/gui/gmoccapy.adoc index 9cc9809a549..84849b00c5c 100644 --- a/docs/src/gui/gmoccapy.adoc +++ b/docs/src/gui/gmoccapy.adoc @@ -548,26 +548,26 @@ The pin names have changed in GMOCCAPY 2 to order them in a better way. The pins for the right (vertical) buttons are: -* *gmoccapy.v-button.button-0* _(bit IN)_ -* *gmoccapy.v-button.button-1* _(bit IN)_ -* *gmoccapy.v-button.button-2* _(bit IN)_ -* *gmoccapy.v-button.button-3* _(bit IN)_ -* *gmoccapy.v-button.button-4* _(bit IN)_ -* *gmoccapy.v-button.button-5* _(bit IN)_ -* *gmoccapy.v-button.button-6* _(bit IN)_ +* *gmoccapy.v-button.button-0* _(bool IN)_ +* *gmoccapy.v-button.button-1* _(bool IN)_ +* *gmoccapy.v-button.button-2* _(bool IN)_ +* *gmoccapy.v-button.button-3* _(bool IN)_ +* *gmoccapy.v-button.button-4* _(bool IN)_ +* *gmoccapy.v-button.button-5* _(bool IN)_ +* *gmoccapy.v-button.button-6* _(bool IN)_ For the bottom (horizontal) buttons they are: -* *gmoccapy.h-button.button-0* _(bit IN)_ -* *gmoccapy.h-button.button-1* _(bit IN)_ -* *gmoccapy.h-button.button-2* _(bit IN)_ -* *gmoccapy.h-button.button-3* _(bit IN)_ -* *gmoccapy.h-button.button-4* _(bit IN)_ -* *gmoccapy.h-button.button-5* _(bit IN)_ -* *gmoccapy.h-button.button-6* _(bit IN)_ -* *gmoccapy.h-button.button-7* _(bit IN)_ -* *gmoccapy.h-button.button-8* _(bit IN)_ -* *gmoccapy.h-button.button-9* _(bit IN)_ +* *gmoccapy.h-button.button-0* _(bool IN)_ +* *gmoccapy.h-button.button-1* _(bool IN)_ +* *gmoccapy.h-button.button-2* _(bool IN)_ +* *gmoccapy.h-button.button-3* _(bool IN)_ +* *gmoccapy.h-button.button-4* _(bool IN)_ +* *gmoccapy.h-button.button-5* _(bool IN)_ +* *gmoccapy.h-button.button-6* _(bool IN)_ +* *gmoccapy.h-button.button-7* _(bool IN)_ +* *gmoccapy.h-button.button-8* _(bool IN)_ +* *gmoccapy.h-button.button-9* _(bool IN)_ As the buttons in the bottom list will change according to the mode and other influences, the hardware buttons will activate the displayed functions. @@ -646,27 +646,27 @@ Max velocity does not exist any more, it was replaced by rapid override due to t To connect encoders, the following pins are exported: -- *gmoccapy.jog.jog-velocity.counts* _(s32 IN)_ - Jog velocity -- *gmoccapy.jog.jog-velocity.count-enable* _(bit IN)_ - Must be True, to enable counts -- *gmoccapy.feed.feed-override.counts* _(s32 IN)_ - feed override -- *gmoccapy.feed.feed-override.count-enable* _(bit IN)_ - Must be True, to enable counts -- *gmoccapy.feed.reset-feed-override* _(bit IN)_ - reset the feed override to 0% -- *gmoccapy.spindle.spindle-override.counts* _(s32 IN)_ - spindle override -- *gmoccapy.spindle.spindle-override.count-enable* _(bit IN)_ - Must be True, to enable counts -- *gmoccapy.spindle.reset-spindle-override* _(bit IN)_ - reset the spindle override to 0% -- *gmoccapy.rapid.rapid-override.counts* _(s32 IN)_ - Maximal velocity of the machine -- *gmoccapy.rapid.rapid-override.count-enable* _(bit IN)_ - Must be True, to enable counts +- *gmoccapy.jog.jog-velocity.counts* _(sint IN)_ - Jog velocity +- *gmoccapy.jog.jog-velocity.count-enable* _(bool IN)_ - Must be True, to enable counts +- *gmoccapy.feed.feed-override.counts* _(sint IN)_ - feed override +- *gmoccapy.feed.feed-override.count-enable* _(bool IN)_ - Must be True, to enable counts +- *gmoccapy.feed.reset-feed-override* _(bool IN)_ - reset the feed override to 0% +- *gmoccapy.spindle.spindle-override.counts* _(sint IN)_ - spindle override +- *gmoccapy.spindle.spindle-override.count-enable* _(bool IN)_ - Must be True, to enable counts +- *gmoccapy.spindle.reset-spindle-override* _(bool IN)_ - reset the spindle override to 0% +- *gmoccapy.rapid.rapid-override.counts* _(sint IN)_ - Maximal velocity of the machine +- *gmoccapy.rapid.rapid-override.count-enable* _(bool IN)_ - Must be True, to enable counts To connect potentiometers, use the following pins: -- *gmoccapy.jog.jog-velocity.direct-value* _(float IN)_ - To adjust the jog velocity slider -- *gmoccapy.jog.jog-velocity.analog-enable* _(bit IN)_ - Must be True, to allow analog inputs -- *gmoccapy.feed.feed-override.direct-value* _(float IN)_ - To adjust the feed override slider -- *gmoccapy.feed.feed-override.analog-enable* _(bit IN)_ - Must be True, to allow analog inputs -- *gmoccapy.spindle.spindle-override.direct-value* _(float IN)_ - To adjust the spindle override slider -- *gmoccapy.spindle.spindle-override.analog-enable* _(bit IN)_ - Must be True, to allow analog inputs -- *gmoccapy.rapid.rapid-override.direct-value* _(float)_ - To adjust the max velocity slider -- *gmoccapy.rapid.rapid-override.analog-enable* _(bit IN)_ - Must be True, to allow analog inputs +- *gmoccapy.jog.jog-velocity.direct-value* _(real IN)_ - To adjust the jog velocity slider +- *gmoccapy.jog.jog-velocity.analog-enable* _(bool IN)_ - Must be True, to allow analog inputs +- *gmoccapy.feed.feed-override.direct-value* _(real IN)_ - To adjust the feed override slider +- *gmoccapy.feed.feed-override.analog-enable* _(bool IN)_ - Must be True, to allow analog inputs +- *gmoccapy.spindle.spindle-override.direct-value* _(real IN)_ - To adjust the spindle override slider +- *gmoccapy.spindle.spindle-override.analog-enable* _(bool IN)_ - Must be True, to allow analog inputs +- *gmoccapy.rapid.rapid-override.direct-value* _(real IN)_ - To adjust the max velocity slider +- *gmoccapy.rapid.rapid-override.analog-enable* _(bool IN)_ - Must be True, to allow analog inputs In addition, GMOCCAPY 3 offers additional HAL pins to control the new slider widgets with momentary switches. @@ -675,34 +675,34 @@ In a future release it will be integrated in the settings page. .SPEED -- *gmoccapy.spc_jog_vel.increase* _(bit IN)_ - As long as True the value of the slider will increase -- *gmoccapy.spc_jog_vel.decrease* _(bit IN)_ - As long as True the value of the slider will decrease -- *gmoccapy.spc_jog_vel.scale* _(float IN)_ - A value to scale the output value (handy to change units/min to units/sec) -- *gmoccapy.spc_jog_vel.value* _(float OUT)_ - Value of the widget -- *gmoccapy.spc_jog_vel.scaled-value* _(float OUT)_ - Scaled value of the widget +- *gmoccapy.spc_jog_vel.increase* _(bool IN)_ - As long as True the value of the slider will increase +- *gmoccapy.spc_jog_vel.decrease* _(bool IN)_ - As long as True the value of the slider will decrease +- *gmoccapy.spc_jog_vel.scale* _(real IN)_ - A value to scale the output value (handy to change units/min to units/sec) +- *gmoccapy.spc_jog_vel.value* _(real OUT)_ - Value of the widget +- *gmoccapy.spc_jog_vel.scaled-value* _(real OUT)_ - Scaled value of the widget .FEED -- *gmoccapy.spc_feed.increase* _(bit IN)_ - As long as True the value of the slider will increase -- *gmoccapy.spc_feed.decrease* _(bit IN)_ - As long as True the value of the slider will decrease -- *gmoccapy.spc_feed.scale* _(float IN)_ - A value to scale the output value (handy to change units/min to units/sec) -- *gmoccapy.spc_feed.value* _(float OUT)_ - Value of the widget -- *gmoccapy.spc_feed.scaled-value* _(float OUT)_ - Scaled value of the widget +- *gmoccapy.spc_feed.increase* _(bool IN)_ - As long as True the value of the slider will increase +- *gmoccapy.spc_feed.decrease* _(bool IN)_ - As long as True the value of the slider will decrease +- *gmoccapy.spc_feed.scale* _(real IN)_ - A value to scale the output value (handy to change units/min to units/sec) +- *gmoccapy.spc_feed.value* _(real OUT)_ - Value of the widget +- *gmoccapy.spc_feed.scaled-value* _(real OUT)_ - Scaled value of the widget .SPINDLE -- *gmoccapy.spc_spindle.increase* _(bit IN)_ - As long as True the value of the slider will increase -- *gmoccapy.spc_spindle.decrease* _(bit IN)_ - As long as True the value of the slider will decrease -- *gmoccapy.spc_spindle.scale* _(float IN)_ - A value to scale the output value (handy to change units/min to units/sec) -- *gmoccapy.spc_spindle.value* _(float OUT)_ - Value of the widget -- *gmoccapy.spc_spindle.scaled-value* _(float OUT)_ - Scaled value of the widget +- *gmoccapy.spc_spindle.increase* _(bool IN)_ - As long as True the value of the slider will increase +- *gmoccapy.spc_spindle.decrease* _(bool IN)_ - As long as True the value of the slider will decrease +- *gmoccapy.spc_spindle.scale* _(real IN)_ - A value to scale the output value (handy to change units/min to units/sec) +- *gmoccapy.spc_spindle.value* _(real OUT)_ - Value of the widget +- *gmoccapy.spc_spindle.scaled-value* _(real OUT)_ - Scaled value of the widget .RAPIDS -- *gmoccapy.spc_rapid.increase* _(bit IN)_ - As long as True the value of the slider will increase -- *gmoccapy.spc_rapid.decrease* _(bit IN)_ - As long as True the value of the slider will decrease -- *gmoccapy.spc_rapid.scale* _(float IN)_ - A value to scale the output value (handy to change units/min to units/sec) -- *gmoccapy.spc_rapid.value* _(float OUT)_ - Value of the widget -- *gmoccapy.spc_rapid.scaled-value* _(float OUT)_ - Scaled value of the widget +- *gmoccapy.spc_rapid.increase* _(bool IN)_ - As long as True the value of the slider will increase +- *gmoccapy.spc_rapid.decrease* _(bool IN)_ - As long as True the value of the slider will decrease +- *gmoccapy.spc_rapid.scale* _(real IN)_ - A value to scale the output value (handy to change units/min to units/sec) +- *gmoccapy.spc_rapid.value* _(real OUT)_ - Value of the widget +- *gmoccapy.spc_rapid.scaled-value* _(real OUT)_ - Scaled value of the widget -The float pins do accept values from 0.0 to 1.0, being the percentage value you want to set the slider value. +The real pins do accept values from 0.0 to 1.0, being the percentage value you want to set the slider value. [WARNING] If you use both connection types, do not connect the same slider to both pin as the influences between the two has not been tested! @@ -734,22 +734,22 @@ Naming of these HAL pins have changed in GMOCCAPY 2. For the standard XYZ config following HAL pins will be available: -- *gmoccapy.jog.axis.jog-x-plus* _(bit IN)_ -- *gmoccapy.jog.axis.jog-x-minus* _(bit IN)_ -- *gmoccapy.jog.axis.jog-y-plus* _(bit IN)_ -- *gmoccapy.jog.axis.jog-y-minus* _(bit IN)_ -- *gmoccapy.jog.axis.jog-z-plus* _(bit IN)_ -- *gmoccapy.jog.axis.jog-z-minus* _(bit IN)_ +- *gmoccapy.jog.axis.jog-x-plus* _(bool IN)_ +- *gmoccapy.jog.axis.jog-x-minus* _(bool IN)_ +- *gmoccapy.jog.axis.jog-y-plus* _(bool IN)_ +- *gmoccapy.jog.axis.jog-y-minus* _(bool IN)_ +- *gmoccapy.jog.axis.jog-z-plus* _(bool IN)_ +- *gmoccapy.jog.axis.jog-z-minus* _(bool IN)_ If you use a 4 axes configuration, there will be two additional pins: -- *gmoccapy.jog.jog--plus* _(bit IN)_ -- *gmoccapy.jog.jog--minus* _(bit IN)_ +- *gmoccapy.jog.jog--plus* _(bool IN)_ +- *gmoccapy.jog.jog--minus* _(bool IN)_ For a C-axis you will see: -- *gmoccapy.jog.axis.jog-c-plus* _(bit IN)_ -- *gmoccapy.jog.axis.jog-c-minus* _(bit IN)_ +- *gmoccapy.jog.axis.jog-c-plus* _(bool IN)_ +- *gmoccapy.jog.axis.jog-c-minus* _(bool IN)_ [[gmoccapy:jog-velocity]] === Jog Velocities and Turtle-Jog HAL Pin @@ -765,7 +765,7 @@ So using a touch screen it is much easier to select smaller velocities. GMOCCAPY offers this HAL pin to toggle between turtle and rabbit jogging: -- *gmoccapy.jog.turtle-jog* _(bit IN)_ +- *gmoccapy.jog.turtle-jog* _(bool IN)_ === Jog Increment HAL Pins @@ -781,17 +781,17 @@ If you give more increments in your INI file, they will be not reachable from th If you have 6 increments in your INI file like in the example above, you will get *7* pins: -- *gmoccapy.jog.jog-inc-0* _(bit IN)_ - This one is fixed and will represent continuous jogging. -- *gmoccapy.jog.jog-inc-1* _(bit IN)_ - First increment given in the INI file. -- *gmoccapy.jog.jog-inc-2* _(bit IN)_ -- *gmoccapy.jog.jog-inc-3* _(bit IN)_ -- *gmoccapy.jog.jog-inc-4* _(bit IN)_ -- *gmoccapy.jog.jog-inc-5* _(bit IN)_ -- *gmoccapy.jog.jog-inc-6* _(bit IN)_ +- *gmoccapy.jog.jog-inc-0* _(bool IN)_ - This one is fixed and will represent continuous jogging. +- *gmoccapy.jog.jog-inc-1* _(bool IN)_ - First increment given in the INI file. +- *gmoccapy.jog.jog-inc-2* _(bool IN)_ +- *gmoccapy.jog.jog-inc-3* _(bool IN)_ +- *gmoccapy.jog.jog-inc-4* _(bool IN)_ +- *gmoccapy.jog.jog-inc-5* _(bool IN)_ +- *gmoccapy.jog.jog-inc-6* _(bool IN)_ GMOCCAPY offers also a HAL pin to output the selected jog increment: -- *gmoccapy.jog.jog-increment* _(float OUT)_ +- *gmoccapy.jog.jog-increment* _(real OUT)_ [[gmoccapy:hardware-unlock]] === Hardware Unlock Pin @@ -799,14 +799,14 @@ GMOCCAPY offers also a HAL pin to output the selected jog increment: To be able to use a key switch to unlock the settings page, the following pin is exported: -- *gmoccapy.unlock-settings* _(bit IN)_ - The settings page is unlocked if the pin is high. +- *gmoccapy.unlock-settings* _(bool IN)_ - The settings page is unlocked if the pin is high. To use this pin, you need to activate it on the settings page. === Error/Warning Pins -- *gmoccapy.error* _(bit OUT)_ - Indicates an error, so a light can lit or even the machine may be stopped. It will be reset with the pin `gmoccapy.delete-message`. -- *gmoccapy.delete-message* _(bit IN)_ - Will delete the first error and reset the `gmoccapy.error` pin to false after the last error has been cleared. -- *gmoccapy.warning-confirm* _(bit IN)_ - Confirms warning dialog like click on OK +- *gmoccapy.error* _(bool OUT)_ - Indicates an error, so a light can lit or even the machine may be stopped. It will be reset with the pin `gmoccapy.delete-message`. +- *gmoccapy.delete-message* _(bool IN)_ - Will delete the first error and reset the `gmoccapy.error` pin to false after the last error has been cleared. +- *gmoccapy.warning-confirm* _(bool IN)_ - Confirms warning dialog like click on OK [NOTE] @@ -821,18 +821,18 @@ GMOCCAPY may be configured to react to external errors, using 3 different user m .status -- *gmoccapy.messages.status* _(bit IN)_ - Triggers the dialog. +- *gmoccapy.messages.status* _(bool IN)_ - Triggers the dialog. .okdialog -- *gmoccapy.messages.okdialog* _(bit IN)_ - Triggers the dialog. -- *gmoccapy.messages.okdialog-waiting* _(bit OUT)_ - Will be '1' as long as the dialog is open. Closing the message will reset the this pin. +- *gmoccapy.messages.okdialog* _(bool IN)_ - Triggers the dialog. +- *gmoccapy.messages.okdialog-waiting* _(bool OUT)_ - Will be '1' as long as the dialog is open. Closing the message will reset the this pin. .yesnodialog -- *gmoccapy.messages.yesnodialog* _(bit IN)_ - Triggers the dialog. -- *gmoccapy.messages.yesnodialog-waiting* _(bit OUT)_ - Will be '1' as long as the dialog is open. Closing the message will reset the this pin. -- *gmoccapy.messages.yesnodialog-response* _(bit OUT)_ - This pin will change to '1' if the user clicks OK and in all other cases it will be '0'. +- *gmoccapy.messages.yesnodialog* _(bool IN)_ - Triggers the dialog. +- *gmoccapy.messages.yesnodialog-waiting* _(bool OUT)_ - Will be '1' as long as the dialog is open. Closing the message will reset the this pin. +- *gmoccapy.messages.yesnodialog-response* _(bool OUT)_ - This pin will change to '1' if the user clicks OK and in all other cases it will be '0'. This pin will remain '1' until the dialog is called again. To add a user created message you need to add the message to the INI file in the DISPLAY section. @@ -868,20 +868,20 @@ For more information about HAL files and the net command see the There are two pins for spindle feedback: -- *gmoccapy.spindle_feedback_bar* _(float IN)_ - Pin to show the spindle speed on the spindle bar. -- *gmoccapy.spindle_at_speed_led* _(bit IN)_ - Pin to lit the is-at-speed-led. +- *gmoccapy.spindle_feedback_bar* _(real IN)_ - Pin to show the spindle speed on the spindle bar. +- *gmoccapy.spindle_at_speed_led* _(bool IN)_ - Pin to lit the is-at-speed-led. === Pins to Indicate Program Progress Information There are six pins giving information about the program progress: -- *gmoccapy.program.length* _(s32 OUT)_ - Shows the total number of lines of the program. -- *gmoccapy.program.current-line* _(s32 OUT)_ - Indicates the current working line of the program. -- *gmoccapy.program.progress* _(float OUT)_ - Gives the program progress in percentage, by line number. -- *gmoccapy.program.time-total* _(float OUT)_ - The whole program's estimated run time, in seconds. -- *gmoccapy.program.time-remaining* _(float OUT)_ - What is left of it from the line being executed, in seconds. -- *gmoccapy.program.progress-time* _(float OUT)_ - The program progress in percentage, by time rather than by line. +- *gmoccapy.program.length* _(sint OUT)_ - Shows the total number of lines of the program. +- *gmoccapy.program.current-line* _(sint OUT)_ - Indicates the current working line of the program. +- *gmoccapy.program.progress* _(real OUT)_ - Gives the program progress in percentage, by line number. +- *gmoccapy.program.time-total* _(real OUT)_ - The whole program's estimated run time, in seconds. +- *gmoccapy.program.time-remaining* _(real OUT)_ - What is left of it from the line being executed, in seconds. +- *gmoccapy.program.progress-time* _(real OUT)_ - The program progress in percentage, by time rather than by line. The values may not be very accurate if you are working with subroutines or large remap procedures. Also loops will cause different values. @@ -905,10 +905,10 @@ The information is taken from the tool table, so it is up to you what to display .GMOCCAPY tool change dialog image::images/gmoccapy_manual_toolchange.png["Manual tool change",align="left"] - - *gmoccapy.toolchange-number* _(s32 IN)_ - The number of the tool to be changed - - *gmoccapy.toolchange-change* _(bit IN)_ - Indicates that a tool has to be changed - - *gmoccapy.toolchange-changed* _(bit OUT)_ - Indicates tool has been changed - - *gmoccapy.toolchange-confirm* _(bit IN)_ - Confirms tool change + - *gmoccapy.toolchange-number* _(sint IN)_ - The number of the tool to be changed + - *gmoccapy.toolchange-change* _(bool IN)_ - Indicates that a tool has to be changed + - *gmoccapy.toolchange-changed* _(bool OUT)_ - Indicates tool has been changed + - *gmoccapy.toolchange-confirm* _(bool IN)_ - Confirms tool change Usually they are connected like this for a manual tool change: @@ -930,8 +930,8 @@ You should know that they are only active after G43 has been sent. .Tool information area image::images/gmoccapy_tool_info.png["Tool information",align="left"] -- *gmoccapy.tooloffset-x* _(float IN)_ -- *gmoccapy.tooloffset-z* _(float IN)_ +- *gmoccapy.tooloffset-x* _(real IN)_ +- *gmoccapy.tooloffset-z* _(real IN)_ [NOTE] The tooloffset-x line is not needed on a mill, and will not be displayed on a mill with trivial kinematics. @@ -990,11 +990,11 @@ There are several videos showing the way to do that on YouTube. GMOCCAPY offers five pins for tool measurement purposes. These pins are mostly used to be read from a G-code subroutine, so the code can react to different values. -- *gmoccapy.toolmeasurement* _(bit OUT)_ - Enable or not tool measurement -- *gmoccapy.blockheight* _(float OUT)_ - The measured value of the top face of the workpiece -- *gmoccapy.probeheight* _(float OUT)_ - The probe switch height -- *gmoccapy.searchvel* _(float OUT)_ - The velocity to search for the tool probe switch -- *gmoccapy.probevel* _(float OUT)_ - The velocity to probe tool length +- *gmoccapy.toolmeasurement* _(bool OUT)_ - Enable or not tool measurement +- *gmoccapy.blockheight* _(real OUT)_ - The measured value of the top face of the workpiece +- *gmoccapy.probeheight* _(real OUT)_ - The probe switch height +- *gmoccapy.searchvel* _(real OUT)_ - The velocity to search for the tool probe switch +- *gmoccapy.probevel* _(real OUT)_ - The velocity to probe tool length === INI File Modifications diff --git a/docs/src/gui/halui.adoc b/docs/src/gui/halui.adoc index 37d92b8ff73..e9c87f8c1ae 100644 --- a/docs/src/gui/halui.adoc +++ b/docs/src/gui/halui.adoc @@ -69,9 +69,9 @@ net call-mysub halui.mdi-command-02 <= pyvcp.callmysub $ halcmd show pin halui.mdi Component Pins: Owner Type Dir Value Name - 10 bit IN FALSE halui.mdi-command-00 <== quill-up - 10 bit IN FALSE halui.mdi-command-01 <== reference-pos - 10 bit IN FALSE halui.mdi-command-02 <== call-mysub + 10 bool IN FALSE halui.mdi-command-00 <== quill-up + 10 bool IN FALSE halui.mdi-command-01 <== reference-pos + 10 bool IN FALSE halui.mdi-command-02 <== call-mysub ... ---- ==== @@ -98,227 +98,227 @@ Or see http://linuxcnc.org/docs/devel/html/man/man1/halui.1.html === Abort -* 'halui.abort' (bit, in) - pin to send an abort message (clears out most errors) +* 'halui.abort' (bool, in) - pin to send an abort message (clears out most errors) === E-Stop -* 'halui.estop.activate' (bit, in) - pin for requesting E-Stop -* 'halui.estop.is-activated' (bit, out) - indicates E-stop reset -* 'halui.estop.reset' (bit, in) - pin for requesting E-Stop reset +* 'halui.estop.activate' (bool, in) - pin for requesting E-Stop +* 'halui.estop.is-activated' (bool, out) - indicates E-stop reset +* 'halui.estop.reset' (bool, in) - pin for requesting E-Stop reset === Feed Override -* 'halui.feed-override.count-enable' (bit, in) - must be true for 'counts' or 'direct-value' to work. -* 'halui.feed-override.counts' (s32, in) - counts * scale = FO percentage. Can be used with an encoder or 'direct-value'. -* 'halui.feed-override.decrease' (bit, in) - pin for decreasing the FO (-=scale) -* 'halui.feed-override.increase' (bit, in) - pin for increasing the FO (+=scale) -* 'halui.feed-override.reset' (bit, in) - pin for resetting the FO (scale=1.0) -* 'halui.feed-override.direct-value' (bit, in) - false when using encoder to change counts, true when setting counts directly. -* 'halui.feed-override.scale' (float, in) - pin for setting the scale for increase and decrease of 'feed-override'. -* 'halui.feed-override.value' (float, out) - current FO value +* 'halui.feed-override.count-enable' (bool, in) - must be true for 'counts' or 'direct-value' to work. +* 'halui.feed-override.counts' (sint, in) - counts * scale = FO percentage. Can be used with an encoder or 'direct-value'. +* 'halui.feed-override.decrease' (bool, in) - pin for decreasing the FO (-=scale) +* '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.direct-value' (bool, in) - false when using encoder to change counts, true when setting counts directly. +* 'halui.feed-override.scale' (real, in) - pin for setting the scale for increase and decrease of 'feed-override'. +* 'halui.feed-override.value' (real, out) - current FO value === Mist -* 'halui.mist.is-on' (bit, out) - indicates mist is on -* 'halui.mist.off' (bit, in) - pin for requesting mist off -* 'halui.mist.on' (bit, in) - pin for requesting mist on +* 'halui.mist.is-on' (bool, out) - indicates mist is on +* 'halui.mist.off' (bool, in) - pin for requesting mist off +* 'halui.mist.on' (bool, in) - pin for requesting mist on === Flood -* 'halui.flood.is-on' (bit, out) - indicates flood is on -* 'halui.flood.off' (bit, in) - pin for requesting flood off -* 'halui.flood.on' (bit, in) - pin for requesting flood on +* 'halui.flood.is-on' (bool, out) - indicates flood is on +* 'halui.flood.off' (bool, in) - pin for requesting flood off +* 'halui.flood.on' (bool, in) - pin for requesting flood on === Homing -* 'halui.home-all' (bit, in) - pin for requesting all axis to home. This +* 'halui.home-all' (bool, in) - pin for requesting all axis to home. This pin will only be there if HOME_SEQUENCE is set in the INI file. === Machine -* 'halui.machine.units-per-mm' (float out) - pin for machine units-per-mm - (inch:1/25.4, mm:1) according to inifile setting: [TRAJ]LINEAR_UNITS -* 'halui.machine.is-on' (bit, out) - indicates machine on -* 'halui.machine.off' (bit, in) - pin for requesting machine off -* 'halui.machine.on' (bit, in) - pin for requesting machine on +* 'halui.machine.units-per-mm' (real out) - pin for machine units-per-mm + (inch:1/25.4, mm:1) according to inifile setting: [TRAJ]LINEAR_UNITS +* 'halui.machine.is-on' (bool, out) - indicates machine on +* 'halui.machine.off' (bool, in) - pin for requesting machine off +* 'halui.machine.on' (bool, in) - pin for requesting machine on === Max Velocity The maximum linear velocity can be adjusted from 0 to the MAX_VELOCITY that is set in the [TRAJ] section of the INI file. -* 'halui.max-velocity.count-enable' (bit, in) - must be true for 'counts' or 'direct-value' to work. -* 'halui.max-velocity.counts' (s32, in) - counts * scale = MV percentage. Can be used with an encoder or 'direct-value'. -* 'halui.max-velocity.direct-value' (bit, in) - false when using encoder to change counts, true when setting counts directly. -* 'halui.max-velocity.decrease' (bit, in) - pin for decreasing max velocity -* 'halui.max-velocity.increase' (bit, in) - pin for increasing max velocity -* 'halui.max-velocity.scale' (float, in) - the amount applied to the current maximum velocity with each transition from off to on of the increase or decrease pin in machine units per second. -* 'halui.max-velocity.value' (float, out) - is the maximum linear velocity in machine units per second. +* 'halui.max-velocity.count-enable' (bool, in) - must be true for 'counts' or 'direct-value' to work. +* 'halui.max-velocity.counts' (sint, in) - counts * scale = MV percentage. Can be used with an encoder or 'direct-value'. +* 'halui.max-velocity.direct-value' (bool, in) - false when using encoder to change counts, true when setting counts directly. +* 'halui.max-velocity.decrease' (bool, in) - pin for decreasing max velocity +* 'halui.max-velocity.increase' (bool, in) - pin for increasing max velocity +* 'halui.max-velocity.scale' (real, in) - the amount applied to the current maximum velocity with each transition from off to on of the increase or decrease pin in machine units per second. +* 'halui.max-velocity.value' (real, out) - is the maximum linear velocity in machine units per second. === MDI -* 'halui.mdi-command-__' (bit, in) - halui will try to send the MDI - command defined in the INI. __ is a two digit number starting at 00. + +* 'halui.mdi-command-__' (bool, in) - halui will try to send the MDI + command defined in the INI. __ is a two digit number starting at 00. + If the command succeeds then it will place LinuxCNC in the MDI mode and then back to Manual mode. + - If no [HALUI]MDI_COMMAND variables are set in the ini file, no halui.mdi-command- pins will be + If no [HALUI]MDI_COMMAND variables are set in the ini file, no halui.mdi-command- pins will be exported by halui. -* 'halui.halui-mdi-is-running' (bit, out) - execution status of MDI commands sent by halui. The status is active +* 'halui.halui-mdi-is-running' (bool, out) - execution status of MDI commands sent by halui. The status is active even during mode switching. - If no [HALUI]MDI_COMMAND variables are set in the ini file, this pins will not be exported by halui. + If no [HALUI]MDI_COMMAND variables are set in the ini file, this pins will not be exported by halui. === Joint _N_ = joint number (0 ... num_joints-1) + Example: -* 'halui.joint._N_.select' (bit in) - pin for selecting joint _N_ -* 'halui.joint._N_.is-selected' (bit out) - status pin that joint _N_ is selected -* 'halui.joint._N_.has-fault' (bit out) - status pin telling that joint _N_ has a fault -* 'halui.joint._N_.home' (bit in) - pin for homing joint _N_ -* 'halui.joint._N_.is-homed' (bit out) - status pin telling that joint _N_ is homed -* 'halui.joint._N_.on-hard-max-limit' (bit out) - status pin telling that joint _N_ is on the positive hardware limit -* 'halui.joint._N_.on-hard-min-limit' (bit out) - status pin telling that joint _N_ is on the negative hardware limit -* 'halui.joint._N_.on-soft-max-limit' (bit out) - status pin telling that joint _N_ is on the positive software limit -* 'halui.joint._N_.on-soft-min-limit' (bit out) - status pin telling that joint _N_ is on the negative software limit -* 'halui.joint._N_.override-limits' (bit out) - status pin telling that joint _N_'s limits are temporarily overridden -* 'halui.joint._N_.unhome' (bit in) - pin for unhoming joint _N_ -* 'halui.joint.selected' (u32 out) - selected joint number (0 ... num_joints-1) -* 'halui.joint.selected.has-fault' (bit out) - status pin selected joint is faulted -* 'halui.joint.selected.home' (bit in) - pin for homing the selected joint -* 'halui.joint.selected.is-homed' (bit out) - status pin telling that the selected joint is homed -* 'halui.joint.selected.on-hard-max-limit' (bit out) - status pin telling that the selected joint is on the positive hardware limit -* 'halui.joint.selected.on-hard-min-limit' (bit out) - status pin telling that the selected joint is on the negative hardware limit -* 'halui.joint.selected.on-soft-max-limit' (bit out) - status pin telling that the selected joint is on the positive software limit -* 'halui.joint.selected.on-soft-min-limit' (bit out) - status pin telling that the selected joint is on the negative software limit -* 'halui.joint.selected.override-limits' (bit out) - status pin telling that the selected joint's limits are temporarily overridden -* 'halui.joint.selected.unhome' (bit in) - pin for unhoming the selected joint +* '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) -* 'halui.joint.jog-deadband' (float in) - pin for setting jog analog deadband (jog analog inputs smaller/slower than this - in absolute value - are ignored) -* 'halui.joint.jog-speed' (float in) - pin for setting jog speed for plus/minus jogging. -* 'halui.joint._N_.analog' (float in) - pin for jogging the joint _N_ using a float value (e.g. joy-stick). The value, typically set between 0.0 and ±1.0, is used as a jog-speed multiplier. -* 'halui.joint._N_.increment' (float in) - pin for setting the jog increment for joint _N_ when using increment-plus/minus -* 'halui.joint._N_.increment-minus' (bit in) - a rising edge will will make joint _N_ jog in the negative direction by the increment amount -* 'halui.joint._N_.increment-plus' (bit in) - a rising edge will will make joint _N_ jog in the positive direction by the increment amount -* 'halui.joint._N_.minus' (bit in) - pin for jogging joint _N_ in negative direction at the halui.joint.jog-speed velocity -* 'halui.joint._N_.plus' (bit in) - pin for jogging joint _N_ in positive direction at the halui.joint.jog-speed velocity -* 'halui.joint.selected.increment' (float in) - pin for setting the jog increment for the selected joint when using increment-plus/minus -* 'halui.joint.selected.increment-minus' (bit in) - a rising edge will will make the selected joint jog in the negative direction by the increment amount -* 'halui.joint.selected.increment-plus' (bit in) - a rising edge will will make the selected joint jog in the positive direction by the increment amount -* 'halui.joint.selected.minus' (bit in) - pin for jogging the selected joint in negative direction at the halui.joint.jog-speed velocity -* 'halui.joint.selected.plus' (bit in) - pin for jogging the selected joint in positive direction at the halui.joint.jog-speed velocity +* '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. joy-stick). 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 in positive direction at the halui.joint.jog-speed velocity === Axis _L_ = axis letter (xyzabcuvw) -* 'halui.axis._L_.select' (bit) - pin for selecting axis by letter -* 'halui.axis._L_.is-selected' (bit out) - status pin that axis _L_ is selected -* 'halui.axis._L_.pos-commanded' (float out) - Commanded axis position in machine coordinates -* 'halui.axis._L_.pos-feedback' float out) - Feedback axis position in machine coordinates -* 'halui.axis._L_.pos-relative' (float out) - Feedback axis position in relative coordinates +* '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) - Feedback axis position in relative coordinates === Axis Jogging _L_ = axis letter (xyzabcuvw) -* 'halui.axis.jog-deadband' (float in) - pin for setting jog analog deadband (jog analog inputs smaller/slower than this (in absolute value) are ignored) -* 'halui.axis.jog-speed' (float in) - pin for setting jog speed for plus/minus jogging. -* 'halui.axis._L_.analog' (float in) - pin for jogging the axis _L_ using an float 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' (float in) - pin for setting the jog increment for axis _L_ when using increment-plus/minus -* 'halui.axis._L_.increment-minus' (bit in) - a rising edge will will make axis _L_ jog in the negative direction by the increment amount -* 'halui.axis._L_.increment-plus' (bit in) - a rising edge will will make axis _L_ jog in the positive direction by the increment amount -* 'halui.axis._L_.minus' (bit in) - pin for jogging axis _L_ in negative direction at the halui.axis.jog-speed velocity -* 'halui.axis._L_.plus' (bit in) - pin for jogging axis _L_ in positive direction at the halui.axis.jog-speed velocity -* 'halui.axis.selected' (u32 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' (float in) - pin for setting the jog increment for the selected axis when using increment-plus/minus -* 'halui.axis.selected.increment-minus' (bit in) - a rising edge will will make the selected axis jog in the negative direction by the increment amount -* 'halui.axis.selected.increment-plus' (bit in) - a rising edge will will make the selected axis jog in the positive direction by the increment amount -* 'halui.axis.selected.minus' (bit in) - pin for jogging the selected axis in negative direction at the halui.axis.jog-speed velocity -* 'halui.axis.selected.plus' (pin in) - for jogging the selected axis bit in in positive direction at the halui.axis.jog-speed velocity +* '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) - for jogging the selected axis in positive direction at the halui.axis.jog-speed velocity === Mode -* 'halui.mode.auto' (bit, in) - pin for requesting auto mode -* 'halui.mode.is-auto' (bit, out) - indicates auto mode is on -* 'halui.mode.is-joint' (bit, out) - indicates joint by joint jog mode is on -* 'halui.mode.is-manual' (bit, out) - indicates manual mode is on -* 'halui.mode.is-mdi' (bit, out) - indicates MDI mode is on -* 'halui.mode.is-teleop' (bit, out) - indicates coordinated jog mode is on -* 'halui.mode.joint' (bit, in) - pin for requesting joint by joint jog mode -* 'halui.mode.manual' (bit, in) - pin for requesting manual mode -* 'halui.mode.mdi' (bit, in) - pin for requesting MDI mode -* 'halui.mode.teleop' (bit, in) - pin for requesting coordinated jog mode +* 'halui.mode.auto' (bool, in) - pin for requesting auto mode +* 'halui.mode.is-auto' (bool, out) - indicates auto mode is on +* 'halui.mode.is-joint' (bool, out) - indicates joint by joint jog mode is on +* 'halui.mode.is-manual' (bool, out) - indicates manual mode is on +* 'halui.mode.is-mdi' (bool, out) - indicates MDI mode is on +* 'halui.mode.is-teleop' (bool, out) - indicates 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 === Program -* 'halui.program.block-delete.is-on' (bit, out) - status pin telling that block delete is on -* 'halui.program.block-delete.off' (bit, in) - pin for requesting that block delete is off -* 'halui.program.block-delete.on' (bit, in) - pin for requesting that block delete is on -* 'halui.program.is-idle' (bit, out) - status pin telling that no program is running -* 'halui.program.is-paused' (bit, out) - status pin telling that a program is paused -* 'halui.program.is-running' (bit, out) - status pin telling that a program is running -* 'halui.program.optional-stop.is-on' (bit, out) - status pin telling that the optional stop is on -* 'halui.program.optional-stop.off' (bit, in) - pin requesting that the optional stop is off -* 'halui.program.optional-stop.on' (bit, in) - pin requesting that the optional stop is on -* 'halui.program.pause' (bit, in) - pin for pausing a program -* 'halui.program.resume' (bit, in) - pin for resuming a paused program -* 'halui.program.run' (bit, in) - pin for running a program -* 'halui.program.step' (bit, in) - pin for stepping in a program -* 'halui.program.stop' (bit, in) - pin for stopping a 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 paused 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 === Rapid Override -* 'halui.rapid-override.count-enable' (bit in (default: TRUE)) - When TRUE, modify Rapid Override when counts changes. -* 'halui.rapid-override.counts' (s32 in) - counts X scale = Rapid Override percentage. Can be used with an encoder or 'direct-value'. -* 'halui.rapid-override.decrease' (bit in) - pin for decreasing the Rapid Override (-=scale) -* 'halui.rapid-override.direct-value' (bit in) - pin to enable direct value Rapid Override input -* 'halui.rapid-override.increase' (bit in) - pin for increasing the Rapid Override (+=scale) -* 'halui.rapid-override.scale' (float in) - pin for setting the scale on changing the Rapid Override -* 'halui.rapid-override.value' (float out) - current Rapid Override value -* 'halui.rapid-override.reset' (bit, in) - pin for resetting the Rapid Override value (scale=1.0) +* '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. Can be used with an encoder or 'direct-value'. +* '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.scale' (real in) - pin for setting the scale on changing the Rapid Override +* 'halui.rapid-override.value' (real out) - current Rapid Override value +* 'halui.rapid-override.reset' (bool, in) - pin for resetting the Rapid Override value (scale=1.0) === Spindle Override -* 'halui.spindle._N_.override.count-enable' (bit, in) - must be true for 'counts' or 'direct-value' to work. -* 'halui.spindle._N_.override.counts' (s32, in) - counts * scale = SO percentage. Can be used with an encoder or 'direct-value'. -* 'halui.spindle._N_.override.decrease' (bit, in) - pin for decreasing the SO (-=scale) -* 'halui.spindle._N_.override.direct-value' (bit, in) - false when using encoder to change counts, true when setting counts directly. -* 'halui.spindle._N_.override.increase' (bit, in) - pin for increasing the SO (+=scale) -* 'halui.spindle._N_.override.scale' (float, in) - pin for setting the scale on changing the SO -* 'halui.spindle._N_.override.value' (float, out) - current SO value -* 'halui.spindle._N_.override.reset' (bit, in) - pin for resetting the SO value (scale=1.0) +* 'halui.spindle._N_.override.count-enable' (bool, in) - must be true for 'counts' or 'direct-value' to work. +* 'halui.spindle._N_.override.counts' (sint, in) - counts * scale = SO percentage. Can be used with an encoder or 'direct-value'. +* 'halui.spindle._N_.override.decrease' (bool, in) - pin for decreasing the SO (-=scale) +* 'halui.spindle._N_.override.direct-value' (bool, in) - false when using encoder to change counts, true when setting counts directly. +* 'halui.spindle._N_.override.increase' (bool, in) - pin for increasing the SO (+=scale) +* 'halui.spindle._N_.override.scale' (real, in) - pin for setting the scale on changing the SO +* 'halui.spindle._N_.override.value' (real, out) - current SO value +* 'halui.spindle._N_.override.reset' (bool, in) - pin for resetting the SO value (scale=1.0) === Spindle -* 'halui.spindle._N_.brake-is-on' (bit, out) - indicates brake is on -* 'halui.spindle._N_.brake-off' (bit, in) - pin for deactivating spindle/brake -* 'halui.spindle._N_.brake-on' (bit, in) - pin for activating spindle-brake -* 'halui.spindle._N_.decrease' (bit, in) - decreases spindle speed -* 'halui.spindle._N_.forward' (bit, in) - starts the spindle with CW motion -* 'halui.spindle._N_.increase' (bit, in)- increases spindle speed -* 'halui.spindle._N_.is-on' (bit, out) - indicates spindle is on (either direction) -* 'halui.spindle._N_.reverse' (bit, in)- starts the spindle with a CCW motion -* 'halui.spindle._N_.runs-backward' (bit, out) - indicates spindle is on, and in reverse -* 'halui.spindle._N_.runs-forward' (bit, out) - indicates spindle is on, and in forward -* 'halui.spindle._N_.start' (bit, in) - starts the spindle -* 'halui.spindle._N_.stop' (bit, in) - stops the spindle +* 'halui.spindle._N_.brake-is-on' (bool, out) - indicates brake is on +* 'halui.spindle._N_.brake-off' (bool, in) - pin for deactivating spindle/brake +* 'halui.spindle._N_.brake-on' (bool, in) - pin for activating spindle-brake +* 'halui.spindle._N_.decrease' (bool, in) - decreases spindle speed +* 'halui.spindle._N_.forward' (bool, in) - starts the spindle with CW motion +* 'halui.spindle._N_.increase' (bool, in)- increases spindle speed +* 'halui.spindle._N_.is-on' (bool, out) - indicates spindle is on (either direction) +* 'halui.spindle._N_.reverse' (bool, in)- starts the spindle with a CCW motion +* 'halui.spindle._N_.runs-backward' (bool, out) - indicates spindle is on, and in reverse +* 'halui.spindle._N_.runs-forward' (bool, out) - indicates spindle is on, and in forward +* 'halui.spindle._N_.start' (bool, in) - starts the spindle +* 'halui.spindle._N_.stop' (bool, in) - stops the spindle === Tool -* 'halui.tool.length-offset.a' (float out) - current applied tool length offset for the A axis -* 'halui.tool.length-offset.b' (float out) - current applied tool length offset for the B axis -* 'halui.tool.length-offset.c' (float out) - current applied tool length offset for the C axis -* 'halui.tool.length-offset.u' (float out) - current applied tool length offset for the U axis -* 'halui.tool.length-offset.v' (float out) - current applied tool length offset for the V axis -* 'halui.tool.length-offset.w' (float out) - current applied tool length offset for the W axis -* 'halui.tool.length-offset.x' (float out) - current applied tool length offset for the X axis -* 'halui.tool.length-offset.y' (float out) - current applied tool length offset for the Y axis -* 'halui.tool.length-offset.z' (float out) - current applied tool length offset for the Z axis -* 'halui.tool.diameter' (float out) - Current tool diameter, or 0 if no tool is loaded. -* 'halui.tool.number' (u32, out) - indicates current selected 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) - indicates current selected tool // vim: set syntax=asciidoc: diff --git a/docs/src/gui/panelui.adoc b/docs/src/gui/panelui.adoc index c3fadb29a71..dfba0e56f29 100644 --- a/docs/src/gui/panelui.adoc +++ b/docs/src/gui/panelui.adoc @@ -77,7 +77,7 @@ addf sampler.0 servo-thread .*Key words* * KEY= This is used to designate the key that the button responds to. It can be NONE or ROW number and column number eg R1C2. A row and column can only be used once. -* OUTPUT= This sets the Button's output type, eg S32, U32, FLOAT, BIT, NONE, COMMAND, ZMQ. +* OUTPUT= This sets the Button's output type, eg SINT, UINT, REAL, BOOL, NONE, COMMAND, ZMQ. * DEFAULT= This sets the starting output of the group or button. * GROUP= In radiobuttons, designates the group the button interacts with. * GROUP_OUTPUT= sets the output the group pin will be, if this button is active. @@ -124,7 +124,7 @@ Radio button definitions start with the text 'RADIO_BUTTON' inside single bracke # DEFAULT references a button in the group by name and is case sensitive. [[group1_name]] KEY = NONE - OUTPUT = FLOAT + OUTPUT = REAL DEFAULT = small # The triple bracket sections define the buttons in this group. # button names must be unique and are case sensitive. @@ -149,7 +149,7 @@ Radio button definitions start with the text 'RADIO_BUTTON' inside single bracke DEFAULT = false # This button, named 'large' is controller by the row 0 column 2 key. # It will cause the group output to be 1000 when it is pressed. - # It has a S32 output of its own, will be 20 on true and 0 on false. + # It has a SINT output of its own, will be 20 on true and 0 on false. # It also has a status pin which will follow its current state. # since this button is in a group, DEFAULT has no bearing. # since OUTPUT in not 'COMMAND' _COMMAND entries are ignored. @@ -157,7 +157,7 @@ Radio button definitions start with the text 'RADIO_BUTTON' inside single bracke KEY = R0C2 GROUP = group1_name GROUP_OUTPUT = 1000 - OUTPUT = S32 + OUTPUT = SINT STATUS_PIN = True TRUE_STATE = 20 TRUE_COMMAND = NONE, NONE @@ -175,14 +175,14 @@ Toggle button definitions start with the text 'TOGGLE_BUTTON' inside single brac [TOGGLE_BUTTONS] # Each button name inside double brackets, must be unique and is case sensitive. # This button, named 'tool_change'is controller by the row 2 column 5 key. - # It has a BIT output, will output 1 on true state and 0 on false state. + # It has a BOOL output, will output 1 on true state and 0 on false state. # It also has a status pin which will follow its current state. # DEFAULT sets this to true when first initialized. # The _COMMAND are not used since OUTPUT is not set to COMMAND but validation will # add the lines regardless [[tool_change]] KEY = R2C5 - OUTPUT = BIT + OUTPUT = BOOL TRUE_COMMAND = NONE, NONE FALSE_COMMAND = NONE, NONE STATUS_PIN = True diff --git a/docs/src/gui/pyvcp-examples.adoc b/docs/src/gui/pyvcp-examples.adoc index e18287d44c8..97dfdbbc412 100644 --- a/docs/src/gui/pyvcp-examples.adoc +++ b/docs/src/gui/pyvcp-examples.adoc @@ -330,34 +330,34 @@ command at the halcmd prompt: halcmd: show pin Component Pins: Owner Type Dir Value Name - 2 bit IN FALSE parport.0.pin-01-out <== pin01 - 2 bit IN FALSE parport.0.pin-02-out <== pin02 - 2 bit IN FALSE parport.0.pin-03-out - 2 bit IN FALSE parport.0.pin-04-out - 2 bit IN FALSE parport.0.pin-05-out - 2 bit IN FALSE parport.0.pin-06-out - 2 bit IN FALSE parport.0.pin-07-out - 2 bit IN FALSE parport.0.pin-08-out - 2 bit IN FALSE parport.0.pin-09-out - 2 bit OUT TRUE parport.0.pin-10-in ==> pin10 - 2 bit OUT FALSE parport.0.pin-10-in-not - 2 bit OUT TRUE parport.0.pin-11-in ==> pin11 - 2 bit OUT FALSE parport.0.pin-11-in-not - 2 bit OUT TRUE parport.0.pin-12-in - 2 bit OUT FALSE parport.0.pin-12-in-not - 2 bit OUT TRUE parport.0.pin-13-in - 2 bit OUT FALSE parport.0.pin-13-in-not - 2 bit IN FALSE parport.0.pin-14-out - 2 bit OUT TRUE parport.0.pin-15-in - 2 bit OUT FALSE parport.0.pin-15-in-not - 2 bit IN FALSE parport.0.pin-16-out - 2 bit IN FALSE parport.0.pin-17-out - 4 bit OUT FALSE ptest.btn01 ==> pin01 - 4 bit OUT FALSE ptest.btn02 ==> pin02 - 4 bit IN FALSE ptest.led-01 <== pin01 - 4 bit IN FALSE ptest.led-02 <== pin02 - 4 bit IN TRUE ptest.led-10 <== pin10 - 4 bit IN TRUE ptest.led-11 <== pin11 + 2 bool IN FALSE parport.0.pin-01-out <== pin01 + 2 bool IN FALSE parport.0.pin-02-out <== pin02 + 2 bool IN FALSE parport.0.pin-03-out + 2 bool IN FALSE parport.0.pin-04-out + 2 bool IN FALSE parport.0.pin-05-out + 2 bool IN FALSE parport.0.pin-06-out + 2 bool IN FALSE parport.0.pin-07-out + 2 bool IN FALSE parport.0.pin-08-out + 2 bool IN FALSE parport.0.pin-09-out + 2 bool OUT TRUE parport.0.pin-10-in ==> pin10 + 2 bool OUT FALSE parport.0.pin-10-in-not + 2 bool OUT TRUE parport.0.pin-11-in ==> pin11 + 2 bool OUT FALSE parport.0.pin-11-in-not + 2 bool OUT TRUE parport.0.pin-12-in + 2 bool OUT FALSE parport.0.pin-12-in-not + 2 bool OUT TRUE parport.0.pin-13-in + 2 bool OUT FALSE parport.0.pin-13-in-not + 2 bool IN FALSE parport.0.pin-14-out + 2 bool OUT TRUE parport.0.pin-15-in + 2 bool OUT FALSE parport.0.pin-15-in-not + 2 bool IN FALSE parport.0.pin-16-out + 2 bool IN FALSE parport.0.pin-17-out + 4 bool OUT FALSE ptest.btn01 ==> pin01 + 4 bool OUT FALSE ptest.btn02 ==> pin02 + 4 bool IN FALSE ptest.led-01 <== pin01 + 4 bool IN FALSE ptest.led-02 <== pin02 + 4 bool IN TRUE ptest.led-10 <== pin10 + 4 bool IN TRUE ptest.led-11 <== pin11 ---- This will show you what pins are IN and what pins are OUT as well as @@ -489,7 +489,7 @@ net running-rev spindle-vfd.spindle-rev => pyvcp.rev-led Some of the lines might need some explanations. The fwd led line uses the signal created in the custom.hal file whereas the rev led needs to -use the spindle-rev bit. You can't link the spindle-fwd bit twice so +use the spindle-rev bool. You can't link the spindle-fwd bool twice so you use the signal that it was linked to. == Rapid to Home Button diff --git a/docs/src/gui/pyvcp.adoc b/docs/src/gui/pyvcp.adoc index f6d9782f58b..f0cfefe3db2 100644 --- a/docs/src/gui/pyvcp.adoc +++ b/docs/src/gui/pyvcp.adoc @@ -49,7 +49,7 @@ halcmd loadusr pyvcp -c mypanel tiny.xml PyVCP will create the panel for you, which includes two widgets, a Label with the text 'This is a LED indicator', and a LED, used for -displaying the state of a HAL BIT signal. It will also create a HAL +displaying the state of a HAL BOOL signal. It will also create a HAL component named 'mypanel' (all widgets in this panel are connected to pins that start with 'mypanel.'). Since no tag was present inside the tag, PyVCP will automatically name the HAL pin for the @@ -235,17 +235,17 @@ This is usually set as the last command so that HAL shuts down when the panel is == Widgets (((PyVCP Widgets Reference))) -HAL signals come in two variants, bits and numbers. -Bits are off/on signals. Numbers can be 'float', 's32', 'u32', 's64' or 'u64'. +HAL signals come in two variants, bools and numbers. +Bools are off/on signals. Numbers can be 'real', 'sint' or 'uint'. For more information on HAL data types see the <> section. The PyVCP widget can either display the value of the signal with an indicator widget, or modify the signal value with a control widget. Thus there are four classes of PyVCP widgets that you can connect to a HAL signal. A fifth class of helper widgets allow you to organize and label your panel. -* Widgets for indicating 'bit' signals: `led`, `rectled`. -* Widgets for controlling 'bit' signals: `button`, `checkbutton`, `radiobutton`. -* Widgets for indicating 'number' signals: `number`, `s32`, `u32`, `bar`, `meter`. +* Widgets for indicating 'bool' signals: `led`, `rectled`. +* Widgets for controlling 'bool' signals: `button`, `checkbutton`, `radiobutton`. +* Widgets for indicating 'number' signals: `number`, `sint`, `uint`, `bar`, `meter`. * Widgets for controlling 'number' signals: `spinbox`, `scale`, `jogwheel`. * Helper widgets: `hbox`, `vbox`, `table`, `label`, `labelframe`. @@ -356,7 +356,7 @@ image::images/pyvcp_label.png[align="center"] An extension of the text label. -Selectable text label, can display up to 6 label legends when associated bit pin is activated. +Selectable text label, can display up to 6 label legends when associated 'bool' pin is activated. Attach each legend pin to a signal and get a descriptive label when the signal is TRUE. @@ -389,7 +389,7 @@ If you have more than one multilabel the pins created would increment the number === LEDs -A LED is used to indicate the status of a 'bit' halpin. +A LED is used to indicate the status of a 'bool' halpin. The LED color will be on_color when the halpin is true, and off_color otherwise. * '' - makes a round LED @@ -449,7 +449,7 @@ image::images/pyvcp_rectled.png[align="center"] === Buttons -A button is used to control a BIT pin. +A button is used to control a BOOL pin. The pin will be set True when the button is pressed and held down, and will be set False when the button is released. Buttons can use the following optional options. @@ -462,7 +462,7 @@ Buttons can use the following optional options. .Text Button -A text button controls a 'bit' halpin. +A text button controls a 'bool' halpin. The halpin is false until the button is pressed then it is true. The button is a momentary button. @@ -487,7 +487,7 @@ image::images/pyvcp_button.png[align="center"] .Checkbutton -A checkbutton controls a bit halpin. +A checkbutton controls a 'bool' halpin. The halpin will be set True when the button is checked, and false when the button is unchecked. The checkbutton is a toggle type button. The checkbuttons may be set initially as TRUE or FALSE the initval field A pin called changepin is also created automatically, @@ -559,7 +559,7 @@ Number displays can use the following formatting options .Number -The number widget displays the value of a float signal. +The number widget displays the value of a real signal. [source,xml] ---- @@ -586,32 +586,34 @@ image::images/pyvcp_number.png[] * __ - is a 'C-style' format specified that determines how the number is displayed. -.s32 Number -The s32 number widget displays the value of a s32 number. -The syntax is the same as 'number' except the name which is . +.sint Number +The 'sint' number widget displays the value of a `sint` number. +The syntax is the same as 'number' except the name which is ``. Make sure the width is wide enough to cover the largest number you expect to use. +This was formerly known as ``, which is now an alias for ``. [source,xml] ---- - + "my-number" ("Helvetica",24) "6d" 6 - + ---- The above code produced this example: -.Simple s32 Number Example +.Simple sint Number Example image::images/pyvcp_s32.png[] -.u32 Number -The u32 number widget displays the value of a u32 number. -The syntax is the same as 'number' except the name which is . +.uint Number +The 'uint' number widget displays the value of a `uint` number. +The syntax is the same as 'number' except the name which is ``. +This was formerly known as ``, which is now an alias for ``. .Bar -A bar widget displays the value of a FLOAT signal both graphically using a bar display and numerically. +A bar widget displays the value of a 'real' signal both graphically using a bar display and numerically. The color of the bar can be set as one color throughout its range (default using fillcolor) or set to change color, dependent upon the value of the halpin (range1, range2 range3 must all be set, if you only want 2 ranges, set 2 of them to the same color). @@ -654,7 +656,7 @@ The above code produced this example: image::images/pyvcp_bar.png[] .Meter -Meter displays the value of a FLOAT signal using a traditional dial indicator. +Meter displays the value of a 'real' signal using a traditional dial indicator. [source,xml] ---- @@ -681,7 +683,7 @@ image::images/pyvcp_meter.png[] === Number Inputs .Spinbox -A spinbox controls a FLOAT pin. +A spinbox controls a 'real' pin. You increase or decrease the value of the pin by either pressing on the arrows, or pointing at the spinbox and rolling your mouse-wheel. If the param_pin field is set TRUE(1), @@ -707,10 +709,10 @@ The above code produced this example: image::images/pyvcp_spinbox.png[] .Scale -A scale controls a float or a s32 pin. +A scale controls a `real` or a `sint` pin. You increase or decrease the value of the pin be either dragging the slider, or pointing at the scale and rolling your mouse-wheel. -The 'halpin' will have both '-f' and '-i' added to it to form the float and s32 pins. +The 'halpin' will have both '-f' and '-i' added to it to form the `real` and `sint` pins. Width is the width of the slider in vertical and the height of the slider in horizontal orientation. If the param_pin field is set TRUE(1), a pin will be created that can be used to set the spinbox to an initial value and to remotely alter its value without HID input. @@ -752,7 +754,7 @@ greater than "max", unless "min" is negative. ==== .Dial -The Dial outputs a HAL float and reacts to both mouse wheel and dragging. +The Dial outputs a HAL real and reacts to both mouse wheel and dragging. Double left click to increase the resolution and double right click to reduce the resolution by one digit. The output is capped by the min and max values. The is how many tick marks are on the outside of the ring (beware of high numbers). @@ -784,7 +786,7 @@ image::images/pyvcp_dial.png[] .Jogwheel -Jogwheel mimics a real jogwheel by outputting a FLOAT pin which counts +Jogwheel mimics a real jogwheel by outputting a 'real' pin which counts up or down as the wheel is turned, either by dragging in a circular motion, or by rolling the mouse-wheel. @@ -792,8 +794,8 @@ Optional tags: * '"My Text"' displays text * '"grey" "green"' background & active colors -* '1' creates scale text and a `FLOAT.scale` pin to display jog scale -* '1' creates `DRO` and a `BIT.reset` pin to reset DRO. +* '1' creates scale text and a `REAL.scale` pin to display jog scale +* '1' creates `DRO` and a `BOOL.reset` pin to reset DRO. Needs scale_pin for scaled DRO. Shift+click resets DRO also [source,xml] @@ -818,14 +820,15 @@ The images must be in the same directory as your INI file (or in the current dir .Image Bit -The 'image_bit' toggles between two images by setting the halpin to true or false. +The 'image_bool' toggles between two images by setting the halpin to true or false. +This was formerly known as 'image_bit', which is now an alias for 'image_bool'. [source,xml] ---- - + ---- @@ -839,11 +842,12 @@ image::images/pyvcp_image01.png[] .Selectimage True Example image::images/pyvcp_image02.png[] -.Image u32 +.Image uint -The 'image_u32' is the same as 'image_bit', +The 'image_uint' is the same as 'image_bool', except you have essentially an unlimited number of images and you 'select' the image by setting the halpin to a integer value with 0 for the first image in the images list and 1 for the second image, etc. +This was formerly known as 'image_u32', which is now an alias for 'image_uint'. [source,xml] ---- @@ -851,19 +855,19 @@ you 'select' the image by setting the halpin to a integer value with 0 for the f - + ---- The above code produced the following example by adding the stb.gif image. -.Simple image_u32 Example with halpin=0 +.Simple image_uint Example with halpin=0 image::images/pyvcp_image_u32_01.png[] -.Simple image_u32 Example withhalpin=1 +.Simple image_uint Example withhalpin=1 image::images/pyvcp_image01.png[] -.Simple image_u32 Example withhalpin=2 +.Simple image_uint Example withhalpin=2 image::images/pyvcp_image02.png[] Notice that the default is the min even though it is set higher than @@ -1054,7 +1058,7 @@ A table expands on its flexible rows and columns.