Trying to resolve#328, succeeded.
When one of rotary axis is wrapped, the code between line 1292 and 1302 will do item assignment in positions.
But if self.get_show_relative() returns false, positions is a tuple, item assignment will fail. So I added 2 lines of code to ensure positions is always a list.
In the code a SystemExit Error was thrown if linuxcnc status could not
be polled any more, this had the problem, that glade files with CombiDRO
widgets could not be loaded with glade.
Signed-off-by: Norbert Schechner <nieson@web.de>
import importlib was added with merge of branch: aux_gladevcp_apps
but the old version of python included with Ubuntu-Lucid doesn't include
importlib
If importlib is not available, continue with message to stdout
noting that auxiliary gladevcp applications are not available
Signed-off-by: Dewey Garrett <dgarrett@panix.com>
(9) aux_gladevcp_apps: rebased to origin/2.7 at commit 22cf22a
1) For auxiliary applications installed from a deb
located in a known toplevel directory defined
by the substitution variable @LINUXCNC_AUX_GLADEVCP@.
(This location can be obtained using the linuxcnc_var
script which should always be in PATH for either a
RIP build or a deb install of LinuxCNC. Typically:
@LINUXNC_AUX_GLADEVCP@ = /usr/share/linuxcnc/aux_gladevcp)
2) For testing development of auxiliary applications, use
an exported environmental variable (GLADEVCP_EXTRAS)
to specify a colon (:) separated list of app directories
Example:
$ export GLADEVCP_EXTRAS=/home/test1:/home/test2
Typically one would include the export statement in a startup
script like ~/.profile or ~/.bashrc
Notes:
a) App filenames that are duplicated are rejected
b) Files found in directories specified with the environmental
variable GLADEVCP_EXTRAS supersede identically-named files within
subdirectories of the system directory specified by
LINUXNC_AUX_GLADEVCP (e.g., /usr/share/linuxcnc/aux_gladevcp).
This provision allows a developer to test an application
by exporting GLADEVCP_EXTRAS to specify a private application
directory without removing a system-installed application directory.
Messages inidicating rejected duplicates are printed to
stdout.
c) An exclude list is used to exclude problematic filenames
that may be used for other purposes
(curently: *setup*.py, *install*.py)
Signed-off-by: Dewey Garrett <dgarrett@panix.com>
with 6 axis machine and not very fast PC the CombiDRO slowed down the main
application too much. Now we can set the poll time for each DRO separately.
At the same time i reduced the hard coded cycle time form 100 to 150.
Signed-off-by: Norbert Schechner <nieson@web.de>
Previously, when a tool length was loaded, the tool would move in space, but
the machine limits box wouldn't move accordingly. This violated the
expectation that the tool could be jogged (for instance) just inside the box.
Now, the box moves with the TLO so this expectation is true.
Signed-off-by: Chris Radek <chris@timeguy.com>
Before this change, the angry red box would appear in some cases when the
program would not actually cause the "Program exceeds machine minumum|maximum
on axis ..." and would actually run fine.
To get this situation, make a large positive G54 offset and a matching large
negative TLO offset. If they match, they should not affect the angry red
boxes, since they don't affect whether a particular gcode program will run.
Signed-off-by: Chris Radek <chris@timeguy.com>
changing the limits min or max of the integrated adjustment
will now reset the increment to apply to default value (100 increments
from min to max)
Updated the documentation
Signed-off-by: Norbert Schechner <nieson@web.de>
- if a user sets new adjustment, the increment value remained at the old
value, so if if the old values was 0 to 100 and was changed to 0 to 1000,
the increment remained as 1 instead of changing to 10, now it will be set
to a new default value.
- corrected the docu in the code
Signed-off-by: Norbert Schechner <nieson@web.de>
the saved file was created with mode 0600 because the mode was not changed
after the creation of the file, I added a line to correct that.
ToDo: make the mode a property
Signed-off-by: Norbert Schechner <nieson@web.de>
Check for gcmc executable was made only if 1 or more gcmc files specified
by ini items like [DISPLAY]NGCGUI_SUBFILE=cpocket.gcmc but was not
checked on use if there were no gcmc ini items
Thanks to forum user phillc54 for the bug report
Signed-off-by: Dewey Garrett <dgarrett@panix.com>
callLevel will be non-zero if executing a subroutine. When subroutines are
executing, EMC_TASK_STAT::file gets set to the file name of the subroutine
(remap as well I think).
Exporting the call level in the task status allows us to ignore file name
changes in hal_glib and avoid sending bogus signals to things
such as hal_gremlin and hal_sourceview.
Signed-off-by: Moses McKnight <moses@texband.net>
If the user uses a double click on a place where no icon is
located, a python exception was thrown.
Solved that with a try except
Signed-off-by: Norbert Schechner <nieson@web.de>
string.Template converts template values to strings as if by str(), but
for tiny values like 1e-9 (or large values like 1e12) this results in
exponential notation.
Tiny values arise "naturally" by manipulating a gtk spinbox, which uses
repeated addition or subtraction to manage the value. For illustrative
purposes, the following fragment of Python gives the gist:
>>> x = .1
>>> x + x + x - x - x - x # mathematically, zero
2.7755575615628914e-17 # but not in FP math
Reproduce with configs/sim/axis/gladevcp/gladevcp_tab.ini,
following this sequence of actions:
F1 F2 Ctrl-Home
click the "GladeVCP demo" tab
increment the spinbox 3 times
decrement it 3 times (0.00 will show)
click "Execute Oword subroutine"
Signed-off-by: Jeff Epler <jepler@unpythonic.net>
The SpeedControl Widget serves as a slider with button to increment or
decrease the value and a progress bar showing the value with or without
units.
It is designed to be used with touch screens
It is needed to change the sliders used with gmoccapy.
That changes will be pushed separately.
Signed-off-by: Norbert Schechner <nieson@web.de>
If the user select a icon with the mouse, the select button did not get
sensitive. I added a "selection_changed" signal to set the
button in correct state.
Signed-off-by: Norbert Schechner <nieson@web.de>
ver 1.5.6
- deleted the alarm_entry log page, as it has not been used by users
to report bugs, and therefor it was designed.
- changing DRO mode by click can be disabled on settings page
- corercted and added information to the docs
- added a new property to combi_dro to disable readout toggling
Signed-off-by: Norbert Schechner <nieson@web.de>
it seems pygtk in wheezy has sutble bugs/differences
This makes the dial widget actually update it's appearence
when you manipulate the on screen controls.
strangely it you test this without using GLADE it works fine
without this change - meaning call it: python hal_dial.py
Signed-off-by: chris morley <chrisinnanaimo@hotmail.com>
- the widget did throw an exception if a the user did enter a enter a directory
without read rights and then pushed the next or previous button, caused because
we are not allowed to iter over the files. Now the widget checks if the user is
allowed to read the files in a directory, if not the dir will be skiped and
therefor it is not visible in the widget.
- the button will get not sensitive if it does not make sense to push them,
i.e. button next, if no file is in the selected directory or home button,
if we are in the home directory
- introduced a new signal "sensitive" emitting button state changes,
so surrounding GUI can be sincroniized with the widget, see gmoccapy
as example
- the button next will now jump to first, if we are on the last icon,
the previous button jumps to last if we are on the first icon
so it is faster to get from first to last and vice versa
- some typo errors has been corrected
thanks to balestrino to report the bugs and typos
Signed-off-by: Norbert Schechner <nieson@web.de>
sometimes the var file is copied and deleted then re-saved by
linuxcnc - account for that by ignoring the update.
Signed-off-by: Chris Morley <chrisinnanaimo@hotmail.com>
using ps -C linuxcncsvr --noheader -o args
both pyngcgui and gremlin view can be started independently
of the process running linuxcnc so they ask the system for
the inifile
Signed-off-by: Dewey Garrett <dgarrett@panix.com>
The options of pgrep (package procps) changed between:
lucid: procps 1:3.2.8-1ubunt
jessie: procps 2:3.3.9-9
pgrep -lf worked on lucid but not on jessie
pgrep -a worked on jessie but not on lucid
so try the form ps ax|grep ...
ref: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=784143
Signed-off-by: Dewey Garrett <dgarrett@panix.com>