Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
79 commits
Select commit Hold shift + click to select a range
92bb62a
hal_glib -add a function to run the gobject mainloop once
c-morley Sep 27, 2025
aa7e901
hal_glib -add function to process one ZMQ message
c-morley Jul 9, 2026
b6ea859
hal_glib - add soft key messages
c-morley Jul 15, 2026
c5d9dc0
add python3-zmq package for halui
c-morley Feb 2, 2026
9ddce74
add python3-zmq to python3 depends
c-morley Feb 8, 2026
071762a
halui initial testing of embedded python halui
c-morley Aug 16, 2025
aaffa61
makefile - add halui's bridgeui folder
c-morley Feb 9, 2026
5d56eb5
halui -add an angular jograte pin and send angular jograte messages
c-morley Apr 10, 2026
4167fa6
halui -use angular jograte pin/messages for angular axis
c-morley Apr 12, 2026
4a1987a
bridge -look for macro commands too
c-morley Jul 3, 2026
553f296
hal_bridge -add a warning if the write address is already used
c-morley Jul 3, 2026
c18617b
halui -add reload display and shutdown pins
c-morley Jul 9, 2026
a123bd8
halui -add softkey pins and message
c-morley Jul 15, 2026
6e6b324
halui -change pin names for cycles and softkeys
c-morley Jul 19, 2026
f8249f6
halui -gui.mpg-select.0 pin name change
c-morley Jul 21, 2026
dffe9f9
gladevcp -speedcontrol: put Gstat status in the loop
c-morley Aug 16, 2025
be114e3
gladevcp -gtk_action: add ability to run new style INI MDI commands
c-morley Sep 1, 2025
ddd8418
qtvcp/gladevcp -action: add ability; return to mode after INI mdi
c-morley Sep 2, 2025
9fa6211
gladevcp -speedcontrol -add angular jograte type
c-morley Apr 10, 2026
5804bb4
gladevcp -speedcontrol: add angular jograte command
c-morley Apr 12, 2026
77126ec
gladevcp -hal_gremlin: clear the plot if reloading the screen
c-morley Jul 9, 2026
5321a93
gladevcp gtk_action -get shutdown to work reliably
c-morley Jul 10, 2026
0d34fc6
qtvcp -dialog widget: add status message control of tool change dialog
c-morley Sep 1, 2025
f4e8f25
qtvcp -baseclass: register dialogs for later checks
c-morley Dec 14, 2025
d587067
qtvcp -axis tool button: allow for MPG selection
c-morley May 28, 2026
d9f7edd
qtvcp -dialog_widget: check ZMQ messages directly
c-morley Jul 9, 2026
e2d8a3f
qtvcp -fix close dialog response when using zmq messages
c-morley Jul 29, 2026
1c23397
iniinfo -parse ini commands in a better way
c-morley Sep 1, 2025
8f0d2c9
qtdragon -adjust external pause message to toggle
c-morley Aug 22, 2025
1aa6d29
qtdragon -add mpg_select button logic control
c-morley Dec 13, 2025
9da7f95
qtdragon -find the currently visible dialog to send messages to
c-morley Dec 14, 2025
98800e1
qtdragon -fix MPG selection from panel
c-morley Mar 15, 2026
3c4bab2
qtdragon -external run of macros, use cycle start for MDI running
c-morley Jul 3, 2026
9ba0f11
qtdragon -add basic support for softkeys to select main tabs
c-morley Jul 21, 2026
f8dc5f2
qtdragon -add halui test sim
c-morley Aug 23, 2025
6d43058
gmoccapy/hal_bridge -allow hal_bridge to call macros in gmoccapy
c-morley Jul 27, 2025
c9abdc7
gmoccapy -ability to run INI MDI commands using HAL bridge
c-morley Jul 31, 2025
8dfe2ae
gmoccapy -add gstat message control of start and pause
c-morley Sep 1, 2025
44d4657
gmoccapy -used new mode return INI MDI function
c-morley Sep 2, 2025
bb697ed
gmoccapy -getinfo.py: fix macro search title
c-morley Oct 18, 2025
509ede5
gmoccapy -change system dialog to accept halui messages
c-morley Dec 14, 2025
f63fab7
gmoccapy -change warning dialogs to accept HALUI messages
c-morley Dec 27, 2025
0114185
gmoccapy -set jog speed control widget to use messages
c-morley Feb 1, 2026
b9a951a
gmoccapy -use halui message to cancel notifications
c-morley Feb 1, 2026
b7708e5
gmoccapy -can submit the current MDI command from HALUI
c-morley Feb 7, 2026
33b20b1
gmoccapy -update external pause/start behavior
c-morley Apr 4, 2026
1136f17
gmoccapy -entry dialog respond to halui, add non blocking wait code
c-morley Apr 10, 2026
ff3e2f2
gmoccapy -dialogs: search through focused dialogs, clean up code
c-morley Jul 30, 2026
403d5b4
gmoccapy -update the angular speedcontrol to new angular type
c-morley Apr 10, 2026
a727131
gmoccapy -honour shutdown request
c-morley Jul 9, 2026
21676c1
gmoccapy -respond to softkeys and make exit do shutdown
c-morley Jul 10, 2026
cf938b5
gmoccapy -add MPG input to zoom and scroll
c-morley Jul 10, 2026
826b184
gmoccapy -add a halui test config with a sim test panel
c-morley Sep 1, 2025
9e4657e
axis sim -add a sim test for halui messages
c-morley Sep 27, 2025
def65f7
gmoccapy -add docs for halui messages
c-morley Jul 20, 2026
3be6de9
qtdragon -add docs for halui messages
c-morley Jul 20, 2026
5648e49
halui - add docs for halui zmq messages and pins
c-morley Jul 20, 2026
5763d97
bridge -quiet print statements
c-morley Aug 11, 2026
059ff98
gladevcp -speedcontrol: quiet print debugs
c-morley Aug 11, 2026
553bbe1
iniinfo -fix search for nth INI MDI command
c-morley Aug 11, 2026
c4341bc
gmoccapy -remove test code from right_panel.ini
c-morley Aug 11, 2026
e66a9f5
halui -change gui pin names
c-morley Aug 11, 2026
013be29
sims -update pin names
c-morley Aug 11, 2026
0f7b249
gmoccapy -remove one of the halui sims
c-morley Aug 11, 2026
7a775f1
gmoccapy -fix error from y/n dialog wrong function signature
c-morley Aug 11, 2026
cb9fef6
gmoccapy -fix a 'dialog not found' error message
c-morley Aug 11, 2026
ca62692
gladevcp -speedcontrol: normalise jograte to machine units
c-morley Aug 12, 2026
5132da5
gmoccapy -dialogs: hide the close icon
c-morley Aug 12, 2026
56807f6
gmoccapy -fix warning dialog bold text
c-morley Aug 12, 2026
4b0e6c9
gmoccapy -clean up warning dialog code
c-morley Aug 13, 2026
5129937
qtdragon -check if softkey number is invalid
c-morley Aug 13, 2026
c2ce7b5
halui -change gui ok/cancel pin names
c-morley Aug 13, 2026
7044423
axis sim -change pin names
c-morley Aug 13, 2026
07a2084
qtdragon sim -change pin names
c-morley Aug 13, 2026
817cf06
gmoccapy sim -change pin names
c-morley Aug 13, 2026
9f6857c
axis -incorporate zmq messages
c-morley Aug 13, 2026
d4c1dda
axis sim -remove user command file got zmq messages
c-morley Aug 13, 2026
a075f4c
axis -fix macro entry dialog error
c-morley Aug 13, 2026
e7f1776
bridge -Don't break everything if there is no ZMQ library
c-morley Aug 14, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
235 changes: 235 additions & 0 deletions configs/sim/axis/axis_halui_test.ini
Original file line number Diff line number Diff line change
@@ -0,0 +1,235 @@
# EMC controller parameters for a simulated machine.

