cortex
index
/home/optics/dazle/dics/dics/cortex.py

 
Modules
       
logging
serial

 
Classes
       
exceptions.Exception
Error
CortexError
RangeError
ResponseError
TimeoutError
cortex

 
class CortexError(Error)
    Exception raised if the Cortex controller responds to a command
with 'E#/r/n', i.e. if it receives and illegal command.  This should
of course never happen...
 
Attributes: command - the command string sent to the controller which
                      resulted in the error.
 
 
Method resolution order:
CortexError
Error
exceptions.Exception

Methods defined here:
__init__(self, command)

Methods inherited from exceptions.Exception:
__getitem__(...)
__str__(...)

 
class Error(exceptions.Exception)
    Base class for exceptions in this module.
 
  Methods inherited from exceptions.Exception:
__getitem__(...)
__init__(...)
__str__(...)

 
class RangeError(Error)
    Exception raised if there is an attempt to set a Cortex parameter
with an value outside the allowed range.
 
Attributes: parameter - the parameter in question
            value - the illegal value requested
            range - the allowed range for the parameter
 
 
Method resolution order:
RangeError
Error
exceptions.Exception

Methods defined here:
__init__(self, parameter, value, range)

Methods inherited from exceptions.Exception:
__getitem__(...)
__str__(...)

 
class ResponseError(Error)
    Exception raised when an unexpected response is received from the
Cortex controller.  This should of course never happen...
 
Attributes: command - the command string sent to the controller
            response - the response string received
 
 
Method resolution order:
ResponseError
Error
exceptions.Exception

Methods defined here:
__init__(self, command, response)

Methods inherited from exceptions.Exception:
__getitem__(...)
__str__(...)

 
class TimeoutError(Error)
    Exception raised when there is no response from the Cortex
controller.  This most likely means it's been disconnected,
switched off, or a command has been sent to a non-existant unit
in a daisy chain.
 
Attributes: command - the last command string sent to the controller
 
 
Method resolution order:
TimeoutError
Error
exceptions.Exception

Methods defined here:
__init__(self, command)

Methods inherited from exceptions.Exception:
__getitem__(...)
__str__(...)

 
class cortex
    Basic class representing an interface to a Cortex controller
(or daisy chain of controllers).  Presents functions corresponding
to each of the commands accepted by a Cortex controller.  Performs
range checking on arguments and returns response from the
controller.
 
  Methods defined here:
__init__(self, portname, units, name='cortex')
Arguments:
 
portname: device name of the serial port to use
units: number of cortex units in the chain
name: name to be used as a label in the logs
getInput(self, cortex_num=1)
Gets the status of the 4-bit input of the Cortex Controller,
returning it as an integer in the range 0-15.
 
Arguments: cortex_num - which controller of a daisy chain to
                        query, default 1.
getLimitStatus(self, cortex_num=1)
Queries the limit switch status, returns -1 if lower limit made,
+1 if upper limit made and 0 is neither is.  Note, this command
ALWAYS stops the motors, use isActive() first to determine if the
motors are in motion.
 
Arguments: cortex_num - which controller of a daisy chain to
                        query, default 1.
getParams(self, cortex_num=1)
getPosition(self, cortex_num=1)
Requests the current motor position from the controller,
in steps from the datum and returns it as an integer.
 
Arguments: cortex_num - which controller of a daisy chain to
                        query, default 1.
getRemaining(self, cortex_num=1)
Requests the number of steps left to go in the current move
from the controller and returns the reply as an integer.
 
Arguments: cortex_num - which controller of a daisy chain to
                        query, default 1.
halt(self, cortex_num=1)
Smoothly halts the motor.  For emergency stops use
the stop command.
 
Arguments: cortex_num - which controller in a chain
                        to halt, default 1.
isActive(self, cortex_num=1)
Requests the motor status from the controller, returns True
if the motor is active, False otherwise.
 
Arguments: cortex_num - which controller of a daisy chain to
                        query, default 1.
move(self, steps, cortex_num=1)
Move a given number of steps (<2000000000) with
acceleration (uses motion parameters defined by
setMotorParams).
 
Arguments: steps - number of steps to move, integer in
                   range -2000000000:+2000000000
           cortex_num - which controller to instruct to
                        move, default 1.
moveAbs(self, position, cortex_num=1)
Move to a given position, with acceleration (uses motion
parameters defined by setMotorParams).
 
Arguments: position - position, measure in steps from the datum
                      to move to.
           cortex_num - which controller to instruct to
                        move, default 1.
moveConst(self, steps, cortex_num=1)
Move a given number of steps (<2000000000) at a
constant speed (uses speed set via setSpeed).
 
Arguments: steps - number of steps to move, integer in
                   range -2000000000:+2000000000
           cortex_num - which controller to instruct to
                        move, default 1.
