Exemple #1
0
        public void AssociateFilamentToPrinter(PrinterSerialNumber printer, FilamentSpool spool)
        {
            DisassociateFilamentFromPrinter(printer);
            if (!(spool != null))
            {
                return;
            }

            DisassociateFilamentFromPrinter(spool.filament_uid);
            if (spool.filament_uid == 0U)
            {
                return;
            }

            CurrentFilamentSettings.printerFilamentAssociations.Add(printer, spool.filament_uid);
            for (var index = 0; index < CurrentFilamentSettings.usedFilamentSpools.filament.Count; ++index)
            {
                FilamentSpool other = CurrentFilamentSettings.usedFilamentSpools.filament[index];
                if (spool.Matches(other) && (int)other.filament_uid != (int)spool.filament_uid && FindAssociatedPrinter(other.filament_uid) == PrinterSerialNumber.Undefined)
                {
                    CurrentFilamentSettings.usedFilamentSpools.filament.RemoveAt(index);
                    --index;
                }
            }
            UpdateUsedFilamentSpool(spool);
            SaveSettings();
        }
Exemple #2
0
 public RPC(PrinterSerialNumber serialnumber, Guid lockID, uint callID, string name, params object[] param)
 {
     this.name         = name;
     parameters        = param;
     this.serialnumber = serialnumber;
     this.lockID       = lockID;
     this.callID       = callID;
 }
Exemple #3
0
 public SpoolerMessage(MessageType type, PrinterSerialNumber serialnumber, string message, string pluginID, string state)
 {
     Type         = type;
     SerialNumber = serialnumber;
     Message      = message;
     PlugInID     = pluginID;
     State        = state;
 }
Exemple #4
0
        private void OnSelectedPrinterChanged(PrinterSerialNumber serial_number)
        {
            if (!Enabled || !Visible)
            {
                return;
            }

            CheckPrinterState(m_oSpoolerConnection.SelectedPrinter);
        }
Exemple #5
0
        public void OnSelectedPrinterChanged(PrinterSerialNumber serial_number)
        {
            if (!Visible)
            {
                return;
            }

            CloseWindow();
        }
Exemple #6
0
        public PublicPrinterConnection UnsafeFindPrinterConnection(PrinterSerialNumber serialnumber)
        {
            if (spooler_connection == null || !(spooler_connection is InternalSpoolerConnection))
            {
                return(null);
            }

            return(((InternalSpoolerConnection)spooler_connection).SpoolerServer.GetPrinterConnection(serialnumber));
        }
Exemple #7
0
        private string LockVerifyResultToSpoolerMessage(CommandResult result, PrinterSerialNumber serialnumber, uint callID)
        {
            if (result == CommandResult.Success)
            {
                return(null);
            }

            return(new SpoolerMessage(MessageType.LockResult, serialnumber, callID.ToString("D8") + result.ToString()).Serialize());
        }
Exemple #8
0
        public void DisassociateFilamentFromPrinter(PrinterSerialNumber printer)
        {
            if (!CurrentFilamentSettings.printerFilamentAssociations.ContainsKey(printer))
            {
                return;
            }

            CurrentFilamentSettings.printerFilamentAssociations.Remove(printer);
        }
Exemple #9
0
        private void DisassociateFilamentFromPrinter(uint filamentUID)
        {
            PrinterSerialNumber associatedPrinter = FindAssociatedPrinter(filamentUID);

            if (!(associatedPrinter != PrinterSerialNumber.Undefined))
            {
                return;
            }

            DisassociateFilamentFromPrinter(associatedPrinter);
        }
Exemple #10
0
 internal PrinterConnection GetPrinterConnection(PrinterSerialNumber serialnumber)
 {
     foreach (KeyValuePair <string, PrinterConnection> printer in connectionManager.printers)
     {
         PrinterConnection printerConnection = printer.Value;
         if (printerConnection.PrinterInfo.serial_number == serialnumber)
         {
             return(printerConnection);
         }
     }
     return(null);
 }
Exemple #11
0
        private PrinterSerialNumber FindAssociatedPrinter(uint filamentUID)
        {
            PrinterSerialNumber printerSerialNumber = PrinterSerialNumber.Undefined;

            foreach (var filamentAssociation in CurrentFilamentSettings.printerFilamentAssociations)
            {
                if ((int)filamentAssociation.Value == (int)filamentUID)
                {
                    printerSerialNumber = filamentAssociation.Key;
                }
            }
            return(printerSerialNumber);
        }
Exemple #12
0
        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);
        }
Exemple #13
0
        public Printer GetPrinter(PrinterSerialNumber sn)
        {
            var printer = (Printer)null;

            lock (connected_printers)
            {
                for (var index = 0; index < connected_printers.Count; ++index)
                {
                    if (connected_printers[index].Info.serial_number == sn)
                    {
                        printer = connected_printers[index];
                        break;
                    }
                }
            }
            return(printer);
        }
