Package org.openpnp.machine.reference.driver.wizards

Source Code of org.openpnp.machine.reference.driver.wizards.TinygDriverConfigurationWizard

package org.openpnp.machine.reference.driver.wizards;

import javax.swing.BoxLayout;
import javax.swing.JCheckBox;
import javax.swing.JComboBox;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JSpinner;
import javax.swing.JTextField;
import javax.swing.SpinnerListModel;
import javax.swing.border.TitledBorder;

import org.openpnp.gui.components.ComponentDecorators;
import org.openpnp.gui.support.AbstractConfigurationWizard;
import org.openpnp.gui.support.DoubleConverter;
import org.openpnp.gui.support.IntegerConverter;
import org.openpnp.machine.reference.driver.TinygDriver;

import com.google.gson.JsonObject;
import com.jgoodies.forms.factories.FormFactory;
import com.jgoodies.forms.layout.ColumnSpec;
import com.jgoodies.forms.layout.FormLayout;
import com.jgoodies.forms.layout.RowSpec;

public class TinygDriverConfigurationWizard extends AbstractConfigurationWizard {
    private final TinygDriver driver;
    private JTextField m1StepAngle;
    private JTextField m2StepAngle;
    private JTextField m3StepAngle;
    private JTextField m4StepAngle;
    private JTextField m1TravelPerRev;
    private JTextField m2TravelPerRev;
    private JTextField m3TravelPerRev;
    private JTextField m4TravelPerRev;
    private JTextField xVelMax;
    private JTextField yVelMax;
    private JTextField textField_10;
    private JTextField textField_11;
    private JTextField textField_12;
    private JTextField textField_13;
    private JTextField xFeedMax;
    private JTextField yFeedMax;
    private JTextField textField_16;
    private JTextField textField_17;
    private JTextField textField_18;
    private JTextField textField_19;
    private JTextField xJerkMax;
    private JTextField yJerkMax;
    private JTextField textField_22;
    private JTextField textField_23;
    private JTextField textField_24;
    private JTextField textField_25;
    private JCheckBox m1PowerMgmt;
    private JCheckBox m2PowerMgmt;
    private JCheckBox m3PowerMgmt;
    private JCheckBox m4PowerMgmt;
    private JCheckBox m1RevPol;
    private JCheckBox m2RevPol;
    private JCheckBox m3RevPol;
    private JCheckBox m4RevPol;
   
