Beispiel #1
0
        public WindowTask(TaskQueueItemsService taskQueueItemsService, int maxOrder, Logger logger)
        {
            InitializeComponent();

            NewTaskViewModel        = new NewTaskViewModel(taskQueueItemsService, maxOrder, logger);
            NewTaskViewModel.Close += NewTaskViewModelOnClose;
            DataContext             = NewTaskViewModel;
        }
Beispiel #2
0
 public NewTaskViewModel(TaskQueueItemsService taskQueueItemsService, int maxOrder, Logger logger)
 {
     Logger                = logger;
     Task                  = new ApiTask();
     MixerVolume           = GetMixerVolume();
     Volume                = (decimal)0.2;
     MaxOrder              = maxOrder;
     TaskQueueItemsService = taskQueueItemsService;
     UpdateRecipes();
     UpdateCustomers();
 }
Beispiel #3
0
        public ElTaskQueueViewModel(TaskQueueItemsService service, Logger logger)
        {
            Logger           = logger;
            Service          = service;
            Service.Updated += ServiceOnUpdate;
            StopLoadTasks    = true;
            var loadTaskHandler = new LoadTaskHandler(Service, logger);

            CheckAndLoadTask += loadTaskHandler.CheckAndLoadTask;
            ServiceOnUpdate();
        }
Beispiel #4
0
        private void GetTaskToDosing()
        {
            var taskQueueItems = TaskQueueItemsService.ListTaskQueueItems();

            if (taskQueueItems.Any())
            {
                var taskQueueItem = taskQueueItems.OrderBy(x => x.Order).First();
                var task          = TasksReader.GetById(taskQueueItem.Task.Id);
                var recipe        = RecipesReader.GetById(task.Recipe.Id);
                var containers    = CheckMaterials(recipe);
                if (containers != null)
                {
                    var parameters = GetValues(task, recipe, containers);
                    if (parameters != null)
                    {
                        var isOk = LoadValues(parameters);
                        if (isOk)
                        {
                            var taskId = new Dictionary <ApiOpcParameter, string> {
                                { CurrentTaskIdParameter, task.Id.ToString() }
                            };
                            var taskIdLoadOk = LoadValues(taskId);
                            if (taskIdLoadOk)
                            {
                                ReportsService.CreateReport(task);
                                TaskQueueItemsService.Delete(taskQueueItem.Id);
                            }
                            else
                            {
                                Logger.Error("Ошибка записи CurrentTaskId.");
                            }
                        }
                        else
                        {
                            Logger.Error("Ошибка записи параметров.");
                        }
                    }
                    else
                    {
                        Logger.Error("Отсутствуют некоторые параметры.");
                    }
                }
                else
                {
                    Logger.Error("Отсутствуют некоторые материалы в контейнерах.");
                    MessageBox.Show("Отсутствуют некоторые материалы в контейнерах");
                }
            }
            else
            {
                Logger.Error("Отсутствуют задания в очереди.");
            }
        }
Beispiel #5
0
 public LoadTaskHandler(TaskQueueItemsService taskQueueItemsService, Logger logger)
 {
     _opcName = NewOpcServer.OpcList.Rbu;
     TaskQueueItemsService = taskQueueItemsService;
     Logger                    = logger;
     ReportsService            = new ReportsService();
     TasksReader               = new TasksReader();
     ContainersReader          = new ContainersReader();
     BatchersReader            = new BatchersReader();
     RecipesReader             = new RecipesReader();
     CommonOpcParametersReader = new CommonOpcParametersReader();
     CreateSubscribe();
 }
