Beispiel #1
0
 private Sensor ExtractDataFromSpecificSensor(ISensor sensor, SensorUnit unit)
 {
     return(new Sensor()
     {
         MaxValue = sensor.Max.HasValue ? sensor.Max.ToString() : "No value",
         MinValue = sensor.Min.HasValue ? sensor.Min.ToString() : "No value",
         SensorType = sensor.SensorType.ToString(),
         Value = sensor.Value.HasValue ? sensor.Value.ToString() : "No value",
         SensorName = sensor.Name,
         Unit = EnumExtensions.GetEnumDescription(unit)
     });
 }
Beispiel #2
0
        public IEnumerable <BrickView> GetAll()
        {
            List <BrickView> View = new List <BrickView>();

            foreach (var item in BrickList)
            {
                BrickView BVtemp = new BrickView();
                BVtemp.ID      = item.ID;
                BVtemp.ComPort = item.ComPort;
                //Lesen der aktuellen Sensorwerte für Sensor 1
                //!!! Prüfung ob Brick connected!!!
                try
                {
                    SensorUnit Sens = null;
                    Sens.Name  = item.EV3.Sensor1.GetName();
                    Sens.Value = item.EV3.Sensor1.ReadAsString();
                    BVtemp.SensorList.Add(Sens);
                }
                finally { }
                //Lesen der aktuellen Sensorwerte für Sensor 2
                try
                {
                    SensorUnit Sens = null;
                    Sens.Name  = item.EV3.Sensor2.GetName();
                    Sens.Value = item.EV3.Sensor2.ReadAsString();
                    BVtemp.SensorList.Add(Sens);
                }
                finally { }
                //Lesen der aktuellen Sensorwerte für Sensor 3
                try
                {
                    SensorUnit Sens = null;
                    Sens.Name  = item.EV3.Sensor3.GetName();
                    Sens.Value = item.EV3.Sensor3.ReadAsString();
                    BVtemp.SensorList.Add(Sens);
                }
                finally { }
                //Lesen der aktuellen Sensorwerte für Sensor 4
                try
                {
                    SensorUnit Sens = null;
                    Sens.Name  = item.EV3.Sensor4.GetName();
                    Sens.Value = item.EV3.Sensor4.ReadAsString();
                    BVtemp.SensorList.Add(Sens);
                }
                finally { }

                View.Add(BVtemp);
            }

            return(View);
        }
Beispiel #3
0
        /// <summary>
        /// Удалить нить производства
        /// </summary>
        /// <param name="name">Наименование нити</param>
        /// <param name="cascade">Удалить также все элементы нити</param>
        /// <returns></returns>
        public void DeleteProductionThreadByNumber(int threadNumber)
        {
            foreach (ThreadUnit thread in ListThreadUnits)
            {
                if (thread.ThreadNumber == threadNumber)
                {
                    // Обходим список объектов, которые могут находиться на нити.
                    // и удаляем объекты, принадлежащие удаляемой нити

                    // Обходим список объектов Рольганг
                    for (int i = 0; i < ListRollgangUnits.GetItemsCount(); i++)
                    {
                        RollgangUnit rollgang = ListRollgangUnits[i];
                        if (rollgang.ThreadNumber == threadNumber)
                        {
                            ListRollgangUnits.RemoveItem(i);
                        }
                    }

                    // Обходим список объектов Метка
                    for (int i = 0; i < ListLabelUnits.GetItemsCount(); i++)
                    {
                        LabelUnit label = ListLabelUnits[i];
                        if (label.ThreadNumber == threadNumber)
                        {
                            ListLabelUnits.RemoveItem(i);
                        }
                    }

                    // Обходим список объектов Датчик
                    for (int i = 0; i < ListSensorUnits.GetItemsCount(); i++)
                    {
                        SensorUnit sensor = ListSensorUnits[i];
                        if (sensor.ThreadNumber == threadNumber)
                        {
                            ListSensorUnits.RemoveItem(i);
                        }
                    }

                    // Обходим список объектов Упор
                    for (int i = 0; i < ListStopperUnits.GetItemsCount(); i++)
                    {
                        StopperUnit stopper = ListStopperUnits[i];
                        if (stopper.ThreadNumber == threadNumber)
                        {
                            ListStopperUnits.RemoveItem(i);
                        }
                    }

                    // Обходим список объектов АгрегатЛинейногоПеремещения
                    for (int i = 0; i < ListLinearDisplacementUnits.GetItemsCount(); i++)
                    {
                        LinearDisplacementUnit linear = ListLinearDisplacementUnits[i];
                        if (linear.ThreadNumber == threadNumber)
                        {
                            ListLinearDisplacementUnits.RemoveItem(i);
                        }
                    }

                    // Обходим список объектов УдалениеЗастрявших
                    for (int i = 0; i < ListDeleterUnits.GetItemsCount(); i++)
                    {
                        DeleterUnit deleter = ListDeleterUnits[i];
                        if (deleter.ThreadNumber == threadNumber)
                        {
                            ListDeleterUnits.RemoveItem(i);
                        }
                    }

                    // Обходим список объектов Клеть
                    for (int i = 0; i < ListCagesUnits.GetItemsCount(); i++)
                    {
                        CageUnit cage = ListCagesUnits[i];
                        if (cage.ThreadNumber == threadNumber)
                        {
                            ListCagesUnits.RemoveItem(i);
                        }
                    }

                    // Обходим список объектов ТехУзел
                    for (int i = 0; i < ListTechnicalUnits.GetItemsCount(); i++)
                    {
                        TechnicalUnit tech = ListTechnicalUnits[i];
                        if (tech.ThreadNumber == threadNumber)
                        {
                            ListTechnicalUnits.RemoveItem(i);
                        }
                    }
                }
            }
        }
