On Wed, Aug 22, 2007 at 02:35:03AM +0200, Michel Gouget wrote:
> Is it difficult, very difficult or extremely difficult to add an NML+HAL
> library to python?

It's already there -- it's the basis for such neat things as AXIS, the
hal_input userspace driver, and so on.


Help on module hal:

NAME
    hal - Interface to emc2's hal

FILE
    /usr/lib/python2.4/site-packages/hal.so

DESCRIPTION
    This module allows the creation of userspace HAL components in Python.
    This includes pins and parameters of the various HAL types.
    
    Typical usage:
    
    import hal, time
    h = hal.component("component-name")
    # create pins and parameters with calls to h.newpin and h.newparam
    h.newpin("in", hal.HAL_FLOAT, hal.HAL_IN)
    h.newpin("out", hal.HAL_FLOAT, hal.HAL_OUT)
    h.ready() # mark the component as 'ready'
    
    try:
        while 1:
            # act on changed input pins; update values on output pins
            time.sleep(1)
            h['out'] = h['in']
    except KeyboardInterrupt: pass
    
    When the component is requested to exit with 'halcmd unload', a
    KeyboardInterrupt exception will be raised.

CLASSES
    __builtin__.object
        component
    exceptions.Exception
        error
    
    class component(__builtin__.object)
     |  HAL Component
     |  
     |  Methods defined here:
     |  
     |  __delattr__(...)
     |      x.__delattr__('name') <==> del x.name
     |  
     |  __delitem__(...)
     |      x.__delitem__(y) <==> del x[y]
     |  
     |  __getattribute__(...)
     |      x.__getattribute__('name') <==> x.name
     |  
     |  __getitem__(...)
     |      x.__getitem__(y) <==> x[y]
     |  
     |  __init__(...)
     |      x.__init__(...) initializes x; see x.__class__.__doc__ for signature
     |  
     |  __len__(...)
     |      x.__len__() <==> len(x)
     |  
     |  __repr__(...)
     |      x.__repr__() <==> repr(x)
     |  
     |  __setattr__(...)
     |      x.__setattr__('name', value) <==> x.name = value
     |  
     |  __setitem__(...)
     |      x.__setitem__(i, y) <==> x[i]=y
     |  
     |  exit(...)
     |      Call hal_exit
     |  
     |  newparam(...)
     |      Create a new parameter
     |  
     |  newpin(...)
     |      Create a new pin
     |  
     |  ready(...)
     |      Call hal_ready
     |  
     |  setprefix(...)
     |      Set the prefix for newly created pins and parameters
     |  
     |  ----------------------------------------------------------------------
     |  Data and other attributes defined here:
     |  
     |  __new__ = <built-in method __new__ of type object>
     |      T.__new__(S, ...) -> a new object with type S, a subtype of T
    
    class error(exceptions.Exception)
     |  Methods inherited from exceptions.Exception:
     |  
     |  __getitem__(...)
     |  
     |  __init__(...)
     |  
     |  __str__(...)

FUNCTIONS
    pin_has_writer(...)
        Return a FALSE value if a pin has no writers and TRUE if it does

DATA
    HAL_BIT = 1
    HAL_FLOAT = 2
    HAL_IN = 16
    HAL_IO = 48
    HAL_OUT = 32
    HAL_RO = 16
    HAL_RW = 48
    HAL_S32 = 3
    HAL_U32 = 4


Help on module emc:

NAME
    emc - Interface to EMC

FILE
    /usr/lib/python2.4/site-packages/emc.so

