Import LinuxCNC source tree
This commit is contained in:
4
tests/linuxcncrsh/.gitignore
vendored
Normal file
4
tests/linuxcncrsh/.gitignore
vendored
Normal file
@@ -0,0 +1,4 @@
|
||||
telnet-output
|
||||
gcode-output
|
||||
sim.var
|
||||
sim.var.bak
|
||||
14
tests/linuxcncrsh/checkresult
Executable file
14
tests/linuxcncrsh/checkresult
Executable file
@@ -0,0 +1,14 @@
|
||||
#!/bin/bash
|
||||
|
||||
TEST_DIR=$(dirname "$1")
|
||||
cd "$TEST_DIR" || { echo "E: Could not change directory to '$TEST_DIR'"; exit 1; }
|
||||
|
||||
# show deviation from expected output
|
||||
diff -uwB expected-gcode-output gcode-output || exit 1
|
||||
diff -uwB expected-telnet-output telnet-output || exit 1
|
||||
|
||||
# search all output for possible errors
|
||||
grep 'error_type' result && exit 1
|
||||
grep 'CMS_ERROR' result && exit 1
|
||||
grep 'Recent errors repeated' result && exit 1
|
||||
exit 0
|
||||
406
tests/linuxcncrsh/expected-gcode-output
Normal file
406
tests/linuxcncrsh/expected-gcode-output
Normal file
@@ -0,0 +1,406 @@
|
||||
P is -1.000000
|
||||
Q is -2.000000
|
||||
P is 0.000000
|
||||
Q is 0.000000
|
||||
P is 1.000000
|
||||
Q is 0.000000
|
||||
P is 2.000000
|
||||
Q is 0.000000
|
||||
P is 3.000000
|
||||
Q is 0.000000
|
||||
P is 4.000000
|
||||
Q is 0.000000
|
||||
P is 5.000000
|
||||
Q is 0.000000
|
||||
P is 6.000000
|
||||
Q is 0.000000
|
||||
P is 7.000000
|
||||
Q is 0.000000
|
||||
P is 8.000000
|
||||
Q is 0.000000
|
||||
P is 9.000000
|
||||
Q is 0.000000
|
||||
P is 10.000000
|
||||
Q is 0.000000
|
||||
P is 11.000000
|
||||
Q is 0.000000
|
||||
P is 12.000000
|
||||
Q is 0.000000
|
||||
P is 13.000000
|
||||
Q is 0.000000
|
||||
P is 14.000000
|
||||
Q is 0.000000
|
||||
P is 15.000000
|
||||
Q is 0.000000
|
||||
P is 16.000000
|
||||
Q is 0.000000
|
||||
P is 17.000000
|
||||
Q is 0.000000
|
||||
P is 18.000000
|
||||
Q is 0.000000
|
||||
P is 19.000000
|
||||
Q is 0.000000
|
||||
P is 20.000000
|
||||
Q is 0.000000
|
||||
P is 21.000000
|
||||
Q is 0.000000
|
||||
P is 22.000000
|
||||
Q is 0.000000
|
||||
P is 23.000000
|
||||
Q is 0.000000
|
||||
P is 24.000000
|
||||
Q is 0.000000
|
||||
P is 25.000000
|
||||
Q is 0.000000
|
||||
P is 26.000000
|
||||
Q is 0.000000
|
||||
P is 27.000000
|
||||
Q is 0.000000
|
||||
P is 28.000000
|
||||
Q is 0.000000
|
||||
P is 29.000000
|
||||
Q is 0.000000
|
||||
P is 30.000000
|
||||
Q is 0.000000
|
||||
P is 31.000000
|
||||
Q is 0.000000
|
||||
P is 32.000000
|
||||
Q is 0.000000
|
||||
P is 33.000000
|
||||
Q is 0.000000
|
||||
P is 34.000000
|
||||
Q is 0.000000
|
||||
P is 35.000000
|
||||
Q is 0.000000
|
||||
P is 36.000000
|
||||
Q is 0.000000
|
||||
P is 37.000000
|
||||
Q is 0.000000
|
||||
P is 38.000000
|
||||
Q is 0.000000
|
||||
P is 39.000000
|
||||
Q is 0.000000
|
||||
P is 40.000000
|
||||
Q is 0.000000
|
||||
P is 41.000000
|
||||
Q is 0.000000
|
||||
P is 42.000000
|
||||
Q is 0.000000
|
||||
P is 43.000000
|
||||
Q is 0.000000
|
||||
P is 44.000000
|
||||
Q is 0.000000
|
||||
P is 45.000000
|
||||
Q is 0.000000
|
||||
P is 46.000000
|
||||
Q is 0.000000
|
||||
P is 47.000000
|
||||
Q is 0.000000
|
||||
P is 48.000000
|
||||
Q is 0.000000
|
||||
P is 49.000000
|
||||
Q is 0.000000
|
||||
P is 50.000000
|
||||
Q is 0.000000
|
||||
P is 51.000000
|
||||
Q is 0.000000
|
||||
P is 52.000000
|
||||
Q is 0.000000
|
||||
P is 53.000000
|
||||
Q is 0.000000
|
||||
P is 54.000000
|
||||
Q is 0.000000
|
||||
P is 55.000000
|
||||
Q is 0.000000
|
||||
P is 56.000000
|
||||
Q is 0.000000
|
||||
P is 57.000000
|
||||
Q is 0.000000
|
||||
P is 58.000000
|
||||
Q is 0.000000
|
||||
P is 59.000000
|
||||
Q is 0.000000
|
||||
P is 60.000000
|
||||
Q is 0.000000
|
||||
P is 61.000000
|
||||
Q is 0.000000
|
||||
P is 62.000000
|
||||
Q is 0.000000
|
||||
P is 63.000000
|
||||
Q is 0.000000
|
||||
P is 64.000000
|
||||
Q is 0.000000
|
||||
P is 65.000000
|
||||
Q is 0.000000
|
||||
P is 66.000000
|
||||
Q is 0.000000
|
||||
P is 67.000000
|
||||
Q is 0.000000
|
||||
P is 68.000000
|
||||
Q is 0.000000
|
||||
P is 69.000000
|
||||
Q is 0.000000
|
||||
P is 70.000000
|
||||
Q is 0.000000
|
||||
P is 71.000000
|
||||
Q is 0.000000
|
||||
P is 72.000000
|
||||
Q is 0.000000
|
||||
P is 73.000000
|
||||
Q is 0.000000
|
||||
P is 74.000000
|
||||
Q is 0.000000
|
||||
P is 75.000000
|
||||
Q is 0.000000
|
||||
P is 76.000000
|
||||
Q is 0.000000
|
||||
P is 77.000000
|
||||
Q is 0.000000
|
||||
P is 78.000000
|
||||
Q is 0.000000
|
||||
P is 79.000000
|
||||
Q is 0.000000
|
||||
P is 80.000000
|
||||
Q is 0.000000
|
||||
P is 81.000000
|
||||
Q is 0.000000
|
||||
P is 82.000000
|
||||
Q is 0.000000
|
||||
P is 83.000000
|
||||
Q is 0.000000
|
||||
P is 84.000000
|
||||
Q is 0.000000
|
||||
P is 85.000000
|
||||
Q is 0.000000
|
||||
P is 86.000000
|
||||
Q is 0.000000
|
||||
P is 87.000000
|
||||
Q is 0.000000
|
||||
P is 88.000000
|
||||
Q is 0.000000
|
||||
P is 89.000000
|
||||
Q is 0.000000
|
||||
P is 90.000000
|
||||
Q is 0.000000
|
||||
P is 91.000000
|
||||
Q is 0.000000
|
||||
P is 92.000000
|
||||
Q is 0.000000
|
||||
P is 93.000000
|
||||
Q is 0.000000
|
||||
P is 94.000000
|
||||
Q is 0.000000
|
||||
P is 95.000000
|
||||
Q is 0.000000
|
||||
P is 96.000000
|
||||
Q is 0.000000
|
||||
P is 97.000000
|
||||
Q is 0.000000
|
||||
P is 98.000000
|
||||
Q is 0.000000
|
||||
P is 99.000000
|
||||
Q is 0.000000
|
||||
P is 100.000000
|
||||
Q is 0.000000
|
||||
P is 101.000000
|
||||
Q is 0.000000
|
||||
P is 102.000000
|
||||
Q is 0.000000
|
||||
P is 103.000000
|
||||
Q is 0.000000
|
||||
P is 104.000000
|
||||
Q is 0.000000
|
||||
P is 105.000000
|
||||
Q is 0.000000
|
||||
P is 106.000000
|
||||
Q is 0.000000
|
||||
P is 107.000000
|
||||
Q is 0.000000
|
||||
P is 108.000000
|
||||
Q is 0.000000
|
||||
P is 109.000000
|
||||
Q is 0.000000
|
||||
P is 110.000000
|
||||
Q is 0.000000
|
||||
P is 111.000000
|
||||
Q is 0.000000
|
||||
P is 112.000000
|
||||
Q is 0.000000
|
||||
P is 113.000000
|
||||
Q is 0.000000
|
||||
P is 114.000000
|
||||
Q is 0.000000
|
||||
P is 115.000000
|
||||
Q is 0.000000
|
||||
P is 116.000000
|
||||
Q is 0.000000
|
||||
P is 117.000000
|
||||
Q is 0.000000
|
||||
P is 118.000000
|
||||
Q is 0.000000
|
||||
P is 119.000000
|
||||
Q is 0.000000
|
||||
P is 120.000000
|
||||
Q is 0.000000
|
||||
P is 121.000000
|
||||
Q is 0.000000
|
||||
P is 122.000000
|
||||
Q is 0.000000
|
||||
P is 123.000000
|
||||
Q is 0.000000
|
||||
P is 124.000000
|
||||
Q is 0.000000
|
||||
P is 125.000000
|
||||
Q is 0.000000
|
||||
P is 126.000000
|
||||
Q is 0.000000
|
||||
P is 127.000000
|
||||
Q is 0.000000
|
||||
P is 128.000000
|
||||
Q is 0.000000
|
||||
P is 129.000000
|
||||
Q is 0.000000
|
||||
P is 130.000000
|
||||
Q is 0.000000
|
||||
P is 131.000000
|
||||
Q is 0.000000
|
||||
P is 132.000000
|
||||
Q is 0.000000
|
||||
P is 133.000000
|
||||
Q is 0.000000
|
||||
P is 134.000000
|
||||
Q is 0.000000
|
||||
P is 135.000000
|
||||
Q is 0.000000
|
||||
P is 136.000000
|
||||
Q is 0.000000
|
||||
P is 137.000000
|
||||
Q is 0.000000
|
||||
P is 138.000000
|
||||
Q is 0.000000
|
||||
P is 139.000000
|
||||
Q is 0.000000
|
||||
P is 140.000000
|
||||
Q is 0.000000
|
||||
P is 141.000000
|
||||
Q is 0.000000
|
||||
P is 142.000000
|
||||
Q is 0.000000
|
||||
P is 143.000000
|
||||
Q is 0.000000
|
||||
P is 144.000000
|
||||
Q is 0.000000
|
||||
P is 145.000000
|
||||
Q is 0.000000
|
||||
P is 146.000000
|
||||
Q is 0.000000
|
||||
P is 147.000000
|
||||
Q is 0.000000
|
||||
P is 148.000000
|
||||
Q is 0.000000
|
||||
P is 149.000000
|
||||
Q is 0.000000
|
||||
P is 150.000000
|
||||
Q is 0.000000
|
||||
P is 151.000000
|
||||
Q is 0.000000
|
||||
P is 152.000000
|
||||
Q is 0.000000
|
||||
P is 153.000000
|
||||
Q is 0.000000
|
||||
P is 154.000000
|
||||
Q is 0.000000
|
||||
P is 155.000000
|
||||
Q is 0.000000
|
||||
P is 156.000000
|
||||
Q is 0.000000
|
||||
P is 157.000000
|
||||
Q is 0.000000
|
||||
P is 158.000000
|
||||
Q is 0.000000
|
||||
P is 159.000000
|
||||
Q is 0.000000
|
||||
P is 160.000000
|
||||
Q is 0.000000
|
||||
P is 161.000000
|
||||
Q is 0.000000
|
||||
P is 162.000000
|
||||
Q is 0.000000
|
||||
P is 163.000000
|
||||
Q is 0.000000
|
||||
P is 164.000000
|
||||
Q is 0.000000
|
||||
P is 165.000000
|
||||
Q is 0.000000
|
||||
P is 166.000000
|
||||
Q is 0.000000
|
||||
P is 167.000000
|
||||
Q is 0.000000
|
||||
P is 168.000000
|
||||
Q is 0.000000
|
||||
P is 169.000000
|
||||
Q is 0.000000
|
||||
P is 170.000000
|
||||
Q is 0.000000
|
||||
P is 171.000000
|
||||
Q is 0.000000
|
||||
P is 172.000000
|
||||
Q is 0.000000
|
||||
P is 173.000000
|
||||
Q is 0.000000
|
||||
P is 174.000000
|
||||
Q is 0.000000
|
||||
P is 175.000000
|
||||
Q is 0.000000
|
||||
P is 176.000000
|
||||
Q is 0.000000
|
||||
P is 177.000000
|
||||
Q is 0.000000
|
||||
P is 178.000000
|
||||
Q is 0.000000
|
||||
P is 179.000000
|
||||
Q is 0.000000
|
||||
P is 180.000000
|
||||
Q is 0.000000
|
||||
P is 181.000000
|
||||
Q is 0.000000
|
||||
P is 182.000000
|
||||
Q is 0.000000
|
||||
P is 183.000000
|
||||
Q is 0.000000
|
||||
P is 184.000000
|
||||
Q is 0.000000
|
||||
P is 185.000000
|
||||
Q is 0.000000
|
||||
P is 186.000000
|
||||
Q is 0.000000
|
||||
P is 187.000000
|
||||
Q is 0.000000
|
||||
P is 188.000000
|
||||
Q is 0.000000
|
||||
P is 189.000000
|
||||
Q is 0.000000
|
||||
P is 190.000000
|
||||
Q is 0.000000
|
||||
P is 191.000000
|
||||
Q is 0.000000
|
||||
P is 192.000000
|
||||
Q is 0.000000
|
||||
P is 193.000000
|
||||
Q is 0.000000
|
||||
P is 194.000000
|
||||
Q is 0.000000
|
||||
P is 195.000000
|
||||
Q is 0.000000
|
||||
P is 196.000000
|
||||
Q is 0.000000
|
||||
P is 197.000000
|
||||
Q is 0.000000
|
||||
P is 198.000000
|
||||
Q is 0.000000
|
||||
P is 199.000000
|
||||
Q is 0.000000
|
||||
P is 200.000000
|
||||
Q is 0.000000
|
||||
P is -3.000000
|
||||
Q is -4.000000
|
||||
511
tests/linuxcncrsh/expected-telnet-output
Normal file
511
tests/linuxcncrsh/expected-telnet-output
Normal file
@@ -0,0 +1,511 @@
|
||||
HELLO ACK RuntimeTestMachine 1.1
|
||||
HELLO NAK
|
||||
DEBUG 0x00000000
|
||||
HELLO ACK RuntimeTestMachine 1.1
|
||||
set echo off
|
||||
ENABLE OFF
|
||||
ENABLE ON
|
||||
ERROR OK
|
||||
get debug
|
||||
DEBUG 0x00000000
|
||||
get verbose
|
||||
VERBOSE OFF
|
||||
set verbose on
|
||||
SET VERBOSE ACK
|
||||
get verbose
|
||||
VERBOSE ON
|
||||
get error
|
||||
ERROR OK
|
||||
get echo
|
||||
ECHO ON
|
||||
set echo off
|
||||
SET ECHO ACK
|
||||
ECHO OFF
|
||||
ERROR OK
|
||||
WAIT_MODE DONE
|
||||
SET WAIT_MODE ACK
|
||||
WAIT_MODE DONE
|
||||
ERROR OK
|
||||
INI [DISPLAY]DISPLAY=linuxcncrsh -n RuntimeTestMachine
|
||||
INI [TRAJ]SPINDLES=2
|
||||
error: INI file entry '[NOT]AVAILABLE' not found
|
||||
GET INI NAK
|
||||
PLAT Linux
|
||||
UPDATE AUTO
|
||||
MODE MANUAL
|
||||
error: Machine must be 'ON' for SET MODE
|
||||
SET MODE NAK
|
||||
MODE MANUAL
|
||||
ERROR OK
|
||||
ESTOP ON
|
||||
SET ESTOP ACK
|
||||
ESTOP OFF
|
||||
ERROR OK
|
||||
MACHINE OFF
|
||||
SET MACHINE ACK
|
||||
MACHINE ON
|
||||
ERROR OK
|
||||
MODE MANUAL
|
||||
SET MODE ACK
|
||||
MODE MANUAL
|
||||
ERROR OK
|
||||
POS_OFFSET 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
|
||||
PROBE_TRIPPED NO
|
||||
PROBE_VALUE 0
|
||||
SET PROBE_CLEAR ACK
|
||||
ERROR OK
|
||||
SET PROBE NAK
|
||||
ERROR Must be in MDI mode to issue MDI command
|
||||
SET PROBE_CLEAR ACK
|
||||
ERROR OK
|
||||
MODE MANUAL
|
||||
SET MODE ACK
|
||||
MODE MDI
|
||||
ERROR OK
|
||||
SET PROBE NAK
|
||||
ERROR Cannot probe with zero feed rate
|
||||
SET MDI ACK
|
||||
SET PROBE NAK
|
||||
ERROR Start point too close to probe point
|
||||
SET PROBE ACK
|
||||
ERROR G38.2 move finished without making contact.
|
||||
PROBE_TRIPPED NO
|
||||
SET PROBE_CLEAR ACK
|
||||
ERROR OK
|
||||
MODE MDI
|
||||
SET MODE ACK
|
||||
MODE MANUAL
|
||||
ERROR OK
|
||||
JOINT_HOMED NO NO NO
|
||||
SET JOINT_HOME ACK
|
||||
ERROR OK
|
||||
SET JOINT_WAIT_HOMED ACK
|
||||
JOINT_HOMED YES NO NO
|
||||
SET JOINT_HOME ACK
|
||||
ERROR OK
|
||||
SET JOINT_WAIT_HOMED ACK
|
||||
JOINT_HOMED YES YES NO
|
||||
SET JOINT_HOME ACK
|
||||
ERROR OK
|
||||
SET JOINT_WAIT_HOMED ACK
|
||||
JOINT_HOMED YES YES YES
|
||||
error: Invalid joint '3', valid range [-1,2]
|
||||
SET HOME NAK
|
||||
ERROR OK
|
||||
error: Invalid joint '4', valid range [-1,2]
|
||||
SET HOME NAK
|
||||
ERROR OK
|
||||
error: Invalid joint '5', valid range [-1,2]
|
||||
SET HOME NAK
|
||||
ERROR OK
|
||||
error: Invalid periods '10000', waiting time of 10.000 seconds would exceed timeout of 1.000 seconds
|
||||
SET WAIT_HEARTBEAT NAK
|
||||
SET ECHO ACK
|
||||
set wait_heartbeat
|
||||
SET WAIT_HEARTBEAT ACK
|
||||
get teleop_enable
|
||||
TELEOP_ENABLE ON
|
||||
set teleop_enable off
|
||||
SET TELEOP_ENABLE ACK
|
||||
get teleop_enable
|
||||
TELEOP_ENABLE OFF
|
||||
get error
|
||||
ERROR OK
|
||||
get joint_homed
|
||||
JOINT_HOMED YES YES YES
|
||||
set joint_unhome 1
|
||||
SET JOINT_UNHOME ACK
|
||||
get error
|
||||
ERROR OK
|
||||
get joint_homed
|
||||
JOINT_HOMED YES NO YES
|
||||
set joint_home 1
|
||||
SET JOINT_HOME ACK
|
||||
get error
|
||||
ERROR OK
|
||||
set joint_wait_homed 1
|
||||
SET JOINT_WAIT_HOMED ACK
|
||||
get joint_homed
|
||||
JOINT_HOMED YES YES YES
|
||||
get teleop_enable
|
||||
TELEOP_ENABLE ON
|
||||
set echo off
|
||||
SET ECHO ACK
|
||||
MODE MANUAL
|
||||
SET MODE ACK
|
||||
MODE MDI
|
||||
ERROR OK
|
||||
SET PROBE ACK
|
||||
ERROR G38.2 move finished without making contact.
|
||||
PROBE_TRIPPED NO
|
||||
SET PROBE_CLEAR ACK
|
||||
ERROR OK
|
||||
MODE MDI
|
||||
SET MODE ACK
|
||||
MODE MANUAL
|
||||
ERROR OK
|
||||
TELEOP_ENABLE ON
|
||||
SET TELEOP_ENABLE ACK
|
||||
TELEOP_ENABLE ON
|
||||
ERROR OK
|
||||
MODE MANUAL
|
||||
SET MODE ACK
|
||||
MODE MDI
|
||||
ERROR OK
|
||||
SET PROBE ACK
|
||||
ERROR G38.2 move finished without making contact.
|
||||
PROBE_TRIPPED NO
|
||||
SET PROBE_CLEAR ACK
|
||||
ERROR OK
|
||||
MODE MDI
|
||||
SET MODE ACK
|
||||
MODE MANUAL
|
||||
ERROR OK
|
||||
SPINDLE 0 OFF
|
||||
SET SPINDLE ACK
|
||||
SPINDLE 0 FORWARD
|
||||
ERROR OK
|
||||
SPINDLE 0 FORWARD
|
||||
SET SPINDLE ACK
|
||||
SPINDLE 0 OFF
|
||||
ERROR OK
|
||||
SPINDLE 0 OFF
|
||||
SPINDLE 1 OFF
|
||||
SPINDLE 0 OFF
|
||||
error: Invalid spindle '99', valid range [-1,1]
|
||||
SET SPINDLE NAK
|
||||
SPINDLE 0 OFF
|
||||
ERROR OK
|
||||
BRAKE 0 ON
|
||||
SET BRAKE ACK
|
||||
BRAKE 0 ON
|
||||
ERROR OK
|
||||
BRAKE 0 ON
|
||||
SET BRAKE ACK
|
||||
BRAKE 0 OFF
|
||||
ERROR OK
|
||||
BRAKE 0 OFF
|
||||
BRAKE 1 OFF
|
||||
BRAKE 0 OFF
|
||||
error: Invalid spindle '99', valid range [-1,1]
|
||||
SET BRAKE NAK
|
||||
BRAKE 0 OFF
|
||||
ERROR OK
|
||||
WAIT_MODE DONE
|
||||
SET WAIT_MODE ACK
|
||||
WAIT_MODE RECEIVED
|
||||
ERROR OK
|
||||
SET PAUSE ACK
|
||||
ERROR OK
|
||||
WAIT_MODE RECEIVED
|
||||
SET WAIT_MODE ACK
|
||||
WAIT_MODE DONE
|
||||
ERROR OK
|
||||
SET RESUME ACK
|
||||
ERROR OK
|
||||
SET MODE ACK
|
||||
SET MDI ACK
|
||||
ABS_ACT_POS 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
|
||||
SET MDI ACK
|
||||
SET WAIT_HEARTBEAT ACK
|
||||
ABS_ACT_POS 0.300000 0.200000 -0.100000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
|
||||
SET MDI ACK
|
||||
SET MDI ACK
|
||||
SET MDI ACK
|
||||
SET MDI ACK
|
||||
SET MDI ACK
|
||||
SET MDI ACK
|
||||
SET MDI ACK
|
||||
SET MDI ACK
|
||||
SET MDI ACK
|
||||
SET MDI ACK
|
||||
SET MDI ACK
|
||||
SET MDI ACK
|
||||
SET MDI ACK
|
||||
SET MDI ACK
|
||||
SET MDI ACK
|
||||
SET MDI ACK
|
||||
SET MDI ACK
|
||||
SET MDI ACK
|
||||
SET MDI ACK
|
||||
SET MDI ACK
|
||||
SET MDI ACK
|
||||
SET MDI ACK
|
||||
SET MDI ACK
|
||||
SET MDI ACK
|
||||
SET MDI ACK
|
||||
SET MDI ACK
|
||||
SET MDI ACK
|
||||
SET MDI ACK
|
||||
SET MDI ACK
|
||||
SET MDI ACK
|
||||
SET MDI ACK
|
||||
SET MDI ACK
|
||||
SET MDI ACK
|
||||
SET MDI ACK
|
||||
SET MDI ACK
|
||||
SET MDI ACK
|
||||
SET MDI ACK
|
||||
SET MDI ACK
|
||||
SET MDI ACK
|
||||
SET MDI ACK
|
||||
SET MDI ACK
|
||||
SET MDI ACK
|
||||
SET MDI ACK
|
||||
SET MDI ACK
|
||||
SET MDI ACK
|
||||
SET MDI ACK
|
||||
SET MDI ACK
|
||||
SET MDI ACK
|
||||
SET MDI ACK
|
||||
SET MDI ACK
|
||||
SET MDI ACK
|
||||
SET MDI ACK
|
||||
SET MDI ACK
|
||||
SET MDI ACK
|
||||
SET MDI ACK
|
||||
SET MDI ACK
|
||||
SET MDI ACK
|
||||
SET MDI ACK
|
||||
SET MDI ACK
|
||||
SET MDI ACK
|
||||
SET MDI ACK
|
||||
SET MDI ACK
|
||||
SET MDI ACK
|
||||
SET MDI ACK
|
||||
SET MDI ACK
|
||||
SET MDI ACK
|
||||
SET MDI ACK
|
||||
SET MDI ACK
|
||||
SET MDI ACK
|
||||
SET MDI ACK
|
||||
SET MDI ACK
|
||||
SET MDI ACK
|
||||
SET MDI ACK
|
||||
SET MDI ACK
|
||||
SET MDI ACK
|
||||
SET MDI ACK
|
||||
SET MDI ACK
|
||||
SET MDI ACK
|
||||
SET MDI ACK
|
||||
SET MDI ACK
|
||||
SET MDI ACK
|
||||
SET MDI ACK
|
||||
SET MDI ACK
|
||||
SET MDI ACK
|
||||
SET MDI ACK
|
||||
SET MDI ACK
|
||||
SET MDI ACK
|
||||
SET MDI ACK
|
||||
SET MDI ACK
|
||||
SET MDI ACK
|
||||
SET MDI ACK
|
||||
SET MDI ACK
|
||||
SET MDI ACK
|
||||
SET MDI ACK
|
||||
SET MDI ACK
|
||||
SET MDI ACK
|
||||
SET MDI ACK
|
||||
SET MDI ACK
|
||||
SET MDI ACK
|
||||
SET MDI ACK
|
||||
SET MDI ACK
|
||||
SET MDI ACK
|
||||
SET MDI ACK
|
||||
SET MDI ACK
|
||||
SET MDI ACK
|
||||
SET MDI ACK
|
||||
SET MDI ACK
|
||||
SET MDI ACK
|
||||
SET MDI ACK
|
||||
SET MDI ACK
|
||||
SET MDI ACK
|
||||
SET MDI ACK
|
||||
SET MDI ACK
|
||||
SET MDI ACK
|
||||
SET MDI ACK
|
||||
SET MDI ACK
|
||||
SET MDI ACK
|
||||
SET MDI ACK
|
||||
SET MDI ACK
|
||||
SET MDI ACK
|
||||
SET MDI ACK
|
||||
SET MDI ACK
|
||||
SET MDI ACK
|
||||
SET MDI ACK
|
||||
SET MDI ACK
|
||||
SET MDI ACK
|
||||
SET MDI ACK
|
||||
SET MDI ACK
|
||||
SET MDI ACK
|
||||
SET MDI ACK
|
||||
SET MDI ACK
|
||||
SET MDI ACK
|
||||
SET MDI ACK
|
||||
SET MDI ACK
|
||||
SET MDI ACK
|
||||
SET MDI ACK
|
||||
SET MDI ACK
|
||||
SET MDI ACK
|
||||
SET MDI ACK
|
||||
SET MDI ACK
|
||||
SET MDI ACK
|
||||
SET MDI ACK
|
||||
SET MDI ACK
|
||||
SET MDI ACK
|
||||
SET MDI ACK
|
||||
SET MDI ACK
|
||||
SET MDI ACK
|
||||
SET MDI ACK
|
||||
SET MDI ACK
|
||||
SET MDI ACK
|
||||
SET MDI ACK
|
||||
SET MDI ACK
|
||||
SET MDI ACK
|
||||
SET MDI ACK
|
||||
SET MDI ACK
|
||||
SET MDI ACK
|
||||
SET MDI ACK
|
||||
SET MDI ACK
|
||||
SET MDI ACK
|
||||
SET MDI ACK
|
||||
SET MDI ACK
|
||||
SET MDI ACK
|
||||
SET MDI ACK
|
||||
SET MDI ACK
|
||||
SET MDI ACK
|
||||
SET MDI ACK
|
||||
SET MDI ACK
|
||||
SET MDI ACK
|
||||
SET MDI ACK
|
||||
SET MDI ACK
|
||||
SET MDI ACK
|
||||
SET MDI ACK
|
||||
SET MDI ACK
|
||||
SET MDI ACK
|
||||
SET MDI ACK
|
||||
SET MDI ACK
|
||||
SET MDI ACK
|
||||
SET MDI ACK
|
||||
SET MDI ACK
|
||||
SET MDI ACK
|
||||
SET MDI ACK
|
||||
SET MDI ACK
|
||||
SET MDI ACK
|
||||
SET MDI ACK
|
||||
SET MDI ACK
|
||||
SET MDI ACK
|
||||
SET MDI ACK
|
||||
SET MDI ACK
|
||||
SET MDI ACK
|
||||
SET MDI ACK
|
||||
SET MDI ACK
|
||||
SET MDI ACK
|
||||
SET MDI ACK
|
||||
SET MDI ACK
|
||||
SET MDI ACK
|
||||
SET MDI ACK
|
||||
SET MDI ACK
|
||||
SET MDI ACK
|
||||
SET MDI ACK
|
||||
SET MDI ACK
|
||||
SET MDI ACK
|
||||
SET MDI ACK
|
||||
SET MDI ACK
|
||||
SET MDI ACK
|
||||
ERROR OK
|
||||
ABS_ACT_POS 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
|
||||
ABS_CMD_POS 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
|
||||
ANGULAR_UNIT_CONVERSION AUTO
|
||||
DISPLAY_ANGULAR_UNITS DEG
|
||||
DISPLAY_LINEAR_UNITS INCH
|
||||
ERROR OK
|
||||
FEED_OVERRIDE 100.000000
|
||||
FLOOD OFF
|
||||
JOINT_FAULT OK OK OK
|
||||
JOINT_HOMED YES YES YES
|
||||
JOINT_LIMIT OK OK OK
|
||||
JOINT_POS 0.000000 0.000000 0.000000
|
||||
JOINT_TYPE LINEAR LINEAR LINEAR
|
||||
JOINT_UNITS INCH INCH INCH
|
||||
KINEMATICS_TYPE 1
|
||||
LINEAR_UNIT_CONVERSION AUTO
|
||||
MIST OFF
|
||||
OPERATOR_DISPLAY OK
|
||||
OPERATOR_TEXT OK
|
||||
OPTIONAL_STOP ON
|
||||
OVERRIDE_LIMITS OFF
|
||||
PROGRAM NONE
|
||||
PROGRAM_ANGULAR_UNITS DEG
|
||||
PROGRAM_CODES G0 G17 G40 G20 G90 G94 G54 G49 G99 G64 G97 G91.1 G8 F10 S0
|
||||
PROGRAM_LINE 0
|
||||
PROGRAM_UNITS INCH
|
||||
PROGRAM_STATUS IDLE
|
||||
PROGRAM_UNITS INCH
|
||||
REL_ACT_POS 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
|
||||
REL_CMD_POS 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
|
||||
WAIT_MODE DONE
|
||||
TELEOP_ENABLE OFF
|
||||
TIMEOUT 0.000000
|
||||
TOOL 0
|
||||
TOOL_OFFSET 0.000000
|
||||
UPDATE AUTO
|
||||
USER_ANGULAR_UNITS DEG
|
||||
USER_LINEAR_UNITS INCH
|
||||
SET ABORT ACK
|
||||
ERROR OK
|
||||
ANGULAR_UNIT_CONVERSION AUTO
|
||||
SET ANGULAR_UNIT_CONVERSION ACK
|
||||
ANGULAR_UNIT_CONVERSION DEG
|
||||
ERROR OK
|
||||
FEED_OVERRIDE 100.000000
|
||||
SET FEED_OVERRIDE ACK
|
||||
FEED_OVERRIDE 100.000000
|
||||
ERROR OK
|
||||
FLOOD OFF
|
||||
SET FLOOD ACK
|
||||
FLOOD ON
|
||||
ERROR OK
|
||||
SET JOG ACK
|
||||
ERROR OK
|
||||
SET JOG_INCR ACK
|
||||
ERROR OK
|
||||
SET JOG_STOP ACK
|
||||
ERROR OK
|
||||
LINEAR_UNIT_CONVERSION AUTO
|
||||
SET LINEAR_UNIT_CONVERSION ACK
|
||||
LINEAR_UNIT_CONVERSION MM
|
||||
ERROR OK
|
||||
MIST OFF
|
||||
SET MIST ACK
|
||||
MIST ON
|
||||
ERROR OK
|
||||
OPTIONAL_STOP ON
|
||||
SET OPTIONAL_STOP ACK
|
||||
OPTIONAL_STOP ON
|
||||
ERROR OK
|
||||
OVERRIDE_LIMITS OFF
|
||||
SET OVERRIDE_LIMITS NAK
|
||||
OVERRIDE_LIMITS OFF
|
||||
ERROR can't do that (EMC_JOINT_OVERRIDE_LIMITS:129) in MDI mode
|
||||
SET STEP NAK
|
||||
ERROR can't do that (EMC_TASK_PLAN_STEP:511) in MDI mode
|
||||
SET TASK_PLAN_INIT ACK
|
||||
ERROR OK
|
||||
TELEOP_ENABLE OFF
|
||||
SET TELEOP_ENABLE ACK
|
||||
TELEOP_ENABLE OFF
|
||||
ERROR OK
|
||||
TIMEOUT 0.000000
|
||||
SET TIMEOUT ACK
|
||||
TIMEOUT 10.000000
|
||||
ERROR OK
|
||||
UPDATE AUTO
|
||||
SET UPDATE ACK
|
||||
UPDATE AUTO
|
||||
ERROR OK
|
||||
SET WAIT ACK
|
||||
ERROR OK
|
||||
SET ESTOP ACK
|
||||
ESTOP ON
|
||||
SHUTDOWN ACK
|
||||
51
tests/linuxcncrsh/lcncrsh_sim.hal
Normal file
51
tests/linuxcncrsh/lcncrsh_sim.hal
Normal file
@@ -0,0 +1,51 @@
|
||||
# core HAL config file for simulation
|
||||
|
||||
# first load all the RT modules that will be needed
|
||||
# kinematics
|
||||
loadrt [KINS]KINEMATICS
|
||||
# motion controller, get name and thread periods from INI file
|
||||
loadrt [EMCMOT]EMCMOT base_period_nsec=[EMCMOT]BASE_PERIOD servo_period_nsec=[EMCMOT]SERVO_PERIOD num_joints=[KINS]JOINTS num_spindles=[TRAJ]SPINDLES
|
||||
# load 6 differentiators (for velocity and accel signals
|
||||
loadrt ddt names=ddt_x,ddt_xv,ddt_y,ddt_yv,ddt_z,ddt_zv
|
||||
# load additional blocks
|
||||
loadrt hypot names=vel_xy,vel_xyz
|
||||
|
||||
# add motion controller functions to servo thread
|
||||
addf motion-command-handler servo-thread
|
||||
addf motion-controller servo-thread
|
||||
# link the differentiator functions into the code
|
||||
addf ddt_x servo-thread
|
||||
addf ddt_xv servo-thread
|
||||
addf ddt_y servo-thread
|
||||
addf ddt_yv servo-thread
|
||||
addf ddt_z servo-thread
|
||||
addf ddt_zv servo-thread
|
||||
addf vel_xy servo-thread
|
||||
addf vel_xyz servo-thread
|
||||
|
||||
# create HAL signals for position commands from motion module
|
||||
# loop position commands back to motion module feedback
|
||||
net Xpos joint.0.motor-pos-cmd => joint.0.motor-pos-fb ddt_x.in
|
||||
net Ypos joint.1.motor-pos-cmd => joint.1.motor-pos-fb ddt_y.in
|
||||
net Zpos joint.2.motor-pos-cmd => joint.2.motor-pos-fb ddt_z.in
|
||||
|
||||
# send the position commands thru differentiators to
|
||||
# generate velocity and accel signals
|
||||
net Xvel ddt_x.out => ddt_xv.in vel_xy.in0
|
||||
net Xacc <= ddt_xv.out
|
||||
net Yvel ddt_y.out => ddt_yv.in vel_xy.in1
|
||||
net Yacc <= ddt_yv.out
|
||||
net Zvel ddt_z.out => ddt_zv.in vel_xyz.in0
|
||||
net Zacc <= ddt_zv.out
|
||||
|
||||
# Cartesian 2- and 3-axis velocities
|
||||
net XYvel vel_xy.out => vel_xyz.in1
|
||||
net XYZvel <= vel_xyz.out
|
||||
|
||||
# estop loopback
|
||||
net estop-loop iocontrol.0.user-enable-out iocontrol.0.emc-enable-in
|
||||
|
||||
# create signals for tool loading loopback
|
||||
net tool-prep-loop iocontrol.0.tool-prepare iocontrol.0.tool-prepared
|
||||
net tool-change-loop iocontrol.0.tool-change iocontrol.0.tool-changed
|
||||
|
||||
107
tests/linuxcncrsh/linuxcncrsh-test.ini
Normal file
107
tests/linuxcncrsh/linuxcncrsh-test.ini
Normal file
@@ -0,0 +1,107 @@
|
||||
[EMC]
|
||||
MACHINE = linuxcncrsh-test
|
||||
VERSION = 1.1
|
||||
DEBUG = 0
|
||||
#RCS_DEBUG = 0xF763FF01
|
||||
|
||||
[DISPLAY]
|
||||
DISPLAY = linuxcncrsh -n RuntimeTestMachine
|
||||
|
||||
[TASK]
|
||||
TASK = milltask
|
||||
CYCLE_TIME = 0.001
|
||||
|
||||
[RS274NGC]
|
||||
PARAMETER_FILE = sim.var
|
||||
USER_M_PATH = ./subs
|
||||
|
||||
[EMCMOT]
|
||||
EMCMOT = motmod
|
||||
COMM_TIMEOUT = 4.0
|
||||
BASE_PERIOD = 0
|
||||
SERVO_PERIOD = 1000000
|
||||
|
||||
[EMCIO]
|
||||
TOOL_TABLE = tool.tbl
|
||||
|
||||
[HAL]
|
||||
HALFILE = lcncrsh_sim.hal
|
||||
|
||||
[TRAJ]
|
||||
SPINDLES = 2
|
||||
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
|
||||
NO_FORCE_HOMING = 1
|
||||
|
||||
[AXIS_X]
|
||||
HOME = 0.000
|
||||
MIN_LIMIT = -40.0
|
||||
MAX_LIMIT = 40.0
|
||||
MAX_VELOCITY = 4
|
||||
MAX_ACCELERATION = 100.0
|
||||
|
||||
[AXIS_Y]
|
||||
HOME = 0.000
|
||||
MIN_LIMIT = -40.0
|
||||
MAX_LIMIT = 40.0
|
||||
MAX_VELOCITY = 4
|
||||
MAX_ACCELERATION = 100.0
|
||||
|
||||
[AXIS_Z]
|
||||
HOME = 0.0
|
||||
MIN_LIMIT = -4.0
|
||||
MAX_LIMIT = 4.0
|
||||
MAX_VELOCITY = 4
|
||||
MAX_ACCELERATION = 100.0
|
||||
|
||||
[KINS]
|
||||
KINEMATICS = trivkins
|
||||
JOINTS = 3
|
||||
|
||||
[JOINT_0]
|
||||
TYPE = LINEAR
|
||||
HOME = 0.000
|
||||
MAX_VELOCITY = 4
|
||||
MAX_ACCELERATION = 100.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
|
||||
HOME_SEQUENCE = 0
|
||||
|
||||
[JOINT_1]
|
||||
TYPE = LINEAR
|
||||
HOME = 0.000
|
||||
MAX_VELOCITY = 4
|
||||
MAX_ACCELERATION = 100.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
|
||||
HOME_SEQUENCE = 1
|
||||
|
||||
[JOINT_2]
|
||||
TYPE = LINEAR
|
||||
HOME = 0.0
|
||||
MAX_VELOCITY = 4
|
||||
MAX_ACCELERATION = 100.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
|
||||
HOME_SEQUENCE = 2
|
||||
|
||||
201
tests/linuxcncrsh/lots-of-gcode
Normal file
201
tests/linuxcncrsh/lots-of-gcode
Normal file
@@ -0,0 +1,201 @@
|
||||
set mdi m100 p0 q0
|
||||
set mdi m100 p1 q0
|
||||
set mdi m100 p2 q0
|
||||
set mdi m100 p3 q0
|
||||
set mdi m100 p4 q0
|
||||
set mdi m100 p5 q0
|
||||
set mdi m100 p6 q0
|
||||
set mdi m100 p7 q0
|
||||
set mdi m100 p8 q0
|
||||
set mdi m100 p9 q0
|
||||
set mdi m100 p10 q0
|
||||
set mdi m100 p11 q0
|
||||
set mdi m100 p12 q0
|
||||
set mdi m100 p13 q0
|
||||
set mdi m100 p14 q0
|
||||
set mdi m100 p15 q0
|
||||
set mdi m100 p16 q0
|
||||
set mdi m100 p17 q0
|
||||
set mdi m100 p18 q0
|
||||
set mdi m100 p19 q0
|
||||
set mdi m100 p20 q0
|
||||
set mdi m100 p21 q0
|
||||
set mdi m100 p22 q0
|
||||
set mdi m100 p23 q0
|
||||
set mdi m100 p24 q0
|
||||
set mdi m100 p25 q0
|
||||
set mdi m100 p26 q0
|
||||
set mdi m100 p27 q0
|
||||
set mdi m100 p28 q0
|
||||
set mdi m100 p29 q0
|
||||
set mdi m100 p30 q0
|
||||
set mdi m100 p31 q0
|
||||
set mdi m100 p32 q0
|
||||
set mdi m100 p33 q0
|
||||
set mdi m100 p34 q0
|
||||
set mdi m100 p35 q0
|
||||
set mdi m100 p36 q0
|
||||
set mdi m100 p37 q0
|
||||
set mdi m100 p38 q0
|
||||
set mdi m100 p39 q0
|
||||
set mdi m100 p40 q0
|
||||
set mdi m100 p41 q0
|
||||
set mdi m100 p42 q0
|
||||
set mdi m100 p43 q0
|
||||
set mdi m100 p44 q0
|
||||
set mdi m100 p45 q0
|
||||
set mdi m100 p46 q0
|
||||
set mdi m100 p47 q0
|
||||
set mdi m100 p48 q0
|
||||
set mdi m100 p49 q0
|
||||
set mdi m100 p50 q0
|
||||
set mdi m100 p51 q0
|
||||
set mdi m100 p52 q0
|
||||
set mdi m100 p53 q0
|
||||
set mdi m100 p54 q0
|
||||
set mdi m100 p55 q0
|
||||
set mdi m100 p56 q0
|
||||
set mdi m100 p57 q0
|
||||
set mdi m100 p58 q0
|
||||
set mdi m100 p59 q0
|
||||
set mdi m100 p60 q0
|
||||
set mdi m100 p61 q0
|
||||
set mdi m100 p62 q0
|
||||
set mdi m100 p63 q0
|
||||
set mdi m100 p64 q0
|
||||
set mdi m100 p65 q0
|
||||
set mdi m100 p66 q0
|
||||
set mdi m100 p67 q0
|
||||
set mdi m100 p68 q0
|
||||
set mdi m100 p69 q0
|
||||
set mdi m100 p70 q0
|
||||
set mdi m100 p71 q0
|
||||
set mdi m100 p72 q0
|
||||
set mdi m100 p73 q0
|
||||
set mdi m100 p74 q0
|
||||
set mdi m100 p75 q0
|
||||
set mdi m100 p76 q0
|
||||
set mdi m100 p77 q0
|
||||
set mdi m100 p78 q0
|
||||
set mdi m100 p79 q0
|
||||
set mdi m100 p80 q0
|
||||
set mdi m100 p81 q0
|
||||
set mdi m100 p82 q0
|
||||
set mdi m100 p83 q0
|
||||
set mdi m100 p84 q0
|
||||
set mdi m100 p85 q0
|
||||
set mdi m100 p86 q0
|
||||
set mdi m100 p87 q0
|
||||
set mdi m100 p88 q0
|
||||
set mdi m100 p89 q0
|
||||
set mdi m100 p90 q0
|
||||
set mdi m100 p91 q0
|
||||
set mdi m100 p92 q0
|
||||
set mdi m100 p93 q0
|
||||
set mdi m100 p94 q0
|
||||
set mdi m100 p95 q0
|
||||
set mdi m100 p96 q0
|
||||
set mdi m100 p97 q0
|
||||
set mdi m100 p98 q0
|
||||
set mdi m100 p99 q0
|
||||
set mdi m100 p100 q0
|
||||
set mdi m100 p101 q0
|
||||
set mdi m100 p102 q0
|
||||
set mdi m100 p103 q0
|
||||
set mdi m100 p104 q0
|
||||
set mdi m100 p105 q0
|
||||
set mdi m100 p106 q0
|
||||
set mdi m100 p107 q0
|
||||
set mdi m100 p108 q0
|
||||
set mdi m100 p109 q0
|
||||
set mdi m100 p110 q0
|
||||
set mdi m100 p111 q0
|
||||
set mdi m100 p112 q0
|
||||
set mdi m100 p113 q0
|
||||
set mdi m100 p114 q0
|
||||
set mdi m100 p115 q0
|
||||
set mdi m100 p116 q0
|
||||
set mdi m100 p117 q0
|
||||
set mdi m100 p118 q0
|
||||
set mdi m100 p119 q0
|
||||
set mdi m100 p120 q0
|
||||
set mdi m100 p121 q0
|
||||
set mdi m100 p122 q0
|
||||
set mdi m100 p123 q0
|
||||
set mdi m100 p124 q0
|
||||
set mdi m100 p125 q0
|
||||
set mdi m100 p126 q0
|
||||
set mdi m100 p127 q0
|
||||
set mdi m100 p128 q0
|
||||
set mdi m100 p129 q0
|
||||
set mdi m100 p130 q0
|
||||
set mdi m100 p131 q0
|
||||
set mdi m100 p132 q0
|
||||
set mdi m100 p133 q0
|
||||
set mdi m100 p134 q0
|
||||
set mdi m100 p135 q0
|
||||
set mdi m100 p136 q0
|
||||
set mdi m100 p137 q0
|
||||
set mdi m100 p138 q0
|
||||
set mdi m100 p139 q0
|
||||
set mdi m100 p140 q0
|
||||
set mdi m100 p141 q0
|
||||
set mdi m100 p142 q0
|
||||
set mdi m100 p143 q0
|
||||
set mdi m100 p144 q0
|
||||
set mdi m100 p145 q0
|
||||
set mdi m100 p146 q0
|
||||
set mdi m100 p147 q0
|
||||
set mdi m100 p148 q0
|
||||
set mdi m100 p149 q0
|
||||
set mdi m100 p150 q0
|
||||
set mdi m100 p151 q0
|
||||
set mdi m100 p152 q0
|
||||
set mdi m100 p153 q0
|
||||
set mdi m100 p154 q0
|
||||
set mdi m100 p155 q0
|
||||
set mdi m100 p156 q0
|
||||
set mdi m100 p157 q0
|
||||
set mdi m100 p158 q0
|
||||
set mdi m100 p159 q0
|
||||
set mdi m100 p160 q0
|
||||
set mdi m100 p161 q0
|
||||
set mdi m100 p162 q0
|
||||
set mdi m100 p163 q0
|
||||
set mdi m100 p164 q0
|
||||
set mdi m100 p165 q0
|
||||
set mdi m100 p166 q0
|
||||
set mdi m100 p167 q0
|
||||
set mdi m100 p168 q0
|
||||
set mdi m100 p169 q0
|
||||
set mdi m100 p170 q0
|
||||
set mdi m100 p171 q0
|
||||
set mdi m100 p172 q0
|
||||
set mdi m100 p173 q0
|
||||
set mdi m100 p174 q0
|
||||
set mdi m100 p175 q0
|
||||
set mdi m100 p176 q0
|
||||
set mdi m100 p177 q0
|
||||
set mdi m100 p178 q0
|
||||
set mdi m100 p179 q0
|
||||
set mdi m100 p180 q0
|
||||
set mdi m100 p181 q0
|
||||
set mdi m100 p182 q0
|
||||
set mdi m100 p183 q0
|
||||
set mdi m100 p184 q0
|
||||
set mdi m100 p185 q0
|
||||
set mdi m100 p186 q0
|
||||
set mdi m100 p187 q0
|
||||
set mdi m100 p188 q0
|
||||
set mdi m100 p189 q0
|
||||
set mdi m100 p190 q0
|
||||
set mdi m100 p191 q0
|
||||
set mdi m100 p192 q0
|
||||
set mdi m100 p193 q0
|
||||
set mdi m100 p194 q0
|
||||
set mdi m100 p195 q0
|
||||
set mdi m100 p196 q0
|
||||
set mdi m100 p197 q0
|
||||
set mdi m100 p198 q0
|
||||
set mdi m100 p199 q0
|
||||
set mdi m100 p200 q0
|
||||
20
tests/linuxcncrsh/subs/M100
Executable file
20
tests/linuxcncrsh/subs/M100
Executable file
@@ -0,0 +1,20 @@
|
||||
#!/bin/bash
|
||||
#
|
||||
# This script (M100) is called to log the current coordinates and the
|
||||
# current tool number and Tool Length Offset information to a log file,
|
||||
# for testing purposes
|
||||
#
|
||||
# Put this in your INI to use:
|
||||
#
|
||||
# [RS274NGC]USER_M_PATH = ./subs
|
||||
#
|
||||
|
||||
TEST_DIR=$(dirname INI_FILE_NAME)
|
||||
OUT_FILE=$TEST_DIR/gcode-output
|
||||
|
||||
P=$1
|
||||
Q=$2
|
||||
|
||||
echo "P is $P" >> "$OUT_FILE"
|
||||
echo "Q is $Q" >> "$OUT_FILE"
|
||||
|
||||
285
tests/linuxcncrsh/test.sh
Executable file
285
tests/linuxcncrsh/test.sh
Executable file
@@ -0,0 +1,285 @@
|
||||
#!/bin/bash
|
||||
|
||||
set -e
|
||||
|
||||
rm -f gcode-output
|
||||
|
||||
if nc -z localhost 5007; then
|
||||
echo "Process already listening on port 5007. Exiting"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
linuxcnc -r linuxcncrsh-test.ini &
|
||||
|
||||
|
||||
# let linuxcnc come up
|
||||
TOGO=80
|
||||
while [ $TOGO -gt 0 ]; do
|
||||
echo "trying to connect to linuxcncrsh TOGO=$TOGO"
|
||||
if nc -z localhost 5007; then
|
||||
break
|
||||
fi
|
||||
sleep 0.25
|
||||
TOGO=$((TOGO - 1))
|
||||
done
|
||||
if [ $TOGO -eq 0 ]; then
|
||||
echo connection to linuxcncrsh timed out
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# test set command by
|
||||
# - getting the key's old value before setting
|
||||
# - setting the new value
|
||||
# - getting the new value
|
||||
# - collect possible error from linuxcncsvr
|
||||
function testSet() {
|
||||
# get before value
|
||||
echo "get $1"
|
||||
# set cmd
|
||||
echo "set $*"
|
||||
# get after value
|
||||
echo "get $1"
|
||||
# get error from server (or OK)
|
||||
echo "get error"
|
||||
}
|
||||
|
||||
function testSetOnly() {
|
||||
# set cmd
|
||||
echo "set $*"
|
||||
# get error from server (or OK)
|
||||
echo "get error"
|
||||
}
|
||||
|
||||
(
|
||||
# initialize
|
||||
echo set timestamp off
|
||||
#echo set timestamp on
|
||||
# We don't really care about versioning this API
|
||||
echo hello EMC mt 1.1
|
||||
# Providing a bad password will disable and unlink
|
||||
echo hello BADPASSWORD mt 1.1
|
||||
echo get debug
|
||||
# relink
|
||||
echo hello EMC mt
|
||||
# Don't echo enable password
|
||||
echo set echo off
|
||||
testSet enable EMCTOO
|
||||
echo set echo on
|
||||
echo get debug
|
||||
testSet verbose on
|
||||
testSet echo off
|
||||
# ask linuxcncrsh to not read the next command until it's done running
|
||||
# the current one
|
||||
testSet wait_mode "done"
|
||||
|
||||
# Get some INI file entries
|
||||
echo get ini DISPLAY DISPLAY
|
||||
echo get ini SPINDLES TRAJ
|
||||
echo get ini AVAILABLE NOT
|
||||
# Can't use 'get inifile' because it returns an absolute path that varies
|
||||
# with the test environment.
|
||||
# echo get inifile
|
||||
|
||||
# check default global settings
|
||||
echo get plat
|
||||
echo get update
|
||||
|
||||
# test commands that fail when machine not running
|
||||
testSet mode mdi
|
||||
|
||||
# prepare machine
|
||||
testSet estop off
|
||||
testSet machine on
|
||||
|
||||
# test if probing in manual mode fails
|
||||
testSet mode manual
|
||||
echo get pos_offset
|
||||
echo get probe_tripped
|
||||
echo get probe_value
|
||||
testSetOnly probe_clear
|
||||
testSetOnly probe 0 0 0 # <x> <y> <z>
|
||||
testSetOnly probe_clear
|
||||
|
||||
# test if probing before homing fails (not)
|
||||
testSet mode mdi
|
||||
# probe with zero feed fails
|
||||
testSetOnly probe 0 0 0 # <x> <y> <z>
|
||||
echo set mdi f10
|
||||
# probe with no movement fails
|
||||
testSetOnly probe 0 0 0 # <x> <y> <z>
|
||||
testSetOnly probe 0 0 0.01 # <x> <y> <z>
|
||||
echo get probe_tripped
|
||||
testSetOnly probe_clear
|
||||
|
||||
# do homing
|
||||
testSet mode manual
|
||||
echo get joint_homed # Current home status
|
||||
testSetOnly joint_home 0 # Home joint
|
||||
echo set joint_wait_homed 0 # Homing takes time
|
||||
echo get joint_homed # New home status
|
||||
|
||||
testSetOnly joint_home 1
|
||||
echo set joint_wait_homed 1
|
||||
echo get joint_homed
|
||||
|
||||
testSetOnly joint_home 2
|
||||
echo set joint_wait_homed 2
|
||||
echo get joint_homed
|
||||
|
||||
# These should fail, there are only three joints
|
||||
# (also tests alias of joint_home)
|
||||
testSetOnly home 3
|
||||
testSetOnly home 4
|
||||
testSetOnly home 5
|
||||
|
||||
echo set wait_heartbeat 10000 # must fail: would be 10 seconds
|
||||
|
||||
echo set echo on
|
||||
echo set wait_heartbeat
|
||||
testSet teleop_enable off # Or we can't unhome
|
||||
echo get joint_homed
|
||||
testSetOnly joint_unhome 1
|
||||
echo get joint_homed
|
||||
testSetOnly joint_home 1
|
||||
echo set joint_wait_homed 1
|
||||
echo get joint_homed
|
||||
# There is a race on get teleop_enable. After we homed, it may take a while
|
||||
# for teleop mode to become active again.
|
||||
# The SET JOINT_WAIT_HOMED already waited a heartbeat for us
|
||||
# echo set wait_heartbeat
|
||||
echo get teleop_enable
|
||||
echo set echo off
|
||||
|
||||
# test probing
|
||||
testSet mode mdi
|
||||
testSetOnly probe 0 0 0.02 # <x> <y> <z>
|
||||
echo get probe_tripped
|
||||
testSetOnly probe_clear
|
||||
|
||||
testSet mode manual
|
||||
testSet teleop_enable on
|
||||
testSet mode mdi
|
||||
testSetOnly probe 0 0 0 # <x> <y> <z>
|
||||
echo get probe_tripped
|
||||
testSetOnly probe_clear
|
||||
|
||||
# test spindle command
|
||||
testSet mode manual
|
||||
testSet spindle forward # turn on all w/o param
|
||||
testSet spindle off -1 # turn off all w/param
|
||||
echo get spindle -1 # check all w/param
|
||||
testSet spindle forward 99 # turn on illegal spindle
|
||||
|
||||
# test brake command
|
||||
testSet brake on # turn on all w/o param
|
||||
testSet brake off -1 # turn off all w/param
|
||||
echo get brake -1 # check all w/param
|
||||
testSet brake forward 99 # turn on illegal spindle
|
||||
|
||||
# test pause
|
||||
testSet wait_mode received # otherwise pause will stall
|
||||
testSetOnly pause
|
||||
testSet wait_mode "done"
|
||||
testSetOnly resume
|
||||
|
||||
# test g-code
|
||||
echo set mode mdi
|
||||
echo set mdi f10
|
||||
|
||||
echo get abs_act_pos
|
||||
echo set mdi g1 x0.3 y0.2 z-0.1 # Feed move
|
||||
echo set wait_heartbeat 5 # End of move may take some time
|
||||
echo get abs_act_pos
|
||||
|
||||
echo set mdi g0x0y0z0 # Rapid back to home
|
||||
echo set mdi m100 p-1 q-2
|
||||
|
||||
# here comes a big blob
|
||||
dd bs=4096 if=lots-of-gcode
|
||||
echo set mdi m100 p-3 q-4
|
||||
|
||||
# test misc. get commands
|
||||
echo get error
|
||||
echo get abs_act_pos
|
||||
echo get abs_cmd_pos
|
||||
echo get angular_unit_conversion
|
||||
echo get display_angular_units
|
||||
echo get display_linear_units
|
||||
echo get error
|
||||
echo get feed_override
|
||||
echo get flood
|
||||
echo get joint_fault
|
||||
echo get joint_homed
|
||||
echo get joint_limit
|
||||
echo get joint_pos
|
||||
echo get joint_type
|
||||
echo get joint_units
|
||||
echo get kinematics_type
|
||||
echo get linear_unit_conversion
|
||||
echo get mist
|
||||
echo get operator_display
|
||||
echo get operator_text
|
||||
echo get optional_stop
|
||||
echo get override_limits
|
||||
echo get program
|
||||
echo get program_angular_units
|
||||
echo get program_codes
|
||||
echo get program_line
|
||||
echo get program_linear_units
|
||||
echo get program_status
|
||||
echo get program_units
|
||||
echo get rel_act_pos
|
||||
echo get rel_cmd_pos
|
||||
echo get wait_mode
|
||||
echo get teleop_enable
|
||||
echo get timeout
|
||||
echo get tool
|
||||
echo get tool_offset
|
||||
echo get update
|
||||
echo get user_angular_units
|
||||
echo get user_linear_units
|
||||
|
||||
# test misc. set commands
|
||||
testSetOnly abort
|
||||
testSet angular_unit_conversion deg # <Deg | Rad | Grad | Auto | Custom>
|
||||
testSet feed_override 100 # <Percent>
|
||||
testSet flood on # <On | Off>
|
||||
testSetOnly jog 0 1 # <Axis No, Speed>
|
||||
testSetOnly jog_incr 0 1 1 # <Axis No, Speed, Distance>
|
||||
testSetOnly jog_stop 0 # <Joint No|Axis letter>
|
||||
testSet linear_unit_conversion mm # <Inch | CM | MM | Auto | Custom>
|
||||
testSet mist on # <On | Off>
|
||||
testSet optional_stop 1 # <none | 0 | 1>
|
||||
|
||||
# These are a bit awkward to test
|
||||
#testSet load_tool_table <Table name>
|
||||
#testSet Open <File path / name>
|
||||
#testSet run <Line No>
|
||||
|
||||
# Testing set override_limits results in command line message:
|
||||
# can't do that (EMC_JOINT_OVERRIDE_LIMITS:129) in MDI mode
|
||||
testSet override_limits off # <On | Off>
|
||||
|
||||
# Testing step results in a command line message:
|
||||
# can't do that (EMC_TASK_PLAN_STEP:511) in MDI mode
|
||||
testSetOnly step
|
||||
|
||||
testSetOnly task_plan_init
|
||||
testSet teleop_enable off
|
||||
testSet timeout 10
|
||||
#testSet tool_offset 1 0.5 0.25
|
||||
testSet update auto # <None | Auto>
|
||||
testSet wait "done" # Wait for last command to be processed
|
||||
|
||||
echo set estop on
|
||||
echo get estop
|
||||
|
||||
# Shutdown will terminate linuxcncrsh and thus terminates everything
|
||||
# because it is set as our DISPLAY program.
|
||||
echo shutdown
|
||||
) | nc -v localhost 5007 > telnet-output
|
||||
|
||||
# wait for linuxcnc to finish
|
||||
wait
|
||||
|
||||
exit 0
|
||||
5
tests/linuxcncrsh/tool.tbl
Normal file
5
tests/linuxcncrsh/tool.tbl
Normal file
@@ -0,0 +1,5 @@
|
||||
T0 P0 Z+10.000000
|
||||
T1 P1 Z+20.000000
|
||||
T2 P2 Z+30.000000
|
||||
T3 P3 Z+40.000000
|
||||
T4 P4 Z+50.000000
|
||||
Reference in New Issue
Block a user