RUS  ENG 

Быкиев Андрей (Все сообщения пользователя)

Выбрать дату в календареВыбрать дату в календаре

Страницы: 1
Вопросы по ZuluNetTools
 
Спасибо!
Вопросы по ZuluNetTools
 
Здравствуйте!

Есть пару вопросов по ZuluNetTools для ZuluThermo:
1. Правильно ли я понимаю, что для использования ZuluNetTools для ZuluThermo требуется лицензия как на ZuluNetTools для ZuluThermo, так и для ZuluThermo?
2. Мы разрабатываем ПО для нашего заказчика, который пока не приобрел лицензию ZuluNetTools для ZuluThermo, но имеет лицензию на отдельные компоненты ZuluThermo. Так как процесс закупки не быстрый, как мы можем начать разработку сейчас, без лицензии? Возможно, есть демо-лицензия для разработчиков?
Изменено: Быкиев Андрей - 29.04.2020 17:52:56
Проблема получения структуры теплосети
 
Спасибо, убрал из рекурсии запрос NetworkObjects и проблема решилась. Но все равно, вопрос с закрытием соединения при ошибке в Zulu остался открытым. Я перехватываю исключение в try/catch и в блоке finally всегда закрываю соединение.
Проблема получения структуры теплосети
 
Алексей, спасибо, свою проблему понял, сейчас изменю логику. Остается пока вопрос - почему некорректно закрывается подключение при OutOfMemoryException именно при вызове этого метода через [URL=https://www.politerm.com/zuludoc/zuluax/Layer_NetworkObjects.html]Layer.NetWorkObjects[/URL], метод Disconnect при этом не выдает никаких ошибок?
Проблема получения структуры теплосети
 
Вот мой рекурсивный метод (с логикой обхода циклов):

[CODE]private static void GetChildren(int key, int prevKey, Layer layer)
       {
           int[] incidentKeys = layer.NetworkObjects[eNetworkObjectFilter.eNetworkAll].GetIncidentKeys(key, eIncidentRelationship.eIncidentAll).SaveToArray();

           for (int i = 0; i < incidentKeys.Length; i++)
           {
               if (incidentKeys[i] != prevKey)
               {
                   if (!items.Any(_ => _.Key == incidentKeys[i]))
                   {
                       items.Add(new TestModel()
                       {
                           Key = incidentKeys[i]
                       });
                   }

                   if (!items.Any(_ => _.Key == prevKey && _.Related != null && _.Related.Any(__ => __ == incidentKeys[i])))
                   {
                       var it = items.FirstOrDefault(_ => _.Key == prevKey);
                       if (it != null)
                       {
                           if (it.Related == null)
                               it.Related = new List<int>();

                           if (!it.Related.Any(_ => _ == incidentKeys[i]))
                               it.Related.Add(incidentKeys[i]);
                       }

                       //Thread.Sleep(500);
                       GetChildren(incidentKeys[i], key, layer);
                   }
               }
           }
       }[/CODE]
Класс TestModel:    
[CODE] public class TestModel
   {
       public int Key { get; set; }

       public List<int> Related { get; set; }
   }
[/CODE]items - коллекция типа TestModel
Проблема получения структуры теплосети
 
Здравствуйте,

Пытаюсь получить структуру теплосети:

1. используя метод [URL=https://www.politerm.com/zuludoc/zuluax/index.html#Layer_GetIncidentElements.html]Layer.GetIncidentElements[/URL], но возникает сообщение о нехватке памяти
2. в цикле используя метод [URL=https://www.politerm.com/zuludoc/zuluax/index.html#NetworkObjects_GetIncidentKeys.html]NetworkObjects.GetIncidentKeys[/URL], через какое-то время здесь возникает System.OutOfMemoryException, после возникновения ошибки, при закрытии соединения, соединение закрывается некорректно, из-за чего наступает блокировка по кол-ву подключений на IP-адрес.
Попытался еще добавить задержку между запросами (500 мс), но возникло другое исключение: HRESULT: 0x80010105 (RPC_E_SERVERFAULT)).

Как обойти проблему и получить всю структуру теплосети от Источника?

Язык программирования: C#
Версия ZuluServer: 8.0.0.7290u
Изменено: Быкиев Андрей - 28.04.2020 12:03:21
Страницы: 1