CLASSES
    __builtin__.object
        command
        error_channel
        ini
        positionlogger
        stat
    exceptions.RuntimeError(exceptions.StandardError)
        error
    
    class command(__builtin__.object)
     |  Methods defined here:
     |  
     |  __init__(...)
     |      x.__init__(...) initializes x; see x.__class__.__doc__ for signature
     |  
     |  abort(...)
     |  
     |  auto(...)
     |  
     |  brake(...)
     |  
     |  debug(...)
     |  
     |  feedrate(...)
     |  
     |  flood(...)
     |  
     |  home(...)
     |  
     |  jog(...)
     |  
     |  load_tool_table(...)
     |  
     |  mdi(...)
     |  
     |  mist(...)
     |  
     |  mode(...)
     |  
     |  override_limits(...)
     |  
     |  program_open(...)
     |  
     |  reset_interpreter(...)
     |  
     |  set_block_delete(...)
     |  
     |  set_optional_stop(...)
     |  
     |  spindle(...)
     |  
     |  spindleoverride(...)
     |  
     |  state(...)
     |  
     |  teleop_enable(...)
     |  
     |  teleop_vector(...)
     |  
     |  tool_offset(...)
     |  
     |  traj_mode(...)
     |  
     |  wait_complete(...)
     |  
     |  ----------------------------------------------------------------------
     |  Data and other attributes defined here:
     |  
     |  __new__ = <built-in method __new__ of type object>
     |      T.__new__(S, ...) -> a new object with type S, a subtype of T
     |  
     |  serial = <member 'serial' of 'emc.command' objects>
    
    class error(exceptions.RuntimeError)
     |  Method resolution order:
     |      error
     |      exceptions.RuntimeError
     |      exceptions.StandardError
     |      exceptions.Exception
     |  
     |  Methods inherited from exceptions.Exception:
     |  
     |  __getitem__(...)
     |  
     |  __init__(...)
     |  
     |  __str__(...)
    
    class error_channel(__builtin__.object)
     |  Methods defined here:
     |  
     |  __init__(...)
     |      x.__init__(...) initializes x; see x.__class__.__doc__ for signature
     |  
     |  poll(...)
     |      Poll for errors
     |  
     |  ----------------------------------------------------------------------
     |  Data and other attributes defined here:
     |  
     |  __new__ = <built-in method __new__ of type object>
     |      T.__new__(S, ...) -> a new object with type S, a subtype of T
    
    class ini(__builtin__.object)
     |  Methods defined here:
     |  
     |  __init__(...)
     |      x.__init__(...) initializes x; see x.__class__.__doc__ for signature
     |  
     |  find(...)
     |      Find value in inifile as string.  This uses the ConfigParser-style 
(section,option) order, not the emc order.
     |  
     |  findall(...)
     |      Find value in inifile as a list.  This uses the ConfigParser-style 
(section,option) order, not the emc order.
     |  
     |  ----------------------------------------------------------------------
     |  Data and other attributes defined here:
     |  
     |  __new__ = <built-in method __new__ of type object>
     |      T.__new__(S, ...) -> a new object with type S, a subtype of T
    
    class positionlogger(__builtin__.object)
     |  Methods defined here:
     |  
     |  __init__(...)
     |      x.__init__(...) initializes x; see x.__class__.__doc__ for signature
     |  
     |  call(...)
     |      Plot the backplot now
     |  
     |  clear(...)
     |      Clear the position logger
     |  
     |  last(...)
     |      Return the most recent point on the plot or None
     |  
     |  start(...)
     |      Start the position logger and run every ARG seconds
     |  
     |  stop(...)
     |      Stop the position logger
     |  
     |  ----------------------------------------------------------------------
     |  Data and other attributes defined here:
     |  
     |  __new__ = <built-in method __new__ of type object>
     |      T.__new__(S, ...) -> a new object with type S, a subtype of T
     |  
     |  average_speed = <member 'average_speed' of 'emc.positionlogger' 
object...
     |  
     |  
     |  npts = <member 'npts' of 'emc.positionlogger' objects>
    
    class stat(__builtin__.object)
     |  Methods defined here:
     |  
     |  __init__(...)
     |      x.__init__(...) initializes x; see x.__class__.__doc__ for signature
     |  
     |  gettaskfile(...)
     |      Get current task file
     |  
     |  poll(...)
     |      Update current machine state
     |  
     |  ----------------------------------------------------------------------
     |  Data and other attributes defined here:
     |  
     |  __new__ = <built-in method __new__ of type object>
     |      T.__new__(S, ...) -> a new object with type S, a subtype of T
     |  
     |  acceleration = <member 'acceleration' of 'emc.stat' objects>
     |  
     |  
     |  actual_position = <attribute 'actual_position' of 'emc.stat' objects>
     |  
     |  
     |  ain = <attribute 'ain' of 'emc.stat' objects>
     |  
     |  
     |  angular_units = <member 'angular_units' of 'emc.stat' objects>
     |  
     |  
     |  aout = <attribute 'aout' of 'emc.stat' objects>
     |  
     |  
     |  axes = <member 'axes' of 'emc.stat' objects>
     |  
     |  
     |  axis = <attribute 'axis' of 'emc.stat' objects>
     |  
     |  
     |  block_delete = <member 'block_delete' of 'emc.stat' objects>
     |  
     |  
     |  command = <member 'command' of 'emc.stat' objects>
     |  
     |  
     |  current_line = <member 'current_line' of 'emc.stat' objects>
     |  
     |  
     |  cycle_time = <member 'cycle_time' of 'emc.stat' objects>
     |  
     |  
     |  debug = <member 'debug' of 'emc.stat' objects>
     |  
     |  
     |  din = <attribute 'din' of 'emc.stat' objects>
     |  
     |  
     |  distance_to_go = <member 'distance_to_go' of 'emc.stat' objects>
     |  
     |  
     |  dout = <attribute 'dout' of 'emc.stat' objects>
     |  
     |  
     |  echo_serial_number = <member 'echo_serial_number' of 'emc.stat' 
