Import LinuxCNC source tree

This commit is contained in:
Wang Dequan
2026-08-20 06:17:39 +08:00
commit 2c814634c3
9429 changed files with 10556013 additions and 0 deletions

2
tests/io-startup/.gitignore vendored Normal file
View File

@@ -0,0 +1,2 @@
sim.var*
tool.tbl

2
tests/io-startup/checkresult Executable file
View File

@@ -0,0 +1,2 @@
#!/bin/sh
exit 0 # test failure is indicated by test.sh exit value

View File

@@ -0,0 +1 @@
../../checkresult

View File

@@ -0,0 +1 @@
../test.ini

View File

@@ -0,0 +1 @@
../../shared-test.sh

View File

@@ -0,0 +1,3 @@
T2 P2 D1.123 Z+2.0 ;
T1 P1 D0.125000 Z+1.000000 ;
T7 P7 D0.500000 Z+3.000000 ;

View File

@@ -0,0 +1,100 @@
[EMC]
# The version string for this INI file.
VERSION = 1.1
DEBUG = 0x7fffffff
[DISPLAY]
DISPLAY = ../../test-ui.py
[RS274NGC]
PARAMETER_FILE = sim.var
[EMCMOT]
EMCMOT = motmod
COMM_TIMEOUT = 4.0
BASE_PERIOD = 0
SERVO_PERIOD = 1000000
[TASK]
TASK = milltask
CYCLE_TIME = 0.001
MDI_QUEUED_COMMANDS=10000
[HAL]
HALFILE = LIB:core_sim.hal
POSTGUI_HALFILE = ../../postgui.hal
[TRAJ]
NO_FORCE_HOMING=1
AXES = 3
COORDINATES = X Y Z
HOME = 0 0 0
LINEAR_UNITS = inch
ANGULAR_UNITS = degree
DEFAULT_LINEAR_VELOCITY = 1.2
MAX_LINEAR_VELOCITY = 4
[EMCIO]
TOOL_TABLE = tool.tbl
RANDOM_TOOLCHANGER = 0
[KINS]
KINEMATICS = trivkins
JOINTS = 3
[AXIS_X]
MIN_LIMIT = -40.0
MAX_LIMIT = 40.0
MAX_VELOCITY = 4
MAX_ACCELERATION = 1000.0
[JOINT_0]
TYPE = LINEAR
HOME = 0.000
MAX_VELOCITY = 4
MAX_ACCELERATION = 1000.0
BACKLASH = 0.000
INPUT_SCALE = 4000
OUTPUT_SCALE = 1.000
MIN_LIMIT = -40.0
MAX_LIMIT = 40.0
FERROR = 0.050
MIN_FERROR = 0.010
[AXIS_Y]
MIN_LIMIT = -40.0
MAX_LIMIT = 40.0
MAX_VELOCITY = 4
MAX_ACCELERATION = 1000.0
[JOINT_1]
TYPE = LINEAR
HOME = 0.000
MAX_VELOCITY = 4
MAX_ACCELERATION = 1000.0
BACKLASH = 0.000
INPUT_SCALE = 4000
OUTPUT_SCALE = 1.000
MIN_LIMIT = -40.0
MAX_LIMIT = 40.0
FERROR = 0.050
MIN_FERROR = 0.010
[AXIS_Z]
MIN_LIMIT = -4.0
MAX_LIMIT = 4.0
MAX_VELOCITY = 4
MAX_ACCELERATION = 1000.0
[JOINT_2]
TYPE = LINEAR
HOME = 0.0
MAX_VELOCITY = 4
MAX_ACCELERATION = 1000.0
BACKLASH = 0.000
INPUT_SCALE = 4000
OUTPUT_SCALE = 1.000
MIN_LIMIT = -4.0
MAX_LIMIT = 4.0
FERROR = 0.050
MIN_FERROR = 0.010

View File

@@ -0,0 +1 @@
../../checkresult

View File

@@ -0,0 +1 @@
../test.ini

View File

@@ -0,0 +1 @@
../../shared-test.sh

View File

@@ -0,0 +1,3 @@
T2 P0 D1.123 Z+2.0 ;
T1 P1 D0.125000 Z+1.000000 ;
T7 P7 D0.500000 Z+3.000000 ;

View File

@@ -0,0 +1,4 @@
net tool-number <= iocontrol.0.tool-number
net tool-number <= test-ui.tool-number

View File

@@ -0,0 +1 @@
../../checkresult

View File

@@ -0,0 +1 @@
-1

View File

@@ -0,0 +1 @@
../test.ini

View File

@@ -0,0 +1 @@
../../shared-test.sh

View File

@@ -0,0 +1,3 @@
T2 P2 D1.123 Z+2.0 ;
T1 P1 D0.125000 Z+1.000000 ;
T7 P7 D0.500000 Z+3.000000 ;

View File

