| |
- exceptions.Exception
-
- Error
-
- CortexError
- RangeError
- ResponseError
- TimeoutError
- cortex
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.
| |