# General note: Comments can either be preceded with a # or ; - either is
# acceptable, although # is in keeping with most linux config files.

# General section -------------------------------------------------------------
[EMC]

# Version of this INI file
VERSION = 1.1

# Name of machine, for use with display, etc.
MACHINE = LinuxCNC-HAL-SIM-AXIS

# Debug level, 0 means no messages. See src/emc/nml_int/emcglb.h for others
#DEBUG = 0x7FFFFFFF
DEBUG = 0

# Sections for display options ------------------------------------------------
[DISPLAY]

# Name of display program, e.g., axis
DISPLAY = axis

# Cycle time, in seconds, that display will sleep between polls
CYCLE_TIME = 0.100

# Path to help file
HELP_FILE = doc/help.txt

# Initial display setting for position, RELATIVE or MACHINE
POSITION_OFFSET = RELATIVE

# Initial display setting for position, COMMANDED or ACTUAL
POSITION_FEEDBACK = ACTUAL

# Highest value that will be allowed for feed override, 1.0 = 100%
MAX_FEED_OVERRIDE = 1.2
MAX_SPINDLE_OVERRIDE = 1.0

MAX_LINEAR_VELOCITY = 5
DEFAULT_LINEAR_VELOCITY = .25
DEFAULT_SPINDLE_SPEED = 200
# Prefix to be used
PROGRAM_PREFIX = ../../nc_files/

