Exemple #1
0
        // Основной цикл - заливка в каждый коммутатор настроек из списка SwitchList
        private void DownloadLoop(CancellationToken token)
        {
            foreach (EthernetSwitch ethernetSwitch in SwitchList)
            {
                //исключаем коммутаторы уже имеющие серийник (они уже были сконфигурированны)
                if (ethernetSwitch.Serial == null)
                {
                    CurrentItemTextBox  = ethernetSwitch.AddressIP;// Вывод адреса коммутатора в UI
                    ethernetSwitch.CIDR = IPMask;

                    if (!_networkTasks.UploadConfigStateMachine(ethernetSwitch, GetSettingsDict(), token))
                    {
                        // Выводим сообщение о прерывании операции
                        _dispatcher.BeginInvoke(new Action(() =>
                        {
                            MessageForUser = "******";
                        }));
                        break;
                    }
                    else
                    {
                        _dataRepositoryService.SaveSerialNumber(ethernetSwitch.Id, ethernetSwitch.Serial);
                        _printerService.CommonPrintLabel(SelectedPrinter, 0, GetPrintingDict(ethernetSwitch));
                    }
                    // Обновляем всю коллекцию d UI целиком
                    _dispatcher.BeginInvoke(new Action(() =>
                    {
                        CollectionViewSource.GetDefaultView(SwitchList).Refresh();
                    }));
                }
                if (token.IsCancellationRequested)
                {
                    return;
                }
            }
            SliderIsChecked = false; // Всё! Залили настройки во все коммутаторы. Вырубаем слайдер (пололжение Off)
        }
Exemple #2
0
        private void DownloadLoop()
        {
            if (DeviceCounter < DevicesForProgramming.Count)
            {
                var device = DevicesForProgramming[DeviceCounter];

                string devSerial = "";

                if (device is Device device1)
                {
                    devSerial = device1.Serial;

                    if (devSerial == null)//исключаем приборы уже имеющие серийник (они уже были сконфигурированны)
                    {
                        _dispatcher.BeginInvoke(new Action(() =>
                        {
                            CurrentDeviceModel = device1.Model;
                        }));
                        if (DevicesForProgramming[DeviceCounter].GetType() == typeof(RS485device))
                        {
                            if (_serialTasks.SendConfig(DevicesForProgramming[DeviceCounter],
                                                        CurrentRS485Port,
                                                        DefaultRS485Address) == 1)
                            {
                                device1.Serial = SerialTextBox;
                                _dataRepositoryService.SaveSerialNumber(device1.Id, device1.Serial);
                                SerialTextBox = "";// Очищаем строку ввода серийника для ввода следующего
                                DeviceCounter++;
                            }
                            else
                            {
                                MessageBox.Show("Устройство с адресом 127 не отвечает!");
                            }
                        }
                        else if (DevicesForProgramming[DeviceCounter].GetType() == typeof(C2000Ethernet))
                        {
                            C2000Ethernet c2000Ethernet = (C2000Ethernet)DevicesForProgramming[DeviceCounter];
                            c2000Ethernet.Netmask      = IPMask;
                            c2000Ethernet.RemoteIpList = GetRemoteDefaultFirstIpList();

                            if (_serialTasks.SendConfig(c2000Ethernet,
                                                        CurrentRS232Port,
                                                        DefaultRS485Address) == 1)
                            {
                                device1.Serial = SerialTextBox;
                                _dataRepositoryService.SaveSerialNumber(device1.Id, device1.Serial);
                                SerialTextBox = "";// Очищаем строку ввода серийника для ввода следующего
                                DeviceCounter++;
                            }
                            else
                            {
                                MessageBox.Show("Устройство с адресом 127 не отвечает!");
                            }
                        }
                        // Обновляем всю коллекцию в UI целиком
                        _dispatcher.BeginInvoke(new Action(() =>
                        {
                            CollectionViewSource.GetDefaultView(DevicesForProgramming).Refresh();
                        }));
                        if (DeviceCounter >= DevicesForProgramming.Count)
                        {
                            DeviceCounter = 0;
                            MessageBox.Show("Alles!");
                        }
                    }
                    else //Переходим к следующему прибру из списка
                    {
                        DeviceCounter++;
                    }
                }
            }
        }