private void Start() { manager = ImportManager.Instance; UIDocument document = GetComponent <UIDocument>(); element = document.rootVisualElement.Q <SpeckleWindowElement>(); if (element == null) { Debug.LogWarning($"{this} could not find a {typeof(SpeckleWindowElement)} in {document}"); return; } foreach (Transform child in GameObject.FindGameObjectWithTag("Environment").transform) { GameObject childGO = child.gameObject; StreamViewModel streamViewModel = new StreamViewModel() { streamID = "local " + child.GetInstanceID(), streamName = child.name }; ReceiverElement e = element.AddReceiver( viewModel: streamViewModel, OnHide: () => { childGO.SetActive(!childGO.activeInHierarchy); element.SetVisibility(streamViewModel, childGO.activeInHierarchy); manager.UpdateBusy(); }, OnUpdate: null, OnRemove: null, enabled: true ); element.SetVisibility(streamViewModel, childGO.activeInHierarchy); } manager.OnReadyToReceive += Initialise; }
/// <summary> /// Извлекает данные из файла и записывает их в /// List'ы. /// <warning> СКЛАДЫВАЕТ В РЕЗУЛЬТАТ В ОБРАТНОМ ПОРЯДКЕ!!!!</warning> /// </summary> private void ExtractXMLData() { // Загружаем XML-файл XDocument XMLData = XDocument.Load(FullPathToFile); // Обходим XML файл начиная с корня. foreach (XElement element in XMLData.Root.Elements()) { //В ветке ресивера: foreach (XElement ReceiverElement in element.Elements("DifferentialInputVoltage")) { XElement Limit = ReceiverElement.Element("Limit"); XElement Minimum = ReceiverElement.Element("Minimum"); XElement Maximum = ReceiverElement.Element("Maximum"); //Нижняя граница XMLDevice.ReceiverDifferentialInputVoltage.Add(Convert.ToDouble(Minimum.Value) - Convert.ToDouble(Limit.Value)); XMLDevice.ReceiverDifferentialInputVoltage.Add(Convert.ToDouble(Maximum.Value) - Convert.ToDouble(Limit.Value)); //Верхняя граница XMLDevice.ReceiverDifferentialInputVoltage.Add(Convert.ToDouble(Minimum.Value) + Convert.ToDouble(Limit.Value)); XMLDevice.ReceiverDifferentialInputVoltage.Add(Convert.ToDouble(Maximum.Value) + Convert.ToDouble(Limit.Value)); } //Ветка трансмиттера foreach (XElement TransmitterElementDiffOutV in element.Elements("DifferentialOutputVoltage")) { XElement Minimum = TransmitterElementDiffOutV.Element("Minimum"); XElement Normal = TransmitterElementDiffOutV.Element("Normal"); XElement Limit = TransmitterElementDiffOutV.Element("Limit"); //Низ XMLDevice.TransmitterDifferentialOutputVoltage.Add(Convert.ToDouble(Minimum.Value) - Convert.ToDouble(Limit.Value)); XMLDevice.TransmitterDifferentialOutputVoltage.Add(Convert.ToDouble(Normal.Value) - Convert.ToDouble(Limit.Value)); //Верх XMLDevice.TransmitterDifferentialOutputVoltage.Add(Convert.ToDouble(Minimum.Value) + Convert.ToDouble(Limit.Value)); XMLDevice.TransmitterDifferentialOutputVoltage.Add(Convert.ToDouble(Normal.Value) + Convert.ToDouble(Limit.Value)); } foreach (XElement TransmitterElementTimeUpDownS in element.Elements("TimeToUpDownSignal")) { XElement Minimum = TransmitterElementTimeUpDownS.Element("Minimum"); XElement Maximum = TransmitterElementTimeUpDownS.Element("Maximum"); XElement Limit = TransmitterElementTimeUpDownS.Element("Limit"); //Низ XMLDevice.TransmitterRiseRecessionSignalTime.Add(Convert.ToDouble(Minimum.Value) - Convert.ToDouble(Limit.Value)); XMLDevice.TransmitterRiseRecessionSignalTime.Add(Convert.ToDouble(Maximum.Value) - Convert.ToDouble(Limit.Value)); //Верх XMLDevice.TransmitterRiseRecessionSignalTime.Add(Convert.ToDouble(Minimum.Value) + Convert.ToDouble(Limit.Value)); XMLDevice.TransmitterRiseRecessionSignalTime.Add(Convert.ToDouble(Maximum.Value) + Convert.ToDouble(Limit.Value)); } //Ветка требования по питанию foreach (XElement PlusFiveVolt in element.Elements("PlusFiveVolt")) { XElement Maximum = PlusFiveVolt.Element("Maximum"); XElement Limit = PlusFiveVolt.Element("Limit"); //Низ XMLDevice.PowerReqPlusFiveVoltage.Add(Convert.ToDouble(Maximum.Value) - Convert.ToDouble(Limit.Value)); //Верх XMLDevice.PowerReqPlusFiveVoltage.Add(Convert.ToDouble(Maximum.Value) + Convert.ToDouble(Limit.Value)); } foreach (XElement MinusTwelvVolt in element.Elements("MinusTwelvVolt")) { XElement Maximum = MinusTwelvVolt.Element("Maximum"); XElement Limit = MinusTwelvVolt.Element("Limit"); //Низ XMLDevice.PowerReqMinusTwelveVoltage.Add(Convert.ToDouble(Maximum.Value) - Convert.ToDouble(Limit.Value)); //Верх XMLDevice.PowerReqMinusTwelveVoltage.Add(Convert.ToDouble(Maximum.Value) + Convert.ToDouble(Limit.Value)); } foreach (XElement PlusTwelvVoltPause in element.Elements("PlusTwelvVoltPause")) { XElement Minimum = PlusTwelvVoltPause.Element("Minimum"); XElement Maximum = PlusTwelvVoltPause.Element("Maximum"); XElement Limit = PlusTwelvVoltPause.Element("Limit"); //Низ XMLDevice.PowerReqPlusTwelvePauseVoltage.Add(Convert.ToDouble(Minimum.Value) - Convert.ToDouble(Limit.Value)); XMLDevice.PowerReqPlusTwelvePauseVoltage.Add(Convert.ToDouble(Maximum.Value) - Convert.ToDouble(Limit.Value)); //Верх XMLDevice.PowerReqPlusTwelvePauseVoltage.Add(Convert.ToDouble(Minimum.Value) + Convert.ToDouble(Limit.Value)); XMLDevice.PowerReqPlusTwelvePauseVoltage.Add(Convert.ToDouble(Maximum.Value) + Convert.ToDouble(Limit.Value)); } foreach (XElement PlusTwelvVoltTwentyFive in element.Elements("PlusTwelvVoltTwentyFive")) { XElement Minimum = PlusTwelvVoltTwentyFive.Element("Minimum"); XElement Maximum = PlusTwelvVoltTwentyFive.Element("Maximum"); XElement Limit = PlusTwelvVoltTwentyFive.Element("Limit"); //Низ XMLDevice.PowerReqPlusTwelve25Voltage.Add(Convert.ToDouble(Minimum.Value) - Convert.ToDouble(Limit.Value)); XMLDevice.PowerReqPlusTwelve25Voltage.Add(Convert.ToDouble(Maximum.Value) - Convert.ToDouble(Limit.Value)); //Верх XMLDevice.PowerReqPlusTwelve25Voltage.Add(Convert.ToDouble(Minimum.Value) + Convert.ToDouble(Limit.Value)); XMLDevice.PowerReqPlusTwelve25Voltage.Add(Convert.ToDouble(Maximum.Value) + Convert.ToDouble(Limit.Value)); } foreach (XElement PlusTwelvVoltFifty in element.Elements("PlusTwelvVoltFifty")) { XElement Minimum = PlusTwelvVoltFifty.Element("Minimum"); XElement Maximum = PlusTwelvVoltFifty.Element("Maximum"); XElement Limit = PlusTwelvVoltFifty.Element("Limit"); //Низ XMLDevice.PowerReqPlusTwelve50Voltage.Add(Convert.ToDouble(Minimum.Value) - Convert.ToDouble(Limit.Value)); XMLDevice.PowerReqPlusTwelve50Voltage.Add(Convert.ToDouble(Maximum.Value) - Convert.ToDouble(Limit.Value)); //Верх XMLDevice.PowerReqPlusTwelve50Voltage.Add(Convert.ToDouble(Minimum.Value) + Convert.ToDouble(Limit.Value)); XMLDevice.PowerReqPlusTwelve50Voltage.Add(Convert.ToDouble(Maximum.Value) + Convert.ToDouble(Limit.Value)); } foreach (XElement PlusTwelvVoltHundred in element.Elements("PlusTwelvVoltHundred")) { XElement Minimum = PlusTwelvVoltHundred.Element("Minimum"); XElement Limit = PlusTwelvVoltHundred.Element("Limit"); XElement Maximum = PlusTwelvVoltHundred.Element("Maximum"); //Низ XMLDevice.PowerReqPlusTwelve100Voltage.Add(Convert.ToDouble(Minimum.Value) - Convert.ToDouble(Limit.Value)); XMLDevice.PowerReqPlusTwelve100Voltage.Add(Convert.ToDouble(Maximum.Value) - Convert.ToDouble(Limit.Value)); //Верх XMLDevice.PowerReqPlusTwelve100Voltage.Add(Convert.ToDouble(Minimum.Value) + Convert.ToDouble(Limit.Value)); XMLDevice.PowerReqPlusTwelve100Voltage.Add(Convert.ToDouble(Maximum.Value) + Convert.ToDouble(Limit.Value)); } // Ветка температуры foreach (XElement temperature in element.Elements("PowerTemp")) { XElement Minimum = temperature.Element("Minimum"); XElement Maximum = temperature.Element("Maximum"); XElement Limit = temperature.Element("Limit"); //Низ XMLDevice.Temperature.Add(Convert.ToDouble(Minimum.Value) - Convert.ToDouble(Limit.Value)); XMLDevice.Temperature.Add(Convert.ToDouble(Maximum.Value) - Convert.ToDouble(Limit.Value)); //Верх XMLDevice.Temperature.Add(Convert.ToDouble(Minimum.Value) + Convert.ToDouble(Limit.Value)); XMLDevice.Temperature.Add(Convert.ToDouble(Maximum.Value) + Convert.ToDouble(Limit.Value)); } } SaveTheData(CountTmp); //Уменьшаем число устройств CountInvetntNumbers--; }