# Introductory graphic
INTRO_GRAPHIC = linuxcnc.gif
INTRO_TIME = 5

#EDITOR = geany
TOOL_EDITOR = tooledit

INCREMENTS = 1 in, 0.1 in, 10 mil, 1 mil, 1mm, .1mm, 1/8000 in

[MDI_COMMAND_LIST]
MDI_COMMAND_MACRO0 = G53 G0 Z0;G0 X0 Y0;Z0, Goto\nUser\nZero
MDI_COMMAND_MACRO1 = G53 G0 Z0;G53 G0 X0 Y0,Goto\nMachn\nZero

[MACROS]
MACRO_COMMAND_MACRO6 = go_to_position x-pos y-pos z-pos, Go To \nPosition
MACRO_COMMAND_MACRO2 = lost, LOST
MACRO_COMMAND_MACRO3 = increment x-incr y-incr, INCR
MACRO_COMMAND_MACRO4 = macro_4
MACRO_COMMAND_MACRO5 = macro_5

[FILTER]
PROGRAM_EXTENSION = .png,.gif,.jpg Grayscale Depth Image
PROGRAM_EXTENSION = .py Python Script

png = image-to-gcode
gif = image-to-gcode
jpg = image-to-gcode
py = python3

# Task controller section -----------------------------------------------------
[TASK]

# Name of task controller program, e.g., milltask
TASK = milltask

# Cycle time, in seconds, that task controller will sleep between polls
CYCLE_TIME = 0.001

# Part program interpreter section --------------------------------------------
[RS274NGC]

# File containing interpreter variables
PARAMETER_FILE = sim.var
SUBROUTINE_PATH = ./macros

# Motion control section ------------------------------------------------------
[EMCMOT]

EMCMOT = motmod

# Timeout for comm to emcmot, in seconds
COMM_TIMEOUT = 1.0

# BASE_PERIOD is unused in this configuration but specified in core_sim.hal
BASE_PERIOD = 0
# Servo task period, in nano-seconds
SERVO_PERIOD = 1000000

# section for main IO controller parameters -----------------------------------
[EMCIO]
# tool table file
TOOL_TABLE = sim.tbl
TOOL_CHANGE_POSITION = 0 0 0
TOOL_CHANGE_QUILL_UP = 1

# Hardware Abstraction Layer section --------------------------------------------------
[HAL]

# The run script first uses halcmd to execute any HALFILE
# files, and then to execute any individual HALCMD commands.
#

# list of hal config files to run through halcmd
# files are executed in the order in which they appear
HALFILE = core_sim.hal
HALFILE = sim_spindle_encoder.hal
HALFILE = axis_manualtoolchange.hal
HALFILE = simulated_home.hal
HALFILE = check_xyz_constraints.hal
HALFILE = cooling.hal

# list of halcmd commands to execute
# commands are executed in the order in which they appear
#HALCMD = save neta

# Single file that is executed after the GUI has started. Only supported by
# AXIS at this time (only AXIS creates a HAL component of its own)
#POSTGUI_HALFILE = test_postgui.hal
POSTGUI_HALCMD = loadusr qtvcp -a -H panel.hal panel

HALUI = halui

# Trajectory planner section --------------------------------------------------
[TRAJ]
COORDINATES = X Y Z
LINEAR_UNITS = inch
ANGULAR_UNITS = degree
MAX_LINEAR_VELOCITY = 4
DEFAULT_LINEAR_ACCELERATION = 100
MAX_LINEAR_ACCELERATION = 100
POSITION_FILE = position.txt

[KINS]
KINEMATICS = trivkins
JOINTS = 3

# Axes sections ---------------
[AXIS_X]
MAX_VELOCITY = 4
MAX_ACCELERATION = 100.0
MIN_LIMIT = -10.0
MAX_LIMIT = 10.0

[AXIS_Y]
MAX_VELOCITY = 4
MAX_ACCELERATION = 100.0
MIN_LIMIT = -10.0
MAX_LIMIT = 10.0

[AXIS_Z]
MAX_VELOCITY = 4
MAX_ACCELERATION = 100.0
MIN_LIMIT = -8.0
MAX_LIMIT = 0.12