object...
     |  
     |  
     |  enabled = <member 'enabled' of 'emc.stat' objects>
     |  
     |  
     |  estop = <member 'estop' of 'emc.stat' objects>
     |  
     |  
     |  exec_state = <member 'exec_state' of 'emc.stat' objects>
     |  
     |  
     |  feedrate = <member 'feedrate' of 'emc.stat' objects>
     |  
     |  
     |  file = <member 'file' of 'emc.stat' objects>
     |  
     |  
     |  flood = <member 'flood' of 'emc.stat' objects>
     |  
     |  
     |  gcodes = <attribute 'gcodes' of 'emc.stat' objects>
     |  
     |  
     |  homed = <attribute 'homed' of 'emc.stat' objects>
     |  
     |  
     |  id = <member 'id' of 'emc.stat' objects>
     |  
     |  
     |  inpos = <member 'inpos' of 'emc.stat' objects>
     |  
     |  
     |  interp_state = <member 'interp_state' of 'emc.stat' objects>
     |  
     |  
     |  interpreter_errcode = <member 'interpreter_errcode' of 'emc.stat' 
obje...
     |  
     |  
     |  joint_actual_position = <attribute 'joint_actual_position' of 
'emc.sta...
     |  
     |  
     |  joint_position = <attribute 'joint_position' of 'emc.stat' objects>
     |  
     |  
     |  kinematics_type = <member 'kinematics_type' of 'emc.stat' objects>
     |  
     |  
     |  limit = <attribute 'limit' of 'emc.stat' objects>
     |  
     |  
     |  line = <member 'line' of 'emc.stat' objects>
     |  
     |  
     |  linear_units = <member 'linear_units' of 'emc.stat' objects>
     |  
     |  
     |  lube = <member 'lube' of 'emc.stat' objects>
     |  
     |  
     |  lube_level = <member 'lube_level' of 'emc.stat' objects>
     |  
     |  
     |  max_acceleration = <member 'max_acceleration' of 'emc.stat' objects>
     |  
     |  
     |  max_velocity = <member 'max_velocity' of 'emc.stat' objects>
     |  
     |  
     |  mcodes = <attribute 'mcodes' of 'emc.stat' objects>
     |  
     |  
     |  mist = <member 'mist' of 'emc.stat' objects>
     |  
     |  
     |  motion_line = <member 'motion_line' of 'emc.stat' objects>
     |  
     |  
     |  motion_mode = <member 'motion_mode' of 'emc.stat' objects>
     |  
     |  
     |  motion_type = <member 'motion_type' of 'emc.stat' objects>
     |  
     |  
     |  optional_stop = <member 'optional_stop' of 'emc.stat' objects>
     |  
     |  
     |  origin = <attribute 'origin' of 'emc.stat' objects>
     |  
     |  
     |  paused = <member 'paused' of 'emc.stat' objects>
     |  
     |  
     |  position = <attribute 'position' of 'emc.stat' objects>
     |  
     |  
     |  probe_index = <member 'probe_index' of 'emc.stat' objects>
     |  
     |  
     |  probe_polarity = <member 'probe_polarity' of 'emc.stat' objects>
     |  
     |  
     |  probe_tripped = <member 'probe_tripped' of 'emc.stat' objects>
     |  
     |  
     |  probe_val = <member 'probe_val' of 'emc.stat' objects>
     |  
     |  
     |  probed_position = <attribute 'probed_position' of 'emc.stat' objects>
     |  
     |  
     |  probing = <member 'probing' of 'emc.stat' objects>
     |  
     |  
     |  program_units = <member 'program_units' of 'emc.stat' objects>
     |  
     |  
     |  queue = <member 'queue' of 'emc.stat' objects>
     |  
     |  
     |  read_line = <member 'read_line' of 'emc.stat' objects>
     |  
     |  
     |  settings = <attribute 'settings' of 'emc.stat' objects>
     |  
     |  
     |  source_file = <member 'source_file' of 'emc.stat' objects>
     |  
     |  
     |  source_line = <member 'source_line' of 'emc.stat' objects>
     |  
     |  
     |  spindle_brake = <member 'spindle_brake' of 'emc.stat' objects>
     |  
     |  
     |  spindle_direction = <member 'spindle_direction' of 'emc.stat' objects>
     |  
     |  
     |  spindle_enabled = <member 'spindle_enabled' of 'emc.stat' objects>
     |  
     |  
     |  spindle_increasing = <member 'spindle_increasing' of 'emc.stat' 
