Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
108 commits
Select commit Hold shift + click to select a range
db213cc
hal_glib -add a function to run the gobject mainloop once
c-morley Sep 27, 2025
0cd9635
hal_glib -add function to process one ZMQ message
c-morley Jul 9, 2026
3dedf68
hal_glib - add soft key messages
c-morley Jul 15, 2026
b12daca
add python3-zmq package for halui
c-morley Feb 2, 2026
44d5d24
add python3-zmq to python3 depends
c-morley Feb 8, 2026
300b1da
halui initial testing of embedded python halui
c-morley Aug 16, 2025
bfc50ab
makefile - add halui's bridgeui folder
c-morley Feb 9, 2026
925fc42
halui -add an angular jograte pin and send angular jograte messages
c-morley Apr 10, 2026
43666f9
halui -use angular jograte pin/messages for angular axis
c-morley Apr 12, 2026
caa0086
bridge -look for macro commands too
c-morley Jul 3, 2026
688c893
hal_bridge -add a warning if the write address is already used
c-morley Jul 3, 2026
1960be3
halui -add reload display and shutdown pins
c-morley Jul 9, 2026
c3bf239
halui -add softkey pins and message
c-morley Jul 15, 2026
31ed410
halui -change pin names for cycles and softkeys
c-morley Jul 19, 2026
86cc755
halui -gui.mpg-select.0 pin name change
c-morley Jul 21, 2026
93d9066
gladevcp -speedcontrol: put Gstat status in the loop
c-morley Aug 16, 2025
1e74709
gladevcp -gtk_action: add ability to run new style INI MDI commands
c-morley Sep 1, 2025
e72baf3
qtvcp/gladevcp -action: add ability; return to mode after INI mdi
c-morley Sep 2, 2025
206d8d4
gladevcp -speedcontrol -add angular jograte type
c-morley Apr 10, 2026
f396984
gladevcp -speedcontrol: add angular jograte command
c-morley Apr 12, 2026
569a698
gladevcp -hal_gremlin: clear the plot if reloading the screen
c-morley Jul 9, 2026
a82dcec
gladevcp gtk_action -get shutdown to work reliably
c-morley Jul 10, 2026
4bdbdcc
qtvcp -dialog widget: add status message control of tool change dialog
c-morley Sep 1, 2025
97109e6
qtvcp -baseclass: register dialogs for later checks
c-morley Dec 14, 2025
cc25406
qtvcp -axis tool button: allow for MPG selection
c-morley May 28, 2026
ad04fad
qtvcp -dialog_widget: check ZMQ messages directly
c-morley Jul 9, 2026
c929a18
qtvcp -fix close dialog response when using zmq messages
c-morley Jul 29, 2026
0e5de58
iniinfo -parse ini commands in a better way
c-morley Sep 1, 2025
4fe2abd
qtdragon -adjust external pause message to toggle
c-morley Aug 22, 2025
479cccd
qtdragon -add mpg_select button logic control
c-morley Dec 13, 2025
5cf04cd
qtdragon -find the currently visible dialog to send messages to
c-morley Dec 14, 2025
e6e00ec
qtdragon -fix MPG selection from panel
c-morley Mar 15, 2026
a48fd2f
qtdragon -external run of macros, use cycle start for MDI running
c-morley Jul 3, 2026
2761142
qtdragon -add basic support for softkeys to select main tabs
c-morley Jul 21, 2026
e56dee8
qtdragon -add halui test sim
c-morley Aug 23, 2025
1d3d682
gmoccapy/hal_bridge -allow hal_bridge to call macros in gmoccapy
c-morley Jul 27, 2025
54b0584
gmoccapy -ability to run INI MDI commands using HAL bridge
c-morley Jul 31, 2025
45b6c75
gmoccapy -add gstat message control of start and pause
c-morley Sep 1, 2025
27bea47
gmoccapy -used new mode return INI MDI function
c-morley Sep 2, 2025
ed4aa5d
gmoccapy -getinfo.py: fix macro search title
c-morley Oct 18, 2025
39216bf
gmoccapy -change system dialog to accept halui messages
c-morley Dec 14, 2025
736d9c8
gmoccapy -change warning dialogs to accept HALUI messages
c-morley Dec 27, 2025
c1ba4d0
gmoccapy -set jog speed control widget to use messages
c-morley Feb 1, 2026
cddf97c
gmoccapy -use halui message to cancel notifications
c-morley Feb 1, 2026
cf08789
gmoccapy -can submit the current MDI command from HALUI
c-morley Feb 7, 2026
bcd45ab
gmoccapy -update external pause/start behavior
c-morley Apr 4, 2026
eb76a3e
gmoccapy -entry dialog respond to halui, add non blocking wait code
c-morley Apr 10, 2026
d1932d7
gmoccapy -dialogs: search through focused dialogs, clean up code
c-morley Jul 30, 2026
684ac29
gmoccapy -update the angular speedcontrol to new angular type
c-morley Apr 10, 2026
cb0c6f7
gmoccapy -honour shutdown request
c-morley Jul 9, 2026
9bf28e7
gmoccapy -respond to softkeys and make exit do shutdown
c-morley Jul 10, 2026
8439e09
gmoccapy -add MPG input to zoom and scroll
c-morley Jul 10, 2026
ce6c836
gmoccapy -add a halui test config with a sim test panel
c-morley Sep 1, 2025
f6b53b2
axis sim -add a sim test for halui messages
c-morley Sep 27, 2025
0f69a65
gmoccapy -add docs for halui messages
c-morley Jul 20, 2026
edd9a9f
qtdragon -add docs for halui messages
c-morley Jul 20, 2026
aa1344b
halui - add docs for halui zmq messages and pins
c-morley Jul 20, 2026
4cbff68
bridge -quiet print statements
c-morley Aug 11, 2026
ce236e8
gladevcp -speedcontrol: quiet print debugs
c-morley Aug 11, 2026
2087f4c
iniinfo -fix search for nth INI MDI command
c-morley Aug 11, 2026
6601e67
gmoccapy -remove test code from right_panel.ini
c-morley Aug 11, 2026
9354670
halui -change gui pin names
c-morley Aug 11, 2026
0b7b08b
sims -update pin names
c-morley Aug 11, 2026
76a0ba4
gmoccapy -remove one of the halui sims
c-morley Aug 11, 2026
31b0b02
gmoccapy -fix error from y/n dialog wrong function signature
c-morley Aug 11, 2026
d74e8a8
gmoccapy -fix a 'dialog not found' error message
c-morley Aug 11, 2026
6acb23d
gladevcp -speedcontrol: normalise jograte to machine units
c-morley Aug 12, 2026
2ab59bb
gmoccapy -dialogs: hide the close icon
c-morley Aug 12, 2026
986477a
gmoccapy -fix warning dialog bold text
c-morley Aug 12, 2026
b2f6601
gmoccapy -clean up warning dialog code
c-morley Aug 13, 2026
5e78ff7
qtdragon -check if softkey number is invalid
c-morley Aug 13, 2026
385a706
halui -change gui ok/cancel pin names
c-morley Aug 13, 2026
2b423a2
axis sim -change pin names
c-morley Aug 13, 2026
190fd7f
qtdragon sim -change pin names
c-morley Aug 13, 2026
9d4cca5
gmoccapy sim -change pin names
c-morley Aug 13, 2026
d493da9
axis -incorporate zmq messages
c-morley Aug 13, 2026
5716167
axis sim -remove user command file got zmq messages
c-morley Aug 13, 2026
afc3f03
axis -fix macro entry dialog error
c-morley Aug 13, 2026
fd578fd
bridge -Don't break everything if there is no ZMQ library
c-morley Aug 14, 2026
7599e45
halui -quiet debugging prints
c-morley Aug 15, 2026
1e8f8ec
qtvcp -axis tool button: quiet debugging print
c-morley Aug 15, 2026
db585af
gmoccapy -fix some missed warning dialog function signatures
c-morley Aug 18, 2026
cf47bb6
halui -change MPG name to gui.mpg-aux.0
c-morley Aug 18, 2026
9767047
gmoccapy -sim: name change for gui.mpg-aux.0
c-morley Aug 18, 2026
e7e2b90
qtdragon -sim: name change for gui.mpg-aux
c-morley Aug 18, 2026
70eef06
axis -sim: name change for gui.mpg-aux.0
c-morley Aug 18, 2026
30320cd
qtdragon -docs: update
c-morley Aug 18, 2026
e25d0e8
gmoccapy -docs: update
c-morley Aug 18, 2026
18546fe
halui -docs: update
c-morley Aug 18, 2026
19e00ae
gladevcp -fix gtk_actions: SHUT_SYSTEM_DOWN_PROMPT
c-morley Aug 18, 2026
c70c9a4
gmoccapy -add back dialog destroy buttons
c-morley Aug 18, 2026
c4f773d
gmoccappy -fix dialog error when editing tools or offsets
c-morley Aug 19, 2026
61b368b
gmoccapy -create a dialog in gmoccapy for system shutdown
c-morley Aug 19, 2026
aece085
gmoccapy -remove halbridge INI entry
c-morley Aug 19, 2026
21bbdfa
hal_glib -check if zmq read socket is available
c-morley Aug 21, 2026
5d6c49e
bridge - send out a key string with macro/mdi name
c-morley Aug 23, 2026
4756ecf
hal_glib -change request macro function signature to add a key string
c-morley Aug 23, 2026
714fbb7
gmoccapy -fix request macro function to call macro properly
c-morley Aug 23, 2026
25298b9
gmoccapy sims -change panel/ini to run mdi and macros for testing
c-morley Aug 23, 2026
9e31c58
axis -adjust request macro function signature
c-morley Aug 23, 2026
39989b7
qtdragon -adjust request macro function signature
c-morley Aug 23, 2026
a54d5a0
gladevcp -gtk_action remove a debug print statement
c-morley Aug 23, 2026
6f8ec57
gmoccapy -update docs
c-morley Aug 23, 2026
f6ce4e0
qtdragon -update docs
c-morley Aug 23, 2026
1f01130
halui -update docs
c-morley Aug 23, 2026
318eae9
makefile -fix error caused by left over merge line
c-morley Aug 23, 2026
d00b3ce
axis -switch halui.gui.shutdown to shutdown system
c-morley Aug 24, 2026
a1af8fb
axis -docs: add info about HALUI gui pins
c-morley Aug 24, 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