Ejemplo n.º 1
0
        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;
        }
Ejemplo n.º 2
0
        /// <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--;
        }