private void Callback(ButtonWidget button, SpoolerMessage message, PopupMessageBox parentFrame, XMLFrame childFrame, object data) { if (button.ID == 301) { m_bRememberUserDecision = button.Checked; } else { if (button.ID != 101 && button.ID != 102) { return; } parentFrame.CloseCurrent(); if (button.ID == 101) { if (m_bRememberUserDecision) { UpdaterMode = Updater.UpdateSettings.DownloadInstall; } StartInstall(); } else { if (!m_bRememberUserDecision) { return; } UpdaterMode = Updater.UpdateSettings.NoAction; parentFrame.AddMessageToQueue("You can check for future updates in the \"Settings\" menu under \"User Interface Options\".", "Software Update", PopupMessageBox.MessageBoxButtons.OK, null); } } }
private void RemoveModelButtonCallback(ButtonWidget button, SpoolerMessage message, PopupMessageBox parentFrame, XMLFrame childFrame, object data) { if (button.tag == "dontshowcheckbox") { settings.CurrentAppearanceSettings.ShowRemoveModelWarning = !button.Checked; } else { if (button.tag == "Remove") { printerview.RemovePrintableModels(); settings.CurrentAppearanceSettings.UseMultipleModels = false; } else if (button.tag == "Continue") { settings.CurrentAppearanceSettings.UseMultipleModels = true; } if (data is ModelLoadingManager.AsyncModelLoadData state) { IncFilesLoading(); StartLoadModelThread(state); } parentFrame.CloseCurrent(); } }
public void ProcessLoggerMessage(SpoolerMessage message) { var str1 = Base64Convert.Base64Decode(message.Message); if (message.Type == MessageType.LoggingMessage) { lock (general_log) { general_log.Enqueue(message.SerialNumber.ToString() + "::" + str1); log_updated = true; } } else { if (message.Type != MessageType.FullLoggingData) { return; } string[] strArray = str1.Split('\n'); lock (general_log) { general_log.Clear(); foreach (var str2 in strArray) { general_log.Enqueue(message.SerialNumber.ToString() + "::" + str2); } log_updated = true; } } }
private bool ProcessHandshakingPrinter() { if (!DoInitialHandShaking()) { if (!serial_failed_list.ContainsKey(ComPort)) { PrinterConnection.ConnectAttemptData connectAttemptData; connectAttemptData.time = DateTime.Now; connectAttemptData.message_sent = false; serial_failed_list.TryAdd(ComPort, connectAttemptData); } else { if (serial_failed_list.TryGetValue(ComPort, out ConnectAttemptData comparisonValue) && ((DateTime.Now - comparisonValue.time).Seconds > 30 && !comparisonValue.message_sent)) { PrinterConnection.ConnectAttemptData newValue; newValue.time = comparisonValue.time; newValue.message_sent = true; serial_failed_list.TryUpdate(ComPort, newValue, comparisonValue); var spoolerMessage = new SpoolerMessage(MessageType.FirmwareErrorCyclePower, new PrinterSerialNumber("0000000000000000"), "null"); if (broadcastserver != null) { broadcastserver.BroadcastMessage(spoolerMessage.Serialize()); } } } IsAlive = false; } else if (serial_failed_list.ContainsKey(ComPort)) { serial_failed_list.TryRemove(ComPort, out ConnectAttemptData connectAttemptData); } return(IsAlive); }
public void AddMessageToQueue(SpoolerMessage message, PopupMessageBox.MessageBoxButtons buttons, PopupMessageBox.OnUserSelectionDel callback, object data) { lock (threadsync_standardmsgs) { standard_queue.Enqueue(new PopupMessageBox.MessageDataStandard(message, buttons, callback, data)); } }
private void XMLButtonCallback(ButtonWidget button, SpoolerMessage message, PopupMessageBox parentFrame, XMLFrame childFrame, object data) { var childElement = (ButtonWidget)childFrame.FindChildElement(301); if (button.ID == 301) { return; } settings.Settings.miscSettings.FileAssociations.ShowFileAssociationsDialog = !childElement.Checked; switch (button.ID) { case 101: FileAssociations.Set3DFileAssociation(".stl", "STL_M3D_Printer_GUI_file", ExecutablePath, "M3D file (.stl)", IconPath); FileAssociations.Set3DFileAssociation(".obj", "OBJ_M3D_Printer_GUI_file", ExecutablePath, "M3D file (.obj)", IconPath); break; case 102: FileAssociations.Delete3DFileAssociation(".stl", "STL_M3D_Printer_GUI_file"); FileAssociations.Delete3DFileAssociation(".obj", "OBJ_M3D_Printer_GUI_file"); break; } parentFrame.AllowMessages = allow_messages; parentFrame.CloseCurrent(); }
private void PrinterMessageCallback(SpoolerMessage message) { if (current_frame == null || message.Type != MessageType.PrinterTimeout && message.Type != MessageType.BedLocationMustBeCalibrated && (message.Type != MessageType.BedOrientationMustBeCalibrated && message.Type != MessageType.CheckGantryClips) && message.Type != MessageType.PrinterError) { return; } switch ((Manage3DInkMainWindow.PageID)current_frame.ID) { case Manage3DInkMainWindow.PageID.Page0_StartupPage: case Manage3DInkMainWindow.PageID.Page1_HeatingNozzle: case Manage3DInkMainWindow.PageID.Page2_RetractingFilament: case Manage3DInkMainWindow.PageID.Page3_HasRetractedFilament: case Manage3DInkMainWindow.PageID.Page4_InsertNewFilament: case Manage3DInkMainWindow.PageID.Page5_HasFilamentExited: PrinterObject selectedPrinter = GetSelectedPrinter(); if (selectedPrinter == null || !(selectedPrinter.Info.serial_number == message.SerialNumber)) { break; } ResetToStartup(); break; } }
private void TypeMismatchButtonCallback(ButtonWidget button, SpoolerMessage message, PopupMessageBox parentFrame, XMLFrame childFrame, object data) { if (button.tag == "Yes") { if (data is ModelLoadingManager.PrinterViewLoadData data1) { LoadPrinterView(data1); } parentFrame.CloseCurrent(); } else if (button.tag == "No") { parentFrame.CloseCurrent(); } else { if (!(button.tag == "dontshowcheckbox")) { return; } settings.CurrentAppearanceSettings.ShowPrinterMismatchWarning = !button.Checked; } }
public MessageDataXML(SpoolerMessage message, string xmlsource, PopupMessageBox.XMLButtonCallback buttonCallback, object data, ElementStandardDelegate onUpdateCallback, PopupMessageBox.XMLOnShow onShowCallback) { this.message = message; this.xmlsource = xmlsource; this.buttonCallback = buttonCallback; this.data = data; this.onUpdateCallback = onUpdateCallback; this.onShowCallback = onShowCallback; }
public void SetMessageXML(SpoolerMessage message, string message_box_xml) { Sprite.pixel_perfect = true; this.message = message; child_frame.Init(host, message_box_xml, new ButtonCallback(XMLFormButtonCallback)); child_frame.DoOnUpdate = XMLOnUpdateCallback; child_frame.Refresh(); host.SetFocus(child_frame); Sprite.pixel_perfect = false; }
public MessageDataStandard(SpoolerMessage message, string title, PopupMessageBox.MessageBoxButtons buttons, PopupMessageBox.OnUserSelectionDel OnSelectionCallback, object data) { this.message = message; this.buttons = buttons; OnSelection = OnSelectionCallback; this.data = data; this.title = title; custom_button1_text = null; custom_button2_text = null; custom_button3_text = null; }
private void PrinterLoggerCallback(string message, string printer_serial) { if (printer_serial == "Detecting") { message = "Detecting>" + message; printer_serial = "00-00-00-00-00-000-000"; } var spoolerMessage = new SpoolerMessage(MessageType.LoggingMessage, new PrinterSerialNumber(printer_serial), Base64Convert.Base64Encode(message)); lock (logging_queue) { logging_queue.Add(spoolerMessage); } }
public void BroadcastPluginMessage(SpoolerMessage message) { if (message.Type != MessageType.PluginMessage) { return; } if (clientID != Guid.Empty) { BroadcastServer.SendMessageToClient(clientID, message.Serialize()); } else { BroadcastServer.BroadcastMessage(message.Serialize()); } }
private static void ButtonCallback(ButtonWidget button, SpoolerMessage message, PopupMessageBox parentFrame, XMLFrame childFrame, object data) { if (button.ID == 101) { parentFrame.CloseCurrent(); } else { if (button.ID != 102) { return; } UpdateDownloadingDialog.updater.CancelDownloadUpdate(); parentFrame.CloseCurrent(); } }
public void SendMessageToConnectedPrinter(PrinterSerialNumber sn, SpoolerMessage message) { var printerObject = (PrinterObject)null; lock (connected_printers) { foreach (PrinterObject connectedPrinter in connected_printers) { if (connectedPrinter.Info.serial_number == sn) { printerObject = connectedPrinter; break; } } } printerObject?.ProcessSpoolerMessage(message); }
public void OnSpoolerMessage(SpoolerMessage translated_message) { if (spooler_client.ClientCount != 0 || translated_message.Type != MessageType.FirmwareUpdateComplete && translated_message.Type != MessageType.FirmwareUpdateFailed && (translated_message.Type != MessageType.InvalidZ && translated_message.Type != MessageType.ModelOutOfPrintableBounds) && (translated_message.Type != MessageType.UserDefined && translated_message.Type != MessageType.FirmwareErrorCyclePower && (translated_message.Type != MessageType.WarningABSPrintLarge && translated_message.Type != MessageType.BacklashOutOfRange)) && (translated_message.Type != MessageType.BedLocationMustBeCalibrated && translated_message.Type != MessageType.BedOrientationMustBeCalibrated && (translated_message.Type != MessageType.CheckGantryClips && translated_message.Type != MessageType.UnexpectedDisconnect) && (translated_message.Type != MessageType.MultiPointCalibrationNotSupported && translated_message.Type != MessageType.SDPrintIncompatibleFilament && (translated_message.Type != MessageType.SinglePointCalibrationNotSupported && translated_message.Type != MessageType.PowerOutageWhilePrinting)))) { return; } lock (threadsync) { if (queued_messages.Contains(translated_message) || mPrevMessageType == MessageType.BedOrientationMustBeCalibrated && mPrevMessageType == translated_message.Type) { return; } mPrevMessageType = translated_message.Type; queued_messages.Enqueue(translated_message); } }
public string TranslateSpoolerMessage(SpoolerMessage incoming_messsage) { switch (incoming_messsage.Type) { case MessageType.FirmwareUpdateComplete: case MessageType.FirmwareMustBeUpdated: return(Locale.GlobalLocale.T("T_FIRMWARE_UPDATE_COMPLETE")); case MessageType.ResetPrinterConnection: case MessageType.FirmwareErrorCyclePower: return("Your printer is taking longer than usual. " + Locale.GlobalLocale.T("T_CYCLE_POWER")); case MessageType.SDPrintIncompatibleFilament: return(Locale.GlobalLocale.T("T_SDPrint_Incompatible_Filament")); default: return(incoming_messsage.ToString()); } }
private static void XMLButtonCallback(ButtonWidget button, SpoolerMessage message, PopupMessageBox parentFrame, XMLFrame childFrame, object data) { parentFrame.CloseCurrent(); }
public override string OnClientMessage(Guid guid, string message) { try { if (message == "<CloseConnection/>") { if (guid != MyGuid) { RemoveClient(guid); } } else if (message.StartsWith("<RPC")) { var call = new RPCInvoker.RPC(); call.Deserialize(message); var str = (string)null; var obj = (object)null; try { if (call.serialnumber == null) { obj = rpc_invoker.CallMethod(call); } else { PrinterConnection printerConnection = GetPrinterConnection(call.serialnumber); if (printerConnection != null) { if (call.callID != 0U) { if ((int)call.callID == (int)current_processing_id.Value) { return(null); } current_processing_id.Value = call.callID; } CommandResult result; if (call.name == "AcquireLock") { result = printerConnection.AcquireLock(guid); } else if (call.name == "ReleaseLock") { result = printerConnection.ReleaseLock(call.lockID); } else { var flag = true; if (LockExceptionList.Contains(call.name)) { flag = false; } result = printerConnection.VerifyLock(call.lockID); if (result == CommandResult.Failed_PrinterDoesNotHaveLock && call.name == "SendEmergencyStop" && printerConnection.IsWorking) { printerConnection.SendInterrupted(LockVerifyResultToSpoolerMessage(CommandResult.CommandInterruptedByM0, call.serialnumber, 0U)); } if (result == CommandResult.Success || !flag) { obj = rpc_invoker.CallMethod(printerConnection, call); if (obj is CommandResult) { result = (CommandResult)obj; obj = null; } } } if (call.callID != 0U) { printerConnection.CurrentRPC_id.Value = call.callID; } str = LockVerifyResultToSpoolerMessage(result, call.serialnumber, call.callID); } else { str = new SpoolerMessage(MessageType.PrinterNotConnected, call.serialnumber, call.name).Serialize(); } } } catch (Exception ex) { str = new SpoolerMessage(MessageType.RPCError, ex.Message + "::" + call.name).Serialize(); } if (str != null) { return("<SocketBroadcast>" + str + "</SocketBroadcast>"); } if (obj != null) { if (obj is string) { return((string)obj); } } } } catch (Exception ex) { ErrorLogger.LogException("Exception in SpoolerServer.OnClientMessage " + ex.Message, ex); return("FAIL"); } return(null); }
public void AddMessageToQueue(SpoolerMessage message, PopupMessageBox.MessageBoxButtons buttons) { AddMessageToQueue(message, buttons, null); }
public void AddMessageToQueue(SpoolerMessage message, PopupMessageBox.MessageBoxButtons buttons, PopupMessageBox.OnUserSelectionDel callback) { AddMessageToQueue(message, buttons, callback, null); }
private void SetMessageStandard(PopupMessageBox.MessageDataStandard message_details) { Sprite.pixel_perfect = true; child_frame.Init(host, "<?xml version=\"1.0\" encoding=\"utf-16\"?><XMLFrame id=\"1000\" width=\"400\" height=\"200\" center-vertically=\"1\" center-horizontally=\"1\"><ImageWidget id=\"1001\" x=\"0\" y=\"0\" relative-width=\"1.0\" relative-height=\"1.0\" src=\"guicontrols\" texture-u0=\"640\" texture-v0=\"320\" texture-u1=\"704\" texture-v1=\"383\" center-vertically=\"1\" center-horizontally=\"1\" leftbordersize-pixels=\"41\" rightbordersize-pixels=\"8\" minimumwidth=\"64\" topbordersize-pixels=\"35\" bottombordersize-pixels=\"8\" minimumheight=\"64\"></ImageWidget><TextWidget id=\"1002\" x=\"50\" y=\"2\" width=\"298\" height=\"35\" font-size=\"Large\" font-color=\"#FF808080\" alignment=\"Left\">Printer Message</TextWidget><TextWidget id=\"1003\" x=\"14\" y=\"14\" width=\"372\" height=\"150\" font-size=\"Medium\" font-color=\"#FF404040\" alignment=\"Centre\">Warning! Please make sure the print bed is clear. We wouldn't want any accidents.</TextWidget><ButtonWidget id=\"101\" x=\"92\" y=\"-50\" width=\"100\" height=\"32\" font-size=\"Medium\" alignment=\"Centre\" has_focus=\"1\">OK</ButtonWidget><ButtonWidget id=\"102\" x=\"208\" y=\"-50\" width=\"100\" height=\"32\" font-size=\"Medium\" alignment=\"Centre\">Cancel</ButtonWidget><ButtonWidget id=\"103\" x=\"208\" y=\"-50\" width=\"100\" height=\"32\" font-size=\"Medium\" alignment=\"Centre\" visible=\"0\" enabled=\"0\">Custom</ButtonWidget></XMLFrame>", new ButtonCallback(MyButtonCallback)); child_frame.Refresh(); Sprite.pixel_perfect = false; var childElement1 = (TextWidget)FindChildElement(1003); var childElement2 = (ButtonWidget)FindChildElement(101); var childElement3 = (ButtonWidget)FindChildElement(102); var childElement4 = (ButtonWidget)FindChildElement(103); ((TextWidget)FindChildElement(1002)).Text = message_details.title; var childElement5 = (Frame)FindChildElement(1000); message = message_details.message; if (message_details.buttons == PopupMessageBox.MessageBoxButtons.DEFAULT) { switch (message.Type) { case MessageType.PrinterConnected: case MessageType.JobComplete: case MessageType.JobCanceled: case MessageType.JobStarted: case MessageType.PrinterError: case MessageType.PrinterMessage: case MessageType.FirmwareUpdateComplete: case MessageType.FirmwareUpdateFailed: case MessageType.ResetPrinterConnection: case MessageType.UserDefined: case MessageType.RawData: case MessageType.PrinterNotConnected: case MessageType.MicroMotionControllerFailed: case MessageType.ModelOutOfPrintableBounds: case MessageType.IncompatibleSpooler: case MessageType.UnexpectedDisconnect: case MessageType.CantStartJobPrinterBusy: case MessageType.FirmwareMustBeUpdated: case MessageType.FirmwareErrorCyclePower: message_details.buttons = PopupMessageBox.MessageBoxButtons.OK; break; default: message_details.buttons = PopupMessageBox.MessageBoxButtons.OKCANCEL; break; } } if (message_details.buttons == PopupMessageBox.MessageBoxButtons.OK) { childElement4.Visible = false; childElement3.Visible = false; childElement2.SetPosition((childElement5.Width - childElement2.Width) / 2, -50); childElement2.Text = "T_OK"; childElement2.Enabled = true; } else if (message_details.buttons == PopupMessageBox.MessageBoxButtons.OKCANCEL) { childElement2.Text = "T_OK"; childElement3.Text = "T_Cancel"; childElement3.Visible = true; childElement4.Visible = false; childElement2.SetPosition(childElement5.Width / 2 - 108, -50); childElement3.SetPosition(208, -50); childElement2.Enabled = true; childElement3.Enabled = true; } else if (message_details.buttons == PopupMessageBox.MessageBoxButtons.YESNO) { childElement2.Text = "T_Yes"; childElement3.Text = "T_No"; childElement3.Visible = true; childElement4.Visible = false; childElement2.SetPosition(childElement5.Width / 2 - 108, -50); childElement3.SetPosition(208, -50); childElement2.Enabled = true; childElement3.Enabled = true; } else if (message_details.buttons == PopupMessageBox.MessageBoxButtons.CUSTOM) { if (message_details.custom_button1_text != null && message_details.custom_button2_text != null && message_details.custom_button3_text != null) { childElement2.Text = message_details.custom_button1_text; childElement3.Text = message_details.custom_button2_text; childElement4.Text = message_details.custom_button3_text; childElement2.Visible = true; childElement3.Visible = true; childElement4.Visible = true; childElement4.Enabled = true; if (childElement2.Text.Length > 8) { childElement2.Width = 150; childElement2.Height = 72; childElement5.Width += 50; childElement5.Height = 250; childElement1.Width += 50; } if (childElement3.Text.Length > 8) { childElement3.Width = 150; childElement3.Height = 72; childElement5.Width += 70; childElement5.Height = 250; childElement1.Width += 50; } if (childElement4.Text.Length > 8) { childElement4.Width = 150; childElement4.Height = 72; childElement5.Width += 50; childElement5.Height = 250; childElement1.Width += 50; } childElement2.SetPosition(10, -(childElement2.Height + 18)); childElement3.SetPosition(childElement2.X + childElement2.Width + 5, -(childElement3.Height + 18)); childElement4.SetPosition(-(childElement4.Width + 10), -(childElement4.Height + 18)); childElement2.Enabled = true; childElement3.Enabled = true; } else if (message_details.custom_button1_text != null && message_details.custom_button2_text != null) { childElement2.Text = message_details.custom_button1_text; childElement3.Text = message_details.custom_button2_text; childElement3.Visible = true; childElement2.SetPosition(childElement5.Width / 2 - 108, -50); childElement3.SetPosition(208, -50); childElement2.Enabled = true; childElement3.Enabled = true; } else if (message_details.custom_button1_text != null) { childElement3.Visible = false; childElement2.SetPosition((childElement5.Width - childElement2.Width) / 2, -50); childElement2.Text = "T_OK"; childElement2.Enabled = true; } } host.SetFocus(childElement2); childElement1.Text = MessageText; }
public MessageDataStandard(SpoolerMessage message, PopupMessageBox.MessageBoxButtons buttons) : this(message, "Printer Message", buttons, null, null) { }
public static string LocalizedSpoolerMessageString(SpoolerMessage message) { return(SpoolerConnection.LocalizedSpoolerMessageString(message.Type)); }
public MessageDataStandard(SpoolerMessage message, PopupMessageBox.MessageBoxButtons buttons, PopupMessageBox.OnUserSelectionDel OnSelectionCallback, object data) : this(message, "Printer Message", buttons, OnSelectionCallback, data) { }
private void OnReceivedMessage(SpoolerMessage message) { switch (message.Type) { case MessageType.PrinterConnected: informationbox.AddMessageToQueue(SpoolerConnection.LocalizedSpoolerMessageString(message)); break; case MessageType.JobComplete: case MessageType.JobCanceled: case MessageType.PrinterMessage: case MessageType.PrinterTimeout: case MessageType.SinglePointCalibrationNotSupported: case MessageType.MultiPointCalibrationNotSupported: case MessageType.PowerOutageRecovery: informationbox.AddMessageToQueue(SpoolerConnection.LocalizedSpoolerMessageString(message)); break; case MessageType.JobStarted: if (settingsManager.ShowAllWarnings) { messagebox.AddMessageToQueue(new SpoolerMessage(MessageType.UserDefined, "A new job has started. Please do not unplug your 3D printer while it is printing. If you unplug your it while printing, you will have to recalibrate.")); } informationbox.AddMessageToQueue(SpoolerConnection.LocalizedSpoolerMessageString(message) + string.Format(" - {0}", message.Message)); break; case MessageType.PrinterError: case MessageType.FirmwareUpdateFailed: case MessageType.ResetPrinterConnection: case MessageType.MicroMotionControllerFailed: case MessageType.ModelOutOfPrintableBounds: case MessageType.UnexpectedDisconnect: case MessageType.CantStartJobPrinterBusy: case MessageType.FirmwareErrorCyclePower: case MessageType.RPCError: case MessageType.SDPrintIncompatibleFilament: messagebox.AddMessageToQueue(message); break; case MessageType.UserDefined: if (settingsManager.ShowAllWarnings) { messagebox.AddMessageToQueue(message); break; } break; case MessageType.WarningABSPrintLarge: messagebox.AddMessageToQueue(message, PopupMessageBox.MessageBoxButtons.OK, new PopupMessageBox.OnUserSelectionDel(OnUserSelection)); break; case MessageType.IncompatibleSpooler: if (PrintSpoolerClient != null) { var num = (int)PrintSpoolerClient.ForceSpoolerShutdown(); break; } break; case MessageType.LoggingMessage: case MessageType.FullLoggingData: ProcessLoggerMessage(message); break; } if (OnPrinterMessage == null) { return; } try { OnPrinterMessage(message); } catch (Exception ex) { } }
public MessageDataXML(SpoolerMessage message, string xmlsource, PopupMessageBox.XMLButtonCallback buttonCallback, object data) : this(message, xmlsource, buttonCallback, data, null, null) { }
public MessageDataXML(SpoolerMessage message, string xmlsource, PopupMessageBox.XMLButtonCallback buttonCallback, object data, ElementStandardDelegate onUpdateCallback) : this(message, xmlsource, buttonCallback, data, onUpdateCallback, null) { }
public void AddMessageToQueue(SpoolerMessage message) { AddMessageToQueue(message, PopupMessageBox.MessageBoxButtons.DEFAULT, null); }