Exemple #14
0
 private int GetPrinterIndexFromSerialNumber(PrinterSerialNumber sn)
 {
     lock (connected_printers)
     {
         try
         {
             for (var index = 0; index < connected_printers.Count; ++index)
             {
                 if (connected_printers[index].Info.serial_number == sn)
                 {
                     return(index);
                 }
             }
         }
         catch (Exception ex)
         {
             ErrorLogger.LogException("Exception in SpoolerClient.GetPrinterIndexFromSerialNumber " + ex.Message, ex);
         }
     }
     return(-1);
 }
Exemple #15
0
 public SpoolerMessage(string serialization)
 {
     using (var textReader = (TextReader) new StringReader(serialization))
     {
         try
         {
             var spoolerMessage = (SpoolerMessage)SpoolerMessage.ClassSerializer.Deserialize(textReader);
             Type         = spoolerMessage.Type;
             SerialNumber = spoolerMessage.SerialNumber;
             Message      = spoolerMessage.Message;
             State        = spoolerMessage.State;
             PlugInID     = spoolerMessage.PlugInID;
         }
         catch (Exception ex)
         {
             Type         = MessageType.ErrorUndefinedMessage;
             SerialNumber = new PrinterSerialNumber("0");
             Message      = null;
         }
     }
 }
Exemple #16
0
        public PrinterObject GetPrinterBySerialNumber(string serial_number)
        {
            var printerObject = (PrinterObject)null;

            if (string.IsNullOrEmpty(serial_number))
            {
                return(null);
            }

            var printerSerialNumber = new PrinterSerialNumber(serial_number);

            lock (connected_printers)
            {
                foreach (PrinterObject connectedPrinter in connected_printers)
                {
                    if (connectedPrinter.Info.serial_number == printerSerialNumber)
                    {
                        printerObject = connectedPrinter;
                    }
                }
            }
            return(printerObject);
        }
Exemple #17
0
        private void OnUnsavedChangesCallback(PopupMessageBox.PopupResult result, MessageType type, PrinterSerialNumber sn, object user_data)
        {
            var printer = user_data as PrinterObject;

            if (printer == null)
            {
                return;
            }

            if (result == PopupMessageBox.PopupResult.Button1_YesOK)
            {
                ApplyCalibrationSettings(printer, m_ocUnsavedCalibrationValues, true);
            }
            else
            {
                var num = (int)printer.ReleaseLock(null, null);
            }
        }
Exemple #18
0
        private void OrderFilamentCallBack(PopupMessageBox.PopupResult result, MessageType type, PrinterSerialNumber sn, object user_data)
        {
            if (result == PopupMessageBox.PopupResult.Button1_YesOK)
            {
                Process.Start("https://printm3d.com/3d-printer-filaments");
            }

            PrepareToStartPrint();
        }
Exemple #19
0
        private void ContinuePrintCallBack(PopupMessageBox.PopupResult result, MessageType type, PrinterSerialNumber sn, object user_data)
        {
            if (result == PopupMessageBox.PopupResult.Button1_YesOK)
            {
                PrepareToStartPrint();
            }
            else
            {
                PrintDialogWindow.CloseWindow();
                if (CurrentJobDetails.printer == null)
                {
                    return;
                }

                var num = (int)CurrentJobDetails.printer.SendManualGCode(new AsyncCallback(ReleasePrinterAfterCommand), CurrentJobDetails.printer, "M106 S0");
            }
        }
