This is the firmware for the LaOS - Laser Open Source project. You can use it to drive a laser cutter. For hardware and more information, look at our wiki: http://wiki.laoslaser.org

Dependencies:   EthernetNetIf mbed

LaosMotion/LaosMotion.h

Committer:
fablabtruck
Date:
2012-06-08
Revision:
0:3852426a5068

File content as of revision 0:3852426a5068:

/**
 * LaosMotion.cpp
 * Motion Controll functions for Laos system
 *
 * Copyright (c) 2011 Peter Brier
 *
 *   This file is part of the LaOS project (see: http://laoslaser.org)
 *
 *   LaOS is free software: you can redistribute it and/or modify
 *   it under the terms of the GNU General Public License as published by
 *   the Free Software Foundation, either version 3 of the License, or
 *   (at your option) any later version.
 *
 *   LaOS is distributed in the hope that it will be useful,
 *   but WITHOUT ANY WARRANTY; without even the implied warranty of
 *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 *   GNU General Public License for more details.
 *
 *   You should have received a copy of the GNU General Public License
 *   along with LaOS.  If not, see <http://www.gnu.org/licenses/>.
 *
 * 
 *
 */
#ifndef _LAOSMOTION_H_
#define _LAOSMOTION_H_
#include "global.h"


// the state of the laser OUTPUT
#define LASEROFF 1
#define LASERON 0

    /** Motion Controll system
      *
      * Example:
      * @code 
      * @endcode
      */
class LaosMotion {
public:
    /** Make new LaosMotion object. 
      * Installs ticker
      */
  LaosMotion();
  ~LaosMotion();
  void write(int i); // write command word to motion controller
  int ready(); // returns true if we are ready to accept a new instruction
  void reset(); // reset the instruction decoder and motion controller
  void home(int xhome, int yhome, int zhome); // home the system, move to the sensors and set the specified position
  bool isStart(); // start button is enabled
  bool isHome; // system is homed
  void setPosition(int x, int y, int z); // set the absolute position [micron]
  void getPosition(int *x, int *y, int *z); // get actual absolute position [micron] (current position of the motors)
  void setOrigin(int x, int y, int z); // set the origin to this absolute position [micron]
  void moveTo(int x, int y, int z); // move (jog) to a specific position [microns]
  void moveTo(int x, int y, int z, int speed); // move (jog) to a specific position [microns]
  int queue(); // queued items
private:
  
};

 

#endif