Added named widget to ManualPrinterControls

Added firmware check to PrinterCommunication
Added event hook to MainSlidePanel for reload of Advanced Controls
This commit is contained in:
Kevin Pope 2014-03-05 12:16:52 -08:00
parent 1ea4162948
commit 5e96cc9b5d
3 changed files with 41 additions and 2 deletions

View file

@ -65,6 +65,7 @@ namespace MatterHackers.MatterControl
public TabPage AboutTabPage;
TextImageButtonFactory advancedControlsButtonFactory = new TextImageButtonFactory();
RGBA_Bytes unselectedTextColor = ActiveTheme.Instance.TabLabelUnselected;
public EventHandler AdvancedControlsLoaded;
GuiWidget LeftPanel
{
@ -211,6 +212,14 @@ namespace MatterHackers.MatterControl
//Empty function used as placeholder
}
void OnAdvancedControlsLoaded()
{
if (AdvancedControlsLoaded != null)
{
AdvancedControlsLoaded(this, null);
}
}
SliceSettingsWidget.UiState sliceSettingsUiState;
void DoChangePanel(object state)
{
@ -220,7 +229,9 @@ namespace MatterHackers.MatterControl
// remove the advance control and replace it with new ones build for the selected printer
int advancedControlsWidgetIndex = RightPanel.GetChildIndex(this.advancedControlsTabControl);
RightPanel.RemoveChild(advancedControlsWidgetIndex);
this.advancedControlsTabControl = CreateNewAdvancedControlsTab(sliceSettingsUiState);
this.advancedControlsTabControl = CreateNewAdvancedControlsTab(sliceSettingsUiState);
RightPanel.AddChild(this.advancedControlsTabControl, advancedControlsWidgetIndex);
// set the selected tab back to the one it was before we replace the control
@ -231,6 +242,8 @@ namespace MatterHackers.MatterControl
RectangleDouble localBounds = this.LocalBounds;
this.LocalBounds = new RectangleDouble(0, 0, this.LocalBounds.Width - 1, 10);
this.LocalBounds = localBounds;
OnAdvancedControlsLoaded();
}
TabControl CreateNewAdvancedControlsTab(SliceSettingsWidget.UiState sliceSettingsUiState)
@ -266,6 +279,8 @@ namespace MatterHackers.MatterControl
advancedControls.AddTab(new SimpleTextTabWidget(new TabPage(sliceSettingsWidget, new LocalizedString("Slice Settings").Translated), 18,
ActiveTheme.Instance.PrimaryTextColor, new RGBA_Bytes(), unselectedTextColor, new RGBA_Bytes()));
return advancedControls;
}

View file

@ -106,6 +106,12 @@ namespace MatterHackers.MatterControl
get { return firmwareType; }
}
string firmwareVersion;
public string FirmwareVersion
{
get { return firmwareVersion; }
}
static PrinterCommunication globalInstance;
string connectionFailureMessage = "Unknown Reason";
@ -124,6 +130,7 @@ namespace MatterHackers.MatterControl
public RootedObjectEventHandler ExtruderTemperatureRead = new RootedObjectEventHandler();
public RootedObjectEventHandler ExtruderTemperatureSet = new RootedObjectEventHandler();
public RootedObjectEventHandler FanSpeedSet = new RootedObjectEventHandler();
public RootedObjectEventHandler FirmwareVersionRead = new RootedObjectEventHandler();
public RootedObjectEventHandler PrintFinished = new RootedObjectEventHandler();
public RootedObjectEventHandler PositionRead = new RootedObjectEventHandler();
public RootedObjectEventHandler ReadLine = new RootedObjectEventHandler();
@ -531,7 +538,7 @@ namespace MatterHackers.MatterControl
{
return CommunicationState == CommunicationStates.Paused;
}
}
}
int NumberOfLinesInCurrentPrint
{
@ -965,6 +972,16 @@ namespace MatterHackers.MatterControl
firmwareType = FirmwareTypes.Sprinter;
}
}
string firmwareVersionReported = "";
if (GCodeFile.GetFirstStringAfter("PROTOCOL_VERSION:", foundStringEventArgs.LineToCheck, " ", ref firmwareVersionReported))
{
//Firmware version was detected and is different
if (firmwareVersionReported != "" && firmwareVersion != firmwareVersionReported)
{
firmwareVersion = firmwareVersionReported;
OnFirmwareVersionRead(null);
}
}
}
public void FoundStart(object sender, EventArgs e)
@ -1076,6 +1093,7 @@ namespace MatterHackers.MatterControl
CommunicationState = CommunicationStates.AttemptingToConnect;
this.stopTryingToConnect = false;
firmwareType = FirmwareTypes.Unknown;
firmwareVersion = null;
if (SerialPortIsAvailable(this.ActivePrinter.ComPort))
{
@ -1244,6 +1262,11 @@ namespace MatterHackers.MatterControl
PrintFinished.CallEvents(this, new PrintItemWrapperEventArgs(this.ActivePrintItem));
}
void OnFirmwareVersionRead(EventArgs e)
{
FirmwareVersionRead.CallEvents(this, e);
}
void OnExtruderTemperatureRead(EventArgs e)
{
ExtruderTemperatureRead.CallEvents(this, e);

View file

@ -198,6 +198,7 @@ namespace MatterHackers.MatterControl
FlowLayoutWidget controlsTopToBottomLayout = new FlowLayoutWidget(FlowDirection.TopToBottom);
controlsTopToBottomLayout.HAnchor = Agg.UI.HAnchor.Max_FitToChildren_ParentWidth;
controlsTopToBottomLayout.VAnchor = Agg.UI.VAnchor.FitToChildren;
controlsTopToBottomLayout.Name = "ManualPrinterControls.ControlsContainer";
controlsTopToBottomLayout.Padding = new BorderDouble(3, 0);