From fedd74750f3c766d94f37302f52a2e0ddd0bcba5 Mon Sep 17 00:00:00 2001 From: Adrian Bowyer Date: Thu, 20 Feb 2014 21:22:25 +0000 Subject: [PATCH] This commit DOESN'T WORK. Use the next one or the previous one. This is an intermediate commit done merely to facilitate the moving of files between machines. --- .metadata/.lock | 0 .metadata/.log | 280 +++ .metadata/.mylyn/repositories.xml.zip | Bin 0 -> 437 bytes .metadata/.mylyn/tasks.xml.zip | Bin 0 -> 250 bytes .metadata/.plugins/org.eclipse.cdt.core/.log | 1 + .../org.eclipse.cdt.make.core/specs.c | 1 + .../org.eclipse.cdt.make.core/specs.cpp | 1 + .../dialog_settings.xml | 5 + .../.root/.indexes/history.version | 1 + .../.root/.indexes/properties.index | Bin 0 -> 104 bytes .../.root/.indexes/properties.version | 1 + .../org.eclipse.core.resources/.root/1.tree | Bin 0 -> 228 bytes .../.safetable/org.eclipse.core.resources | Bin 0 -> 555 bytes .../.settings/org.eclipse.cdt.ui.prefs | 5 + .../org.eclipse.core.resources.prefs | 2 + .../org.eclipse.mylyn.context.core.prefs | 2 + .../org.eclipse.mylyn.monitor.ui.prefs | 2 + .../.settings/org.eclipse.rse.core.prefs | 2 + .../.settings/org.eclipse.rse.ui.prefs | 2 + .../.settings/org.eclipse.team.cvs.ui.prefs | 2 + .../.settings/org.eclipse.team.ui.prefs | 2 + .../.settings/org.eclipse.ui.ide.prefs | 5 + .../.settings/org.eclipse.ui.prefs | 2 + .../.settings/org.eclipse.ui.workbench.prefs | 2 + .../org.eclipse.e4.workbench/workbench.xmi | 1936 +++++++++++++++++ .metadata/.plugins/org.eclipse.rse.core/.log | 0 ...al.core.RSELocalConnectionInitializer.mark | 0 .../FP.local.files_0/node.properties | 57 + .../PRF.reprap_0/H.local_16/node.properties | 25 + .../profiles/PRF.reprap_0/node.properties | 7 + .metadata/.plugins/org.eclipse.rse.ui/.log | 0 .../org.eclipse.ui.ide/dialog_settings.xml | 5 + .../dialog_settings.xml | 15 + .../org.eclipse.ui.workbench/workingsets.xml | 4 + .metadata/version.ini | 1 + Configuration.h | 8 +- GCodes.cpp | 6 +- GCodes.h | 225 +- Heat.cpp | 20 +- Heat.h | 96 +- Move.h | 205 +- RemoteSystemsTempFiles/.project | 12 + 42 files changed, 2675 insertions(+), 265 deletions(-) create mode 100644 .metadata/.lock create mode 100644 .metadata/.log create mode 100644 .metadata/.mylyn/repositories.xml.zip create mode 100644 .metadata/.mylyn/tasks.xml.zip create mode 100644 .metadata/.plugins/org.eclipse.cdt.core/.log create mode 100644 .metadata/.plugins/org.eclipse.cdt.make.core/specs.c create mode 100644 .metadata/.plugins/org.eclipse.cdt.make.core/specs.cpp create mode 100644 .metadata/.plugins/org.eclipse.cdt.make.ui/dialog_settings.xml create mode 100644 .metadata/.plugins/org.eclipse.core.resources/.root/.indexes/history.version create mode 100644 .metadata/.plugins/org.eclipse.core.resources/.root/.indexes/properties.index create mode 100644 .metadata/.plugins/org.eclipse.core.resources/.root/.indexes/properties.version create mode 100644 .metadata/.plugins/org.eclipse.core.resources/.root/1.tree create mode 100644 .metadata/.plugins/org.eclipse.core.resources/.safetable/org.eclipse.core.resources create mode 100644 .metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.cdt.ui.prefs create mode 100644 .metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.core.resources.prefs create mode 100644 .metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.mylyn.context.core.prefs create mode 100644 .metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.mylyn.monitor.ui.prefs create mode 100644 .metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.rse.core.prefs create mode 100644 .metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.rse.ui.prefs create mode 100644 .metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.team.cvs.ui.prefs create mode 100644 .metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.team.ui.prefs create mode 100644 .metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.ui.ide.prefs create mode 100644 .metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.ui.prefs create mode 100644 .metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.ui.workbench.prefs create mode 100644 .metadata/.plugins/org.eclipse.e4.workbench/workbench.xmi create mode 100644 .metadata/.plugins/org.eclipse.rse.core/.log create mode 100644 .metadata/.plugins/org.eclipse.rse.core/initializerMarks/org.eclipse.rse.internal.core.RSELocalConnectionInitializer.mark create mode 100644 .metadata/.plugins/org.eclipse.rse.core/profiles/PRF.reprap_0/FP.local.files_0/node.properties create mode 100644 .metadata/.plugins/org.eclipse.rse.core/profiles/PRF.reprap_0/H.local_16/node.properties create mode 100644 .metadata/.plugins/org.eclipse.rse.core/profiles/PRF.reprap_0/node.properties create mode 100644 .metadata/.plugins/org.eclipse.rse.ui/.log create mode 100644 .metadata/.plugins/org.eclipse.ui.ide/dialog_settings.xml create mode 100644 .metadata/.plugins/org.eclipse.ui.workbench/dialog_settings.xml create mode 100644 .metadata/.plugins/org.eclipse.ui.workbench/workingsets.xml create mode 100644 .metadata/version.ini create mode 100644 RemoteSystemsTempFiles/.project diff --git a/.metadata/.lock b/.metadata/.lock new file mode 100644 index 0000000..e69de29 diff --git a/.metadata/.log b/.metadata/.log new file mode 100644 index 0000000..9ef8c35 --- /dev/null +++ b/.metadata/.log @@ -0,0 +1,280 @@ +!SESSION 2013-11-24 15:24:42.338 ----------------------------------------------- +eclipse.buildId=M20130204-1200 +java.version=1.6.0_24 +java.vendor=Sun Microsystems Inc. +BootLoader constants: OS=linux, ARCH=x86, WS=gtk, NL=en_GB +Framework arguments: -product org.eclipse.epp.package.cpp.product +Command-line arguments: -os linux -ws gtk -arch x86 -product org.eclipse.epp.package.cpp.product + +!ENTRY org.eclipse.jface 4 2 2013-11-24 15:25:45.840 +!MESSAGE Problems occurred when invoking code from plug-in: "org.eclipse.jface". +!STACK 0 +java.lang.NullPointerException: element not initialized. + at org.eclipse.cdt.ui.newui.AbstractPage.getElement(AbstractPage.java:1272) + at org.eclipse.cdt.ui.newui.AbstractPage.getProject(AbstractPage.java:409) + at org.eclipse.cdt.ui.newui.AbstractPage.populateConfigurations(AbstractPage.java:745) + at org.eclipse.cdt.ui.newui.AbstractPage.setVisible(AbstractPage.java:829) + at org.eclipse.jface.preference.PreferenceDialog.showPage(PreferenceDialog.java:1324) + at org.eclipse.ui.internal.dialogs.FilteredPreferenceDialog.showPage(FilteredPreferenceDialog.java:675) + at org.eclipse.jface.preference.PreferenceDialog$10.run(PreferenceDialog.java:709) + at org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator.java:70) + at org.eclipse.jface.preference.PreferenceDialog$9.selectionChanged(PreferenceDialog.java:705) + at org.eclipse.jface.viewers.StructuredViewer$3.run(StructuredViewer.java:888) + at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42) + at org.eclipse.ui.internal.JFaceUtil$1.run(JFaceUtil.java:49) + at org.eclipse.jface.util.SafeRunnable.run(SafeRunnable.java:175) + at org.eclipse.jface.viewers.StructuredViewer.firePostSelectionChanged(StructuredViewer.java:886) + at org.eclipse.jface.viewers.StructuredViewer.setSelection(StructuredViewer.java:1726) + at org.eclipse.jface.viewers.TreeViewer.setSelection(TreeViewer.java:1139) + at org.eclipse.jface.preference.PreferenceDialog.selectSavedItem(PreferenceDialog.java:1055) + at org.eclipse.ui.internal.dialogs.FilteredPreferenceDialog.selectSavedItem(FilteredPreferenceDialog.java:730) + at org.eclipse.jface.preference.PreferenceDialog$4.run(PreferenceDialog.java:376) + at org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator.java:70) + at org.eclipse.jface.preference.PreferenceDialog.createContents(PreferenceDialog.java:372) + at org.eclipse.jface.window.Window.create(Window.java:431) + at org.eclipse.jface.dialogs.Dialog.create(Dialog.java:1089) + at org.eclipse.ui.internal.dialogs.PropertyDialog.createDialogOn(PropertyDialog.java:83) + at org.eclipse.ui.dialogs.PropertyDialogAction.createDialog(PropertyDialogAction.java:175) + at org.eclipse.ui.dialogs.PropertyDialogAction.run(PropertyDialogAction.java:156) + at org.eclipse.jface.action.Action.runWithEvent(Action.java:498) + at org.eclipse.jface.commands.ActionHandler.execute(ActionHandler.java:119) + at org.eclipse.ui.internal.handlers.E4HandlerProxy.execute(E4HandlerProxy.java:76) + at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) + at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) + at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) + at java.lang.reflect.Method.invoke(Method.java:616) + at org.eclipse.e4.core.internal.di.MethodRequestor.execute(MethodRequestor.java:56) + at org.eclipse.e4.core.internal.di.InjectorImpl.invokeUsingClass(InjectorImpl.java:231) + at org.eclipse.e4.core.internal.di.InjectorImpl.invoke(InjectorImpl.java:212) + at org.eclipse.e4.core.contexts.ContextInjectionFactory.invoke(ContextInjectionFactory.java:131) + at org.eclipse.e4.core.commands.internal.HandlerServiceImpl.executeHandler(HandlerServiceImpl.java:171) + at org.eclipse.e4.ui.workbench.renderers.swt.HandledContributionItem.executeItem(HandledContributionItem.java:831) + at org.eclipse.e4.ui.workbench.renderers.swt.HandledContributionItem.handleWidgetSelection(HandledContributionItem.java:724) + at org.eclipse.e4.ui.workbench.renderers.swt.HandledContributionItem.access$7(HandledContributionItem.java:708) + at org.eclipse.e4.ui.workbench.renderers.swt.HandledContributionItem$4.handleEvent(HandledContributionItem.java:647) + at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:84) + at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1276) + at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:3562) + at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3186) + at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine$9.run(PartRenderingEngine.java:1053) + at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332) + at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.run(PartRenderingEngine.java:942) + at org.eclipse.e4.ui.internal.workbench.E4Workbench.createAndRunUI(E4Workbench.java:86) + at org.eclipse.ui.internal.Workbench$5.run(Workbench.java:588) + at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332) + at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:543) + at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:149) + at org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:124) + at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:196) + at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:110) + at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:79) + at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:353) + at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:180) + at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) + at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) + at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) + at java.lang.reflect.Method.invoke(Method.java:616) + at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:629) + at org.eclipse.equinox.launcher.Main.basicRun(Main.java:584) + at org.eclipse.equinox.launcher.Main.run(Main.java:1438) + +!ENTRY org.eclipse.jface 4 2 2013-11-24 15:26:07.835 +!MESSAGE Problems occurred when invoking code from plug-in: "org.eclipse.jface". +!STACK 0 +java.lang.NullPointerException: element not initialized. + at org.eclipse.cdt.ui.newui.AbstractPage.getElement(AbstractPage.java:1272) + at org.eclipse.cdt.ui.newui.AbstractPage.getProject(AbstractPage.java:409) + at org.eclipse.cdt.ui.newui.AbstractPage.populateConfigurations(AbstractPage.java:745) + at org.eclipse.cdt.ui.newui.AbstractPage.setVisible(AbstractPage.java:829) + at org.eclipse.jface.preference.PreferenceDialog.showPage(PreferenceDialog.java:1324) + at org.eclipse.ui.internal.dialogs.FilteredPreferenceDialog.showPage(FilteredPreferenceDialog.java:675) + at org.eclipse.jface.preference.PreferenceDialog$10.run(PreferenceDialog.java:709) + at org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator.java:70) + at org.eclipse.jface.preference.PreferenceDialog$9.selectionChanged(PreferenceDialog.java:705) + at org.eclipse.jface.viewers.StructuredViewer$3.run(StructuredViewer.java:888) + at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42) + at org.eclipse.ui.internal.JFaceUtil$1.run(JFaceUtil.java:49) + at org.eclipse.jface.util.SafeRunnable.run(SafeRunnable.java:175) + at org.eclipse.jface.viewers.StructuredViewer.firePostSelectionChanged(StructuredViewer.java:886) + at org.eclipse.jface.viewers.StructuredViewer.setSelection(StructuredViewer.java:1726) + at org.eclipse.jface.viewers.TreeViewer.setSelection(TreeViewer.java:1139) + at org.eclipse.jface.preference.PreferenceDialog.selectSavedItem(PreferenceDialog.java:1055) + at org.eclipse.ui.internal.dialogs.FilteredPreferenceDialog.selectSavedItem(FilteredPreferenceDialog.java:730) + at org.eclipse.jface.preference.PreferenceDialog$4.run(PreferenceDialog.java:376) + at org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator.java:70) + at org.eclipse.jface.preference.PreferenceDialog.createContents(PreferenceDialog.java:372) + at org.eclipse.jface.window.Window.create(Window.java:431) + at org.eclipse.jface.dialogs.Dialog.create(Dialog.java:1089) + at org.eclipse.ui.internal.dialogs.PropertyDialog.createDialogOn(PropertyDialog.java:83) + at org.eclipse.ui.dialogs.PropertyDialogAction.createDialog(PropertyDialogAction.java:175) + at org.eclipse.ui.dialogs.PropertyDialogAction.run(PropertyDialogAction.java:156) + at org.eclipse.jface.action.Action.runWithEvent(Action.java:498) + at org.eclipse.jface.commands.ActionHandler.execute(ActionHandler.java:119) + at org.eclipse.ui.internal.handlers.E4HandlerProxy.execute(E4HandlerProxy.java:76) + at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) + at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) + at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) + at java.lang.reflect.Method.invoke(Method.java:616) + at org.eclipse.e4.core.internal.di.MethodRequestor.execute(MethodRequestor.java:56) + at org.eclipse.e4.core.internal.di.InjectorImpl.invokeUsingClass(InjectorImpl.java:231) + at org.eclipse.e4.core.internal.di.InjectorImpl.invoke(InjectorImpl.java:212) + at org.eclipse.e4.core.contexts.ContextInjectionFactory.invoke(ContextInjectionFactory.java:131) + at org.eclipse.e4.core.commands.internal.HandlerServiceImpl.executeHandler(HandlerServiceImpl.java:171) + at org.eclipse.e4.ui.workbench.renderers.swt.HandledContributionItem.executeItem(HandledContributionItem.java:831) + at org.eclipse.e4.ui.workbench.renderers.swt.HandledContributionItem.handleWidgetSelection(HandledContributionItem.java:724) + at org.eclipse.e4.ui.workbench.renderers.swt.HandledContributionItem.access$7(HandledContributionItem.java:708) + at org.eclipse.e4.ui.workbench.renderers.swt.HandledContributionItem$4.handleEvent(HandledContributionItem.java:647) + at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:84) + at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1276) + at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:3562) + at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3186) + at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine$9.run(PartRenderingEngine.java:1053) + at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332) + at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.run(PartRenderingEngine.java:942) + at org.eclipse.e4.ui.internal.workbench.E4Workbench.createAndRunUI(E4Workbench.java:86) + at org.eclipse.ui.internal.Workbench$5.run(Workbench.java:588) + at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332) + at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:543) + at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:149) + at org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:124) + at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:196) + at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:110) + at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:79) + at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:353) + at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:180) + at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) + at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) + at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) + at java.lang.reflect.Method.invoke(Method.java:616) + at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:629) + at org.eclipse.equinox.launcher.Main.basicRun(Main.java:584) + at org.eclipse.equinox.launcher.Main.run(Main.java:1438) + +!ENTRY org.eclipse.ui 4 0 2013-11-24 15:26:32.753 +!MESSAGE Unhandled event loop exception +!STACK 0 +java.lang.NullPointerException + at it.baeyens.arduino.tools.ArduinoHelpers.searchFiles(ArduinoHelpers.java:324) + at it.baeyens.arduino.tools.ArduinoHelpers.getBoardsFiles(ArduinoHelpers.java:805) + at it.baeyens.arduino.ui.ArduinoSelectionPage.draw(ArduinoSelectionPage.java:170) + at it.baeyens.arduino.ui.ArduinoSettingsPage.createControl(ArduinoSettingsPage.java:46) + at org.eclipse.jface.wizard.Wizard.createPageControls(Wizard.java:174) + at org.eclipse.jface.wizard.WizardDialog.createPageControls(WizardDialog.java:736) + at org.eclipse.jface.wizard.WizardDialog.setWizard(WizardDialog.java:1182) + at org.eclipse.jface.wizard.WizardDialog.updateForPage(WizardDialog.java:1241) + at org.eclipse.jface.wizard.WizardDialog.access$4(WizardDialog.java:1238) + at org.eclipse.jface.wizard.WizardDialog$8.run(WizardDialog.java:1227) + at org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator.java:70) + at org.eclipse.jface.wizard.WizardDialog.showPage(WizardDialog.java:1225) + at org.eclipse.jface.wizard.WizardDialog.nextPressed(WizardDialog.java:915) + at org.eclipse.jface.wizard.WizardDialog.buttonPressed(WizardDialog.java:428) + at org.eclipse.jface.dialogs.Dialog$2.widgetSelected(Dialog.java:624) + at org.eclipse.swt.widgets.TypedListener.handleEvent(TypedListener.java:248) + at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:84) + at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1276) + at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:3562) + at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3186) + at org.eclipse.jface.window.Window.runEventLoop(Window.java:825) + at org.eclipse.jface.window.Window.open(Window.java:801) + at org.eclipse.ui.actions.NewProjectAction.run(NewProjectAction.java:117) + at org.eclipse.jface.action.Action.runWithEvent(Action.java:498) + at org.eclipse.jface.action.ActionContributionItem.handleWidgetSelection(ActionContributionItem.java:584) + at org.eclipse.jface.action.ActionContributionItem.access$2(ActionContributionItem.java:501) + at org.eclipse.jface.action.ActionContributionItem$5.handleEvent(ActionContributionItem.java:411) + at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:84) + at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1276) + at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:3562) + at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3186) + at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine$9.run(PartRenderingEngine.java:1053) + at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332) + at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.run(PartRenderingEngine.java:942) + at org.eclipse.e4.ui.internal.workbench.E4Workbench.createAndRunUI(E4Workbench.java:86) + at org.eclipse.ui.internal.Workbench$5.run(Workbench.java:588) + at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332) + at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:543) + at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:149) + at org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:124) + at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:196) + at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:110) + at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:79) + at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:353) + at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:180) + at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) + at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) + at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) + at java.lang.reflect.Method.invoke(Method.java:616) + at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:629) + at org.eclipse.equinox.launcher.Main.basicRun(Main.java:584) + at org.eclipse.equinox.launcher.Main.run(Main.java:1438) + +!ENTRY org.eclipse.jface 4 2 2013-11-24 15:27:00.782 +!MESSAGE Problems occurred when invoking code from plug-in: "org.eclipse.jface". +!STACK 0 +java.lang.NullPointerException: element not initialized. + at org.eclipse.cdt.ui.newui.AbstractPage.getElement(AbstractPage.java:1272) + at org.eclipse.cdt.ui.newui.AbstractPage.getProject(AbstractPage.java:409) + at org.eclipse.cdt.ui.newui.AbstractPage.populateConfigurations(AbstractPage.java:745) + at org.eclipse.cdt.ui.newui.AbstractPage.setVisible(AbstractPage.java:829) + at org.eclipse.jface.preference.PreferenceDialog.showPage(PreferenceDialog.java:1324) + at org.eclipse.ui.internal.dialogs.FilteredPreferenceDialog.showPage(FilteredPreferenceDialog.java:675) + at org.eclipse.jface.preference.PreferenceDialog$10.run(PreferenceDialog.java:709) + at org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator.java:70) + at org.eclipse.jface.preference.PreferenceDialog$9.selectionChanged(PreferenceDialog.java:705) + at org.eclipse.jface.viewers.StructuredViewer$3.run(StructuredViewer.java:888) + at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42) + at org.eclipse.ui.internal.JFaceUtil$1.run(JFaceUtil.java:49) + at org.eclipse.jface.util.SafeRunnable.run(SafeRunnable.java:175) + at org.eclipse.jface.viewers.StructuredViewer.firePostSelectionChanged(StructuredViewer.java:886) + at org.eclipse.jface.viewers.StructuredViewer.setSelection(StructuredViewer.java:1726) + at org.eclipse.jface.viewers.TreeViewer.setSelection(TreeViewer.java:1139) + at org.eclipse.jface.preference.PreferenceDialog.selectSavedItem(PreferenceDialog.java:1055) + at org.eclipse.ui.internal.dialogs.FilteredPreferenceDialog.selectSavedItem(FilteredPreferenceDialog.java:730) + at org.eclipse.jface.preference.PreferenceDialog$4.run(PreferenceDialog.java:376) + at org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator.java:70) + at org.eclipse.jface.preference.PreferenceDialog.createContents(PreferenceDialog.java:372) + at org.eclipse.jface.window.Window.create(Window.java:431) + at org.eclipse.jface.dialogs.Dialog.create(Dialog.java:1089) + at org.eclipse.ui.internal.dialogs.PropertyDialog.createDialogOn(PropertyDialog.java:83) + at org.eclipse.ui.dialogs.PropertyDialogAction.createDialog(PropertyDialogAction.java:175) + at org.eclipse.ui.dialogs.PropertyDialogAction.run(PropertyDialogAction.java:156) + at org.eclipse.jface.action.Action.runWithEvent(Action.java:498) + at org.eclipse.jface.commands.ActionHandler.execute(ActionHandler.java:119) + at org.eclipse.ui.internal.handlers.E4HandlerProxy.execute(E4HandlerProxy.java:76) + at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) + at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) + at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) + at java.lang.reflect.Method.invoke(Method.java:616) + at org.eclipse.e4.core.internal.di.MethodRequestor.execute(MethodRequestor.java:56) + at org.eclipse.e4.core.internal.di.InjectorImpl.invokeUsingClass(InjectorImpl.java:231) + at org.eclipse.e4.core.internal.di.InjectorImpl.invoke(InjectorImpl.java:212) + at org.eclipse.e4.core.contexts.ContextInjectionFactory.invoke(ContextInjectionFactory.java:131) + at org.eclipse.e4.core.commands.internal.HandlerServiceImpl.executeHandler(HandlerServiceImpl.java:171) + at org.eclipse.e4.ui.workbench.renderers.swt.HandledContributionItem.executeItem(HandledContributionItem.java:831) + at org.eclipse.e4.ui.workbench.renderers.swt.HandledContributionItem.handleWidgetSelection(HandledContributionItem.java:724) + at org.eclipse.e4.ui.workbench.renderers.swt.HandledContributionItem.access$7(HandledContributionItem.java:708) + at org.eclipse.e4.ui.workbench.renderers.swt.HandledContributionItem$4.handleEvent(HandledContributionItem.java:647) + at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:84) + at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1276) + at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:3562) + at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3186) + at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine$9.run(PartRenderingEngine.java:1053) + at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332) + at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.run(PartRenderingEngine.java:942) + at org.eclipse.e4.ui.internal.workbench.E4Workbench.createAndRunUI(E4Workbench.java:86) + at org.eclipse.ui.internal.Workbench$5.run(Workbench.java:588) + at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332) + at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:543) + at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:149) + at org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:124) + at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:196) + at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:110) + at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:79) + at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:353) + at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:180) + at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) + at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) + at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) + at java.lang.reflect.Method.invoke(Method.java:616) + at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:629) + at org.eclipse.equinox.launcher.Main.basicRun(Main.java:584) + at org.eclipse.equinox.launcher.Main.run(Main.java:1438) diff --git a/.metadata/.mylyn/repositories.xml.zip b/.metadata/.mylyn/repositories.xml.zip new file mode 100644 index 0000000000000000000000000000000000000000..7effce904e11d450b68ce26722776df3c40ef66d GIT binary patch literal 437 zcmWIWW@Zs#-~ht#>I!EDBp?7}7o`^D7iX5_7iFdv>s93Dybba7XEGG{tL^)~%v9}| z1edza#0-(W{JRg|GPrFvS98;!D)FC23pig~y`6Havi9>m@9Jh(=d8ZY*biaxGriYd zn7*)R-?m?=HT8w7+5g^?sQA`mxMA`HnN3wEgf{Pa_w38TxnXDLtY0(lN!7~^ht+dV zyfUA7qTKc3)|&~QdPcJ*ygJ`@@AD2b^W!#CcCbx9xcKVfIZj8CL~2C$gvlP_TbsG^ ztDBY4lL((*hi)Aa5nFq*N7PSoa)hqt2TuQ!g*oYJ@#+*YWq7+X6QclY+F0;!Boqm5A`qnX9)0S=MZ#l?pJ1HV6bCh0P-1` iL>Lf3j4THVVpM=0-~ryOY#I!EDB)|h?mn0Tv=VTU_=vCzAY~Hy3#MwX%Z(Xf(XU=a9HM(LP z5ae;z`<(yDGv3=nxp)gNZw(02(DOXw?RnEr%s1&+P<07Q|H{blRA2V9L+CH zm|nGXSgTK4vh2Bds8$6-=~ITSEzeY)TZ~o*1y2$ABUEh2^7U=bm&CMNj0^$Z>>R?m rvc?5KcT54|0B=Sn5e9@?k>x;cMFq$%5AbGX1IaQ1p%su`1y%|Gw3 +
+
+
+
diff --git a/.metadata/.plugins/org.eclipse.core.resources/.root/.indexes/history.version b/.metadata/.plugins/org.eclipse.core.resources/.root/.indexes/history.version new file mode 100644 index 0000000..25cb955 --- /dev/null +++ b/.metadata/.plugins/org.eclipse.core.resources/.root/.indexes/history.version @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/.metadata/.plugins/org.eclipse.core.resources/.root/.indexes/properties.index b/.metadata/.plugins/org.eclipse.core.resources/.root/.indexes/properties.index new file mode 100644 index 0000000000000000000000000000000000000000..44ad8398452f7c6995cbddf86031fb8f7a43a561 GIT binary patch literal 104 zcmYkzF%E+;5Cp(IdWsY@Ji=fQh}1lRe84)b5+uOLzWg6b>d^=Qfix%z)G>V>bz9F& vr!mnb=J-#_jF-m4c-S2D$HjsX;^odj^`y_bGh5hCl)j(3w;$TEZ^!8ZwpASI literal 0 HcmV?d00001 diff --git a/.metadata/.plugins/org.eclipse.core.resources/.root/.indexes/properties.version b/.metadata/.plugins/org.eclipse.core.resources/.root/.indexes/properties.version new file mode 100644 index 0000000..6b2aaa7 --- /dev/null +++ b/.metadata/.plugins/org.eclipse.core.resources/.root/.indexes/properties.version @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/.metadata/.plugins/org.eclipse.core.resources/.root/1.tree b/.metadata/.plugins/org.eclipse.core.resources/.root/1.tree new file mode 100644 index 0000000000000000000000000000000000000000..4b89a73e3e050135420cec0f465bceb9d7862694 GIT binary patch literal 228 zcmZ9HT?zs*4208e5#Lw5#TL)tg9lJAAa#({EiGvk_6i=z>uKT-sPi(A`6eW;v6fzP zZ~rz!v&09FF!Z^=SL~t>mqINgrizYH(wPIg6GrL%;bC8WNDSR*tdUsU(0u(YZ^lv) u%N8-O`T<2_*9x(`-tG(Si1awEsiZpfnbQ%W>d;8|12+PFzL_YY1EL28peXbJ literal 0 HcmV?d00001 diff --git a/.metadata/.plugins/org.eclipse.core.resources/.safetable/org.eclipse.core.resources b/.metadata/.plugins/org.eclipse.core.resources/.safetable/org.eclipse.core.resources new file mode 100644 index 0000000000000000000000000000000000000000..f6d09596dddf2df7b085020907532faa955fd2cf GIT binary patch literal 555 zcmZ?R*xjhShe1S2b=vdAllRFf=Oz}Hq!uZZBqrsgaw!Lw<|+8)mnj&TC>WYr8JSxd z87sK^hA0>r7#edW=cFbUxuoWlB*y0#rR$|8=VTTXr|J~}aav|hYO!8vrfo@4X)0F= zNR4YnL1s~6NoIZ?it6N)620X7qEuT$V+&Jb12YQ~V*?`td}f1HgU!{~D=A6^>cpiw zw=$4gI2+-X0};PJgFPJhxu<$}`7sCT2LRklX^A<-skj`65=;=4Gzce%!6XJ0 JL=$>Q0RZ_@$Ljz9 literal 0 HcmV?d00001 diff --git a/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.cdt.ui.prefs b/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.cdt.ui.prefs new file mode 100644 index 0000000..ee2f4f8 --- /dev/null +++ b/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.cdt.ui.prefs @@ -0,0 +1,5 @@ +eclipse.preferences.version=1 +spelling_locale=en_GB +spelling_locale_initialized=true +useAnnotationsPrefPage=true +useQuickDiffPrefPage=true diff --git a/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.core.resources.prefs b/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.core.resources.prefs new file mode 100644 index 0000000..dffc6b5 --- /dev/null +++ b/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.core.resources.prefs @@ -0,0 +1,2 @@ +eclipse.preferences.version=1 +version=1 diff --git a/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.mylyn.context.core.prefs b/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.mylyn.context.core.prefs new file mode 100644 index 0000000..43e97e4 --- /dev/null +++ b/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.mylyn.context.core.prefs @@ -0,0 +1,2 @@ +eclipse.preferences.version=1 +mylyn.attention.migrated=true diff --git a/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.mylyn.monitor.ui.prefs b/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.mylyn.monitor.ui.prefs new file mode 100644 index 0000000..8d462a6 --- /dev/null +++ b/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.mylyn.monitor.ui.prefs @@ -0,0 +1,2 @@ +eclipse.preferences.version=1 +org.eclipse.mylyn.monitor.activity.tracking.enabled.checked=true diff --git a/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.rse.core.prefs b/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.rse.core.prefs new file mode 100644 index 0000000..18f80a4 --- /dev/null +++ b/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.rse.core.prefs @@ -0,0 +1,2 @@ +eclipse.preferences.version=1 +org.eclipse.rse.systemtype.local.systemType.defaultUserId=ensab diff --git a/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.rse.ui.prefs b/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.rse.ui.prefs new file mode 100644 index 0000000..a86a7d8 --- /dev/null +++ b/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.rse.ui.prefs @@ -0,0 +1,2 @@ +eclipse.preferences.version=1 +org.eclipse.rse.preferences.order.connections=reprap.Local diff --git a/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.team.cvs.ui.prefs b/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.team.cvs.ui.prefs new file mode 100644 index 0000000..f9e585b --- /dev/null +++ b/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.team.cvs.ui.prefs @@ -0,0 +1,2 @@ +eclipse.preferences.version=1 +pref_first_startup=false diff --git a/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.team.ui.prefs b/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.team.ui.prefs new file mode 100644 index 0000000..56cd496 --- /dev/null +++ b/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.team.ui.prefs @@ -0,0 +1,2 @@ +eclipse.preferences.version=1 +org.eclipse.team.ui.first_time=false diff --git a/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.ui.ide.prefs b/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.ui.ide.prefs new file mode 100644 index 0000000..0bfc5f6 --- /dev/null +++ b/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.ui.ide.prefs @@ -0,0 +1,5 @@ +PROBLEMS_FILTERS_MIGRATE=true +eclipse.preferences.version=1 +platformState=1382915063068 +quickStart=false +tipsAndTricks=true diff --git a/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.ui.prefs b/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.ui.prefs new file mode 100644 index 0000000..08076f2 --- /dev/null +++ b/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.ui.prefs @@ -0,0 +1,2 @@ +eclipse.preferences.version=1 +showIntro=false diff --git a/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.ui.workbench.prefs b/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.ui.workbench.prefs new file mode 100644 index 0000000..00866a4 --- /dev/null +++ b/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.ui.workbench.prefs @@ -0,0 +1,2 @@ +ENABLED_DECORATORS=org.eclipse.cdt.ui.indexedFiles\:false,org.eclipse.cdt.managedbuilder.ui.excludedFile\:true,org.eclipse.cdt.managedbuilder.ui.includeFolder\:true,org.eclipse.cdt.internal.ui.CustomBuildSettingsDecorator\:true,org.eclipse.egit.ui.internal.decorators.GitLightweightDecorator\:true,org.eclipse.linuxtools.tmf.ui.trace_folder.decorator\:true,org.eclipse.linuxtools.tmf.ui.experiment_folder.decorator\:true,org.eclipse.linuxtools.tmf.ui.linked_trace.decorator\:true,org.eclipse.mylyn.context.ui.decorator.interest\:true,org.eclipse.mylyn.tasks.ui.decorators.task\:true,org.eclipse.mylyn.team.ui.changeset.decorator\:true,org.eclipse.rse.core.virtualobject.decorator\:true,org.eclipse.rse.core.binary.executable.decorator\:true,org.eclipse.rse.core.script.executable.decorator\:true,org.eclipse.rse.core.java.executable.decorator\:true,org.eclipse.rse.core.library.decorator\:true,org.eclipse.rse.core.link.decorator\:true,org.eclipse.rse.subsystems.error.decorator\:true,org.eclipse.team.cvs.ui.decorator\:true,org.eclipse.ui.LinkedResourceDecorator\:true,org.eclipse.ui.VirtualResourceDecorator\:true,org.eclipse.ui.ContentTypeDecorator\:true,org.eclipse.ui.ResourceFilterDecorator\:false, +eclipse.preferences.version=1 diff --git a/.metadata/.plugins/org.eclipse.e4.workbench/workbench.xmi b/.metadata/.plugins/org.eclipse.e4.workbench/workbench.xmi new file mode 100644 index 0000000..5d8bcd6 --- /dev/null +++ b/.metadata/.plugins/org.eclipse.e4.workbench/workbench.xmi @@ -0,0 +1,1936 @@ + + + activeSchemeId:org.eclipse.ui.defaultAcceleratorConfiguration + + topLevel + + + + + persp.actionSet:org.eclipse.mylyn.context.ui.actionSet + persp.actionSet:org.eclipse.mylyn.doc.actionSet + persp.actionSet:org.eclipse.mylyn.tasks.ui.navigation + persp.actionSet:org.eclipse.ui.cheatsheets.actionSet + persp.actionSet:org.eclipse.rse.core.search.searchActionSet + persp.actionSet:org.eclipse.search.searchActionSet + persp.actionSet:org.eclipse.ui.edit.text.actionSet.annotationNavigation + persp.actionSet:org.eclipse.ui.edit.text.actionSet.navigation + persp.actionSet:org.eclipse.ui.edit.text.actionSet.convertLineDelimitersTo + persp.actionSet:org.eclipse.ui.externaltools.ExternalToolsSet + persp.actionSet:org.eclipse.ui.actionSet.keyBindings + persp.actionSet:org.eclipse.ui.actionSet.openFiles + persp.actionSet:org.eclipse.cdt.ui.SearchActionSet + persp.actionSet:org.eclipse.cdt.ui.CElementCreationActionSet + persp.actionSet:org.eclipse.ui.NavigateActionSet + persp.viewSC:org.eclipse.ui.console.ConsoleView + persp.viewSC:org.eclipse.search.ui.views.SearchView + persp.viewSC:org.eclipse.ui.views.ContentOutline + persp.viewSC:org.eclipse.ui.views.ProblemView + persp.viewSC:org.eclipse.cdt.ui.CView + persp.viewSC:org.eclipse.ui.views.ResourceNavigator + persp.viewSC:org.eclipse.ui.views.PropertySheet + persp.viewSC:org.eclipse.ui.views.TaskList + persp.newWizSC:org.eclipse.cdt.autotools.ui.wizards.conversionWizard + persp.newWizSC:org.eclipse.cdt.ui.wizards.ConvertToMakeWizard + persp.newWizSC:org.eclipse.cdt.ui.wizards.NewMakeFromExisting + persp.newWizSC:org.eclipse.cdt.ui.wizards.NewCWizard1 + persp.newWizSC:org.eclipse.cdt.ui.wizards.NewCWizard2 + persp.newWizSC:org.eclipse.cdt.ui.wizards.NewSourceFolderCreationWizard + persp.newWizSC:org.eclipse.cdt.ui.wizards.NewFolderCreationWizard + persp.newWizSC:org.eclipse.cdt.ui.wizards.NewSourceFileCreationWizard + persp.newWizSC:org.eclipse.cdt.ui.wizards.NewHeaderFileCreationWizard + persp.newWizSC:org.eclipse.cdt.ui.wizards.NewFileCreationWizard + persp.newWizSC:org.eclipse.cdt.ui.wizards.NewClassCreationWizard + persp.showIn:org.eclipse.cdt.codan.internal.ui.views.ProblemDetails + persp.viewSC:org.eclipse.cdt.codan.internal.ui.views.ProblemDetails + persp.actionSet:org.eclipse.debug.ui.breakpointActionSet + persp.viewSC:org.eclipse.cdt.make.ui.views.MakeView + persp.actionSet:org.eclipse.cdt.make.ui.makeTargetActionSet + persp.perspSC:org.eclipse.debug.ui.DebugPerspective + persp.perspSC:org.eclipse.team.ui.TeamSynchronizingPerspective + persp.actionSet:org.eclipse.debug.ui.launchActionSet + persp.actionSet:org.eclipse.cdt.ui.buildConfigActionSet + persp.actionSet:org.eclipse.cdt.ui.NavigationActionSet + persp.actionSet:org.eclipse.cdt.ui.OpenActionSet + persp.actionSet:org.eclipse.cdt.ui.CodingActionSet + persp.actionSet:org.eclipse.ui.edit.text.actionSet.presentation + persp.showIn:org.eclipse.cdt.ui.includeBrowser + persp.showIn:org.eclipse.cdt.ui.CView + persp.showIn:org.eclipse.ui.navigator.ProjectExplorer + persp.viewSC:org.eclipse.ui.navigator.ProjectExplorer + persp.viewSC:org.eclipse.cdt.ui.includeBrowser + persp.actionSet:org.eclipse.debug.ui.profileActionSet + persp.viewSC:org.eclipse.mylyn.tasks.ui.views.tasks + persp.newWizSC:org.eclipse.mylyn.tasks.ui.wizards.new.repository.task + + + newtablook + + + + + + + + + + newtablook + + + + + + + newtablook + + + + + + + + + + + + + + + + + + View + categoryTag:Help + + + View + categoryTag:General + + ViewMenu + menuContribution:menu + + + + + View + categoryTag:Help + + + + newtablook + org.eclipse.e4.primaryDataStack + EditorStack + + + + + View + categoryTag:General + activeOnClose + + ViewMenu + menuContribution:menu + + + + + View + categoryTag:&C/C++ + + + View + categoryTag:General + + + View + categoryTag:General + + + + View + categoryTag:General + + ViewMenu + menuContribution:menu + + + + + View + categoryTag:General + + + View + categoryTag:General + + + View + categoryTag:General + + + View + categoryTag:General + + ViewMenu + menuContribution:menu + + + + + View + categoryTag:Make + + ViewMenu + menuContribution:menu + + + + + View + categoryTag:&C/C++ + + + View + categoryTag:Mylyn + + ViewMenu + menuContribution:menu + + + + + + toolbarSeparator + + + + Draggable + + + + + + + + + + + + + + + + + toolbarSeparator + + + + Draggable + + + + + + + + Draggable + + + + + + + + Draggable + + + + + + + toolbarSeparator + + + + Draggable + + + + + + + + + + + + toolbarSeparator + + + + toolbarSeparator + + + + Draggable + + + + + stretch + + + glue + + + + glue + + + Draggable + + + + + stretch + + + + Draggable + + + + + TrimStack + + + + + + + + + + + + + + + + + + + platform:gtk + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Editor + + + View + categoryTag:&C/C++ + + + View + categoryTag:Debug + + + View + categoryTag:Debug + + + View + categoryTag:Debug + + + View + categoryTag:Debug + + + View + categoryTag:Debug + + + View + categoryTag:Make + + + View + categoryTag:&C/C++ + + + View + categoryTag:&C/C++ + + + View + categoryTag:&C/C++ + + + View + categoryTag:&C/C++ + + + View + categoryTag:&C/C++ + + + View + categoryTag:General + + + View + categoryTag:Debug + + + View + categoryTag:Debug + + + View + categoryTag:Debug + + + View + categoryTag:Debug + + + View + categoryTag:Debug + + + View + categoryTag:Debug + + + View + categoryTag:Debug + + + View + categoryTag:Git + + + View + categoryTag:Git + + + View + categoryTag:Git + + + View + categoryTag:Git + + + View + categoryTag:Help + + + View + categoryTag:&C/C++ + + + View + categoryTag:&C/C++ + + + View + categoryTag:Charts + + + View + categoryTag:gcov + + + View + categoryTag:gprof + + + View + categoryTag:LTTng + + + View + categoryTag:LTTng + + + View + categoryTag:LTTng + + + View + categoryTag:C/C++ Profiling + + + View + categoryTag:Profiling + + + View + categoryTag:Profiling + + + View + categoryTag:SystemTap + + + View + categoryTag:SystemTap + + + View + categoryTag:SystemTap + + + View + categoryTag:SystemTap + + + View + categoryTag:SystemTap + + + View + categoryTag:SystemTap + + + View + categoryTag:SystemTap + + + View + categoryTag:SystemTap + + + View + categoryTag:SystemTap + + + View + categoryTag:Tracing + + + View + categoryTag:Tracing + + + View + categoryTag:Tracing + + + View + categoryTag:Tracing + + + View + categoryTag:Tracing + + + View + categoryTag:Tracing + + + View + categoryTag:Tracing + + + View + categoryTag:Tracing + + + View + categoryTag:Profiling + + + View + categoryTag:Mylyn + + + View + categoryTag:Mylyn + + + View + categoryTag:Mylyn + + + View + categoryTag:Remote Systems + + + View + categoryTag:Remote Systems + + + View + categoryTag:Remote Systems + + + View + categoryTag:Remote Systems + + + View + categoryTag:Remote Systems + + + View + categoryTag:Remote Systems + + + View + categoryTag:Remote Systems + + + View + categoryTag:Remote Systems + + + View + categoryTag:General + + + View + categoryTag:General + + + View + categoryTag:CVS + + + View + categoryTag:CVS + + + View + categoryTag:Team + + + View + categoryTag:Team + + + View + categoryTag:General + + + View + categoryTag:General + + + View + categoryTag:Help + + + View + categoryTag:General + + + View + categoryTag:General + + + View + categoryTag:General + + + View + categoryTag:General + + + View + categoryTag:General + + + View + categoryTag:General + + + View + categoryTag:General + + + View + categoryTag:General + + + View + categoryTag:General + + + View + categoryTag:General + + + View + categoryTag:General + + + View + categoryTag:Arduino + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/.metadata/.plugins/org.eclipse.rse.core/.log b/.metadata/.plugins/org.eclipse.rse.core/.log new file mode 100644 index 0000000..e69de29 diff --git a/.metadata/.plugins/org.eclipse.rse.core/initializerMarks/org.eclipse.rse.internal.core.RSELocalConnectionInitializer.mark b/.metadata/.plugins/org.eclipse.rse.core/initializerMarks/org.eclipse.rse.internal.core.RSELocalConnectionInitializer.mark new file mode 100644 index 0000000..e69de29 diff --git a/.metadata/.plugins/org.eclipse.rse.core/profiles/PRF.reprap_0/FP.local.files_0/node.properties b/.metadata/.plugins/org.eclipse.rse.core/profiles/PRF.reprap_0/FP.local.files_0/node.properties new file mode 100644 index 0000000..6954bf7 --- /dev/null +++ b/.metadata/.plugins/org.eclipse.rse.core/profiles/PRF.reprap_0/FP.local.files_0/node.properties @@ -0,0 +1,57 @@ +# RSE DOM Node +00-name=reprap\:local.files +01-type=FilterPool +03-attr.default=true +03-attr.deletable=true +03-attr.id=local.files +03-attr.nonRenamable=false +03-attr.owningParentName=null +03-attr.release=200 +03-attr.singleFilterStringOnly=false +03-attr.singleFilterStringOnlyESet=false +03-attr.stringsCaseSensitive=true +03-attr.supportsDuplicateFilterStrings=false +03-attr.supportsNestedFilters=true +03-attr.type=default +06-child.00000.00-name=My Home +06-child.00000.01-type=Filter +06-child.00000.03-attr.default=false +06-child.00000.03-attr.filterType=default +06-child.00000.03-attr.id=My Home +06-child.00000.03-attr.nonChangable=false +06-child.00000.03-attr.nonDeletable=false +06-child.00000.03-attr.nonRenamable=false +06-child.00000.03-attr.promptable=false +06-child.00000.03-attr.relativeOrder=0 +06-child.00000.03-attr.release=200 +06-child.00000.03-attr.singleFilterStringOnly=false +06-child.00000.03-attr.stringsCaseSensitive=true +06-child.00000.03-attr.stringsNonChangable=false +06-child.00000.03-attr.supportsDuplicateFilterStrings=false +06-child.00000.03-attr.supportsNestedFilters=true +06-child.00000.06-child.00000.00-name=/home/ensab/* +06-child.00000.06-child.00000.01-type=FilterString +06-child.00000.06-child.00000.03-attr.default=false +06-child.00000.06-child.00000.03-attr.string=/home/ensab/* +06-child.00000.06-child.00000.03-attr.type=default +06-child.00001.00-name=Root +06-child.00001.01-type=Filter +06-child.00001.03-attr.default=false +06-child.00001.03-attr.filterType=default +06-child.00001.03-attr.id=Root +06-child.00001.03-attr.nonChangable=false +06-child.00001.03-attr.nonDeletable=false +06-child.00001.03-attr.nonRenamable=false +06-child.00001.03-attr.promptable=false +06-child.00001.03-attr.relativeOrder=0 +06-child.00001.03-attr.release=200 +06-child.00001.03-attr.singleFilterStringOnly=false +06-child.00001.03-attr.stringsCaseSensitive=true +06-child.00001.03-attr.stringsNonChangable=false +06-child.00001.03-attr.supportsDuplicateFilterStrings=false +06-child.00001.03-attr.supportsNestedFilters=true +06-child.00001.06-child.00000.00-name=/* +06-child.00001.06-child.00000.01-type=FilterString +06-child.00001.06-child.00000.03-attr.default=false +06-child.00001.06-child.00000.03-attr.string=/* +06-child.00001.06-child.00000.03-attr.type=default diff --git a/.metadata/.plugins/org.eclipse.rse.core/profiles/PRF.reprap_0/H.local_16/node.properties b/.metadata/.plugins/org.eclipse.rse.core/profiles/PRF.reprap_0/H.local_16/node.properties new file mode 100644 index 0000000..aa1e7a5 --- /dev/null +++ b/.metadata/.plugins/org.eclipse.rse.core/profiles/PRF.reprap_0/H.local_16/node.properties @@ -0,0 +1,25 @@ +# RSE DOM Node +00-name=Local +01-type=Host +03-attr.description= +03-attr.hostname=LOCALHOST +03-attr.offline=false +03-attr.promptable=false +03-attr.systemType=org.eclipse.rse.systemtype.local +03-attr.type=Local +06-child.00000.00-name=Local Connector Service +06-child.00000.01-type=ConnectorService +06-child.00000.03-attr.group=Local Connector Service +06-child.00000.03-attr.port=0 +06-child.00000.03-attr.useSSL=false +06-child.00000.06-child.00000.00-name=Local Files +06-child.00000.06-child.00000.01-type=SubSystem +06-child.00000.06-child.00000.03-attr.hidden=false +06-child.00000.06-child.00000.03-attr.type=local.files +06-child.00000.06-child.00000.06-child.00000.00-name=reprap___reprap\:local.files +06-child.00000.06-child.00000.06-child.00000.01-type=FilterPoolReference +06-child.00000.06-child.00000.06-child.00000.03-attr.refID=local.files +06-child.00000.06-child.00001.00-name=Local Shells +06-child.00000.06-child.00001.01-type=SubSystem +06-child.00000.06-child.00001.03-attr.hidden=false +06-child.00000.06-child.00001.03-attr.type=local.shells diff --git a/.metadata/.plugins/org.eclipse.rse.core/profiles/PRF.reprap_0/node.properties b/.metadata/.plugins/org.eclipse.rse.core/profiles/PRF.reprap_0/node.properties new file mode 100644 index 0000000..556ac46 --- /dev/null +++ b/.metadata/.plugins/org.eclipse.rse.core/profiles/PRF.reprap_0/node.properties @@ -0,0 +1,7 @@ +# RSE DOM Node +00-name=reprap +01-type=Profile +03-attr.defaultPrivate=true +03-attr.isActive=true +05-ref.00000=FP.local.files_0 +05-ref.00001=H.local_16 diff --git a/.metadata/.plugins/org.eclipse.rse.ui/.log b/.metadata/.plugins/org.eclipse.rse.ui/.log new file mode 100644 index 0000000..e69de29 diff --git a/.metadata/.plugins/org.eclipse.ui.ide/dialog_settings.xml b/.metadata/.plugins/org.eclipse.ui.ide/dialog_settings.xml new file mode 100644 index 0000000..36e36c6 --- /dev/null +++ b/.metadata/.plugins/org.eclipse.ui.ide/dialog_settings.xml @@ -0,0 +1,5 @@ + +
+
+
+
diff --git a/.metadata/.plugins/org.eclipse.ui.workbench/dialog_settings.xml b/.metadata/.plugins/org.eclipse.ui.workbench/dialog_settings.xml new file mode 100644 index 0000000..870cf36 --- /dev/null +++ b/.metadata/.plugins/org.eclipse.ui.workbench/dialog_settings.xml @@ -0,0 +1,15 @@ + +
+
+ + + + + + + + + + +
+
diff --git a/.metadata/.plugins/org.eclipse.ui.workbench/workingsets.xml b/.metadata/.plugins/org.eclipse.ui.workbench/workingsets.xml new file mode 100644 index 0000000..3f50908 --- /dev/null +++ b/.metadata/.plugins/org.eclipse.ui.workbench/workingsets.xml @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/.metadata/version.ini b/.metadata/version.ini new file mode 100644 index 0000000..c51ff74 --- /dev/null +++ b/.metadata/version.ini @@ -0,0 +1 @@ +org.eclipse.core.runtime=1 \ No newline at end of file diff --git a/Configuration.h b/Configuration.h index 494a01e..7358496 100644 --- a/Configuration.h +++ b/Configuration.h @@ -24,9 +24,9 @@ Licence: GPL #define CONFIGURATION_H #define NAME "RepRapFirmware" -#define VERSION "0.58" -#define DATE "2014-02-08" -#define LAST_AUTHOR "dc42" +#define VERSION "0.59" +#define DATE "2014-02-19" +#define LAST_AUTHOR "reprappro" // Other firmware that we might switch to be compatible with. @@ -61,7 +61,7 @@ enum Compatibility #define STANDBY_INTERRUPT_RATE 2.0e-4 // Seconds #define NUMBER_OF_PROBE_POINTS 4 -#define Z_DIVE 5.0 // Height from which to probe the bed (mm) +#define Z_DIVE 8.0 // Height from which to probe the bed (mm) #define SILLY_Z_VALUE -9999.0 diff --git a/GCodes.cpp b/GCodes.cpp index 841ca26..1b744b9 100644 --- a/GCodes.cpp +++ b/GCodes.cpp @@ -87,7 +87,7 @@ void GCodes::Init() axisIsHomed[X_AXIS] = axisIsHomed[Y_AXIS] = axisIsHomed[Z_AXIS] = false; } -void GCodes::doFilePrint(GCodeBuffer* gb) +void GCodes::DoFilePrint(GCodeBuffer* gb) { char b; @@ -212,7 +212,7 @@ void GCodes::Spin() } } - doFilePrint(fileGCode); + DoFilePrint(fileGCode); platform->ClassReport("GCodes", longWait); } @@ -456,7 +456,7 @@ bool GCodes::DoFileCannedCycles(const char* fileName) return false; } - doFilePrint(cannedCycleGCode); + DoFilePrint(cannedCycleGCode); return false; } diff --git a/GCodes.h b/GCodes.h index 30507ee..7c4026c 100644 --- a/GCodes.h +++ b/GCodes.h @@ -33,30 +33,30 @@ class GCodeBuffer { public: GCodeBuffer(Platform* p, const char* id); - void Init(); - bool Put(char c); - bool Seen(char c); - float GetFValue(); - int GetIValue(); - long GetLValue(); - const char* GetUnprecedentedString(); - const char* GetString(); - const char* Buffer(); - bool Finished() const; - void SetFinished(bool f); - const char* WritingFileDirectory() const; - void SetWritingFileDirectory(const char* wfd); + void Init(); // Set it up + bool Put(char c); // Add a character to the end + bool Seen(char c); // Is a character present? + float GetFValue(); // Get a float after a key letter + int GetIValue(); // Get an integer after a key letter + long GetLValue(); // Get a long integer after a key letter + const char* GetUnprecedentedString(); // Get a string with no preceeding key letter + const char* GetString(); // Get a string after a key letter + const char* Buffer(); // All of the G Code itself + bool Finished() const; // Has the G Code been executed? + void SetFinished(bool f); // Set the G Code executed (or not) + const char* WritingFileDirectory() const; // If we are writing the G Code to a file, where that file is + void SetWritingFileDirectory(const char* wfd); // Set the directory for the file to write the GCode in private: - int CheckSum(); - Platform* platform; - char gcodeBuffer[GCODE_LENGTH]; - const char* identity; - int gcodePointer; - int readPointer; - bool inComment; - bool finished; - const char* writingFileDirectory; + int CheckSum(); // Compute the checksum (if any) at the end of the G Code + Platform* platform; // Pointer to the RepRap's controlling class + char gcodeBuffer[GCODE_LENGTH]; // The G Code + const char* identity; // Where we are from (web, file, serial line etc) + int gcodePointer; // Index in the buffer + int readPointer; // Where in the buffer to read next + bool inComment; // Are we after a ';' character? + bool finished; // Has the G Code been executed? + const char* writingFileDirectory; // If the G Code is going into a file, where that is }; //**************************************************************************************************** @@ -68,99 +68,102 @@ class GCodes public: GCodes(Platform* p, Webserver* w); - void Spin(); - void Init(); - void Exit(); - bool RunConfigurationGCodes(); - bool ReadMove(float* m, bool& ce); - void QueueFileToPrint(const char* fileName); - void DeleteFile(const char* fileName); - bool GetProbeCoordinates(int count, float& x, float& y, float& z); - char* GetCurrentCoordinates(); - bool PrintingAFile() const; - void Diagnostics(); - bool HaveIncomingData() const; - bool GetAxisIsHomed(uint8_t axis) const { return axisIsHomed[axis]; } + void Spin(); // Called in a tight loop to make this class work + void Init(); // Set it up + void Exit(); // Shut it down + bool RunConfigurationGCodes(); // Run the configuration G Code file on reboot + bool ReadMove(float* m, bool& ce); // Called by the Move class to get a movement set by the last G Code + void QueueFileToPrint(const char* fileName); // Open a file of G Codes to run + void DeleteFile(const char* fileName); // Does what it says + bool GetProbeCoordinates(int count, float& x, float& y, float& z); // Get pre-recorded probe coordinates + char* GetCurrentCoordinates(); // Get where we are as a string + bool PrintingAFile() const; // Are we in the middle of printing a file? + void Diagnostics(); // Send helpful information out + bool HaveIncomingData() const; // Is there something that we have to do? + //bool GetAxisIsHomed(uint8_t axis) const { return axisIsHomed[axis]; } // Not needed on voyage? private: - void doFilePrint(GCodeBuffer* gb); - bool AllMovesAreFinishedAndMoveBufferIsLoaded(); - bool DoCannedCycleMove(bool ce); - bool DoFileCannedCycles(const char* fileName); - bool FileCannedCyclesReturn(); - bool ActOnGcode(GCodeBuffer* gb); - bool SetUpMove(GCodeBuffer* gb); - bool DoDwell(GCodeBuffer *gb); - bool DoHome(char *reply, bool& error); - bool DoSingleZProbeAtPoint(); - bool DoSingleZProbe(); - bool SetSingleZProbeAtAPosition(GCodeBuffer *gb); - bool DoMultipleZProbe(); - bool SetPrintZProbe(GCodeBuffer *gb, char *reply); - bool SetOffsets(GCodeBuffer *gb); - bool SetPositions(GCodeBuffer *gb); - void LoadMoveBufferFromGCode(GCodeBuffer *gb, bool doingG92, bool applyLimits); - bool NoHome() const; - bool Push(); - bool Pop(); - bool DisableDrives(); - bool StandbyHeaters(); - void SetEthernetAddress(GCodeBuffer *gb, int mCode); - void HandleReply(bool error, bool fromLine, const char* reply, char gMOrT, int code, bool resend); - void OpenFileToWrite(const char* directory, const char* fileName, GCodeBuffer *gb); - void WriteGCodeToFile(GCodeBuffer *gb); - bool SendConfigToLine(); - void WriteHTMLToFile(char b, GCodeBuffer *gb); - bool OffsetAxes(GCodeBuffer *gb); + void DoFilePrint(GCodeBuffer* gb); // Get G Codes from a file and print them + bool AllMovesAreFinishedAndMoveBufferIsLoaded(); // Wait for move queue to exhaust and the current position is loaded + bool DoCannedCycleMove(bool ce); // Do a move from an internally programmed canned cycle + bool DoFileCannedCycles(const char* fileName); // Run a GCode macro in a file + bool FileCannedCyclesReturn(); // End a macro + bool ActOnGcode(GCodeBuffer* gb); // Do the G Code + bool SetUpMove(GCodeBuffer* gb); // Set up a new movement + bool DoDwell(GCodeBuffer *gb); // Wait for a bit + bool DoHome(char *reply, bool& error); // Home some axes + bool DoSingleZProbeAtPoint(); // Probe at a given point + bool DoSingleZProbe(); // Probe where we are + bool SetSingleZProbeAtAPosition(GCodeBuffer *gb); // Probes at a given position - see the comment at the head of the function itself + bool DoMultipleZProbe(); // Probes a series of points and sets the bed equation + bool SetPrintZProbe(GCodeBuffer *gb, char *reply); // Either return the probe value, or set its threshold + bool SetOffsets(GCodeBuffer *gb); // Deal with a G10 + bool SetPositions(GCodeBuffer *gb); // Deal with a G92 + void LoadMoveBufferFromGCode(GCodeBuffer *gb, // Set up a move for the Move class + bool doingG92, bool applyLimits); + bool NoHome() const; // Are we homing and not finished? + bool Push(); // Push feedrate etc on the stack + bool Pop(); // Pop feedrate etc + bool DisableDrives(); // Turn the motors off + bool StandbyHeaters(); // Set all heaters to standby temperatures + void SetEthernetAddress(GCodeBuffer *gb, int mCode); // Does what it says + void HandleReply(bool error, bool fromLine, const char* reply, // If the GCode is from the serial interface, reply to it + char gMOrT, int code, bool resend); + void OpenFileToWrite(const char* directory, // Start saving GCodes in a file + const char* fileName, GCodeBuffer *gb); + void WriteGCodeToFile(GCodeBuffer *gb); // Write this GCode into a file + bool SendConfigToLine(); // Deal with M503 + void WriteHTMLToFile(char b, GCodeBuffer *gb); // Save an HTML file (usually to upload a new web interface) + bool OffsetAxes(GCodeBuffer *gb); // Set offsets - deprecated, use G10 + int8_t Heater(int8_t head) const; // Legacy G codes start heaters at 0, but we use 0 for the bed. This sorts that out. - int8_t Heater(int8_t head) const; - Platform* platform; - bool active; - Webserver* webserver; - float dwellTime; - bool dwellWaiting; - GCodeBuffer* webGCode; - GCodeBuffer* fileGCode; - GCodeBuffer* serialGCode; - GCodeBuffer* cannedCycleGCode; - bool moveAvailable; - float moveBuffer[DRIVES+1]; // Last is feed rate - bool checkEndStops; - bool drivesRelative; // All except X, Y and Z - bool axesRelative; // X, Y and Z - bool drivesRelativeStack[STACK]; - bool axesRelativeStack[STACK]; - float feedrateStack[STACK]; - FileStore* fileStack[STACK]; - int8_t stackPointer; - char gCodeLetters[DRIVES + 1]; // Extra is for F - float lastPos[DRIVES - AXES]; // Just needed for relative moves. - float record[DRIVES+1]; - float moveToDo[DRIVES+1]; - bool activeDrive[DRIVES+1]; - bool offSetSet; - float distanceScale; - FileStore* fileBeingPrinted; - FileStore* fileToPrint; - FileStore* fileBeingWritten; - FileStore* configFile; - bool doingCannedCycleFile; - char* eofString; - uint8_t eofStringCounter; - uint8_t eofStringLength; - int8_t selectedHead; - bool homeX; - bool homeY; - bool homeZ; - int8_t homeAxisMoveCount; - float gFeedRate; - int probeCount; - int8_t cannedCycleMoveCount; - bool cannedCycleMoveQueued; - bool zProbesSet; - float longWait; - bool axisIsHomed[3]; // these record which of the axes have been homed + Platform* platform; // The RepRap machine + bool active; // Live and running? + Webserver* webserver; // The webserver class + float dwellTime; // How long a pause for a dwell (seconds)? + bool dwellWaiting; // We are in a dwell + GCodeBuffer* webGCode; // The sources... + GCodeBuffer* fileGCode; // ... + GCodeBuffer* serialGCode; // ... + GCodeBuffer* cannedCycleGCode; // ... of G Codes + bool moveAvailable; // Have we seen a move G Code and set it up? + float moveBuffer[DRIVES+1]; // Move coordinates; last is feed rate + bool checkEndStops; // Should we check them on the next move? + bool drivesRelative; // Are movements relative - all except X, Y and Z + bool axesRelative; // Are movements relative - X, Y and Z + bool drivesRelativeStack[STACK]; // For dealing with Push and Pop + bool axesRelativeStack[STACK]; // For dealing with Push and Pop + float feedrateStack[STACK]; // For dealing with Push and Pop + FileStore* fileStack[STACK]; // For dealing with Push and Pop + int8_t stackPointer; // Push and Pop stack pointer + char gCodeLetters[DRIVES + 1]; // 'X', 'Y' etc. Extra is for F + float lastPos[DRIVES - AXES]; // Just needed for relative moves; i.e. not X, Y and Z + float record[DRIVES+1]; // Temporary store for move positions + float moveToDo[DRIVES+1]; // Where to go set by G1 etc + bool activeDrive[DRIVES+1]; // Is this drive involved in a move? + bool offSetSet; // Are any axis offsets non-zero? + float distanceScale; // MM or inches + FileStore* fileBeingPrinted; // The file being printed at the moment (if any) + FileStore* fileToPrint; // A file to print in the future, or one that has been paused + FileStore* fileBeingWritten; // A file to write G Codes (or sometimes HTML) in + FileStore* configFile; // A file containing a macro + bool doingCannedCycleFile; // Are we executing a macro file? + char* eofString; // What's at the end of an HTML file? + uint8_t eofStringCounter; // Check the... + uint8_t eofStringLength; // ... EoF string as we read. + int8_t selectedHead; // Which extruder is in use + bool homeX; // True to home the X axis this move + bool homeY; // True to home the Y axis this move + bool homeZ; // True to home the Z axis this move + //int8_t homeAxisMoveCount; // Not needed on voyage? + float gFeedRate; // Store for the current feedrate + int probeCount; // Counts multiple probe points + int8_t cannedCycleMoveCount; // Counts through internal (i.e. not macro) canned cycle moves + bool cannedCycleMoveQueued; // True if a canned cycle move has been set + bool zProbesSet; // True if all Z probing is done and we can set the bed equation + float longWait; // Timer for things that happen occasionally (seconds) + bool axisIsHomed[3]; // These record which of the axes have been homed }; //***************************************************************************************************** diff --git a/Heat.cpp b/Heat.cpp index d45253a..259133f 100644 --- a/Heat.cpp +++ b/Heat.cpp @@ -60,7 +60,8 @@ void Heat::Spin() void Heat::Diagnostics() { - platform->Message(HOST_MESSAGE, "Heat Diagnostics:\n"); + platform->Message(HOST_MESSAGE, "Heat Diagnostics:\n"); + // TODO - Put something useful in here } bool Heat::AllHeatersAtSetTemperatures() @@ -107,7 +108,7 @@ void PID::Init() temp_dState = 0.0; badTemperatureCount = 0; temperatureFault = false; - active = false; + active = false; // Default to standby temperature } @@ -135,8 +136,7 @@ void PID::Spin() platform->Message(HOST_MESSAGE, ftoa(scratchString, temperature, 1)); platform->Message(HOST_MESSAGE, "\n"); } - } - else + } else { badTemperatureCount = 0; } @@ -175,6 +175,9 @@ void PID::Spin() lastTemperature = temperature; + // Legacy - old RepRap PID parameters were set to give values in [0, 255] for 1 byte PWM control + // TODO - maybe change them to give [0.0, 1.0]? + if (result < 0.0) result = 0.0; else if (result > 255.0) result = 255.0; result = result/255.0; @@ -182,9 +185,8 @@ void PID::Spin() if(!temperatureFault) platform->SetHeater(heater, result); -#if 0 // debug - char buffer[100]; - snprintf(buffer, ARRAY_SIZE(buffer), "Heat: e=%f, P=%f, I=%f, d=%f, r=%f\n", error, platform->PidKp(heater)*error, temp_iState, temp_dState, result); - platform->Message(HOST_MESSAGE, buffer); -#endif +// char buffer[100]; +// snprintf(buffer, ARRAY_SIZE(buffer), "Heat: e=%f, P=%f, I=%f, d=%f, r=%f\n", error, platform->PidKp(heater)*error, temp_iState, temp_dState, result); +// platform->Message(HOST_MESSAGE, buffer); + } diff --git a/Heat.h b/Heat.h index 5b1127e..dd12e51 100644 --- a/Heat.h +++ b/Heat.h @@ -21,66 +21,76 @@ Licence: GPL #ifndef HEAT_H #define HEAT_H +/** + * This class implements a PID controller for the heaters + */ + class PID { - public: + friend class Heat; + private: + //public: PID(Platform* p, int8_t h); - void Init(); - void Spin(); - void SetActiveTemperature(const float& t); - float GetActiveTemperature(); - void SetStandbyTemperature(const float& t); - float GetStandbyTemperature(); - void Activate(); - void Standby(); - bool Active(); - void ResetFault(); - float GetTemperature(); + void Init(); // (Re)Set everything to start + void Spin(); // Called in a tight loop to keep things running + void SetActiveTemperature(const float& t); // Set the temperature required when working (Celsius) + float GetActiveTemperature(); // Get the active temperature + void SetStandbyTemperature(const float& t); // Set the temperature to use when idle (celsius) + float GetStandbyTemperature(); // Get the idle temperature + void Activate(); // Switch from idle to active + void Standby(); // Switch from active to idle + bool Active(); // Are we active? + void ResetFault(); // Reset a fault condition - only call this if you know what you are doing + float GetTemperature(); // Get the current temperature - private: + // private: - Platform* platform; - float activeTemperature; - float standbyTemperature; - float temperature; - float lastTemperature; - float temp_iState; - float temp_dState; - bool active; - int8_t heater; - int8_t badTemperatureCount; - bool temperatureFault; + Platform* platform; // The instance of the class that is the RepRap hardware + float activeTemperature; // The required active temperature + float standbyTemperature; // The required standby temperature + float temperature; // The current temperature + float lastTemperature; // The previous current temperature + float temp_iState; // The integral PID component + float temp_dState; // The derivative PID component + bool active; // Are we active or standby? + int8_t heater; // The index of our heater + int8_t badTemperatureCount; // Count of sequential dud readings + bool temperatureFault; // Has our heater developed a fault? }; +/** + * The master class that controls all the heaters in the RepRap machine + */ + class Heat { public: Heat(Platform* p, GCodes* g); - void Spin(); - void Init(); - void Exit(); - void SetActiveTemperature(int8_t heater, const float& t); - float GetActiveTemperature(int8_t heater); - void SetStandbyTemperature(int8_t heater, const float& t); - float GetStandbyTemperature(int8_t heater); - void Activate(int8_t heater); - void Standby(int8_t heater); - float GetTemperature(int8_t heater); - void ResetFault(int8_t heater); - bool AllHeatersAtSetTemperatures(); - void Diagnostics(); + void Spin(); // Called in a tight loop to keep everything going + void Init(); // Set everything up + void Exit(); // Shut everything down + void SetActiveTemperature(int8_t heater, const float& t); // Set a heater's active temperature (celsius) + float GetActiveTemperature(int8_t heater); // What is a heater's active temperature? + void SetStandbyTemperature(int8_t heater, const float& t); // Set a heater's standby temperature (celsius) + float GetStandbyTemperature(int8_t heater); // What is a heater's standby temperature? + void Activate(int8_t heater); // Turn on a heater + void Standby(int8_t heater); // Set a heater idle + float GetTemperature(int8_t heater); // Get the temperature of a heater + void ResetFault(int8_t heater); // Reset a heater fault - oly call this if you know what you are doing + bool AllHeatersAtSetTemperatures(); // Is everything at temperature within tolerance? + void Diagnostics(); // Output useful information private: - Platform* platform; - GCodes* gCodes; - bool active; - PID* pids[HEATERS]; - float lastTime; - float longWait; + Platform* platform; // The instance of the RepRap hardware class + GCodes* gCodes; // The instance of the G Code interpreter class + bool active; // Are we active? + PID* pids[HEATERS]; // A PID controller for each heater + float lastTime; // The last time our Spin() was called + float longWait; // Long time for things that happen occasionally }; diff --git a/Move.h b/Move.h index f4126a6..0d09b3a 100644 --- a/Move.h +++ b/Move.h @@ -60,7 +60,12 @@ enum PointCoordinateSet zSet = 4 }; - +/** + * This class implements a look-ahead buffer for moves. It allows colinear + * moves not to decelerate between them, sets velocities at ends and beginnings + * for angled moves, and so on. Entries are joined in a doubly-linked list + * to form a ring buffer. + */ class LookAhead { public: @@ -70,42 +75,45 @@ public: protected: LookAhead(Move* m, Platform* p, LookAhead* n); - void Init(long ep[], float feedRate, float vv, bool ce, int8_t mt); - LookAhead* Next(); - LookAhead* Previous(); - long* MachineEndPoints(); - float MachineToEndPoint(int8_t drive); - static float MachineToEndPoint(int8_t drive, long coord); - static long EndPointToMachine(int8_t drive, float coord); - int8_t GetMovementType(); - float FeedRate(); - float V(); - void SetV(float vv); - void SetFeedRate(float f); - int8_t Processed(); - void SetProcessed(MovementState ms); - void SetDriveCoordinateAndZeroEndSpeed(float a, int8_t drive); - bool CheckEndStops(); - void Release(); + void Init(long ep[], float feedRate, float vv, bool ce, int8_t mt); // Set up this move + LookAhead* Next(); // Next one in the ring + LookAhead* Previous(); // Previous one in the ring + long* MachineEndPoints(); // Endpoints of a move in machine coordinates + float MachineToEndPoint(int8_t drive); // Convert a move endpoint to real mm coordinates + static float MachineToEndPoint(int8_t drive, long coord); // Convert any number to a real coordinate + static long EndPointToMachine(int8_t drive, float coord); // Convert real mm to a machine coordinate + int8_t GetMovementType(); // What sort of move is this? + float FeedRate(); // How fast is the maximum speed for this move + float V(); // The speed at the end of the move + void SetV(float vv); // Set the end speed + void SetFeedRate(float f); // Set the desired feedrate + int8_t Processed(); // Where we are in the look-ahead prediction sequence + void SetProcessed(MovementState ms); // Set where we are the the look ahead processing + void SetDriveCoordinateAndZeroEndSpeed(float a, int8_t drive); // Force an end ppoint and st its speed to stopped + bool CheckEndStops(); // Are we checking endstops on this move? + void Release(); // This move has been processed and executed private: - Move* move; - Platform* platform; - LookAhead* next; - LookAhead* previous; - long endPoint[DRIVES+1]; // Should never use the +1, but safety first - int8_t movementType; - float Cosine(); - bool checkEndStops; - float cosine; - float v; // The feedrate we can actually do - float feedRate; // The requested feedrate - float instantDv; - volatile int8_t processed; + Move* move; // The main movement control class + Platform* platform; // The RepRap machine + LookAhead* next; // Next entry in the ring + LookAhead* previous; // Previous entry in the ring + long endPoint[DRIVES+1]; // Machine coordinates of the endpoint. Should never use the +1, but safety first + int8_t movementType; // XY move, Z move, extruder only etc + float Cosine(); // The angle between the previous move and this one + bool checkEndStops; // Check endstops for this move + float cosine; // Store for the cosine value - the function uses lazy evaluation + float v; // The feedrate we can actually do + float feedRate; // The requested feedrate + float instantDv; // The slowest speed we can move at. > 0 + volatile int8_t processed; // The stage in the look ahead process that this move is at. }; - +/** + * This implements an integer space machine coordinates Bressenham-style DDA to step the drives. + * DDAs are stored in a linked list forming a ring buffer. + */ class DDA { public: @@ -115,80 +123,87 @@ public: protected: DDA(Move* m, Platform* p, DDA* n); - MovementProfile Init(LookAhead* lookAhead, float& u, float& v); - void Start(bool noTest); - void Step(); - bool Active(); - DDA* Next(); - float InstantDv(); + MovementProfile Init(LookAhead* lookAhead, float& u, float& v); // Set up the DDA. Also used experimentally in look ahead. + void Start(bool noTest); // Start executing the DDA. I.e. move the move. + void Step(); // Take one step of the DDA. Called by timed interrupt. + bool Active(); // Is the DDA running? + DDA* Next(); // Next entry in the ring + float InstantDv(); // The lowest speed that may be used private: - MovementProfile AccelerationCalculation(float& u, float& v, MovementProfile result); - void SetXYAcceleration(); - void SetEAcceleration(float eDistance); - Move* move; - Platform* platform; - DDA* next; - LookAhead* myLookAheadEntry; - long counter[DRIVES]; - long delta[DRIVES]; - bool directions[DRIVES]; - long totalSteps; - long stepCount; - bool checkEndStops; - float timeStep; - float velocity; - long stopAStep; - long startDStep; - float distance; - float acceleration; - float instantDv; - volatile bool active; + MovementProfile AccelerationCalculation(float& u, float& v, // Compute acceleration profiles + MovementProfile result); + void SetXYAcceleration(); // Compute an XY acceleration + void SetEAcceleration(float eDistance); // Compute an extruder acceleration + + Move* move; // The main movement control class + Platform* platform; // The RepRap machine + DDA* next; // The next one in the ring + LookAhead* myLookAheadEntry; // The look-ahead entry corresponding to this DDA + long counter[DRIVES]; // Step counters + long delta[DRIVES]; // How far to move each drive + bool directions[DRIVES]; // Forwards or backwards? + long totalSteps; // Total number of steps for this move + long stepCount; // How many steps we have already taken + bool checkEndStops; // Are we checking endstops? + float timeStep; // The current timestep (seconds) + float velocity; // The current velocity + long stopAStep; // The stepcount at which we stop accelerating + long startDStep; // The stepcount at which we start decelerating + float distance; // How long is the move in real distance + float acceleration; // The acceleration to use + float instantDv; // The lowest possible velocity + volatile bool active; // Is the DDA running? }; - +/** + * This is the master movement class. It controls all movement in the machine. + */ class Move { public: Move(Platform* p, GCodes* g); - void Init(); - void Spin(); - void Exit(); - bool GetCurrentState(float m[]); // takes account of all the rings and delays - void LiveCoordinates(float m[]); // Just gives the last point at the end of the last DDA - void Interrupt(); - void InterruptTime(); - bool AllMovesAreFinished(); - void ResumeMoving(); - void DoLookAhead(); - void HitLowStop(int8_t drive, LookAhead* la, DDA* hitDDA); - void HitHighStop(int8_t drive, LookAhead* la, DDA* hitDDA); - void SetPositions(float move[]); - void SetLiveCoordinates(float coords[]); - void SetXBedProbePoint(int index, float x); - void SetYBedProbePoint(int index, float y); - void SetZBedProbePoint(int index, float z); - float xBedProbePoint(int index); - float yBedProbePoint(int index); - float zBedProbePoint(int index); - int NumberOfProbePoints(); - int NumberOfXYProbePoints(); - bool AllProbeCoordinatesSet(int index); - bool XYProbeCoordinatesSet(int index); - void SetZProbing(bool probing); - void SetProbedBedEquation(); - float SecondDegreeTransformZ(float x, float y); - float GetLastProbedZ(); - void SetAxisCompensation(int8_t axis, float tangent); - void SetIdentityTransform(); - void Transform(float move[]); - void InverseTransform(float move[]); - void Diagnostics(); - float ComputeCurrentCoordinate(int8_t drive, LookAhead* la, DDA* runningDDA); - void SetStepHypotenuse(); + void Init(); // Start me up + void Spin(); // Called in a tight loop to keep the class going + void Exit(); // Shut down + bool GetCurrentState(float m[]); // Return the current position if possible. Send false otherwise + void LiveCoordinates(float m[]); // Gives the last point at the end of the last complete DDA + void Interrupt(); // The hardware's (i.e. platform's) interrupt should call this. + void InterruptTime(); // Test function - not used + bool AllMovesAreFinished(); // Is the look-ahead ring empty? Stops more moves being added as well. + void ResumeMoving(); // Allow moves to be added after a call to AllMovesAreFinished() + void DoLookAhead(); // Run the look-ahead procedure + void HitLowStop(int8_t drive, // What to do when a low endstop is hit + LookAhead* la, DDA* hitDDA); + void HitHighStop(int8_t drive, // What to do when a high endstop is hit + LookAhead* la, DDA* hitDDA); + void SetPositions(float move[]); // Force the coordinates to be these + void SetLiveCoordinates(float coords[]); // Force the live coordinates (see above) to be these + void SetXBedProbePoint(int index, float x); // Record the X coordinate of a probe point + void SetYBedProbePoint(int index, float y); // Record the Y coordinate of a probe point + void SetZBedProbePoint(int index, float z); // Record the Z coordinate of a probe point + float xBedProbePoint(int index); // Get the X coordinate of a probe point + float yBedProbePoint(int index); // Get the Y coordinate of a probe point + float zBedProbePoint(int index); // Get the Z coordinate of a probe point + int NumberOfProbePoints(); // How many points to probe have been set? 0 if incomplete + int NumberOfXYProbePoints(); // How many XY coordinates of probe points have been set (Zs may not have been probed yet) + bool AllProbeCoordinatesSet(int index); // XY, and Z all set for this one? + bool XYProbeCoordinatesSet(int index); // Just XY set for this one? + void SetZProbing(bool probing); // Set the Z probe live + void SetProbedBedEquation(); // When we have a full set of probed points, work out the bed's equation + float SecondDegreeTransformZ(float x, float y); // Used for second degree bed equation + float GetLastProbedZ(); // What was the Z when the probe last fired? + void SetAxisCompensation(int8_t axis, float tangent); // Set an axis-pair compensation angle + void SetIdentityTransform(); // Cancel the bed equation; does not reset axis angle compensation + void Transform(float move[]); // Take a position and apply the bed and the axis-angle compensations + void InverseTransform(float move[]); // Go from a transformed point back to user coordinates + void Diagnostics(); // Report useful stuff + float ComputeCurrentCoordinate(int8_t drive,// Turn a DDA value back into a real world coordinate + LookAhead* la, DDA* runningDDA); + void SetStepHypotenuse(); // Set up the hypotenuse lengths for multiple axis steps, like step both X and Y friend class DDA; diff --git a/RemoteSystemsTempFiles/.project b/RemoteSystemsTempFiles/.project new file mode 100644 index 0000000..5447a64 --- /dev/null +++ b/RemoteSystemsTempFiles/.project @@ -0,0 +1,12 @@ + + + RemoteSystemsTempFiles + + + + + + + org.eclipse.rse.ui.remoteSystemsTempNature + +