aboutsummaryrefslogtreecommitdiff
path: root/README
diff options
context:
space:
mode:
authorWolfgang Draxinger <Wolfgang.Draxinger@draxit.de>2011-12-06 11:23:24 +0100
committerWolfgang Draxinger <Wolfgang.Draxinger@draxit.de>2011-12-06 11:23:24 +0100
commite7c452c75cf84db3c4d2430981a1f1ff5016ed2c (patch)
treed45e5e98474b91a03de568c4f523bd0c4539a63f /README
parent7a91a4574c95f3f795ba12e239d66e1b4e08634a (diff)
downloadPyMotionControl-e7c452c75cf84db3c4d2430981a1f1ff5016ed2c.tar.gz
PyMotionControl-e7c452c75cf84db3c4d2430981a1f1ff5016ed2c.tar.bz2
sctarchpad
Diffstat (limited to 'README')
-rw-r--r--README32
1 files changed, 32 insertions, 0 deletions
diff --git a/README b/README
index 1c3a340..8212d3d 100644
--- a/README
+++ b/README
@@ -18,6 +18,38 @@ to form a application specific stage.
---
+Overview
+
+PyMotionControl forms *model* part of a Model View Controller
+(MVC) design. The "MotionControl" class provides an abstraction
+for a generic motion control stage. As such the only interface
+it exposes are function for setting a motion target position
+and starting and aborting a *cycle*.
+
+*Cycles* are sequences of "Actions", instances of classes derived
+from "AbstractAction" base class. Each action effects on all assigned
+axes simulatanously and the action queue is advaned upon successfull
+completion of the currently active action. If a action fails, the
+rest of the queue is not executed, but cleared and the
+*emergency_abort_action* executed, which usually just stops all axes,
+but may also perform a movement into a safe position.
+
+A MotionControl has a number of axes, which are instances of
+classes detived from "Axis". "Axis" abstracts a typical motion
+axis interface.
+
+To program complex action sequences, subclass from "MotionControl".
+Provide interface functions which turn a given target destination
+or ultimate action into a sequence of sub-actions, queueing them
+up in MotionControl.cycle_queue
+
+"Constraints" interface with "MotionControl": Every "MotionControl"
+instance has a set of constraints. In the most simple case just the
+axis limits. Upon setting a new target position the constraints
+are checked. Only if all constraints are met a cycle can be started.
+
+---
+
NOTE scratchpad.py:
scratchpad.py is the source file where new things are