    public TinygDriverConfigurationWizard(TinygDriver driver) {
        this.driver = driver;
       
        contentPanel.setLayout(new BoxLayout(contentPanel, BoxLayout.Y_AXIS));
       
        JPanel panelGeneral = new JPanel();
        panelGeneral.setBorder(new TitledBorder(null, "General Settings", TitledBorder.LEADING, TitledBorder.TOP, null, null));
        contentPanel.add(panelGeneral);
        panelGeneral.setLayout(new FormLayout(new ColumnSpec[] {},
            new RowSpec[] {}));
       
        JPanel panelMotors = new JPanel();
        panelMotors.setBorder(new TitledBorder(null, "Motors", TitledBorder.LEADING, TitledBorder.TOP, null, null));
        contentPanel.add(panelMotors);
        panelMotors.setLayout(new FormLayout(new ColumnSpec[] {
                FormFactory.RELATED_GAP_COLSPEC,
                FormFactory.DEFAULT_COLSPEC,
                FormFactory.RELATED_GAP_COLSPEC,
                ColumnSpec.decode("default:grow"),
                FormFactory.RELATED_GAP_COLSPEC,
                ColumnSpec.decode("default:grow"),
                FormFactory.RELATED_GAP_COLSPEC,
                ColumnSpec.decode("default:grow"),
                FormFactory.RELATED_GAP_COLSPEC,
                ColumnSpec.decode("default:grow"),},
            new RowSpec[] {
                FormFactory.RELATED_GAP_ROWSPEC,
                FormFactory.DEFAULT_ROWSPEC,
                FormFactory.RELATED_GAP_ROWSPEC,
                FormFactory.DEFAULT_ROWSPEC,
                FormFactory.RELATED_GAP_ROWSPEC,
                FormFactory.DEFAULT_ROWSPEC,
                FormFactory.RELATED_GAP_ROWSPEC,
                FormFactory.DEFAULT_ROWSPEC,
                FormFactory.RELATED_GAP_ROWSPEC,
                FormFactory.DEFAULT_ROWSPEC,
                FormFactory.RELATED_GAP_ROWSPEC,
                FormFactory.DEFAULT_ROWSPEC,
                FormFactory.RELATED_GAP_ROWSPEC,
                FormFactory.DEFAULT_ROWSPEC,}));
       
        JLabel label = new JLabel("1");
        panelMotors.add(label, "4, 2");
       
        JLabel label_1 = new JLabel("2");
        panelMotors.add(label_1, "6, 2");
       
        JLabel label_2 = new JLabel("3");
        panelMotors.add(label_2, "8, 2");
       
        JLabel label_3 = new JLabel("4");
        panelMotors.add(label_3, "10, 2");
       
        JLabel lblAxis = new JLabel("Axis");
        panelMotors.add(lblAxis, "2, 4, right, default");
       
        JSpinner m1Axis = new JSpinner();
        panelMotors.add(m1Axis, "4, 4");
       
        JSpinner m2Axis = new JSpinner();
        panelMotors.add(m2Axis, "6, 4");
       
        JSpinner m3Axis = new JSpinner();
        panelMotors.add(m3Axis, "8, 4");
       
        JSpinner m4Axis = new JSpinner();
        panelMotors.add(m4Axis, "10, 4");
       
        JLabel lblStepAngle = new JLabel("Step Angle");
        panelMotors.add(lblStepAngle, "2, 6, right, default");
       
        m1StepAngle = new JTextField();
        m1StepAngle.setText("1.8");
        panelMotors.add(m1StepAngle, "4, 6");
        m1StepAngle.setColumns(10);
       
        m2StepAngle = new JTextField();
        m2StepAngle.setText("1.8");
        panelMotors.add(m2StepAngle, "6, 6");
        m2StepAngle.setColumns(10);
       
        m3StepAngle = new JTextField();
        m3StepAngle.setText("1.8");
        panelMotors.add(m3StepAngle, "8, 6");
        m3StepAngle.setColumns(10);
       
        m4StepAngle = new JTextField();
        m4StepAngle.setText("1.8");
        panelMotors.add(m4StepAngle, "10, 6");
        m4StepAngle.setColumns(10);
       
        JLabel lblTravelPerRev = new JLabel("Travel Per Rev.");
        panelMotors.add(lblTravelPerRev, "2, 8, right, default");
       
        m1TravelPerRev = new JTextField();
        panelMotors.add(m1TravelPerRev, "4, 8, fill, default");
        m1TravelPerRev.setColumns(10);
       
        m2TravelPerRev = new JTextField();
        panelMotors.add(m2TravelPerRev, "6, 8, fill, default");
        m2TravelPerRev.setColumns(10);
       
        m3TravelPerRev = new JTextField();
        panelMotors.add(m3TravelPerRev, "8, 8, fill, default");
        m3TravelPerRev.setColumns(10);
       
        m4TravelPerRev = new JTextField();
        panelMotors.add(m4TravelPerRev, "10, 8, fill, default");
        m4TravelPerRev.setColumns(10);
       
        JLabel lblMicrosteps = new JLabel("Microsteps");
        panelMotors.add(lblMicrosteps, "2, 10, right, default");
       
        JSpinner m1Microsteps = new JSpinner(new SpinnerListModel(new Object[] { (Integer) 1, (Integer) 2, (Integer) 4, (Integer) 8 }));
        panelMotors.add(m1Microsteps, "4, 10");
       
        JSpinner m2Microsteps = new JSpinner(new SpinnerListModel(new Object[] { (Integer) 1, (Integer) 2, (Integer) 4, (Integer) 8 }));
        panelMotors.add(m2Microsteps, "6, 10");
       
        JSpinner m3Microsteps = new JSpinner(new SpinnerListModel(new Object[] { (Integer) 1, (Integer) 2, (Integer) 4, (Integer) 8 }));
        panelMotors.add(m3Microsteps, "8, 10");
       
        JSpinner m4Microsteps = new JSpinner(new SpinnerListModel(new Object[] { (Integer) 1, (Integer) 2, (Integer) 4, (Integer) 8 }));
        panelMotors.add(m4Microsteps, "10, 10");
       
        JLabel lblPolarity = new JLabel("Reverse Polarity");
        panelMotors.add(lblPolarity, "2, 12, right, default");
       
        m1RevPol = new JCheckBox("");
        panelMotors.add(m1RevPol, "4, 12");
       
        m2RevPol = new JCheckBox("");
        panelMotors.add(m2RevPol, "6, 12");
       
        m3RevPol = new JCheckBox("");
        panelMotors.add(m3RevPol, "8, 12");
       
        m4RevPol = new JCheckBox("");
        panelMotors.add(m4RevPol, "10, 12");
       
        JLabel lblPowerManagement = new JLabel("Power Management");
        panelMotors.add(lblPowerManagement, "2, 14");
       
        m1PowerMgmt = new JCheckBox("");
        panelMotors.add(m1PowerMgmt, "4, 14");
       
        m2PowerMgmt = new JCheckBox("");
        panelMotors.add(m2PowerMgmt, "6, 14");
       
        m3PowerMgmt = new JCheckBox("");
        panelMotors.add(m3PowerMgmt, "8, 14");
       
        m4PowerMgmt = new JCheckBox("");
        panelMotors.add(m4PowerMgmt, "10, 14");
       
        JPanel panelAxes = new JPanel();
        panelAxes.setBorder(new TitledBorder(null, "Axes", TitledBorder.LEADING, TitledBorder.TOP, null, null));
        contentPanel.add(panelAxes);
        panelAxes.setLayout(new FormLayout(new ColumnSpec[] {
                FormFactory.RELATED_GAP_COLSPEC,
                FormFactory.DEFAULT_COLSPEC,
                FormFactory.RELATED_GAP_COLSPEC,
                ColumnSpec.decode("default:grow"),
                FormFactory.RELATED_GAP_COLSPEC,
                ColumnSpec.decode("default:grow"),
                FormFactory.RELATED_GAP_COLSPEC,
                ColumnSpec.decode("default:grow"),
                FormFactory.RELATED_GAP_COLSPEC,
                ColumnSpec.decode("default:grow"),
                FormFactory.RELATED_GAP_COLSPEC,
                ColumnSpec.decode("default:grow"),
                FormFactory.RELATED_GAP_COLSPEC,
                ColumnSpec.decode("default:grow"),},
            new RowSpec[] {
                FormFactory.RELATED_GAP_ROWSPEC,
                FormFactory.DEFAULT_ROWSPEC,
                FormFactory.RELATED_GAP_ROWSPEC,
                FormFactory.DEFAULT_ROWSPEC,
                FormFactory.RELATED_GAP_ROWSPEC,
                FormFactory.DEFAULT_ROWSPEC,
                FormFactory.RELATED_GAP_ROWSPEC,
                FormFactory.DEFAULT_ROWSPEC,
                FormFactory.RELATED_GAP_ROWSPEC,
                FormFactory.DEFAULT_ROWSPEC,}));
       
        JLabel lblX = new JLabel("X");
        panelAxes.add(lblX, "4, 2");
       
        JLabel lblY = new JLabel("Y");
        panelAxes.add(lblY, "6, 2");
       
        JLabel lblZ = new JLabel("Z");
        panelAxes.add(lblZ, "8, 2");
       
        JLabel lblA = new JLabel("A");
        panelAxes.add(lblA, "10, 2");
       
        JLabel lblB = new JLabel("B");
        panelAxes.add(lblB, "12, 2");
       
        JLabel lblC = new JLabel("C");
        panelAxes.add(lblC, "14, 2");
       
        JLabel lblAxisMode = new JLabel("Axis Mode");
        panelAxes.add(lblAxisMode, "2, 4, right, default");
       
        JComboBox xAxisMode = new JComboBox();
        panelAxes.add(xAxisMode, "4, 4, fill, default");
       
        JComboBox yAxisMode = new JComboBox();
        panelAxes.add(yAxisMode, "6, 4, fill, default");
       
        JComboBox comboBox_10 = new JComboBox();
        panelAxes.add(comboBox_10, "8, 4, fill, default");
       
        JComboBox comboBox_11 = new JComboBox();
        panelAxes.add(comboBox_11, "10, 4, fill, default");
       
        JComboBox comboBox_12 = new JComboBox();
        panelAxes.add(comboBox_12, "12, 4, fill, default");
       
        JComboBox comboBox_13 = new JComboBox();
        panelAxes.add(comboBox_13, "14, 4, fill, default");
       
        JLabel lblVelocityMax = new JLabel("Velocity Max.");
        panelAxes.add(lblVelocityMax, "2, 6, right, default");
       
        xVelMax = new JTextField();
        panelAxes.add(xVelMax, "4, 6, fill, default");
        xVelMax.setColumns(10);
       
        yVelMax = new JTextField();
        panelAxes.add(yVelMax, "6, 6, fill, default");
        yVelMax.setColumns(10);
       
        textField_10 = new JTextField();
        panelAxes.add(textField_10, "8, 6, fill, default");
        textField_10.setColumns(10);
       
        textField_11 = new JTextField();
        panelAxes.add(textField_11, "10, 6, fill, default");
        textField_11.setColumns(10);
       
        textField_12 = new JTextField();
        panelAxes.add(textField_12, "12, 6, fill, default");
        textField_12.setColumns(10);
       
        textField_13 = new JTextField();
        panelAxes.add(textField_13, "14, 6, fill, default");
        textField_13.setColumns(10);
       
        JLabel lblFeedrateMax = new JLabel("Feedrate Max.");
        panelAxes.add(lblFeedrateMax, "2, 8, right, default");
       
        xFeedMax = new JTextField();
        panelAxes.add(xFeedMax, "4, 8, fill, default");
        xFeedMax.setColumns(10);
       
        yFeedMax = new JTextField();
        panelAxes.add(yFeedMax, "6, 8, fill, default");
        yFeedMax.setColumns(10);
       
        textField_16 = new JTextField();
        panelAxes.add(textField_16, "8, 8, fill, default");
        textField_16.setColumns(10);
       
        textField_17 = new JTextField();
        panelAxes.add(textField_17, "10, 8, fill, default");
        textField_17.setColumns(10);
       
        textField_18 = new JTextField();
        panelAxes.add(textField_18, "12, 8, fill, default");
        textField_18.setColumns(10);
       
        textField_19 = new JTextField();
        panelAxes.add(textField_19, "14, 8, fill, default");
        textField_19.setColumns(10);
       
        JLabel lblJerkMax = new JLabel("Jerk Max.");
        panelAxes.add(lblJerkMax, "2, 10, right, default");
       
        xJerkMax = new JTextField();
        panelAxes.add(xJerkMax, "4, 10, fill, default");
        xJerkMax.setColumns(10);
       
        yJerkMax = new JTextField();
        panelAxes.add(yJerkMax, "6, 10, fill, default");
        yJerkMax.setColumns(10);
       
        textField_22 = new JTextField();
        panelAxes.add(textField_22, "8, 10, fill, default");
        textField_22.setColumns(10);
       
        textField_23 = new JTextField();
        panelAxes.add(textField_23, "10, 10, fill, default");
        textField_23.setColumns(10);
       
        textField_24 = new JTextField();
        panelAxes.add(textField_24, "12, 10, fill, default");
        textField_24.setColumns(10);
       
        textField_25 = new JTextField();
        panelAxes.add(textField_25, "14, 10, fill, default");
        textField_25.setColumns(10);
    }
   
