Стартовая страница › Форумы › Разработка и интеграция › Запретить опрос линии при старте
- В этой теме 31 ответ, 3 участника, последнее обновление 9 лет, 4 месяца назад сделано
manjey73.
-
АвторЗаписи
-
26.04.2017 в 13:43 #5538
manjey73УчастникСобственно вопрос, можно ли запретить опрос линии при ее старте и запретить опрашивать устройство на линии даже раз в сутки сейчас какими-нибудь механизмами в драйвере ?
26.04.2017 в 14:01 #5550
MikhailМодераторДля опроса вызывается метод Session. Вы можете там сделать любую проверку и не опрашивать прибор при каких-либо условиях.
26.04.2017 в 14:49 #5559
manjey73УчастникВот не совсем понимаю…
public override void Session()
{
Что-то тут проверять ?
base.Session();
Или тут проверять ?
Код опроса…..
}Что именно проверять, когда стартует линия ? и главное, как разрешить опрос, когда мы посылаем команду внеочередного опроса КП ? ручками или через модуль автоматического управления.
26.04.2017 в 15:38 #5560
manjey73УчастникТак, с проверкой более менее понятно, есть пример в KpSnmp
Но вот в моем случае непонятно на что проверять ?Что надо вызвать или проверить, чтобы при старте не произошел опрос, так же НЕ происходил опрос при командах Коммуникатора при наступлении времени опроса, но при этом происходил опрос если руками или через Модуль авт. управления поступила команда на опрос КП ?
Да, и при таком варианте получается Коммуникатор пишет Сеансы связи 1, команд и запросов по нулям
-
Ответ изменён 9 лет, 4 месяца назад пользователем
manjey73.
26.04.2017 в 15:43 #5561Romiros
УчастникЗаведите переменную, отвечающeющую за разрешение опроса.
Например:
private bool request = false;public override void Session()
{
base.Session();
if (request)
{
//Выполняете Ваш опрос
request = false;
}
}public override void SendCmd(Command cmd)
{
if (cmd.CmdTypeID == BaseValues.CmdTypes.Request)
request = true;
}Что-то типа того
26.04.2017 в 15:49 #5563
manjey73УчастникПроблемка только есть, драйвер универсален, при одном вызове он может читать мгновенные значения. А при другом мне надо его тормозить до момента ручного опроса, но без подачи команд управления… именно чтение параметров, никакой подачи команд ТУ
По этому и спрашиваю, есть ли что-то, что посылает при вызове Коммуникатор, что наступило время опроса или что это внеочередной опрос, чтобы можно было понять, тут тормозим, а тут все-таки опрашиваем.
26.04.2017 в 16:16 #5566
manjey73Участник2017-04-26 16:09:00 Сеанс связи с КП 73 «Merc206s», тип: KpMercury20x, адрес: 24070062
2017-04-26 16:09:20 Сеанс связи с КП 73 «Merc206s», тип: KpMercury20x, адрес: 24070062
2017-04-26 16:09:40 Сеанс связи с КП 73 «Merc206s», тип: KpMercury20x, адрес: 24070062
И главное вот что происходит, когда после base.Session(); запрещаешь опрос.
Постоянный вывод строк со стороны Коммуникатора, хотелось бы избежать и этогоВаш вариант не прокатил, опроса не произошло.
-
Ответ изменён 9 лет, 4 месяца назад пользователем
manjey73.
26.04.2017 в 19:51 #5576
manjey73УчастникКопался в исходниках копался, но так и не понял
1. Драйвер каким-то образом может узнать, что он был вызван не по периоду, не по времени а именно внеочередным способом ?
2. В догонку еще вопрос,
tagGroup.KPTags.Add(new KPTag(1, «Напряжение (В)»));
tagGroup.KPTags.Add(new KPTag(2, «Ток (А)»));Номера сигналов переносятся в какой-то массив или Список на лету разбирается для таблички сигналов, переменных и привязки тегов КП ?
27.04.2017 в 09:51 #5578Romiros
УчастникВаш вариант не прокатил, опроса не произошло.
Отправьте стандартную команду. У меня работает27.04.2017 в 10:33 #5581
manjey73УчастникПопробую, мне нужна не столько Стандартная команда, а как-то идентифицировать что посылает Модуль Автоматического управления при указании Опрос КП…
27.04.2017 в 10:48 #5585Romiros
УчастникПосмотрите в журнале линии связи, наверняка команду. Я просто этот модуль в глаза не видел. Может в логе будет прописана команда, её тип и номер?
27.04.2017 в 10:49 #5586
manjey73УчастникДа, просто прописал как для остальных команд с номером команды 1, тогда сработал опрос.
Но это немного не то, огород какой-то в некотором роде…
Потому что при использовании формулы опрашивать раз в месяц надо будет посылать конкретную команду…Ладно, подождем Михаила, что скажет начальник транспортного цеха 🙂
Нет там команд, скорее всего просто указание Коммуникатору, а тот уже вставляет в очередь необходимый КП для опроса.
Зря в глаза не видели, отличный модуль, ну чуток доработать (расширить функционал временных рамок для таймеров) в исполнении «из коробки»
27.04.2017 в 10:58 #5591Romiros
УчастникИнтерфейс для общения с коммуникатором представлен override методами, других нет. Модуль автоуправления использует их же. Копайте там.
Если Вам нужно раз в месяц сделайте условие по дате(и допустим повторяйте опрос пока данные не поступят ) и тогда не надо никаких команд.27.04.2017 в 10:58 #5592
manjey73УчастникНе, как-то через одно место работает, один раз прочитало, потом отлуп
27.04.2017 в 11:09 #5593Romiros
УчастникРаботает нормально, только что проверил. Где-то в коде косяк проверьте.
-
Ответ изменён 9 лет, 4 месяца назад пользователем
-
АвторЗаписи
- Для ответа в этой теме необходимо авторизоваться.