@@ -0,0 +1,99 @@
[EMC]
VERSION = 1.1
DEBUG = 0x7fffffff
[DISPLAY]
DISPLAY = ../../test-ui.py
[RS274NGC]
PARAMETER_FILE = sim.var
[EMCMOT]
EMCMOT = motmod
COMM_TIMEOUT = 4.0
BASE_PERIOD = 0
SERVO_PERIOD = 1000000
[TASK]
TASK = milltask
CYCLE_TIME = 0.001
MDI_QUEUED_COMMANDS=10000
[HAL]
HALFILE = LIB:core_sim.hal
POSTGUI_HALFILE = ../../postgui.hal
[TRAJ]
NO_FORCE_HOMING=1
AXES = 3
COORDINATES = X Y Z
HOME = 0 0 0
LINEAR_UNITS = inch
ANGULAR_UNITS = degree
DEFAULT_LINEAR_VELOCITY = 1.2
MAX_LINEAR_VELOCITY = 4
[EMCIO]
TOOL_TABLE = tool.tbl
RANDOM_TOOLCHANGER = 1
[KINS]
KINEMATICS = trivkins
JOINTS = 3
[AXIS_X]
MIN_LIMIT = -40.0
MAX_LIMIT = 40.0
MAX_VELOCITY = 4
MAX_ACCELERATION = 1000.0
[JOINT_0]
TYPE = LINEAR
HOME = 0.000
MAX_VELOCITY = 4
MAX_ACCELERATION = 1000.0
BACKLASH = 0.000
INPUT_SCALE = 4000
OUTPUT_SCALE = 1.000
MIN_LIMIT = -40.0
MAX_LIMIT = 40.0
FERROR = 0.050
MIN_FERROR = 0.010
[AXIS_Y]
MIN_LIMIT = -40.0
MAX_LIMIT = 40.0
MAX_VELOCITY = 4
MAX_ACCELERATION = 1000.0
[JOINT_1]
TYPE = LINEAR
HOME = 0.000
MAX_VELOCITY = 4
MAX_ACCELERATION = 1000.0
BACKLASH = 0.000
INPUT_SCALE = 4000
OUTPUT_SCALE = 1.000
MIN_LIMIT = -40.0
MAX_LIMIT = 40.0
FERROR = 0.050
MIN_FERROR = 0.010
[AXIS_Z]
MIN_LIMIT = -4.0
MAX_LIMIT = 4.0
MAX_VELOCITY = 4
MAX_ACCELERATION = 1000.0
[JOINT_2]
TYPE = LINEAR
HOME = 0.0
MAX_VELOCITY = 4
MAX_ACCELERATION = 1000.0
BACKLASH = 0.000
INPUT_SCALE = 4000
OUTPUT_SCALE = 1.000
MIN_LIMIT = -4.0
MAX_LIMIT = 4.0
FERROR = 0.050
MIN_FERROR = 0.010

View File

@@ -0,0 +1 @@
../../checkresult

View File

@@ -0,0 +1 @@
2

View File

@@ -0,0 +1 @@
../test.ini

View File

@@ -0,0 +1 @@
../../shared-test.sh

View File

@@ -0,0 +1,3 @@
T2 P0 D1.123 Z+2.0 ;
T1 P1 D0.125000 Z+1.000000 ;
T7 P7 D0.500000 Z+3.000000 ;

View File

@@ -0,0 +1,6 @@
#!/bin/bash
rm -f tool.tbl
cp tool.tbl.original tool.tbl
exec linuxcnc -r test.ini

60
tests/io-startup/test-ui.py Executable file
View File

@@ -0,0 +1,60 @@
#!/usr/bin/env python3
import linuxcnc_util
import hal
import time
import sys
import os
# this is how long we wait for linuxcnc to do our bidding
timeout = 5.0
# unbuffer stdout
sys.stdout = os.fdopen(sys.stdout.fileno(), 'w')
def wait_for_pin_value(pin_name, value, timeout=5.0):
start_time = time.time()
while (time.time() - start_time) < timeout:
time.sleep(0.1)
if h[pin_name] == value:
print("pin '%s' reached target value '%s' after %f seconds" % (pin_name, value, time.time() - start_time))
return
print("Error: pin '%s' didn't reach value '%s' within timeout of %f seconds (it's %s instead)" % (pin_name, value, timeout, h[pin_name]))
sys.exit(1)
f = open('expected-startup-tool-number', 'r')
contents = f.read()
f.close()
expected_startup_tool_number = int(contents)
print("expecting tool number %d" % expected_startup_tool_number)
#
# set up pins
# shell out to halcmd to make nets to halui and motion
#
h = hal.component("test-ui")
h.newpin("tool-number", hal.HAL_S32, hal.HAL_IN)
h.ready() # mark the component as 'ready'
os.system("halcmd source ../../postgui.hal")
#
# connect to LinuxCNC
#
l = linuxcnc_util.LinuxCNC()
wait_for_pin_value('tool-number', expected_startup_tool_number)
l.wait_for_tool_in_spindle(expected_startup_tool_number)
sys.exit(0)