public Configuration Build() { RandomGeneratorFacade randomGeneratorFacade = new RandomGeneratorFacade(); if (!IsGeneratorSeedSet) { SetSetGeneratorSeed(randomGeneratorFacade.GiveRandomNumber(100, 65535)); } if (!IsThreadCycleDurationSet) { SetThreadCycleDuration(randomGeneratorFacade.GiveRandomNumber(1, 17)); } if (!IsNumberOfThreadCyclesSet) { SetNumberOfThreadCycles(randomGeneratorFacade.GiveRandomNumber(1, 23)); } if (!IsOutputFilePathSet) { SetOutputFilePath("kgrlic_" + DateTime.Now.ToString("yyyymmdd_HHmmss") + ".txt"); } if (!IsNumberOfLinesSet) { SetNumberOfLines(randomGeneratorFacade.GiveRandomNumber(100, 999)); } return(_configuration); }
public Place Construct(Dictionary <string, string> placeParams, ThingsOfFoi thingsOfFoi, Foi foi) { RandomGeneratorFacade randomGeneratorFacade = new RandomGeneratorFacade(); if (DoesPlaceNameExists(placeParams["naziv"], foi)) { return(null); } int placeUniqueIdentifier = randomGeneratorFacade.GiveRandomNumber(1, 1000); while (DoesIdentifierExists(placeUniqueIdentifier, foi)) { placeUniqueIdentifier = randomGeneratorFacade.GiveRandomNumber(1, 1000); } List <Device> devices = new List <Device>(); devices.AddRange(GetRandomDevices(Converter.StringToInt(placeParams["broj senzora"]), thingsOfFoi.Sensors.FindAll(sen => sen.Type == Converter.StringToInt(placeParams["tip"]) || sen.Type == 2))); devices.AddRange(GetRandomDevices(Converter.StringToInt(placeParams["broj aktuatora"]), thingsOfFoi.Actuators.FindAll(act => act.Type == Converter.StringToInt(placeParams["tip"]) || act.Type == 2))); return(_builder .SetUniqueIdentifier(placeUniqueIdentifier) .SetName(placeParams["naziv"]) .SetType(Converter.StringToInt(placeParams["tip"])) .SetNumberOfSensors(Converter.StringToInt(placeParams["broj senzora"])) .SetNumberOfActuators(Converter.StringToInt(placeParams["broj aktuatora"])) .SetDevices(devices) .Build()); }
private void EquipPlaces(Foi foi) { RandomGeneratorFacade randomGeneratorFacade = new RandomGeneratorFacade(); IIterator placeIterator = foi.Places.CreateIterator(IteratorType.AscendingValue); Place place = placeIterator.First(); while (place != null) { List <Device> actuators = place.Devices.FindAll(d => d.DeviceType == DeviceType.Actuator && d.IsBeingUsed && d.Malfunctional == false); List <Device> sensors = place.Devices.FindAll(d => d.DeviceType == DeviceType.Sensor && d.IsBeingUsed && d.Malfunctional == false); foreach (var actuator in actuators) { int numberOfSensorsToEquipActuator = randomGeneratorFacade.GiveRandomNumber(1, sensors.Count); List <int> usedSensorIndexes = new List <int>(); int[] availableSensorIndexes = Enumerable.Range(0, sensors.Count).ToArray(); for (int i = 0; i < numberOfSensorsToEquipActuator; i++) { int[] unusedSensorIndexes = availableSensorIndexes.Except(usedSensorIndexes).ToArray(); int randomIndex = randomGeneratorFacade.GiveRandomNumber(0, sensors.Count - 1, unusedSensorIndexes, 1); usedSensorIndexes.Add(randomIndex); actuator.AddChild(sensors[randomIndex]); sensors[randomIndex].AddParent(actuator); } } RepairOneDevice(place); ListDevices(place); place = placeIterator.Next(); } }
public int GetStatus(double?averageDeviceValidity = 0.5) { RandomGeneratorFacade randomGeneratorFacade = new RandomGeneratorFacade(); StatusHistory.Add(randomGeneratorFacade.GiveRandomNumber(0, 1, new[] { 1 }, averageDeviceValidity)); return(StatusHistory.Last()); }
public Configuration Build() { RandomGeneratorFacade randomGeneratorFacade = new RandomGeneratorFacade(); if (!_isNumberOfRows) { SetNumberOfRows(24); } if (!_isNumberOfColumns) { SetNumberOfColumns(80); } if (!_isNumberOfInputRows) { SetNumberOfInputRows(2); } if (!_isAverageDeviceValidity) { SetAverageDeviceValidity(50); } if (!_isGeneratorSeedSet) { SetGeneratorSeed((int)(DateTime.Now.Ticks / TimeSpan.TicksPerMillisecond)); } if (!_isThreadCycleDurationSet) { SetThreadCycleDuration(randomGeneratorFacade.GiveRandomNumber(1, 17)); } return(_configuration); }
public int GetStatus(double successProbability = 0.5) { RandomGeneratorFacade randomGeneratorFacade = new RandomGeneratorFacade(); StatusHistory.Add(randomGeneratorFacade.GiveRandomNumber(0, 1, new[] { 1 }, successProbability)); return(StatusHistory.Last()); }
private void Move() { Output output = Output.GetInstance(); if (Kind == 3) { if (_value == 0) { output.WriteLine("\tsmjer = ---> "); _value = 1; } else { output.WriteLine("\tsmjer = <--- "); _value = 0; } output.WriteLine("\tnova vrijednost = " + ReadValue()); } else { RandomGeneratorFacade randomGeneratorFacade = new RandomGeneratorFacade(); int amount = randomGeneratorFacade.GiveRandomNumber((int)(Min ?? 0), (int)(Max ?? 1)); output.WriteLine("\tpomicanje za = " + amount); if (_executionDirection) { output.WriteLine("\tsmjer = ---> "); if (Value + amount > (int)(Max ?? 1)) { _value = (int)(Max ?? 1); _executionDirection = false; } else { _value = Value + amount; } } else { output.WriteLine("\tsmjer = <--- "); if (Value - amount < (int)(Min ?? 0)) { _value = (int)(Min ?? 0); _executionDirection = true; } else { _value = Value - amount; } } output.WriteLine("\tnova vrijednost = " + ReadValue()); } }
private void Move(List <string> data) { if (Kind == 3) { if (_value == 0) { data.Add("smjer = (+) "); _value = 1; } else { data.Add("smjer = (-) "); _value = 0; } data.Add("nova vrijednost = " + ReadValue()); } else { RandomGeneratorFacade randomGeneratorFacade = new RandomGeneratorFacade(); int amount = randomGeneratorFacade.GiveRandomNumber((int)(Min ?? 0), (int)(Max ?? 1)); data.Add("pomicanje za = " + amount); if (_executionDirection) { data.Add("smjer = (+) "); if (Value + amount > (int)(Max ?? 1)) { _value = (int)(Max ?? 1); _executionDirection = false; } else { _value = Value + amount; } } else { data.Add("smjer = (-) "); if (Value - amount < (int)(Min ?? 0)) { _value = (int)(Min ?? 0); _executionDirection = true; } else { _value = Value - amount; } } data.Add("nova vrijednost = " + ReadValue()); } }
public Sensor(Dictionary <string, string> deviceParams, ThingsOfFoi thingsOfFoi) : base(deviceParams, thingsOfFoi) { DeviceType = DeviceType.Sensor; RandomGeneratorFacade randomGeneratorFacade = new RandomGeneratorFacade(); do { UniqueIdentifier = randomGeneratorFacade.GiveRandomNumber(1, 1000); } while (DoesUniqueIdentifierExists(UniqueIdentifier, thingsOfFoi.Sensors)); }
public void Accept(Visitor visitor) { List <Device> brokenDevices = Devices.FindAll(d => d.IsBeingUsed == false || d.Malfunctional); if (brokenDevices.Count > 0) { RandomGeneratorFacade randomGeneratorFacade = new RandomGeneratorFacade(); int randomDeviceIndex = randomGeneratorFacade.GiveRandomNumber(0, brokenDevices.Count); brokenDevices[randomDeviceIndex].Accept(visitor); } }
private List <Device> GetRandomDevices(int?numberOfDevices, List <Device> availableDevices) { RandomGeneratorFacade randomGeneratorFacade = new RandomGeneratorFacade(); List <Device> placeDevices = new List <Device>(); for (int i = 0; i < numberOfDevices; i++) { Device randomDevice = availableDevices[randomGeneratorFacade.GiveRandomNumber(0, availableDevices.Count)]; placeDevices.Add(randomDevice.Clone()); } return(placeDevices); }
public Place Construct(Dictionary <string, string> placeParams, ThingsOfFoi thingsOfFoi) { Foi foi = Foi.GetInstance(); RandomGeneratorFacade randomGeneratorFacade = new RandomGeneratorFacade(); if (DoesPlaceExists(Converter.StringToInt(placeParams["id"]), foi)) { Console.WriteLine("Mjesto sa identifikatorom: " + placeParams["id"] + "(" + placeParams["naziv"] + ") vec postoji, preskacem!"); return(null); } return(_builder .SetUniqueIdentifier(Converter.StringToInt(placeParams["id"])) .SetName(placeParams["naziv"]) .SetType(Converter.StringToInt(placeParams["tip"])) .SetNumberOfSensors(Converter.StringToInt(placeParams["broj senzora"])) .SetNumberOfActuators(Converter.StringToInt(placeParams["broj aktuatora"])) .Build()); }