package org.goko.controller.g2core.configuration;
import org.eclipse.swt.SWT;
import org.eclipse.swt.widgets.Composite;
import org.goko.controller.g2core.controller.G2Core;
import org.goko.controller.tinyg.commons.configuration.fields.TinyGBigDecimalSettingFieldEditor;
import org.goko.controller.tinyg.commons.configuration.fields.TinyGComboFieldEditor;
import org.goko.core.common.exception.GkException;
public class G2CoreConfigurationMotorPage extends AbstractG2CoreConfigurationPage{
private String groupIdentifier;
public G2CoreConfigurationMotorPage(G2CoreConfiguration configuration, String title, String groupIdentifier) {
super(configuration);
this.groupIdentifier = groupIdentifier;
setTitle(title);
}
/** (inheritDoc)
* @see org.goko.common.preferences.GkFieldEditorPreferencesPage#createPreferencePage(org.eclipse.swt.widgets.Composite)
*/
@Override
protected void createPreferencePage(Composite parent) throws GkException {
TinyGBigDecimalSettingFieldEditor stepAngleFieldEditor = new TinyGBigDecimalSettingFieldEditor(parent, SWT.NONE);
stepAngleFieldEditor.setWidthInChars(11);
stepAngleFieldEditor.setLabelWidthInChar(16);
stepAngleFieldEditor.setLabel("Step angle");
stepAngleFieldEditor.setGroupIdentifier(groupIdentifier);
stepAngleFieldEditor.setPreferenceName(G2Core.Configuration.Motors.STEP_ANGLE);
TinyGBigDecimalSettingFieldEditor travelPerRevolutionFieldEditor = new TinyGBigDecimalSettingFieldEditor(parent, SWT.NONE);
travelPerRevolutionFieldEditor.setWidthInChars(11);
travelPerRevolutionFieldEditor.setLabelWidthInChar(16);
travelPerRevolutionFieldEditor.setLabel("Travel per revolution");
travelPerRevolutionFieldEditor.setGroupIdentifier(groupIdentifier);
travelPerRevolutionFieldEditor.setPreferenceName(G2Core.Configuration.Motors.TRAVEL_PER_REVOLUTION);
TinyGComboFieldEditor microstepsFieldEditor = new TinyGComboFieldEditor(parent, SWT.READ_ONLY);
microstepsFieldEditor.setLabelWidthInChar(16);
microstepsFieldEditor.setLabel("Microsteps");
microstepsFieldEditor.setGroupIdentifier(groupIdentifier);
microstepsFieldEditor.setPreferenceName(G2Core.Configuration.Motors.MICROSTEPS);
{
String[][] microsteps = new String[][]{
{"No microsteps (1)","1"},
{"Half stepping (2)","2"},
{"Quarter stepping (4)","4"},
{"Eighth stepping (8)","8"},
{"Sixteenth stepping (16)","16"},
{"Thirty second stepping (32)","32"}
};
microstepsFieldEditor.setEntry(microsteps);
}
TinyGComboFieldEditor polarityFieldEditor = new TinyGComboFieldEditor(parent, SWT.READ_ONLY);
polarityFieldEditor.setLabelWidthInChar(16);
polarityFieldEditor.setLabel("Polarity");
polarityFieldEditor.setGroupIdentifier(groupIdentifier);
polarityFieldEditor.setPreferenceName(G2Core.Configuration.Motors.POLARITY);
{
String[][] polarity = new String[][]{ // 0=off, 1=filtered, 2=verbose
{"Normal","0"},
{"Reverse","1"}
};
polarityFieldEditor.setEntry(polarity);
}
TinyGComboFieldEditor powerManagementFieldEditor = new TinyGComboFieldEditor(parent, SWT.READ_ONLY);
powerManagementFieldEditor.setLabelWidthInChar(16);
powerManagementFieldEditor.setLabel("Power management");
powerManagementFieldEditor.setGroupIdentifier(groupIdentifier);
powerManagementFieldEditor.setPreferenceName(G2Core.Configuration.Motors.POWER_MODE);
{
String[][] powerMode = new String[][]{ // 0=off, 1=filtered, 2=verbose
{"Disabled","0"},
{"Always powered","1"},
{"During machining cycle","2"},
{"When moving","3"}
};
powerManagementFieldEditor.setEntry(powerMode);
}
TinyGBigDecimalSettingFieldEditor powerLevelFieldEditor = new TinyGBigDecimalSettingFieldEditor(parent, SWT.READ_ONLY);
powerLevelFieldEditor.setWidthInChars(11);
powerLevelFieldEditor.setLabel("Power level");
powerLevelFieldEditor.setLabelWidthInChar(16);
powerLevelFieldEditor.setGroupIdentifier(groupIdentifier);
powerLevelFieldEditor.setPreferenceName(G2Core.Configuration.Motors.POWER_LEVEL);
addField(stepAngleFieldEditor);
addField(travelPerRevolutionFieldEditor);
addField(microstepsFieldEditor);
addField(polarityFieldEditor);
addField(powerManagementFieldEditor);
addField(powerLevelFieldEditor);
}
}