    @Override
    public void createBindings() {
      IntegerConverter integerConverter = new IntegerConverter();
        DoubleConverter doubleConverter = new DoubleConverter("%f");
       
        ConfigProxy configProxy = new ConfigProxy();
       
        addWrappedBinding(configProxy, "stepAngleM1", m1StepAngle, "text", doubleConverter);
        addWrappedBinding(configProxy, "stepAngleM2", m2StepAngle, "text", doubleConverter);
        addWrappedBinding(configProxy, "stepAngleM3", m3StepAngle, "text", doubleConverter);
        addWrappedBinding(configProxy, "stepAngleM4", m4StepAngle, "text", doubleConverter);

        addWrappedBinding(configProxy, "travelPerRevM1", m1TravelPerRev, "text", doubleConverter);
        addWrappedBinding(configProxy, "travelPerRevM2", m2TravelPerRev, "text", doubleConverter);
        addWrappedBinding(configProxy, "travelPerRevM3", m3TravelPerRev, "text", doubleConverter);
        addWrappedBinding(configProxy, "travelPerRevM4", m4TravelPerRev, "text", doubleConverter);
       
        addWrappedBinding(configProxy, "polarityReversedM1", m1RevPol, "selected");
        addWrappedBinding(configProxy, "polarityReversedM2", m2RevPol, "selected");
        addWrappedBinding(configProxy, "polarityReversedM3", m3RevPol, "selected");
        addWrappedBinding(configProxy, "polarityReversedM4", m4RevPol, "selected");

        addWrappedBinding(configProxy, "powerMgmtM1", m1PowerMgmt, "selected");
        addWrappedBinding(configProxy, "powerMgmtM2", m2PowerMgmt, "selected");
        addWrappedBinding(configProxy, "powerMgmtM3", m3PowerMgmt, "selected");
        addWrappedBinding(configProxy, "powerMgmtM4", m4PowerMgmt, "selected");
       
        addWrappedBinding(configProxy, "velMaxX", xVelMax, "text", integerConverter);
        addWrappedBinding(configProxy, "velMaxY", yVelMax, "text", integerConverter);
       
        addWrappedBinding(configProxy, "feedMaxX", xFeedMax, "text", integerConverter);
        addWrappedBinding(configProxy, "feedMaxY", yFeedMax, "text", integerConverter);
       
        addWrappedBinding(configProxy, "jerkMaxX", xJerkMax, "text", integerConverter);
        addWrappedBinding(configProxy, "jerkMaxY", yJerkMax, "text", integerConverter);

        ComponentDecorators.decorateWithAutoSelect(m1StepAngle);
        ComponentDecorators.decorateWithAutoSelect(m2StepAngle);
        ComponentDecorators.decorateWithAutoSelect(m3StepAngle);
        ComponentDecorators.decorateWithAutoSelect(m4StepAngle);

        ComponentDecorators.decorateWithAutoSelect(m1TravelPerRev);
        ComponentDecorators.decorateWithAutoSelect(m2TravelPerRev);
        ComponentDecorators.decorateWithAutoSelect(m3TravelPerRev);
        ComponentDecorators.decorateWithAutoSelect(m4TravelPerRev);
       
        ComponentDecorators.decorateWithAutoSelect(xVelMax);
        ComponentDecorators.decorateWithAutoSelect(yVelMax);
       
        ComponentDecorators.decorateWithAutoSelect(xFeedMax);
        ComponentDecorators.decorateWithAutoSelect(yFeedMax);
       
        ComponentDecorators.decorateWithAutoSelect(xJerkMax);
        ComponentDecorators.decorateWithAutoSelect(yJerkMax);
    }
       
   
    public class ConfigProxy {
//                [1ma] m1 map to axis              0 [0=X,1=Y,2=Z...]
//                [1sa] m1 step angle               1.800 deg
//                [1tr] m1 travel per revolution    1.250 mm
//                [1mi] m1 microsteps               8 [1,2,4,8]
//                [1po] m1 polarity                 0 [0=normal,1=reverse]
//                [1pm] m1 power management         1 [0=off,1=on]
//                tinyg [mm] ok>
       
//                [xam] x axis mode                 1 [standard]
//                [xvm] x velocity maximum       5000.000 mm/min
//                [xfr] x feedrate maximum       5000.000 mm/min
//                [xtm] x travel maximum          150.000 mm
//                [xjm] x jerk maximum       20000000 mm/min^3
//                [xjh] x jerk homing        20000000 mm/min^3
//                [xjd] x junction deviation        0.0500 mm (larger is faster)
//                [xsn] x switch min                1 [0=off,1=homing,2=limit,3=limit+homing]
//                [xsx] x switch max                0 [0=off,1=homing,2=limit,3=limit+homing]
//                [xsv] x search velocity         500.000 mm/min
//                [xlv] x latch velocity          100.000 mm/min
//                [xlb] x latch backoff             2.000 mm
//                [xzb] x zero backoff              1.000 mm
//                tinyg [mm] ok>        
       
       
        public double getStepAngleM1() throws Exception {
            return getConfigDouble("1sa");
        }
       