moveConstAbs(self, position, cortex_num=1)
Move to a given position at a constant speed (used
speed set via setSpeed).
 
Arguments: position - position, measure in steps from the datum
                      to move to.
           cortex_num - which controller to instruct to
                        move, default 1.
moveConstLimit(self, direction, cortex_num=1)
Move to a given limit at a constant speed (uses speed
set via setSpeed).
 
Arguments: direction - the direction to move in, 1 for
                       towards the upper limit, -1 for
                       towards the lower limit, or 0
                       for, er, something else (Cortex
                       documentation doesn't explain this).
           cortex_num - which controller to instruct to
                        move, default 1.
moveLimit(self, direction, cortex_num=1)
Move to a given limit with acceleration (uses motion
parameters defined with setMotorParams).
 
Arguments: direction - the direction to move in, 1 for
                       towards the upper limit, -1 for
                       towards the lower limit, or 0
                       for, er, something else (Cortex
                       documentation doesn't explain this).
           cortex_num - which controller to instruct to
                        move, default 1.
saveParams(self, cortex_num=1)
Writes all current controller parameters to EEPROM, if
fitted.
 
Arguments: cortex_num - which controller of a daisy chain to
                        command, default 1.
setCurrent(self, current=160, cortex_num=1)
Sets the motor current, in mA.  Allowed range is
0-600mA, in steps of 40mA (intermediate values, if given,
are rounded down to the nearest multiple of 40).  N.B.
Do not exceed 160mA in continous use unless a heatsink is
fitted.
 
Arguments: current - motor current, in mA, integer in range
                     0-600.
           cortex_num - which controller of a daisy chain to
                        command, default 1.
setDatum(self, position=0, cortex_num=1)
Change the coordinate system so that the current position
is equal to the argument.
 
Arguments: position - value to assign to the current position,
                      default 0.
           cortex_num - which controller of a daisy chain to
                        command, default 1.
setDefaults(self, cortex_num=1)
Return all parameters to their default values, with the
exception of the newline parameter on the first controller in
the chain (newlines are required for communication using
pySerial).  The default values are given in the Cortex
controller doumentation.
 
Arguments: cotrex_num - which controller of a daisy chain to
                        reset to defaults, default 1.
setJoystick(self, jitter=4, deadband=20, slowband=10, sense=0, cortex_num=1)
Sets the joystick parameters. No sanity checking of
arguments implemented yet.
 
Arguments: jitter - allowable joystick noise, default 4
           deadband - joystick deadband, default 20
           slowband - slow motion band, default 10
           sense - joystick not reversed, default 0
           cortex_num - which controller in a daisy chain
                        to command, default 1.
setLocalMode(self, yes=True, cortex_num=1)
Toggles local/manual mode.  If the first argument is
True sets local mode on, if False sets local mode off.
 
Arguments: yes - boolean, if True set local mode on,
                 and vice versa, default True
           cortex_num - which controller in a daisy chain
                        to command, default 1.
setMicrostepping(self, ratio, cortex_num=1)
Set the microstepping ratio using the numeric codes
described in the Cortex controller documentation.  The
argument ratio should be an integer in the range 0-63.
 
Arguments: ratio - microstepping ratio code, integer
                   in range 0-63.
           cortex_num - which controller in a diasy chain
                        to set, default 1.
setMotorParams(self, baseSpeed=1000, maxSpeed=60000, acceleration=30000, deceleration=120000, cortex_num=1)
Sets the motor motion parameters, base speed, maximum
speed, acceleration and deceleration.
 
Arguments: baseSpeed - starting speed for move, moveAbs
                       and moveLimit commands, default
                       1000.
           maxSpeed - top speed, default 60000
           acceleration - acceleration, default 30000
           deceleration - deceleration, default 120000
           cortex_num - which controller in a daisy chain
                        to set, default 1.
setOutput(self, output, cortex_num=1)
Sets the state of the four bit optocoupler output
of the Cortex controller.
 
Arguments: output - integer in range 0-15 corresponding
                    to desired state of the 4 bit output.
           cortex_num - which controller in a chain to
                        set, default 1.
setSpeed(self, speed=150, cortex_num=1)
Sets the constant speed for moveConst, moveConstAbs
and moveConstLimit commands.
 
Arguments: speed - required speed in steps/sec,
                   integer in range 62-60000
           cortex_num - which controller in a chain
                        to set, default 1.
stop(self, cortex_num=1)
Emergency stop.
 
Arguments: cortex_num - which controller in a chain to stop,
                        default 1.
trigger(self, input=-1, cortex_num=1)
Delay move until given a given input goes high.  If no
input is specified then moves occur as they are requested.
 
Arguments: input - the number of the input to trigger on,
                   integer in the range 0-3 (I think). If
                   omitted triggering is suspended.
           cortex_num - which controller in a chain to set
                        triggering for, default 1.