Beispiel #6
0
        public void Initialize(Logger logger)
        {
            _opcName = OpcServer.OpcList.Rbu;

            ViewModelScreenRbu = new ViewModelScreenRbu(_opcName);
            DataContext        = ViewModelScreenRbu;

            ElArchiversViewModel = new ElArchiversViewModel();
            Closed += ElArchiversViewModel.OnClosed;

            ViewModelScreenRbu.IsUpdating = true;

            #region Init

            foreach (var item in ElGrid.Children)
            {
                if (item.GetType() == typeof(Mechs.ElConveyor))
                {
                    var conveyor = (Mechs.ElConveyor)item;
                    conveyor.Initialize(_opcName);
                    _elementList.Add(conveyor);
                }

                if (item.GetType() == typeof(Mechs.ElGate))
                {
                    var gate = (Mechs.ElGate)item;
                    gate.Initialize(_opcName);
                    _elementList.Add(gate);
                }

                if (item.GetType() == typeof(Mechs.ElMixer))
                {
                    var mixer = (Mechs.ElMixer)item;
                    mixer.Initialize(_opcName);
                    _elementList.Add(mixer);
                }

                if (item.GetType() == typeof(Mechs.ElMotor))
                {
                    var motor = (Mechs.ElMotor)item;
                    motor.Initialize(_opcName);
                    _elementList.Add(motor);
                }

                if (item.GetType() == typeof(Mechs.ElPump))
                {
                    var pump = (Mechs.ElPump)item;
                    pump.Initialize(_opcName);
                    _elementList.Add(pump);
                }

                if (item.GetType() == typeof(Indicators.ElValueBox))
                {
                    var valuebox = (Indicators.ElValueBox)item;
                    valuebox.Initialize(_opcName);
                    _elementList.Add(valuebox);
                }

                if (item.GetType() == typeof(Indicators.ElValueBar))
                {
                    var valuebar = (Indicators.ElValueBar)item;
                    valuebar.Initialize(_opcName);
                    _elementList.Add(valuebar);
                }

                if (item.GetType() == typeof(Indicators.ElDone))
                {
                    var done = (Indicators.ElDone)item;
                    done.Initialize(_opcName);
                    _elementList.Add(done);
                }

                if (item.GetType() == typeof(Indicators.ElAnim))
                {
                    var anim = (Indicators.ElAnim)item;
                    anim.Initialize(_opcName);
                    _elementList.Add(anim);
                }

                if (item.GetType() == typeof(Indicators.ElWarning))
                {
                    var warning = (Indicators.ElWarning)item;
                    warning.Initialize(_opcName);
                    _elementList.Add(warning);
                }

                if (item.GetType() == typeof(Control.ElDosingWait))
                {
                    var dosingWait = (Control.ElDosingWait)item;
                    dosingWait.Initialize(_opcName);
                    _elementList.Add(dosingWait);
                }

                if (item.GetType() == typeof(Control.ElManualDosing))
                {
                    var manualDosing = (Control.ElManualDosing)item;
                    manualDosing.Initialize(_opcName);
                    _elementList.Add(manualDosing);
                }

                if (item.GetType() == typeof(Control.ElEvent))
                {
                    var elEvent = (Control.ElEvent)item;
                    elEvent.Initialize(_opcName);
                    _elementList.Add(elEvent);
                }

                if (item.GetType() == typeof(Indicators.ElContainer))
                {
                    var container = (Indicators.ElContainer)item;
                    container.Initialize(_opcName);
                    _elementList.Add(container);
                    _containerList.Add(container);
                }
            }

            ElControlTabl.Initialize(_opcName);
            _elementList.Add(ElControlTabl);

            ElControlControl.Initialize(_opcName);
            _elementList.Add(ElControlControl);

            ElControlZamesDosing.Initialize(_opcName);
            _elementList.Add(ElControlZamesDosing);

            ElControlZamesMixer.Initialize(_opcName);
            _elementList.Add(ElControlZamesMixer);

            ElControlStatus.Initialize(_opcName);
            _elementList.Add(ElControlStatus);

            var taskQueueItemsService = new TaskQueueItemsService();
            var recipeQueueViewModel  = new ElQueueViewModel(taskQueueItemsService, logger);
            ElControlQueue.DataContext = recipeQueueViewModel;

            #endregion

            #region Timer

            LinkTimer          = new DispatcherTimer();
            LinkTimer.Interval = new TimeSpan(0, 0, 0, 0, 500);
            LinkTimer.Tick    += new EventHandler(TimerTick500Ms);

            #endregion

            ViewModelScreenRbu.IsUpdating = false;

            Subscribe();
        }