        public void setStepAngleM1(double v) throws Exception {
            setConfigDouble("1sa", v);
        }
       
        public double getStepAngleM2() throws Exception {
            return getConfigDouble("2sa");
        }
       
        public void setStepAngleM2(double v) throws Exception {
            setConfigDouble("2sa", v);
        }
       
        public double getStepAngleM3() throws Exception {
            return getConfigDouble("3sa");
        }
       
        public void setStepAngleM3(double v) throws Exception {
            setConfigDouble("3sa", v);
        }
       
        public double getStepAngleM4() throws Exception {
            return getConfigDouble("4sa");
        }
       
        public void setStepAngleM4(double v) throws Exception {
            setConfigDouble("4sa", v);
        }
       

       
        public double getTravelPerRevM1() throws Exception {
            return getConfigDouble("1tr");
        }
       
        public void setTravelPerRevM1(double v) throws Exception {
            setConfigDouble("1tr", v);
        }
       
        public double getTravelPerRevM2() throws Exception {
            return getConfigDouble("2tr");
        }
       
        public void setTravelPerRevM2(double v) throws Exception {
            setConfigDouble("2tr", v);
        }
       
        public double getTravelPerRevM3() throws Exception {
            return getConfigDouble("3tr");
        }
       
        public void setTravelPerRevM3(double v) throws Exception {
            setConfigDouble("3tr", v);
        }
       