Beispiel #4
0
        /// <summary>
        /// Заполнить производственные линии объектами из конфигурационного файла
        /// </summary>
        public void FillProductionThreads()
        {
            // Обходим список нитей и для каждой нити обходим списки объектов,
            // которые могут находиться на нити.

            for (int t = 0; t < ListThreadUnits.GetItemsCount(); t++)
            {
                ThreadUnit       thread           = ListThreadUnits[t];
                ProductionThread productionThread = new ProductionThread();

                // Обходим список объектов Рольганг
                for (int i = 0; i < ListRollgangUnits.GetItemsCount(); i++)
                {
                    RollgangUnit rollgang = ListRollgangUnits[i];
                    if (rollgang.ThreadNumber == thread.ThreadNumber)
                    {
                        productionThread.ListRollgangUnits.Add(rollgang);
                    }
                }

                // Обходим список объектов Метка
                for (int i = 0; i < ListLabelUnits.GetItemsCount(); i++)
                {
                    LabelUnit label = ListLabelUnits[i];
                    if (label.ThreadNumber == thread.ThreadNumber)
                    {
                        productionThread.ListLabelUnits.Add(label);
                    }
                }

                // Обходим список объектов Датчик
                for (int i = 0; i < ListSensorUnits.GetItemsCount(); i++)
                {
                    SensorUnit sensor = ListSensorUnits[i];
                    if (sensor.ThreadNumber == thread.ThreadNumber)
                    {
                        productionThread.ListSensorUnits.Add(sensor);
                    }
                }

                // Обходим список объектов Упор
                for (int i = 0; i < ListStopperUnits.GetItemsCount(); i++)
                {
                    StopperUnit stopper = ListStopperUnits[i];
                    if (stopper.ThreadNumber == thread.ThreadNumber)
                    {
                        productionThread.ListStopperUnits.Add(stopper);
                    }
                }

                // Обходим список объектов АгрегатЛинейногоПеремещения
                for (int i = 0; i < ListLinearDisplacementUnits.GetItemsCount(); i++)
                {
                    LinearDisplacementUnit linear = ListLinearDisplacementUnits[i];
                    if (linear.ThreadNumber == thread.ThreadNumber)
                    {
                        productionThread.ListLinearDisplacementUnits.Add(linear);
                    }
                }

                // Обходим список объектов УдалениеЗастрявших
                for (int i = 0; i < ListDeleterUnits.GetItemsCount(); i++)
                {
                    DeleterUnit deleter = ListDeleterUnits[i];
                    if (deleter.ThreadNumber == thread.ThreadNumber)
                    {
                        productionThread.ListDeleterUnits.Add(deleter);
                    }
                }

                // Обходим список объектов Клеть
                for (int i = 0; i < ListCagesUnits.GetItemsCount(); i++)
                {
                    CageUnit cage = ListCagesUnits[i];
                    if (cage.ThreadNumber == thread.ThreadNumber)
                    {
                        productionThread.ListCagesUnits.Add(cage);
                    }
                }

                // Обходим список объектов ТехУзел
                for (int i = 0; i < ListTechnicalUnits.GetItemsCount(); i++)
                {
                    TechnicalUnit tech = ListTechnicalUnits[i];
                    if (tech.ThreadNumber == thread.ThreadNumber)
                    {
                        productionThread.ListTechnicalUnits.Add(tech);
                    }
                }

                productionThread.Uid          = thread.Uid;
                productionThread.Name         = thread.Name;
                productionThread.ThreadNumber = thread.ThreadNumber;
                productionThread.Direction    = thread.Direction;
                productionThread.StartPos     = thread.StartPos;
                productionThread.FinishPos    = thread.FinishPos;
                productionThread.StopOnEnds   = thread.StopOnEnds;
                productionThread.PrevThread   = thread.PrevThread;
                productionThread.NextThread   = thread.NextThread;

                _listProductionThreads.Add(productionThread);
            }
        }