Миханик
Junior Member / Новичок
Участник № / Member № 3346
отправлено / posted
Как можно по-другому сквитировать события не через CTRL-ЛК мыши?
Если я, например, использую сенсорный монитор без клавиатуры. Мне бы подошли две кнопки: квитрование последнего события и квитирование сразу всех событий. Можно ли такое осуществить?
Сообщения / Posts 9 | Из / From: Россия
| IP / IP: IP адрес / IP address |
Romсheg
unregistered
отправлено / posted
Мы в своих проектах уже давно ушли от штатного квитирования сообщений в ОТ. Квитанцию делаем через отдельные каналы в проекте. В ОТ получается два сообщения - одно о событии, а второе о квитировании этого события. При таком методе гораздо нагляднее получается отследить последовательность событий в системе по журналу, чем высчитывать в уме сколько и чего произошло за то время, когда сообщение появилось, но еще не было квитировано, если использовать штатный механизм. Кроме того, при таком подходе гораздо удобнее реализовывать экраны для индикации событий и их квитанции, у нас это реализуется через индикаторы. Получается, что в Вашем варианте с сенсорными экранами - это именно то, что нужно! Будут вопросы - стучите мне в ICQ (206646106), помогу...
IP / IP: IP адрес / IP address |
отправлено / posted
Можно еще квитировать последнее сообщение по каналу с помощью 46 атрибута канала, путем посылки туда 3 или 4.
Сообщения / Posts 17316 | Из / From: Россия
| IP / IP: IP адрес / IP address |
Romсheg
unregistered
отправлено / posted
2AdAstra Technical Support Объем буфера (количество записей), в котором система поиск "последнего сообщения" в ОТ осуществляет при таком квитировании не подскажете?
IP / IP: IP адрес / IP address |
отправлено / posted
Зачем Вам квитировать сразу все сообщения? Оператор не будет даже смотреть, что произошло, а просто все квитирует?
Сообщения / Posts 17316 | Из / From: Россия
| IP / IP: IP адрес / IP address |
Миханик
Junior Member / Новичок
Участник № / Member № 3346
отправлено / posted
Оператор просмотрит сообщения, но чтобы не жать по каждому сообщению проще сделать одну кнопку для квитирования сразу всех.
Способ квитирования по 46 атрибуту мне не подойдет, потому как у меня, например, есть канал класса Hex16, каждый бит которого отвечает за определенную аварию. То есть если я запишу туда 3 или 4, то квитируется только последнее произошедшее событие, а события произошедшие до этого остаются неквитированными.
Сообщения / Posts 9 | Из / From: Россия
| IP / IP: IP адрес / IP address |
VadimNN
Forum Member / Участник форума
Участник № / Member № 5312
отправлено / posted
Тоже использую сенсорный монитор и столкнулся с проблемой квитирования в ОТ. Подскажите, может быть можно программно имитировать нажатие Ctrl?
Сообщения / Posts 33 | Из / From: Россия
| IP / IP: IP адрес / IP address |
отправлено / posted
Можно квитировать последнее сообщение по конкретному каналу в ОТ через атрибут 46 этого канала. Это можно реализовать как с экрана (в том числе и сенсорного), так и из программы.
Сообщения / Posts 17316 | Из / From: Россия
| IP / IP: IP адрес / IP address |
VadimNN
Forum Member / Участник форума
Участник № / Member № 5312
отправлено / posted
А как узнать какой канал нужно квитировать? и как квитировать предпоследнее сообщение? попробовал через 46 атрибут, остаются неквитированные сообщения в ОТ
Сообщения / Posts 33 | Из / From: Россия
| IP / IP: IP адрес / IP address |
VadimNN
Forum Member / Участник форума
Участник № / Member № 5312
отправлено / posted
Нашел сам. В ТМ создаем программу типа ST и в ней подключаем внешнюю библиотеку user32.dll, как указано в справочной системе ТМ. В данной библиотеке задаем функцию keybd_event (тип возвращаемого значения <пусто>, соглашение о вызове stdcall, переменное число аргументов - no). У данной функции указываем 4 аргумента: bVk (unsigned char), bScan (unsigned char), dwFlags (unsigned long), dwExtraInfo (unsigned long).
Все аргументы не являются указателями. Затем в самой программе вызываем данную функцию: keybd_event (17,0,0,0);
17 - это десятичный код клавиши Ctrl.
После вызова программы квитировать в отчете тревог можно нажатием одной левой кнопки мыши.
Для того, чтобы "отжать" клавишу Ctrl нужно вызвать функцию keybd_event с "2" в третьем аргументе: keybd_event (17,0,2,0);
Сообщения / Posts 33 | Из / From: Россия
| IP / IP: IP адрес / IP address |