Есть RTM, откуда получают данные графические клиенты NLL. Было замечено, что если RTM перестает работать, то на экране остаются последние данные, которые NLL получил с сервера пока тот еще работал. Таким образом, получается, что если пользователь смотрит на графическую консоль NLL, а сервер во время работы консоли перестал работать, то пользователь видит неверную информацию.
Вопрос: возможно ли стандартными средствами TM с консоли NLL отследить, что сервер больше недоступен ?
Posted by AdAstra Technical Support (Участник № / Member № 4) on :
Конечно. Например можно передавать на экран NLL значения системной переменной @Status, которая может индицировать состояние узла. Можно пойти дальше и написать программу, котрая будет отслеживать данный параметр(или значение какого-либо постоянно передающего "1" канала) и если значение не определено (нулевое), сигнализировать о потере связи.
Posted by Константин Арапов (Участник № / Member № 1998) on :
> Можно пойти дальше и написать программу, котрая >будет отслеживать данный параметр(или значение >какого-либо постоянно передающего "1" канала) и >если значение не определено (нулевое), >сигнализировать о потере связи.
Но насколько я понял, графические консоли реагируют на ИЗМЕНЕНИЕ значения канала, а если канал будет все время гнать единицу (т.е. постоянное значение) то определить есть связь или нет будет нельзя. Или я ошибаюсь ?
Posted by AdAstra Technical Support (Участник № / Member № 4) on :
1. Вы можете использовать например, битовый меандр и динамизировать таким образом состояние связи на узле NLL. 2. Можете контроллировать атрибут "достоверность", "тенденция".
Posted by Константин Арапов (Участник № / Member № 1998) on :
атрибут "достоверность" на первый взгляд подходит...
Posted by Сергей Кравчук (Участник № / Member № 5384) on :
quote:Отправитель / Originally posted by AdAstra Technical Support: Конечно. Например можно передавать на экран NLL значения системной переменной @Status, которая может индицировать состояние узла. Можно пойти дальше и написать программу, котрая будет отслеживать данный параметр(или значение какого-либо постоянно передающего "1" канала) и если значение не определено (нулевое), сигнализировать о потере связи.
Сделали как Вы написали: Создали переменную Status_1 в источниках и приемниках, указали номер узла в проекте "1". Создали переменную в RTM типа Float и привязали к значению переменной Status_1. Создали объект текст: "НЕТ СВЯЗИ С СЕРВЕРОМ" и привязали его видимость к атрибуту Достоверность созданого канала типа Float. Вроде все хорошо. При отключении сервера выдает сообщение на экран. НО! помимо этого это сообщение переодически проскакивает на экране, хотя потери связи нет. Подскажите как это можно побороть ??
Posted by AdAstra Technical Support (Участник № / Member № 4) on :
Пришлите Ваш проект на hotline@adastra.ru и укажите, какие каналы, программы и ГЭ надо смотреть.
Posted by AdAstra Technical Support (Участник № / Member № 4) on :
1. Канал, связанный с системной переменной @Status, запрограммированной на контроль собственного статуса, никогда не будет недостоверным.
2. Правильно контролировать собственный статус: (см.документацию) "Если Номер узла =10000, переменная индицирует/задает параметры собственного узла."
3. Виртуальный канал консоли практически показывает только собственную недостоверность, т.е. указывает на действительное качество связи с сервером.
4. Если время от времени появляются такие сообщения, значит, связь действительно неустойчивая. Избавиться от сообщений о "временной потере связи" можно лишь с помощью программной фильтрации: проверять качество связи в программе и отфильтрованный сигнал передавать на экран. Можно непосредственно в консоли программно обрабатывать системные переменные @Status с ПАРАМЕТР=12 и 13, контролирующие статус сервера. Они уже включают в себя некоторые функции временной фильтрации.
Posted by Сергей Кравчук (Участник № / Member № 5384) on :
Уважаемая техподдержка. Можно по подробнее объяснить, как это можно сделать. Лучше на простом примере.
Posted by AdAstra Technical Support (Участник № / Member № 4) on :