        public double getTravelPerRevM4() throws Exception {
            return getConfigDouble("4tr");
        }
       
        public void setTravelPerRevM4(double v) throws Exception {
            setConfigDouble("4tr", v);
        }
       
       
       
        public boolean getPolarityReversedM1() throws Exception {
            return getConfigBoolean("1po");
        }
       
        public void setPolarityReversedM1(boolean v) throws Exception {
            setConfigBoolean("1po", v);
        }
       
        public boolean getPolarityReversedM2() throws Exception {
            return getConfigBoolean("2po");
        }
       
        public void setPolarityReversedM2(boolean v) throws Exception {
            setConfigBoolean("2po", v);
        }
       
        public boolean getPolarityReversedM3() throws Exception {
            return getConfigBoolean("3po");
        }
       
        public void setPolarityReversedM3(boolean v) throws Exception {
            setConfigBoolean("3po", v);
        }
       
        public boolean getPolarityReversedM4() throws Exception {
            return getConfigBoolean("4po");
        }
       
        public void setPolarityReversedM4(boolean v) throws Exception {
            setConfigBoolean("4po", v);
        }
       
       
       
        public boolean getPowerMgmtM1() throws Exception {
            return getConfigBoolean("1pm");
        }
       
        public void setPowerMgmtM1(boolean v) throws Exception {
            setConfigBoolean("1pm", v);
        }
       