Exemple #20
0
        private void BootLoaderStartup()
        {
            FirmwareDetails firmware = MyPrinterProfile.ProductConstants.FirmwareList['M'];

            if (mInterfaceVersion == BootloaderController.BootloaderInterfaceVersion.V2)
            {
                SetBootloader('M');
            }

            MyPrinterInfo.hardware.machine_type = "The_Micro";
            var eepromMapping = new EEPROMMapping(m_oBootloaderConnection.ReadAllReadableEEPROM(), MyPrinterProfile.EEPROMConstants);
            var flag          = false;
            var str           = "";

            byte[] bytesFromLocation = eepromMapping.GetBytesFromLocation("SerialNumber", 16);
            for (var index = 0; index < 16; ++index)
            {
                if (bytesFromLocation[index] == byte.MaxValue)
                {
                    flag = true;
                }

                str += ((char)bytesFromLocation[index]).ToString();
            }
            if (flag)
            {
                BroadcastServer.BroadcastMessage(new SpoolerMessage(MessageType.UserDefined, MySerialNumber, "There was a major error in your printer. Please reset the printer. If the problem persist, contact M3D.").Serialize());
                Status = PrinterStatus.Error_PrinterNotAlive;
            }
            else
            {
                MySerialNumber = new PrinterSerialNumber(str);
                foreach (IFirstRunUpdater updater in MyPrinterProfile.FirstRunConstants.updater_list)
                {
                    updater.CheckForUpdate(str, eepromMapping.GetAllEEPROMData(), m_oBootloaderConnection, MyPrinterProfile);
                }

                logger.ResetWithSerialNumber(MySerialNumber.ToString());
                LoadPersistantData();
                PersistantDetails.hours_used     = eepromMapping.GetFloat("HoursCounterSpooler");
                HardwareDetails.firmware_version = eepromMapping.GetUInt32("FirmwareVersion");
                PersistantData.RestartOptions restartOptions = PersistantDetails.PopRestartAction();
                SavePersistantData();
                CurrentBootloaderStep = BootloaderController.BootLoaderStep.CheckFirmware;
                if (restartOptions.RestartAction == PersistantData.RestartAction.SetExtruderCurrent)
                {
                    SetExtruderCurrent((ushort)restartOptions.RestartActionParam);
                }
                else if (restartOptions.RestartAction == PersistantData.RestartAction.SetFan)
                {
                    SetFanConstants((FanConstValues.FanType)restartOptions.RestartActionParam);
                }
                else if (restartOptions.RestartAction == PersistantData.RestartAction.ForceStayBootloader)
                {
                    Status = PrinterStatus.Bootloader_Ready;
                    CurrentBootloaderStep = BootloaderController.BootLoaderStep.Waiting;
                }
                else
                {
                    if (restartOptions.RestartAction != PersistantData.RestartAction.ForceUpdateFirmware)
                    {
                        return;
                    }

                    CurrentBootloaderStep = BootloaderController.BootLoaderStep.ForceFirmwareUpdate;
                }
            }
        }
Exemple #21
0
 private void OnSelectedPrinterChanged(PrinterSerialNumber serial_number)
 {
     CheckAccessoriesAvailability(m_oSpoolerConnection.GetPrinterBySerialNumber(serial_number.ToString()));
 }
Exemple #22
0
        public void OnUserSelection(PopupMessageBox.PopupResult result, MessageType type, PrinterSerialNumber sn, object user_data)
        {
            if (result != PopupMessageBox.PopupResult.Button1_YesOK)
            {
                return;
            }

            RemoveFilamentProfile();
        }
Exemple #23
0
        public void OnUserSelection(PopupMessageBox.PopupResult result, MessageType type, PrinterSerialNumber sn, object user_data)
        {
            if (result != PopupMessageBox.PopupResult.Button1_YesOK || type != MessageType.UserDefined)
            {
                return;
            }

            PrinterObject selectedPrinter = spooler_connection.SelectedPrinter;

            spooler_connection.SelectPrinterBySerialNumber(((PrinterInfo)user_data).serial_number.ToString());
            Close();
        }
Exemple #24
0
        public void OnUserSelection(PopupMessageBox.PopupResult result, MessageType type, PrinterSerialNumber sn, object data)
        {
            PrinterObject printerBySerialNumber = GetPrinterBySerialNumber(sn.ToString());

            if (printerBySerialNumber == null || type != MessageType.WarningABSPrintLarge || (printerBySerialNumber == null || !printerBySerialNumber.IsConnected()))
            {
                return;
            }

            if (result == PopupMessageBox.PopupResult.Button1_YesOK)
            {
                var num1 = (int)printerBySerialNumber.ClearCurrentWarning(null, null);
            }
            else
            {
                var num2 = (int)printerBySerialNumber.AbortPrint(null, null);
            }
        }
Exemple #25
0
        private void ContinueCallBack(PopupMessageBox.PopupResult result, MessageType type, PrinterSerialNumber sn, object user_data)
        {
            if (result != PopupMessageBox.PopupResult.Button1_YesOK)
            {
                return;
            }

            ContinuePrint();
        }
Exemple #26
0
        private void AbortCallBack(PopupMessageBox.PopupResult result, MessageType type, PrinterSerialNumber sn, object user_data)
        {
            if (result != PopupMessageBox.PopupResult.Button1_YesOK)
            {
                return;
            }

            if (settings.ShowAllWarnings)
            {
                messagebox.AddMessageToQueue("Aborting print. Please do not unplug your printer while it is aborting. If you unplug your printer, you will have to recalibrate it.");
            }

            var num = (int)AbortPrint(null, null);

            aborted                    = true;
            status_text.Visible        = false;
            remain_text.Visible        = false;
            progress_indicator.Visible = true;
            abort_button.Visible       = false;
        }
Exemple #27
0
 public SpoolerMessage(MessageType type, PrinterSerialNumber serialnumber, string message)
     : this(type, serialnumber, message, "", "")
 {
 }