# This config file was created 2017-02-05 00:32:40.919119 by the update_ini script
# The original config files may be found in the /home/chris/linuxcnc-mk/configs/sim/qtscreen/qtdefault.old directory

# 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
#define EMC_DEBUG_CONFIG            0x00000002
#define EMC_DEBUG_VERSIONS          0x00000008
#define EMC_DEBUG_TASK_ISSUE        0x00000010
#define EMC_DEBUG_NML               0x00000040
#define EMC_DEBUG_MOTION_TIME       0x00000080
#define EMC_DEBUG_INTERP            0x00000100
#define EMC_DEBUG_RCS               0x00000200
#define EMC_DEBUG_INTERP_LIST       0x00000800
#define EMC_DEBUG_IOCONTROL         0x00001000
#define EMC_DEBUG_OWORD             0x00002000
#define EMC_DEBUG_REMAP             0x00004000
#define EMC_DEBUG_PYTHON            0x00008000
#define EMC_DEBUG_NAMEDPARAM        0x00010000
#define EMC_DEBUG_GDBONSIGNAL       0x00020000
#define EMC_DEBUG_PYTHON_TASK       0x00040000
#define EMC_DEBUG_ALL               0x7FFFFFFF	/* it's an int for %i to work
					
DEBUG =              0x00002000
#DEBUG = 0

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

# Name of display program, e.g., xemc
DISPLAY = qtvcp -m blender
PREFERENCE_FILE_PATH = WORKINGFOLDER/blender.pref
# 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 =     2.0

DEFAULT_SPINDLE_SPEED = 200
MIN_SPINDLE_OVERRIDE =  0.5
MAX_SPINDLE_OVERRIDE =  1.5

MAX_LINEAR_VELOCITY =   1
DEFAULT_LINEAR_VELOCITY =   .25

# Prefix to be used
PROGRAM_PREFIX = ../../nc_files/

# Introductory graphic
INTRO_GRAPHIC = linuxcnc.gif
INTRO_TIME = 5

#EDITOR = geany
TOOL_EDITOR = tooledit

INCREMENTS = 0.1 in, 0.01 in, 0.001 in, 0.0001 in, 1 mm, 0.1 mm, 0.01 mm

# set up 3 user popup message dialogs
MESSAGE_BOLDTEXT = NONE
MESSAGE_TEXT = This is a statusbar test
MESSAGE_DETAILS = STATUS DETAILS
MESSAGE_TYPE = status
MESSAGE_PINNAME = statustest

MESSAGE_BOLDTEXT = NONE
MESSAGE_TEXT = This is a yes no dialog test
MESSAGE_DETAILS = Y/N DETAILS
MESSAGE_TYPE = yesnodialog
MESSAGE_PINNAME = yndialogtest

MESSAGE_BOLDTEXT = This is the short text
MESSAGE_TEXT = This is the longer text of the both type test. It can be longer then the status bar text
MESSAGE_DETAILS = BOTH DETAILS
MESSAGE_TYPE = okdialog status
MESSAGE_PINNAME = bothtest

[MDI_COMMAND_LIST]
MDI_COMMAND = G0 X0Y0Z0
MDI_COMMAND = G0 X1Y1Z1

[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 = python

# Task controller section -----------------------------------------------------

[RS274NGC]

# File containing interpreter variables
PARAMETER_FILE = sim.var
SUBROUTINE_PATH = ~/linuxcnc/nc_files/macros/lathe
# Motion control section ------------------------------------------------------

[EMCMOT]

EMCMOT =              motmod

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

# Interval between tries to emcmot, in seconds
COMM_WAIT =             0.010

# 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

# Hardware Abstraction Layer 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 --------------------------------------------

[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_constraints.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 = qtvcp_postgui.hal

HALUI = halui

# Trajectory planner section --------------------------------------------------

[HALUI]
#No Content
[TRAJ]


AXES =                  3
COORDINATES =           X Y Z
HOME =                  0 0 0
LINEAR_UNITS =          inch
ANGULAR_UNITS =         degree
CYCLE_TIME =            0.010
DEFAULT_LINEAR_VELOCITY =      5
POSITION_FILE = position.txt
MAX_LINEAR_VELOCITY =   5

# Axes sections ---------------------------------------------------------------

# First axis
[EMCIO]
# tool table file
TOOL_TABLE = ../sim.tbl
TOOL_CHANGE_POSITION = 0 0 0
TOOL_CHANGE_QUILL_UP = 1


[KINS]
KINEMATICS = trivkins
#This is a best-guess at the number of joints, it should be checked
JOINTS = 3

[AXIS_X]
MIN_LIMIT = -40.0
MAX_LIMIT = 40.0
MAX_VELOCITY = 5
MAX_ACCELERATION = 50.0

[JOINT_0]


TYPE =                          LINEAR
HOME =                          0.000
MAX_VELOCITY =                  5
MAX_ACCELERATION =              50.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_OFFSET =                    0.0
HOME_SEARCH_VEL =                20.0
HOME_LATCH_VEL =                 20.0
HOME_USE_INDEX =                 NO
HOME_IGNORE_LIMITS =             NO
HOME_SEQUENCE = 1

# Second axis
[AXIS_Y]
MIN_LIMIT = -40.0
MAX_LIMIT = 40.0
MAX_VELOCITY = 5
MAX_ACCELERATION = 50.0

[JOINT_1]


TYPE =                          LINEAR
HOME =                          0.000
MAX_VELOCITY =                  5
MAX_ACCELERATION =              50.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_OFFSET =                    0.0
HOME_SEARCH_VEL =                20.0
HOME_LATCH_VEL =                 20.0
HOME_USE_INDEX =                 NO
HOME_IGNORE_LIMITS =             NO
HOME_SEQUENCE = 1

# Third axis
[AXIS_Z]
MIN_LIMIT = -8.0
MAX_LIMIT = 0.12
MAX_VELOCITY = 5
MAX_ACCELERATION = 50.0

[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

# section for main IO controller parameters
