More making printerConnection passed to classes.

This commit is contained in:
Lars Brubaker 2017-09-02 08:36:54 -07:00
parent e60376f065
commit bf3cd0d96e
17 changed files with 211 additions and 233 deletions

View file

@ -40,66 +40,12 @@ using MatterHackers.SerialPortCommunication.FrostedSerial;
namespace MatterHackers.MatterControl.ActionBar
{
public class PrinterSelectEditDropdown : FlowLayoutWidget, IIgnoredPopupChild
{
private PrinterSelector printerSelector;
private GuiWidget printerSelectorAndEditOverlay;
private EventHandler unregisterEvents;
public PrinterSelectEditDropdown()
{
printerSelector = new PrinterSelector()
{
HAnchor = HAnchor.Fit,
Cursor = Cursors.Hand,
Margin = 0
};
this.AddChild(printerSelector);
printerSelectorAndEditOverlay = new GuiWidget()
{
HAnchor = HAnchor.Stretch,
VAnchor = VAnchor.Stretch,
Selectable = false,
};
this.AddChild(printerSelectorAndEditOverlay);
PrinterConnection.Instance.EnableChanged.RegisterEvent(SetVisibleStates, ref unregisterEvents);
PrinterConnection.Instance.CommunicationStateChanged.RegisterEvent(SetVisibleStates, ref unregisterEvents);
}
public override void OnClosed(ClosedEventArgs e)
{
unregisterEvents?.Invoke(this, null);
base.OnClosed(e);
}
private void SetVisibleStates(object sender, EventArgs e)
{
UiThread.RunOnIdle(() =>
{
bool printerIsPrintingOrPaused = PrinterConnection.Instance.PrinterIsPrinting
|| PrinterConnection.Instance.PrinterIsPaused;
printerSelector.Enabled = !printerIsPrintingOrPaused;
if (printerIsPrintingOrPaused)
{
printerSelectorAndEditOverlay.BackgroundColor = new RGBA_Bytes(ActiveTheme.Instance.PrimaryBackgroundColor, 150);
}
else
{
printerSelectorAndEditOverlay.BackgroundColor = new RGBA_Bytes(0, 0, 0, 0);
}
});
}
}
public class ResetButton : GuiWidget
{
private readonly string resetConnectionText = "Reset\nConnection".Localize().ToUpper();
private EventHandler unregisterEvents;
public ResetButton(TextImageButtonFactory buttonFactory)
public ResetButton(PrinterConnection printerConnection, TextImageButtonFactory buttonFactory)
{
this.HAnchor = HAnchor.Stretch | HAnchor.Fit;
this.VAnchor = VAnchor.Fit;
@ -109,7 +55,7 @@ namespace MatterHackers.MatterControl.ActionBar
resetConnectionButton.Visible = ActiveSliceSettings.Instance.GetValue<bool>(SettingsKey.show_reset_connection);
resetConnectionButton.Click += (s, e) =>
{
UiThread.RunOnIdle(PrinterConnection.Instance.RebootBoard);
UiThread.RunOnIdle(printerConnection.RebootBoard);
};
this.AddChild(resetConnectionButton);
@ -229,9 +175,11 @@ namespace MatterHackers.MatterControl.ActionBar
private Button disconnectButton;
private EventHandler unregisterEvents;
PrinterConnection printerConnection;
public PrinterConnectButton(TextImageButtonFactory buttonFactory, BorderDouble margin)
public PrinterConnectButton(PrinterConnection printerConnection, TextImageButtonFactory buttonFactory, BorderDouble margin)
{
this.printerConnection = printerConnection;
this.HAnchor = HAnchor.Left | HAnchor.Fit;
this.VAnchor = VAnchor.Fit;
this.Margin = 0;
@ -258,15 +206,15 @@ namespace MatterHackers.MatterControl.ActionBar
disconnectButton.ToolTipText = "Disconnect from current printer".Localize();
disconnectButton.Click += (s, e) => UiThread.RunOnIdle(() =>
{
if (PrinterConnection.Instance.PrinterIsPrinting)
if (printerConnection.PrinterIsPrinting)
{
StyledMessageBox.ShowMessageBox(
(bool disconnectCancel) =>
{
if (disconnectCancel)
{
PrinterConnection.Instance.Stop(false);
PrinterConnection.Instance.Disable();
printerConnection.Stop(false);
printerConnection.Disable();
}
},
disconnectAndCancelMessage,
@ -277,7 +225,7 @@ namespace MatterHackers.MatterControl.ActionBar
}
else
{
PrinterConnection.Instance.Disable();
printerConnection.Disable();
}
});
this.AddChild(disconnectButton);
@ -293,8 +241,8 @@ namespace MatterHackers.MatterControl.ActionBar
// Bind connect button states to active printer state
this.SetVisibleStates(null, null);
PrinterConnection.Instance.EnableChanged.RegisterEvent(SetVisibleStates, ref unregisterEvents);
PrinterConnection.Instance.CommunicationStateChanged.RegisterEvent(SetVisibleStates, ref unregisterEvents);
printerConnection.EnableChanged.RegisterEvent(SetVisibleStates, ref unregisterEvents);
printerConnection.CommunicationStateChanged.RegisterEvent(SetVisibleStates, ref unregisterEvents);
}
public override void OnClosed(ClosedEventArgs e)
@ -303,7 +251,7 @@ namespace MatterHackers.MatterControl.ActionBar
base.OnClosed(e);
}
static public void UserRequestedConnectToActivePrinter()
public void UserRequestedConnectToActivePrinter()
{
if (ActiveSliceSettings.Instance.PrinterSelected)
{
@ -317,8 +265,8 @@ namespace MatterHackers.MatterControl.ActionBar
else
#endif
{
PrinterConnection.Instance.HaltConnectionThread();
PrinterConnection.Instance.ConnectToActivePrinter(true);
printerConnection.HaltConnectionThread();
printerConnection.ConnectToActivePrinter(true);
}
}
}
@ -332,7 +280,7 @@ namespace MatterHackers.MatterControl.ActionBar
{
UiThread.RunOnIdle(() =>
{
if (PrinterConnection.Instance.PrinterIsConnected)
if (printerConnection.PrinterIsConnected)
{
disconnectButton.Visible = true;
connectButton.Visible = false;
@ -343,7 +291,7 @@ namespace MatterHackers.MatterControl.ActionBar
connectButton.Visible = true;
}
var communicationState = PrinterConnection.Instance.CommunicationState;
var communicationState = printerConnection.CommunicationState;
// Ensure connect buttons are locked while long running processes are executing to prevent duplicate calls into said actions
connectButton.Enabled = ActiveSliceSettings.Instance.PrinterSelected

View file

@ -37,7 +37,7 @@ using MatterHackers.MatterControl.SlicerConfiguration;
namespace MatterHackers.MatterControl
{
public class PrinterSelector : DropDownList
public class PrinterSelector : DropDownList, IIgnoredPopupChild
{
private EventHandler unregisterEvents;
int lastSelectedIndex = -1;
@ -82,6 +82,10 @@ namespace MatterHackers.MatterControl
// Rebuild the droplist any time the Profiles list changes
ProfileManager.ProfilesListChanged.RegisterEvent((s, e) => Rebuild(), ref unregisterEvents);
HAnchor = HAnchor.Fit;
Cursor = Cursors.Hand;
Margin = 0;
}
public void Rebuild()

View file

@ -703,7 +703,7 @@ namespace MatterHackers.MatterControl
PrintLevelingData levelingData = ActiveSliceSettings.Instance.Helpers.GetPrintLevelingData();
if (levelingData?.HasBeenRunAndEnabled() != true)
{
UiThread.RunOnIdle(LevelWizardBase.ShowPrintLevelWizard);
UiThread.RunOnIdle(() => LevelWizardBase.ShowPrintLevelWizard(PrinterConnection.Instance));
}
}
}, ref unregisterEvents);
@ -1337,7 +1337,7 @@ namespace MatterHackers.MatterControl
PrintLevelingData levelingData = ActiveSliceSettings.Instance.Helpers.GetPrintLevelingData();
if (levelingData?.HasBeenRunAndEnabled() != true)
{
LevelWizardBase.ShowPrintLevelWizard();
LevelWizardBase.ShowPrintLevelWizard(PrinterConnection.Instance);
return;
}
}

View file

@ -24,9 +24,11 @@ namespace MatterHackers.MatterControl.ConfigurationPage
private Button runPrintLevelingButton;
private TextImageButtonFactory buttonFactory;
PrinterConnection printerConnection;
public CalibrationSettingsWidget(TextImageButtonFactory buttonFactory, int headingPointSize)
public CalibrationSettingsWidget(PrinterConnection printerConnection, TextImageButtonFactory buttonFactory, int headingPointSize)
{
this.printerConnection = printerConnection;
var mainContainer = new AltGroupBox(new TextWidget("Calibration".Localize(), pointSize: headingPointSize, textColor: ActiveTheme.Instance.SecondaryAccentColor))
{
Margin = new BorderDouble(0),
@ -53,8 +55,8 @@ namespace MatterHackers.MatterControl.ConfigurationPage
container.AddChild(CreateSeparatorLine());
PrinterConnection.Instance.CommunicationStateChanged.RegisterEvent(PrinterStatusChanged, ref unregisterEvents);
PrinterConnection.Instance.EnableChanged.RegisterEvent(PrinterStatusChanged, ref unregisterEvents);
printerConnection.CommunicationStateChanged.RegisterEvent(PrinterStatusChanged, ref unregisterEvents);
printerConnection.EnableChanged.RegisterEvent(PrinterStatusChanged, ref unregisterEvents);
SetVisibleControls();
}
@ -123,7 +125,7 @@ namespace MatterHackers.MatterControl.ConfigurationPage
runPrintLevelingButton.VAnchor = VAnchor.Center;
runPrintLevelingButton.Click += (sender, e) =>
{
UiThread.RunOnIdle(() => LevelWizardBase.ShowPrintLevelWizard(LevelWizardBase.RuningState.UserRequestedCalibration));
UiThread.RunOnIdle(() => LevelWizardBase.ShowPrintLevelWizard(printerConnection, LevelWizardBase.RuningState.UserRequestedCalibration));
};
buttonRow.AddChild(runPrintLevelingButton);
@ -165,8 +167,8 @@ namespace MatterHackers.MatterControl.ConfigurationPage
private void SetVisibleControls()
{
if (!ActiveSliceSettings.Instance.PrinterSelected
|| PrinterConnection.Instance.CommunicationState == CommunicationStates.Printing
|| PrinterConnection.Instance.PrinterIsPaused)
|| printerConnection.CommunicationState == CommunicationStates.Printing
|| printerConnection.PrinterIsPaused)
{
this.SetEnableLevel(DisableableWidget.EnableLevel.Disabled);
runPrintLevelingButton.Enabled = true; // setting this true when the element is disabled makes the colors stay correct
@ -174,7 +176,7 @@ namespace MatterHackers.MatterControl.ConfigurationPage
else
{
this.SetEnableLevel(DisableableWidget.EnableLevel.Enabled);
runPrintLevelingButton.Enabled = PrinterConnection.Instance.PrinterIsConnected;
runPrintLevelingButton.Enabled = printerConnection.PrinterIsConnected;
}
}
}

View file

@ -44,8 +44,8 @@ namespace MatterHackers.MatterControl.ConfigurationPage.PrintLeveling
{
static readonly int numberOfRadialSamples = 12;
public LevelWizard13PointRadial(LevelWizardBase.RuningState runningState)
: base(runningState, 500, 370, (numberOfRadialSamples + 1)*3, numberOfRadialSamples)
public LevelWizard13PointRadial(PrinterConnection printerConnection, LevelWizardBase.RuningState runningState)
: base(printerConnection, runningState, 500, 370, (numberOfRadialSamples + 1)*3, numberOfRadialSamples)
{
}

View file

@ -33,6 +33,7 @@ using MatterHackers.Localizations;
using MatterHackers.MatterControl.SlicerConfiguration;
using MatterHackers.VectorMath;
using System.Collections.Generic;
using MatterHackers.MatterControl.PrinterCommunication;
namespace MatterHackers.MatterControl.ConfigurationPage.PrintLeveling
{
@ -40,7 +41,7 @@ namespace MatterHackers.MatterControl.ConfigurationPage.PrintLeveling
{
private LevelingStrings levelingStrings = new LevelingStrings();
public LevelWizard3Point(LevelWizardBase.RuningState runningState)
public LevelWizard3Point(PrinterConnection printerConnection, LevelWizardBase.RuningState runningState)
: base(500, 370, 9)
{
string printLevelWizardTitle = "MatterControl".Localize();
@ -69,10 +70,10 @@ namespace MatterHackers.MatterControl.ConfigurationPage.PrintLeveling
string filamentSelectionPage = "{0}\n\n{1}".FormatWith(levelingStrings.materialPageInstructions1, levelingStrings.materialPageInstructions2);
printLevelWizard.AddPage(new SelectMaterialPage(levelingStrings.materialStepText, filamentSelectionPage));
}
printLevelWizard.AddPage(new HomePrinterPage(printLevelWizard, levelingStrings.homingPageStepText, levelingStrings.homingPageInstructions));
printLevelWizard.AddPage(new HomePrinterPage(printerConnection, printLevelWizard, levelingStrings.homingPageStepText, levelingStrings.homingPageInstructions));
if (hasHeatedBed)
{
printLevelWizard.AddPage(new WaitForTempPage(printLevelWizard, levelingStrings));
printLevelWizard.AddPage(new WaitForTempPage(printerConnection, printLevelWizard, levelingStrings));
}
string positionLabel = "Position".Localize();
@ -90,17 +91,17 @@ namespace MatterHackers.MatterControl.ConfigurationPage.PrintLeveling
if (ActiveSliceSettings.Instance.Helpers.UseZProbe())
{
var stepString = string.Format("{0} {1} {2} {3}:", levelingStrings.stepTextBeg, i + 1, levelingStrings.stepTextEnd, 3);
printLevelWizard.AddPage(new AutoProbeFeedback(printLevelWizard, new Vector3(probePosition, startProbeHeight), string.Format("{0} {1} {2} - {3}", stepString, positionLabel, i + 1, autoCalibrateLabel), probePositions, i));
printLevelWizard.AddPage(new AutoProbeFeedback(printerConnection, printLevelWizard, new Vector3(probePosition, startProbeHeight), string.Format("{0} {1} {2} - {3}", stepString, positionLabel, i + 1, autoCalibrateLabel), probePositions, i));
}
else
{
printLevelWizard.AddPage(new GetCoarseBedHeight(printLevelWizard, new Vector3(probePosition, startProbeHeight), string.Format("{0} {1} {2} - {3}", levelingStrings.GetStepString(totalSteps), positionLabel, i + 1, lowPrecisionLabel), probePositions, i));
printLevelWizard.AddPage(new GetFineBedHeight(printLevelWizard, string.Format("{0} {1} {2} - {3}", levelingStrings.GetStepString(totalSteps), positionLabel, i + 1, medPrecisionLabel), probePositions, i));
printLevelWizard.AddPage(new GetUltraFineBedHeight(printLevelWizard, string.Format("{0} {1} {2} - {3}", levelingStrings.GetStepString(totalSteps), positionLabel, i + 1, highPrecisionLabel), probePositions, i));
printLevelWizard.AddPage(new GetCoarseBedHeight(printerConnection, printLevelWizard, new Vector3(probePosition, startProbeHeight), string.Format("{0} {1} {2} - {3}", levelingStrings.GetStepString(totalSteps), positionLabel, i + 1, lowPrecisionLabel), probePositions, i));
printLevelWizard.AddPage(new GetFineBedHeight(printerConnection, printLevelWizard, string.Format("{0} {1} {2} - {3}", levelingStrings.GetStepString(totalSteps), positionLabel, i + 1, medPrecisionLabel), probePositions, i));
printLevelWizard.AddPage(new GetUltraFineBedHeight(printerConnection, printLevelWizard, string.Format("{0} {1} {2} - {3}", levelingStrings.GetStepString(totalSteps), positionLabel, i + 1, highPrecisionLabel), probePositions, i));
}
}
printLevelWizard.AddPage(new LastPagelInstructions(printLevelWizard, "Done".Localize(), levelingStrings.DoneInstructions, probePositions));
printLevelWizard.AddPage(new LastPagelInstructions(printerConnection, printLevelWizard, "Done".Localize(), levelingStrings.DoneInstructions, probePositions));
}
public static string ApplyLeveling(string lineBeingSent, Vector3 currentDestination, PrinterMachineInstruction.MovementTypes movementMode)

View file

@ -43,8 +43,8 @@ namespace MatterHackers.MatterControl.ConfigurationPage.PrintLeveling
{
private static readonly int numberOfRadialSamples = 6;
public LevelWizard7PointRadial(LevelWizardBase.RuningState runningState)
: base(runningState, 500, 370, 21, numberOfRadialSamples)
public LevelWizard7PointRadial(PrinterConnection printerConnection, LevelWizardBase.RuningState runningState)
: base(printerConnection, runningState, 500, 370, 21, numberOfRadialSamples)
{
}
@ -95,7 +95,7 @@ namespace MatterHackers.MatterControl.ConfigurationPage.PrintLeveling
private static RadialLevlingFunctions currentLevelingFunctions = null;
private LevelingStrings levelingStrings = new LevelingStrings();
public LevelWizardRadialBase(LevelWizardBase.RuningState runningState, int width, int height, int totalSteps, int numberOfRadialSamples)
public LevelWizardRadialBase(PrinterConnection printerConnection, LevelWizardBase.RuningState runningState, int width, int height, int totalSteps, int numberOfRadialSamples)
: base(width, height, totalSteps)
{
string printLevelWizardTitle = "MatterControl";
@ -125,10 +125,10 @@ namespace MatterHackers.MatterControl.ConfigurationPage.PrintLeveling
string filamentSelectionPage = "{0}\n\n{1}".FormatWith(levelingStrings.materialPageInstructions1, levelingStrings.materialPageInstructions2);
printLevelWizard.AddPage(new SelectMaterialPage(levelingStrings.materialStepText, filamentSelectionPage));
}
printLevelWizard.AddPage(new HomePrinterPage(printLevelWizard, levelingStrings.homingPageStepText, levelingStrings.homingPageInstructions));
printLevelWizard.AddPage(new HomePrinterPage(printerConnection, printLevelWizard, levelingStrings.homingPageStepText, levelingStrings.homingPageInstructions));
if (hasHeatedBed)
{
printLevelWizard.AddPage(new WaitForTempPage(printLevelWizard, levelingStrings));
printLevelWizard.AddPage(new WaitForTempPage(printerConnection, printLevelWizard, levelingStrings));
}
string positionLabel = "Position".Localize();
@ -147,17 +147,17 @@ namespace MatterHackers.MatterControl.ConfigurationPage.PrintLeveling
if (ActiveSliceSettings.Instance.Helpers.UseZProbe())
{
var stepString = string.Format("{0} {1} {2} {3}:", levelingStrings.stepTextBeg, i + 1, levelingStrings.stepTextEnd, numberOfRadialSamples + 1);
printLevelWizard.AddPage(new AutoProbeFeedback(printLevelWizard, new Vector3(probePosition, startProbeHeight), string.Format("{0} {1} {2} - {3}", stepString, positionLabel, i + 1, autoCalibrateLabel), probePositions, i));
printLevelWizard.AddPage(new AutoProbeFeedback(printerConnection, printLevelWizard, new Vector3(probePosition, startProbeHeight), string.Format("{0} {1} {2} - {3}", stepString, positionLabel, i + 1, autoCalibrateLabel), probePositions, i));
}
else
{
printLevelWizard.AddPage(new GetCoarseBedHeight(printLevelWizard, new Vector3(probePosition, startProbeHeight), string.Format("{0} {1} {2} - {3}", levelingStrings.GetStepString(totalSteps), positionLabel, i + 1, lowPrecisionLabel), probePositions, i));
printLevelWizard.AddPage(new GetFineBedHeight(printLevelWizard, string.Format("{0} {1} {2} - {3}", levelingStrings.GetStepString(totalSteps), positionLabel, i + 1, medPrecisionLabel), probePositions, i));
printLevelWizard.AddPage(new GetUltraFineBedHeight(printLevelWizard, string.Format("{0} {1} {2} - {3}", levelingStrings.GetStepString(totalSteps), positionLabel, i + 1, highPrecisionLabel), probePositions, i));
printLevelWizard.AddPage(new GetCoarseBedHeight(printerConnection, printLevelWizard, new Vector3(probePosition, startProbeHeight), string.Format("{0} {1} {2} - {3}", levelingStrings.GetStepString(totalSteps), positionLabel, i + 1, lowPrecisionLabel), probePositions, i));
printLevelWizard.AddPage(new GetFineBedHeight(printerConnection, printLevelWizard, string.Format("{0} {1} {2} - {3}", levelingStrings.GetStepString(totalSteps), positionLabel, i + 1, medPrecisionLabel), probePositions, i));
printLevelWizard.AddPage(new GetUltraFineBedHeight(printerConnection, printLevelWizard, string.Format("{0} {1} {2} - {3}", levelingStrings.GetStepString(totalSteps), positionLabel, i + 1, highPrecisionLabel), probePositions, i));
}
}
printLevelWizard.AddPage(new LastPagelInstructions(printLevelWizard, "Done".Localize(), levelingStrings.DoneInstructions, probePositions));
printLevelWizard.AddPage(new LastPagelInstructions(printerConnection, printLevelWizard, "Done".Localize(), levelingStrings.DoneInstructions, probePositions));
}
public static RadialLevlingFunctions GetLevelingFunctions(int numberOfRadialSamples, PrintLevelingData levelingData, Vector2 bedCenter)

View file

@ -152,7 +152,7 @@ namespace MatterHackers.MatterControl.ConfigurationPage.PrintLeveling
private static SystemWindow printLevelWizardWindow;
public static void ShowPrintLevelWizard()
public static void ShowPrintLevelWizard(PrinterConnection printerConnection)
{
LevelWizardBase.RuningState runningState = LevelWizardBase.RuningState.UserRequestedCalibration;
@ -162,14 +162,14 @@ namespace MatterHackers.MatterControl.ConfigurationPage.PrintLeveling
runningState = LevelWizardBase.RuningState.InitialStartupCalibration;
}
ShowPrintLevelWizard(runningState);
ShowPrintLevelWizard(printerConnection, runningState);
}
public static void ShowPrintLevelWizard(LevelWizardBase.RuningState runningState)
public static void ShowPrintLevelWizard(PrinterConnection printerConnection, LevelWizardBase.RuningState runningState)
{
if (printLevelWizardWindow == null)
{
printLevelWizardWindow = LevelWizardBase.CreateAndShowWizard(runningState);
printLevelWizardWindow = LevelWizardBase.CreateAndShowWizard(printerConnection, runningState);
printLevelWizardWindow.Closed += (sender, e) =>
{
printLevelWizardWindow = null;
@ -191,7 +191,7 @@ namespace MatterHackers.MatterControl.ConfigurationPage.PrintLeveling
}
}
private static LevelWizardBase CreateAndShowWizard(LevelWizardBase.RuningState runningState)
private static LevelWizardBase CreateAndShowWizard(PrinterConnection printerConnection, LevelWizardBase.RuningState runningState)
{
// turn off print leveling
ActiveSliceSettings.Instance.Helpers.DoPrintLeveling(false);
@ -206,19 +206,19 @@ namespace MatterHackers.MatterControl.ConfigurationPage.PrintLeveling
switch (levelingData.CurrentPrinterLevelingSystem)
{
case PrintLevelingData.LevelingSystem.Probe3Points:
printLevelWizardWindow = new LevelWizard3Point(runningState);
printLevelWizardWindow = new LevelWizard3Point(printerConnection, runningState);
break;
case PrintLevelingData.LevelingSystem.Probe7PointRadial:
printLevelWizardWindow = new LevelWizard7PointRadial(runningState);
printLevelWizardWindow = new LevelWizard7PointRadial(printerConnection, runningState);
break;
case PrintLevelingData.LevelingSystem.Probe13PointRadial:
printLevelWizardWindow = new LevelWizard13PointRadial(runningState);
printLevelWizardWindow = new LevelWizard13PointRadial(printerConnection, runningState);
break;
case PrintLevelingData.LevelingSystem.Probe3x3Mesh:
printLevelWizardWindow = new LevelWizard3x3Mesh(runningState);
printLevelWizardWindow = new LevelWizard3x3Mesh(printerConnection, runningState);
break;
default:

View file

@ -43,8 +43,8 @@ namespace MatterHackers.MatterControl.ConfigurationPage.PrintLeveling
{
public class LevelWizard3x3Mesh : LevelWizardMeshBase
{
public LevelWizard3x3Mesh(LevelWizardBase.RuningState runningState)
: base(runningState, 500, 370, 21, 3, 3)
public LevelWizard3x3Mesh(PrinterConnection printerConnection, LevelWizardBase.RuningState runningState)
: base(printerConnection, runningState, 500, 370, 21, 3, 3)
{
}
@ -152,7 +152,7 @@ namespace MatterHackers.MatterControl.ConfigurationPage.PrintLeveling
private static MeshLevlingFunctions currentLevelingFunctions = null;
private LevelingStrings levelingStrings = new LevelingStrings();
public LevelWizardMeshBase(LevelWizardBase.RuningState runningState, int width, int height, int totalSteps, int gridWidth, int gridHeight)
public LevelWizardMeshBase(PrinterConnection printerConnection, LevelWizardBase.RuningState runningState, int width, int height, int totalSteps, int gridWidth, int gridHeight)
: base(width, height, totalSteps)
{
string printLevelWizardTitle = "MatterControl";
@ -183,10 +183,10 @@ namespace MatterHackers.MatterControl.ConfigurationPage.PrintLeveling
string filamentSelectionPage = "{0}\n\n{1}".FormatWith(levelingStrings.materialPageInstructions1, levelingStrings.materialPageInstructions2);
printLevelWizard.AddPage(new SelectMaterialPage(levelingStrings.materialStepText, filamentSelectionPage));
}
printLevelWizard.AddPage(new HomePrinterPage(printLevelWizard, levelingStrings.homingPageStepText, levelingStrings.homingPageInstructions));
printLevelWizard.AddPage(new HomePrinterPage(printerConnection, printLevelWizard, levelingStrings.homingPageStepText, levelingStrings.homingPageInstructions));
if (hasHeatedBed)
{
printLevelWizard.AddPage(new WaitForTempPage(printLevelWizard, levelingStrings));
printLevelWizard.AddPage(new WaitForTempPage(printerConnection, printLevelWizard, levelingStrings));
}
string positionLabel = "Position".Localize();
@ -205,17 +205,17 @@ namespace MatterHackers.MatterControl.ConfigurationPage.PrintLeveling
if (ActiveSliceSettings.Instance.Helpers.UseZProbe())
{
var stepString = string.Format("{0} {1} {2} {3}:", levelingStrings.stepTextBeg, i + 1, levelingStrings.stepTextEnd, probeCount);
printLevelWizard.AddPage(new AutoProbeFeedback(printLevelWizard, new Vector3(probePosition, startProbeHeight), string.Format("{0} {1} {2} - {3}", stepString, positionLabel, i + 1, autoCalibrateLabel), probePositions, i));
printLevelWizard.AddPage(new AutoProbeFeedback(printerConnection, printLevelWizard, new Vector3(probePosition, startProbeHeight), string.Format("{0} {1} {2} - {3}", stepString, positionLabel, i + 1, autoCalibrateLabel), probePositions, i));
}
else
{
printLevelWizard.AddPage(new GetCoarseBedHeight(printLevelWizard, new Vector3(probePosition, startProbeHeight), string.Format("{0} {1} {2} - {3}", levelingStrings.GetStepString(totalSteps), positionLabel, i + 1, lowPrecisionLabel), probePositions, i));
printLevelWizard.AddPage(new GetFineBedHeight(printLevelWizard, string.Format("{0} {1} {2} - {3}", levelingStrings.GetStepString(totalSteps), positionLabel, i + 1, medPrecisionLabel), probePositions, i));
printLevelWizard.AddPage(new GetUltraFineBedHeight(printLevelWizard, string.Format("{0} {1} {2} - {3}", levelingStrings.GetStepString(totalSteps), positionLabel, i + 1, highPrecisionLabel), probePositions, i));
printLevelWizard.AddPage(new GetCoarseBedHeight(printerConnection, printLevelWizard, new Vector3(probePosition, startProbeHeight), string.Format("{0} {1} {2} - {3}", levelingStrings.GetStepString(totalSteps), positionLabel, i + 1, lowPrecisionLabel), probePositions, i));
printLevelWizard.AddPage(new GetFineBedHeight(printerConnection, printLevelWizard, string.Format("{0} {1} {2} - {3}", levelingStrings.GetStepString(totalSteps), positionLabel, i + 1, medPrecisionLabel), probePositions, i));
printLevelWizard.AddPage(new GetUltraFineBedHeight(printerConnection, printLevelWizard, string.Format("{0} {1} {2} - {3}", levelingStrings.GetStepString(totalSteps), positionLabel, i + 1, highPrecisionLabel), probePositions, i));
}
}
printLevelWizard.AddPage(new LastPagelInstructions(printLevelWizard, "Done".Localize(), levelingStrings.DoneInstructions, probePositions));
printLevelWizard.AddPage(new LastPagelInstructions(printerConnection, printLevelWizard, "Done".Localize(), levelingStrings.DoneInstructions, probePositions));
}
public static MeshLevlingFunctions GetLevelingFunctions(int gridWidth, int gridHeight, PrintLevelingData levelingData)

View file

@ -68,10 +68,12 @@ namespace MatterHackers.MatterControl.ConfigurationPage.PrintLeveling
private TextWidget progressBarText;
private TextWidget doneText;
double startingTemp;
PrinterConnection printerConnection;
public WaitForTempPage(WizardControl container, LevelingStrings levelingStrings)
public WaitForTempPage(PrinterConnection printerConnection, WizardControl container, LevelingStrings levelingStrings)
: base(levelingStrings.WaitingForTempPageStepText, levelingStrings.WaitingForTempPageInstructions)
{
this.printerConnection = printerConnection;
this.container = container;
var holder = new FlowLayoutWidget()
{
@ -105,17 +107,17 @@ namespace MatterHackers.MatterControl.ConfigurationPage.PrintLeveling
public override void PageIsBecomingActive()
{
startingTemp = PrinterConnection.Instance.ActualBedTemperature;
startingTemp = printerConnection.ActualBedTemperature;
UiThread.RunOnIdle(ShowTempChangeProgress);
// start heating the bed and show our progress
PrinterConnection.Instance.TargetBedTemperature = ActiveSliceSettings.Instance.GetValue<double>(SettingsKey.bed_temperature);
printerConnection.TargetBedTemperature = ActiveSliceSettings.Instance.GetValue<double>(SettingsKey.bed_temperature);
// hook our parent so we can turn off the bed when we are done with leveling
Parent.Closed += (s, e) =>
{
// Make sure when the wizard closes we turn off the bed heating
PrinterConnection.Instance.TargetBedTemperature = 0;
printerConnection.TargetBedTemperature = 0;
};
if (ActiveSliceSettings.Instance.Helpers.UseZProbe())
@ -138,8 +140,8 @@ namespace MatterHackers.MatterControl.ConfigurationPage.PrintLeveling
private void ShowTempChangeProgress()
{
progressBar.Visible = true;
double targetTemp = PrinterConnection.Instance.TargetBedTemperature;
double actualTemp = PrinterConnection.Instance.ActualBedTemperature;
double targetTemp = printerConnection.TargetBedTemperature;
double actualTemp = printerConnection.ActualBedTemperature;
double totalDelta = targetTemp - startingTemp;
double currentDelta = actualTemp - startingTemp;
double ratioDone = totalDelta != 0 ? (currentDelta / totalDelta) : 1;
@ -171,10 +173,12 @@ namespace MatterHackers.MatterControl.ConfigurationPage.PrintLeveling
{
protected WizardControl container;
private List<ProbePosition> probePositions;
PrinterConnection printerConnection;
public LastPagelInstructions(WizardControl container, string pageDescription, string instructionsText, List<ProbePosition> probePositions)
public LastPagelInstructions(PrinterConnection printerConnection, WizardControl container, string pageDescription, string instructionsText, List<ProbePosition> probePositions)
: base(pageDescription, instructionsText)
{
this.printerConnection = printerConnection;
this.probePositions = probePositions;
this.container = container;
}
@ -196,7 +200,7 @@ namespace MatterHackers.MatterControl.ConfigurationPage.PrintLeveling
if (ActiveSliceSettings.Instance.GetValue<bool>(SettingsKey.z_homes_to_max))
{
PrinterConnection.Instance.HomeAxis(PrinterConnection.Axis.XYZ);
printerConnection.HomeAxis(PrinterConnection.Axis.XYZ);
}
container.backButton.Enabled = false;
@ -210,10 +214,12 @@ namespace MatterHackers.MatterControl.ConfigurationPage.PrintLeveling
protected Vector3 probeStartPosition;
private ProbePosition probePosition;
protected WizardControl container;
PrinterConnection printerConnection;
public GettingThirdPointFor2PointCalibration(WizardControl container, string pageDescription, Vector3 probeStartPosition, string instructionsText, ProbePosition probePosition)
public GettingThirdPointFor2PointCalibration(PrinterConnection printerConnection, WizardControl container, string pageDescription, Vector3 probeStartPosition, string instructionsText, ProbePosition probePosition)
: base(pageDescription, instructionsText)
{
this.printerConnection = printerConnection;
this.probeStartPosition = probeStartPosition;
this.probePosition = probePosition;
this.container = container;
@ -231,14 +237,14 @@ namespace MatterHackers.MatterControl.ConfigurationPage.PrintLeveling
public override void PageIsBecomingActive()
{
// first make sure there is no leftover FinishedProbe event
PrinterConnection.Instance.ReadLine.UnregisterEvent(FinishedProbe, ref unregisterEvents);
printerConnection.ReadLine.UnregisterEvent(FinishedProbe, ref unregisterEvents);
var feedRates = ActiveSliceSettings.Instance.Helpers.ManualMovementSpeeds();
PrinterConnection.Instance.MoveAbsolute(PrinterConnection.Axis.Z, probeStartPosition.z, feedRates.z);
PrinterConnection.Instance.MoveAbsolute(probeStartPosition, feedRates.x);
PrinterConnection.Instance.SendLineToPrinterNow("G30");
PrinterConnection.Instance.ReadLine.RegisterEvent(FinishedProbe, ref unregisterEvents);
printerConnection.MoveAbsolute(PrinterConnection.Axis.Z, probeStartPosition.z, feedRates.z);
printerConnection.MoveAbsolute(probeStartPosition, feedRates.x);
printerConnection.SendLineToPrinterNow("G30");
printerConnection.ReadLine.RegisterEvent(FinishedProbe, ref unregisterEvents);
base.PageIsBecomingActive();
@ -253,12 +259,12 @@ namespace MatterHackers.MatterControl.ConfigurationPage.PrintLeveling
{
if (currentEvent.Data.Contains("endstops hit"))
{
PrinterConnection.Instance.ReadLine.UnregisterEvent(FinishedProbe, ref unregisterEvents);
printerConnection.ReadLine.UnregisterEvent(FinishedProbe, ref unregisterEvents);
int zStringPos = currentEvent.Data.LastIndexOf("Z:");
string zProbeHeight = currentEvent.Data.Substring(zStringPos + 2);
probePosition.position = new Vector3(probeStartPosition.x, probeStartPosition.y, double.Parse(zProbeHeight));
PrinterConnection.Instance.MoveAbsolute(probeStartPosition, ActiveSliceSettings.Instance.Helpers.ManualMovementSpeeds().z);
PrinterConnection.Instance.ReadPosition();
printerConnection.MoveAbsolute(probeStartPosition, ActiveSliceSettings.Instance.Helpers.ManualMovementSpeeds().z);
printerConnection.ReadPosition();
UiThread.RunOnIdle(() => container.nextButton.ClickButton(null));
}
@ -270,10 +276,12 @@ namespace MatterHackers.MatterControl.ConfigurationPage.PrintLeveling
{
protected WizardControl container;
private EventHandler unregisterEvents;
PrinterConnection printerConnection;
public HomePrinterPage(WizardControl container, string pageDescription, string instructionsText)
public HomePrinterPage(PrinterConnection printerConnection, WizardControl container, string pageDescription, string instructionsText)
: base(pageDescription, instructionsText)
{
this.printerConnection = printerConnection;
this.container = container;
}
@ -288,9 +296,9 @@ namespace MatterHackers.MatterControl.ConfigurationPage.PrintLeveling
// make sure we don't have anything left over
unregisterEvents?.Invoke(this, null);
PrinterConnection.Instance.PrintingStateChanged.RegisterEvent(CheckHomeFinished, ref unregisterEvents);
printerConnection.PrintingStateChanged.RegisterEvent(CheckHomeFinished, ref unregisterEvents);
PrinterConnection.Instance.HomeAxis(PrinterConnection.Axis.XYZ);
printerConnection.HomeAxis(PrinterConnection.Axis.XYZ);
if (ActiveSliceSettings.Instance.Helpers.UseZProbe())
{
@ -303,7 +311,7 @@ namespace MatterHackers.MatterControl.ConfigurationPage.PrintLeveling
private void CheckHomeFinished(object sender, EventArgs e)
{
if(PrinterConnection.Instance.DetailedPrintingState != DetailedPrintingState.HomingAxis)
if(printerConnection.DetailedPrintingState != DetailedPrintingState.HomingAxis)
{
unregisterEvents?.Invoke(this, null);
container.nextButton.Enabled = true;
@ -336,14 +344,16 @@ namespace MatterHackers.MatterControl.ConfigurationPage.PrintLeveling
protected JogControls.MoveButton zPlusControl;
protected JogControls.MoveButton zMinusControl;
protected WizardControl container;
protected PrinterConnection printerConnection;
public FindBedHeight(WizardControl container, string pageDescription, string setZHeightCoarseInstruction1, string setZHeightCoarseInstruction2, double moveDistance, List<ProbePosition> probePositions, int probePositionsBeingEditedIndex)
public FindBedHeight(PrinterConnection printerConnection, WizardControl container, string pageDescription, string setZHeightCoarseInstruction1, string setZHeightCoarseInstruction2, double moveDistance, List<ProbePosition> probePositions, int probePositionsBeingEditedIndex)
: base(pageDescription, setZHeightCoarseInstruction1)
{
this.printerConnection = printerConnection;
this.container = container;
this.probePositions = probePositions;
this.moveAmount = moveDistance;
this.lastReportedPosition = PrinterConnection.Instance.LastReportedPosition;
this.lastReportedPosition = printerConnection.LastReportedPosition;
this.probePositionsBeingEditedIndex = probePositionsBeingEditedIndex;
GuiWidget spacer = new GuiWidget(15, 15);
@ -365,7 +375,7 @@ namespace MatterHackers.MatterControl.ConfigurationPage.PrintLeveling
Action<TextWidget> updateUntilClose = null;
updateUntilClose = (tw) =>
{
Vector3 destinationPosition = PrinterConnection.Instance.CurrentDestination;
Vector3 destinationPosition = printerConnection.CurrentDestination;
zPosition.Text = "Z: {0:0.00}".FormatWith(destinationPosition.z);
UiThread.RunOnIdle(() => updateUntilClose(zPosition), .3);
};
@ -390,13 +400,13 @@ namespace MatterHackers.MatterControl.ConfigurationPage.PrintLeveling
public override void PageIsBecomingInactive()
{
this.Parents<SystemWindow>().First().KeyDown -= TopWindowKeyDown;
probePositions[probePositionsBeingEditedIndex].position = PrinterConnection.Instance.LastReportedPosition;
probePositions[probePositionsBeingEditedIndex].position = printerConnection.LastReportedPosition;
base.PageIsBecomingInactive();
}
private FlowLayoutWidget CreateZButtons()
{
FlowLayoutWidget zButtons = JogControls.CreateZButtons(RGBA_Bytes.White, 4, out zPlusControl, out zMinusControl, true);
FlowLayoutWidget zButtons = JogControls.CreateZButtons(printerConnection, RGBA_Bytes.White, 4, out zPlusControl, out zMinusControl, true);
// set these to 0 so the button does not do any movements by default (we will handle the movement on our click callback)
zPlusControl.MoveAmount = 0;
zMinusControl.MoveAmount = 0;
@ -442,14 +452,14 @@ namespace MatterHackers.MatterControl.ConfigurationPage.PrintLeveling
private void zMinusControl_Click(object sender, EventArgs mouseEvent)
{
PrinterConnection.Instance.MoveRelative(PrinterConnection.Axis.Z, -moveAmount, ActiveSliceSettings.Instance.Helpers.ManualMovementSpeeds().z);
PrinterConnection.Instance.ReadPosition();
printerConnection.MoveRelative(PrinterConnection.Axis.Z, -moveAmount, ActiveSliceSettings.Instance.Helpers.ManualMovementSpeeds().z);
printerConnection.ReadPosition();
}
private void zPlusControl_Click(object sender, EventArgs mouseEvent)
{
PrinterConnection.Instance.MoveRelative(PrinterConnection.Axis.Z, moveAmount, ActiveSliceSettings.Instance.Helpers.ManualMovementSpeeds().z);
PrinterConnection.Instance.ReadPosition();
printerConnection.MoveRelative(PrinterConnection.Axis.Z, moveAmount, ActiveSliceSettings.Instance.Helpers.ManualMovementSpeeds().z);
printerConnection.ReadPosition();
}
}
@ -462,16 +472,18 @@ namespace MatterHackers.MatterControl.ConfigurationPage.PrintLeveling
private EventHandler unregisterEvents;
protected Vector3 probeStartPosition;
protected WizardControl container;
PrinterConnection printerConnection;
public AutoProbeFeedback(WizardControl container, Vector3 probeStartPosition, string pageDescription, List<ProbePosition> probePositions, int probePositionsBeingEditedIndex)
public AutoProbeFeedback(PrinterConnection printerConnection, WizardControl container, Vector3 probeStartPosition, string pageDescription, List<ProbePosition> probePositions, int probePositionsBeingEditedIndex)
: base(pageDescription, pageDescription)
{
this.printerConnection = printerConnection;
this.container = container;
this.probeStartPosition = probeStartPosition;
this.probePositions = probePositions;
this.lastReportedPosition = PrinterConnection.Instance.LastReportedPosition;
this.lastReportedPosition = printerConnection.LastReportedPosition;
this.probePositionsBeingEditedIndex = probePositionsBeingEditedIndex;
GuiWidget spacer = new GuiWidget(15, 15);
@ -545,7 +557,7 @@ namespace MatterHackers.MatterControl.ConfigurationPage.PrintLeveling
{
// make sure the servo is deployed
var servoDeploy = ActiveSliceSettings.Instance.GetValue<double>(SettingsKey.z_servo_depolyed_angle);
PrinterConnection.Instance.SendLineToPrinterNow($"M280 P0 S{servoDeploy}");
printerConnection.SendLineToPrinterNow($"M280 P0 S{servoDeploy}");
}
var feedRates = ActiveSliceSettings.Instance.Helpers.ManualMovementSpeeds();
@ -555,32 +567,32 @@ namespace MatterHackers.MatterControl.ConfigurationPage.PrintLeveling
var probeOffset = ActiveSliceSettings.Instance.GetValue<Vector2>(SettingsKey.z_probe_xy_offset);
adjustedProbePosition -= new Vector3(probeOffset);
PrinterConnection.Instance.MoveAbsolute(PrinterConnection.Axis.Z, probeStartPosition.z, feedRates.z);
PrinterConnection.Instance.MoveAbsolute(adjustedProbePosition, feedRates.x);
printerConnection.MoveAbsolute(PrinterConnection.Axis.Z, probeStartPosition.z, feedRates.z);
printerConnection.MoveAbsolute(adjustedProbePosition, feedRates.x);
int numberOfSamples = ActiveSliceSettings.Instance.GetValue<int>(SettingsKey.z_probe_samples);
for (int i = 0; i < numberOfSamples; i++)
{
// probe the current position
PrinterConnection.Instance.SendLineToPrinterNow("G30");
printerConnection.SendLineToPrinterNow("G30");
// raise the probe after each sample
PrinterConnection.Instance.MoveAbsolute(adjustedProbePosition, feedRates.x);
printerConnection.MoveAbsolute(adjustedProbePosition, feedRates.x);
}
container.backButton.Enabled = false;
container.nextButton.Enabled = false;
if (PrinterConnection.Instance.PrinterIsConnected
&& !(PrinterConnection.Instance.PrinterIsPrinting
|| PrinterConnection.Instance.PrinterIsPaused))
if (printerConnection.PrinterIsConnected
&& !(printerConnection.PrinterIsPrinting
|| printerConnection.PrinterIsPaused))
{
PrinterConnection.Instance.ReadLine.RegisterEvent(GetZProbeHeight, ref unregisterEvents);
printerConnection.ReadLine.RegisterEvent(GetZProbeHeight, ref unregisterEvents);
}
}
public override void PageIsBecomingInactive()
{
PrinterConnection.Instance.ReadLine.UnregisterEvent(GetZProbeHeight, ref unregisterEvents);
printerConnection.ReadLine.UnregisterEvent(GetZProbeHeight, ref unregisterEvents);
base.PageIsBecomingInactive();
}
}
@ -598,8 +610,8 @@ namespace MatterHackers.MatterControl.ConfigurationPage.PrintLeveling
protected Vector3 probeStartPosition;
public GetCoarseBedHeight(WizardControl container, Vector3 probeStartPosition, string pageDescription, List<ProbePosition> probePositions, int probePositionsBeingEditedIndex)
: base(container, pageDescription, setZHeightCoarseInstruction1, setZHeightCoarseInstruction2, 1, probePositions, probePositionsBeingEditedIndex)
public GetCoarseBedHeight(PrinterConnection printerConnection, WizardControl container, Vector3 probeStartPosition, string pageDescription, List<ProbePosition> probePositions, int probePositionsBeingEditedIndex)
: base(printerConnection, container, pageDescription, setZHeightCoarseInstruction1, setZHeightCoarseInstruction2, 1, probePositions, probePositionsBeingEditedIndex)
{
this.probeStartPosition = probeStartPosition;
}
@ -610,9 +622,9 @@ namespace MatterHackers.MatterControl.ConfigurationPage.PrintLeveling
var feedRates = ActiveSliceSettings.Instance.Helpers.ManualMovementSpeeds();
PrinterConnection.Instance.MoveAbsolute(PrinterConnection.Axis.Z, probeStartPosition.z, feedRates.z);
PrinterConnection.Instance.MoveAbsolute(probeStartPosition, feedRates.x);
PrinterConnection.Instance.ReadPosition();
printerConnection.MoveAbsolute(PrinterConnection.Axis.Z, probeStartPosition.z, feedRates.z);
printerConnection.MoveAbsolute(probeStartPosition, feedRates.x);
printerConnection.ReadPosition();
container.backButton.Enabled = false;
container.nextButton.Enabled = false;
@ -643,8 +655,8 @@ namespace MatterHackers.MatterControl.ConfigurationPage.PrintLeveling
private static string setZHeightFineInstructionTextThree = "Finally click 'Next' to continue.".Localize();
private static string setZHeightFineInstruction2 = string.Format("\t• {0}\n\t• {1}\n\n{2}", setZHeightFineInstructionTextOne, setZHeightFineInstructionTextTwo, setZHeightFineInstructionTextThree);
public GetFineBedHeight(WizardControl container, string pageDescription, List<ProbePosition> probePositions, int probePositionsBeingEditedIndex)
: base(container, pageDescription, setZHeightFineInstruction1, setZHeightFineInstruction2, .1, probePositions, probePositionsBeingEditedIndex)
public GetFineBedHeight(PrinterConnection printerConnection, WizardControl container, string pageDescription, List<ProbePosition> probePositions, int probePositionsBeingEditedIndex)
: base(printerConnection, container, pageDescription, setZHeightFineInstruction1, setZHeightFineInstruction2, .1, probePositions, probePositionsBeingEditedIndex)
{
}
}
@ -656,8 +668,8 @@ namespace MatterHackers.MatterControl.ConfigurationPage.PrintLeveling
private static string setHeightFineInstructionTextTwo = "Finally click 'Next' to continue.".Localize();
private static string setZHeightFineInstruction2 = string.Format("\t• {0}\n\n\n{1}", setHeightFineInstructionTextOne, setHeightFineInstructionTextTwo);
public GetUltraFineBedHeight(WizardControl container, string pageDescription, List<ProbePosition> probePositions, int probePositionsBeingEditedIndex)
: base(container, pageDescription, setZHeightFineInstruction1, setZHeightFineInstruction2, .02, probePositions, probePositionsBeingEditedIndex)
public GetUltraFineBedHeight(PrinterConnection printerConnection, WizardControl container, string pageDescription, List<ProbePosition> probePositions, int probePositionsBeingEditedIndex)
: base(printerConnection, container, pageDescription, setZHeightFineInstruction1, setZHeightFineInstruction2, .02, probePositions, probePositionsBeingEditedIndex)
{
}
@ -673,7 +685,7 @@ namespace MatterHackers.MatterControl.ConfigurationPage.PrintLeveling
{
if (haveDrawn)
{
PrinterConnection.Instance.MoveRelative(PrinterConnection.Axis.Z, 2, ActiveSliceSettings.Instance.Helpers.ManualMovementSpeeds().z);
printerConnection.MoveRelative(PrinterConnection.Axis.Z, 2, ActiveSliceSettings.Instance.Helpers.ManualMovementSpeeds().z);
}
base.PageIsBecomingInactive();
}

View file

@ -653,7 +653,7 @@ namespace MatterHackers.MatterControl.CustomWidgets
// ZControls
{
var widget = new ZAxisControls(smallScreen)
var widget = new ZAxisControls(printerConnection, smallScreen)
{
Margin = new BorderDouble(left: 50),
VAnchor = VAnchor.Center,
@ -910,7 +910,7 @@ namespace MatterHackers.MatterControl.CustomWidgets
FontSize = 13,
};
public ZAxisControls(bool smallScreen) :
public ZAxisControls(PrinterConnection printerConnection, bool smallScreen) :
base(FlowDirection.TopToBottom)
{
buttonFactory.Colors.Fill.Normal = ActiveTheme.Instance.PrimaryAccentColor;
@ -925,9 +925,9 @@ namespace MatterHackers.MatterControl.CustomWidgets
Margin = new BorderDouble(bottom: 8)
});
this.AddChild(CreateZMoveButton(.1, smallScreen));
this.AddChild(CreateZMoveButton(printerConnection, .1, smallScreen));
this.AddChild(CreateZMoveButton(.02, smallScreen));
this.AddChild(CreateZMoveButton(printerConnection, .02, smallScreen));
this.AddChild(new ZTuningWidget(false)
{
@ -935,9 +935,9 @@ namespace MatterHackers.MatterControl.CustomWidgets
Margin = 10
});
this.AddChild(CreateZMoveButton(-.02, smallScreen));
this.AddChild(CreateZMoveButton(printerConnection, -.02, smallScreen));
this.AddChild(CreateZMoveButton(-.1, smallScreen));
this.AddChild(CreateZMoveButton(printerConnection, -.1, smallScreen));
this.AddChild(new TextWidget("Z-", pointSize: smallScreen ? 12 : 15, textColor: ActiveTheme.Instance.PrimaryTextColor)
{
@ -954,9 +954,9 @@ namespace MatterHackers.MatterControl.CustomWidgets
this.VAnchor = VAnchor.Fit | VAnchor.Top;
}
private Button CreateZMoveButton(double moveAmount, bool smallScreen)
private Button CreateZMoveButton(PrinterConnection printerConnection, double moveAmount, bool smallScreen)
{
var button = buttonFactory.GenerateMoveButton($"{Math.Abs(moveAmount):0.00} mm", PrinterConnection.Axis.Z, MovementControls.ZSpeed);
var button = buttonFactory.GenerateMoveButton(printerConnection, $"{Math.Abs(moveAmount):0.00} mm", PrinterConnection.Axis.Z, MovementControls.ZSpeed);
button.MoveAmount = moveAmount;
button.HAnchor = HAnchor.MaxFitOrStretch;
button.VAnchor = VAnchor.Fit;

View file

@ -102,7 +102,7 @@ namespace MatterHackers.MatterControl.PartPreviewWindow
var existingPrinterSection = CreateSection("Open Existing".Localize() + ":");
var printerSelector = new PrinterSelectEditDropdown()
var printerSelector = new PrinterSelector()
{
Margin = new BorderDouble(left: 15)
};

View file

@ -95,7 +95,7 @@ namespace MatterHackers.MatterControl.PartPreviewWindow
this.HAnchor = HAnchor.Stretch;
this.VAnchor = VAnchor.Fit;
this.AddChild(new PrinterConnectButton(buttonFactory, 0));
this.AddChild(new PrinterConnectButton(printerConnection, buttonFactory, 0));
this.AddChild(new PrintActionRow(printerConnection, buttonFactory, this, defaultMargin));

View file

@ -45,6 +45,7 @@ namespace MatterHackers.MatterControl.PrinterControls
{
public class MovementControls : ControlWidgetBase
{
PrinterConnection printerConnection;
public FlowLayoutWidget manualControlsLayout;
private Button disableMotors;
private EditManualMovementSpeedsWindow editManualMovementSettingsWindow;
@ -103,8 +104,9 @@ namespace MatterHackers.MatterControl.PrinterControls
return container;
}
public MovementControls(int headingPointSize)
public MovementControls(PrinterConnection printerConnection, int headingPointSize)
{
this.printerConnection = printerConnection;
var buttonFactory = ApplicationController.Instance.Theme.DisableableControlBase;
Button editButton;
@ -132,7 +134,7 @@ namespace MatterHackers.MatterControl.PrinterControls
}
};
jogControls = new JogControls(new XYZColors());
jogControls = new JogControls(printerConnection, new XYZColors());
jogControls.Margin = new BorderDouble(0);
manualControlsLayout = new FlowLayoutWidget(FlowDirection.TopToBottom)
@ -215,7 +217,7 @@ namespace MatterHackers.MatterControl.PrinterControls
disableMotors.Margin = new BorderDouble(0);
disableMotors.Click += (s, e) =>
{
PrinterConnection.Instance.ReleaseMotors();
printerConnection.ReleaseMotors();
};
homeButtonBar.AddChild(homeIconImageWidget);
@ -267,7 +269,7 @@ namespace MatterHackers.MatterControl.PrinterControls
});
});
PrinterConnection.Instance.DestinationChanged.RegisterEvent((object sender, EventArgs e) =>
printerConnection.DestinationChanged.RegisterEvent((object sender, EventArgs e) =>
{
reportDestinationChanged.CallEvent();
}, ref unregisterEvents);
@ -275,9 +277,9 @@ namespace MatterHackers.MatterControl.PrinterControls
return hwDestinationBar;
}
private static void SetDestinationPositionText(TextWidget xPosition, TextWidget yPosition, TextWidget zPosition)
private void SetDestinationPositionText(TextWidget xPosition, TextWidget yPosition, TextWidget zPosition)
{
Vector3 destinationPosition = PrinterConnection.Instance.CurrentDestination;
Vector3 destinationPosition = printerConnection.CurrentDestination;
xPosition.Text = "X: {0:0.00}".FormatWith(destinationPosition.x);
yPosition.Text = "Y: {0:0.00}".FormatWith(destinationPosition.y);
zPosition.Text = "Z: {0:0.00}".FormatWith(destinationPosition.z);
@ -285,22 +287,22 @@ namespace MatterHackers.MatterControl.PrinterControls
private void homeAll_Click(object sender, EventArgs mouseEvent)
{
PrinterConnection.Instance.HomeAxis(PrinterConnection.Axis.XYZ);
printerConnection.HomeAxis(PrinterConnection.Axis.XYZ);
}
private void homeXButton_Click(object sender, EventArgs mouseEvent)
{
PrinterConnection.Instance.HomeAxis(PrinterConnection.Axis.X);
printerConnection.HomeAxis(PrinterConnection.Axis.X);
}
private void homeYButton_Click(object sender, EventArgs mouseEvent)
{
PrinterConnection.Instance.HomeAxis(PrinterConnection.Axis.Y);
printerConnection.HomeAxis(PrinterConnection.Axis.Y);
}
private void homeZButton_Click(object sender, EventArgs mouseEvent)
{
PrinterConnection.Instance.HomeAxis(PrinterConnection.Axis.Z);
printerConnection.HomeAxis(PrinterConnection.Axis.Z);
}
}

View file

@ -108,12 +108,12 @@ namespace MatterHackers.MatterControl
actionControlsContainer = new ActionControls();
controlsTopToBottomLayout.AddChild(actionControlsContainer);
movementControlsContainer = new MovementControls(headingPointSize);
movementControlsContainer = new MovementControls(printerConnection, headingPointSize);
controlsTopToBottomLayout.AddChild(movementControlsContainer);
if (!ActiveSliceSettings.Instance.GetValue<bool>(SettingsKey.has_hardware_leveling))
{
calibrationControlsContainer = new CalibrationSettingsWidget(theme.ButtonFactory, headingPointSize);
calibrationControlsContainer = new CalibrationSettingsWidget(printerConnection, theme.ButtonFactory, headingPointSize);
controlsTopToBottomLayout.AddChild(calibrationControlsContainer);
}

View file

@ -60,9 +60,11 @@ namespace MatterHackers.MatterControl
private MoveButton zMinusControl;
private MoveButtonFactory moveButtonFactory = new MoveButtonFactory();
PrinterConnection printerConnection;
public JogControls(XYZColors colors)
public JogControls(PrinterConnection printerConnection, XYZColors colors)
{
this.printerConnection = printerConnection;
moveButtonFactory.Colors.Text.Normal = RGBA_Bytes.Black;
double distanceBetweenControls = 12;
@ -82,7 +84,7 @@ namespace MatterHackers.MatterControl
GuiWidget xyGrid = CreateXYGridControl(colors, distanceBetweenControls, buttonSeparationDistance);
xYZControls.AddChild(xyGrid);
FlowLayoutWidget zButtons = CreateZButtons(XYZColors.zColor, buttonSeparationDistance, out zPlusControl, out zMinusControl);
FlowLayoutWidget zButtons = CreateZButtons(printerConnection, XYZColors.zColor, buttonSeparationDistance, out zPlusControl, out zMinusControl);
zButtons.VAnchor = Agg.UI.VAnchor.Bottom;
xYZControls.AddChild(zButtons);
xYZWithDistance.AddChild(xYZControls);
@ -323,58 +325,58 @@ namespace MatterHackers.MatterControl
int eMoveAmountNegative = -EAxisMoveAmount;
// if we are not printing and on mac or PC
if (PrinterConnection.Instance.CommunicationState != CommunicationStates.Printing
if (printerConnection.CommunicationState != CommunicationStates.Printing
&& (AggContext.OperatingSystem == OSType.Windows || AggContext.OperatingSystem == OSType.Mac))
{
if (e.KeyCode == Keys.Z)
{
if (PrinterConnection.Instance.CommunicationState != CommunicationStates.Printing)
if (printerConnection.CommunicationState != CommunicationStates.Printing)
{
PrinterConnection.Instance.HomeAxis(PrinterConnection.Axis.Z);
printerConnection.HomeAxis(PrinterConnection.Axis.Z);
}
}
else if (e.KeyCode == Keys.Y)
{
PrinterConnection.Instance.HomeAxis(PrinterConnection.Axis.Y);
printerConnection.HomeAxis(PrinterConnection.Axis.Y);
}
else if (e.KeyCode == Keys.X)
{
PrinterConnection.Instance.HomeAxis(PrinterConnection.Axis.X);
printerConnection.HomeAxis(PrinterConnection.Axis.X);
}
if (e.KeyCode == Keys.Home)
{
PrinterConnection.Instance.HomeAxis(PrinterConnection.Axis.XYZ);
printerConnection.HomeAxis(PrinterConnection.Axis.XYZ);
}
else if (e.KeyCode == Keys.Left)
{
PrinterConnection.Instance.MoveRelative(PrinterConnection.Axis.X, moveAmountNegative, MovementControls.XSpeed);
printerConnection.MoveRelative(PrinterConnection.Axis.X, moveAmountNegative, MovementControls.XSpeed);
}
else if (e.KeyCode == Keys.Right)
{
PrinterConnection.Instance.MoveRelative(PrinterConnection.Axis.X, moveAmountPositive, MovementControls.XSpeed);
printerConnection.MoveRelative(PrinterConnection.Axis.X, moveAmountPositive, MovementControls.XSpeed);
}
else if (e.KeyCode == Keys.Up)
{
PrinterConnection.Instance.MoveRelative(PrinterConnection.Axis.Y, moveAmountPositive, MovementControls.YSpeed);
printerConnection.MoveRelative(PrinterConnection.Axis.Y, moveAmountPositive, MovementControls.YSpeed);
}
else if (e.KeyCode == Keys.Down)
{
PrinterConnection.Instance.MoveRelative(PrinterConnection.Axis.Y, moveAmountNegative, MovementControls.YSpeed);
printerConnection.MoveRelative(PrinterConnection.Axis.Y, moveAmountNegative, MovementControls.YSpeed);
}
else if (e.KeyCode == Keys.E)
{
PrinterConnection.Instance.MoveRelative(PrinterConnection.Axis.E, eMoveAmountPositive, MovementControls.EFeedRate(0));
printerConnection.MoveRelative(PrinterConnection.Axis.E, eMoveAmountPositive, MovementControls.EFeedRate(0));
}
else if (e.KeyCode == Keys.R)
{
PrinterConnection.Instance.MoveRelative(PrinterConnection.Axis.E, eMoveAmountNegative, MovementControls.EFeedRate(0));
printerConnection.MoveRelative(PrinterConnection.Axis.E, eMoveAmountNegative, MovementControls.EFeedRate(0));
}
}
if ((AggContext.OperatingSystem == OSType.Windows && e.KeyCode == Keys.PageUp)
|| (AggContext.OperatingSystem == OSType.Mac && e.KeyCode == (Keys.Back | Keys.Cancel)))
{
if (PrinterConnection.Instance.CommunicationState == CommunicationStates.Printing)
if (printerConnection.CommunicationState == CommunicationStates.Printing)
{
var currentZ = ActiveSliceSettings.Instance.GetValue<double>(SettingsKey.baby_step_z_offset);
currentZ += moveAmountPositive;
@ -382,13 +384,13 @@ namespace MatterHackers.MatterControl
}
else
{
PrinterConnection.Instance.MoveRelative(PrinterConnection.Axis.Z, moveAmountPositive, MovementControls.ZSpeed);
printerConnection.MoveRelative(PrinterConnection.Axis.Z, moveAmountPositive, MovementControls.ZSpeed);
}
}
else if ((AggContext.OperatingSystem == OSType.Windows && e.KeyCode == Keys.PageDown)
|| (AggContext.OperatingSystem == OSType.Mac && e.KeyCode == Keys.Clear))
{
if (PrinterConnection.Instance.CommunicationState == CommunicationStates.Printing)
if (printerConnection.CommunicationState == CommunicationStates.Printing)
{
var currentZ = ActiveSliceSettings.Instance.GetValue<double>(SettingsKey.baby_step_z_offset);
currentZ += moveAmountNegative;
@ -396,7 +398,7 @@ namespace MatterHackers.MatterControl
}
else
{
PrinterConnection.Instance.MoveRelative(PrinterConnection.Axis.Z, moveAmountNegative, MovementControls.ZSpeed);
printerConnection.MoveRelative(PrinterConnection.Axis.Z, moveAmountNegative, MovementControls.ZSpeed);
}
}
}
@ -412,7 +414,7 @@ namespace MatterHackers.MatterControl
if (extruderCount == 1)
{
ExtrudeButton eMinusControl = CreateExtrudeButton("E-", MovementControls.EFeedRate(0), 0, moveButtonFactory);
ExtrudeButton eMinusControl = CreateExtrudeButton(printerConnection, "E-", MovementControls.EFeedRate(0), 0, moveButtonFactory);
eMinusControl.Margin = extrusionMargin;
eMinusControl.ToolTipText = "Retract filament".Localize();
eMinusButtonAndText.AddChild(eMinusControl);
@ -422,7 +424,7 @@ namespace MatterHackers.MatterControl
{
for (int i = 0; i < extruderCount; i++)
{
ExtrudeButton eMinusControl = CreateExtrudeButton($"E{i + 1}-", MovementControls.EFeedRate(0), i, moveButtonFactory);
ExtrudeButton eMinusControl = CreateExtrudeButton(printerConnection, $"E{i + 1}-", MovementControls.EFeedRate(0), i, moveButtonFactory);
eMinusControl.ToolTipText = "Retract filament".Localize();
eMinusControl.Margin = extrusionMargin;
eMinusButtonAndText.AddChild(eMinusControl);
@ -458,7 +460,7 @@ namespace MatterHackers.MatterControl
FlowLayoutWidget ePlusButtonAndText = new FlowLayoutWidget();
if (extruderCount == 1)
{
ExtrudeButton ePlusControl = CreateExtrudeButton("E+", MovementControls.EFeedRate(0), 0, moveButtonFactory);
ExtrudeButton ePlusControl = CreateExtrudeButton(printerConnection, "E+", MovementControls.EFeedRate(0), 0, moveButtonFactory);
ePlusControl.Margin = extrusionMargin;
ePlusControl.ToolTipText = "Extrude filament".Localize();
ePlusButtonAndText.AddChild(ePlusControl);
@ -468,7 +470,7 @@ namespace MatterHackers.MatterControl
{
for (int i = 0; i < extruderCount; i++)
{
ExtrudeButton ePlusControl = CreateExtrudeButton($"E{i + 1}+", MovementControls.EFeedRate(0), i, moveButtonFactory);
ExtrudeButton ePlusControl = CreateExtrudeButton(printerConnection, $"E{i + 1}+", MovementControls.EFeedRate(0), i, moveButtonFactory);
ePlusControl.Margin = extrusionMargin;
ePlusControl.ToolTipText = "Extrude filament".Localize();
ePlusButtonAndText.AddChild(ePlusControl);
@ -527,9 +529,9 @@ namespace MatterHackers.MatterControl
return eButtons;
}
private static MoveButton CreateMoveButton(string label, PrinterConnection.Axis axis, double moveSpeed, bool levelingButtons, MoveButtonFactory buttonFactory)
private static MoveButton CreateMoveButton(PrinterConnection printerConnection, string label, PrinterConnection.Axis axis, double moveSpeed, bool levelingButtons, MoveButtonFactory buttonFactory)
{
var button = buttonFactory.GenerateMoveButton(label, axis, moveSpeed);
var button = buttonFactory.GenerateMoveButton(printerConnection, label, axis, moveSpeed);
button.VAnchor = VAnchor.Absolute;
button.HAnchor = HAnchor.Absolute;
button.Height = (levelingButtons ? 45 : 40) * GuiWidget.DeviceScale;
@ -538,16 +540,16 @@ namespace MatterHackers.MatterControl
return button;
}
private static ExtrudeButton CreateExtrudeButton(string label, double moveSpeed, int extruderNumber, MoveButtonFactory buttonFactory = null)
private static ExtrudeButton CreateExtrudeButton(PrinterConnection printerConnection, string label, double moveSpeed, int extruderNumber, MoveButtonFactory buttonFactory = null)
{
var button = buttonFactory.GenerateExtrudeButton(label, moveSpeed, extruderNumber);
var button = buttonFactory.GenerateExtrudeButton(printerConnection, label, moveSpeed, extruderNumber);
button.Height = 40 * GuiWidget.DeviceScale;
button.Width = 40 * GuiWidget.DeviceScale;
return button;
}
public static FlowLayoutWidget CreateZButtons(RGBA_Bytes color, double buttonSeparationDistance,
public static FlowLayoutWidget CreateZButtons(PrinterConnection printerConnection, RGBA_Bytes color, double buttonSeparationDistance,
out MoveButton zPlusControl, out MoveButton zMinusControl, bool levelingButtons = false)
{
FlowLayoutWidget zButtons = new FlowLayoutWidget(FlowDirection.TopToBottom);
@ -555,7 +557,7 @@ namespace MatterHackers.MatterControl
MoveButtonFactory moveButtonFactory = new MoveButtonFactory();
moveButtonFactory.Colors.Fill.Normal = color;
zPlusControl = CreateMoveButton("Z+", PrinterConnection.Axis.Z, MovementControls.ZSpeed, levelingButtons, moveButtonFactory);
zPlusControl = CreateMoveButton(printerConnection, "Z+", PrinterConnection.Axis.Z, MovementControls.ZSpeed, levelingButtons, moveButtonFactory);
zPlusControl.Name = "Move Z positive".Localize();
zPlusControl.ToolTipText = "Move Z positive".Localize();
zButtons.AddChild(zPlusControl);
@ -565,7 +567,7 @@ namespace MatterHackers.MatterControl
spacer.BackgroundColor = XYZColors.zColor;
zButtons.AddChild(spacer);
zMinusControl = CreateMoveButton("Z-", PrinterConnection.Axis.Z, MovementControls.ZSpeed, levelingButtons, moveButtonFactory);
zMinusControl = CreateMoveButton(printerConnection, "Z-", PrinterConnection.Axis.Z, MovementControls.ZSpeed, levelingButtons, moveButtonFactory);
zMinusControl.ToolTipText = "Move Z negative".Localize();
zButtons.AddChild(zMinusControl);
}
@ -583,7 +585,7 @@ namespace MatterHackers.MatterControl
xButtons.HAnchor |= Agg.UI.HAnchor.Center;
xButtons.VAnchor |= Agg.UI.VAnchor.Center;
xMinusControl = CreateMoveButton("X-", PrinterConnection.Axis.X, MovementControls.XSpeed, false, moveButtonFactory);
xMinusControl = CreateMoveButton(printerConnection, "X-", PrinterConnection.Axis.X, MovementControls.XSpeed, false, moveButtonFactory);
xMinusControl.ToolTipText = "Move X negative".Localize();
xButtons.AddChild(xMinusControl);
@ -592,7 +594,7 @@ namespace MatterHackers.MatterControl
spacer.BackgroundColor = XYZColors.xColor;
xButtons.AddChild(spacer);
xPlusControl = CreateMoveButton("X+", PrinterConnection.Axis.X, MovementControls.XSpeed, false, moveButtonFactory);
xPlusControl = CreateMoveButton(printerConnection, "X+", PrinterConnection.Axis.X, MovementControls.XSpeed, false, moveButtonFactory);
xPlusControl.ToolTipText = "Move X positive".Localize();
xButtons.AddChild(xPlusControl);
}
@ -603,7 +605,7 @@ namespace MatterHackers.MatterControl
moveButtonFactory.Colors.Fill.Normal = XYZColors.yColor;
yButtons.HAnchor |= Agg.UI.HAnchor.Center;
yButtons.VAnchor |= Agg.UI.VAnchor.Center;
yPlusControl = CreateMoveButton("Y+", PrinterConnection.Axis.Y, MovementControls.YSpeed, false, moveButtonFactory);
yPlusControl = CreateMoveButton(printerConnection, "Y+", PrinterConnection.Axis.Y, MovementControls.YSpeed, false, moveButtonFactory);
yPlusControl.ToolTipText = "Move Y positive".Localize();
yButtons.AddChild(yPlusControl);
@ -612,7 +614,7 @@ namespace MatterHackers.MatterControl
spacer.BackgroundColor = XYZColors.yColor;
yButtons.AddChild(spacer);
yMinusControl = CreateMoveButton("Y-", PrinterConnection.Axis.Y, MovementControls.YSpeed, false, moveButtonFactory);
yMinusControl = CreateMoveButton(printerConnection, "Y-", PrinterConnection.Axis.Y, MovementControls.YSpeed, false, moveButtonFactory);
yMinusControl.ToolTipText = "Move Y negative".Localize();
yButtons.AddChild(yMinusControl);
}
@ -633,10 +635,12 @@ namespace MatterHackers.MatterControl
public double MoveAmount = 10;
private double movementFeedRate;
PrinterConnection printerConnection;
public MoveButton(double x, double y, GuiWidget buttonView, PrinterConnection.Axis axis, double movementFeedRate)
public MoveButton(PrinterConnection printerConnection, double x, double y, GuiWidget buttonView, PrinterConnection.Axis axis, double movementFeedRate)
: base(x, y, buttonView)
{
this.printerConnection = printerConnection;
this.moveAxis = axis;
this.movementFeedRate = movementFeedRate;
@ -644,7 +648,7 @@ namespace MatterHackers.MatterControl
{
MoveButton moveButton = (MoveButton)s;
if (PrinterConnection.Instance.CommunicationState == CommunicationStates.Printing)
if (printerConnection.CommunicationState == CommunicationStates.Printing)
{
if (moveAxis == PrinterConnection.Axis.Z) // only works on z
{
@ -655,7 +659,7 @@ namespace MatterHackers.MatterControl
}
else
{
PrinterConnection.Instance.MoveRelative(this.moveAxis, this.MoveAmount, movementFeedRate);
printerConnection.MoveRelative(this.moveAxis, this.MoveAmount, movementFeedRate);
}
};
}
@ -668,10 +672,12 @@ namespace MatterHackers.MatterControl
private double movementFeedRate;
public int ExtruderNumber;
PrinterConnection printerConnection;
public ExtrudeButton(double x, double y, GuiWidget buttonView, double movementFeedRate, int extruderNumber)
public ExtrudeButton(PrinterConnection printerConnection, double x, double y, GuiWidget buttonView, double movementFeedRate, int extruderNumber)
: base(x, y, buttonView)
{
this.printerConnection = printerConnection;
this.ExtruderNumber = extruderNumber;
this.movementFeedRate = movementFeedRate;
}
@ -681,7 +687,7 @@ namespace MatterHackers.MatterControl
base.OnClick(mouseEvent);
//Add more fancy movement here
PrinterConnection.Instance.MoveExtruderRelative(MoveAmount, movementFeedRate, ExtruderNumber);
printerConnection.MoveExtruderRelative(MoveAmount, movementFeedRate, ExtruderNumber);
}
}
@ -774,20 +780,20 @@ namespace MatterHackers.MatterControl
public double BorderWidth { get; set; } = 1;
public MoveButton GenerateMoveButton(string label, PrinterConnection.Axis axis, double movementFeedRate)
public MoveButton GenerateMoveButton(PrinterConnection printerConnection, string label, PrinterConnection.Axis axis, double movementFeedRate)
{
//Create button based on view container widget
return new MoveButton(0, 0, GetButtonView(label), axis, movementFeedRate)
return new MoveButton(printerConnection, 0, 0, GetButtonView(label), axis, movementFeedRate)
{
Margin = 0,
Padding = 0
};
}
public ExtrudeButton GenerateExtrudeButton(string label, double movementFeedRate, int extruderNumber)
public ExtrudeButton GenerateExtrudeButton(PrinterConnection printerConnection, string label, double movementFeedRate, int extruderNumber)
{
//Create button based on view container widget
return new ExtrudeButton(0, 0, GetButtonView(label), movementFeedRate, extruderNumber)
return new ExtrudeButton(printerConnection, 0, 0, GetButtonView(label), movementFeedRate, extruderNumber)
{
Margin = 0,
Padding = 0

View file

@ -4504,3 +4504,6 @@ Translated:Waiting for the bed to heat up.
English:This will improve the accuracy of print leveling.
Translated:This will improve the accuracy of print leveling.
English:Running Macro
Translated:Running Macro