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) }); }
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); }
/// <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); } } } } }
/// <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); } }