Skip to content
Snippets Groups Projects
Dummy.java 5.38 KiB
Newer Older
  • Learn to ignore specific revisions
  • /**
     * This file is part of VisiCut. Copyright (C) 2012 Thomas Oster
     * <thomas.oster@rwth-aachen.de> RWTH Aachen University - 52062 Aachen, Germany
     *
     * VisiCut is free software: you can redistribute it and/or modify it under the
     * terms of the GNU Lesser General Public License as published by the Free
     * Software Foundation, either version 3 of the License, or (at your option) any
     * later version.
     *
     * VisiCut 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 Lesser General Public License for more
     * details.
     *
     * You should have received a copy of the GNU Lesser General Public License
     * along with VisiCut. If not, see <http://www.gnu.org/licenses/>.
     *
     */
    package com.t_oster.liblasercut.drivers;
    
    import com.t_oster.liblasercut.*;
    import java.io.BufferedOutputStream;
    import java.util.*;
    import java.lang.System;
    
    /**
     * This class implements a driver for the LAOS Lasercutter board. Currently it
     * supports the simple code and the G-Code, which may be used in the future.
     *
     * @author Thomas Oster <thomas.oster@rwth-aachen.de>
     */
    public class Dummy extends LaserCutter {
      private static final String SETTING_BEDWIDTH = "Laserbed width";
      private static final String SETTING_BEDHEIGHT = "Laserbed height";
      @Override
      public String getModelName() {
        return "Dummy";
      }
    
      @Override
      public void sendJob(LaserJob job, ProgressListener pl) throws IllegalJobException, Exception {
        pl.progressChanged(this, 0);
    
        BufferedOutputStream out;
        pl.taskChanged(this, "checking job");
        checkJob(job);
        pl.taskChanged(this, "sending");
        pl.taskChanged(this, "sent.");
        System.out.println("dummy-driver got LaserJob: ");
         for (JobPart p : job.getParts())
            {
              if (p instanceof VectorPart)
              {
                System.out.println("VectorPart");
                for (VectorCommand cmd : ((VectorPart) p).getCommandList())
                {
                  if (cmd.getType() == VectorCommand.CmdType.SETPROPERTY)
                  {
                    if (!(cmd.getProperty() instanceof PowerSpeedFocusFrequencyProperty))
                    {
                      throw new IllegalJobException("This driver expects Power,Speed,Frequency and Focus as settings");
                    }
                    System.out.println(((PowerSpeedFocusFrequencyProperty) cmd.getProperty()).toString());
                  }
                }
              }
              if (p instanceof RasterPart)
              {
                RasterPart rp = ((RasterPart) p);
                if (rp.getLaserProperty() != null && !(rp.getLaserProperty() instanceof PowerSpeedFocusProperty))
                {
                  throw new IllegalJobException("This driver expects Power,Speed and Focus as settings");
                }
                System.out.println(((PowerSpeedFocusProperty) rp.getLaserProperty()).toString());
    
              }
              if (p instanceof Raster3dPart)
              {
                Raster3dPart rp = (Raster3dPart) p;
                if (rp.getLaserProperty() != null && !(rp.getLaserProperty() instanceof PowerSpeedFocusProperty))
                {
                  throw new IllegalJobException("This driver expects Power,Speed and Focus as settings");
                }
                System.out.println(((PowerSpeedFocusProperty) rp.getLaserProperty()).toString());
              }
          }
    
          System.out.println("end of job.");
          pl.progressChanged(this, 100);
    
      }
      
      @Override
      public int estimateJobDuration(LaserJob job)
      {
          return 1234;
      }
      
      private List<Double> resolutions;
      
      @Override
      public boolean canEstimateJobDuration() {
            return true;
        }
    
      @Override
      public List<Double> getResolutions() {
        if (resolutions == null) {
          resolutions = Arrays.asList(new Double[]{
                    500d
                  });
        }
        return resolutions;
      }
      protected double bedWidth = 250;
    
      /**
       * Get the value of bedWidth
       *
       * @return the value of bedWidth
       */
      @Override
      public double getBedWidth() {
        return bedWidth;
      }
    
      /**
       * Set the value of bedWidth
       *
       * @param bedWidth new value of bedWidth
       */
      public void setBedWidth(double bedWidth) {
        this.bedWidth = bedWidth;
      }
      protected double bedHeight = 280;
    
      /**
       * Get the value of bedHeight
       *
       * @return the value of bedHeight
       */
      @Override
      public double getBedHeight() {
        return bedHeight;
      }
    
      /**
       * Set the value of bedHeight
       *
       * @param bedHeight new value of bedHeight
       */
      public void setBedHeight(double bedHeight) {
        this.bedHeight = bedHeight;
      }
      private static String[] settingAttributes = new String[]{
        SETTING_BEDWIDTH,
        SETTING_BEDHEIGHT
      };
    
      @Override
      public String[] getPropertyKeys() {
        return settingAttributes;
      }
    
      @Override
      public Object getProperty(String attribute) {
        if (SETTING_BEDWIDTH.equals(attribute)) {
          return this.getBedWidth();
        } else if (SETTING_BEDHEIGHT.equals(attribute)) {
          return this.getBedHeight();
        }
        return null;
      }
    
      @Override
      public void setProperty(String attribute, Object value) {
        if (SETTING_BEDWIDTH.equals(attribute)) {
          this.setBedWidth((Double) value);
        } else if (SETTING_BEDHEIGHT.equals(attribute)) {
          this.setBedHeight((Double) value);
        }
      }
    
      @Override
      public LaserCutter clone() {
        Dummy clone = new Dummy();
        clone.bedHeight = bedHeight;
        clone.bedWidth = bedWidth;
        return clone;
      }
    }