예제 #1
0
        public void RemoveCustomTemperature(FilamentSpool.TypeEnum type, FilamentConstants.ColorsEnum color)
        {
            var key = new FilamentProfile.TypeColorKey(type, color);

            if (!custom_filament_values.ContainsKey(key))
            {
                return;
            }

            custom_filament_values.TryRemove(key, out FilamentProfile.CustomOptions customOptions);
        }
예제 #2
0
        public void AddCustomTemperature(FilamentSpool.TypeEnum type, FilamentConstants.ColorsEnum color, int temperature)
        {
            var key = new FilamentProfile.TypeColorKey(type, color);

            FilamentProfile.CustomOptions customOptions;
            customOptions.temperature = temperature;
            if (custom_filament_values.ContainsKey(key))
            {
                custom_filament_values[key] = customOptions;
            }
            else
            {
                custom_filament_values.TryAdd(key, customOptions);
            }
        }
예제 #3
0
        public void CheckUpdatedFilamentProfile(FilamentProfile.TypeColorKey key, FilamentProfile.CustomOptions new_data)
        {
            try
            {
                if (key.type == FilamentSpool.TypeEnum.NoFilament)
                {
                    return;
                }

                foreach (Printer printer in PrintSpoolerClient)
                {
                    FilamentSpool currentFilament = printer.GetCurrentFilament();
                    if (currentFilament != null && currentFilament.filament_type != FilamentSpool.TypeEnum.NoFilament && (currentFilament.filament_type == key.type && (FilamentConstants.ColorsEnum)currentFilament.filament_color_code == key.color))
                    {
                        currentFilament.filament_temperature = new_data.temperature;
                        var num = (int)printer.AcquireLock(new M3D.Spooling.Client.AsyncCallback(OnFilamentUpdateLock), new SpoolerConnection.UpdateFilamentData((IPrinter)printer, currentFilament));
                    }
                }
            }
            catch (Exception ex)
            {
            }
        }
예제 #4
0
        public bool FilamentSpoolLoaded(FilamentProfile.TypeColorKey key, FilamentProfile.CustomOptions new_data)
        {
            var flag = false;

            try
            {
                if (key.type != FilamentSpool.TypeEnum.NoFilament)
                {
                    foreach (Printer printer in PrintSpoolerClient)
                    {
                        FilamentSpool currentFilament = printer.GetCurrentFilament();
                        if (currentFilament != null && currentFilament.filament_type != FilamentSpool.TypeEnum.NoFilament && (currentFilament.filament_type == key.type && (FilamentConstants.ColorsEnum)currentFilament.filament_color_code == key.color))
                        {
                            flag = true;
                            break;
                        }
                    }
                }
            }
            catch (Exception ex)
            {
            }
            return(flag);
        }
예제 #5
0
 public FilamentOptions(FilamentProfile.TypeColorKey Key, FilamentProfile.CustomOptions Options)
 {
     this.Key     = Key;
     this.Options = Options;
 }
예제 #6
0
 private void UpdateFilamentProfile(FilamentProfile.TypeColorKey key, FilamentProfile.CustomOptions options)
 {
     settingsManager.FilamentDictionary.AddCustomTemperature(key.type, key.color, options.temperature);
     spooler_connection.CheckUpdatedFilamentProfile(key, options);
 }