diff options
author | Wolfgang Draxinger (root@gar-ex-erdastep) <Wolfgang.Draxinger@physik.uni-muenchen.de> | 2011-12-06 19:38:31 +0100 |
---|---|---|
committer | Wolfgang Draxinger (root@gar-ex-erdastep) <Wolfgang.Draxinger@physik.uni-muenchen.de> | 2011-12-06 19:38:31 +0100 |
commit | 835da32571c08259fc81c89f711047a80bc16a5b (patch) | |
tree | b9bc2999c513f0860e5e052cd20d26189cb5c45b /MotionControl/Axis.py | |
parent | e7c452c75cf84db3c4d2430981a1f1ff5016ed2c (diff) | |
download | PyMotionControl-835da32571c08259fc81c89f711047a80bc16a5b.tar.gz PyMotionControl-835da32571c08259fc81c89f711047a80bc16a5b.tar.bz2 |
things moved from scratchpad.py into their homes
Diffstat (limited to 'MotionControl/Axis.py')
-rw-r--r-- | MotionControl/Axis.py | 76 |
1 files changed, 76 insertions, 0 deletions
diff --git a/MotionControl/Axis.py b/MotionControl/Axis.py index e69de29..ff8c900 100644 --- a/MotionControl/Axis.py +++ b/MotionControl/Axis.py @@ -0,0 +1,76 @@ +# -*- coding: utf8 -*- + +class Axis(object): + def __init__(self, inverted = False, scale={}): + self.inverted = inverted + self.scale = scale + self.position = None + self.running = None + self.initializing = None + self.initialized = None + self.initiator_minus = None + self.initiator_plus = None + self.initiator_error = None + self.temperature_warning = None + self.onPosition = Signal() + self.onStarted = Signal() + self.onStopped = Signal() + self.onInitializing = Signal() + self.onInitialized = Signal() + self.onInitiatorMinus = Signal() + self.onInitiatorPlus = Signal() + self.onInitiatorError = Signal() + self.onTemperatureWarning = Signal() + + def update(self): + last_position = self.position + last_running = self.running + last_initializing = self.initializing + last_initialized = self.initialized + last_initiator_minus = self.initiator_minus + last_initiator_plus = self.initiator_plus + last_initiator_error = self.initiator_error + last_temperature_warning = self.temperature_warning + + self.do_update() + + if last_position != self.position: + self.onPosition.send(position = self.position) + + if last_running != self.running: + if self.running: + self.onStarted.send() + else: + self.onStopped.send() + + if last_initializing != self.initializing: + self.onInitializing.send(self, initializing = self.initializing) + + if last_initialized != self.initialized: + self.onInitialized.send(self, initialized = self.initialized) + + if last_initiator_minus != self.initiator_minus: + self.onInitiatorMinus.send(self, active = self.initiator_minus) + + if last_initiator_plus != self.initiator_plus: + self.onInitiatorPlus.send(self, active = self.initiator_plus) + + if last_initiator_error != self.initiator_error: + self.onInitiatorError.send(self, error = self.initiator_error) + + if last_temperature_warning != self.temperature_warning: + self.onTemperatureWarning.send(self, warning = self.temperature_warning) + + def wait_for_stop(self): + self.update() + while self.running: + self.update() + + def initiate(self): + raise NotImplementedError() + + def goto_absolute(self, target, speed = None): + raise NotImplementedError() + + def goto_relative(self, offset, speed = None): + raise NotImplementedError() |