From 835da32571c08259fc81c89f711047a80bc16a5b Mon Sep 17 00:00:00 2001 From: "Wolfgang Draxinger (root@gar-ex-erdastep)" Date: Tue, 6 Dec 2011 19:38:31 +0100 Subject: things moved from scratchpad.py into their homes --- MotionControl/Axis.py | 76 +++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 76 insertions(+) (limited to 'MotionControl/Axis.py') 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() -- cgit v1.2.3