object...
     |  
     |  
     |  spindle_speed = <member 'spindle_speed' of 'emc.stat' objects>
     |  
     |  
     |  spindlerate = <member 'spindlerate' of 'emc.stat' objects>
     |  
     |  
     |  state = <member 'state' of 'emc.stat' objects>
     |  
     |  
     |  task_mode = <member 'task_mode' of 'emc.stat' objects>
     |  
     |  
     |  task_state = <member 'task_state' of 'emc.stat' objects>
     |  
     |  
     |  tool_in_spindle = <member 'tool_in_spindle' of 'emc.stat' objects>
     |  
     |  
     |  tool_offset = <attribute 'tool_offset' of 'emc.stat' objects>
     |  
     |  
     |  tool_prepped = <member 'tool_prepped' of 'emc.stat' objects>
     |  
     |  
     |  tool_table = <attribute 'tool_table' of 'emc.stat' objects>
     |  
     |  
     |  velocity = <member 'velocity' of 'emc.stat' objects>

DATA
    AUTO_PAUSE = 1
    AUTO_RESUME = 2
    AUTO_RUN = 0
    AUTO_STEP = 3
    AXIS_ANGULAR = 2
    AXIS_LINEAR = 1
    BRAKE_ENGAGE = 1
    BRAKE_RELEASE = 0
    DEBUG_CONFIG = 2
    DEBUG_DEFAULTS = 4
    DEBUG_INTERP = 256
    DEBUG_INTERP_LIST = 2048
    DEBUG_INVALID = 1
    DEBUG_IO_POINTS = 32
    DEBUG_MOTION_TIME = 128
    DEBUG_NML = 64
    DEBUG_RCS = 512
    DEBUG_TASK_ISSUE = 16
    DEBUG_TRAJ = 1024
    DEBUG_VERSIONS = 8
    FLOOD_OFF = 0
    FLOOD_ON = 1
    INTERP_IDLE = 1
    INTERP_PAUSED = 3
    INTERP_READING = 2
    INTERP_WAITING = 4
    JOG_CONTINUOUS = 1
    JOG_INCREMENT = 2
    JOG_STOP = 0
    KINEMATICS_BOTH = 4
    KINEMATICS_FORWARD_ONLY = 2
    KINEMATICS_IDENTITY = 1
    KINEMATICS_INVERSE_ONLY = 3
    MIST_OFF = 0
    MIST_ON = 1
    MODE_AUTO = 2
    MODE_MANUAL = 1
    MODE_MDI = 3
    NML_DISPLAY = 3
    NML_ERROR = 1
    NML_TEXT = 2
    OPERATOR_DISPLAY = 13
    OPERATOR_ERROR = 11
    OPERATOR_TEXT = 12
    SPINDLE_CONSTANT = 12
    SPINDLE_DECREASE = 11
    SPINDLE_FORWARD = 1
    SPINDLE_INCREASE = 10
    SPINDLE_OFF = 0
    SPINDLE_REVERSE = -1
    STATE_ESTOP = 1
    STATE_ESTOP_RESET = 2
    STATE_OFF = 3
    STATE_ON = 4
    TRAJ_MODE_COORD = 2
    TRAJ_MODE_FREE = 1
    TRAJ_MODE_TELEOP = 3
    nmlfile = '/usr/local/etc/emc2/configs/sim/emc.nml'



-------------------------------------------------------------------------
This SF.net email is sponsored by: Splunk Inc.
Still grepping through log files to find problems?  Stop.
Now Search log events and configuration files using AJAX and a browser.
Download your FREE copy of Splunk now >>  http://get.splunk.com/
_______________________________________________
Emc-users mailing list
Emc-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/emc-users

Reply via email to