        public boolean getPowerMgmtM2() throws Exception {
            return getConfigBoolean("2pm");
        }
       
        public void setPowerMgmtM2(boolean v) throws Exception {
            setConfigBoolean("2pm", v);
        }
       
        public boolean getPowerMgmtM3() throws Exception {
            return getConfigBoolean("3pm");
        }
       
        public void setPowerMgmtM3(boolean v) throws Exception {
            setConfigBoolean("3pm", v);
        }
       
        public boolean getPowerMgmtM4() throws Exception {
            return getConfigBoolean("4pm");
        }
       
        public void setPowerMgmtM4(boolean v) throws Exception {
            setConfigBoolean("4pm", v);
        }
       
       
       
        public int getVelMaxX() throws Exception {
            return getConfigInt("xvm");
        }
       
        public void setVelMaxX(int v) throws Exception {
            setConfigInt("xvm", v);
        }
       
        public int getVelMaxY() throws Exception {
            return getConfigInt("yvm");
        }
       
        public void setVelMaxY(int v) throws Exception {
            setConfigInt("yvm", v);
        }
       

       
        public int getFeedMaxX() throws Exception {
            return getConfigInt("xfr");
        }
       
        public void setFeedMaxX(int v) throws Exception {
            setConfigInt("xfr", v);
        }
       
        public int getFeedMaxY() throws Exception {
            return getConfigInt("yfr");
        }
       
        public void setFeedMaxY(int v) throws Exception {
            setConfigInt("yfr", v);
        }
       

       
        public int getJerkMaxX() throws Exception {
            return getConfigInt("xjm");
        }
       
        public void setJerkMaxX(int v) throws Exception {
            setConfigInt("xjm", v);
        }
       
        public int getJerkMaxY() throws Exception {
            return getConfigInt("yjm");
        }
       
        public void setJerkMaxY(int v) throws Exception {
            setConfigInt("yjm", v);
        }
       
       
       
       
       
        // TODO: Check for response errors in these methods.
        private int getConfigInt(String name) throws Exception {
            JsonObject o = driver.sendCommand(String.format("{\"%s\":\"\"}", name));
            return o.get(name).getAsInt();
        }
       
        private void setConfigInt(String name, int v) throws Exception {
            JsonObject o = driver.sendCommand(String.format("{\"%s\":%d}", name, v));
        }
       
        private double getConfigDouble(String name) throws Exception {
            JsonObject o = driver.sendCommand(String.format("{\"%s\":\"\"}", name));
            return o.get(name).getAsDouble();
        }
       
        private void setConfigDouble(String name, double v) throws Exception {
            JsonObject o = driver.sendCommand(String.format("{\"%s\":%f}", name, v));
        }
       
        private boolean getConfigBoolean(String name) throws Exception {
            return getConfigInt(name) == 1;
        }
       
        private void setConfigBoolean(String name, boolean v) throws Exception {
            setConfigInt(name, v ? 1 : 0);
        }
    }
}
TOP

Related Classes of org.openpnp.machine.reference.driver.wizards.TinygDriverConfigurationWizard

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.