# Joints sections -------------
[JOINT_0]
TYPE = LINEAR
HOME = 0.000
MAX_VELOCITY = 5
MAX_ACCELERATION = 50.0
BACKLASH = 0.000
INPUT_SCALE = 4000
OUTPUT_SCALE = 1.000
FERROR = 0.050
MIN_FERROR = 0.010
MIN_LIMIT = -10.0
MAX_LIMIT = 10.0
HOME_OFFSET = 0.0
HOME_SEARCH_VEL = 20.0
HOME_LATCH_VEL = 20.0
HOME_USE_INDEX = NO
HOME_IGNORE_LIMITS = NO
HOME_SEQUENCE = 1
HOME_IS_SHARED = 1

[JOINT_1]
TYPE = LINEAR
HOME = 0.000
MAX_VELOCITY = 5
MAX_ACCELERATION = 50.0
BACKLASH = 0.000
INPUT_SCALE = 4000
OUTPUT_SCALE = 1.000
FERROR = 0.050
MIN_FERROR = 0.010
MIN_LIMIT = -10.0
MAX_LIMIT = 10.0
HOME_OFFSET = 0.0
HOME_SEARCH_VEL = 20.0
HOME_LATCH_VEL = 20.0
HOME_USE_INDEX = NO
HOME_IGNORE_LIMITS = NO
HOME_SEQUENCE = 1

[JOINT_2]
TYPE = LINEAR
HOME = 0.0
MAX_VELOCITY = 5
MAX_ACCELERATION = 50.0
BACKLASH = 0.000
INPUT_SCALE = 4000
OUTPUT_SCALE = 1.000
MIN_LIMIT = -8.0

# Normally the Z max should be 0.000!
# The only reason it's greater than 0 here is so that the splash screen
# gcode will run.
MAX_LIMIT = 0.12

FERROR = 0.050
MIN_FERROR = 0.010
HOME_OFFSET = 1.0
HOME_SEARCH_VEL = 20.0
HOME_LATCH_VEL = 20.0
HOME_USE_INDEX = NO
HOME_IGNORE_LIMITS = NO
HOME_SEQUENCE = 0
HOME_IS_SHARED = 1
24 changes: 24 additions & 0 deletions configs/sim/axis/macros/go_to_position.ngc
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
; Testfile go to position
; will jog the machine to a given position

O<go_to_position> sub

G17
G21
G54
G61
G40
G49
G80
G90

;#1 = <X-Pos>
;#2 = <Y-Pos>
;#3 = <Z-Pos>

(DEBUG, Will now move machine to %fX = #1 , Y = #2 , Z = #3)
G0 X #1 Y #2 Z #3

O<go_to_position> endsub

M2
24 changes: 24 additions & 0 deletions configs/sim/axis/macros/hello_world.ngc
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
; Testfile "hello world"
; will just give messages

O<hello_world> sub

G17
G21
G54
G61
G40
G49
G80
G90

G0 X10

(MSG, Hello World)

G0X-10

O<hello_world> endsub

M2

22 changes: 22 additions & 0 deletions configs/sim/axis/macros/increment.ngc
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
; Testfile "increment"
; will move the machine in relative coordinates

O<increment> sub

G17
G21
G54
G61
G40
G49
G80
G90

G91 G0 X#1 Y#2
G90

(DEBUG, %fX was [#1] and Y was [#2])

O<increment> endsub

M2
24 changes: 24 additions & 0 deletions configs/sim/axis/macros/lost.ngc
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
; Testfile Lost
; will jog to machine zero and set all axis to zero

O<lost> sub

G17
G21
G54
G61
G40
G49
G80
G90

(MSG, Will now move to machine zero)
G53 G0 X0 Y0 Z0
(MSG, will now set all axis to zero)
G10 L20 P0 X0 Y0 Z0
(MSG, all done)


O<lost> endsub

M2
39 changes: 39 additions & 0 deletions configs/sim/axis/macros/macro_Instructions.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
This is a small instruction to include macros in Qtdragon.

In your INI File you need to introduce a section called [MACROS]
and for every macro you'll need to include a one-liner like so:

MACRO = jog_around ,MOVE\nTHERE
or
MACRO = increment xinc yinc ,INCR

where xinc and yinc are placeholders
Anything after the comma is the button text.

During execution of the macro, you will be asked to enter the values.

You are allowed to introduce 9 macros!
If you enter more macros, only the first 9 will appear with button in gmoccapy.

In the [RS274NGC] section you may want to give a path to your macros like so:

[RS274NGC]
SUBROUTINE_PATH = nc_files/subroutines

or you place your macros in the nc_files folder.

Each macro must have it's own file in one of the mentioned folders and they are normal subroutines, so the must begin with:

O<jog_around> sub

and end with

O<jog_around> endsub
M2

The name of the file must be jog_around.ngc.
And an macro must contain at least one movement of one axis.

macro name in INI file have to be the same as the file name and the sub must have also the same name (case sensitive!)!


Loading
Loading