W. Trevor King [Sat, 7 Aug 2010 14:18:48 +0000 (10:18 -0400)]
Fixes to polymer_fit plugin.
Changes:
* Docstring updates to FJC_PEG_fn now that we're back to Newton's method.
* Use start/stop to select relevant slices of z/d_data for fitting.
* Use rescaled ModelFitter fitting.
W. Trevor King [Sat, 7 Aug 2010 12:59:05 +0000 (08:59 -0400)]
Add ability to select multiple y columns to gui.panel.plot
W. Trevor King [Sat, 7 Aug 2010 01:19:47 +0000 (21:19 -0400)]
Don't die comparing 'Low Voltage Z' with 'ZLowVoltage' in picoforce driver
W. Trevor King [Fri, 6 Aug 2010 13:57:14 +0000 (09:57 -0400)]
Use 'Ciao scan list'/'@Sens. ZSensorSens' to scale picoforce z piezo data.
vs. my old 'Scanner list'/'@Sens. Zsens'. The new implementation
is equivalent to the pre-Trevor Volt -> meter conversion.
The values for test/data/picoforce.000 changed from
5.465e-08 m/V ('Ciao scan list'/'@Sens. ZSensorSens')
to
1e-06 m/V ('Scanner list'/'@Sens. Zsens')
1e-6 m/V is a suspiciously even number for a piezo sensitivity rating,
but the scaled graph of deflection as a function of cantilever
adjusted extension certainly appears more appropriately cantilever
corrected.
W. Trevor King [Fri, 6 Aug 2010 12:43:16 +0000 (08:43 -0400)]
Use cantilever adjusted extension in polymer fitting.
W. Trevor King [Fri, 6 Aug 2010 12:41:38 +0000 (08:41 -0400)]
Added CantileverAdjustedExtensionCommand to hooke.plugin.vclamp.
W. Trevor King [Fri, 6 Aug 2010 11:47:50 +0000 (07:47 -0400)]
Moved hooke.plugin.fit -> polymer_fit & updated to Plugin/Command architecture.
W. Trevor King [Wed, 4 Aug 2010 17:36:40 +0000 (13:36 -0400)]
Add support to GUI's property editor for argument.count > 1.
Now we only bail if the argument count is -1 (infinite).
Also fix a col,row -> row,col bug that was goofing up property
tooltips.
W. Trevor King [Wed, 4 Aug 2010 16:21:35 +0000 (12:21 -0400)]
Fix info.columns -> info['columns'] in vclamp.scale()
W. Trevor King [Wed, 4 Aug 2010 15:53:33 +0000 (11:53 -0400)]
Fix single-parameter rescaling in hooke.util.fit.ModelFitter
W. Trevor King [Wed, 4 Aug 2010 14:45:28 +0000 (10:45 -0400)]
Added rescaling option to hooke.util.fit.ModelFitter
W. Trevor King [Wed, 4 Aug 2010 12:12:53 +0000 (08:12 -0400)]
Remove 'data = ...' line from the end of vclamp.SurfaceContactCommand._run
W. Trevor King [Wed, 4 Aug 2010 12:11:17 +0000 (08:11 -0400)]
Expose 'conditons' config settings to plugins directly.
W. Trevor King [Wed, 4 Aug 2010 12:10:04 +0000 (08:10 -0400)]
Add better help string to 'conditions' config section
W. Trevor King [Wed, 4 Aug 2010 10:43:54 +0000 (06:43 -0400)]
Add `block` argument to hooke.plugin.vclamp.scale and only run required commands
W. Trevor King [Wed, 4 Aug 2010 00:01:55 +0000 (20:01 -0400)]
More cleanups to Setting/Argument type handling, mostly for count != 1.
W. Trevor King [Tue, 3 Aug 2010 20:26:37 +0000 (16:26 -0400)]
Broke type conversion out into hooke.util.convert and expanded its use.
W. Trevor King [Tue, 3 Aug 2010 19:38:21 +0000 (15:38 -0400)]
Added Licensing section to README
W. Trevor King [Tue, 3 Aug 2010 19:36:14 +0000 (15:36 -0400)]
Added string, bool, int, and float conversion to HookeConfigParser
W. Trevor King [Tue, 3 Aug 2010 18:06:17 +0000 (14:06 -0400)]
VelocityClampPlugin is a Plugin (not a Builtin)
W. Trevor King [Tue, 3 Aug 2010 17:03:47 +0000 (13:03 -0400)]
Fix swapped docstrings for CurvePlugin's DifferenceCommand and DerivativeCommand
W. Trevor King [Tue, 3 Aug 2010 16:57:34 +0000 (12:57 -0400)]
Use .index() instead of ._index for NoteIndexList access
W. Trevor King [Tue, 3 Aug 2010 15:18:54 +0000 (11:18 -0400)]
Bring hooke.plugin.tutorial up to date with Plugin/Command architecture.
W. Trevor King [Tue, 3 Aug 2010 15:16:36 +0000 (11:16 -0400)]
Fix NoteIndexList.index implementation and add NoteIndexList.items
W. Trevor King [Tue, 3 Aug 2010 15:05:33 +0000 (11:05 -0400)]
Add NoteIndexList.index() so other classes can avoid ._index
W. Trevor King [Tue, 3 Aug 2010 15:04:52 +0000 (11:04 -0400)]
Fix PointRequest and improve command line handling of selection and point requests.
W. Trevor King [Tue, 3 Aug 2010 15:03:45 +0000 (11:03 -0400)]
Fix run cleanup if the UI ends without clearing non-Hooke msgs from the Queue.
If the UI closes before the last command finishes (e.g. if bin/hooke
is run in a pipe), there may be cruft (e.g. CommandExit instances)
left in the engine-to-UI queue before the Hooke instance that the
CommandEngine appends on closing. The new implementation keeps
digging through the queue until it finds a Hooke instance, where the
old implementation only looked at the first message that came off the
queue.
Also added some useful debugging logs for UI<->Engine communication.
W. Trevor King [Tue, 3 Aug 2010 12:32:07 +0000 (08:32 -0400)]
Oops. Fix "'." -> ".'" in dependency warning message.
W. Trevor King [Tue, 3 Aug 2010 12:09:18 +0000 (08:09 -0400)]
Add dependency checking to hooke.plugin.load_graph
W. Trevor King [Tue, 3 Aug 2010 11:12:38 +0000 (07:12 -0400)]
Add multi-y TODO comment to gui.panel.plot
W. Trevor King [Tue, 3 Aug 2010 11:03:37 +0000 (07:03 -0400)]
Updated README tutorial reference and troubleshooting steps.
W. Trevor King [Tue, 3 Aug 2010 10:54:38 +0000 (06:54 -0400)]
Removed hooke/ui/gui/playlist.py, the last outdated .py file in .../gui/
The remaining gui.* submods aren't all updated to the current
architecture, but there shouldn't be any more file removals necessary.
W. Trevor King [Tue, 3 Aug 2010 10:51:55 +0000 (06:51 -0400)]
Consolidated point-handling modules in hooke.ui.gui into gui.dialog.points
W. Trevor King [Tue, 3 Aug 2010 10:38:40 +0000 (06:38 -0400)]
Remove outdated TODO: comments from hooke.ui.gui
W. Trevor King [Tue, 3 Aug 2010 01:29:57 +0000 (21:29 -0400)]
Flesh out HookeFrame._on_set_selected_playlist with 'jump to playlist' call
W. Trevor King [Tue, 3 Aug 2010 00:50:55 +0000 (20:50 -0400)]
Don't save non-string portions of *.info in playlist xml files
W. Trevor King [Tue, 3 Aug 2010 00:10:15 +0000 (20:10 -0400)]
Ran update_copyright.py
W. Trevor King [Tue, 3 Aug 2010 00:06:56 +0000 (20:06 -0400)]
Grr. Uncomment authors & file lines un update_copyright.py again.
W. Trevor King [Mon, 2 Aug 2010 23:35:09 +0000 (19:35 -0400)]
Also escape quotes (") in minidom's _write_data.
W. Trevor King [Mon, 2 Aug 2010 17:48:39 +0000 (13:48 -0400)]
Adjust hooke.playlist to allow spaces in .info keys.
W. Trevor King [Mon, 2 Aug 2010 16:37:37 +0000 (12:37 -0400)]
Add hooke.compat.minidom to fix Python's XML generation issue5752.
xml.dom.minidom.Element.writexml doesn't escape some special
characters (e.g. '\n'). See
http://bugs.python.org/issue5752
importing hooke.compat.minidom fixes this bug dynamically.
W. Trevor King [Mon, 2 Aug 2010 14:56:10 +0000 (10:56 -0400)]
Updated gui.panel.note and simplified hooke.plugin.note.
Previous hooke.plugin.note had assumed curve.info['note'] was a list
of strings. The current implementation is simpler (and class
agnostic) with get/set commands.
NotePanel now works as a UI to the current curve's .info['note'], but
it has exposed some issues with .info in Playlist.flatten().
Also removed some outdated binding cruft from gui/__init__.py (now
handled by the panels themselves) and an outdated _callback setting
from panel.commands (it's set in the base Panel.__init__()).
W. Trevor King [Mon, 2 Aug 2010 13:38:02 +0000 (09:38 -0400)]
Update the curve in ui.gui after a vclamp plugin command.
W. Trevor King [Mon, 2 Aug 2010 13:25:32 +0000 (09:25 -0400)]
Don't plot data blocks that are missing a selected x/y column
W. Trevor King [Mon, 2 Aug 2010 13:25:05 +0000 (09:25 -0400)]
Remove debugging printout from gui.panel.commands
W. Trevor King [Mon, 2 Aug 2010 13:22:04 +0000 (09:22 -0400)]
Rename _on_mouse_over -> _on_motion in panel.propertyeditor
W. Trevor King [Mon, 2 Aug 2010 13:14:57 +0000 (09:14 -0400)]
Add help tooltips to commands in gui.panel.commands
W. Trevor King [Mon, 2 Aug 2010 01:47:43 +0000 (21:47 -0400)]
Added axes-selection choice widgets to gui.panel.plot's navbar.
W. Trevor King [Sun, 1 Aug 2010 22:44:15 +0000 (18:44 -0400)]
Remove LocalWords (accidental Emacs spellcheck) from hooke.driver.jpk
W. Trevor King [Sun, 1 Aug 2010 22:43:07 +0000 (18:43 -0400)]
Make gui.panel.plot's toolbar optional & start generalizing axes selection
W. Trevor King [Sun, 1 Aug 2010 20:51:20 +0000 (16:51 -0400)]
genrst calls xsltproc to generate gui_flow.svg.
Unfortunately, Sphinx doesn't seem to recognize that gui_flow.xml will
turn into gui_flow.svg after graph.xsl's transformation (but perhaps
I'm just doing something wrong?). We work around that by running the
transformation and linking hacking.txt to the generated svg file
instead of the source xml. Of course, this adds an additional build
dependency (xsltproc), but xslt processors should be common enough
that that's not a big deal.
The change was made in the scons cache file doc/.sconsrc-sphinx.
I also added the generated file (doc/img/gui_flow/gui_flow.svg) to
.hgignore.
W. Trevor King [Sun, 1 Aug 2010 20:32:57 +0000 (16:32 -0400)]
Added note about GUI architecture to doc/hacking.txt + doc/img/gui_flow/.
doc/img/gui_flow/
|-- gui_flow.xml XML definition of the information-flow graph.
|-- graph.xsl XSLT translating gui_flow.xml -> gui_flow.svg
`-- math.sqrt.template.xsl Template for calculating sqrt(x) in XSLT.
Periodically I get the hare-brained idea that I want to do something
with XSLT. I'm not sure what I was thinking ;). It's done now though,
and it seems a shame to waste it.
W. Trevor King [Sat, 31 Jul 2010 20:31:19 +0000 (16:31 -0400)]
Use 'hooke' log vs. print to output debugging messages in hooke.ui.gui
W. Trevor King [Sat, 31 Jul 2010 20:20:08 +0000 (16:20 -0400)]
Also remove crufty old gui.plugin.plot
W. Trevor King [Sat, 31 Jul 2010 20:15:11 +0000 (16:15 -0400)]
Removed some old cruft from hooke/ui/gui/
W. Trevor King [Sat, 31 Jul 2010 20:11:53 +0000 (16:11 -0400)]
Moved MemoDialog from hookepropertyeditor -> dialog.text.
W. Trevor King [Sat, 31 Jul 2010 20:10:03 +0000 (16:10 -0400)]
Moved HookeScalarFormatter from formatter -> panel.plot.
W. Trevor King [Sat, 31 Jul 2010 19:23:55 +0000 (15:23 -0400)]
Make hooke.config.HookeConfigParser's options case sensitive (vs. all lowercase)
W. Trevor King [Sat, 31 Jul 2010 19:13:49 +0000 (15:13 -0400)]
prettyformat -> hooke.util.si, and 'plot SI format' option to GUI
W. Trevor King [Sat, 31 Jul 2010 17:27:54 +0000 (13:27 -0400)]
Several changes while getting 'plot' panel working
W. Trevor King [Sat, 31 Jul 2010 14:02:00 +0000 (10:02 -0400)]
Use RawConfigParser instead of SafeConfigParser as base class in hooke.config.
This allows us to use things like the upcomming
plot x format = %.3g
W. Trevor King [Sat, 31 Jul 2010 12:36:29 +0000 (08:36 -0400)]
Fixed curve/playlist choice argument handling in panel.propertyeditor2
W. Trevor King [Sat, 31 Jul 2010 11:55:38 +0000 (07:55 -0400)]
Fix postprocess_get_curve in the case that nothing in the playlist panel is selected
W. Trevor King [Sat, 31 Jul 2010 11:49:04 +0000 (07:49 -0400)]
Don't expand plugins in CommandsPanel by deefault (too much space)
W. Trevor King [Sat, 31 Jul 2010 11:38:53 +0000 (07:38 -0400)]
Rework update_copyright and short_license to allow unwrapped paragraphs.
The GUI's about popup does it's own wrapping, so the text we send in
should be unwrapped.
W. Trevor King [Fri, 30 Jul 2010 19:57:11 +0000 (15:57 -0400)]
Added 'get playlist' and hooke.plugin.playlists
W. Trevor King [Fri, 30 Jul 2010 19:45:29 +0000 (15:45 -0400)]
Added hooke.plugin.license and removed get-warrenty info from short_license.
Also uncommented update_authors() and update_files() in
update_copyright, since I'm no longer testing the pyfile code ;).
W. Trevor King [Fri, 30 Jul 2010 19:29:18 +0000 (15:29 -0400)]
Add hooke/license.py to .hgignore
W. Trevor King [Fri, 30 Jul 2010 19:15:40 +0000 (15:15 -0400)]
Added pyfile output to update_copyright.py.
This creates hooke/license.py with licensing strings and functions.
I've updated the copyright blurbs in the command line startup message
and the GUI about message, but haven't actually added the advertised
'warrenty' and 'license' details yet.
W. Trevor King [Fri, 30 Jul 2010 13:41:35 +0000 (09:41 -0400)]
Fix Command._run signatures in hooke.command and hooke.ui.commandline.
The commandline bits revert some changes from
6e29dc38540b where I'd
confused
UserInterface.run(self, commands, ui_to_command_queue, command_to_ui_queue)
with
Command._run(self, hooke, inqueue, outqueue, params)
W. Trevor King [Fri, 30 Jul 2010 13:37:35 +0000 (09:37 -0400)]
Add ability to bypass troublesome imports to hooke.util.pluggable.submods.
This allows you to, for example, run the command line UI without
having the GUI's required wxwindows installed.
W. Trevor King [Fri, 30 Jul 2010 13:14:10 +0000 (09:14 -0400)]
get prev/next playlist buttons working in the navbar
W. Trevor King [Fri, 30 Jul 2010 12:09:40 +0000 (08:09 -0400)]
Cleaned up playlist panel's curve selection
W. Trevor King [Fri, 30 Jul 2010 11:08:24 +0000 (07:08 -0400)]
Filled in the playlist panel's _on_delete handling
W. Trevor King [Fri, 30 Jul 2010 01:51:26 +0000 (21:51 -0400)]
Restored the playlist panel + cleanups now that I can load stuff into it ;).
W. Trevor King [Thu, 29 Jul 2010 19:03:15 +0000 (15:03 -0400)]
Docstring cleanups in gui.panel.commands
W. Trevor King [Thu, 29 Jul 2010 19:02:09 +0000 (15:02 -0400)]
Can successfully run 'load playlist' from CommandsPanel
W. Trevor King [Thu, 29 Jul 2010 17:16:23 +0000 (13:16 -0400)]
Fill out prop_from_arguments so PropertyPanel displays command args.
W. Trevor King [Thu, 29 Jul 2010 16:43:56 +0000 (12:43 -0400)]
Added simple PathProperty (same as StringProperty).
Outstanding types:
3 object
3 dict
1 function
W. Trevor King [Thu, 29 Jul 2010 16:37:31 +0000 (12:37 -0400)]
hooke.plugin.playlist.AddGlobCommand's 'input' argument type 'glob' -> 'string'
W. Trevor King [Thu, 29 Jul 2010 16:36:38 +0000 (12:36 -0400)]
Added FloatProperty and ChoiceProperty.
ChoiceProperty will be used for 'curve', 'playlist', and possibly 'driver'.
We'll group the outstanding types following:
PathProperty():
5 file
2 path
To be renamed:
1 glob --> string
To be determined:
3 object
3 dict
1 function
Handled by callbacks, to allow clicking on plots:
1 point
W. Trevor King [Thu, 29 Jul 2010 16:08:23 +0000 (12:08 -0400)]
Added BoolProperty and StringProperty
A grep through hooke/plugins/ shows what we need to implement.
I've checked the completed properties with '+'.
$ grep 'type=' hooke/plugin/*.py | sed -n "s/.* type='\([^']*\)'.*/\1/p" | sort | uniq -c
+ 8 bool
2 curve
3 dict
1 driver
5 file
7 float
1 function
1 glob
+ 22 int
3 object
2 path
1 playlist
1 point
+ 6 string
W. Trevor King [Thu, 29 Jul 2010 15:22:09 +0000 (11:22 -0400)]
Added gui.panel.propertyeditor2 to work around *nix+wxPropertyGrid issues.
The basic framework works, but only IntProperty is currently implemented.
W. Trevor King [Thu, 29 Jul 2010 11:55:34 +0000 (07:55 -0400)]
Argument-less command execution in GUI working!
W. Trevor King [Thu, 29 Jul 2010 11:41:27 +0000 (07:41 -0400)]
Added gui.panel.output for displaying text output
W. Trevor King [Thu, 29 Jul 2010 11:39:59 +0000 (07:39 -0400)]
Added gui.panel.output for displaying text output
W. Trevor King [Wed, 28 Jul 2010 21:52:45 +0000 (17:52 -0400)]
Oops. Remove PerspectiveHooks relic of aborted MixIn refactoring
W. Trevor King [Tue, 27 Jul 2010 20:51:27 +0000 (16:51 -0400)]
Reordered gui.HookeFrame methods to group by category
W. Trevor King [Tue, 27 Jul 2010 20:35:43 +0000 (16:35 -0400)]
Got 'Perspectives' menu working
W. Trevor King [Tue, 27 Jul 2010 16:14:14 +0000 (12:14 -0400)]
Break out hooke.util.pluggable.submods.
W. Trevor King [Tue, 27 Jul 2010 14:47:32 +0000 (10:47 -0400)]
ViewMenu now works with new gui layout
W. Trevor King [Tue, 27 Jul 2010 14:39:21 +0000 (10:39 -0400)]
Oops, meant to include hooke.ui.gui.panel.selection in last commit.
W. Trevor King [Tue, 27 Jul 2010 14:30:23 +0000 (10:30 -0400)]
hooke.ui.gui was getting complicated, so I stripped it down for a moment.
I want HookeFrame to be a callback clearinghouse. Flow will look like
panels/menus/navbars
| ^
callbacks methods
v |v--(response processors)-,
Hooke Frame engine
`---(execute_command)----^
With the following naming scheme in HookeFrame:
callbacks: _on_*
response processors: _postprocess_*
Also:
* more use of hooke.util.pluggable for handling extendible submods.
W. Trevor King [Mon, 26 Jul 2010 20:43:07 +0000 (16:43 -0400)]
Broke menu, navbar, statusbar, panel.notebook, and panel.welcome out of gui
W. Trevor King [Mon, 26 Jul 2010 19:06:27 +0000 (15:06 -0400)]
Rearranged gui.panel.commands
W. Trevor King [Mon, 26 Jul 2010 00:33:15 +0000 (20:33 -0400)]
Major rework of gui.panel.playlist.
I'm trying to get as much of the Playlist handling out into this
submod as possible, which should make for a cleaner gui/__init__.py.
Still, some ways to go, and the current situation is untested.
W. Trevor King [Sun, 25 Jul 2010 16:40:50 +0000 (12:40 -0400)]
Added in_callback() to hooke.util.callback and pulled out is_iterable().
Also added hooke.util.caller with caller_name() which is useful for
in_callback().
W. Trevor King [Sun, 25 Jul 2010 01:48:06 +0000 (21:48 -0400)]
Added hooke.util.callback defining the @callback decorator.
W. Trevor King [Sat, 24 Jul 2010 19:58:01 +0000 (15:58 -0400)]
Bound events down through folders. To go: commands, propgrid, results
W. Trevor King [Sat, 24 Jul 2010 18:06:50 +0000 (14:06 -0400)]
Cleaning up hooke.ui.gui. Can initialize, but without most bindings.
Following the wxPython style guide:
http://wiki.wxpython.org/wxPython%20Style%20Guide
Most of removing IDs and breaking out GUI elements into their own classes.